[debian-edu-commits] debian-edu/pkg-team/ 01/32: Imported Upstream version 2.6.10

Mike Gabriel sunweaver at debian.org
Tue Apr 1 16:51:55 UTC 2014


This is an automated email from the git hooks/post-receive script.

sunweaver pushed a commit to branch master
in repository gosa.

commit 89d92c52579f064fc1b909655258d7792163d667
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Tue Apr 1 15:13:45 2014 +0200

    Imported Upstream version 2.6.10
---
 gosa-core/AUTHORS                                  |    84 +
 gosa-core/CODING                                   |   216 +
 gosa-core/COPYING                                  |   284 +
 gosa-core/Changelog                                |   764 +
 gosa-core/FAQ                                      |   590 +
 gosa-core/INSTALL                                  |   114 +
 gosa-core/README                                   |    73 +
 gosa-core/README.safemode                          |    14 +
 gosa-core/bin/gosa-encrypt-passwords               |   126 +
 gosa-core/bin/mkntpasswd                           |    10 +
 gosa-core/contrib/artwork/GOsa-logo.eps            |    64 +
 gosa-core/contrib/desktoprc                        |     1 +
 gosa-core/contrib/encodings                        |     9 +
 gosa-core/contrib/extract-locale                   |     8 +
 gosa-core/contrib/gosa                             |   177 +
 gosa-core/contrib/gosa.1                           |    41 +
 gosa-core/contrib/gosa.conf                        |   591 +
 gosa-core/contrib/gosa.conf.5                      |  1436 ++
 gosa-core/contrib/latex2html                       | 17413 +++++++++++++++++++
 gosa-core/contrib/make-gosa-package                |   422 +
 gosa-core/contrib/openldap/gofax.ldif              |    59 +
 gosa-core/contrib/openldap/gofax.schema            |    95 +
 gosa-core/contrib/openldap/gofon.ldif              |   198 +
 gosa-core/contrib/openldap/gofon.schema            |   324 +
 gosa-core/contrib/openldap/gosa-samba3.ldif        |   247 +
 gosa-core/contrib/openldap/gosa-samba3.schema      |   410 +
 gosa-core/contrib/openldap/goserver.ldif           |   309 +
 gosa-core/contrib/openldap/goserver.schema         |   594 +
 gosa-core/contrib/openldap/gosystem.ldif           |   199 +
 gosa-core/contrib/openldap/gosystem.schema         |   350 +
 gosa-core/contrib/openldap/goto-mime.ldif          |    33 +
 gosa-core/contrib/openldap/goto-mime.schema        |    61 +
 gosa-core/contrib/openldap/goto.ldif               |    99 +
 gosa-core/contrib/openldap/goto.schema             |   154 +
 gosa-core/contrib/openldap/rfc2307bis.schema       |   288 +
 gosa-core/contrib/openldap/samba.schema            |   152 +
 gosa-core/contrib/openldap/samba3.schema           |   575 +
 gosa-core/contrib/openldap/slapd.conf              |   239 +
 gosa-core/contrib/openldap/trust.ldif              |    18 +
 gosa-core/contrib/openldap/trust.schema            |    21 +
 gosa-core/contrib/shells                           |     6 +
 gosa-core/debian/NEWS.Debian                       |    20 +
 gosa-core/debian/README.Debian                     |    73 +
 gosa-core/debian/changelog                         |    60 +
 gosa-core/debian/compat                            |     1 +
 gosa-core/debian/control                           |   103 +
 gosa-core/debian/copyright                         |    31 +
 gosa-core/debian/gosa-16.xpm                       |   137 +
 gosa-core/debian/gosa-apache.conf                  |    28 +
 gosa-core/debian/gosa-desktop.config               |    11 +
 gosa-core/debian/gosa-desktop.desktop              |    11 +
 gosa-core/debian/gosa-desktop.dirs                 |     4 +
 gosa-core/debian/gosa-desktop.install              |     5 +
 gosa-core/debian/gosa-desktop.manpages             |     1 +
 gosa-core/debian/gosa-desktop.menu                 |     8 +
 gosa-core/debian/gosa-desktop.postinst             |    13 +
 gosa-core/debian/gosa-desktop.postrm               |     9 +
 gosa-core/debian/gosa-desktop.templates            |     9 +
 gosa-core/debian/gosa-dev.dirs                     |     1 +
 gosa-core/debian/gosa-dev.install                  |     3 +
 gosa-core/debian/gosa-dev.manpages                 |     5 +
 gosa-core/debian/gosa-help-de.dirs                 |     1 +
 gosa-core/debian/gosa-help-de.install              |     1 +
 gosa-core/debian/gosa-help-en.dirs                 |     1 +
 gosa-core/debian/gosa-help-en.install              |     1 +
 gosa-core/debian/gosa-help-es.dirs                 |     1 +
 gosa-core/debian/gosa-help-es.install              |     1 +
 gosa-core/debian/gosa-help-fr.dirs                 |     1 +
 gosa-core/debian/gosa-help-fr.install              |     1 +
 gosa-core/debian/gosa-help-nl.dirs                 |     1 +
 gosa-core/debian/gosa-help-nl.install              |     1 +
 gosa-core/debian/gosa-lighttpd.conf                |    29 +
 gosa-core/debian/gosa-schema.dirs                  |     1 +
 gosa-core/debian/gosa-schema.install               |    11 +
 gosa-core/debian/gosa.dirs                         |     6 +
 gosa-core/debian/gosa.docs                         |     4 +
 gosa-core/debian/gosa.install                      |    14 +
 gosa-core/debian/gosa.lintian-overrides            |     7 +
 gosa-core/debian/gosa.manpages                     |     4 +
 gosa-core/debian/gosa.postinst                     |   107 +
 gosa-core/debian/gosa.postrm                       |    55 +
 gosa-core/debian/gosa.xpm                          |   490 +
 gosa-core/debian/patches/00list                    |     5 +
 .../debian/patches/01_fix_smarty_location.dpatch   |    23 +
 .../debian/patches/02_fix_template_location.dpatch |    20 +
 .../debian/patches/03_fix_class_mapping.dpatch     |    60 +
 .../debian/patches/04_fix_locale_location.dpatch   |    48 +
 .../patches/04_fix_online_help_location.dpatch     |    31 +
 gosa-core/debian/po/POTFILES.in                    |     1 +
 gosa-core/debian/po/cs.po                          |    39 +
 gosa-core/debian/po/cz.po                          |    39 +
 gosa-core/debian/po/de.po                          |    39 +
 gosa-core/debian/po/es.po                          |    63 +
 gosa-core/debian/po/eu.po                          |    42 +
 gosa-core/debian/po/fi.po                          |    32 +
 gosa-core/debian/po/fr.po                          |    41 +
 gosa-core/debian/po/it.po                          |    42 +
 gosa-core/debian/po/ja.po                          |    38 +
 gosa-core/debian/po/nl.po                          |    36 +
 gosa-core/debian/po/pl.po                          |    40 +
 gosa-core/debian/po/pt.po                          |    41 +
 gosa-core/debian/po/ru.po                          |    43 +
 gosa-core/debian/po/sv.po                          |    43 +
 gosa-core/debian/po/templates.pot                  |    37 +
 gosa-core/debian/rules                             |    86 +
 gosa-core/debian/smarty-acl-render.dirs            |     1 +
 gosa-core/debian/smarty-acl-render.install         |     2 +
 gosa-core/debian/watch                             |     3 +
 gosa-core/dh-make-gosa                             |   425 +
 gosa-core/dh-make-gosa.1                           |    89 +
 gosa-core/doc/admin/en/manual_gosa_en.tex          |    72 +
 gosa-core/doc/admin/en/manual_gosa_en_apache.tex   |   837 +
 gosa-core/doc/admin/en/manual_gosa_en_ldap.tex     |  1059 ++
 gosa-core/doc/admin/en/referencias_gosa.bib        |   109 +
 gosa-core/doc/admin/es/manual_gosa_es.tex          |   120 +
 gosa-core/doc/admin/es/manual_gosa_es_apache.tex   |   822 +
 .../doc/admin/es/manual_gosa_es_certificates.tex   |   102 +
 gosa-core/doc/admin/es/manual_gosa_es_dns.tex      |   304 +
 .../doc/admin/es/manual_gosa_es_fileserver.tex     |    11 +
 gosa-core/doc/admin/es/manual_gosa_es_ftp.tex      |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_gw.tex       |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_im.tex       |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_kerberos.tex |   693 +
 gosa-core/doc/admin/es/manual_gosa_es_ldap.tex     |  1135 ++
 gosa-core/doc/admin/es/manual_gosa_es_mail.tex     |   329 +
 gosa-core/doc/admin/es/manual_gosa_es_otros.tex    |    27 +
 gosa-core/doc/admin/es/manual_gosa_es_printing.tex |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_proxy.tex    |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_ssh.tex      |     1 +
 gosa-core/doc/admin/es/manual_gosa_es_vpn.tex      |     1 +
 gosa-core/doc/admin/es/referencias_gosa.bib        |   182 +
 gosa-core/doc/core/de/html/applications/WARNINGS   |     4 +
 .../doc/core/de/html/applications/applications.css |    36 +
 .../core/de/html/applications/applications.html    |    68 +
 gosa-core/doc/core/de/html/applications/edit.png   |   Bin 0 -> 946 bytes
 gosa-core/doc/core/de/html/applications/index.html |    68 +
 gosa-core/doc/core/de/html/applications/labels.pl  |    13 +
 .../doc/core/de/html/applications/list_back.png    |   Bin 0 -> 862 bytes
 .../doc/core/de/html/applications/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/de/html/applications/list_new_app.png |   Bin 0 -> 794 bytes
 .../doc/core/de/html/applications/list_reload.png  |   Bin 0 -> 910 bytes
 .../doc/core/de/html/applications/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/applications/node1.html |   149 +
 gosa-core/doc/core/de/html/applications/node2.html |    76 +
 gosa-core/doc/core/de/html/applications/node3.html |    74 +
 gosa-core/doc/core/de/html/applications/node4.html |    88 +
 gosa-core/doc/core/de/html/applications/node5.html |    62 +
 gosa-core/doc/core/de/html/applications/node6.html |    62 +
 gosa-core/doc/core/de/html/applications/node7.html |    40 +
 gosa-core/doc/core/de/html/applications/node8.html |    51 +
 gosa-core/doc/core/de/html/applications/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/applications/search.png |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/de/html/blocklists/WARNINGS     |     3 +
 .../doc/core/de/html/blocklists/blocklists.css     |    35 +
 .../doc/core/de/html/blocklists/blocklists.html    |    60 +
 gosa-core/doc/core/de/html/blocklists/index.html   |    60 +
 gosa-core/doc/core/de/html/blocklists/labels.pl    |    13 +
 .../doc/core/de/html/blocklists/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/de/html/blocklists/list_home.png      |   Bin 0 -> 865 bytes
 .../core/de/html/blocklists/list_new_blocklist.png |   Bin 0 -> 781 bytes
 .../doc/core/de/html/blocklists/list_reload.png    |   Bin 0 -> 910 bytes
 .../doc/core/de/html/blocklists/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/blocklists/node1.html   |   160 +
 gosa-core/doc/core/de/html/blocklists/node2.html   |    61 +
 gosa-core/doc/core/de/html/blocklists/node3.html   |    51 +
 gosa-core/doc/core/de/html/blocklists/node4.html   |    41 +
 gosa-core/doc/core/de/html/blocklists/node5.html   |    51 +
 gosa-core/doc/core/de/html/blocklists/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/blocklists/search.png   |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/de/html/conference/WARNINGS     |     3 +
 .../doc/core/de/html/conference/conference.css     |    44 +
 .../doc/core/de/html/conference/conference.html    |    64 +
 gosa-core/doc/core/de/html/conference/index.html   |    64 +
 gosa-core/doc/core/de/html/conference/labels.pl    |    13 +
 .../doc/core/de/html/conference/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/de/html/conference/list_home.png      |   Bin 0 -> 865 bytes
 .../doc/core/de/html/conference/list_reload.png    |   Bin 0 -> 910 bytes
 .../doc/core/de/html/conference/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/conference/node1.html   |   170 +
 gosa-core/doc/core/de/html/conference/node2.html   |    48 +
 gosa-core/doc/core/de/html/conference/node3.html   |    66 +
 gosa-core/doc/core/de/html/conference/node4.html   |    86 +
 gosa-core/doc/core/de/html/conference/node5.html   |    39 +
 gosa-core/doc/core/de/html/conference/node6.html   |    51 +
 gosa-core/doc/core/de/html/conference/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/conference/search.png   |   Bin 0 -> 1023 bytes
 .../de/html/conference/select_new_component.png    |   Bin 0 -> 452 bytes
 gosa-core/doc/core/de/html/departments/WARNINGS    |     4 +
 .../doc/core/de/html/departments/departments.css   |    37 +
 .../doc/core/de/html/departments/departments.html  |    70 +
 gosa-core/doc/core/de/html/departments/edit.png    |   Bin 0 -> 946 bytes
 gosa-core/doc/core/de/html/departments/index.html  |    70 +
 gosa-core/doc/core/de/html/departments/labels.pl   |    13 +
 .../doc/core/de/html/departments/list_back.png     |   Bin 0 -> 862 bytes
 .../doc/core/de/html/departments/list_home.png     |   Bin 0 -> 865 bytes
 .../de/html/departments/list_new_department.png    |   Bin 0 -> 717 bytes
 .../doc/core/de/html/departments/list_reload.png   |   Bin 0 -> 910 bytes
 .../doc/core/de/html/departments/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/departments/node1.html  |   159 +
 gosa-core/doc/core/de/html/departments/node2.html  |    45 +
 gosa-core/doc/core/de/html/departments/node3.html  |    47 +
 gosa-core/doc/core/de/html/departments/node4.html  |    50 +
 gosa-core/doc/core/de/html/departments/node5.html  |    59 +
 gosa-core/doc/core/de/html/departments/node6.html  |    56 +
 gosa-core/doc/core/de/html/departments/node7.html  |    48 +
 gosa-core/doc/core/de/html/departments/node8.html  |    39 +
 gosa-core/doc/core/de/html/departments/node9.html  |    51 +
 gosa-core/doc/core/de/html/departments/rocket.png  |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/departments/search.png  |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/de/html/faxreports/WARNINGS     |     3 +
 .../doc/core/de/html/faxreports/faxreports.css     |   Bin 0 -> 1016 bytes
 .../doc/core/de/html/faxreports/faxreports.html    |    58 +
 gosa-core/doc/core/de/html/faxreports/index.html   |    58 +
 gosa-core/doc/core/de/html/faxreports/labels.pl    |    13 +
 gosa-core/doc/core/de/html/faxreports/node1.html   |    52 +
 gosa-core/doc/core/de/html/faxreports/node2.html   |    64 +
 gosa-core/doc/core/de/html/faxreports/node3.html   |    50 +
 gosa-core/doc/core/de/html/faxreports/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/fonreports/WARNINGS     |     3 +
 .../doc/core/de/html/fonreports/fonreports.css     |    35 +
 .../doc/core/de/html/fonreports/fonreports.html    |    59 +
 gosa-core/doc/core/de/html/fonreports/index.html   |    59 +
 gosa-core/doc/core/de/html/fonreports/labels.pl    |    13 +
 gosa-core/doc/core/de/html/fonreports/node1.html   |    53 +
 gosa-core/doc/core/de/html/fonreports/node2.html   |    65 +
 gosa-core/doc/core/de/html/fonreports/node3.html   |    51 +
 gosa-core/doc/core/de/html/fonreports/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/groups/WARNINGS         |     3 +
 gosa-core/doc/core/de/html/groups/groups.css       |   Bin 0 -> 1116 bytes
 gosa-core/doc/core/de/html/groups/groups.html      |    96 +
 gosa-core/doc/core/de/html/groups/index.html       |    96 +
 gosa-core/doc/core/de/html/groups/labels.pl        |    13 +
 gosa-core/doc/core/de/html/groups/list_back.png    |   Bin 0 -> 862 bytes
 gosa-core/doc/core/de/html/groups/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/de/html/groups/list_new_group.png     |   Bin 0 -> 911 bytes
 gosa-core/doc/core/de/html/groups/list_reload.png  |   Bin 0 -> 910 bytes
 gosa-core/doc/core/de/html/groups/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/groups/mailto.png       |   Bin 0 -> 635 bytes
 gosa-core/doc/core/de/html/groups/node1.html       |   266 +
 gosa-core/doc/core/de/html/groups/node10.html      |    43 +
 gosa-core/doc/core/de/html/groups/node11.html      |    43 +
 gosa-core/doc/core/de/html/groups/node12.html      |    48 +
 gosa-core/doc/core/de/html/groups/node13.html      |    62 +
 gosa-core/doc/core/de/html/groups/node14.html      |    62 +
 gosa-core/doc/core/de/html/groups/node15.html      |    52 +
 gosa-core/doc/core/de/html/groups/node16.html      |    59 +
 gosa-core/doc/core/de/html/groups/node17.html      |    55 +
 gosa-core/doc/core/de/html/groups/node18.html      |    48 +
 gosa-core/doc/core/de/html/groups/node19.html      |    39 +
 gosa-core/doc/core/de/html/groups/node2.html       |    56 +
 gosa-core/doc/core/de/html/groups/node20.html      |    51 +
 gosa-core/doc/core/de/html/groups/node3.html       |    44 +
 gosa-core/doc/core/de/html/groups/node4.html       |    54 +
 gosa-core/doc/core/de/html/groups/node5.html       |   101 +
 gosa-core/doc/core/de/html/groups/node6.html       |    60 +
 gosa-core/doc/core/de/html/groups/node7.html       |    76 +
 gosa-core/doc/core/de/html/groups/node8.html       |    43 +
 gosa-core/doc/core/de/html/groups/node9.html       |    43 +
 gosa-core/doc/core/de/html/groups/rocket.png       |   Bin 0 -> 828 bytes
 .../doc/core/de/html/groups/select_application.png |   Bin 0 -> 959 bytes
 .../doc/core/de/html/groups/select_groups.png      |   Bin 0 -> 868 bytes
 .../doc/core/de/html/groups/select_winstation.png  |   Bin 0 -> 675 bytes
 gosa-core/doc/core/de/html/groups/smallenv.png     |   Bin 0 -> 733 bytes
 gosa-core/doc/core/de/html/logview/WARNINGS        |     3 +
 gosa-core/doc/core/de/html/logview/index.html      |    57 +
 gosa-core/doc/core/de/html/logview/labels.pl       |    13 +
 gosa-core/doc/core/de/html/logview/logview.css     |    33 +
 gosa-core/doc/core/de/html/logview/logview.html    |    57 +
 gosa-core/doc/core/de/html/logview/node1.html      |    46 +
 gosa-core/doc/core/de/html/logview/node2.html      |    59 +
 gosa-core/doc/core/de/html/logview/node3.html      |    51 +
 gosa-core/doc/core/de/html/macro/WARNINGS          |     3 +
 gosa-core/doc/core/de/html/macro/false.png         |   Bin 0 -> 745 bytes
 gosa-core/doc/core/de/html/macro/index.html        |    62 +
 gosa-core/doc/core/de/html/macro/labels.pl         |    13 +
 gosa-core/doc/core/de/html/macro/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/de/html/macro/list_home.png     |   Bin 0 -> 865 bytes
 .../doc/core/de/html/macro/list_new_macro.png      |   Bin 0 -> 823 bytes
 gosa-core/doc/core/de/html/macro/list_reload.png   |   Bin 0 -> 910 bytes
 gosa-core/doc/core/de/html/macro/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/macro/macro.css         |    46 +
 gosa-core/doc/core/de/html/macro/macro.html        |    62 +
 gosa-core/doc/core/de/html/macro/node1.html        |   177 +
 gosa-core/doc/core/de/html/macro/node2.html        |    54 +
 gosa-core/doc/core/de/html/macro/node3.html        |    74 +
 gosa-core/doc/core/de/html/macro/node4.html        |    64 +
 gosa-core/doc/core/de/html/macro/node5.html        |    39 +
 gosa-core/doc/core/de/html/macro/node6.html        |    51 +
 gosa-core/doc/core/de/html/macro/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/macro/search.png        |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/de/html/macro/true.png          |   Bin 0 -> 661 bytes
 gosa-core/doc/core/de/html/mailqueue/WARNINGS      |     3 +
 gosa-core/doc/core/de/html/mailqueue/edittrash.png |   Bin 0 -> 691 bytes
 gosa-core/doc/core/de/html/mailqueue/index.html    |    61 +
 gosa-core/doc/core/de/html/mailqueue/labels.pl     |    13 +
 .../doc/core/de/html/mailqueue/mailq_hold.png      |   Bin 0 -> 750 bytes
 .../doc/core/de/html/mailqueue/mailq_requeue.png   |   Bin 0 -> 910 bytes
 .../doc/core/de/html/mailqueue/mailq_unhold.png    |   Bin 0 -> 829 bytes
 gosa-core/doc/core/de/html/mailqueue/mailqueue.css |   Bin 0 -> 997 bytes
 .../doc/core/de/html/mailqueue/mailqueue.html      |    61 +
 gosa-core/doc/core/de/html/mailqueue/node1.html    |    55 +
 gosa-core/doc/core/de/html/mailqueue/node2.html    |    68 +
 gosa-core/doc/core/de/html/mailqueue/node3.html    |    72 +
 gosa-core/doc/core/de/html/mailqueue/node4.html    |    51 +
 gosa-core/doc/core/de/html/mailqueue/rocket.png    |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/ogroups/WARNINGS        |     4 +
 gosa-core/doc/core/de/html/ogroups/index.html      |    59 +
 gosa-core/doc/core/de/html/ogroups/labels.pl       |    13 +
 gosa-core/doc/core/de/html/ogroups/list_back.png   |   Bin 0 -> 862 bytes
 gosa-core/doc/core/de/html/ogroups/list_home.png   |   Bin 0 -> 865 bytes
 .../doc/core/de/html/ogroups/list_new_ogroup.png   |   Bin 0 -> 754 bytes
 gosa-core/doc/core/de/html/ogroups/list_reload.png |   Bin 0 -> 910 bytes
 gosa-core/doc/core/de/html/ogroups/list_root.png   |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/ogroups/node1.html      |   178 +
 gosa-core/doc/core/de/html/ogroups/node2.html      |    63 +
 gosa-core/doc/core/de/html/ogroups/node3.html      |    39 +
 gosa-core/doc/core/de/html/ogroups/node4.html      |    51 +
 gosa-core/doc/core/de/html/ogroups/ogroups.css     |    38 +
 gosa-core/doc/core/de/html/ogroups/ogroups.html    |    59 +
 gosa-core/doc/core/de/html/ogroups/rocket.png      |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/ogroups/search.png      |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/de/html/users/WARNINGS          |     4 +
 gosa-core/doc/core/de/html/users/fax_small.png     |   Bin 0 -> 787 bytes
 gosa-core/doc/core/de/html/users/index.html        |   171 +
 gosa-core/doc/core/de/html/users/labels.pl         |    13 +
 gosa-core/doc/core/de/html/users/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/de/html/users/list_home.png     |   Bin 0 -> 865 bytes
 gosa-core/doc/core/de/html/users/list_new_user.png |   Bin 0 -> 788 bytes
 gosa-core/doc/core/de/html/users/list_reload.png   |   Bin 0 -> 910 bytes
 gosa-core/doc/core/de/html/users/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/de/html/users/mailto.png        |   Bin 0 -> 635 bytes
 gosa-core/doc/core/de/html/users/node1.html        |   361 +
 gosa-core/doc/core/de/html/users/node10.html       |    51 +
 gosa-core/doc/core/de/html/users/node11.html       |    74 +
 gosa-core/doc/core/de/html/users/node12.html       |    76 +
 gosa-core/doc/core/de/html/users/node13.html       |    71 +
 gosa-core/doc/core/de/html/users/node14.html       |    43 +
 gosa-core/doc/core/de/html/users/node15.html       |    43 +
 gosa-core/doc/core/de/html/users/node16.html       |    43 +
 gosa-core/doc/core/de/html/users/node17.html       |    43 +
 gosa-core/doc/core/de/html/users/node18.html       |    43 +
 gosa-core/doc/core/de/html/users/node19.html       |    43 +
 gosa-core/doc/core/de/html/users/node2.html        |    57 +
 gosa-core/doc/core/de/html/users/node20.html       |    58 +
 gosa-core/doc/core/de/html/users/node21.html       |    60 +
 gosa-core/doc/core/de/html/users/node22.html       |    52 +
 gosa-core/doc/core/de/html/users/node23.html       |    95 +
 gosa-core/doc/core/de/html/users/node24.html       |    56 +
 gosa-core/doc/core/de/html/users/node25.html       |    54 +
 gosa-core/doc/core/de/html/users/node26.html       |    62 +
 gosa-core/doc/core/de/html/users/node27.html       |   159 +
 gosa-core/doc/core/de/html/users/node28.html       |   102 +
 gosa-core/doc/core/de/html/users/node29.html       |    66 +
 gosa-core/doc/core/de/html/users/node3.html        |    43 +
 gosa-core/doc/core/de/html/users/node30.html       |    62 +
 gosa-core/doc/core/de/html/users/node31.html       |    97 +
 gosa-core/doc/core/de/html/users/node32.html       |    41 +
 gosa-core/doc/core/de/html/users/node33.html       |    41 +
 gosa-core/doc/core/de/html/users/node34.html       |    43 +
 gosa-core/doc/core/de/html/users/node35.html       |    58 +
 gosa-core/doc/core/de/html/users/node36.html       |    43 +
 gosa-core/doc/core/de/html/users/node37.html       |    43 +
 gosa-core/doc/core/de/html/users/node38.html       |    46 +
 gosa-core/doc/core/de/html/users/node39.html       |    60 +
 gosa-core/doc/core/de/html/users/node4.html        |    54 +
 gosa-core/doc/core/de/html/users/node40.html       |    56 +
 gosa-core/doc/core/de/html/users/node41.html       |    58 +
 gosa-core/doc/core/de/html/users/node42.html       |    67 +
 gosa-core/doc/core/de/html/users/node43.html       |    53 +
 gosa-core/doc/core/de/html/users/node44.html       |    55 +
 gosa-core/doc/core/de/html/users/node45.html       |    56 +
 gosa-core/doc/core/de/html/users/node46.html       |    56 +
 gosa-core/doc/core/de/html/users/node47.html       |    58 +
 gosa-core/doc/core/de/html/users/node48.html       |    49 +
 gosa-core/doc/core/de/html/users/node49.html       |    39 +
 gosa-core/doc/core/de/html/users/node5.html        |    48 +
 gosa-core/doc/core/de/html/users/node50.html       |    51 +
 gosa-core/doc/core/de/html/users/node6.html        |   105 +
 gosa-core/doc/core/de/html/users/node7.html        |   111 +
 gosa-core/doc/core/de/html/users/node8.html        |    56 +
 gosa-core/doc/core/de/html/users/node9.html        |    66 +
 gosa-core/doc/core/de/html/users/penguin.png       |   Bin 0 -> 964 bytes
 gosa-core/doc/core/de/html/users/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/users/search.png        |   Bin 0 -> 1023 bytes
 .../doc/core/de/html/users/select_netatalk.png     |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/html/users/select_phone.png  |   Bin 0 -> 784 bytes
 gosa-core/doc/core/de/html/users/select_user.png   |   Bin 0 -> 753 bytes
 .../doc/core/de/html/users/select_winstation.png   |   Bin 0 -> 675 bytes
 gosa-core/doc/core/de/html/users/smallenv.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/de/html/users/users.css         |   Bin 0 -> 1416 bytes
 gosa-core/doc/core/de/html/users/users.html        |   171 +
 gosa-core/doc/core/de/lyx-source/applications.lyx  |   605 +
 gosa-core/doc/core/de/lyx-source/blocklists.lyx    |   342 +
 gosa-core/doc/core/de/lyx-source/conference.lyx    |   416 +
 gosa-core/doc/core/de/lyx-source/departments.lyx   |   423 +
 gosa-core/doc/core/de/lyx-source/faxreports.lyx    |   187 +
 gosa-core/doc/core/de/lyx-source/fonreports.lyx    |   187 +
 gosa-core/doc/core/de/lyx-source/groups.lyx        |   985 ++
 gosa-core/doc/core/de/lyx-source/images/action.png |   Bin 0 -> 397 bytes
 .../doc/core/de/lyx-source/images/addr_company.png |   Bin 0 -> 1818 bytes
 .../doc/core/de/lyx-source/images/addr_home.png    |   Bin 0 -> 1381 bytes
 .../core/de/lyx-source/images/addr_personal.png    |   Bin 0 -> 1372 bytes
 .../doc/core/de/lyx-source/images/addressbook.png  |   Bin 0 -> 5434 bytes
 .../core/de/lyx-source/images/alternatemail.png    |   Bin 0 -> 893 bytes
 .../doc/core/de/lyx-source/images/application.png  |   Bin 0 -> 3839 bytes
 gosa-core/doc/core/de/lyx-source/images/back.png   |   Bin 0 -> 733 bytes
 gosa-core/doc/core/de/lyx-source/images/banana.png |   Bin 0 -> 784 bytes
 .../doc/core/de/lyx-source/images/blocklists.png   |   Bin 0 -> 4295 bytes
 gosa-core/doc/core/de/lyx-source/images/branch.png |   Bin 0 -> 694 bytes
 .../doc/core/de/lyx-source/images/branch_small.png |   Bin 0 -> 609 bytes
 .../core/de/lyx-source/images/button_cancel.png    |   Bin 0 -> 883 bytes
 .../core/de/lyx-source/images/cant_editpaste.png   |   Bin 0 -> 465 bytes
 gosa-core/doc/core/de/lyx-source/images/certs.png  |   Bin 0 -> 693 bytes
 .../doc/core/de/lyx-source/images/closedlock.png   |   Bin 0 -> 750 bytes
 .../doc/core/de/lyx-source/images/conference.png   |   Bin 0 -> 4094 bytes
 .../doc/core/de/lyx-source/images/copypaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/de/lyx-source/images/crossref.png     |   Bin 0 -> 628 bytes
 .../doc/core/de/lyx-source/images/cutpaste.png     |   Bin 0 -> 898 bytes
 .../doc/core/de/lyx-source/images/default.jpg      |   Bin 0 -> 2502 bytes
 .../doc/core/de/lyx-source/images/default_icon.png |   Bin 0 -> 1957 bytes
 .../doc/core/de/lyx-source/images/department.png   |   Bin 0 -> 3728 bytes
 gosa-core/doc/core/de/lyx-source/images/dfs.png    |   Bin 0 -> 3646 bytes
 gosa-core/doc/core/de/lyx-source/images/dhcp.png   |   Bin 0 -> 4674 bytes
 .../doc/core/de/lyx-source/images/display.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/de/lyx-source/images/dns.png    |   Bin 0 -> 4739 bytes
 gosa-core/doc/core/de/lyx-source/images/drives.png |   Bin 0 -> 950 bytes
 gosa-core/doc/core/de/lyx-source/images/dtree.png  |   Bin 0 -> 694 bytes
 gosa-core/doc/core/de/lyx-source/images/edit.png   |   Bin 0 -> 946 bytes
 .../doc/core/de/lyx-source/images/editcopy.png     |   Bin 0 -> 777 bytes
 .../doc/core/de/lyx-source/images/editcut.png      |   Bin 0 -> 804 bytes
 .../doc/core/de/lyx-source/images/editdelete.png   |   Bin 0 -> 892 bytes
 .../doc/core/de/lyx-source/images/editpaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/de/lyx-source/images/edittrash.png    |   Bin 0 -> 691 bytes
 gosa-core/doc/core/de/lyx-source/images/email.png  |   Bin 0 -> 4142 bytes
 gosa-core/doc/core/de/lyx-source/images/empty.png  |   Bin 0 -> 174 bytes
 .../doc/core/de/lyx-source/images/encrypted.png    |   Bin 0 -> 1239 bytes
 gosa-core/doc/core/de/lyx-source/images/env.png    |   Bin 0 -> 3242 bytes
 .../doc/core/de/lyx-source/images/envelope.png     |   Bin 0 -> 843 bytes
 gosa-core/doc/core/de/lyx-source/images/expand.png |   Bin 0 -> 183 bytes
 gosa-core/doc/core/de/lyx-source/images/fai.png    |   Bin 0 -> 4931 bytes
 .../doc/core/de/lyx-source/images/fai_hook.png     |   Bin 0 -> 692 bytes
 .../doc/core/de/lyx-source/images/fai_new_hook.png |   Bin 0 -> 662 bytes
 .../core/de/lyx-source/images/fai_new_packages.png |   Bin 0 -> 743 bytes
 .../lyx-source/images/fai_new_partitionTable.png   |   Bin 0 -> 809 bytes
 .../core/de/lyx-source/images/fai_new_profile.png  |   Bin 0 -> 903 bytes
 .../core/de/lyx-source/images/fai_new_script.png   |   Bin 0 -> 658 bytes
 .../core/de/lyx-source/images/fai_new_template.png |   Bin 0 -> 630 bytes
 .../core/de/lyx-source/images/fai_new_variable.png |   Bin 0 -> 410 bytes
 .../doc/core/de/lyx-source/images/fai_packages.png |   Bin 0 -> 959 bytes
 .../de/lyx-source/images/fai_partitionTable.png    |   Bin 0 -> 725 bytes
 .../doc/core/de/lyx-source/images/fai_profile.png  |   Bin 0 -> 1094 bytes
 .../doc/core/de/lyx-source/images/fai_script.png   |   Bin 0 -> 601 bytes
 .../doc/core/de/lyx-source/images/fai_small.png    |   Bin 0 -> 885 bytes
 .../doc/core/de/lyx-source/images/fai_template.png |   Bin 0 -> 512 bytes
 .../doc/core/de/lyx-source/images/fai_variable.png |   Bin 0 -> 429 bytes
 gosa-core/doc/core/de/lyx-source/images/false.png  |   Bin 0 -> 745 bytes
 gosa-core/doc/core/de/lyx-source/images/fax.png    |   Bin 0 -> 3352 bytes
 .../doc/core/de/lyx-source/images/fax_small.png    |   Bin 0 -> 787 bytes
 .../doc/core/de/lyx-source/images/filesaveas.png   |   Bin 0 -> 1253 bytes
 gosa-core/doc/core/de/lyx-source/images/flag.png   |   Bin 0 -> 745 bytes
 gosa-core/doc/core/de/lyx-source/images/folder.png |   Bin 0 -> 594 bytes
 .../doc/core/de/lyx-source/images/forward.png      |   Bin 0 -> 726 bytes
 gosa-core/doc/core/de/lyx-source/images/ftp.png    |   Bin 0 -> 4365 bytes
 .../doc/core/de/lyx-source/images/fullfolder.png   |   Bin 0 -> 587 bytes
 .../doc/core/de/lyx-source/images/gfx_hardware.png |   Bin 0 -> 819 bytes
 gosa-core/doc/core/de/lyx-source/images/group.png  |   Bin 0 -> 4224 bytes
 .../doc/core/de/lyx-source/images/hardware.png     |   Bin 0 -> 836 bytes
 .../de/lyx-source/images/hdd_linux_unmount.png     |   Bin 0 -> 6805 bytes
 gosa-core/doc/core/de/lyx-source/images/head.png   |   Bin 0 -> 753 bytes
 gosa-core/doc/core/de/lyx-source/images/help.png   |   Bin 0 -> 1136 bytes
 .../doc/core/de/lyx-source/images/hotplug.png      |   Bin 0 -> 861 bytes
 gosa-core/doc/core/de/lyx-source/images/house.png  |   Bin 0 -> 713 bytes
 gosa-core/doc/core/de/lyx-source/images/img1.png   |   Bin 0 -> 97 bytes
 gosa-core/doc/core/de/lyx-source/images/info.png   |   Bin 0 -> 1195 bytes
 .../doc/core/de/lyx-source/images/info_small.png   |   Bin 0 -> 936 bytes
 .../doc/core/de/lyx-source/images/keyboard.png     |   Bin 0 -> 343 bytes
 gosa-core/doc/core/de/lyx-source/images/lamp.png   |   Bin 0 -> 829 bytes
 gosa-core/doc/core/de/lyx-source/images/launch.png |   Bin 0 -> 1263 bytes
 .../doc/core/de/lyx-source/images/ldapserver.png   |   Bin 0 -> 3276 bytes
 gosa-core/doc/core/de/lyx-source/images/ldif.png   |   Bin 0 -> 2801 bytes
 .../doc/core/de/lyx-source/images/list_back.png    |   Bin 0 -> 862 bytes
 .../core/de/lyx-source/images/list_blocklist.png   |   Bin 0 -> 671 bytes
 .../doc/core/de/lyx-source/images/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/de/lyx-source/images/list_macro.png   |   Bin 0 -> 927 bytes
 .../doc/core/de/lyx-source/images/list_new.png     |   Bin 0 -> 642 bytes
 .../doc/core/de/lyx-source/images/list_new_app.png |   Bin 0 -> 794 bytes
 .../de/lyx-source/images/list_new_blocklist.png    |   Bin 0 -> 781 bytes
 .../de/lyx-source/images/list_new_conference.png   |   Bin 0 -> 904 bytes
 .../de/lyx-source/images/list_new_department.png   |   Bin 0 -> 717 bytes
 .../core/de/lyx-source/images/list_new_group.png   |   Bin 0 -> 911 bytes
 .../core/de/lyx-source/images/list_new_macro.png   |   Bin 0 -> 823 bytes
 .../core/de/lyx-source/images/list_new_ogroup.png  |   Bin 0 -> 754 bytes
 .../core/de/lyx-source/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../doc/core/de/lyx-source/images/list_ogroup.png  |   Bin 0 -> 728 bytes
 .../core/de/lyx-source/images/list_password.png    |   Bin 0 -> 693 bytes
 .../doc/core/de/lyx-source/images/list_reload.png  |   Bin 0 -> 910 bytes
 .../doc/core/de/lyx-source/images/list_root.png    |   Bin 0 -> 852 bytes
 .../core/de/lyx-source/images/list_seperator.png   |   Bin 0 -> 177 bytes
 .../doc/core/de/lyx-source/images/list_submit.png  |   Bin 0 -> 614 bytes
 .../doc/core/de/lyx-source/images/list_up.png      |   Bin 0 -> 862 bytes
 .../doc/core/de/lyx-source/images/log_critical.png |   Bin 0 -> 745 bytes
 .../doc/core/de/lyx-source/images/log_info.png     |   Bin 0 -> 936 bytes
 .../doc/core/de/lyx-source/images/log_unknown.png  |   Bin 0 -> 746 bytes
 .../doc/core/de/lyx-source/images/log_warning.png  |   Bin 0 -> 829 bytes
 gosa-core/doc/core/de/lyx-source/images/login.png  |   Bin 0 -> 9533 bytes
 .../doc/core/de/lyx-source/images/logview.png      |   Bin 0 -> 3406 bytes
 gosa-core/doc/core/de/lyx-source/images/macros.png |   Bin 0 -> 4794 bytes
 .../doc/core/de/lyx-source/images/mailq_active.png |   Bin 0 -> 574 bytes
 .../doc/core/de/lyx-source/images/mailq_header.png |   Bin 0 -> 936 bytes
 .../doc/core/de/lyx-source/images/mailq_hold.png   |   Bin 0 -> 750 bytes
 .../core/de/lyx-source/images/mailq_requeue.png    |   Bin 0 -> 910 bytes
 .../doc/core/de/lyx-source/images/mailq_unhold.png |   Bin 0 -> 829 bytes
 .../doc/core/de/lyx-source/images/mailqueue.png    |   Bin 0 -> 4132 bytes
 gosa-core/doc/core/de/lyx-source/images/mailto.png |   Bin 0 -> 635 bytes
 .../doc/core/de/lyx-source/images/mainboard.png    |   Bin 0 -> 782 bytes
 .../doc/core/de/lyx-source/images/members.png      |   Bin 0 -> 868 bytes
 gosa-core/doc/core/de/lyx-source/images/memory.png |   Bin 0 -> 931 bytes
 .../doc/core/de/lyx-source/images/monitor.png      |   Bin 0 -> 733 bytes
 .../doc/core/de/lyx-source/images/monitoring.png   |   Bin 0 -> 4804 bytes
 gosa-core/doc/core/de/lyx-source/images/mouse.png  |   Bin 0 -> 751 bytes
 .../doc/core/de/lyx-source/images/net_hardware.png |   Bin 0 -> 828 bytes
 .../doc/core/de/lyx-source/images/netatalk.png     |   Bin 0 -> 3642 bytes
 .../doc/core/de/lyx-source/images/network.png      |   Bin 0 -> 894 bytes
 gosa-core/doc/core/de/lyx-source/images/null.gif   |   Bin 0 -> 49 bytes
 gosa-core/doc/core/de/lyx-source/images/ogroup.png |   Bin 0 -> 3510 bytes
 .../doc/core/de/lyx-source/images/openlock.png     |   Bin 0 -> 923 bytes
 .../doc/core/de/lyx-source/images/password.png     |   Bin 0 -> 3316 bytes
 .../doc/core/de/lyx-source/images/penguin.png      |   Bin 0 -> 964 bytes
 .../doc/core/de/lyx-source/images/personal.png     |   Bin 0 -> 4119 bytes
 gosa-core/doc/core/de/lyx-source/images/phone.png  |   Bin 0 -> 4263 bytes
 .../doc/core/de/lyx-source/images/phonereport.png  |   Bin 0 -> 3125 bytes
 gosa-core/doc/core/de/lyx-source/images/posix.png  |   Bin 0 -> 4083 bytes
 .../doc/core/de/lyx-source/images/printer.png      |   Bin 0 -> 678 bytes
 .../doc/core/de/lyx-source/images/processor.png    |   Bin 0 -> 400 bytes
 gosa-core/doc/core/de/lyx-source/images/proxy.png  |   Bin 0 -> 5227 bytes
 .../doc/core/de/lyx-source/images/reports.png      |   Bin 0 -> 4298 bytes
 .../doc/core/de/lyx-source/images/rightarrow.png   |   Bin 0 -> 863 bytes
 gosa-core/doc/core/de/lyx-source/images/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/de/lyx-source/images/samba.png  |   Bin 0 -> 5472 bytes
 gosa-core/doc/core/de/lyx-source/images/save.png   |   Bin 0 -> 595 bytes
 .../doc/core/de/lyx-source/images/scanner.png      |   Bin 0 -> 809 bytes
 gosa-core/doc/core/de/lyx-source/images/search.png |   Bin 0 -> 1023 bytes
 .../doc/core/de/lyx-source/images/search_user.png  |   Bin 0 -> 962 bytes
 .../de/lyx-source/images/select_application.png    |   Bin 0 -> 959 bytes
 .../core/de/lyx-source/images/select_component.png |   Bin 0 -> 458 bytes
 .../de/lyx-source/images/select_conference.png     |   Bin 0 -> 868 bytes
 .../core/de/lyx-source/images/select_default.png   |   Bin 0 -> 725 bytes
 .../de/lyx-source/images/select_department.png     |   Bin 0 -> 731 bytes
 .../core/de/lyx-source/images/select_groups.png    |   Bin 0 -> 868 bytes
 .../images/select_invalid_application.png          |   Bin 0 -> 858 bytes
 .../doc/core/de/lyx-source/images/select_macro.png |   Bin 0 -> 927 bytes
 .../core/de/lyx-source/images/select_netatalk.png  |   Bin 0 -> 828 bytes
 .../de/lyx-source/images/select_new_component.png  |   Bin 0 -> 452 bytes
 .../core/de/lyx-source/images/select_new_phone.png |   Bin 0 -> 660 bytes
 .../de/lyx-source/images/select_new_printer.png    |   Bin 0 -> 746 bytes
 .../de/lyx-source/images/select_new_server.png     |   Bin 0 -> 813 bytes
 .../de/lyx-source/images/select_new_terminal.png   |   Bin 0 -> 776 bytes
 .../lyx-source/images/select_new_workstation.png   |   Bin 0 -> 827 bytes
 .../core/de/lyx-source/images/select_newsystem.png |   Bin 0 -> 642 bytes
 .../core/de/lyx-source/images/select_ogroup.png    |   Bin 0 -> 794 bytes
 .../doc/core/de/lyx-source/images/select_phone.png |   Bin 0 -> 784 bytes
 .../lyx-source/images/select_phone_connected.png   |   Bin 0 -> 864 bytes
 .../core/de/lyx-source/images/select_printer.png   |   Bin 0 -> 678 bytes
 .../doc/core/de/lyx-source/images/select_proxy.png |   Bin 0 -> 894 bytes
 .../core/de/lyx-source/images/select_server.png    |   Bin 0 -> 879 bytes
 .../core/de/lyx-source/images/select_template.png  |   Bin 0 -> 512 bytes
 .../core/de/lyx-source/images/select_terminal.png  |   Bin 0 -> 778 bytes
 .../doc/core/de/lyx-source/images/select_user.png  |   Bin 0 -> 753 bytes
 .../de/lyx-source/images/select_winstation.png     |   Bin 0 -> 675 bytes
 .../de/lyx-source/images/select_workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/doc/core/de/lyx-source/images/server.png |   Bin 0 -> 879 bytes
 .../doc/core/de/lyx-source/images/service.png      |   Bin 0 -> 4135 bytes
 .../doc/core/de/lyx-source/images/small_filter.png |   Bin 0 -> 814 bytes
 .../doc/core/de/lyx-source/images/smallenv.png     |   Bin 0 -> 733 bytes
 .../doc/core/de/lyx-source/images/snd_hardware.png |   Bin 0 -> 803 bytes
 .../doc/core/de/lyx-source/images/sort_down.png    |   Bin 0 -> 174 bytes
 .../doc/core/de/lyx-source/images/sort_up.png      |   Bin 0 -> 176 bytes
 gosa-core/doc/core/de/lyx-source/images/sound.png  |   Bin 0 -> 898 bytes
 gosa-core/doc/core/de/lyx-source/images/stop.png   |   Bin 0 -> 974 bytes
 gosa-core/doc/core/de/lyx-source/images/system.png |   Bin 0 -> 3105 bytes
 .../core/de/lyx-source/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/doc/core/de/lyx-source/images/time.png   |   Bin 0 -> 1049 bytes
 gosa-core/doc/core/de/lyx-source/images/tree.png   |   Bin 0 -> 894 bytes
 gosa-core/doc/core/de/lyx-source/images/true.png   |   Bin 0 -> 661 bytes
 gosa-core/doc/core/de/lyx-source/images/user.png   |   Bin 0 -> 3204 bytes
 .../doc/core/de/lyx-source/images/warning.png      |   Bin 0 -> 1692 bytes
 gosa-core/doc/core/de/lyx-source/images/zip.png    |   Bin 0 -> 791 bytes
 gosa-core/doc/core/de/lyx-source/ldapmanager.lyx   |   275 +
 gosa-core/doc/core/de/lyx-source/logview.lyx       |   150 +
 gosa-core/doc/core/de/lyx-source/macro.lyx         |   484 +
 gosa-core/doc/core/de/lyx-source/mailqueue.lyx     |   237 +
 gosa-core/doc/core/de/lyx-source/ogroups.lyx       |   327 +
 gosa-core/doc/core/de/lyx-source/users.lyx         |  2863 +++
 gosa-core/doc/core/en/html/applications/WARNINGS   |     5 +
 .../doc/core/en/html/applications/applications.css |    35 +
 .../core/en/html/applications/applications.html    |    67 +
 gosa-core/doc/core/en/html/applications/index.html |    67 +
 gosa-core/doc/core/en/html/applications/labels.pl  |    13 +
 .../doc/core/en/html/applications/list_back.png    |   Bin 0 -> 862 bytes
 .../doc/core/en/html/applications/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/en/html/applications/list_new_app.png |   Bin 0 -> 794 bytes
 .../doc/core/en/html/applications/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/applications/node1.html |   146 +
 gosa-core/doc/core/en/html/applications/node2.html |    72 +
 gosa-core/doc/core/en/html/applications/node3.html |    82 +
 gosa-core/doc/core/en/html/applications/node4.html |    46 +
 gosa-core/doc/core/en/html/applications/node5.html |    54 +
 gosa-core/doc/core/en/html/applications/node6.html |    38 +
 gosa-core/doc/core/en/html/applications/node7.html |    51 +
 gosa-core/doc/core/en/html/applications/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/applications/search.png |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/blocklists/WARNINGS     |     5 +
 .../doc/core/en/html/blocklists/blocklists.css     |   Bin 0 -> 1219 bytes
 .../doc/core/en/html/blocklists/blocklists.html    |    61 +
 gosa-core/doc/core/en/html/blocklists/index.html   |    61 +
 gosa-core/doc/core/en/html/blocklists/labels.pl    |    13 +
 .../doc/core/en/html/blocklists/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/en/html/blocklists/list_home.png      |   Bin 0 -> 865 bytes
 .../core/en/html/blocklists/list_new_blocklist.png |   Bin 0 -> 781 bytes
 .../doc/core/en/html/blocklists/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/blocklists/node1.html   |   139 +
 gosa-core/doc/core/en/html/blocklists/node2.html   |    61 +
 gosa-core/doc/core/en/html/blocklists/node3.html   |    48 +
 gosa-core/doc/core/en/html/blocklists/node4.html   |    37 +
 gosa-core/doc/core/en/html/blocklists/node5.html   |    51 +
 gosa-core/doc/core/en/html/blocklists/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/blocklists/search.png   |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/conference/WARNINGS     |     5 +
 .../doc/core/en/html/conference/conference.css     |   Bin 0 -> 1277 bytes
 .../doc/core/en/html/conference/conference.html    |    65 +
 gosa-core/doc/core/en/html/conference/index.html   |    65 +
 gosa-core/doc/core/en/html/conference/labels.pl    |    13 +
 .../doc/core/en/html/conference/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/en/html/conference/list_home.png      |   Bin 0 -> 865 bytes
 .../doc/core/en/html/conference/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/conference/node1.html   |   151 +
 gosa-core/doc/core/en/html/conference/node2.html   |    48 +
 gosa-core/doc/core/en/html/conference/node3.html   |    66 +
 gosa-core/doc/core/en/html/conference/node4.html   |    89 +
 gosa-core/doc/core/en/html/conference/node5.html   |    38 +
 gosa-core/doc/core/en/html/conference/node6.html   |    51 +
 gosa-core/doc/core/en/html/conference/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/conference/search.png   |   Bin 0 -> 1023 bytes
 .../en/html/conference/select_new_component.png    |   Bin 0 -> 452 bytes
 gosa-core/doc/core/en/html/departments/WARNINGS    |     5 +
 .../doc/core/en/html/departments/departments.css   |    44 +
 .../doc/core/en/html/departments/departments.html  |    65 +
 gosa-core/doc/core/en/html/departments/index.html  |    65 +
 gosa-core/doc/core/en/html/departments/labels.pl   |    13 +
 .../doc/core/en/html/departments/list_back.png     |   Bin 0 -> 862 bytes
 .../doc/core/en/html/departments/list_home.png     |   Bin 0 -> 865 bytes
 .../en/html/departments/list_new_department.png    |   Bin 0 -> 717 bytes
 .../doc/core/en/html/departments/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/departments/node1.html  |   147 +
 gosa-core/doc/core/en/html/departments/node2.html  |    48 +
 gosa-core/doc/core/en/html/departments/node3.html  |    59 +
 gosa-core/doc/core/en/html/departments/node4.html  |    62 +
 gosa-core/doc/core/en/html/departments/node5.html  |    38 +
 gosa-core/doc/core/en/html/departments/node6.html  |    51 +
 gosa-core/doc/core/en/html/departments/rocket.png  |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/departments/search.png  |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/faxreports/WARNINGS     |     5 +
 .../doc/core/en/html/faxreports/faxreports.css     |   Bin 0 -> 960 bytes
 .../doc/core/en/html/faxreports/faxreports.html    |    60 +
 gosa-core/doc/core/en/html/faxreports/index.html   |    60 +
 gosa-core/doc/core/en/html/faxreports/labels.pl    |    13 +
 gosa-core/doc/core/en/html/faxreports/node1.html   |    49 +
 gosa-core/doc/core/en/html/faxreports/node2.html   |    38 +
 gosa-core/doc/core/en/html/faxreports/node3.html   |    51 +
 gosa-core/doc/core/en/html/faxreports/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/fonreports/WARNINGS     |     5 +
 .../doc/core/en/html/fonreports/fonreports.css     |   Bin 0 -> 960 bytes
 .../doc/core/en/html/fonreports/fonreports.html    |    60 +
 gosa-core/doc/core/en/html/fonreports/index.html   |    60 +
 gosa-core/doc/core/en/html/fonreports/labels.pl    |    13 +
 gosa-core/doc/core/en/html/fonreports/node1.html   |    49 +
 gosa-core/doc/core/en/html/fonreports/node2.html   |    38 +
 gosa-core/doc/core/en/html/fonreports/node3.html   |    51 +
 gosa-core/doc/core/en/html/fonreports/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/groups/WARNINGS         |     5 +
 gosa-core/doc/core/en/html/groups/groups.css       |    52 +
 gosa-core/doc/core/en/html/groups/groups.html      |    91 +
 gosa-core/doc/core/en/html/groups/index.html       |    91 +
 gosa-core/doc/core/en/html/groups/labels.pl        |    13 +
 gosa-core/doc/core/en/html/groups/list_back.png    |   Bin 0 -> 862 bytes
 gosa-core/doc/core/en/html/groups/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/en/html/groups/list_new_group.png     |   Bin 0 -> 911 bytes
 gosa-core/doc/core/en/html/groups/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/groups/node1.html       |   193 +
 gosa-core/doc/core/en/html/groups/node10.html      |    50 +
 gosa-core/doc/core/en/html/groups/node11.html      |    55 +
 gosa-core/doc/core/en/html/groups/node12.html      |    60 +
 gosa-core/doc/core/en/html/groups/node13.html      |    47 +
 gosa-core/doc/core/en/html/groups/node14.html      |    59 +
 gosa-core/doc/core/en/html/groups/node15.html      |    50 +
 gosa-core/doc/core/en/html/groups/node16.html      |    47 +
 gosa-core/doc/core/en/html/groups/node17.html      |    38 +
 gosa-core/doc/core/en/html/groups/node18.html      |    51 +
 gosa-core/doc/core/en/html/groups/node2.html       |    72 +
 gosa-core/doc/core/en/html/groups/node3.html       |    60 +
 gosa-core/doc/core/en/html/groups/node4.html       |    43 +
 gosa-core/doc/core/en/html/groups/node5.html       |    43 +
 gosa-core/doc/core/en/html/groups/node6.html       |    43 +
 gosa-core/doc/core/en/html/groups/node7.html       |    43 +
 gosa-core/doc/core/en/html/groups/node8.html       |    43 +
 gosa-core/doc/core/en/html/groups/node9.html       |    43 +
 gosa-core/doc/core/en/html/groups/rocket.png       |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/ldapmanager/WARNINGS    |     4 +
 gosa-core/doc/core/en/html/ldapmanager/index.html  |    63 +
 gosa-core/doc/core/en/html/ldapmanager/labels.pl   |    13 +
 .../doc/core/en/html/ldapmanager/ldapmanager.css   |   Bin 0 -> 931 bytes
 .../doc/core/en/html/ldapmanager/ldapmanager.html  |    63 +
 gosa-core/doc/core/en/html/ldapmanager/node1.html  |    52 +
 gosa-core/doc/core/en/html/ldapmanager/node2.html  |    53 +
 gosa-core/doc/core/en/html/ldapmanager/node3.html  |    53 +
 gosa-core/doc/core/en/html/ldapmanager/node4.html  |    64 +
 gosa-core/doc/core/en/html/ldapmanager/node5.html  |    46 +
 gosa-core/doc/core/en/html/ldapmanager/node6.html  |    51 +
 gosa-core/doc/core/en/html/logview/WARNINGS        |     4 +
 gosa-core/doc/core/en/html/logview/index.html      |    57 +
 gosa-core/doc/core/en/html/logview/labels.pl       |    13 +
 gosa-core/doc/core/en/html/logview/logview.css     |    33 +
 gosa-core/doc/core/en/html/logview/logview.html    |    57 +
 gosa-core/doc/core/en/html/logview/node1.html      |    46 +
 gosa-core/doc/core/en/html/logview/node2.html      |    54 +
 gosa-core/doc/core/en/html/logview/node3.html      |    51 +
 gosa-core/doc/core/en/html/macro/WARNINGS          |     5 +
 gosa-core/doc/core/en/html/macro/index.html        |    61 +
 gosa-core/doc/core/en/html/macro/labels.pl         |    13 +
 gosa-core/doc/core/en/html/macro/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/en/html/macro/list_home.png     |   Bin 0 -> 865 bytes
 .../doc/core/en/html/macro/list_new_macro.png      |   Bin 0 -> 823 bytes
 gosa-core/doc/core/en/html/macro/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/macro/macro.css         |    35 +
 gosa-core/doc/core/en/html/macro/macro.html        |    61 +
 gosa-core/doc/core/en/html/macro/node1.html        |   143 +
 gosa-core/doc/core/en/html/macro/node2.html        |    74 +
 gosa-core/doc/core/en/html/macro/node3.html        |    59 +
 gosa-core/doc/core/en/html/macro/node4.html        |    38 +
 gosa-core/doc/core/en/html/macro/node5.html        |    51 +
 gosa-core/doc/core/en/html/macro/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/macro/search.png        |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/ogroups/WARNINGS        |     5 +
 gosa-core/doc/core/en/html/ogroups/index.html      |    59 +
 gosa-core/doc/core/en/html/ogroups/labels.pl       |    13 +
 gosa-core/doc/core/en/html/ogroups/list_back.png   |   Bin 0 -> 862 bytes
 gosa-core/doc/core/en/html/ogroups/list_home.png   |   Bin 0 -> 865 bytes
 .../doc/core/en/html/ogroups/list_new_ogroup.png   |   Bin 0 -> 754 bytes
 gosa-core/doc/core/en/html/ogroups/list_root.png   |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/ogroups/node1.html      |   162 +
 gosa-core/doc/core/en/html/ogroups/node2.html      |    61 +
 gosa-core/doc/core/en/html/ogroups/node3.html      |    38 +
 gosa-core/doc/core/en/html/ogroups/node4.html      |    51 +
 gosa-core/doc/core/en/html/ogroups/ogroups.css     |    43 +
 gosa-core/doc/core/en/html/ogroups/ogroups.html    |    59 +
 gosa-core/doc/core/en/html/ogroups/rocket.png      |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/ogroups/search.png      |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/users/WARNINGS          |     5 +
 gosa-core/doc/core/en/html/users/index.html        |   139 +
 gosa-core/doc/core/en/html/users/labels.pl         |    13 +
 gosa-core/doc/core/en/html/users/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/en/html/users/list_home.png     |   Bin 0 -> 865 bytes
 gosa-core/doc/core/en/html/users/list_new_user.png |   Bin 0 -> 788 bytes
 gosa-core/doc/core/en/html/users/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/en/html/users/node1.html        |   243 +
 gosa-core/doc/core/en/html/users/node10.html       |    60 +
 gosa-core/doc/core/en/html/users/node11.html       |    43 +
 gosa-core/doc/core/en/html/users/node12.html       |    43 +
 gosa-core/doc/core/en/html/users/node13.html       |    43 +
 gosa-core/doc/core/en/html/users/node14.html       |    43 +
 gosa-core/doc/core/en/html/users/node15.html       |    43 +
 gosa-core/doc/core/en/html/users/node16.html       |    43 +
 gosa-core/doc/core/en/html/users/node17.html       |    56 +
 gosa-core/doc/core/en/html/users/node18.html       |    59 +
 gosa-core/doc/core/en/html/users/node19.html       |    52 +
 gosa-core/doc/core/en/html/users/node2.html        |    48 +
 gosa-core/doc/core/en/html/users/node20.html       |    73 +
 gosa-core/doc/core/en/html/users/node21.html       |    53 +
 gosa-core/doc/core/en/html/users/node22.html       |    54 +
 gosa-core/doc/core/en/html/users/node23.html       |    62 +
 gosa-core/doc/core/en/html/users/node24.html       |   129 +
 gosa-core/doc/core/en/html/users/node25.html       |    54 +
 gosa-core/doc/core/en/html/users/node26.html       |    60 +
 gosa-core/doc/core/en/html/users/node27.html       |    46 +
 gosa-core/doc/core/en/html/users/node28.html       |    47 +
 gosa-core/doc/core/en/html/users/node29.html       |    46 +
 gosa-core/doc/core/en/html/users/node3.html        |   105 +
 gosa-core/doc/core/en/html/users/node30.html       |    46 +
 gosa-core/doc/core/en/html/users/node31.html       |    72 +
 gosa-core/doc/core/en/html/users/node32.html       |    56 +
 gosa-core/doc/core/en/html/users/node33.html       |    56 +
 gosa-core/doc/core/en/html/users/node34.html       |    53 +
 gosa-core/doc/core/en/html/users/node35.html       |    58 +
 gosa-core/doc/core/en/html/users/node36.html       |    58 +
 gosa-core/doc/core/en/html/users/node37.html       |    54 +
 gosa-core/doc/core/en/html/users/node38.html       |    47 +
 gosa-core/doc/core/en/html/users/node39.html       |    56 +
 gosa-core/doc/core/en/html/users/node4.html        |   109 +
 gosa-core/doc/core/en/html/users/node40.html       |    46 +
 gosa-core/doc/core/en/html/users/node41.html       |    39 +
 gosa-core/doc/core/en/html/users/node42.html       |    51 +
 gosa-core/doc/core/en/html/users/node5.html        |    56 +
 gosa-core/doc/core/en/html/users/node6.html        |    64 +
 gosa-core/doc/core/en/html/users/node7.html        |    49 +
 gosa-core/doc/core/en/html/users/node8.html        |    47 +
 gosa-core/doc/core/en/html/users/node9.html        |    67 +
 gosa-core/doc/core/en/html/users/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/html/users/search.png        |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/en/html/users/users.css         |    78 +
 gosa-core/doc/core/en/html/users/users.html        |   139 +
 gosa-core/doc/core/en/lyx-source/applications.lyx  |   464 +
 gosa-core/doc/core/en/lyx-source/blocklists.lyx    |   319 +
 gosa-core/doc/core/en/lyx-source/conference.lyx    |   406 +
 gosa-core/doc/core/en/lyx-source/departments.lyx   |   414 +
 gosa-core/doc/core/en/lyx-source/faxreports.lyx    |    68 +
 gosa-core/doc/core/en/lyx-source/fonreports.lyx    |    68 +
 gosa-core/doc/core/en/lyx-source/groups.lyx        |   633 +
 gosa-core/doc/core/en/lyx-source/images/action.png |   Bin 0 -> 397 bytes
 .../doc/core/en/lyx-source/images/addr_company.png |   Bin 0 -> 1818 bytes
 .../doc/core/en/lyx-source/images/addr_home.png    |   Bin 0 -> 1381 bytes
 .../core/en/lyx-source/images/addr_personal.png    |   Bin 0 -> 1372 bytes
 .../doc/core/en/lyx-source/images/addressbook.png  |   Bin 0 -> 5434 bytes
 .../core/en/lyx-source/images/alternatemail.png    |   Bin 0 -> 893 bytes
 .../doc/core/en/lyx-source/images/application.png  |   Bin 0 -> 3839 bytes
 gosa-core/doc/core/en/lyx-source/images/back.png   |   Bin 0 -> 733 bytes
 gosa-core/doc/core/en/lyx-source/images/banana.png |   Bin 0 -> 784 bytes
 .../doc/core/en/lyx-source/images/blocklists.png   |   Bin 0 -> 4295 bytes
 .../core/en/lyx-source/images/button_cancel.png    |   Bin 0 -> 883 bytes
 gosa-core/doc/core/en/lyx-source/images/certs.png  |   Bin 0 -> 693 bytes
 .../doc/core/en/lyx-source/images/closedlock.png   |   Bin 0 -> 750 bytes
 .../doc/core/en/lyx-source/images/conference.png   |   Bin 0 -> 4094 bytes
 .../doc/core/en/lyx-source/images/crossref.png     |   Bin 0 -> 628 bytes
 .../doc/core/en/lyx-source/images/default.jpg      |   Bin 0 -> 2502 bytes
 .../doc/core/en/lyx-source/images/default_icon.png |   Bin 0 -> 1957 bytes
 .../doc/core/en/lyx-source/images/department.png   |   Bin 0 -> 3728 bytes
 gosa-core/doc/core/en/lyx-source/images/dhcp.png   |   Bin 0 -> 4674 bytes
 .../doc/core/en/lyx-source/images/display.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/en/lyx-source/images/dns.png    |   Bin 0 -> 4739 bytes
 gosa-core/doc/core/en/lyx-source/images/dtree.png  |   Bin 0 -> 694 bytes
 gosa-core/doc/core/en/lyx-source/images/edit.png   |   Bin 0 -> 946 bytes
 .../doc/core/en/lyx-source/images/editcopy.png     |   Bin 0 -> 777 bytes
 .../doc/core/en/lyx-source/images/editdelete.png   |   Bin 0 -> 892 bytes
 .../doc/core/en/lyx-source/images/editpaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/en/lyx-source/images/edittrash.png    |   Bin 0 -> 691 bytes
 gosa-core/doc/core/en/lyx-source/images/email.png  |   Bin 0 -> 4142 bytes
 gosa-core/doc/core/en/lyx-source/images/empty.png  |   Bin 0 -> 174 bytes
 .../doc/core/en/lyx-source/images/encrypted.png    |   Bin 0 -> 1239 bytes
 .../doc/core/en/lyx-source/images/envelope.png     |   Bin 0 -> 843 bytes
 gosa-core/doc/core/en/lyx-source/images/expand.png |   Bin 0 -> 183 bytes
 gosa-core/doc/core/en/lyx-source/images/false.png  |   Bin 0 -> 745 bytes
 gosa-core/doc/core/en/lyx-source/images/fax.png    |   Bin 0 -> 3352 bytes
 .../doc/core/en/lyx-source/images/fax_small.png    |   Bin 0 -> 787 bytes
 .../doc/core/en/lyx-source/images/filesaveas.png   |   Bin 0 -> 1253 bytes
 gosa-core/doc/core/en/lyx-source/images/flag.png   |   Bin 0 -> 745 bytes
 gosa-core/doc/core/en/lyx-source/images/folder.png |   Bin 0 -> 594 bytes
 .../doc/core/en/lyx-source/images/forward.png      |   Bin 0 -> 726 bytes
 gosa-core/doc/core/en/lyx-source/images/ftp.png    |   Bin 0 -> 4365 bytes
 .../doc/core/en/lyx-source/images/fullfolder.png   |   Bin 0 -> 587 bytes
 gosa-core/doc/core/en/lyx-source/images/group.png  |   Bin 0 -> 4224 bytes
 .../doc/core/en/lyx-source/images/hardware.png     |   Bin 0 -> 836 bytes
 .../en/lyx-source/images/hdd_linux_unmount.png     |   Bin 0 -> 6805 bytes
 gosa-core/doc/core/en/lyx-source/images/head.png   |   Bin 0 -> 753 bytes
 gosa-core/doc/core/en/lyx-source/images/help.png   |   Bin 0 -> 1136 bytes
 gosa-core/doc/core/en/lyx-source/images/house.png  |   Bin 0 -> 713 bytes
 gosa-core/doc/core/en/lyx-source/images/img1.png   |   Bin 0 -> 97 bytes
 gosa-core/doc/core/en/lyx-source/images/info.png   |   Bin 0 -> 1195 bytes
 .../doc/core/en/lyx-source/images/info_small.png   |   Bin 0 -> 936 bytes
 .../doc/core/en/lyx-source/images/keyboard.png     |   Bin 0 -> 343 bytes
 gosa-core/doc/core/en/lyx-source/images/lamp.png   |   Bin 0 -> 829 bytes
 gosa-core/doc/core/en/lyx-source/images/launch.png |   Bin 0 -> 1263 bytes
 .../doc/core/en/lyx-source/images/ldapserver.png   |   Bin 0 -> 3276 bytes
 gosa-core/doc/core/en/lyx-source/images/ldif.png   |   Bin 0 -> 2801 bytes
 .../doc/core/en/lyx-source/images/list_back.png    |   Bin 0 -> 862 bytes
 .../core/en/lyx-source/images/list_blocklist.png   |   Bin 0 -> 671 bytes
 .../doc/core/en/lyx-source/images/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/en/lyx-source/images/list_macro.png   |   Bin 0 -> 927 bytes
 .../doc/core/en/lyx-source/images/list_new.png     |   Bin 0 -> 642 bytes
 .../doc/core/en/lyx-source/images/list_new_app.png |   Bin 0 -> 794 bytes
 .../en/lyx-source/images/list_new_blocklist.png    |   Bin 0 -> 781 bytes
 .../en/lyx-source/images/list_new_department.png   |   Bin 0 -> 717 bytes
 .../core/en/lyx-source/images/list_new_group.png   |   Bin 0 -> 911 bytes
 .../core/en/lyx-source/images/list_new_macro.png   |   Bin 0 -> 823 bytes
 .../core/en/lyx-source/images/list_new_ogroup.png  |   Bin 0 -> 754 bytes
 .../core/en/lyx-source/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../doc/core/en/lyx-source/images/list_ogroup.png  |   Bin 0 -> 728 bytes
 .../core/en/lyx-source/images/list_password.png    |   Bin 0 -> 693 bytes
 .../doc/core/en/lyx-source/images/list_root.png    |   Bin 0 -> 852 bytes
 .../core/en/lyx-source/images/list_seperator.png   |   Bin 0 -> 177 bytes
 .../doc/core/en/lyx-source/images/list_submit.png  |   Bin 0 -> 614 bytes
 .../doc/core/en/lyx-source/images/list_up.png      |   Bin 0 -> 862 bytes
 .../doc/core/en/lyx-source/images/log_critical.png |   Bin 0 -> 745 bytes
 .../doc/core/en/lyx-source/images/log_info.png     |   Bin 0 -> 936 bytes
 .../doc/core/en/lyx-source/images/log_unknown.png  |   Bin 0 -> 746 bytes
 .../doc/core/en/lyx-source/images/log_warning.png  |   Bin 0 -> 829 bytes
 gosa-core/doc/core/en/lyx-source/images/login.png  |   Bin 0 -> 9533 bytes
 .../doc/core/en/lyx-source/images/logview.png      |   Bin 0 -> 3646 bytes
 gosa-core/doc/core/en/lyx-source/images/macros.png |   Bin 0 -> 4794 bytes
 gosa-core/doc/core/en/lyx-source/images/mailto.png |   Bin 0 -> 692 bytes
 .../doc/core/en/lyx-source/images/members.png      |   Bin 0 -> 868 bytes
 gosa-core/doc/core/en/lyx-source/images/mouse.png  |   Bin 0 -> 751 bytes
 .../doc/core/en/lyx-source/images/network.png      |   Bin 0 -> 894 bytes
 gosa-core/doc/core/en/lyx-source/images/null.gif   |   Bin 0 -> 49 bytes
 gosa-core/doc/core/en/lyx-source/images/ogroup.png |   Bin 0 -> 3510 bytes
 .../doc/core/en/lyx-source/images/openlock.png     |   Bin 0 -> 923 bytes
 .../doc/core/en/lyx-source/images/password.png     |   Bin 0 -> 3316 bytes
 .../doc/core/en/lyx-source/images/penguin.png      |   Bin 0 -> 964 bytes
 .../doc/core/en/lyx-source/images/personal.png     |   Bin 0 -> 4119 bytes
 gosa-core/doc/core/en/lyx-source/images/phone.png  |   Bin 0 -> 4263 bytes
 .../doc/core/en/lyx-source/images/phonereport.png  |   Bin 0 -> 3125 bytes
 gosa-core/doc/core/en/lyx-source/images/posix.png  |   Bin 0 -> 4083 bytes
 .../doc/core/en/lyx-source/images/printer.png      |   Bin 0 -> 678 bytes
 gosa-core/doc/core/en/lyx-source/images/proxy.png  |   Bin 0 -> 5227 bytes
 .../doc/core/en/lyx-source/images/reports.png      |   Bin 0 -> 4298 bytes
 .../doc/core/en/lyx-source/images/rightarrow.png   |   Bin 0 -> 863 bytes
 gosa-core/doc/core/en/lyx-source/images/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/en/lyx-source/images/samba.png  |   Bin 0 -> 5472 bytes
 gosa-core/doc/core/en/lyx-source/images/save.png   |   Bin 0 -> 595 bytes
 .../doc/core/en/lyx-source/images/scanner.png      |   Bin 0 -> 809 bytes
 gosa-core/doc/core/en/lyx-source/images/search.png |   Bin 0 -> 1023 bytes
 .../en/lyx-source/images/select_application.png    |   Bin 0 -> 959 bytes
 .../core/en/lyx-source/images/select_component.png |   Bin 0 -> 458 bytes
 .../core/en/lyx-source/images/select_default.png   |   Bin 0 -> 725 bytes
 .../en/lyx-source/images/select_department.png     |   Bin 0 -> 731 bytes
 .../core/en/lyx-source/images/select_groups.png    |   Bin 0 -> 868 bytes
 .../doc/core/en/lyx-source/images/select_macro.png |   Bin 0 -> 927 bytes
 .../en/lyx-source/images/select_new_component.png  |   Bin 0 -> 452 bytes
 .../core/en/lyx-source/images/select_new_phone.png |   Bin 0 -> 660 bytes
 .../en/lyx-source/images/select_new_printer.png    |   Bin 0 -> 746 bytes
 .../en/lyx-source/images/select_new_server.png     |   Bin 0 -> 813 bytes
 .../en/lyx-source/images/select_new_terminal.png   |   Bin 0 -> 776 bytes
 .../lyx-source/images/select_new_workstation.png   |   Bin 0 -> 827 bytes
 .../core/en/lyx-source/images/select_ogroup.png    |   Bin 0 -> 794 bytes
 .../doc/core/en/lyx-source/images/select_phone.png |   Bin 0 -> 784 bytes
 .../lyx-source/images/select_phone_connected.png   |   Bin 0 -> 864 bytes
 .../core/en/lyx-source/images/select_printer.png   |   Bin 0 -> 678 bytes
 .../doc/core/en/lyx-source/images/select_proxy.png |   Bin 0 -> 894 bytes
 .../core/en/lyx-source/images/select_server.png    |   Bin 0 -> 879 bytes
 .../core/en/lyx-source/images/select_template.png  |   Bin 0 -> 512 bytes
 .../core/en/lyx-source/images/select_terminal.png  |   Bin 0 -> 778 bytes
 .../doc/core/en/lyx-source/images/select_user.png  |   Bin 0 -> 753 bytes
 .../en/lyx-source/images/select_winstation.png     |   Bin 0 -> 675 bytes
 .../en/lyx-source/images/select_workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/doc/core/en/lyx-source/images/server.png |   Bin 0 -> 879 bytes
 .../doc/core/en/lyx-source/images/service.png      |   Bin 0 -> 4135 bytes
 .../doc/core/en/lyx-source/images/small_filter.png |   Bin 0 -> 814 bytes
 .../doc/core/en/lyx-source/images/sort_down.png    |   Bin 0 -> 174 bytes
 .../doc/core/en/lyx-source/images/sort_up.png      |   Bin 0 -> 176 bytes
 gosa-core/doc/core/en/lyx-source/images/sound.png  |   Bin 0 -> 898 bytes
 gosa-core/doc/core/en/lyx-source/images/stop.png   |   Bin 0 -> 974 bytes
 gosa-core/doc/core/en/lyx-source/images/system.png |   Bin 0 -> 3105 bytes
 .../core/en/lyx-source/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/doc/core/en/lyx-source/images/time.png   |   Bin 0 -> 1049 bytes
 gosa-core/doc/core/en/lyx-source/images/tree.png   |   Bin 0 -> 894 bytes
 gosa-core/doc/core/en/lyx-source/images/true.png   |   Bin 0 -> 661 bytes
 gosa-core/doc/core/en/lyx-source/images/user.png   |   Bin 0 -> 3204 bytes
 .../doc/core/en/lyx-source/images/warning.png      |   Bin 0 -> 1692 bytes
 gosa-core/doc/core/en/lyx-source/images/zip.png    |   Bin 0 -> 791 bytes
 gosa-core/doc/core/en/lyx-source/ldapmanager.lyx   |   256 +
 gosa-core/doc/core/en/lyx-source/logview.lyx       |   163 +
 gosa-core/doc/core/en/lyx-source/macro.lyx         |   415 +
 gosa-core/doc/core/en/lyx-source/ogroups.lyx       |   329 +
 gosa-core/doc/core/en/lyx-source/users.lyx         |  1982 +++
 gosa-core/doc/core/es/lyx-source/images/action.png |   Bin 0 -> 397 bytes
 .../doc/core/es/lyx-source/images/addr_company.png |   Bin 0 -> 1818 bytes
 .../doc/core/es/lyx-source/images/addr_home.png    |   Bin 0 -> 1381 bytes
 .../core/es/lyx-source/images/addr_personal.png    |   Bin 0 -> 1372 bytes
 .../doc/core/es/lyx-source/images/addressbook.png  |   Bin 0 -> 5434 bytes
 .../core/es/lyx-source/images/alternatemail.png    |   Bin 0 -> 893 bytes
 .../doc/core/es/lyx-source/images/application.png  |   Bin 0 -> 3839 bytes
 gosa-core/doc/core/es/lyx-source/images/back.png   |   Bin 0 -> 733 bytes
 gosa-core/doc/core/es/lyx-source/images/banana.png |   Bin 0 -> 784 bytes
 .../doc/core/es/lyx-source/images/blocklists.png   |   Bin 0 -> 4295 bytes
 gosa-core/doc/core/es/lyx-source/images/branch.png |   Bin 0 -> 694 bytes
 .../doc/core/es/lyx-source/images/branch_small.png |   Bin 0 -> 609 bytes
 .../core/es/lyx-source/images/button_cancel.png    |   Bin 0 -> 883 bytes
 .../core/es/lyx-source/images/cant_editpaste.png   |   Bin 0 -> 465 bytes
 gosa-core/doc/core/es/lyx-source/images/certs.png  |   Bin 0 -> 693 bytes
 .../doc/core/es/lyx-source/images/closedlock.png   |   Bin 0 -> 750 bytes
 .../doc/core/es/lyx-source/images/conference.png   |   Bin 0 -> 4094 bytes
 .../doc/core/es/lyx-source/images/copypaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/es/lyx-source/images/crossref.png     |   Bin 0 -> 628 bytes
 .../doc/core/es/lyx-source/images/cutpaste.png     |   Bin 0 -> 898 bytes
 .../doc/core/es/lyx-source/images/default.jpg      |   Bin 0 -> 2502 bytes
 .../doc/core/es/lyx-source/images/default_icon.png |   Bin 0 -> 1957 bytes
 .../doc/core/es/lyx-source/images/department.png   |   Bin 0 -> 3728 bytes
 gosa-core/doc/core/es/lyx-source/images/dfs.png    |   Bin 0 -> 3646 bytes
 gosa-core/doc/core/es/lyx-source/images/dhcp.png   |   Bin 0 -> 4674 bytes
 .../doc/core/es/lyx-source/images/display.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/es/lyx-source/images/dns.png    |   Bin 0 -> 4739 bytes
 gosa-core/doc/core/es/lyx-source/images/drives.png |   Bin 0 -> 950 bytes
 gosa-core/doc/core/es/lyx-source/images/dtree.png  |   Bin 0 -> 694 bytes
 gosa-core/doc/core/es/lyx-source/images/edit.png   |   Bin 0 -> 946 bytes
 .../doc/core/es/lyx-source/images/editcopy.png     |   Bin 0 -> 777 bytes
 .../doc/core/es/lyx-source/images/editcut.png      |   Bin 0 -> 804 bytes
 .../doc/core/es/lyx-source/images/editdelete.png   |   Bin 0 -> 892 bytes
 .../doc/core/es/lyx-source/images/editpaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/es/lyx-source/images/edittrash.png    |   Bin 0 -> 691 bytes
 gosa-core/doc/core/es/lyx-source/images/email.png  |   Bin 0 -> 4142 bytes
 gosa-core/doc/core/es/lyx-source/images/empty.png  |   Bin 0 -> 174 bytes
 .../doc/core/es/lyx-source/images/encrypted.png    |   Bin 0 -> 1239 bytes
 gosa-core/doc/core/es/lyx-source/images/env.png    |   Bin 0 -> 3242 bytes
 .../doc/core/es/lyx-source/images/envelope.png     |   Bin 0 -> 843 bytes
 gosa-core/doc/core/es/lyx-source/images/expand.png |   Bin 0 -> 183 bytes
 gosa-core/doc/core/es/lyx-source/images/fai.png    |   Bin 0 -> 4931 bytes
 .../doc/core/es/lyx-source/images/fai_hook.png     |   Bin 0 -> 692 bytes
 .../doc/core/es/lyx-source/images/fai_new_hook.png |   Bin 0 -> 662 bytes
 .../core/es/lyx-source/images/fai_new_packages.png |   Bin 0 -> 743 bytes
 .../lyx-source/images/fai_new_partitionTable.png   |   Bin 0 -> 809 bytes
 .../core/es/lyx-source/images/fai_new_profile.png  |   Bin 0 -> 903 bytes
 .../core/es/lyx-source/images/fai_new_script.png   |   Bin 0 -> 658 bytes
 .../core/es/lyx-source/images/fai_new_template.png |   Bin 0 -> 630 bytes
 .../core/es/lyx-source/images/fai_new_variable.png |   Bin 0 -> 410 bytes
 .../doc/core/es/lyx-source/images/fai_packages.png |   Bin 0 -> 959 bytes
 .../es/lyx-source/images/fai_partitionTable.png    |   Bin 0 -> 725 bytes
 .../doc/core/es/lyx-source/images/fai_profile.png  |   Bin 0 -> 1094 bytes
 .../doc/core/es/lyx-source/images/fai_script.png   |   Bin 0 -> 601 bytes
 .../doc/core/es/lyx-source/images/fai_small.png    |   Bin 0 -> 885 bytes
 .../doc/core/es/lyx-source/images/fai_template.png |   Bin 0 -> 512 bytes
 .../doc/core/es/lyx-source/images/fai_variable.png |   Bin 0 -> 429 bytes
 gosa-core/doc/core/es/lyx-source/images/false.png  |   Bin 0 -> 745 bytes
 gosa-core/doc/core/es/lyx-source/images/fax.png    |   Bin 0 -> 3352 bytes
 .../doc/core/es/lyx-source/images/fax_small.png    |   Bin 0 -> 787 bytes
 .../doc/core/es/lyx-source/images/filesaveas.png   |   Bin 0 -> 1253 bytes
 gosa-core/doc/core/es/lyx-source/images/flag.png   |   Bin 0 -> 745 bytes
 gosa-core/doc/core/es/lyx-source/images/folder.png |   Bin 0 -> 594 bytes
 .../doc/core/es/lyx-source/images/forward.png      |   Bin 0 -> 726 bytes
 gosa-core/doc/core/es/lyx-source/images/ftp.png    |   Bin 0 -> 4365 bytes
 .../doc/core/es/lyx-source/images/fullfolder.png   |   Bin 0 -> 587 bytes
 .../doc/core/es/lyx-source/images/gfx_hardware.png |   Bin 0 -> 819 bytes
 gosa-core/doc/core/es/lyx-source/images/group.png  |   Bin 0 -> 4224 bytes
 .../doc/core/es/lyx-source/images/hardware.png     |   Bin 0 -> 836 bytes
 .../es/lyx-source/images/hdd_linux_unmount.png     |   Bin 0 -> 6805 bytes
 gosa-core/doc/core/es/lyx-source/images/head.png   |   Bin 0 -> 753 bytes
 gosa-core/doc/core/es/lyx-source/images/help.png   |   Bin 0 -> 1136 bytes
 .../doc/core/es/lyx-source/images/hotplug.png      |   Bin 0 -> 861 bytes
 gosa-core/doc/core/es/lyx-source/images/house.png  |   Bin 0 -> 713 bytes
 gosa-core/doc/core/es/lyx-source/images/img1.png   |   Bin 0 -> 97 bytes
 gosa-core/doc/core/es/lyx-source/images/info.png   |   Bin 0 -> 1195 bytes
 .../doc/core/es/lyx-source/images/info_small.png   |   Bin 0 -> 936 bytes
 .../doc/core/es/lyx-source/images/keyboard.png     |   Bin 0 -> 343 bytes
 gosa-core/doc/core/es/lyx-source/images/lamp.png   |   Bin 0 -> 829 bytes
 gosa-core/doc/core/es/lyx-source/images/launch.png |   Bin 0 -> 1263 bytes
 .../doc/core/es/lyx-source/images/ldapserver.png   |   Bin 0 -> 3276 bytes
 gosa-core/doc/core/es/lyx-source/images/ldif.png   |   Bin 0 -> 2801 bytes
 .../doc/core/es/lyx-source/images/list_back.png    |   Bin 0 -> 862 bytes
 .../core/es/lyx-source/images/list_blocklist.png   |   Bin 0 -> 671 bytes
 .../doc/core/es/lyx-source/images/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/es/lyx-source/images/list_macro.png   |   Bin 0 -> 927 bytes
 .../doc/core/es/lyx-source/images/list_new.png     |   Bin 0 -> 642 bytes
 .../doc/core/es/lyx-source/images/list_new_app.png |   Bin 0 -> 794 bytes
 .../es/lyx-source/images/list_new_blocklist.png    |   Bin 0 -> 781 bytes
 .../es/lyx-source/images/list_new_conference.png   |   Bin 0 -> 904 bytes
 .../es/lyx-source/images/list_new_department.png   |   Bin 0 -> 717 bytes
 .../core/es/lyx-source/images/list_new_group.png   |   Bin 0 -> 911 bytes
 .../core/es/lyx-source/images/list_new_macro.png   |   Bin 0 -> 823 bytes
 .../core/es/lyx-source/images/list_new_ogroup.png  |   Bin 0 -> 754 bytes
 .../core/es/lyx-source/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../doc/core/es/lyx-source/images/list_ogroup.png  |   Bin 0 -> 728 bytes
 .../core/es/lyx-source/images/list_password.png    |   Bin 0 -> 693 bytes
 .../doc/core/es/lyx-source/images/list_reload.png  |   Bin 0 -> 910 bytes
 .../doc/core/es/lyx-source/images/list_root.png    |   Bin 0 -> 852 bytes
 .../core/es/lyx-source/images/list_seperator.png   |   Bin 0 -> 177 bytes
 .../doc/core/es/lyx-source/images/list_submit.png  |   Bin 0 -> 614 bytes
 .../doc/core/es/lyx-source/images/list_up.png      |   Bin 0 -> 862 bytes
 .../doc/core/es/lyx-source/images/log_critical.png |   Bin 0 -> 745 bytes
 .../doc/core/es/lyx-source/images/log_info.png     |   Bin 0 -> 936 bytes
 .../doc/core/es/lyx-source/images/log_unknown.png  |   Bin 0 -> 746 bytes
 .../doc/core/es/lyx-source/images/log_warning.png  |   Bin 0 -> 829 bytes
 gosa-core/doc/core/es/lyx-source/images/login.png  |   Bin 0 -> 9533 bytes
 .../doc/core/es/lyx-source/images/logview.png      |   Bin 0 -> 3406 bytes
 gosa-core/doc/core/es/lyx-source/images/macros.png |   Bin 0 -> 4794 bytes
 .../doc/core/es/lyx-source/images/mailq_active.png |   Bin 0 -> 574 bytes
 .../doc/core/es/lyx-source/images/mailq_header.png |   Bin 0 -> 936 bytes
 .../doc/core/es/lyx-source/images/mailq_hold.png   |   Bin 0 -> 750 bytes
 .../core/es/lyx-source/images/mailq_requeue.png    |   Bin 0 -> 910 bytes
 .../doc/core/es/lyx-source/images/mailq_unhold.png |   Bin 0 -> 829 bytes
 .../doc/core/es/lyx-source/images/mailqueue.png    |   Bin 0 -> 4132 bytes
 gosa-core/doc/core/es/lyx-source/images/mailto.png |   Bin 0 -> 635 bytes
 .../doc/core/es/lyx-source/images/mainboard.png    |   Bin 0 -> 782 bytes
 .../doc/core/es/lyx-source/images/members.png      |   Bin 0 -> 868 bytes
 gosa-core/doc/core/es/lyx-source/images/memory.png |   Bin 0 -> 931 bytes
 .../doc/core/es/lyx-source/images/monitor.png      |   Bin 0 -> 733 bytes
 .../doc/core/es/lyx-source/images/monitoring.png   |   Bin 0 -> 4804 bytes
 gosa-core/doc/core/es/lyx-source/images/mouse.png  |   Bin 0 -> 751 bytes
 .../doc/core/es/lyx-source/images/net_hardware.png |   Bin 0 -> 828 bytes
 .../doc/core/es/lyx-source/images/netatalk.png     |   Bin 0 -> 3642 bytes
 .../doc/core/es/lyx-source/images/network.png      |   Bin 0 -> 894 bytes
 gosa-core/doc/core/es/lyx-source/images/null.gif   |   Bin 0 -> 49 bytes
 gosa-core/doc/core/es/lyx-source/images/ogroup.png |   Bin 0 -> 3510 bytes
 .../doc/core/es/lyx-source/images/openlock.png     |   Bin 0 -> 923 bytes
 .../doc/core/es/lyx-source/images/password.png     |   Bin 0 -> 3316 bytes
 .../doc/core/es/lyx-source/images/penguin.png      |   Bin 0 -> 964 bytes
 .../doc/core/es/lyx-source/images/personal.png     |   Bin 0 -> 4119 bytes
 gosa-core/doc/core/es/lyx-source/images/phone.png  |   Bin 0 -> 4263 bytes
 .../doc/core/es/lyx-source/images/phonereport.png  |   Bin 0 -> 3125 bytes
 gosa-core/doc/core/es/lyx-source/images/posix.png  |   Bin 0 -> 4083 bytes
 .../doc/core/es/lyx-source/images/printer.png      |   Bin 0 -> 678 bytes
 .../doc/core/es/lyx-source/images/processor.png    |   Bin 0 -> 400 bytes
 gosa-core/doc/core/es/lyx-source/images/proxy.png  |   Bin 0 -> 5227 bytes
 .../doc/core/es/lyx-source/images/reports.png      |   Bin 0 -> 4298 bytes
 .../doc/core/es/lyx-source/images/rightarrow.png   |   Bin 0 -> 863 bytes
 gosa-core/doc/core/es/lyx-source/images/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/es/lyx-source/images/samba.png  |   Bin 0 -> 5472 bytes
 gosa-core/doc/core/es/lyx-source/images/save.png   |   Bin 0 -> 595 bytes
 .../doc/core/es/lyx-source/images/scanner.png      |   Bin 0 -> 809 bytes
 gosa-core/doc/core/es/lyx-source/images/search.png |   Bin 0 -> 1023 bytes
 .../doc/core/es/lyx-source/images/search_user.png  |   Bin 0 -> 962 bytes
 .../es/lyx-source/images/select_application.png    |   Bin 0 -> 959 bytes
 .../core/es/lyx-source/images/select_component.png |   Bin 0 -> 458 bytes
 .../es/lyx-source/images/select_conference.png     |   Bin 0 -> 868 bytes
 .../core/es/lyx-source/images/select_default.png   |   Bin 0 -> 725 bytes
 .../es/lyx-source/images/select_department.png     |   Bin 0 -> 731 bytes
 .../core/es/lyx-source/images/select_groups.png    |   Bin 0 -> 868 bytes
 .../images/select_invalid_application.png          |   Bin 0 -> 858 bytes
 .../doc/core/es/lyx-source/images/select_macro.png |   Bin 0 -> 927 bytes
 .../core/es/lyx-source/images/select_netatalk.png  |   Bin 0 -> 828 bytes
 .../es/lyx-source/images/select_new_component.png  |   Bin 0 -> 452 bytes
 .../core/es/lyx-source/images/select_new_phone.png |   Bin 0 -> 660 bytes
 .../es/lyx-source/images/select_new_printer.png    |   Bin 0 -> 746 bytes
 .../es/lyx-source/images/select_new_server.png     |   Bin 0 -> 813 bytes
 .../es/lyx-source/images/select_new_terminal.png   |   Bin 0 -> 776 bytes
 .../lyx-source/images/select_new_workstation.png   |   Bin 0 -> 827 bytes
 .../core/es/lyx-source/images/select_newsystem.png |   Bin 0 -> 642 bytes
 .../core/es/lyx-source/images/select_ogroup.png    |   Bin 0 -> 794 bytes
 .../doc/core/es/lyx-source/images/select_phone.png |   Bin 0 -> 784 bytes
 .../lyx-source/images/select_phone_connected.png   |   Bin 0 -> 864 bytes
 .../core/es/lyx-source/images/select_printer.png   |   Bin 0 -> 678 bytes
 .../doc/core/es/lyx-source/images/select_proxy.png |   Bin 0 -> 894 bytes
 .../core/es/lyx-source/images/select_server.png    |   Bin 0 -> 879 bytes
 .../core/es/lyx-source/images/select_template.png  |   Bin 0 -> 512 bytes
 .../core/es/lyx-source/images/select_terminal.png  |   Bin 0 -> 778 bytes
 .../doc/core/es/lyx-source/images/select_user.png  |   Bin 0 -> 753 bytes
 .../es/lyx-source/images/select_winstation.png     |   Bin 0 -> 675 bytes
 .../es/lyx-source/images/select_workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/doc/core/es/lyx-source/images/server.png |   Bin 0 -> 879 bytes
 .../doc/core/es/lyx-source/images/service.png      |   Bin 0 -> 4135 bytes
 .../doc/core/es/lyx-source/images/small_filter.png |   Bin 0 -> 814 bytes
 .../doc/core/es/lyx-source/images/smallenv.png     |   Bin 0 -> 733 bytes
 .../doc/core/es/lyx-source/images/snd_hardware.png |   Bin 0 -> 803 bytes
 .../doc/core/es/lyx-source/images/sort_down.png    |   Bin 0 -> 174 bytes
 .../doc/core/es/lyx-source/images/sort_up.png      |   Bin 0 -> 176 bytes
 gosa-core/doc/core/es/lyx-source/images/sound.png  |   Bin 0 -> 898 bytes
 gosa-core/doc/core/es/lyx-source/images/stop.png   |   Bin 0 -> 974 bytes
 gosa-core/doc/core/es/lyx-source/images/system.png |   Bin 0 -> 3105 bytes
 .../core/es/lyx-source/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/doc/core/es/lyx-source/images/time.png   |   Bin 0 -> 1049 bytes
 gosa-core/doc/core/es/lyx-source/images/tree.png   |   Bin 0 -> 894 bytes
 gosa-core/doc/core/es/lyx-source/images/true.png   |   Bin 0 -> 661 bytes
 gosa-core/doc/core/es/lyx-source/images/user.png   |   Bin 0 -> 3204 bytes
 .../doc/core/es/lyx-source/images/warning.png      |   Bin 0 -> 1692 bytes
 gosa-core/doc/core/es/lyx-source/images/zip.png    |   Bin 0 -> 791 bytes
 gosa-core/doc/core/fr/html/applications/WARNINGS   |     5 +
 .../doc/core/fr/html/applications/applications.css |    37 +
 .../core/fr/html/applications/applications.html    |    69 +
 gosa-core/doc/core/fr/html/applications/index.html |    69 +
 gosa-core/doc/core/fr/html/applications/labels.pl  |    13 +
 .../doc/core/fr/html/applications/list_back.png    |   Bin 0 -> 862 bytes
 .../doc/core/fr/html/applications/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/fr/html/applications/list_new_app.png |   Bin 0 -> 794 bytes
 .../doc/core/fr/html/applications/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/applications/node1.html |   148 +
 gosa-core/doc/core/fr/html/applications/node2.html |    50 +
 gosa-core/doc/core/fr/html/applications/node3.html |    67 +
 gosa-core/doc/core/fr/html/applications/node4.html |    77 +
 gosa-core/doc/core/fr/html/applications/node5.html |    43 +
 gosa-core/doc/core/fr/html/applications/node6.html |    59 +
 gosa-core/doc/core/fr/html/applications/node7.html |    38 +
 gosa-core/doc/core/fr/html/applications/node8.html |    51 +
 gosa-core/doc/core/fr/html/applications/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/applications/search.png |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/blocklists/WARNINGS     |     5 +
 .../doc/core/fr/html/blocklists/blocklists.css     |   Bin 0 -> 1074 bytes
 .../doc/core/fr/html/blocklists/blocklists.html    |    59 +
 gosa-core/doc/core/fr/html/blocklists/index.html   |    59 +
 gosa-core/doc/core/fr/html/blocklists/labels.pl    |    13 +
 .../doc/core/fr/html/blocklists/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/fr/html/blocklists/list_home.png      |   Bin 0 -> 865 bytes
 .../core/fr/html/blocklists/list_new_blocklist.png |   Bin 0 -> 781 bytes
 .../doc/core/fr/html/blocklists/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/blocklists/node1.html   |   138 +
 gosa-core/doc/core/fr/html/blocklists/node2.html   |    61 +
 gosa-core/doc/core/fr/html/blocklists/node3.html   |    41 +
 gosa-core/doc/core/fr/html/blocklists/node4.html   |    51 +
 gosa-core/doc/core/fr/html/blocklists/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/blocklists/search.png   |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/conference/WARNINGS     |     5 +
 .../doc/core/fr/html/conference/conference.css     |    42 +
 .../doc/core/fr/html/conference/conference.html    |    65 +
 .../doc/core/fr/html/conference/conference.png     |   Bin 0 -> 4094 bytes
 gosa-core/doc/core/fr/html/conference/index.html   |    65 +
 gosa-core/doc/core/fr/html/conference/labels.pl    |    13 +
 .../doc/core/fr/html/conference/list_back.png      |   Bin 0 -> 862 bytes
 .../doc/core/fr/html/conference/list_home.png      |   Bin 0 -> 865 bytes
 .../doc/core/fr/html/conference/list_root.png      |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/conference/node1.html   |   150 +
 gosa-core/doc/core/fr/html/conference/node2.html   |    48 +
 gosa-core/doc/core/fr/html/conference/node3.html   |    65 +
 gosa-core/doc/core/fr/html/conference/node4.html   |    90 +
 gosa-core/doc/core/fr/html/conference/node5.html   |    38 +
 gosa-core/doc/core/fr/html/conference/node6.html   |    51 +
 gosa-core/doc/core/fr/html/conference/rocket.png   |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/conference/search.png   |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/departments/WARNINGS    |     5 +
 .../doc/core/fr/html/departments/departments.css   |    38 +
 .../doc/core/fr/html/departments/departments.html  |    65 +
 gosa-core/doc/core/fr/html/departments/index.html  |    65 +
 gosa-core/doc/core/fr/html/departments/labels.pl   |    13 +
 .../doc/core/fr/html/departments/list_back.png     |   Bin 0 -> 862 bytes
 .../doc/core/fr/html/departments/list_home.png     |   Bin 0 -> 865 bytes
 .../fr/html/departments/list_new_department.png    |   Bin 0 -> 717 bytes
 .../doc/core/fr/html/departments/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/departments/node1.html  |   146 +
 gosa-core/doc/core/fr/html/departments/node2.html  |    48 +
 gosa-core/doc/core/fr/html/departments/node3.html  |    65 +
 gosa-core/doc/core/fr/html/departments/node4.html  |    66 +
 gosa-core/doc/core/fr/html/departments/node5.html  |    38 +
 gosa-core/doc/core/fr/html/departments/node6.html  |    51 +
 gosa-core/doc/core/fr/html/departments/rocket.png  |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/departments/search.png  |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/faxreports/WARNINGS     |     4 +
 .../doc/core/fr/html/faxreports/faxreports.css     |   Bin 0 -> 931 bytes
 .../doc/core/fr/html/faxreports/faxreports.html    |    52 +
 gosa-core/doc/core/fr/html/faxreports/index.html   |    52 +
 gosa-core/doc/core/fr/html/faxreports/labels.pl    |    13 +
 gosa-core/doc/core/fr/html/faxreports/node1.html   |    35 +
 gosa-core/doc/core/fr/html/faxreports/node2.html   |    51 +
 gosa-core/doc/core/fr/html/fonreports/WARNINGS     |     4 +
 .../doc/core/fr/html/fonreports/fonreports.css     |   Bin 0 -> 931 bytes
 .../doc/core/fr/html/fonreports/fonreports.html    |    52 +
 gosa-core/doc/core/fr/html/fonreports/index.html   |    52 +
 gosa-core/doc/core/fr/html/fonreports/labels.pl    |    13 +
 gosa-core/doc/core/fr/html/fonreports/node1.html   |    35 +
 gosa-core/doc/core/fr/html/fonreports/node2.html   |    51 +
 gosa-core/doc/core/fr/html/groups/WARNINGS         |     5 +
 gosa-core/doc/core/fr/html/groups/groups.css       |   Bin 0 -> 997 bytes
 gosa-core/doc/core/fr/html/groups/groups.html      |    91 +
 gosa-core/doc/core/fr/html/groups/index.html       |    91 +
 gosa-core/doc/core/fr/html/groups/labels.pl        |    13 +
 gosa-core/doc/core/fr/html/groups/list_back.png    |   Bin 0 -> 862 bytes
 gosa-core/doc/core/fr/html/groups/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/fr/html/groups/list_new_group.png     |   Bin 0 -> 911 bytes
 gosa-core/doc/core/fr/html/groups/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/groups/node1.html       |   191 +
 gosa-core/doc/core/fr/html/groups/node10.html      |    60 +
 gosa-core/doc/core/fr/html/groups/node11.html      |    56 +
 gosa-core/doc/core/fr/html/groups/node12.html      |    60 +
 gosa-core/doc/core/fr/html/groups/node13.html      |    51 +
 gosa-core/doc/core/fr/html/groups/node14.html      |    59 +
 gosa-core/doc/core/fr/html/groups/node15.html      |    50 +
 gosa-core/doc/core/fr/html/groups/node16.html      |    47 +
 gosa-core/doc/core/fr/html/groups/node17.html      |    38 +
 gosa-core/doc/core/fr/html/groups/node18.html      |    51 +
 gosa-core/doc/core/fr/html/groups/node2.html       |    75 +
 gosa-core/doc/core/fr/html/groups/node3.html       |    60 +
 gosa-core/doc/core/fr/html/groups/node4.html       |    43 +
 gosa-core/doc/core/fr/html/groups/node5.html       |    43 +
 gosa-core/doc/core/fr/html/groups/node6.html       |    43 +
 gosa-core/doc/core/fr/html/groups/node7.html       |    43 +
 gosa-core/doc/core/fr/html/groups/node8.html       |    43 +
 gosa-core/doc/core/fr/html/groups/node9.html       |    43 +
 gosa-core/doc/core/fr/html/groups/rocket.png       |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/ldapmanager/WARNINGS    |     4 +
 gosa-core/doc/core/fr/html/ldapmanager/index.html  |    52 +
 gosa-core/doc/core/fr/html/ldapmanager/labels.pl   |    13 +
 .../doc/core/fr/html/ldapmanager/ldapmanager.css   |   Bin 0 -> 931 bytes
 .../doc/core/fr/html/ldapmanager/ldapmanager.html  |    52 +
 gosa-core/doc/core/fr/html/ldapmanager/node1.html  |    35 +
 gosa-core/doc/core/fr/html/ldapmanager/node2.html  |    51 +
 gosa-core/doc/core/fr/html/logview/WARNINGS        |     4 +
 gosa-core/doc/core/fr/html/logview/index.html      |    52 +
 gosa-core/doc/core/fr/html/logview/labels.pl       |    13 +
 gosa-core/doc/core/fr/html/logview/logview.css     |   Bin 0 -> 931 bytes
 gosa-core/doc/core/fr/html/logview/logview.html    |    52 +
 gosa-core/doc/core/fr/html/logview/node1.html      |    35 +
 gosa-core/doc/core/fr/html/logview/node2.html      |    51 +
 gosa-core/doc/core/fr/html/macro/WARNINGS          |     5 +
 gosa-core/doc/core/fr/html/macro/index.html        |    61 +
 gosa-core/doc/core/fr/html/macro/labels.pl         |    13 +
 gosa-core/doc/core/fr/html/macro/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/fr/html/macro/list_home.png     |   Bin 0 -> 865 bytes
 .../doc/core/fr/html/macro/list_new_macro.png      |   Bin 0 -> 823 bytes
 gosa-core/doc/core/fr/html/macro/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/macro/macro.css         |    37 +
 gosa-core/doc/core/fr/html/macro/macro.html        |    61 +
 gosa-core/doc/core/fr/html/macro/node1.html        |   141 +
 gosa-core/doc/core/fr/html/macro/node2.html        |    66 +
 gosa-core/doc/core/fr/html/macro/node3.html        |    43 +
 gosa-core/doc/core/fr/html/macro/node4.html        |    38 +
 gosa-core/doc/core/fr/html/macro/node5.html        |    51 +
 gosa-core/doc/core/fr/html/macro/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/macro/search.png        |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/ogroups/WARNINGS        |     5 +
 gosa-core/doc/core/fr/html/ogroups/index.html      |    59 +
 gosa-core/doc/core/fr/html/ogroups/labels.pl       |    13 +
 gosa-core/doc/core/fr/html/ogroups/list_back.png   |   Bin 0 -> 862 bytes
 gosa-core/doc/core/fr/html/ogroups/list_home.png   |   Bin 0 -> 865 bytes
 .../doc/core/fr/html/ogroups/list_new_ogroup.png   |   Bin 0 -> 754 bytes
 gosa-core/doc/core/fr/html/ogroups/list_root.png   |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/ogroups/node1.html      |   156 +
 gosa-core/doc/core/fr/html/ogroups/node2.html      |    61 +
 gosa-core/doc/core/fr/html/ogroups/node3.html      |    38 +
 gosa-core/doc/core/fr/html/ogroups/node4.html      |    51 +
 gosa-core/doc/core/fr/html/ogroups/ogroups.css     |    35 +
 gosa-core/doc/core/fr/html/ogroups/ogroups.html    |    59 +
 gosa-core/doc/core/fr/html/ogroups/rocket.png      |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/ogroups/search.png      |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/users/WARNINGS          |     5 +
 gosa-core/doc/core/fr/html/users/closedlock.png    |   Bin 0 -> 750 bytes
 gosa-core/doc/core/fr/html/users/index.html        |   139 +
 gosa-core/doc/core/fr/html/users/labels.pl         |    13 +
 gosa-core/doc/core/fr/html/users/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/fr/html/users/list_home.png     |   Bin 0 -> 865 bytes
 gosa-core/doc/core/fr/html/users/list_new_user.png |   Bin 0 -> 788 bytes
 gosa-core/doc/core/fr/html/users/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/fr/html/users/node1.html        |   252 +
 gosa-core/doc/core/fr/html/users/node10.html       |    61 +
 gosa-core/doc/core/fr/html/users/node11.html       |    43 +
 gosa-core/doc/core/fr/html/users/node12.html       |    43 +
 gosa-core/doc/core/fr/html/users/node13.html       |    43 +
 gosa-core/doc/core/fr/html/users/node14.html       |    43 +
 gosa-core/doc/core/fr/html/users/node15.html       |    43 +
 gosa-core/doc/core/fr/html/users/node16.html       |    43 +
 gosa-core/doc/core/fr/html/users/node17.html       |    57 +
 gosa-core/doc/core/fr/html/users/node18.html       |    61 +
 gosa-core/doc/core/fr/html/users/node19.html       |    52 +
 gosa-core/doc/core/fr/html/users/node2.html        |    48 +
 gosa-core/doc/core/fr/html/users/node20.html       |    76 +
 gosa-core/doc/core/fr/html/users/node21.html       |    54 +
 gosa-core/doc/core/fr/html/users/node22.html       |    54 +
 gosa-core/doc/core/fr/html/users/node23.html       |    62 +
 gosa-core/doc/core/fr/html/users/node24.html       |   133 +
 gosa-core/doc/core/fr/html/users/node25.html       |    57 +
 gosa-core/doc/core/fr/html/users/node26.html       |    60 +
 gosa-core/doc/core/fr/html/users/node27.html       |    47 +
 gosa-core/doc/core/fr/html/users/node28.html       |    48 +
 gosa-core/doc/core/fr/html/users/node29.html       |    46 +
 gosa-core/doc/core/fr/html/users/node3.html        |   108 +
 gosa-core/doc/core/fr/html/users/node30.html       |    46 +
 gosa-core/doc/core/fr/html/users/node31.html       |    74 +
 gosa-core/doc/core/fr/html/users/node32.html       |    56 +
 gosa-core/doc/core/fr/html/users/node33.html       |    56 +
 gosa-core/doc/core/fr/html/users/node34.html       |    55 +
 gosa-core/doc/core/fr/html/users/node35.html       |    60 +
 gosa-core/doc/core/fr/html/users/node36.html       |    60 +
 gosa-core/doc/core/fr/html/users/node37.html       |    54 +
 gosa-core/doc/core/fr/html/users/node38.html       |    47 +
 gosa-core/doc/core/fr/html/users/node39.html       |    58 +
 gosa-core/doc/core/fr/html/users/node4.html        |   112 +
 gosa-core/doc/core/fr/html/users/node40.html       |    46 +
 gosa-core/doc/core/fr/html/users/node41.html       |    40 +
 gosa-core/doc/core/fr/html/users/node42.html       |    51 +
 gosa-core/doc/core/fr/html/users/node5.html        |    56 +
 gosa-core/doc/core/fr/html/users/node6.html        |    65 +
 gosa-core/doc/core/fr/html/users/node7.html        |    49 +
 gosa-core/doc/core/fr/html/users/node8.html        |    49 +
 gosa-core/doc/core/fr/html/users/node9.html        |    67 +
 gosa-core/doc/core/fr/html/users/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/html/users/search.png        |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/fr/html/users/users.css         |    39 +
 gosa-core/doc/core/fr/html/users/users.html        |   139 +
 gosa-core/doc/core/fr/lyx-source/applications.lyx  |   426 +
 gosa-core/doc/core/fr/lyx-source/blocklists.lyx    |   286 +
 gosa-core/doc/core/fr/lyx-source/conference.lyx    |   391 +
 gosa-core/doc/core/fr/lyx-source/departments.lyx   |   400 +
 gosa-core/doc/core/fr/lyx-source/faxreports.lyx    |    57 +
 gosa-core/doc/core/fr/lyx-source/fonreports.lyx    |    57 +
 gosa-core/doc/core/fr/lyx-source/groups.lyx        |   617 +
 gosa-core/doc/core/fr/lyx-source/images/action.png |   Bin 0 -> 397 bytes
 .../doc/core/fr/lyx-source/images/addr_company.png |   Bin 0 -> 1818 bytes
 .../doc/core/fr/lyx-source/images/addr_home.png    |   Bin 0 -> 1381 bytes
 .../core/fr/lyx-source/images/addr_personal.png    |   Bin 0 -> 1372 bytes
 .../doc/core/fr/lyx-source/images/addressbook.png  |   Bin 0 -> 5434 bytes
 .../core/fr/lyx-source/images/alternatemail.png    |   Bin 0 -> 893 bytes
 .../doc/core/fr/lyx-source/images/application.png  |   Bin 0 -> 3839 bytes
 gosa-core/doc/core/fr/lyx-source/images/back.png   |   Bin 0 -> 733 bytes
 gosa-core/doc/core/fr/lyx-source/images/banana.png |   Bin 0 -> 784 bytes
 .../doc/core/fr/lyx-source/images/blocklists.png   |   Bin 0 -> 4295 bytes
 .../core/fr/lyx-source/images/button_cancel.png    |   Bin 0 -> 883 bytes
 gosa-core/doc/core/fr/lyx-source/images/certs.png  |   Bin 0 -> 693 bytes
 .../doc/core/fr/lyx-source/images/closedlock.png   |   Bin 0 -> 750 bytes
 .../doc/core/fr/lyx-source/images/conference.png   |   Bin 0 -> 4094 bytes
 .../doc/core/fr/lyx-source/images/crossref.png     |   Bin 0 -> 628 bytes
 .../doc/core/fr/lyx-source/images/default.jpg      |   Bin 0 -> 2502 bytes
 .../doc/core/fr/lyx-source/images/default_icon.png |   Bin 0 -> 1957 bytes
 .../doc/core/fr/lyx-source/images/department.png   |   Bin 0 -> 3728 bytes
 gosa-core/doc/core/fr/lyx-source/images/dhcp.png   |   Bin 0 -> 4674 bytes
 .../doc/core/fr/lyx-source/images/display.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/fr/lyx-source/images/dns.png    |   Bin 0 -> 4739 bytes
 gosa-core/doc/core/fr/lyx-source/images/dtree.png  |   Bin 0 -> 694 bytes
 gosa-core/doc/core/fr/lyx-source/images/edit.png   |   Bin 0 -> 946 bytes
 .../doc/core/fr/lyx-source/images/editcopy.png     |   Bin 0 -> 777 bytes
 .../doc/core/fr/lyx-source/images/editdelete.png   |   Bin 0 -> 892 bytes
 .../doc/core/fr/lyx-source/images/editpaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/fr/lyx-source/images/edittrash.png    |   Bin 0 -> 691 bytes
 gosa-core/doc/core/fr/lyx-source/images/email.png  |   Bin 0 -> 4142 bytes
 gosa-core/doc/core/fr/lyx-source/images/empty.png  |   Bin 0 -> 174 bytes
 .../doc/core/fr/lyx-source/images/encrypted.png    |   Bin 0 -> 1239 bytes
 .../doc/core/fr/lyx-source/images/envelope.png     |   Bin 0 -> 843 bytes
 gosa-core/doc/core/fr/lyx-source/images/expand.png |   Bin 0 -> 183 bytes
 gosa-core/doc/core/fr/lyx-source/images/false.png  |   Bin 0 -> 745 bytes
 gosa-core/doc/core/fr/lyx-source/images/fax.png    |   Bin 0 -> 3352 bytes
 .../doc/core/fr/lyx-source/images/fax_small.png    |   Bin 0 -> 787 bytes
 .../doc/core/fr/lyx-source/images/filesaveas.png   |   Bin 0 -> 1253 bytes
 gosa-core/doc/core/fr/lyx-source/images/flag.png   |   Bin 0 -> 745 bytes
 gosa-core/doc/core/fr/lyx-source/images/folder.png |   Bin 0 -> 594 bytes
 .../doc/core/fr/lyx-source/images/forward.png      |   Bin 0 -> 726 bytes
 gosa-core/doc/core/fr/lyx-source/images/ftp.png    |   Bin 0 -> 4365 bytes
 .../doc/core/fr/lyx-source/images/fullfolder.png   |   Bin 0 -> 587 bytes
 gosa-core/doc/core/fr/lyx-source/images/group.png  |   Bin 0 -> 4224 bytes
 .../doc/core/fr/lyx-source/images/hardware.png     |   Bin 0 -> 836 bytes
 .../fr/lyx-source/images/hdd_linux_unmount.png     |   Bin 0 -> 6805 bytes
 gosa-core/doc/core/fr/lyx-source/images/head.png   |   Bin 0 -> 753 bytes
 gosa-core/doc/core/fr/lyx-source/images/help.png   |   Bin 0 -> 1136 bytes
 gosa-core/doc/core/fr/lyx-source/images/house.png  |   Bin 0 -> 713 bytes
 gosa-core/doc/core/fr/lyx-source/images/img1.png   |   Bin 0 -> 97 bytes
 gosa-core/doc/core/fr/lyx-source/images/info.png   |   Bin 0 -> 1195 bytes
 .../doc/core/fr/lyx-source/images/info_small.png   |   Bin 0 -> 936 bytes
 .../doc/core/fr/lyx-source/images/keyboard.png     |   Bin 0 -> 343 bytes
 gosa-core/doc/core/fr/lyx-source/images/lamp.png   |   Bin 0 -> 829 bytes
 gosa-core/doc/core/fr/lyx-source/images/launch.png |   Bin 0 -> 1263 bytes
 .../doc/core/fr/lyx-source/images/ldapserver.png   |   Bin 0 -> 3276 bytes
 gosa-core/doc/core/fr/lyx-source/images/ldif.png   |   Bin 0 -> 2801 bytes
 .../doc/core/fr/lyx-source/images/list_back.png    |   Bin 0 -> 862 bytes
 .../core/fr/lyx-source/images/list_blocklist.png   |   Bin 0 -> 671 bytes
 .../doc/core/fr/lyx-source/images/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/fr/lyx-source/images/list_macro.png   |   Bin 0 -> 927 bytes
 .../doc/core/fr/lyx-source/images/list_new.png     |   Bin 0 -> 642 bytes
 .../doc/core/fr/lyx-source/images/list_new_app.png |   Bin 0 -> 794 bytes
 .../fr/lyx-source/images/list_new_blocklist.png    |   Bin 0 -> 781 bytes
 .../fr/lyx-source/images/list_new_department.png   |   Bin 0 -> 717 bytes
 .../core/fr/lyx-source/images/list_new_group.png   |   Bin 0 -> 911 bytes
 .../core/fr/lyx-source/images/list_new_macro.png   |   Bin 0 -> 823 bytes
 .../core/fr/lyx-source/images/list_new_ogroup.png  |   Bin 0 -> 754 bytes
 .../core/fr/lyx-source/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../doc/core/fr/lyx-source/images/list_ogroup.png  |   Bin 0 -> 728 bytes
 .../core/fr/lyx-source/images/list_password.png    |   Bin 0 -> 693 bytes
 .../doc/core/fr/lyx-source/images/list_root.png    |   Bin 0 -> 852 bytes
 .../core/fr/lyx-source/images/list_seperator.png   |   Bin 0 -> 177 bytes
 .../doc/core/fr/lyx-source/images/list_submit.png  |   Bin 0 -> 614 bytes
 .../doc/core/fr/lyx-source/images/list_up.png      |   Bin 0 -> 862 bytes
 .../doc/core/fr/lyx-source/images/log_critical.png |   Bin 0 -> 745 bytes
 .../doc/core/fr/lyx-source/images/log_info.png     |   Bin 0 -> 936 bytes
 .../doc/core/fr/lyx-source/images/log_unknown.png  |   Bin 0 -> 746 bytes
 .../doc/core/fr/lyx-source/images/log_warning.png  |   Bin 0 -> 829 bytes
 gosa-core/doc/core/fr/lyx-source/images/login.png  |   Bin 0 -> 9533 bytes
 .../doc/core/fr/lyx-source/images/logview.png      |   Bin 0 -> 3646 bytes
 gosa-core/doc/core/fr/lyx-source/images/macros.png |   Bin 0 -> 4794 bytes
 gosa-core/doc/core/fr/lyx-source/images/mailto.png |   Bin 0 -> 692 bytes
 .../doc/core/fr/lyx-source/images/members.png      |   Bin 0 -> 868 bytes
 gosa-core/doc/core/fr/lyx-source/images/mouse.png  |   Bin 0 -> 751 bytes
 .../doc/core/fr/lyx-source/images/network.png      |   Bin 0 -> 894 bytes
 gosa-core/doc/core/fr/lyx-source/images/null.gif   |   Bin 0 -> 49 bytes
 gosa-core/doc/core/fr/lyx-source/images/ogroup.png |   Bin 0 -> 3510 bytes
 .../doc/core/fr/lyx-source/images/openlock.png     |   Bin 0 -> 923 bytes
 .../doc/core/fr/lyx-source/images/password.png     |   Bin 0 -> 3316 bytes
 .../doc/core/fr/lyx-source/images/penguin.png      |   Bin 0 -> 964 bytes
 .../doc/core/fr/lyx-source/images/personal.png     |   Bin 0 -> 4119 bytes
 gosa-core/doc/core/fr/lyx-source/images/phone.png  |   Bin 0 -> 4263 bytes
 .../doc/core/fr/lyx-source/images/phonereport.png  |   Bin 0 -> 3125 bytes
 gosa-core/doc/core/fr/lyx-source/images/posix.png  |   Bin 0 -> 4083 bytes
 .../doc/core/fr/lyx-source/images/printer.png      |   Bin 0 -> 678 bytes
 gosa-core/doc/core/fr/lyx-source/images/proxy.png  |   Bin 0 -> 5227 bytes
 .../doc/core/fr/lyx-source/images/reports.png      |   Bin 0 -> 4298 bytes
 .../doc/core/fr/lyx-source/images/rightarrow.png   |   Bin 0 -> 863 bytes
 gosa-core/doc/core/fr/lyx-source/images/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/fr/lyx-source/images/samba.png  |   Bin 0 -> 5472 bytes
 gosa-core/doc/core/fr/lyx-source/images/save.png   |   Bin 0 -> 595 bytes
 .../doc/core/fr/lyx-source/images/scanner.png      |   Bin 0 -> 809 bytes
 gosa-core/doc/core/fr/lyx-source/images/search.png |   Bin 0 -> 1023 bytes
 .../fr/lyx-source/images/select_application.png    |   Bin 0 -> 959 bytes
 .../core/fr/lyx-source/images/select_component.png |   Bin 0 -> 458 bytes
 .../core/fr/lyx-source/images/select_default.png   |   Bin 0 -> 725 bytes
 .../fr/lyx-source/images/select_department.png     |   Bin 0 -> 731 bytes
 .../core/fr/lyx-source/images/select_groups.png    |   Bin 0 -> 868 bytes
 .../doc/core/fr/lyx-source/images/select_macro.png |   Bin 0 -> 927 bytes
 .../fr/lyx-source/images/select_new_component.png  |   Bin 0 -> 452 bytes
 .../core/fr/lyx-source/images/select_new_phone.png |   Bin 0 -> 660 bytes
 .../fr/lyx-source/images/select_new_printer.png    |   Bin 0 -> 746 bytes
 .../fr/lyx-source/images/select_new_server.png     |   Bin 0 -> 813 bytes
 .../fr/lyx-source/images/select_new_terminal.png   |   Bin 0 -> 776 bytes
 .../lyx-source/images/select_new_workstation.png   |   Bin 0 -> 827 bytes
 .../core/fr/lyx-source/images/select_ogroup.png    |   Bin 0 -> 794 bytes
 .../doc/core/fr/lyx-source/images/select_phone.png |   Bin 0 -> 784 bytes
 .../lyx-source/images/select_phone_connected.png   |   Bin 0 -> 864 bytes
 .../core/fr/lyx-source/images/select_printer.png   |   Bin 0 -> 678 bytes
 .../doc/core/fr/lyx-source/images/select_proxy.png |   Bin 0 -> 894 bytes
 .../core/fr/lyx-source/images/select_server.png    |   Bin 0 -> 879 bytes
 .../core/fr/lyx-source/images/select_template.png  |   Bin 0 -> 512 bytes
 .../core/fr/lyx-source/images/select_terminal.png  |   Bin 0 -> 778 bytes
 .../doc/core/fr/lyx-source/images/select_user.png  |   Bin 0 -> 753 bytes
 .../fr/lyx-source/images/select_winstation.png     |   Bin 0 -> 675 bytes
 .../fr/lyx-source/images/select_workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/doc/core/fr/lyx-source/images/server.png |   Bin 0 -> 879 bytes
 .../doc/core/fr/lyx-source/images/service.png      |   Bin 0 -> 4135 bytes
 .../doc/core/fr/lyx-source/images/small_filter.png |   Bin 0 -> 814 bytes
 .../doc/core/fr/lyx-source/images/sort_down.png    |   Bin 0 -> 174 bytes
 .../doc/core/fr/lyx-source/images/sort_up.png      |   Bin 0 -> 176 bytes
 gosa-core/doc/core/fr/lyx-source/images/sound.png  |   Bin 0 -> 898 bytes
 gosa-core/doc/core/fr/lyx-source/images/stop.png   |   Bin 0 -> 974 bytes
 gosa-core/doc/core/fr/lyx-source/images/system.png |   Bin 0 -> 3105 bytes
 .../core/fr/lyx-source/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/doc/core/fr/lyx-source/images/time.png   |   Bin 0 -> 1049 bytes
 gosa-core/doc/core/fr/lyx-source/images/tree.png   |   Bin 0 -> 894 bytes
 gosa-core/doc/core/fr/lyx-source/images/true.png   |   Bin 0 -> 661 bytes
 gosa-core/doc/core/fr/lyx-source/images/user.png   |   Bin 0 -> 3204 bytes
 .../doc/core/fr/lyx-source/images/warning.png      |   Bin 0 -> 1692 bytes
 gosa-core/doc/core/fr/lyx-source/images/zip.png    |   Bin 0 -> 791 bytes
 gosa-core/doc/core/fr/lyx-source/ldapmanager.lyx   |    57 +
 gosa-core/doc/core/fr/lyx-source/logview.lyx       |    57 +
 gosa-core/doc/core/fr/lyx-source/macro.lyx         |   331 +
 gosa-core/doc/core/fr/lyx-source/ogroups.lyx       |   303 +
 gosa-core/doc/core/fr/lyx-source/users.lyx         |  2035 +++
 gosa-core/doc/core/guide.xml                       |    67 +
 gosa-core/doc/core/nl/html/departments/WARNINGS    |     5 +
 .../doc/core/nl/html/departments/departments.css   |   Bin 0 -> 968 bytes
 .../doc/core/nl/html/departments/departments.html  |    75 +
 gosa-core/doc/core/nl/html/departments/index.html  |    75 +
 gosa-core/doc/core/nl/html/departments/labels.pl   |    13 +
 .../doc/core/nl/html/departments/list_back.png     |   Bin 0 -> 862 bytes
 .../doc/core/nl/html/departments/list_home.png     |   Bin 0 -> 865 bytes
 .../nl/html/departments/list_new_department.png    |   Bin 0 -> 717 bytes
 .../doc/core/nl/html/departments/list_reload.png   |   Bin 0 -> 910 bytes
 .../doc/core/nl/html/departments/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/nl/html/departments/node1.html  |   159 +
 gosa-core/doc/core/nl/html/departments/node10.html |    51 +
 gosa-core/doc/core/nl/html/departments/node2.html  |    56 +
 gosa-core/doc/core/nl/html/departments/node3.html  |    41 +
 gosa-core/doc/core/nl/html/departments/node4.html  |    54 +
 gosa-core/doc/core/nl/html/departments/node5.html  |    50 +
 gosa-core/doc/core/nl/html/departments/node6.html  |    59 +
 gosa-core/doc/core/nl/html/departments/node7.html  |    56 +
 gosa-core/doc/core/nl/html/departments/node8.html  |    51 +
 gosa-core/doc/core/nl/html/departments/node9.html  |    39 +
 gosa-core/doc/core/nl/html/departments/rocket.png  |   Bin 0 -> 828 bytes
 gosa-core/doc/core/nl/html/departments/search.png  |   Bin 0 -> 1023 bytes
 gosa-core/doc/core/nl/html/groups/WARNINGS         |     5 +
 gosa-core/doc/core/nl/html/groups/groups.css       |   Bin 0 -> 1146 bytes
 gosa-core/doc/core/nl/html/groups/groups.html      |    99 +
 gosa-core/doc/core/nl/html/groups/index.html       |    99 +
 gosa-core/doc/core/nl/html/groups/labels.pl        |    13 +
 gosa-core/doc/core/nl/html/groups/list_back.png    |   Bin 0 -> 862 bytes
 gosa-core/doc/core/nl/html/groups/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/nl/html/groups/list_new_group.png     |   Bin 0 -> 911 bytes
 gosa-core/doc/core/nl/html/groups/list_reload.png  |   Bin 0 -> 910 bytes
 gosa-core/doc/core/nl/html/groups/list_root.png    |   Bin 0 -> 852 bytes
 gosa-core/doc/core/nl/html/groups/mailto.png       |   Bin 0 -> 635 bytes
 gosa-core/doc/core/nl/html/groups/node1.html       |   256 +
 gosa-core/doc/core/nl/html/groups/node10.html      |    43 +
 gosa-core/doc/core/nl/html/groups/node11.html      |    43 +
 gosa-core/doc/core/nl/html/groups/node12.html      |    43 +
 gosa-core/doc/core/nl/html/groups/node13.html      |    47 +
 gosa-core/doc/core/nl/html/groups/node14.html      |    61 +
 gosa-core/doc/core/nl/html/groups/node15.html      |    62 +
 gosa-core/doc/core/nl/html/groups/node16.html      |    48 +
 gosa-core/doc/core/nl/html/groups/node17.html      |    85 +
 gosa-core/doc/core/nl/html/groups/node18.html      |    50 +
 gosa-core/doc/core/nl/html/groups/node19.html      |    47 +
 gosa-core/doc/core/nl/html/groups/node2.html       |    56 +
 gosa-core/doc/core/nl/html/groups/node20.html      |    39 +
 gosa-core/doc/core/nl/html/groups/node21.html      |    51 +
 gosa-core/doc/core/nl/html/groups/node3.html       |    43 +
 gosa-core/doc/core/nl/html/groups/node4.html       |    54 +
 gosa-core/doc/core/nl/html/groups/node5.html       |   107 +
 gosa-core/doc/core/nl/html/groups/node6.html       |    60 +
 gosa-core/doc/core/nl/html/groups/node7.html       |    43 +
 gosa-core/doc/core/nl/html/groups/node8.html       |    43 +
 gosa-core/doc/core/nl/html/groups/node9.html       |    43 +
 gosa-core/doc/core/nl/html/groups/rocket.png       |   Bin 0 -> 828 bytes
 gosa-core/doc/core/nl/html/groups/search.png       |   Bin 0 -> 1023 bytes
 .../doc/core/nl/html/groups/select_application.png |   Bin 0 -> 959 bytes
 .../doc/core/nl/html/groups/select_groups.png      |   Bin 0 -> 868 bytes
 .../doc/core/nl/html/groups/select_winstation.png  |   Bin 0 -> 675 bytes
 gosa-core/doc/core/nl/html/groups/smallenv.png     |   Bin 0 -> 733 bytes
 gosa-core/doc/core/nl/html/users/WARNINGS          |     5 +
 gosa-core/doc/core/nl/html/users/fax_small.png     |   Bin 0 -> 787 bytes
 gosa-core/doc/core/nl/html/users/index.html        |   149 +
 gosa-core/doc/core/nl/html/users/labels.pl         |    13 +
 gosa-core/doc/core/nl/html/users/list_back.png     |   Bin 0 -> 862 bytes
 gosa-core/doc/core/nl/html/users/list_home.png     |   Bin 0 -> 865 bytes
 gosa-core/doc/core/nl/html/users/list_new_user.png |   Bin 0 -> 788 bytes
 gosa-core/doc/core/nl/html/users/list_reload.png   |   Bin 0 -> 910 bytes
 gosa-core/doc/core/nl/html/users/list_root.png     |   Bin 0 -> 852 bytes
 gosa-core/doc/core/nl/html/users/mailto.png        |   Bin 0 -> 635 bytes
 gosa-core/doc/core/nl/html/users/node1.html        |   349 +
 gosa-core/doc/core/nl/html/users/node10.html       |    51 +
 gosa-core/doc/core/nl/html/users/node11.html       |    83 +
 gosa-core/doc/core/nl/html/users/node12.html       |    78 +
 gosa-core/doc/core/nl/html/users/node13.html       |    60 +
 gosa-core/doc/core/nl/html/users/node14.html       |    43 +
 gosa-core/doc/core/nl/html/users/node15.html       |    43 +
 gosa-core/doc/core/nl/html/users/node16.html       |    43 +
 gosa-core/doc/core/nl/html/users/node17.html       |    43 +
 gosa-core/doc/core/nl/html/users/node18.html       |    43 +
 gosa-core/doc/core/nl/html/users/node19.html       |    43 +
 gosa-core/doc/core/nl/html/users/node2.html        |    57 +
 gosa-core/doc/core/nl/html/users/node20.html       |    57 +
 gosa-core/doc/core/nl/html/users/node21.html       |    61 +
 gosa-core/doc/core/nl/html/users/node22.html       |    55 +
 gosa-core/doc/core/nl/html/users/node23.html       |    89 +
 gosa-core/doc/core/nl/html/users/node24.html       |    56 +
 gosa-core/doc/core/nl/html/users/node25.html       |    54 +
 gosa-core/doc/core/nl/html/users/node26.html       |    65 +
 gosa-core/doc/core/nl/html/users/node27.html       |   174 +
 gosa-core/doc/core/nl/html/users/node28.html       |   101 +
 gosa-core/doc/core/nl/html/users/node29.html       |    63 +
 gosa-core/doc/core/nl/html/users/node3.html        |    43 +
 gosa-core/doc/core/nl/html/users/node30.html       |    72 +
 gosa-core/doc/core/nl/html/users/node31.html       |   100 +
 gosa-core/doc/core/nl/html/users/node32.html       |    74 +
 gosa-core/doc/core/nl/html/users/node33.html       |    46 +
 gosa-core/doc/core/nl/html/users/node34.html       |    46 +
 gosa-core/doc/core/nl/html/users/node35.html       |    75 +
 gosa-core/doc/core/nl/html/users/node36.html       |    58 +
 gosa-core/doc/core/nl/html/users/node37.html       |    58 +
 gosa-core/doc/core/nl/html/users/node38.html       |    56 +
 gosa-core/doc/core/nl/html/users/node39.html       |    64 +
 gosa-core/doc/core/nl/html/users/node4.html        |    54 +
 gosa-core/doc/core/nl/html/users/node40.html       |    44 +
 gosa-core/doc/core/nl/html/users/node41.html       |    55 +
 gosa-core/doc/core/nl/html/users/node42.html       |    54 +
 gosa-core/doc/core/nl/html/users/node43.html       |    58 +
 gosa-core/doc/core/nl/html/users/node44.html       |    58 +
 gosa-core/doc/core/nl/html/users/node45.html       |    50 +
 gosa-core/doc/core/nl/html/users/node46.html       |    39 +
 gosa-core/doc/core/nl/html/users/node47.html       |    51 +
 gosa-core/doc/core/nl/html/users/node5.html        |    48 +
 gosa-core/doc/core/nl/html/users/node6.html        |   111 +
 gosa-core/doc/core/nl/html/users/node7.html        |   112 +
 gosa-core/doc/core/nl/html/users/node8.html        |    56 +
 gosa-core/doc/core/nl/html/users/node9.html        |    68 +
 gosa-core/doc/core/nl/html/users/penguin.png       |   Bin 0 -> 964 bytes
 gosa-core/doc/core/nl/html/users/rocket.png        |   Bin 0 -> 828 bytes
 gosa-core/doc/core/nl/html/users/search.png        |   Bin 0 -> 1023 bytes
 .../doc/core/nl/html/users/select_netatalk.png     |   Bin 0 -> 828 bytes
 gosa-core/doc/core/nl/html/users/select_phone.png  |   Bin 0 -> 784 bytes
 gosa-core/doc/core/nl/html/users/select_user.png   |   Bin 0 -> 753 bytes
 .../doc/core/nl/html/users/select_winstation.png   |   Bin 0 -> 675 bytes
 gosa-core/doc/core/nl/html/users/smallenv.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/nl/html/users/users.css         |   Bin 0 -> 1326 bytes
 gosa-core/doc/core/nl/html/users/users.html        |   149 +
 gosa-core/doc/core/nl/lyx-source/departments.lyx   |   467 +
 gosa-core/doc/core/nl/lyx-source/groups.lyx        |   967 +
 gosa-core/doc/core/nl/lyx-source/images/action.png |   Bin 0 -> 397 bytes
 .../doc/core/nl/lyx-source/images/addr_company.png |   Bin 0 -> 1818 bytes
 .../doc/core/nl/lyx-source/images/addr_home.png    |   Bin 0 -> 1381 bytes
 .../core/nl/lyx-source/images/addr_personal.png    |   Bin 0 -> 1372 bytes
 .../doc/core/nl/lyx-source/images/addressbook.png  |   Bin 0 -> 5434 bytes
 .../core/nl/lyx-source/images/alternatemail.png    |   Bin 0 -> 893 bytes
 .../doc/core/nl/lyx-source/images/application.png  |   Bin 0 -> 3839 bytes
 gosa-core/doc/core/nl/lyx-source/images/back.png   |   Bin 0 -> 733 bytes
 gosa-core/doc/core/nl/lyx-source/images/banana.png |   Bin 0 -> 784 bytes
 .../doc/core/nl/lyx-source/images/blocklists.png   |   Bin 0 -> 4295 bytes
 gosa-core/doc/core/nl/lyx-source/images/branch.png |   Bin 0 -> 694 bytes
 .../doc/core/nl/lyx-source/images/branch_small.png |   Bin 0 -> 609 bytes
 .../core/nl/lyx-source/images/button_cancel.png    |   Bin 0 -> 883 bytes
 .../core/nl/lyx-source/images/cant_editpaste.png   |   Bin 0 -> 465 bytes
 gosa-core/doc/core/nl/lyx-source/images/certs.png  |   Bin 0 -> 693 bytes
 .../doc/core/nl/lyx-source/images/closedlock.png   |   Bin 0 -> 750 bytes
 .../doc/core/nl/lyx-source/images/conference.png   |   Bin 0 -> 4094 bytes
 .../doc/core/nl/lyx-source/images/copypaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/nl/lyx-source/images/crossref.png     |   Bin 0 -> 628 bytes
 .../doc/core/nl/lyx-source/images/cutpaste.png     |   Bin 0 -> 898 bytes
 .../doc/core/nl/lyx-source/images/default.jpg      |   Bin 0 -> 2502 bytes
 .../doc/core/nl/lyx-source/images/default_icon.png |   Bin 0 -> 1957 bytes
 .../doc/core/nl/lyx-source/images/department.png   |   Bin 0 -> 3728 bytes
 gosa-core/doc/core/nl/lyx-source/images/dfs.png    |   Bin 0 -> 3646 bytes
 gosa-core/doc/core/nl/lyx-source/images/dhcp.png   |   Bin 0 -> 4674 bytes
 .../doc/core/nl/lyx-source/images/display.png      |   Bin 0 -> 733 bytes
 gosa-core/doc/core/nl/lyx-source/images/dns.png    |   Bin 0 -> 4739 bytes
 gosa-core/doc/core/nl/lyx-source/images/drives.png |   Bin 0 -> 950 bytes
 gosa-core/doc/core/nl/lyx-source/images/dtree.png  |   Bin 0 -> 694 bytes
 gosa-core/doc/core/nl/lyx-source/images/edit.png   |   Bin 0 -> 946 bytes
 .../doc/core/nl/lyx-source/images/editcopy.png     |   Bin 0 -> 777 bytes
 .../doc/core/nl/lyx-source/images/editcut.png      |   Bin 0 -> 804 bytes
 .../doc/core/nl/lyx-source/images/editdelete.png   |   Bin 0 -> 892 bytes
 .../doc/core/nl/lyx-source/images/editpaste.png    |   Bin 0 -> 990 bytes
 .../doc/core/nl/lyx-source/images/edittrash.png    |   Bin 0 -> 691 bytes
 gosa-core/doc/core/nl/lyx-source/images/email.png  |   Bin 0 -> 4142 bytes
 gosa-core/doc/core/nl/lyx-source/images/empty.png  |   Bin 0 -> 174 bytes
 .../doc/core/nl/lyx-source/images/encrypted.png    |   Bin 0 -> 1239 bytes
 gosa-core/doc/core/nl/lyx-source/images/env.png    |   Bin 0 -> 3242 bytes
 .../doc/core/nl/lyx-source/images/envelope.png     |   Bin 0 -> 843 bytes
 gosa-core/doc/core/nl/lyx-source/images/expand.png |   Bin 0 -> 183 bytes
 gosa-core/doc/core/nl/lyx-source/images/fai.png    |   Bin 0 -> 4931 bytes
 .../doc/core/nl/lyx-source/images/fai_hook.png     |   Bin 0 -> 692 bytes
 .../doc/core/nl/lyx-source/images/fai_new_hook.png |   Bin 0 -> 662 bytes
 .../core/nl/lyx-source/images/fai_new_packages.png |   Bin 0 -> 743 bytes
 .../lyx-source/images/fai_new_partitionTable.png   |   Bin 0 -> 809 bytes
 .../core/nl/lyx-source/images/fai_new_profile.png  |   Bin 0 -> 903 bytes
 .../core/nl/lyx-source/images/fai_new_script.png   |   Bin 0 -> 658 bytes
 .../core/nl/lyx-source/images/fai_new_template.png |   Bin 0 -> 630 bytes
 .../core/nl/lyx-source/images/fai_new_variable.png |   Bin 0 -> 410 bytes
 .../doc/core/nl/lyx-source/images/fai_packages.png |   Bin 0 -> 959 bytes
 .../nl/lyx-source/images/fai_partitionTable.png    |   Bin 0 -> 725 bytes
 .../doc/core/nl/lyx-source/images/fai_profile.png  |   Bin 0 -> 1094 bytes
 .../doc/core/nl/lyx-source/images/fai_script.png   |   Bin 0 -> 601 bytes
 .../doc/core/nl/lyx-source/images/fai_small.png    |   Bin 0 -> 885 bytes
 .../doc/core/nl/lyx-source/images/fai_template.png |   Bin 0 -> 512 bytes
 .../doc/core/nl/lyx-source/images/fai_variable.png |   Bin 0 -> 429 bytes
 gosa-core/doc/core/nl/lyx-source/images/false.png  |   Bin 0 -> 745 bytes
 gosa-core/doc/core/nl/lyx-source/images/fax.png    |   Bin 0 -> 3352 bytes
 .../doc/core/nl/lyx-source/images/fax_small.png    |   Bin 0 -> 787 bytes
 .../doc/core/nl/lyx-source/images/filesaveas.png   |   Bin 0 -> 1253 bytes
 gosa-core/doc/core/nl/lyx-source/images/flag.png   |   Bin 0 -> 745 bytes
 gosa-core/doc/core/nl/lyx-source/images/folder.png |   Bin 0 -> 594 bytes
 .../doc/core/nl/lyx-source/images/forward.png      |   Bin 0 -> 726 bytes
 gosa-core/doc/core/nl/lyx-source/images/ftp.png    |   Bin 0 -> 4365 bytes
 .../doc/core/nl/lyx-source/images/fullfolder.png   |   Bin 0 -> 587 bytes
 .../doc/core/nl/lyx-source/images/gfx_hardware.png |   Bin 0 -> 819 bytes
 gosa-core/doc/core/nl/lyx-source/images/group.png  |   Bin 0 -> 4224 bytes
 .../doc/core/nl/lyx-source/images/hardware.png     |   Bin 0 -> 836 bytes
 .../nl/lyx-source/images/hdd_linux_unmount.png     |   Bin 0 -> 6805 bytes
 gosa-core/doc/core/nl/lyx-source/images/head.png   |   Bin 0 -> 753 bytes
 gosa-core/doc/core/nl/lyx-source/images/help.png   |   Bin 0 -> 1136 bytes
 .../doc/core/nl/lyx-source/images/hotplug.png      |   Bin 0 -> 861 bytes
 gosa-core/doc/core/nl/lyx-source/images/house.png  |   Bin 0 -> 713 bytes
 gosa-core/doc/core/nl/lyx-source/images/img1.png   |   Bin 0 -> 97 bytes
 gosa-core/doc/core/nl/lyx-source/images/info.png   |   Bin 0 -> 1195 bytes
 .../doc/core/nl/lyx-source/images/info_small.png   |   Bin 0 -> 936 bytes
 .../doc/core/nl/lyx-source/images/keyboard.png     |   Bin 0 -> 343 bytes
 gosa-core/doc/core/nl/lyx-source/images/lamp.png   |   Bin 0 -> 829 bytes
 gosa-core/doc/core/nl/lyx-source/images/launch.png |   Bin 0 -> 1263 bytes
 .../doc/core/nl/lyx-source/images/ldapserver.png   |   Bin 0 -> 3276 bytes
 gosa-core/doc/core/nl/lyx-source/images/ldif.png   |   Bin 0 -> 2801 bytes
 .../doc/core/nl/lyx-source/images/list_back.png    |   Bin 0 -> 862 bytes
 .../core/nl/lyx-source/images/list_blocklist.png   |   Bin 0 -> 671 bytes
 .../doc/core/nl/lyx-source/images/list_home.png    |   Bin 0 -> 865 bytes
 .../doc/core/nl/lyx-source/images/list_macro.png   |   Bin 0 -> 927 bytes
 .../doc/core/nl/lyx-source/images/list_new.png     |   Bin 0 -> 642 bytes
 .../doc/core/nl/lyx-source/images/list_new_app.png |   Bin 0 -> 794 bytes
 .../nl/lyx-source/images/list_new_blocklist.png    |   Bin 0 -> 781 bytes
 .../nl/lyx-source/images/list_new_conference.png   |   Bin 0 -> 904 bytes
 .../nl/lyx-source/images/list_new_department.png   |   Bin 0 -> 717 bytes
 .../core/nl/lyx-source/images/list_new_group.png   |   Bin 0 -> 911 bytes
 .../core/nl/lyx-source/images/list_new_macro.png   |   Bin 0 -> 823 bytes
 .../core/nl/lyx-source/images/list_new_ogroup.png  |   Bin 0 -> 754 bytes
 .../core/nl/lyx-source/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../doc/core/nl/lyx-source/images/list_ogroup.png  |   Bin 0 -> 728 bytes
 .../core/nl/lyx-source/images/list_password.png    |   Bin 0 -> 693 bytes
 .../doc/core/nl/lyx-source/images/list_reload.png  |   Bin 0 -> 910 bytes
 .../doc/core/nl/lyx-source/images/list_root.png    |   Bin 0 -> 852 bytes
 .../core/nl/lyx-source/images/list_seperator.png   |   Bin 0 -> 177 bytes
 .../doc/core/nl/lyx-source/images/list_submit.png  |   Bin 0 -> 614 bytes
 .../doc/core/nl/lyx-source/images/list_up.png      |   Bin 0 -> 862 bytes
 .../doc/core/nl/lyx-source/images/log_critical.png |   Bin 0 -> 745 bytes
 .../doc/core/nl/lyx-source/images/log_info.png     |   Bin 0 -> 936 bytes
 .../doc/core/nl/lyx-source/images/log_unknown.png  |   Bin 0 -> 746 bytes
 .../doc/core/nl/lyx-source/images/log_warning.png  |   Bin 0 -> 829 bytes
 gosa-core/doc/core/nl/lyx-source/images/login.png  |   Bin 0 -> 9533 bytes
 .../doc/core/nl/lyx-source/images/logview.png      |   Bin 0 -> 3406 bytes
 gosa-core/doc/core/nl/lyx-source/images/macros.png |   Bin 0 -> 4794 bytes
 .../doc/core/nl/lyx-source/images/mailq_active.png |   Bin 0 -> 574 bytes
 .../doc/core/nl/lyx-source/images/mailq_header.png |   Bin 0 -> 936 bytes
 .../doc/core/nl/lyx-source/images/mailq_hold.png   |   Bin 0 -> 750 bytes
 .../core/nl/lyx-source/images/mailq_requeue.png    |   Bin 0 -> 910 bytes
 .../doc/core/nl/lyx-source/images/mailq_unhold.png |   Bin 0 -> 829 bytes
 .../doc/core/nl/lyx-source/images/mailqueue.png    |   Bin 0 -> 4132 bytes
 gosa-core/doc/core/nl/lyx-source/images/mailto.png |   Bin 0 -> 635 bytes
 .../doc/core/nl/lyx-source/images/mainboard.png    |   Bin 0 -> 782 bytes
 .../doc/core/nl/lyx-source/images/members.png      |   Bin 0 -> 868 bytes
 gosa-core/doc/core/nl/lyx-source/images/memory.png |   Bin 0 -> 931 bytes
 .../doc/core/nl/lyx-source/images/monitor.png      |   Bin 0 -> 733 bytes
 .../doc/core/nl/lyx-source/images/monitoring.png   |   Bin 0 -> 4804 bytes
 gosa-core/doc/core/nl/lyx-source/images/mouse.png  |   Bin 0 -> 751 bytes
 .../doc/core/nl/lyx-source/images/net_hardware.png |   Bin 0 -> 828 bytes
 .../doc/core/nl/lyx-source/images/netatalk.png     |   Bin 0 -> 3642 bytes
 .../doc/core/nl/lyx-source/images/network.png      |   Bin 0 -> 894 bytes
 gosa-core/doc/core/nl/lyx-source/images/null.gif   |   Bin 0 -> 49 bytes
 gosa-core/doc/core/nl/lyx-source/images/ogroup.png |   Bin 0 -> 3510 bytes
 .../doc/core/nl/lyx-source/images/openlock.png     |   Bin 0 -> 923 bytes
 .../doc/core/nl/lyx-source/images/password.png     |   Bin 0 -> 3316 bytes
 .../doc/core/nl/lyx-source/images/penguin.png      |   Bin 0 -> 964 bytes
 .../doc/core/nl/lyx-source/images/personal.png     |   Bin 0 -> 4119 bytes
 gosa-core/doc/core/nl/lyx-source/images/phone.png  |   Bin 0 -> 4263 bytes
 .../doc/core/nl/lyx-source/images/phonereport.png  |   Bin 0 -> 3125 bytes
 gosa-core/doc/core/nl/lyx-source/images/posix.png  |   Bin 0 -> 4083 bytes
 .../doc/core/nl/lyx-source/images/printer.png      |   Bin 0 -> 678 bytes
 .../doc/core/nl/lyx-source/images/processor.png    |   Bin 0 -> 400 bytes
 gosa-core/doc/core/nl/lyx-source/images/proxy.png  |   Bin 0 -> 5227 bytes
 .../doc/core/nl/lyx-source/images/reports.png      |   Bin 0 -> 4298 bytes
 .../doc/core/nl/lyx-source/images/rightarrow.png   |   Bin 0 -> 863 bytes
 gosa-core/doc/core/nl/lyx-source/images/rocket.png |   Bin 0 -> 828 bytes
 gosa-core/doc/core/nl/lyx-source/images/samba.png  |   Bin 0 -> 5472 bytes
 gosa-core/doc/core/nl/lyx-source/images/save.png   |   Bin 0 -> 595 bytes
 .../doc/core/nl/lyx-source/images/scanner.png      |   Bin 0 -> 809 bytes
 gosa-core/doc/core/nl/lyx-source/images/search.png |   Bin 0 -> 1023 bytes
 .../doc/core/nl/lyx-source/images/search_user.png  |   Bin 0 -> 962 bytes
 .../nl/lyx-source/images/select_application.png    |   Bin 0 -> 959 bytes
 .../core/nl/lyx-source/images/select_component.png |   Bin 0 -> 458 bytes
 .../nl/lyx-source/images/select_conference.png     |   Bin 0 -> 868 bytes
 .../core/nl/lyx-source/images/select_default.png   |   Bin 0 -> 725 bytes
 .../nl/lyx-source/images/select_department.png     |   Bin 0 -> 731 bytes
 .../core/nl/lyx-source/images/select_groups.png    |   Bin 0 -> 868 bytes
 .../images/select_invalid_application.png          |   Bin 0 -> 858 bytes
 .../doc/core/nl/lyx-source/images/select_macro.png |   Bin 0 -> 927 bytes
 .../core/nl/lyx-source/images/select_netatalk.png  |   Bin 0 -> 828 bytes
 .../nl/lyx-source/images/select_new_component.png  |   Bin 0 -> 452 bytes
 .../core/nl/lyx-source/images/select_new_phone.png |   Bin 0 -> 660 bytes
 .../nl/lyx-source/images/select_new_printer.png    |   Bin 0 -> 746 bytes
 .../nl/lyx-source/images/select_new_server.png     |   Bin 0 -> 813 bytes
 .../nl/lyx-source/images/select_new_terminal.png   |   Bin 0 -> 776 bytes
 .../lyx-source/images/select_new_workstation.png   |   Bin 0 -> 827 bytes
 .../core/nl/lyx-source/images/select_newsystem.png |   Bin 0 -> 642 bytes
 .../core/nl/lyx-source/images/select_ogroup.png    |   Bin 0 -> 794 bytes
 .../doc/core/nl/lyx-source/images/select_phone.png |   Bin 0 -> 784 bytes
 .../lyx-source/images/select_phone_connected.png   |   Bin 0 -> 864 bytes
 .../core/nl/lyx-source/images/select_printer.png   |   Bin 0 -> 678 bytes
 .../doc/core/nl/lyx-source/images/select_proxy.png |   Bin 0 -> 894 bytes
 .../core/nl/lyx-source/images/select_server.png    |   Bin 0 -> 879 bytes
 .../core/nl/lyx-source/images/select_template.png  |   Bin 0 -> 512 bytes
 .../core/nl/lyx-source/images/select_terminal.png  |   Bin 0 -> 778 bytes
 .../doc/core/nl/lyx-source/images/select_user.png  |   Bin 0 -> 753 bytes
 .../nl/lyx-source/images/select_winstation.png     |   Bin 0 -> 675 bytes
 .../nl/lyx-source/images/select_workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/doc/core/nl/lyx-source/images/server.png |   Bin 0 -> 879 bytes
 .../doc/core/nl/lyx-source/images/service.png      |   Bin 0 -> 4135 bytes
 .../doc/core/nl/lyx-source/images/small_filter.png |   Bin 0 -> 814 bytes
 .../doc/core/nl/lyx-source/images/smallenv.png     |   Bin 0 -> 733 bytes
 .../doc/core/nl/lyx-source/images/snd_hardware.png |   Bin 0 -> 803 bytes
 .../doc/core/nl/lyx-source/images/sort_down.png    |   Bin 0 -> 174 bytes
 .../doc/core/nl/lyx-source/images/sort_up.png      |   Bin 0 -> 176 bytes
 gosa-core/doc/core/nl/lyx-source/images/sound.png  |   Bin 0 -> 898 bytes
 gosa-core/doc/core/nl/lyx-source/images/stop.png   |   Bin 0 -> 974 bytes
 gosa-core/doc/core/nl/lyx-source/images/system.png |   Bin 0 -> 3105 bytes
 .../core/nl/lyx-source/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/doc/core/nl/lyx-source/images/time.png   |   Bin 0 -> 1049 bytes
 gosa-core/doc/core/nl/lyx-source/images/tree.png   |   Bin 0 -> 894 bytes
 gosa-core/doc/core/nl/lyx-source/images/true.png   |   Bin 0 -> 661 bytes
 gosa-core/doc/core/nl/lyx-source/images/user.png   |   Bin 0 -> 3204 bytes
 .../doc/core/nl/lyx-source/images/warning.png      |   Bin 0 -> 1692 bytes
 gosa-core/doc/core/nl/lyx-source/images/zip.png    |   Bin 0 -> 791 bytes
 gosa-core/doc/core/nl/lyx-source/users.lyx         |  2920 ++++
 gosa-core/gosa-encrypt-passwords.1                 |   154 +
 gosa-core/gosa-encrypt-passwords.pod               |    33 +
 gosa-core/html/autocomplete.php                    |    83 +
 gosa-core/html/favicon.ico                         |   Bin 0 -> 1406 bytes
 gosa-core/html/getFAIstatus.php                    |    49 +
 gosa-core/html/getbin.php                          |    55 +
 gosa-core/html/helpviewer.php                      |   275 +
 gosa-core/html/images/action.png                   |   Bin 0 -> 397 bytes
 gosa-core/html/images/back.png                     |   Bin 0 -> 733 bytes
 gosa-core/html/images/branch.gif                   |   Bin 0 -> 79 bytes
 gosa-core/html/images/branchbottom.gif             |   Bin 0 -> 73 bytes
 gosa-core/html/images/branchtop.gif                |   Bin 0 -> 67 bytes
 gosa-core/html/images/date_active.gif              |   Bin 0 -> 54 bytes
 gosa-core/html/images/datepicker.gif               |   Bin 0 -> 991 bytes
 gosa-core/html/images/datepicker_ro.gif            |   Bin 0 -> 994 bytes
 gosa-core/html/images/dtree.png                    |   Bin 0 -> 694 bytes
 gosa-core/html/images/empty.png                    |   Bin 0 -> 174 bytes
 gosa-core/html/images/encrypted.png                |   Bin 0 -> 1239 bytes
 gosa-core/html/images/error.png                    |   Bin 0 -> 1591 bytes
 gosa-core/html/images/false.png                    |   Bin 0 -> 745 bytes
 gosa-core/html/images/filesaveas.png               |   Bin 0 -> 1253 bytes
 gosa-core/html/images/folder-expanded.gif          |   Bin 0 -> 923 bytes
 gosa-core/html/images/folder.gif                   |   Bin 0 -> 922 bytes
 gosa-core/html/images/forward-arrow.png            |   Bin 0 -> 162 bytes
 gosa-core/html/images/forward.png                  |   Bin 0 -> 726 bytes
 gosa-core/html/images/head.png                     |   Bin 0 -> 753 bytes
 gosa-core/html/images/info.png                     |   Bin 0 -> 1195 bytes
 gosa-core/html/images/info_small.png               |   Bin 0 -> 936 bytes
 gosa-core/html/images/launch.png                   |   Bin 0 -> 1263 bytes
 gosa-core/html/images/layer_menu/down-arrow.png    |   Bin 0 -> 164 bytes
 gosa-core/html/images/layer_menu/forward-arrow.png |   Bin 0 -> 162 bytes
 gosa-core/html/images/layer_menu/transparent.png   |   Bin 0 -> 148 bytes
 gosa-core/html/images/ldapserver.png               |   Bin 0 -> 3276 bytes
 gosa-core/html/images/lists/action.png             |   Bin 0 -> 814 bytes
 gosa-core/html/images/lists/back.png               |   Bin 0 -> 862 bytes
 gosa-core/html/images/lists/back_grey.png          |   Bin 0 -> 509 bytes
 gosa-core/html/images/lists/copy.png               |   Bin 0 -> 777 bytes
 gosa-core/html/images/lists/csv.png                |   Bin 0 -> 3111 bytes
 gosa-core/html/images/lists/cut.png                |   Bin 0 -> 804 bytes
 gosa-core/html/images/lists/delete.png             |   Bin 0 -> 892 bytes
 gosa-core/html/images/lists/edit-grey.png          |   Bin 0 -> 447 bytes
 gosa-core/html/images/lists/edit.png               |   Bin 0 -> 946 bytes
 gosa-core/html/images/lists/expand.png             |   Bin 0 -> 183 bytes
 gosa-core/html/images/lists/export.png             |   Bin 0 -> 3490 bytes
 gosa-core/html/images/lists/folder-full.png        |   Bin 0 -> 587 bytes
 gosa-core/html/images/lists/folder.png             |   Bin 0 -> 594 bytes
 gosa-core/html/images/lists/folder_grey.png        |   Bin 0 -> 313 bytes
 gosa-core/html/images/lists/home.png               |   Bin 0 -> 865 bytes
 gosa-core/html/images/lists/home_grey.png          |   Bin 0 -> 502 bytes
 gosa-core/html/images/lists/import.png             |   Bin 0 -> 904 bytes
 gosa-core/html/images/lists/invalid.png            |   Bin 0 -> 745 bytes
 gosa-core/html/images/lists/key.png                |   Bin 0 -> 693 bytes
 gosa-core/html/images/lists/lastnode.png           |   Bin 0 -> 144 bytes
 gosa-core/html/images/lists/locked.png             |   Bin 0 -> 750 bytes
 gosa-core/html/images/lists/new.png                |   Bin 0 -> 642 bytes
 gosa-core/html/images/lists/node.png               |   Bin 0 -> 145 bytes
 gosa-core/html/images/lists/off.png                |   Bin 0 -> 459 bytes
 gosa-core/html/images/lists/on.png                 |   Bin 0 -> 829 bytes
 gosa-core/html/images/lists/paste-grey.png         |   Bin 0 -> 465 bytes
 gosa-core/html/images/lists/paste.png              |   Bin 0 -> 990 bytes
 gosa-core/html/images/lists/pdf.png                |   Bin 0 -> 3306 bytes
 gosa-core/html/images/lists/reload.png             |   Bin 0 -> 941 bytes
 gosa-core/html/images/lists/restore.png            |   Bin 0 -> 1080 bytes
 gosa-core/html/images/lists/restore_grey.png       |   Bin 0 -> 842 bytes
 gosa-core/html/images/lists/root.png               |   Bin 0 -> 852 bytes
 gosa-core/html/images/lists/root_grey.png          |   Bin 0 -> 499 bytes
 gosa-core/html/images/lists/search-subtree.png     |   Bin 0 -> 894 bytes
 gosa-core/html/images/lists/search-user.png        |   Bin 0 -> 962 bytes
 gosa-core/html/images/lists/search.png             |   Bin 0 -> 1023 bytes
 gosa-core/html/images/lists/seperator.png          |   Bin 0 -> 177 bytes
 gosa-core/html/images/lists/sort-down.png          |   Bin 0 -> 174 bytes
 gosa-core/html/images/lists/sort-up.png            |   Bin 0 -> 176 bytes
 gosa-core/html/images/lists/submit.png             |   Bin 0 -> 614 bytes
 gosa-core/html/images/lists/trash-grey.png         |   Bin 0 -> 459 bytes
 gosa-core/html/images/lists/trash.png              |   Bin 0 -> 691 bytes
 gosa-core/html/images/lists/unlocked.png           |   Bin 0 -> 923 bytes
 gosa-core/html/images/lists/up.png                 |   Bin 0 -> 862 bytes
 gosa-core/html/images/lists/upload.png             |   Bin 0 -> 528 bytes
 gosa-core/html/images/lists/vline.png              |   Bin 0 -> 123 bytes
 gosa-core/html/images/login-head.png               |   Bin 0 -> 4119 bytes
 gosa-core/html/images/login.png                    |   Bin 0 -> 9533 bytes
 gosa-core/html/images/logout.png                   |   Bin 0 -> 1330 bytes
 gosa-core/html/images/mailto.png                   |   Bin 0 -> 635 bytes
 gosa-core/html/images/minus.gif                    |   Bin 0 -> 98 bytes
 gosa-core/html/images/minustop.gif                 |   Bin 0 -> 92 bytes
 gosa-core/html/images/move_object_down.png         |   Bin 0 -> 694 bytes
 gosa-core/html/images/move_object_up.png           |   Bin 0 -> 662 bytes
 gosa-core/html/images/null.gif                     |   Bin 0 -> 49 bytes
 gosa-core/html/images/opacity_black.png            |   Bin 0 -> 169 bytes
 gosa-core/html/images/password.png                 |   Bin 0 -> 3316 bytes
 gosa-core/html/images/penguin.png                  |   Bin 0 -> 964 bytes
 gosa-core/html/images/plus.gif                     |   Bin 0 -> 104 bytes
 gosa-core/html/images/plusbottom.gif               |   Bin 0 -> 100 bytes
 gosa-core/html/images/plustop.gif                  |   Bin 0 -> 96 bytes
 gosa-core/html/images/rightarrow.png               |   Bin 0 -> 863 bytes
 gosa-core/html/images/rocket.png                   |   Bin 0 -> 828 bytes
 gosa-core/html/images/save.png                     |   Bin 0 -> 595 bytes
 gosa-core/html/images/select_department.png        |   Bin 0 -> 731 bytes
 gosa-core/html/images/select_proxy.png             |   Bin 0 -> 894 bytes
 gosa-core/html/images/setup/fai.png                |   Bin 0 -> 5037 bytes
 gosa-core/html/images/setup/ldap.png               |   Bin 0 -> 3972 bytes
 gosa-core/html/images/setup/license.png            |   Bin 0 -> 1411 bytes
 gosa-core/html/images/setup/locale.png             |   Bin 0 -> 4018 bytes
 gosa-core/html/images/setup/migrate.png            |   Bin 0 -> 4804 bytes
 gosa-core/html/images/setup/server.png             |   Bin 0 -> 3276 bytes
 gosa-core/html/images/setup/system.png             |   Bin 0 -> 2317 bytes
 gosa-core/html/images/setup/user.png               |   Bin 0 -> 3204 bytes
 gosa-core/html/images/setup/welcome.png            |   Bin 0 -> 3899 bytes
 gosa-core/html/images/small-error.png              |   Bin 0 -> 974 bytes
 gosa-core/html/images/small_error.png              |   Bin 0 -> 890 bytes
 gosa-core/html/images/small_warning.png            |   Bin 0 -> 571 bytes
 gosa-core/html/images/snapshot.png                 |   Bin 0 -> 838 bytes
 gosa-core/html/images/status_pause.png             |   Bin 0 -> 750 bytes
 gosa-core/html/images/status_restart_all.png       |   Bin 0 -> 941 bytes
 gosa-core/html/images/status_restarting.png        |   Bin 0 -> 463 bytes
 gosa-core/html/images/status_start.png             |   Bin 0 -> 911 bytes
 gosa-core/html/images/status_start_all.png         |   Bin 0 -> 911 bytes
 gosa-core/html/images/status_stop.png              |   Bin 0 -> 856 bytes
 gosa-core/html/images/status_stop_all.png          |   Bin 0 -> 856 bytes
 gosa-core/html/images/true.png                     |   Bin 0 -> 661 bytes
 gosa-core/html/images/warning.png                  |   Bin 0 -> 1692 bytes
 gosa-core/html/images/welcome.png                  |   Bin 0 -> 2925 bytes
 gosa-core/html/images/wizard.png                   |   Bin 0 -> 571 bytes
 gosa-core/html/include/builder.js                  |   136 +
 gosa-core/html/include/controls.js                 |   965 +
 gosa-core/html/include/datepicker.js               |   807 +
 gosa-core/html/include/dragdrop.js                 |   974 ++
 gosa-core/html/include/effects.js                  |  1123 ++
 gosa-core/html/include/gosa.js                     |   545 +
 gosa-core/html/include/png.js                      |    85 +
 gosa-core/html/include/prototype.js                |  4874 ++++++
 gosa-core/html/include/pulldown.js                 |   230 +
 gosa-core/html/include/pwdStrength.js              |   161 +
 gosa-core/html/include/scriptaculous.js            |    68 +
 gosa-core/html/include/slider.js                   |   275 +
 gosa-core/html/include/sound.js                    |    59 +
 gosa-core/html/include/unittest.js                 |   568 +
 gosa-core/html/index.php                           |   460 +
 gosa-core/html/logout.php                          |   102 +
 gosa-core/html/main.php                            |   448 +
 gosa-core/html/password.php                        |   304 +
 gosa-core/html/plugins/acl/images/acl.png          |   Bin 0 -> 750 bytes
 gosa-core/html/plugins/acl/images/new-role.png     |   Bin 0 -> 911 bytes
 gosa-core/html/plugins/acl/images/plugin.png       |   Bin 0 -> 3734 bytes
 gosa-core/html/plugins/acl/images/role.png         |   Bin 0 -> 868 bytes
 .../plugins/bugsubmitter/images/bugsubmitter.png   |   Bin 0 -> 4135 bytes
 .../html/plugins/departments/images/country.png    |   Bin 0 -> 811 bytes
 gosa-core/html/plugins/departments/images/dc.png   |   Bin 0 -> 770 bytes
 .../html/plugins/departments/images/department.png |   Bin 0 -> 594 bytes
 .../departments/images/department_alias.png        |   Bin 0 -> 463 bytes
 .../departments/images/department_referal.png      |   Bin 0 -> 904 bytes
 .../html/plugins/departments/images/domain.png     |   Bin 0 -> 3707 bytes
 .../html/plugins/departments/images/locality.png   |   Bin 0 -> 731 bytes
 .../plugins/departments/images/organization.png    |   Bin 0 -> 879 bytes
 .../html/plugins/departments/images/plugin.png     |   Bin 0 -> 3728 bytes
 gosa-core/html/plugins/generic/images/head.png     |   Bin 0 -> 753 bytes
 gosa-core/html/plugins/generic/images/house.png    |   Bin 0 -> 713 bytes
 gosa-core/html/plugins/generic/images/plugin.png   |   Bin 0 -> 3482 bytes
 gosa-core/html/plugins/groups/images/asterisk.png  |   Bin 0 -> 784 bytes
 .../html/plugins/groups/images/environment.png     |   Bin 0 -> 733 bytes
 gosa-core/html/plugins/groups/images/groups.png    |   Bin 0 -> 868 bytes
 gosa-core/html/plugins/groups/images/mail.png      |   Bin 0 -> 635 bytes
 gosa-core/html/plugins/groups/images/menu.png      |   Bin 0 -> 959 bytes
 gosa-core/html/plugins/groups/images/new.png       |   Bin 0 -> 911 bytes
 gosa-core/html/plugins/groups/images/plugin.png    |   Bin 0 -> 4224 bytes
 gosa-core/html/plugins/groups/images/samba.png     |   Bin 0 -> 675 bytes
 .../html/plugins/ogroups/images/application.png    |   Bin 0 -> 959 bytes
 gosa-core/html/plugins/ogroups/images/asterisk.png |   Bin 0 -> 784 bytes
 gosa-core/html/plugins/ogroups/images/generic.png  |   Bin 0 -> 778 bytes
 .../html/plugins/ogroups/images/list_ogroup.png    |   Bin 0 -> 728 bytes
 gosa-core/html/plugins/ogroups/images/mail.png     |   Bin 0 -> 635 bytes
 gosa-core/html/plugins/ogroups/images/new.png      |   Bin 0 -> 754 bytes
 gosa-core/html/plugins/ogroups/images/ogroup.png   |   Bin 0 -> 794 bytes
 gosa-core/html/plugins/ogroups/images/phone.png    |   Bin 0 -> 784 bytes
 gosa-core/html/plugins/ogroups/images/plugin.png   |   Bin 0 -> 4255 bytes
 gosa-core/html/plugins/ogroups/images/printer.png  |   Bin 0 -> 678 bytes
 .../html/plugins/ogroups/images/select_ogroup.png  |   Bin 0 -> 794 bytes
 .../plugins/ogroups/images/select_terminal.png     |   Bin 0 -> 778 bytes
 gosa-core/html/plugins/ogroups/images/server.png   |   Bin 0 -> 879 bytes
 gosa-core/html/plugins/ogroups/images/terminal.png |   Bin 0 -> 778 bytes
 .../html/plugins/ogroups/images/winstation.png     |   Bin 0 -> 675 bytes
 .../html/plugins/ogroups/images/workstation.png    |   Bin 0 -> 817 bytes
 gosa-core/html/plugins/password/images/plugin.png  |   Bin 0 -> 3316 bytes
 gosa-core/html/plugins/posix/images/members.png    |   Bin 0 -> 868 bytes
 gosa-core/html/plugins/posix/images/plugin.png     |   Bin 0 -> 4505 bytes
 .../html/plugins/posix/images/terminal_small.png   |   Bin 0 -> 778 bytes
 gosa-core/html/plugins/users/images/default.jpg    |   Bin 0 -> 2502 bytes
 gosa-core/html/plugins/users/images/fax_small.png  |   Bin 0 -> 787 bytes
 .../html/plugins/users/images/list_new_user.png    |   Bin 0 -> 788 bytes
 .../html/plugins/users/images/list_password.png    |   Bin 0 -> 693 bytes
 .../html/plugins/users/images/select_template.png  |   Bin 0 -> 512 bytes
 .../html/plugins/users/images/select_user.png      |   Bin 0 -> 753 bytes
 .../plugins/users/images/small_environment.png     |   Bin 0 -> 733 bytes
 gosa-core/html/plugins/users/images/user.png       |   Bin 0 -> 3204 bytes
 gosa-core/html/plugins/users/images/wizard.png     |   Bin 0 -> 571 bytes
 gosa-core/html/progress.php                        |   102 +
 gosa-core/html/robots.txt                          |     2 +
 gosa-core/html/setup.php                           |   154 +
 .../html/themes/default/images/accountexpired.png  |   Bin 0 -> 1685 bytes
 gosa-core/html/themes/default/images/border.png    |   Bin 0 -> 135 bytes
 gosa-core/html/themes/default/images/go_logo.png   |   Bin 0 -> 3839 bytes
 gosa-core/html/themes/default/images/gohome.png    |   Bin 0 -> 1340 bytes
 gosa-core/html/themes/default/images/help.png      |   Bin 0 -> 1186 bytes
 gosa-core/html/themes/default/images/stop.png      |   Bin 0 -> 1330 bytes
 gosa-core/html/themes/default/password-style.css   |    56 +
 gosa-core/html/themes/default/printer.css          |    28 +
 gosa-core/html/themes/default/style.css            |  2013 +++
 .../themes/default/GOsa_MultiSelectHeader.ihtml    |    35 +
 gosa-core/ihtml/themes/default/accountexpired.tpl  |    74 +
 gosa-core/ihtml/themes/default/acl.tpl             |   145 +
 gosa-core/ihtml/themes/default/colors.txt          |    13 +
 gosa-core/ihtml/themes/default/conflict.tpl        |    16 +
 gosa-core/ihtml/themes/default/copyPasteDialog.tpl |    34 +
 gosa-core/ihtml/themes/default/filter.xsd          |   129 +
 gosa-core/ihtml/themes/default/framework.tpl       |    58 +
 gosa-core/ihtml/themes/default/headers.tpl         |    44 +
 gosa-core/ihtml/themes/default/help.tpl            |    39 +
 gosa-core/ihtml/themes/default/islocked.tpl        |    23 +
 gosa-core/ihtml/themes/default/list.xsd            |   141 +
 gosa-core/ihtml/themes/default/login.tpl           |   101 +
 gosa-core/ihtml/themes/default/logout-close.tpl    |    13 +
 gosa-core/ihtml/themes/default/logout.tpl          |    22 +
 gosa-core/ihtml/themes/default/msg_dialog.tpl      |   155 +
 gosa-core/ihtml/themes/default/password.tpl        |   135 +
 gosa-core/ihtml/themes/default/remove.tpl          |    17 +
 gosa-core/ihtml/themes/default/setup_headers.tpl   |    24 +
 gosa-core/ihtml/themes/default/sizelimit.tpl       |    17 +
 gosa-core/ihtml/themes/default/snapshotdialog.tpl  |    97 +
 gosa-core/include/accept-to-gettext.inc            |   212 +
 gosa-core/include/class_CopyPasteHandler.inc       |   578 +
 gosa-core/include/class_SnapShotDialog.inc         |   190 +
 gosa-core/include/class_SnapshotHandler.inc        |   525 +
 gosa-core/include/class_acl.inc                    |  1365 ++
 gosa-core/include/class_baseSelector.inc           |   251 +
 gosa-core/include/class_certificate.inc            |   276 +
 gosa-core/include/class_config.inc                 |  1193 ++
 gosa-core/include/class_departmentSortIterator.inc |    84 +
 gosa-core/include/class_divSelectBox.inc           |   143 +
 gosa-core/include/class_divlist.inc                |   381 +
 gosa-core/include/class_filter.inc                 |   589 +
 gosa-core/include/class_filterLDAP.inc             |   134 +
 gosa-core/include/class_gosaSupportDaemon.inc      |  1951 +++
 gosa-core/include/class_ldap.inc                   |  1438 ++
 gosa-core/include/class_ldapMultiplexer.inc        |    59 +
 gosa-core/include/class_listing.inc                |  1580 ++
 gosa-core/include/class_listingSortIterator.inc    |   113 +
 gosa-core/include/class_log.inc                    |   128 +
 gosa-core/include/class_management.inc             |   928 +
 gosa-core/include/class_msg_dialog.inc             |   202 +
 gosa-core/include/class_multi_plug.inc             |   429 +
 gosa-core/include/class_plugin.inc                 |  2148 +++
 gosa-core/include/class_pluglist.inc               |   426 +
 gosa-core/include/class_session.inc                |   229 +
 gosa-core/include/class_socketClient.inc           |   219 +
 gosa-core/include/class_sortableListing.inc        |   530 +
 gosa-core/include/class_tabs.inc                   |   465 +
 gosa-core/include/class_userinfo.inc               |   779 +
 gosa-core/include/exporter/class_PDF.inc           |    29 +
 gosa-core/include/exporter/class_cvsExporter.inc   |    53 +
 gosa-core/include/exporter/class_pdfExporter.inc   |   154 +
 gosa-core/include/functions.inc                    |  3521 ++++
 gosa-core/include/functions_debug.inc              |   422 +
 gosa-core/include/functions_helpviewer.inc         |   506 +
 .../class_password-methods-clear.inc               |    51 +
 .../class_password-methods-crypt.inc               |   134 +
 .../class_password-methods-md5.inc                 |    54 +
 .../class_password-methods-sha.inc                 |    64 +
 .../class_password-methods-smd5.inc                |    55 +
 .../class_password-methods-ssha.inc                |    66 +
 .../password-methods/class_password-methods.inc    |   295 +
 gosa-core/include/php_setup.inc                    |   299 +
 gosa-core/include/smarty/plugins/block.render.php  |   126 +
 .../include/smarty/plugins/function.msgPool.php    |    21 +
 gosa-core/include/utils/class_msgPool.inc          |   583 +
 gosa-core/include/utils/class_tests.inc            |   312 +
 gosa-core/include/utils/class_timezone.inc         |    77 +
 gosa-core/include/utils/class_xml.inc              |   182 +
 .../excel/class.writeexcel_biffwriter.inc.php      |   208 +
 .../utils/excel/class.writeexcel_format.inc.php    |   702 +
 .../utils/excel/class.writeexcel_formula.inc.php   |  1413 ++
 .../utils/excel/class.writeexcel_olewriter.inc.php |   353 +
 .../utils/excel/class.writeexcel_workbook.inc.php  |  1109 ++
 .../utils/excel/class.writeexcel_worksheet.inc.php |  2951 ++++
 .../excel/functions.writeexcel_utility.inc.php     |   271 +
 gosa-core/locale/core/de/LC_MESSAGES/messages.po   |  6663 +++++++
 gosa-core/locale/core/es/LC_MESSAGES/messages.po   |  7759 +++++++++
 gosa-core/locale/core/fr/LC_MESSAGES/messages.po   |  6673 +++++++
 gosa-core/locale/core/it/LC_MESSAGES/messages.po   |  8154 +++++++++
 gosa-core/locale/core/messages.po                  |  6240 +++++++
 gosa-core/locale/core/nl/LC_MESSAGES/messages.po   |  8605 +++++++++
 gosa-core/locale/core/pl/LC_MESSAGES/messages.po   |  8372 +++++++++
 gosa-core/locale/core/pt/LC_MESSAGES/messages.po   |  6425 +++++++
 gosa-core/locale/core/ru/LC_MESSAGES/messages.po   |  8526 +++++++++
 gosa-core/locale/core/vi/LC_MESSAGES/messages.po   |  6999 ++++++++
 gosa-core/locale/core/zh/LC_MESSAGES/messages.po   |  8364 +++++++++
 .../addons/bugsubmitter/class_bugsubmitter.inc     |    29 +
 gosa-core/plugins/addons/bugsubmitter/main.inc     |    26 +
 gosa-core/plugins/admin/acl/acl-filter.tpl         |    37 +
 gosa-core/plugins/admin/acl/acl-filter.xml         |    58 +
 gosa-core/plugins/admin/acl/acl-list.tpl           |    28 +
 gosa-core/plugins/admin/acl/acl-list.xml           |   149 +
 gosa-core/plugins/admin/acl/acl_role.tpl           |    79 +
 .../plugins/admin/acl/class_aclManagement.inc      |   164 +
 gosa-core/plugins/admin/acl/class_aclRole.inc      |   784 +
 gosa-core/plugins/admin/acl/class_filterACL.inc    |   151 +
 gosa-core/plugins/admin/acl/main.inc               |    56 +
 gosa-core/plugins/admin/acl/paste_role.tpl         |    10 +
 gosa-core/plugins/admin/acl/remove.tpl             |    18 +
 gosa-core/plugins/admin/acl/tabs_acl.inc           |    95 +
 gosa-core/plugins/admin/acl/tabs_acl_role.inc      |    81 +
 .../admin/departments/class_countryGeneric.inc     |   101 +
 .../plugins/admin/departments/class_dcObject.inc   |   100 +
 .../plugins/admin/departments/class_department.inc |   792 +
 .../departments/class_departmentManagement.inc     |   255 +
 .../plugins/admin/departments/class_domain.inc     |   100 +
 .../admin/departments/class_localityGeneric.inc    |   101 +
 .../departments/class_organizationGeneric.inc      |   142 +
 gosa-core/plugins/admin/departments/country.tpl    |    74 +
 gosa-core/plugins/admin/departments/dcObject.tpl   |    74 +
 gosa-core/plugins/admin/departments/dep-filter.tpl |    29 +
 gosa-core/plugins/admin/departments/dep-filter.xml |    44 +
 gosa-core/plugins/admin/departments/dep-list.tpl   |    28 +
 gosa-core/plugins/admin/departments/dep-list.xml   |   186 +
 gosa-core/plugins/admin/departments/dep_iframe.tpl |    21 +
 .../plugins/admin/departments/dep_move_confirm.tpl |    19 +
 gosa-core/plugins/admin/departments/domain.tpl     |    74 +
 gosa-core/plugins/admin/departments/generic.tpl    |   146 +
 gosa-core/plugins/admin/departments/locality.tpl   |    74 +
 gosa-core/plugins/admin/departments/main.inc       |    56 +
 .../plugins/admin/departments/organization.tpl     |   146 +
 gosa-core/plugins/admin/departments/remove.tpl     |    18 +
 .../plugins/admin/departments/tabs_department.inc  |    83 +
 .../plugins/admin/groups/class_filterGroupLDAP.inc |    54 +
 gosa-core/plugins/admin/groups/class_group.inc     |  1390 ++
 .../plugins/admin/groups/class_groupManagement.inc |   216 +
 gosa-core/plugins/admin/groups/generic.tpl         |   279 +
 gosa-core/plugins/admin/groups/group-filter.tpl    |    37 +
 gosa-core/plugins/admin/groups/group-filter.xml    |    64 +
 gosa-core/plugins/admin/groups/group-list.tpl      |    28 +
 gosa-core/plugins/admin/groups/group-list.xml      |   173 +
 gosa-core/plugins/admin/groups/main.inc            |    56 +
 gosa-core/plugins/admin/groups/paste_generic.tpl   |    25 +
 gosa-core/plugins/admin/groups/remove.tpl          |    17 +
 .../singleUserSelect/class_singleUserSelect.inc    |    52 +
 .../groups/singleUserSelect/singleUser-filter.tpl  |    33 +
 .../groups/singleUserSelect/singleUser-filter.xml  |    43 +
 .../groups/singleUserSelect/singleUser-list.tpl    |    34 +
 .../groups/singleUserSelect/singleUser-list.xml    |    89 +
 gosa-core/plugins/admin/groups/tabs_group.inc      |   117 +
 gosa-core/plugins/admin/groups/trust_machines.tpl  |    41 +
 .../userGroupSelect/class_userGroupSelect.inc      |    63 +
 .../userGroupSelect/selectUserGroup-filter.tpl     |    37 +
 .../userGroupSelect/selectUserGroup-filter.xml     |    60 +
 .../userGroupSelect/selectUserGroup-list.tpl       |    36 +
 .../userGroupSelect/selectUserGroup-list.xml       |    86 +
 .../admin/groups/userSelect/class_userSelect.inc   |    52 +
 .../admin/groups/userSelect/user-filter.tpl        |    33 +
 .../admin/groups/userSelect/user-filter.xml        |    43 +
 .../plugins/admin/groups/userSelect/user-list.tpl  |    34 +
 .../plugins/admin/groups/userSelect/user-list.xml  |    71 +
 gosa-core/plugins/admin/ogroups/class_ogroup.inc   |   985 ++
 .../admin/ogroups/class_ogroupManagement.inc       |   207 +
 gosa-core/plugins/admin/ogroups/generic.tpl        |    88 +
 gosa-core/plugins/admin/ogroups/main.inc           |    56 +
 .../class_filterLDAPDepartmentBlacklist.inc        |    17 +
 .../ogroups/objectSelect/class_objectSelect.inc    |    95 +
 .../ogroups/objectSelect/selectObject-filter.tpl   |    45 +
 .../ogroups/objectSelect/selectObject-filter.xml   |   124 +
 .../ogroups/objectSelect/selectObject-list.tpl     |    36 +
 .../ogroups/objectSelect/selectObject-list.xml     |   126 +
 gosa-core/plugins/admin/ogroups/ogroup-filter.tpl  |    45 +
 gosa-core/plugins/admin/ogroups/ogroup-filter.xml  |   121 +
 gosa-core/plugins/admin/ogroups/ogroup-list.tpl    |    28 +
 gosa-core/plugins/admin/ogroups/ogroup-list.xml    |   160 +
 gosa-core/plugins/admin/ogroups/ogroup_objects.tpl |    53 +
 gosa-core/plugins/admin/ogroups/paste_generic.tpl  |    14 +
 gosa-core/plugins/admin/ogroups/remove.tpl         |    17 +
 gosa-core/plugins/admin/ogroups/tabs_ogroups.inc   |   373 +
 gosa-core/plugins/admin/ogroups/trust_machines.tpl |    42 +
 .../plugins/admin/users/class_userManagement.inc   |   801 +
 gosa-core/plugins/admin/users/main.inc             |    56 +
 gosa-core/plugins/admin/users/password.tpl         |    42 +
 gosa-core/plugins/admin/users/remove.tpl           |    18 +
 gosa-core/plugins/admin/users/tabs_user.inc        |   172 +
 gosa-core/plugins/admin/users/template.tpl         |    60 +
 gosa-core/plugins/admin/users/templatize.tpl       |    46 +
 gosa-core/plugins/admin/users/user-filter.tpl      |    40 +
 gosa-core/plugins/admin/users/user-filter.xml      |    83 +
 gosa-core/plugins/admin/users/user-list.tpl        |    28 +
 gosa-core/plugins/admin/users/user-list.xml        |   250 +
 .../plugins/generic/references/class_reference.inc |   203 +
 gosa-core/plugins/generic/references/contents.tpl  |    19 +
 gosa-core/plugins/generic/welcome/main.inc         |    32 +
 gosa-core/plugins/generic/welcome/welcome.tpl      |    19 +
 gosa-core/plugins/personal/generic/class_user.inc  |  1933 ++
 gosa-core/plugins/personal/generic/generic.tpl     |   634 +
 .../plugins/personal/generic/generic_certs.tpl     |    96 +
 .../plugins/personal/generic/generic_picture.tpl   |    37 +
 gosa-core/plugins/personal/generic/main.inc        |   211 +
 gosa-core/plugins/personal/generic/password.tpl    |    28 +
 .../plugins/personal/generic/paste_generic.tpl     |    59 +
 gosa-core/plugins/personal/password/changed.tpl    |    12 +
 .../plugins/personal/password/class_password.inc   |   160 +
 gosa-core/plugins/personal/password/main.inc       |    62 +
 gosa-core/plugins/personal/password/nochange.tpl   |    11 +
 gosa-core/plugins/personal/password/password.tpl   |    54 +
 .../plugins/personal/posix/class_posixAccount.inc  |  1693 ++
 gosa-core/plugins/personal/posix/generic.tpl       |   210 +
 .../groupSelect/class_filterLDAPBlacklist.inc      |    31 +
 .../posix/groupSelect/class_groupSelect.inc        |    52 +
 .../personal/posix/groupSelect/group-filter.tpl    |    37 +
 .../personal/posix/groupSelect/group-filter.xml    |    64 +
 .../personal/posix/groupSelect/group-list.tpl      |    36 +
 .../personal/posix/groupSelect/group-list.xml      |    64 +
 gosa-core/plugins/personal/posix/main.inc          |   147 +
 gosa-core/plugins/personal/posix/paste_generic.tpl |    78 +
 gosa-core/plugins/personal/posix/posix_groups.tpl  |    83 +
 gosa-core/plugins/personal/posix/posix_shadow.tpl  |    67 +
 .../posix/trustSelect/class_trustSelect.inc        |   122 +
 .../personal/posix/trustSelect/trust-filter.tpl    |    39 +
 .../personal/posix/trustSelect/trust-filter.xml    |    64 +
 .../personal/posix/trustSelect/trust-list.tpl      |    35 +
 .../personal/posix/trustSelect/trust-list.xml      |    79 +
 .../plugins/personal/posix/trust_machines.tpl      |    42 +
 gosa-core/redhat/01_fix_template_location.patch    |    12 +
 gosa-core/redhat/02_fix_class_mapping.patch        |    50 +
 gosa-core/redhat/03_fix_locale_location.patch      |    41 +
 gosa-core/redhat/04_fix_online_help_location.patch |    24 +
 gosa-core/redhat/README.php                        |     1 +
 gosa-core/redhat/README.selinux                    |     9 +
 gosa-core/redhat/gosa.spec                         |   391 +
 gosa-core/redhat/make-gosa-package                 |   177 +
 gosa-core/redhat/rpm-make-gosa                     |   145 +
 gosa-core/setup/class_setup.inc                    |   307 +
 gosa-core/setup/class_setupStep.inc                |   130 +
 gosa-core/setup/class_setupStep_Checks.inc         |   298 +
 gosa-core/setup/class_setupStep_Config1.inc        |   245 +
 gosa-core/setup/class_setupStep_Config2.inc        |   283 +
 gosa-core/setup/class_setupStep_Config3.inc        |   236 +
 gosa-core/setup/class_setupStep_Feedback.inc       |   275 +
 gosa-core/setup/class_setupStep_Finish.inc         |   147 +
 gosa-core/setup/class_setupStep_Language.inc       |    72 +
 gosa-core/setup/class_setupStep_Ldap.inc           |   219 +
 gosa-core/setup/class_setupStep_License.inc        |    94 +
 gosa-core/setup/class_setupStep_Migrate.inc        |  3294 ++++
 gosa-core/setup/class_setupStep_Schema.inc         |   133 +
 gosa-core/setup/class_setupStep_Welcome.inc        |    74 +
 gosa-core/setup/license.txt                        |   620 +
 gosa-core/setup/main.inc                           |    35 +
 gosa-core/setup/setup.tpl                          |     4 +
 gosa-core/setup/setup_checks.tpl                   |   122 +
 gosa-core/setup/setup_config1.tpl                  |   225 +
 gosa-core/setup/setup_config2.tpl                  |   294 +
 gosa-core/setup/setup_config3.tpl                  |   340 +
 gosa-core/setup/setup_feedback.tpl                 |   154 +
 gosa-core/setup/setup_finish.tpl                   |    38 +
 gosa-core/setup/setup_frame.tpl                    |    47 +
 gosa-core/setup/setup_language.tpl                 |    13 +
 gosa-core/setup/setup_ldap.tpl                     |   136 +
 gosa-core/setup/setup_license.tpl                  |    11 +
 gosa-core/setup/setup_migrate.tpl                  |   571 +
 gosa-core/setup/setup_schema.tpl                   |    52 +
 gosa-core/setup/setup_welcome.tpl                  |    37 +
 gosa-core/update-gosa                              |   569 +
 gosa-core/update-gosa.1                            |   165 +
 gosa-core/update-gosa.pod                          |    45 +
 gosa-core/update-locale                            |   167 +
 gosa-core/update-locale.1                          |   160 +
 gosa-core/update-locale.pod                        |    41 +
 gosa-core/update-online-help                       |   134 +
 gosa-core/update-online-help.1                     |   153 +
 gosa-core/update-online-help.pod                   |    32 +
 gosa-core/update-pdf-help                          |    81 +
 gosa-core/update-pdf-help.1                        |   153 +
 gosa-core/update-pdf-help.pod                      |    32 +
 2307 files changed, 251866 insertions(+)

diff --git a/gosa-core/AUTHORS b/gosa-core/AUTHORS
new file mode 100644
index 0000000..8d2ff59
--- /dev/null
+++ b/gosa-core/AUTHORS
@@ -0,0 +1,84 @@
+GOsa AUTHORS
+============
+
+This is the alphabetical list of all people that have
+contributed to the GOsa project, beeing code, translations,
+documentation and additional help.
+
+* Markus Amersdorfer <der.plusch at subnet.at>
+  Wiki setup, Testing, hints, proposals
+
+* Alessandro Amici <a.amici at bopen.it>
+  Italian translation
+
+* Holger Burbach <burbach at gonicus.de>
+  Kerberos PHP module
+
+* Craig Chang <craig0310 at gmail.com>
+  Fixes for magic_quotes_qpc
+
+* Guillaume Delecourt <guillaume.delecourt at opensides.be>
+  Setup fixes, nagios tab plugin, xls addons ldapmanager
+  pptp connectivity option, phpscheduleit connectivity option
+
+* Dan Ellis <danellis at rushmore.com>
+  Sieve lib is taken from him
+
+* Alejandro Escanero Blanco <aescanero at chaosdimension.org>
+  Fixes, improvements, translation, Guide and some extensions
+
+* Fabian Hickert <hickert at gonicus.de>
+  Improvements for setup, various fixes and plugins
+
+* Eric Kilfoil <eric at ipass.net>
+  ldap.inc is taken from him
+
+* Niels Klomp <nk at careworks.nl>
+  Dutch translation
+  
+* Steve Moitozo <god at zilla dot us>
+  Password checker
+
+* Benoit Mortier <benoit.mortier at opensides.be>
+  Butracking, QA, French translation
+
+* Igor Muratov <migor at altlinux.org>
+  Various fixes and speed enhancements
+
+* Michael Pasdziernik <mp at secio.de>
+  Documentation for GOsa and safe-mode, fixes
+
+* Cajus Pollmeier <pollmeier at gonicus.de>
+  Virtually everyting which is GOsa related
+
+* Piotr Rybicki <meritus at innervision.pl>
+  Polish translation
+
+* Henning Schmiedehausen <hps at intermeta.de>
+  Various fixes, support for user defined people/group base
+
+* Alfred Schr�der <schroeder at gonicus.de>
+  German translation
+
+* Thomas Sch��ler <tulpe at atomar.de>
+  debuglib.inc is taken from him
+
+* Jan Wenzel <jan.wenzel at gonicus.de>
+  Implementation and research for samba munged dial support,
+  fixing of "Fiptehlers"(TM) in the german translations.
+
+* Leila El Hitori <leila.elhitori at opensides.be>
+  French online documentation
+  English online documentation
+  
+* Vincent Seynhaeve
+  Xls export plugin <vincent.seynhaeve at opensides.be>
+  
+* Wouter Verhelst <wouter at debian.org>
+  accept-to-gettext code that helps for language conversation
+
+* Antoine Gallavardin <antoine.gallavardin at free.fr>
+  Dhcp plugin patch to manage key and update zone in dhcp for dyndns
+
+* Leonid Bogdanov <leonid_bogdanov at mail.ru>
+  patch for the manager fonctionnality in the Genral user tab
diff --git a/gosa-core/CODING b/gosa-core/CODING
new file mode 100644
index 0000000..12853d1
--- /dev/null
+++ b/gosa-core/CODING
@@ -0,0 +1,216 @@
+GOsa coding guidelines
+======================
+
+* Scope of style guidelines
+
+In order to keep the code consistent, please use the following conventions.
+These conventions are no judgement call on your coding abilities, but more
+of a style and look call.
+
+
+* Indentation and line length
+
+As a basic style rule, please use spaces instead of tabulators. This will
+remove problems when using "diff" and avoid unneeded commits when using
+"subversion".
+
+For VI users, this can be achieved by the following settings:
+
+8<----------------------------------------------------------------------------
+set expandtab
+set shiftwidth=4
+set softtabstop=4
+set tabstop=4
+8<----------------------------------------------------------------------------
+
+The line length should not exceed 80 characters. There is one exception for
+i18n strings that must not be split for gettext.
+
+
+*  Performance and Readability 
+
+It is more important to be correct than to be fast. 
+It is more important to be maintainable than to be fast. 
+Fast code that is difficult to maintain is likely going to be looked down upon.
+
+
+* Comments
+
+Avoid perl style comments using "#". Always use "//" for single line comments
+and /* */ blocks for multi line comments.
+
+8<----------------------------------------------------------------------------
+/*
+ * This is a long comment...
+ * ... which should look like this.
+ */
+
+// Short comment
+8<----------------------------------------------------------------------------
+
+
+* Documentation
+
+8<----------------------------------------------------------------------------
+
+8<----------------------------------------------------------------------------
+
+svn propset svn:keywords "Id" file
+
+
+* File format
+
+UTF-8, LF - not CR LF
+svn propset svn:eol-style native file
+
+
+* White spaces
+
+Use a space before an opening parenthesis when calling functions, or indexing, like this:
+
+8<----------------------------------------------------------------------------
+# Methods
+foo ($parameter);
+
+# Arrays
+$b = $value [0];
+
+# Readability
+if ($b + 5 > foo (bar () + 4)){
+}
+8<----------------------------------------------------------------------------
+
+Don't layout your code like this, always minimize spaces:
+
+8<----------------------------------------------------------------------------
+var $most           = "something";
+8<----------------------------------------------------------------------------
+
+
+Always use spaces to seperate arguments after commata:
+
+8<----------------------------------------------------------------------------
+function foo ($param1, $param2)
+8<----------------------------------------------------------------------------
+
+Always use single spaces to split logical and mathematical operations:
+
+8<----------------------------------------------------------------------------
+if ( $a > 6 && $b == 17 && (foo ($b) < 1) ){
+}
+8<----------------------------------------------------------------------------
+
+
+* Braces
+
+If statements with or without else clauses are formatted like this:
+
+8<----------------------------------------------------------------------------
+if ($value) {
+    foo ();
+    bar ();
+}
+
+if ($value) {
+    foo ();
+} else {
+    bar ();
+}
+8<----------------------------------------------------------------------------
+
+Switches are formatted like this:
+
+8<----------------------------------------------------------------------------
+switch ($reason) {
+    case 'fine':
+        foo ();
+        break;
+
+    case 'well':
+        bar ();
+        break;
+}
+8<----------------------------------------------------------------------------
+
+
+Always use use braces for single line blocks:
+
+8<----------------------------------------------------------------------------
+if ($value) {
+    foo ();
+}
+8<----------------------------------------------------------------------------
+
+Function definitions, Classes and Methods have an opening brace on the next
+line:
+
+8<----------------------------------------------------------------------------
+function bar ()
+{
+    ...
+}
+8<----------------------------------------------------------------------------
+
+
+* Casing
+
+Always use camel casing with lowercase characters in the beginning for multi-
+word identifiers:
+
+8<----------------------------------------------------------------------------
+function checkForValidity (){
+  $testSucceeded = false;
+  ...
+}
+8<----------------------------------------------------------------------------
+
+
+* Naming
+
+Non trivial variable names should speak for themselves from within the context.
+
+8<----------------------------------------------------------------------------
+// Use
+$hour = 5;
+// instead of
+$g = 5;
+8<----------------------------------------------------------------------------
+
+Find short function names that describe what the function does - in order to
+make the code read like a written sentence.
+
+8<----------------------------------------------------------------------------
+if ( configReadable ("/etc/foo.conf") ){
+}
+8<----------------------------------------------------------------------------
+
+Use uppercase for constants/defines and _ if possible:
+
+8<----------------------------------------------------------------------------
+if ( $speedUp == TRUE ) {
+  $wait = SHORT_WAIT;
+} else {
+  $wait = LONG_WAIT;
+}
+8<----------------------------------------------------------------------------
+
+
+* PHP specific
+
+Open and close tags:
+
+  <?php 
+  // Something here 
+  ?> 
+
+
+HTML
+
+Do not include HTML code inside of your PHP file. Use smarty templating if
+possible.
+
+
+Code inclusion
+
+Use require_once instead of include.
+
diff --git a/gosa-core/COPYING b/gosa-core/COPYING
new file mode 100644
index 0000000..ba4e0c6
--- /dev/null
+++ b/gosa-core/COPYING
@@ -0,0 +1,284 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
diff --git a/gosa-core/Changelog b/gosa-core/Changelog
new file mode 100644
index 0000000..d93297e
--- /dev/null
+++ b/gosa-core/Changelog
@@ -0,0 +1,764 @@
+GOsa2 changelog
+===============
+
+* gosa 2.6.10
+  - Fixed timestamps in samba domain info dialog
+  - Fixed Problem with Copy & Paste of servers
+  - Fixed several list filter descriptions
+  - Updated filter for windows workstations in systems plugin
+  - Allow to use phoneAccount attributes as replacement in macros
+  - Updated mailAccount "Do not deliver to own mailbox" flag was inverse
+  - Updated gofon macro saving handling, avoids database duplicates
+  - Improved PPD parser
+
+* gosa 2.6.9
+  - Fixed problem with initial phone accounts, sip type was NULL
+  - Fixed TLS issues in the setup
+  - Fixed locale issues in the setup
+  - Fixed delete of DHCP statements
+  - Fixed DHCP authoritative flag
+  - Modified sieve behaviour to use sieve-discard for "drop_own_mails"
+  - Modified filter descriptions to behave more like former 2.6 releases
+
+* gosa 2.6.8
+  - Base selector displays descriptions and icons now
+  - Base selector autocomplete
+  - Fixed gosa.conf system generation
+  - Added wildcard ACLs
+  - Improved ACL handling for new lists
+  - Fixed phone filters
+
+* gosa 2.6.7
+  - Added more information to DHCP service dialog (thanks to Mathieu)
+  - Added more checks for DNS zone records
+  - Added IMAP folder autocreation
+  - Added printer css
+  - Fixed generation of kerberos host keys when DNS is enabled
+  - Fixed template error message when no sshkey plugin is enabled
+  - Fixed problem where arrays got shortened by one in copy and paste
+  - Fixed javascript for IE
+  - Fixed problems deprecated functions in PHP > 5.3
+  - Fixed issues with templates and password methods that got introduced
+    in 2.6.6 user list migration
+  - Speed up OPSI operations by large factors
+  - Speed up group and user removal by large factors
+  - Unified logging with rSyslog plugin and service
+  - Converted to new configurable list view
+  - Save list positions
+  - Updated integrated smarty to version 3.0b7 to avoid broken templates
+    during further development
+
+* gosa 2.6.6
+  - Added ssh public key management
+  - Added LVM support to FAI modules using setup-storage
+  - Added DHCP/DNS options to the OPSI hosts
+  - Added GOsa login restrictions
+  - Added "Domain" to department management
+  - Added organizational roles management
+  - Added option to configure user DNs
+  - Added OPSI license management
+  - Added possibility to add FAI packages without the SI service (thanks to GLG)
+  - Added IMAP timeout option
+  - Added pool method for uidNumber/gidNumber using sambaUnixIdPool
+  - Added workaround for non closable message dialogues in Konqueror 3.x
+  - Updated locales
+  - Updated gosa.conf manual page
+  - Updated DNS settings dialoges
+  - Moved to unified datepicker for all dates
+  - Fixed display of opsi hosts in the system list
+  - Fixed usage of the sambe "base" for every list page
+  - Fixed automatic base settings for new systems based on the ogroup base
+  - Fixed setup issues with LDAP inspection
+  - Fixed setup issues with sub dialogues
+  - Fixed next group ID generation
+  - Fixed "suggest IP" function to return unique IP
+  - Fixed multiple password decryption
+  - Fixed issues with empty ACL definitions
+  - Fixed lost attributes when using copy and paste with objectgroups
+  - Enhanced addressbook plugin ACL
+  - Removed outdated samba 2 mode
+  - Various minor bugfixes
+
+* gosa 2.6.5
+  - Updated locales
+  - Improved PPD handling
+  - Added more sanity checks in group management
+  - DHCP now allows multiple values for options and statements containing
+    the same keyword
+  - Added per entry SOA record to the DNS plugin
+  - Improved grouping of FAI classes
+  - Add free-text input to FAI packages
+  - PPD upload allows special chars now
+  - Fixed config generation with sambaMachineAccountRDN
+  - Added compression robustness check for snapshots
+  - Added brasilian portuguese
+  - Updated logging on debian systems
+  - Various minor bugfixes
+
+* gosa 2.6.4
+  - Added missing images
+  - Fixed issue with the FAI log viewer
+  - Made DNS TTL settings optional
+  - Correct issues with newly created servers and DNS zones
+  - Added setup check for gosaDepartments at the base object
+  - Corrected js based disabling of widgets in Samba settings
+  - Fixed issue with wrong set mail attributes in the setup
+  - Added missing existance checks for group mail addresses
+  - Fixed uid autogeneration which contained curly braces
+  - Fixed FAI package list acl mapping
+  - Moved essential schema files back to the core package
+  - Updated integrated smarty
+  - Added imagick dependency to the setup
+  - Fixed ACL resolution for small ldap bases
+  - Added phoneNumber limitations to match asterisk realtime extension tables
+  - Updated addressbook permissions
+
+* gosa 2.6.3
+  - Fixed several issues, occurred when using user templates
+  - Fixed problem with department creation, since GOsa 2.6.1
+  - Fixed exponential escaping of special chars in dns record entries
+  - Added samba domain information to samba tab
+  - Removed readonly attributes from samba tab
+
+* gosa 2.6.2
+  - Updated german locales
+  - Updated french locales
+  - Updated spanish locales
+  - Improved sieve handling, added more detailed error messages
+  - Mail methods cleanup for kolab 2.2 / IMAP acls
+  - Removed obsoleted GOlab mail method
+  - Optimized system to group assignments when activating new devices
+  - Add a choice for OPSI clients when activating new devices
+  - Setup cleanups
+  - Edit locking improvements, code cleanup
+
+* gosa 2.6.1
+  - Build seperate packages for plugin schema files
+  - Make ACL editor more robust
+  - Fix problem with self modify ACL detection
+  - Increased all schema version numbers to make setup
+    check work again
+  - Added admin account migration to setup
+  - Session expired dialog is now translated
+  - Fixed problems with sieveManagement
+  - Fixed issue with department saving and structuralObjectClass errors
+  - Added local delivery flag to group mail
+  - Fixed problem with sudoers creation
+  - Fixed accidentally remove of non GOsa user accounts
+  - Simplified FAI management
+  - Fixed detection issues with password methods
+  - Fixed issues with user templates and storing password methods
+  - Removed forced dependency on GOsa-SI
+
+* gosa 2.6
+  - Redesign of ACL handling
+    - Roles
+    - Fine grained read, write, change controls down to
+      the attributes
+    - Self service
+  - Separate password changer module
+  - Major dialog- and interface redesign
+  - Major performance improvements
+  - New backend daemon
+    - MIT kerberos support
+    - Mail queue-support
+    - System depolyment queue support
+    - OPSI support
+    - GOto support
+    - DAK keyring support
+    - Caching of slow data sources
+  - Queue support for system deployment
+  - Improved FAI integration
+    - Queues
+    - Copy on write storage for subreleases
+    - Logviewer
+  - OPSI integration
+  - SUDO support
+  - Split into GOsa core and GOsa plugins
+  - Edit multiple users/groups at a time
+  - Apply user templates afterwards
+  - Objects snapshots
+  - Configurable object RDNs
+  - Added manual page for gosa.conf
+  - More comprehensive keywords in gosa.conf
+  - Merging "main" and "location" attributes to
+    allow site wide defaults
+  - Automatic configuration reloading
+  - Vietnamese translation
+  - New manageable objects country, locality, organization and dcObject
+
+* gosa 2.5.16
+  - Fixed problem with undefined ridbase in domain objects
+  - Fixed postremove/-create/-modify parameter expansion
+  - Updated integrated smarty to 2.6.19
+  - Updated saving of ppds in printer setttings
+  - Fixed department tagging
+  - Fixed DNS record problem where nSRecords were not kept
+  - Updated shared folder acls, keep manually set acls
+  - Remove DNS entries for removed hosts
+  - Increased setup performance
+  - Added more secure way to save passwords in gosa.conf
+
+* gosa 2.5.15
+  - Changed order of sys-action commandline parameters
+  - Changed sorting of management plugins to natural sorting
+  - Fixed problem with saving vacation message start/stop
+  - Fixed sorting of releases
+  - Updated translations (de/fr/pl)
+  - Fixed storage of (IMAP) ACLs in group/mail settings
+  - Fixed issues with sieve script management
+  - General code cleanup
+  - Fixed issue with undefined index and copy 'n paste in samba plugin
+  - Fixed problem with the references/ogroup handling with
+    special character DNs
+  - Optimized way of writing unit tags
+  - Online manual updates / helpviewer update
+  - Fixed renaming of printers which was broken in special cases
+  - DNS plugin updates
+  - DHCP plugin updates
+
+* gosa 2.5.14
+  - Phone conference language is now selectable.
+  - Old phone numbers will be removed correctly from asterisk extensions table.
+  - Fixed saving of A/B networks reverse zone entries
+  - Fixed problem with non loaded class_dhcpPlugin in some cases.
+  - Added fglrx driver to driver list
+  - Added hook to specify custom X drivers
+  - Fixed non ISO display of IMAP folder names
+  - Fixed URL encoding in addressbook
+  - Fixed issues with IE and browser language detection
+  - Added check for used hardware adresses
+  - Allow special characters in share names
+  - Fixed removing of application categories
+  - PPD handling revised
+  - Added support for new devices detected by the arp monitor
+  - Grey out non used options for better usability in the server and
+    workstation tabs
+  - Fixed saving of USB devices
+  - Made SNMP community configurable
+  - Added login attributes uid/mail, you can log in via your mail
+    address, too
+  - Removed PHP5 dependency in branch 2.5
+  - Fixed saving of IMAP acl's for groups
+
+* gosa 2.5.13
+  - Re-added ISC DHCP support
+  - Fixes for the mail based bugtracker
+  - Fixed autouid problem with slashes
+  - Added list sorting for FAI script lists
+  - Added copy'n paste for mimetypes
+  - Cut'n paste objects are now greyed out
+  - Added swedish locale
+  - Improved language detection
+  - Added a statistic footer to lists
+  - Added the ssh plugin
+  - Layout fixes
+
+* gosa 2.5.12
+  - Fixed problems with automatic reverse zones
+  - Fixed several IE6 related Java-Script problems
+  - Removed png.js by default. Looks ugly, but performs. Take
+    a look at the FAQ on how to re-enable it for IE.
+  - Added non-login password change dialog
+  - Various spelling fixes
+  - Added some extra robustness to the PPD reader code
+  - FAI partition ordering fixed, partition sizes fixed
+  - FAI release management updates
+  - Fixed installations that fail the schema check
+  - Updated error messages to fade out the interface
+  - Repository cleanup
+  - Added feedback link to easily report PHP errors
+  - Added more content sorting where needed
+  - Made gidNumber be the current in posix check hook
+  - Removed inconsistency in gosa/gosa+samba3 schema
+  - Fixed multiple saving of "My account" data
+  - Don't allow moving of objects from administrative units to other
+    administrative units where ACL's permit it. Objects "seemed" to
+    disapear because the tagging changes.
+  - Added gosa-desktop package to be able to start it by link
+  - Added method to highlight tabs
+  - Generel translation update for de, es, fr, it, nl, pl, ru, zh
+
+* gosa 2.5.11a
+  - Added chinese translation
+  - Fixed language detection and removed line wraps in tab headers
+  - Fixed french translation
+
+* gosa 2.5.11
+  - Add workaround for failing is_php4() when using PHP5
+    with "zend.ze1_compatibility_mode" set to "On"
+  - Backported new sieve filter editor from trunk
+  - Backported new setup from trunk
+  - Fixed double loaded pages in gecko based browsers when js
+    is activated
+  - Replaced a set of PHP <? short tag occurences
+  - Updated locales (de/fr)
+
+* gosa 2.5.10
+  - Included hook to make use of dynamic uid-bases
+  - Included vacation date range specification
+  - Fixed non-saved Samba-Domain changes in groups
+  - Freezed application parameters are not editable anymore
+  - Fixed problem with removing commata based DN's
+  - Corrected setup generated perl mkntpasswd string
+  - Fixed month listing in fax reports - february was march
+  - Enabled 9 digits for gid-/uidNumbers
+  - Fixed acl's for saving printers
+  - Fixed saving of disabled samba acl's
+  - Added support for rfc2307bis compliant groups
+
+* gosa 2.5.9
+  - Fixed ldap tls connections when schema check was being used
+  - Updated italian translation
+  - Added the possiblility to choose a RDN style for DN's when
+    a CN is already in use
+  - Fixed a problem with cut'n paste for groups and ogroups
+  - Added new mail method "golab" which has some tweaks against
+    the standard kolab mode
+  - Fixed object tagging for workstation/printer assignement
+  - Fixed undefined index in FAI package lists
+  - Fixed copy'n paste for groups and object groups
+  - Enabled non ASCII characters in vacation messages
+  - Fixed "none" permissions in IMAP shared folders to be assignable
+
+* gosa 2.5.8
+  - Fixed problem with winstations shown in user list. 
+  - Allow basic regex ().*^$ in fax blocklist numbers.
+  - Fixed date of birth and shadow expire in template adaption
+  - Updated user mail account to search for CYRUSUNIXSTYLE in all
+    relevant sections of the config file
+  - Added support for sambaLogonHours 
+  - Security fix, that allows non priviledged users to change
+    several settings - including admin passwords
+
+* gosa 2.5.7
+  - Fixed login.tpl to display error msgs in the middle of the screen
+  - Fixed some error outputs in login.php to not break the screen
+  - Added auto scroll function to FAI-Create-Branch and Department tagging
+  - Fixed problems with workstations when fai.schema was not included
+  - Made gid-/uidNumbers 32 bit aware
+  - Replaced hardcoded config path /etc/gosa with CONFIG_DIR constant
+  - Included personal title in DN
+  - Added function to remove PPD's from disc
+  - Removed old cups dependencies
+  - Fixed saving of terminals printer service attribute
+  - Fixed a ACL naming bug, that avoids that an admin with non "all" ACLs
+    can edit specified objects.
+  - Fixed simultaneous move + rename for deparments
+  - Internally updated to smarty 2.6.16
+  - Removed asterisk status view in user display. This was too slow in
+    bigger installations.
+  - Re-enabled phone queues. They got optimized for invisibility.
+
+* gosa 2.5.6
+  - Copy & paste implemented into FAI
+  - Added setup fix to support GraphicsMagick
+  - Added several fixes for all user plugins to support Copy & Paste.
+  - Fixed malformed usage of $this>var in samba class. 
+  - Fixed checkbox selection in samba class.
+  - Connectivity netatalk: Moved plugin intialization from execute() to contructor().
+  - Fixes various issues with setup.php
+  - Avoid tab lables to have line feeds
+  - Activated missing checks for IP and MAC
+  - Fixed copy'n paste errors for netatalk
+  - Various W3C fixes
+  - Fixed "My Account" mode, where buttons disappear after saving
+  - Avoid removal of shares while they are used by users
+  - Added finer grained ACL settings for mail accounts
+  - Fixed day of birth problem in M$ IE
+  - Fixed setting of Kerberos passwords
+
+* gosa 2.5.5
+  - Added remove method for shared folder in kolab mode
+  - Added checkbox to decide if the shared folder should be deleted from IMAP
+    if the mail extension is removed from group mail account
+  - Updated request method for mail folders
+  - Resolved problem with infinite loop while storing sieve scripts
+  - Added subsearch checkbox to object group "add items" filter
+  - Fixed "missing PPD" configuration error, for newly created printer
+  - Corrected problem where the object base was sometimes broken when
+    saving object groups
+  - Fixed saving of terminal attribute gotoLpdEnable to contain "yes"
+    instead of "1"
+  - Avoid reset of several attributes from workstations when not
+    inherited from object groups
+  - Show error messages from password dialog
+  - Fixed a set of W3C problems
+  - Fixed multiple savings in addressbook (Closes: #23)
+  - Fixed shadow expire when using templates (Closes: #20)
+  - Made %uid, %sn, etc. available in templates using gosaMailAlternateAddress
+
+* gosa 2.5.4
+  - Included patch to choose the addressbook base
+  - Applied fixes for logviewer done by Mario Minati
+  - Updated locales, fixed a set of missing strings
+  - Fixed problems in FAI list handling
+  - Added "uid" to personal plugins for replacement in post events
+  - Fixed saving of user logon scripts
+  - Fixed non-FAI application mode
+  - More speed fixes applied, especially for users, objectgroups and
+    generic plugin loading
+  - Bug while saving FAI partitions fixed
+  - Don't save PPD if none is not selected bug fixed
+  - Saving of non revisioned applications fixed
+
+* gosa 2.5.3
+  - Fixed problem in reloading departments when we've PHP4
+  - Fixed gotoPrinter membership problem.
+  - Fixed environment shares, only available shares will be displayed (gosaUnitTag was ignored)
+  - Fixed saving of inherited workstation settings
+  - Removed error when no FAI repositories were present
+  - Fixed posix group add dialog, filter wasn't working.
+  - Fixed get_printer_list undefined index warnings while editing a user.
+  - Fixed ogroup non-static method error
+  - Fixed user membership for gotoPrinter, if membership was edited 
+    via user environemnt, some numeric values were stored too
+  - Fixed mail account, mail server string possibly was an array
+  - Fixed typos
+  - Fixed upper/lowcase ou's for groups/people when using an
+    unclean LDAP database
+  - Fixed ACL handling to *not* show the admin user dialog
+    when configured for self modify only
+  - Fixed problem when changing passwords via "My account"
+  - Added more information to hotplug devices.
+
+* gosa 2.5.2
+  - Fixed current main base not beeing set when editing non tabbed
+    plugins
+  - Fixed filtering for divlists
+  - Fixed deletion of shares in environment tabs
+  - Updated french online help
+  - Updated german online help
+  - Fixed display of FAI partitions
+  - Removed Quota warnings for existing accounts without quota limits
+  - Worked around PHP4 session problems when creating new departments
+  - Fixed problems when moving around departments including a comma
+  - Unified bool values in gosa.conf. true/yes and false/no are valid
+    now in upper and lower case.
+  - Avoid the try of creating already existing ou's
+  - Fixed non working printer removal
+
+* gosa 2.5.1
+  - Fixed problems with NFS shares and terminals
+  - Finalized polish translations
+  - Fixed problem with compressed gosa.conf in the debian package
+
+* gosa 2.5
+  - Improved FAI support
+    * Server and workstations are treated the same way
+    * Destination selector for new devices
+    * Summary tab introduced
+  - Improved robustness while operating whith the LDAP
+  - Several Kolab related fixes
+  - Tagging of departments introduced
+  - Global check hooks allow user defined testing
+    of single plugins
+  - Major speedups with large databases
+  - Added english and french online help
+  - Unified plugin "head" selectors, (re-)added subtree
+    support
+  - Fixed PPD parsing for several commercial PPD's
+  - Tune LDAP error messages
+  - Moved from "guru mediation style" to div-popups
+  - Several css fixes
+  - Fixed series of bugs that lead to not shown groups
+
+* gosa 2.4
+  - Updated layout to work cleanly with IE6+, Firefox 1.0.4+, khtml 3.4+
+  - Added FAI (Fully Automatted Installation) support
+  - Added mail queue management
+  - Added many missing acl informations
+  - Added help browser and initial french help
+  - Fixed templating for samba and unix users
+  - Applied hundreds of smaller bugfixes
+  - Improved speed by switching to directory style dialogs and performing
+    sub searches.
+  - Per user language selector in generic tab
+  - New connectivity plugins (PHPscheduleit/PPTP/glpi)
+
+* gosa 2.4beta3
+  - Updated layout
+  - Fixed application removal
+  - Improved accessibility for disabled persons
+  - Added intranet account to list of connectivity plugins
+  - Several kolab related fixes for server objects
+  - Corrected contributed slapd.conf
+  - Fixed kolab mode where GOsa saves KB quotas, interprets quotas as kolab MB
+  - Increased robustnes for non set fields
+  - Fixed IE issues with W3C compatibilty where IE posts disabled fields
+  - Fixed problems with existing samba accounts and password changed fields
+  - Removed login problems with undefined ldap_conf variable
+  - Fixed problems where the GECOS field is not written correctly
+
+* gosa 2.4beta2
+  - Fixed error handler to be PHP 4.x compatible
+  - Fixed PHP compatibility problem in setup.php, using ini_get()
+    instead of ini_get_all()
+  - Fixed cases where ipHostAddress is required but not checked
+    by GOsa
+  - Fixed group dialog filters
+  - Fixed problems in setup which showed up with white pages if
+    PHP has been compiled without mbstring support
+  - Fixed layout if the rendered page does not cover 100% of the
+    browser window
+  - Improved phone plugin to respect IAX, CAPI and SIP phone
+    attributes
+    automatically if the revision changes
+  - Improved W3C compatibility
+  - Added checks that remove the contents of /var/spool/gosa/*
+  - Added postmodify for password change operations
+
+* gosa 2.4beta1
+  - Override automatically detected user bases if they don't exist
+  - Don't shred samba group ID's if they are not present in the
+    combobox
+  - Updated smarty to version 2.6.9
+  - Updated GOfon support to handle new features
+  - Replacement of most external programm calls
+  - Samba3 bugfixes for munged dial handling
+  - Updated LDIF export
+  - Improved setup checks to find more possible errors
+  - Fixed index ruler for long lists
+  - Completed system creation for servers, phones and misc components
+  - Added support for kolab users and kolab server settings
+  - Added server settings
+  - Added LDIF import
+  - Added CSV import
+  - Added italian translation (thanks to Alessandro Amici)
+  - Added subtree search checkbox in lists with potential higher
+    usage
+  - Added version indicator to make support more easy
+  - Added sample databases for fax, phone and system logging
+  - Added error handler for normal PHP errors
+
+* gosa 2.3
+  - Updated smarty to version 2.6.7
+  - Added dutch translations (thanks to Niels Klomp)
+  - Added webdav and phpgroupware accounts
+  - Fixed french translation
+  - Fixed error in shadowExpire attribute
+  - Unified all filters in dialogs to use the internationalized choosers
+  - Added option to do non subtree searches with filters
+  - Fixed sample configuration files to be unproblematic when used in
+    conjunction with OpenLDAP 2.2
+  - Added experimental support for editing LDAP trees that contain referrals
+  - Updated Altlinux contributions, including themes and scripts
+  - Worked around a possible problem with sizelimit in php-ldap
+  - Improved big ldap support by size limits and non sub searches
+  - Various smaller fixes
+  - Added global TLS switch for LDAP connections
+  - Fixed SELECT queries to be mysql 3.x _and_ 4.x compatible
+  - Made departments movable
+
+* gosa 2.2
+  - Removed DHCP/DNS plugins, they will be replaced by
+    the terminal/server/workstation plugins.
+  - Added case sensitivity check for login names
+  - Made bases set to users "home" department when creating new objects
+  - Moved sieve-*.txt config files to /etc/gosa
+  - Told IMAP plugin to remove mail accounts when the user is deleted
+  - Interface cleanups
+  - Added simple log file viewer
+  - Added support for asterisk
+  - Included javascript magic to improve usability (doubleclicks in
+    lists, disabling of fields, warning messages, etc.)
+  - More filtering and sizelimits for speed optimizations
+  - Mail handling is now pluggable
+  - Added possibility to bundle objects to object groups
+  - Added a reference tab to track relation ships of different objects
+  - Improved samba 3 support (terminal server support)
+  - Updated translations and added a french one
+
+* gosa 2.1.3
+  - Fixed problem with initial password setting
+  - Increase number in version.inc
+  - Add a workaround to fix problem with groups not beeing displayed
+    with openldap. Here the server reacts with empty results if searching
+    for non existing objectClass "sambaGroupMapping" in case of using samba2
+  - Fix the homeDirectory check which is a bit too harsh with templates
+
+* gosa 2.1.2
+  - Fixed problem with uppercase login names
+  - Extensive speed increasements in ldap searches
+  - Fixed gettext problem on older installations
+  - Corrected sieve login which was broken due to a library switch
+  - Made in_array act case insensitive for is_account check
+  - Fixed location of DMODE and HASH in config file
+  - Fixed general problems with password hash generation if not
+    specified
+  - Complete move to unicode which removes all active encoding/decoding
+    of contents from GOsa itself
+  - Made GOsa run smooth on PHP 5
+  - Added complete russian translation contributed by Igor Muratov
+  - Migrated phone list to (global) addressbook
+  - Filtering fixes
+
+* gosa 2.1.1
+  - Enabled mail-account-less fax accounts
+  - Fixed upper/lower case problem in mail templates
+  - Fixed typo in generic plugin error message
+  - Made template dialog work again
+  - Fixed headpage for application management which tends to do no
+    proper display of used applications
+  - Added command line interface to use GOsa without web interface
+  - Updated debian control to be aware of apache2 based installations
+  - Transferd tab variables in group dialog, so the primary mail 
+    address can be checked
+  - Fixed possible case problem with is_account
+  - Made base selector contain newly added departments in department
+    dialog
+  
+* gosa 2.1
+  Bugfix release
+  - size of homeDirectory attribute increased
+  - FAQ/README/INSTALL updated
+  - spec file updated
+
+* gosa 2.1rc2
+  Bugfix release
+  - Made user dn configurable
+  - Fixed memory usage check
+  - Fixed size of alternate mail address field
+  - Fixed sorting of group in posix tab
+  - Made GOsa keep group membership even if user has no posix
+    account
+  - Fixed typo in blocklist spelling
+  - Fixed error message when trying to filter users without a
+    valid uid
+  - Made posix account visible, even if there are no shadow
+    attributes inside this entry
+  - Included setup
+  - Translation updates
+
+* gosa 2.1rc1
+  Bugfix release
+  - Fixed annoying ACL bug in template mode
+  - Fixed possible privilege escalation problem in password
+    routine (thanks to Henning Schmiedehausen)
+  - Removed password storage from user info class (thanks to
+    Rainer Herbst)
+  - Various interface cleanups
+  - Templatization finished
+  - Reworked user headpage
+  - Made GOsa more robust in detecting errors in config
+  - Added additional error messages reported by LDAP server
+  - Added schmemacheck hook
+  - Started with setup implementation
+
+* gosa 2.1beta3
+  Bugfix release
+  - Made template mode remember the templates primary group
+  - Templatized posix plugin
+  - Added option to disable strict checking of uid/gid names
+  - Massive samba3 updates
+  - Made ou=people and ou=groups configurable
+  - Fixed user/group lists to react on filter changes
+
+* gosa 2.1beta2
+  Bugfix and feature enhancement release.
+  - Made GOsa remove object locks when changing plugins during edit
+    process.
+  - Added DHCP plugin
+  - Gerneral speed tunig, reduced the number of unessasary ldap
+    accesses
+  - Added syslog output for actions "save" and "remove"
+  - Fixed handling for multiple ACL's per base
+  - Fixed listboxes to unify output / sort output
+  - Fixed annoying bug in tab_groups.inc when removing the mailtab
+  - Bases did not get set in template mode
+  - Fixed user part
+  - Templatized faxaccount/pureftpd/samba and mail plugins
+  - Included calendar.js functionality in samba plugin
+
+* gosa 2.1beta1
+  This release has some feature enhancements and contains many
+  bugfixes and design cleanups
+  - Fixed many HTML related things. Pages are now perfectly validated
+    as html 4.01 transitional.
+  - Added dn cleaner to getDN() in order to fix problems with
+    "broken" ldap databases.
+  - Added schemata for iplanet, checked if it works.
+  - Rewrote phonelist, added vcard export.
+  - Added filters to allmost all plugins.
+  - Added DNS plugin.
+  - Generic userinterface cleanups, everything is a template now and can be
+    redesigned/stripped.
+  - Improved translations, added missing ones.
+  - Added choosable templates for mail vacation messages.
+  - Improved templating stuff to generate user defined auto uids.
+  - Made user interface more comprehensive, so its important for you
+    to start with a clean gosa.conf from contrib.
+  - Added external password change hook, so that its possible to synchronize
+    with a non samba PDC via scripts. (Some organizations tend to keep a
+    readable copy of their users password which possible now, too.)
+  - Updated FAQ
+
+* gosa 2.0.1
+  This release doesn't have feature enhancements (nearly), only
+  bugfixes reported by users are incorporated.
+  - Fixed oblivious fields when changing to subdialogs. All
+    user dialogs were affected
+  - Made facsimileTelephoneNumber beeing saved without the
+    need of a fax account
+  - Fixed printer sorting which destroyed the array index
+  - Removed redundant fields in terminal configuration
+  - Made terminal plugin save the terminal hardware information
+  - Added missing </html> tags to index.php/main.php
+  - Fixed debian debconf script not to touch uidbase/ridbase
+    values in gosa.conf
+  - Fixed "Force ID", which creates a group for the posix
+    user with forced ID.
+  - Finetuning in login window behaviour
+  - Code cleanup and templatized two more plugins
+  - As requested by some users, you can now advise GOsa not to
+    create a group for the user, but take an existing group
+    as primary one.
+  - Added 'dn cleaner' for the acl list. So syntactically
+    problematic dn's with strange commata get fixed.
+
+* gosa 2.0 final
+  - Made samba3 support work
+  - Fixed several small bugs with the templating stuff
+  - Fixed problem with shared folders, added missing attribute
+    gosaSharedFolderTarget needed in some setups
+  - Updated icons
+  - Renamed icons to have more logical names
+
+* gosa 2.0rc2
+  - Corrected mistakenly copied ui object in functions.inc
+  - Fixed errors when activating new terminals
+  - Removed krb warnings in class_user.inc
+  - Plugins user, apps, groups and departments didn't check for
+    already present entries. Now they do.
+  - Removed problem in terminal dialog where checkboxes are not
+    saved
+  - Fixed ACL handling for users primary group
+  - Replaced own template class by smarty, since only two files
+    were affected by this
+  - Changed basic layout to seperate public readable files from
+    templates
+  - Added FAQ, update TODO for next versions
+  - Made accounts movable between departments
+  - Added partial spanish translations
+  - Fixed mail group handling
+
+* gosa 2.0rc1
+  - Switched to XML based gosa.conf
+  - Cleaned all plugins, moved to children of plugin.conf
+  - Moved back to gettext for translations
+  - Added hooks for pre-/post-install scripts
+  - Cleaned LDAP class
+  - Added workarounds for MS-IE (>5.5) to render transparent
+    PNGs in a correct way
+  - Redesigned login screen / some plugins
+  - Added hooks for eGOsa, which is a java applet based
+    browsing tool
+  - Switched from user based ACLs to group based ACLs,
+    removed standalone ACL plugin in favor of new group tab.
+  - Fixed samba2 rid generation (btw. still missing is sid
+    support for samba3. But this will go into the final.)
+  - Fixed many minor bugs
+  - Introduced simple theming support
+  - Added 'dn'-renaming for accounts
+
+Changelog starts with latest Beta 1.99.97
diff --git a/gosa-core/FAQ b/gosa-core/FAQ
new file mode 100644
index 0000000..cd9dff8
--- /dev/null
+++ b/gosa-core/FAQ
@@ -0,0 +1,590 @@
+This is the textual form of the GOsa FAQ. Online information with
+comments is set up at Wiki: https://oss.gonicus.de/labs/gosa/wiki/documentation
+
+Q: When creating many users for one department, I need to fill some
+   fields again and again. Is there a shortcut for that?
+
+A: Just create a user template and pre-fill all values you need. You
+   can use dynamic content, too: uid, sn and givenName will be replaced.
+   i.E. an entry '/home/%uid' in homeDirectory will be replaced by the
+   real uid of the user you're creating, %sn.%givenName at yourdomain.com
+   creates proper email addresses, etc. Templates include group membership.
+
+
+Q: Can GOsa execute commands after creating/editing/removing users,
+   departments, etc.
+
+A: Yes. Edit /etc/gosa/gosa.conf's menu section. Each plugin may has
+   an entry "postremove", "postmodify" and "postcreate".  You can use
+   ldap attributes as command line options.
+   i.E. postcreate="/usr/bin/sudo /usr/local/sbin/ftp.setperms %uid '%givenName'"
+
+
+Q: I'd like to  modify the look of GOsa to fit our CI. How can I create an
+   own theme?
+
+A: Themes are splitted into two parts. ihtml/ contains templates which
+   generate the ui, html/ contains all parts that must be readable from
+   clients. GOsa first looks for predefined files in the directory indirectly
+   defined via the "theme" parameter in /etc/gosa/gosa.conf. If it can't
+   find them here, it'll use the default one.
+
+   So start over by copying html/themes/default to html/themes/yourtheme
+   and ihtml/themes/default to ihtml/themes/yourtheme. Change gosa.conf to
+   contain theme="yourtheme" in section main. Here are some files to edit:
+
+   * login.tpl          -> login screen
+   * framework.tpl	-> page contents
+   * style.css          -> stylesheets used by GOsa
+ 
+
+Q: How can I let a person do administrative tasks under a specific department?
+
+A: Gosa 2.5.x
+   * Create a group inside this department. 
+   * Put all administrative people inside
+   * go to the "ACL" tab and check all fields these users should be able to adminstrate.
+   
+   GOsa 2.6 implements a more flexible but complex ACL management, please have a look at 
+   the following wiki page: https://oss.gonicus.de/labs/gosa/wiki/DocumentationWritingACLs2.6
+   If you have still questions, please use the mailing list or the forum.
+   
+
+Q: How can I permit users to change some of their own attributes?
+
+A: Same like described above, but additionally you have to check the option 
+   'Apply this acl only for users own entries'.
+   (For versions 2.6.x, see the wiki pages)
+
+
+Q: What about applications?
+
+A: GOsa can manage desktop applications in ldap. Create a group and put all users
+   in there, which have common desktop settings. Go to the "Application" tab and
+   add all applications common to this group. Applications can be created from the
+   application plugin.
+   The idea behind this feature is a script running on the terminal-servers/
+   workstation which check for applications on login (or on a regular basis using
+   timestamps). This one will create the corresponding icons on your KDE or GNOME
+   desktop.
+
+
+Q: What's this terminal stuff?
+
+A: GOto is - similar to LTSP - a ldap based diskless client system. It is available
+   from our projects page.
+
+
+Q: I can't select any mailservers. What's wrong?
+
+A: It seems that a mail server is missing in your configuration.
+   Create a new server, go to the services tab and add the imap service.
+   For more details, please have a look at the FAQ and wiki pages. 
+   (This may differ in older GOsa versions)
+
+
+Q: GOsa is not in my native language, can I translate it to my language?
+
+A: Yes. Just go to the locale directory and copy the messages.po file somewhere
+   else. Edit the copy and put your translations into the msgstr lines. To be
+   included in next GOsa releases, you may want to send it to the GOsa maintainer.
+   Finally you need to create a directory with your language code. (i.e. de for
+   german) containing the LC_MESSAGES directory. Move your messages.po file there
+   and run 'msgfmt messages.po' in that directory. That's it.
+
+   You may need to restart apache, depending on your setup. On Debian, be sure
+   to have your locale generated (dpkg-reconfigure locales) before.
+
+
+Q: The online help doesn't exist in my language, can i translate it to my language?
+
+A: Yes. Just go to the doc/guide/user/en directory and copy the lyx-source directory
+   to a new directory in doc/guide/user/<your language>. You have to use the lyx
+   program create the online help in your language. When you have finish just run
+   ./gen_online_help from the gosa root directory to generate the online docs.
+
+   
+Q: Can I specify some kind of password policies?
+
+A: You can place the keywords "passwordMinLength" and "passwordMinDiffer" in the main
+   section of your gosa.conf. "passwordMinLength" specifies how many characters a
+   password must have to be accepted. "passwordMinDiffer" contains the number of
+   characters that must be different from the previous password.
+
+   Note that these only affect passwords that are set by the user, not by the admins.
+
+
+Q: I've to update passwords on external windows PDCs. Can I add a command to let
+   synchronize these for me?
+
+A: There's the possibility to add a password hook in gosa.conf's main section using
+   the keyword "passwordHook". The specified command will be executed with 
+   three parameters: /path/to/your/script username oldpassword newpassword
+
+   So you can call i.e. smbpasswd to handle your password change on the PDC.
+
+
+Q: What about templates for vacation messages?
+
+A: Create a directory to keep a set of vacation messages which are readable by the
+   user that runs your apache. In this example I'll use /etc/gosa/vacation for that.
+
+   Put your vacation files in there containing a "DESC:some descriptive text" as the
+   first line followed by the normal vacation text. You can use all attributes from
+   the generic tab. I.e.:
+
+    /etc/gosa/vacation/business.txt 
+
+   |--> 
+    DESC:Away from desk
+    Hi, I'm currently away from my desk. You can contact me on
+    my cell phone via %mobile.
+    
+    Greetings,
+    %givenName %sn
+   |<--
+ 
+   Place the config option vacationTemplateDirectory="/etc/gosa/vacation" in the location found in
+   gosa.conf and a template box is show in the vacation mail tab.
+
+
+Q: How can I generate automatic ID's for user templates?
+
+A: Add an entry describing your id policy in gosa.conf, location section:
+
+   a) using attributes
+      You can specify LDAP attributes (currently only sn and givenName) in braces {}
+      and add a percent sign befor it. Optionally you can strip it down to a number
+      of characters, specified in []. I.e.
+
+   |--> 
+      idGenerator="{%sn}-{%givenName[2-4]}"
+   |<--
+
+      will generate an ID using the full surename, adding a dash, and adding at least
+      the first two characters of givenName. If this ID is used, it'll use up to four
+      characters. If no automatic generation is possible, a input box is shown.
+
+   b) using automatic id's
+      I.e. specifying
+
+   |--> 
+      idGenerator="acct{id:3}"
+   |<--
+
+      will generate a three digits id with the next free entry appended to "acct".
+
+   |--> 
+      idGenerator="ext{id#3}"
+   |<--
+
+      will generate a three digits random number appended to "ext".
+
+
+Q: I'm migrating from the current LDAP, now GOsa does not allow uid's and group
+   with upper/lower case and spaces. What can I do?
+
+A: Include the strictNamingRules="no" keyword in your gosa.conf's location section.
+   WARNING: using strictNamingRules="no" will cause problems with cyrus/postfix!!
+
+
+Q: I'd like to place my users under ou=staff, not under ou=people. Can I change
+   this?
+
+A: Yes. You can change the people and group locations by adding the following
+   statements to your location sections:
+
+   |--> 
+   userRDN="ou=staff"
+   groupRDN="ou=crowds"
+   |<--
+
+   After logging in again, people and groups are created in the configured places.
+   As a side note, you can leave these strings blank for flat structures, too.
+
+
+Q: I've problems with many objectClass violations/undefined attributes. Can GOsa
+   check what's missing?
+
+A: Yes. Move away your gosa.conf and go to the GOsa setup. Follow the steps till
+   you can download the config. If you get up to this point, your schema is ok...
+
+
+Q: I really don't want dn's containing the CN for user accounts because I don't
+   want to support anonymous binds for uid resolution. Is it possible to have dn's
+   containing the uid instead?
+
+A: Yes. Placing the accountPrimaryAttribute="uid" keyword in your gosa.conf's location
+   section will solve your problem.
+
+
+Q: Hey, I've installed GOsa, but it claims something about "SID and / or RIDBASE
+   are missing in your configuration". What's wrong?
+
+A: You've configured GOsa to use samba3, but your LDAP has no samba domain object
+   inside. Either log into samba for the first time to let it create that object,
+   or supply the sid and ridbase for your domain in your gosa.conf's location, i.e.:
+
+   |--> 
+   <location name=...>
+             ...
+             sambaRidBase="1000"
+             sambaSID="0-815-4711" \>
+   |<--
+
+   Remember to fill in your real domain sid which is retrievable by the command
+   "net getlocalsid".
+
+
+Q: We have massive performance problems with using samba as a member server.
+
+A: This is a known issue. We're working around this by putting
+
+   |--> 
+   <location name=...>
+    ...
+    sambaIdMapping="true"
+    ... \>
+   |<--
+
+    into the configuration. GOsa will write the additional objectClass sambaIdmapEntry
+    to the group and user objects.
+
+
+Q: I get 'The value specified as GID/UID number is too small' when forcing IDs. Why?
+
+A: This is an additional security feature, so that no one can fall back to uid 0. The
+   default minimum ID is 100. You can set it to every value you like by specifying
+
+   |--> 
+   <location name=...>
+    ...
+    minId="40"
+    ... \>
+   |<--
+
+   in your configuration. In this example 40 will be the smallest ID you can enter.
+
+
+Q: Aahhrg. I've updated to a new version and my gosa.conf seems to be broken.
+
+A: Some parameters may have changed. Please move your gosa.conf away and re-run the setup.
+
+
+Q: I've saved my windows workstations in other locations like GOsa is doing it
+   for decades. Is there a way to change this?
+
+A: Yes. Use the winstation parameter in your location section: 
+
+   |--> 
+   <location name=...>
+   ...
+   sambaMachineAccountRDN="ou=machineaccounts"
+   ... \>
+   |<--
+
+
+Q: GOsa doesn't seem to follow my referrals. What can I do?
+
+A: Place the option 'ldapFollowReferrals = "true"' inside your locations definition
+   and you should be fine.
+
+
+Q: I'd like to have TLS based LDAP connections from within GOsa. Is this possible?
+
+A: Yes, add
+
+   |--> 
+   <location ...>
+   ...
+         ldapTLS="true"
+   ... \>
+   |<--
+
+   to the location section of GOsa. This switch affects LDAP connections for a single location only.
+
+
+Q: Cyrus folder get created in the style user.username. I prefer the unix hirachy
+   style user/username. Is it possible to change this?
+
+A: Yes, add
+
+   |--> 
+   <location
+	...
+    cyrusUseSlashes="true"
+   |<--
+
+   to the location or main section of GOsa and the folders are created in unix style.
+
+
+Q: I've a cyrus installation with customized user and folder prefixes. 
+   How can I tell GOsa to use the prefixes I prefer?
+
+A: Simply set the following attributes in the location tag of your gosa.conf:  
+
+   |--> 
+   <location 
+	...
+    mailUserCreation="myprefix/%mail%"
+    mailFolderCreation="myfolder\\.%cn%@%domain%"
+   |<--
+
+   The dot in the above example is escaped to prevent it from replacing with '/' if 
+    cyrusUseSlashes is set to true.
+
+   You can use the following replacements:
+   |--> 
+    %cn%       - The groups cn.
+    %uid%      - The users uid.
+    %prefix%   - The default prefix used by the mailmethod.
+    %uattrib%  - The configured mailAttribute="" (gosa.conf).
+    %domain%   - The domain part of the given mail address. (user at domain.com = domain.com)
+    %mailpart% - The user part of the mail address. (user at domain.com = user)
+    %mail%     - The complete mail address. 
+   |<--
+
+
+Q: I want to use cyrus for multiple mail domains, but GOsa uses the 'uid' attribute for account namens, how do I change this to 'mail'?
+
+A: Just add/modify the following line to/in your gosa.conf:
+
+   |--> 
+   <location 
+    ...
+    mailAttribute="mail"
+   |<--
+
+
+Q: I'd like to do special checks for several plugin parameters. How can I modify
+   GOsa to take care of these checks?
+
+A: No need to modify anything. Just add a hook the the plugin you'd like to
+   check:
+
+   |--> 
+    check="/your/command/binary"
+   |<--
+
+   This binary will get an ldif to STDIN for analysis and may write an error message
+   to STDOUT. Note, that the supplied ldif may NOT be the original target ldif due
+   to technical reasons.
+
+
+Q: Is there a way to use ACL independet filtering when using administrative units?
+
+A: Yes. Set "honourUnitTags" to "true" in your gosa.conf's location section.
+
+
+Q: How can i active the account expiration code for the gosa interface?
+
+A: Yes. Just set "handleExpiredAccounts" to "true" in your gosa.conf's main section.
+
+
+Q: What is the correct connection string for a Kolab server in GOsa?
+
+A: Try {localhost:143/novalidate-cert}.
+
+
+Q: Sieve is not working from GOsa - there are authentication problems
+   with this service, IMAP/POP is working. What's wrong?
+
+A: Verify that the paramater sasl_auto_transition: no is not
+   present in your imap.conf
+
+
+Q: I have a SIEVE problem - "Can't log into SIEVE server. Server  says //. -
+
+A: Probably something is wrong with the authentification which is used by timesieved.
+   - Check if you can login with "sieveshell" on this host.
+   - Also check "telnet localhost 2000" - Is there any output about "Plain Login"?
+
+   Please verify the ldap imap attributes, like goImapSieveServer and goImapSievePort. 
+   These value can be modified using the server->services tab in GOsa 2.6 and in
+    GOsa 2.5 you can find these options under server->databases.
+
+   Here is an older, but maybe helpful solution for Cyrus-Imapd 2.1.5 on SuSE 9.0:
+   - Install the "cyrus-sasl-plain" rpm from the distro-cd (This packet contains "sasl2/libplain" library).
+   - Modify your /etc/imap.conf:
+
+   |--> 
+    sasl_pwcheck_method: saslauthd
+    sasl_mech_list: plain login
+   |<--
+
+   - Modify your /etc/sysconfig/saslauthd:
+
+   |--> 
+    SASLAUTHD_AUTHMECH=pam
+   |<--
+
+
+Q: Slapd does not start with kolab2.schema included. It claims that the
+   definition of calFBURL is missing. What can I do?
+
+A: For Kolab to work correctly you have to include the rfc2739.schema
+   in your slapd.conf. Insert it before the kolab2.schema
+
+
+Q: New implementations of OpenLDAP seem to require {sasl} instead of {kerberos}
+   in password hashes. GOsa writes the wrong string. What can I do?
+
+A: You can set "useSaslForKerberos" to "true" in your gosa.conf's main section.
+
+
+Q: Is there a way to add the personalTitle attribute the the users dn?
+
+A: Just add this line into the location section of your gosa.conf.
+
+   |--> 
+   <location
+    ... 
+    personalTitleInDN="true"
+   |<--
+
+
+Q: I'd like to assign different uid bases for certain user/group objects.
+   How can this be achieved?
+
+A: Use the 'baseIdHook' in your gosa.conf's location section to specify a script
+   which handles the ID generation externaly. It get's called with the "dn"
+   and the attribute to be ID'd. It should return an integer value.
+
+
+Q: I'd like to use rfc2307bis compliant groups. Is this possible?
+
+A: Yes - place the rfc2307bis="true" inside of the location section of
+   your gosa.conf. Remember, that you can't create empty groups in this mode.
+
+
+Q: Can GOsa show some vendor information for given MAC addresses?
+
+A: Yes. Download http://standards.ieee.org/regauth/oui/oui.txt and place
+   it in /etc/gosa/oui.txt.
+
+
+Q: GOsa sessions expire too quick. Is there a way to change this?
+
+A: Yes. Set "sessionLifetime" to the number of seconds of inactivity. 7200
+   (60x60x2) would be for two hours. Place this option inside the main
+   section of your gosa.conf.
+
+
+Q: Microsoft Internet Explorer <=6 seems paints strange blocks around
+   images.
+
+A: Use Firefox, Konqueror, Safari, Opera, IE >= 7, etc. IE is broken and
+   I don't want to waste my time with working around this old crap. There's
+   a quick hack, if you just put "iePngWorkaround='true'" inside the main
+   section of your gosa.conf. This is a JavaScript based workaround and I've
+   to place a WARNING here, that it is damn slow if you've large lists to
+   display.
+
+   If you have much time, you can provide a seamless integration with MS
+   filter css extension.
+
+
+Q: Is there a way to let users change passwords without logging into GOsa?
+
+A: Yes. Browse to "password.php". You can preset a couple of things i.e.:
+
+   |--> 
+    http://your.admin.server/password.php?uid=cajus&method=md5&directory=GONICUS+GmbH
+   |<--
+
+
+Q: GOsa only shows 300 entries at a time. Is this normal?
+
+A: There's a default sizelimit. You can set the "ldapSizelimit" option in your
+   gosa.conf's  location section to a higher value to get rid of it.
+
+
+Q: I have problems with my ldap server when I open groups with 
+   a huge amount of members, what can I do?
+
+A: You can set a nesting limit which ensures that the user names will not be 
+   resolved if the amount of members reaches this limit.
+
+   |--> 
+    <location
+     ...
+     ldapFilterNestingLimit="100"
+   |<--
+
+
+Q: I want to disable the "Is the configuration file up to date?" check when logging in.
+   How can I disable this check?
+
+A: Just set the configVersion attribute to an empty value:
+
+   |--> 
+    <conf configVersion="" >
+   |<--
+
+
+Q: I've shredded my access control and am not able to do anything from now on. Is there
+   a way to override the ACL?
+
+A: Yes. Insert the following statement in the location section of your gosa.conf:
+
+   |--> 
+    ignoreAcl="your user's dn"
+   |<--
+
+
+Q: I can't logon as Administration, what is wrong?
+
+A: It looks like you are missing an administrativ account. 
+   In newer versions of GOsa you can simply re-run the setup and create 
+    an admin account on the migration page. 
+
+   Additionally you can set ignoreACL in GOsa 2.6, just search the FAQ.
+ 
+
+Q: The Unix's user's shell list is empty (unconfigured)
+
+A: Just copy or link your /etc/shell in /etc/gosa.
+
+
+Q: After upgrading GOsa, the setup.php doesn't work or looks broken. 
+
+A: You should delete all files in /var/spool/gosa
+
+   |--> 
+    # cd /var/spool/gosa
+    # rm -rf *
+   |<--
+
+
+Q: After installing GOsa using an existing LDAP tree, my user accounts are not listed.
+
+A: You need to add the following objectClasses to your accounts:
+  
+   |--> 
+    objectClass: person
+    objectClass: organizationalPerson
+   |<--
+
+   The setup will automatically migrate those accounts, see migration step in GOsa setup!
+
+
+Q: Is it possible to login with the users mail address too? 
+
+A: Yes, just add the following line to your gosa.conf:
+
+   |--> 
+   <location 
+    ...
+    loginAttribute="mail"
+   |<--
+
+   or for both, uid and mail:
+
+   |--> 
+   <location 
+    ...
+    loginAttribute="uid,mail"
+   |<--
+
+
+
diff --git a/gosa-core/INSTALL b/gosa-core/INSTALL
new file mode 100644
index 0000000..fbac175
--- /dev/null
+++ b/gosa-core/INSTALL
@@ -0,0 +1,114 @@
+GOsa 2.6 QUICK INSTALL
+======================
+
+Prequisite:
+
+You have a system up and running. It has apache and PHP installed
+and there is a blank (or prefilled) but working LDAP available.
+
+---
+
+Installing GOsa from source:
+
+Unpack the GOsa tarball and move the main gosa directory to
+a place your webserver is configured to find it. The default
+location will be /usr/share/gosa. For later reference, I assume
+that you've choosen this path, too.
+
+Create the directory /var/spool/gosa for the smarty compile directory.
+Make it read/write for the webserver (additional chmod 770). You may
+want to move it elsewhere, configure it in gosa.conf.
+
+Create the configuration directory /etc/gosa and make sure
+that your webserver can read it.
+
+As a summmary, you now have these directories for GOsa:
+
+/etc/gosa
+/var/spool/gosa
+/usr/share/gosa
+
+Update the class cache:
+
+Run "update-gosa" from the GOsa main directory.
+
+After this has been done, include settings for GOsa in your apache
+config:
+
+# Set alias to gosa
+Alias /gosa /usr/share/gosa/html
+
+Assumed you've installed PHP >= 5.2.0, reload your apache webserver
+and do your first GOsa dry run without configuration:
+
+http[s]://your-server/gosa
+
+GOsa setup will perform some basic system checks about general
+prerequisites. The setup asks some questions and provides a
+basic gosa.conf to save in /etc/gosa. Follow the instructions
+until you're able to log in.
+
+You're done. Lets play with the GUI.
+
+---
+
+* Installing from Packages
+
+If you install GOsa from packages, all the steps from above will
+be done automatically. Go to the setup:
+
+http[s]://your-server/gosa
+
+GOsa setup will perform some basic system checks about general
+prerequisites. The setup asks some questions and provides a
+basic gosa.conf to save in /etc/gosa. Follow the instructions
+until you're able to log in.
+
+You're done. Lets play with the GUI.
+
+---
+
+* Migrating an existing tree
+
+To migrate an existing LDAP tree, you've to do all steps from above,
+plus some modifications:
+
+- GOsa only shows users that have the objectClass gosaAccount
+  This one has been introduced for several reasons. First, there are
+  cases you want to hide special accounts from regular admins (i.e.
+  a samba admin account which is used to log windows machines into
+  their domain, where chaning a password by accident has bad consequences).
+  Secondly the gosaAccount keeps the lm/nt password hashes and the
+  attributes for the last password change - with the consequence that
+  adding a samba account "later" will not require the user to reset
+  the password.
+
+- GOsa only recognizes subtrees (or departments in GOsa's view of things)
+  that have the objectClass gosaDepartment. You can hide subtrees from GOsa
+  by not putting this objectClass inside.
+
+The GOsa setup may be used to do these migrations, but it is not meant
+to work in every possible circumstance. For the first time:
+
+DO NOT WORK ON PRODUCTIVE DATA IF YOU DON'T KNOW WHAT YOU'RE DOING!
+
+That should be all. Entries should be visible in GOsa now. Be aware that if
+your naming policy of user cn's differs from the way GOsa handles it, the
+entries get rewritten to a GOsa style dn.
+
+---
+
+* Further information
+
+To improve this piece of software, please report all kind of errors, either
+using the bug tracker on www.gosa-project.org or the button on the upper
+right.
+
+Documentation: https://www.gosa-project.org
+Mailinglist:   https://oss.gonicus.de/mailman/listinfo/gosa/
+Upgrade hints: https://oss.gonicus.de/labs/gosa/wiki/DocumentationInstallingUpdatingGOsa
+
+Have fun!
+
+---
+Cajus Pollmeier <pollmeier at gonicus.de>
diff --git a/gosa-core/README b/gosa-core/README
new file mode 100644
index 0000000..3d1b0cf
--- /dev/null
+++ b/gosa-core/README
@@ -0,0 +1,73 @@
+GOsa 2.6 README
+===============
+
+* Information
+
+GOsa is a LDAP administration frontend for user administration. It
+is NO GENERIC frontend to dictionary servers. Informations are stored
+in the way the underlying conecpts suppose them to be stored (i.e.
+people accounts are stored in "ou=people" subtrees, etc.) This can
+be configured marginally.
+
+Complete setups applying Kerberos, AFS, LDAP, Mail, Proxy and Fax setups
+are not trivial at all. You should be familiar with these components and
+with your UNIX installation, of cause. This file is (and will not be)
+an introduction to any of these components. See INSTALL for a quick
+overview about what to do, to get the things up and running. A complete
+GOsa infrastructure howto is work in progress and not released yet.
+
+
+* Translations
+
+GOsa is not available in your native language? Just read on...
+
+Translations (or I18N) in GOsa is done by the gettext library. As a
+result, every set of translations is stored inside of one directory
+per language as a text file called "messages.po".
+
+For GOsa you've to differenciate between gosa-core and single
+gosa-plugins. The core as a translation and every plugin has a seperate
+translation, too.
+
+GOsa core can be translated by taking a look at the locales/core
+directory. Just take the messages.po file and copy it to some other
+location and put your translations into the msgstr fields of this
+file. For more comfort, use programs like i.e. kbabel or poedit to
+achieve this. You may look at the de/LC_MESSAGES for the way how it
+works.
+
+If you're ready with that, create a directory for your language using
+the ISO shortcuts (i.e. es for spain) with a subdirectory LC_MESSAGES.
+In case of spain this will be
+
+ gosa-core/locales/core/es/LC_MESSAGES
+
+and put the freshly translated messages.po in this directory.
+
+To test this, you've deploy the messages.po file in your running copy
+of GOsa and run the "update-gosa" command, to let GOsa merge the
+translations. Then, Make sure your apache has locale support or, in case
+of debian, that the specific locale will be generated (via dpkg-reconfigure
+locales).
+
+You may want your translations to be included in the main GOsa repository,
+then just send the .po file to me or ask for SVN access.
+
+For gosa-plugins, every plugin has a locales directory. Translation works
+like described for gosa-core.
+
+Always run update-gosa after you've added translations in order to let GOsa
+compile and re-sync the translations.
+
+
+* NOTES
+
+Be sure that 'gosaUserTemplates' are not able to log into your server,
+since they may have no password set. Example configs can be found in
+the contrib directory.
+
+Have fun!
+
+---
+Cajus Pollmeier <pollmeier at gonicus.de>
+
diff --git a/gosa-core/README.safemode b/gosa-core/README.safemode
new file mode 100644
index 0000000..e434340
--- /dev/null
+++ b/gosa-core/README.safemode
@@ -0,0 +1,14 @@
+In order to run GOsa in PHP's safe mode, these changes in your php.ini
+have been tested:
+
+magic_quotes_qpc = On
+allow_url_fopen = No
+register_globals = Off
+safe_mode = On
+safe_mode_include_dir = "/usr/share/gosa:/var/spool/gosa"
+safe_mode_exec_dir = "/usr/lib/gosa"
+safe_mode_allowed_env_vars = PHP_,LANG
+open_basedir = "/etc/gosa:/var/spool/gosa:/var/cache/gosa:/usr/share/gosa:/tmp"
+include_path = ".:/usr/share/php:/usr/share/gosa:/var/spool/gosa:/usr/share/gosa/safe_bin"
+disable_functions = system, shell_exec, passthru, phpinfo, show_source
+
diff --git a/gosa-core/bin/gosa-encrypt-passwords b/gosa-core/bin/gosa-encrypt-passwords
new file mode 100755
index 0000000..7d5c69d
--- /dev/null
+++ b/gosa-core/bin/gosa-encrypt-passwords
@@ -0,0 +1,126 @@
+#!/usr/bin/php
+<?php
+
+function cred_encrypt($input, $password) {
+
+  $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
+  $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
+
+  return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $password, $input, MCRYPT_MODE_ECB, $iv));
+}
+
+
+function get_random_char() {
+  $randno = rand (0, 63);
+  if ($randno < 12) {
+    return (chr ($randno + 46)); // Digits, '/' and '.'
+  } else if ($randno < 38) {
+    return (chr ($randno + 53)); // Uppercase
+  } else {
+    return (chr ($randno + 59)); // Lowercase
+  }
+}
+
+
+function get_random_string($size= 32){
+  $str= "";
+  for ($i = 0; $i < $size; $i++) {
+    $str .= get_random_char();
+  }
+  return $str;
+}
+
+
+# We need to have access to gosa.secrets
+if (posix_getuid() != 0){
+  die ("This program needs to be called by root!\n");
+}
+
+# Do we have a valid gosa.conf?
+if (!file_exists("/etc/gosa/gosa.conf")){
+  die ("Cannot find a valid /etc/gosa/gosa.conf!\n");
+}
+
+echo "Starting password encryption\n";
+echo "* generating random master key\n";
+$master_key= get_random_string();
+
+# Do we have a valid gosa.secrets, already? 
+if (file_exists("/etc/gosa/gosa.secrets")){
+  die ("There's already a /etc/gosa/gosa.secrets. Cannot convert your existing gosa.conf - aborted\n");
+} else {
+  echo "* creating /etc/gosa/gosa.secrets\n";
+  $fp = fopen("/etc/gosa/gosa.secrets", 'w') or die("Cannot open /etc/gosa/gosa.secrets for writing - aborted");
+  fwrite($fp, "RequestHeader set GOSA_KEY $master_key\n");
+  fclose($fp);
+  chmod ("/etc/gosa/gosa.secrets", 0600);
+  chown ("/etc/gosa/gosa.secrets", "root");
+  chgrp ("/etc/gosa/gosa.secrets", "root");
+}
+
+# Locate all passwords inside the gosa.conf
+echo "* loading /etc/gosa/gosa.conf\n";
+$conf = new DOMDocument();
+$conf->load("/etc/gosa/gosa.conf") or die ("Cannot read /etc/gosa/gosa.conf - aborted\n");
+$conf->encoding = 'UTF-8';
+$referrals= $conf->getElementsByTagName("referral");
+foreach($referrals as $referral){
+  $user = $referral->attributes->getNamedItem("adminDn");
+  echo "* encrypting GOsa password for: ".$user->nodeValue."\n";
+  $pw= $referral->attributes->getNamedItem("adminPassword");
+  $pw->nodeValue= cred_encrypt($pw->nodeValue, $master_key);
+}
+
+# Encrypt the snapshot passwords 
+$locations= $conf->getElementsByTagName("location");
+foreach($locations as $location){
+  $name = $location->attributes->getNamedItem("name"); 
+  $node = $location->attributes->getNamedItem("snapshotAdminPassword"); 
+  if($node->nodeValue){
+    echo "* encrypting snapshot pasword for location: ".$name->nodeValue."\n";
+    $node->nodeValue = cred_encrypt($node->nodeValue, $master_key);;
+  }
+}
+
+# Move original gosa.conf out of the way and make it unreadable for the web user
+echo "* creating backup in /etc/gosa/gosa.conf.orig\n";
+rename("/etc/gosa/gosa.conf", "/etc/gosa/gosa.conf.orig");
+chmod("/etc/gosa/gosa.conf.orig", 0600);
+chown ("/etc/gosa/gosa.conf.orig", "root");
+chgrp ("/etc/gosa/gosa.conf.orig", "root");
+
+# Save new passwords
+echo "* saving modified /etc/gosa/gosa.conf\n";
+$conf->save("/etc/gosa/gosa.conf") or die("Cannot write modified /etc/gosa/gosa.conf - aborted\n");
+chmod("/etc/gosa/gosa.conf", 0640);
+chown ("/etc/gosa/gosa.conf", "root");
+chgrp ("/etc/gosa/gosa.conf", "www-data");
+echo "OK\n\n";
+
+# Print reminder
+echo<<<EOF
+Please adapt your http gosa location declaration to include the newly
+created "/etc/gosa/gosa.secrets".
+
+Example:
+
+Alias /gosa /usr/share/gosa/html
+
+<Location /gosa>
+  php_admin_flag engine on
+  php_admin_value open_basedir "/etc/gosa/:/usr/share/gosa/:/var/cache/gosa/:/var/spool/gosa/"
+  php_admin_flag register_globals off
+  php_admin_flag allow_call_time_pass_reference off
+  php_admin_flag expose_php off
+  php_admin_flag zend.ze1_compatibility_mode off
+  php_admin_flag register_long_arrays off
+  php_admin_flag magic_quotes_gpc on
+  include /etc/gosa/gosa.secrets
+</Location>
+
+
+Please reload your httpd configuration after you've modified anything.
+
+
+EOF;
+?>
diff --git a/gosa-core/bin/mkntpasswd b/gosa-core/bin/mkntpasswd
new file mode 100755
index 0000000..b860f37
--- /dev/null
+++ b/gosa-core/bin/mkntpasswd
@@ -0,0 +1,10 @@
+#!/bin/sh
+if [ $# -ne 1 ]; then
+	echo "Usage: mkntpwd <password>"
+	exit 1
+fi
+
+# Render hash using perl
+perl -MCrypt::SmbHash -e "ntlmgen \"\$ARGV[0]\", \$lm, \$nt; print \"\${lm}:\${nt}\n\";" "$1"
+
+exit 0
diff --git a/gosa-core/contrib/artwork/GOsa-logo.eps b/gosa-core/contrib/artwork/GOsa-logo.eps
new file mode 100644
index 0000000..adfab24
--- /dev/null
+++ b/gosa-core/contrib/artwork/GOsa-logo.eps
@@ -0,0 +1,64 @@
+%!PS-Adobe-3.1 EPSF-3.0
%ADO_DSC_Encoding: MacOS Roman
%%Title: GOsa-logo.eps
%%Creator: Adobe Illustrator(R) 12
%%AI8_CreatorVersion: 12.0.1
%AI9_PrintingDataBegin
%%For: stephan heller
%%CreationDate: 09.02.2009
%%BoundingBox: 0 0 1191 347
%%HiResBoundingBox: 0 0 1190.5879 346.9991
%%CropBox: 0 0 1190.5879 346.9991
%%LanguageLevel: 2
%%DocumentData: Clean7Bit
%%Pages: 1
%%DocumentNeededResources: 
%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
%%+ procset Adobe_CoolType_Utility_T42 1.0 0
%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.19 0
%%+ procset Adobe_CoolType_Core 2.23 0
%%+ procset Adobe_AGM_Core 2.0 0
%%+ procset Adobe_AGM_Utils 1.0 0
%%DocumentFonts: 
%%DocumentNeededFonts: 
%%DocumentNeededFeatures: 
%%DocumentSuppliedFeatures: 
%%DocumentProcessColors:  Cyan Magenta Yellow Black
%%DocumentCustomColors: 
%%CMYKCustomColor: 
%%RGBCustomColor: 
%ADO_BuildNumber: Adobe Illustrator(R) 12.0.1 x5205 R agm 4.3861 ct 5.530
%ADO_ContainsXMP: MainFirst
%AI7_Thumbnail: 128 40 8
%%BeginData: 6528 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDFCFFFDFCFFFD96FFA8A9A8A8A8FD1DFFA8A87EA87EA9A8AFA8FD
%0FFFA87E5354535353A8A8FD3AFFAFA8535328FD04295A7EFD17FF7E5329
%2F2929282929292853FD0DFF7E2F29282928292829285353AFFD37FF7E53
%01292829282928290129297EAFFD11FFA853282928292829282928292829
%2FFD0BFF7E53062928292829282928292829287EFD35FF53292853292928
%292929285329292854A9FD0FFF7E2F2853292F2953292F2953292F287EFD
%0AFF7E29292F2953292F2953292F29532929287EFD33FF29292829282929
%53537E5353062928290653A8FD0DFF532928292829282928292829282928
%2953FD09FF532928292829282928292829282928292829017EFD32FF5328
%2F28537EFD06FFA853FD0429FD0DFF7E292853292928532929282F292928
%2F287EFD08FF592929292853292928292829282F29292853292928AFFD32
%FF53017EA8FD09FF592928A9FD0CFF7E2928292829282928290629282928
%2906297EFD07FF7E292829282928292853537E7D53282928292829282953
%FD22FFA87EA9FD0DFFA8A8FFFFFFA953532F547EFFFFFF7EA9FD0CFFA853
%2953295329532829537E7EA97EA87EA97EFD08FF532853292F29292FA9FD
%05FFA929292953292F2953FD20FFA85328292954A9FD09FFA92FFFFFFFA8
%53062928292829287EFFFFFF7E7EFD0AFF5306292829282928537EFD10FF
%A828292829282928FD08FFA828292829282906A8FD1EFFA8290629532901
%53FD08FFA92829FFFFA95328292853292928292884FFFF53297EFD09FF29
%292853292F2853A9FD11FF532929292853287EFD09FF5329292853292953
%FD1EFFA828297EFF532953FD07FFA9282929FFFF53012928292829282928
%2928A9FF7E01297EFD07FF53292829282928297EFFFFFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA82928292829282FA8FD09FF5329282928292853FD1EFF
%A8A97EFFA82F0153FD07FF29292854FFA9287E29292953295328537E2953
%FF7E292853A8FD06FF53292F2953292953FD04FF7E2F532F5353532F5353
%53297EFF842853292F292953FD0AFFA8282F2953292953FD07FFA9FD19FF
%A953282984FD06FF2929282928A82F287EFF2829282928297EFF28297E54
%28292829A8FD04FFA928292829282928A8FD04FF28292829282928292829
%282953FF53292829282906A8FD0AFF7E29282928292853FD04FF7E7E5353
%295353A9FD06FFA87E5353295353A9FD06FF7E2906297DFD06FFFD042953
%A97EA9A8FFFFAF292928537EFFFFA9A8A8A87E29292853A8FFFFFF7E2928
%5329292853FD04FFA92F28532929285329292853287EFF53292928532929
%A8FD0AFFA828532929282953FFFFFF532928292829282929A8FD04FF7E53
%282928292929287EFD04FF7E292853A8FD06FF29292829017EFD07FF7E28
%2953FD07FF7E2928290153FFFFFF7E06292829282953FD04FFA928292829
%282928292829282953FF28292829282928FD0BFF7E29282928290654FFFF
%5329282929532929282928A9FFFF7E290629282F2829282928AFFFFF7E29
%28297EFFA8FD05FFA9FD04297EFFA8FD05FF53292953A8FD06FFA8292F28
%2FA8FFFFFF7E292953292F287EFD04FFA8292953292F2953292F2953287E
%FF53292F29532953FD0BFF7E2853292F29297EFFA82F29297EFFFFFF5929
%29297EFFFF53282929A9FFFF532929297EFFA953292929532953A9FD05FF
%A9282928292FA85329A8FF29292829282FA8FF292F7E53282928297EFD04
%FF7E06292829282953FD04FF840129012928292829282928297EFF282928
%29282929FD0BFF53292829282906A8FF7E0629287EFD04FF7EA8A8FFFFFF
%7EA87DA8FFFFFFA928290684FFA8282F2829282953FD07FFA929292853FF
%A8017E53292853292F28537E2929FF7E2928297EFD05FF7E292929285329
%53A9FFFFFF7E54537E537E2F292853292928A9FF53285329292853A9FD09
%FFA853292928532929A8FF8429282F297E7EFD0FFF532929297EFFFFFFA8
%FFA9FFA8FD09FFA8282929FFFF530129282928292829282906A8FF7E0629
%53FD06FFA8062928292829287EFD09FF7E282928292829A8FF2929282928
%2901A8FD09FF7E01292829282953FFFFFF2929282906292853A8FD05FFA8
%7E535329532829282928A8FD12FFA82853FFFFA82929532953292F295328
%7EFFFF7E297EFD07FFA853292F2953292929FD09FF2929295329292FFFFF
%7E2853292F292953FD09FF2953292F295328A8FFFFFFA92929292F292F28
%297EFFFFFFA85328290629282F29532953FD14FF7E28FFFFFF7E29282928
%2928290154FFFFFF7E53FD09FF292928292829282929FD07FF5329282928
%29287EFFFF7E292829282928297EFD07FF2929282928292853FD06FF7D53
%2829282928297EFFA92F062928537EA9A82F282953FD15FFA9A87EFFFFA8
%7E29292853537EFFFF7EA8A8FD0AFF7E2853292928532929297EA8FFA8A8
%5329285329292829A8FFFFFF29292853292928297EFFA9FFA9A8FD042928
%5329297EFD08FFA959532853287EFFA9282928A9FD04FF29292884FD16FF
%530153A8FFFFFFA8A8A8FFFFFF7E2928A9FD0AFFA8292829282928292829
%01292829062928292829282929FD04FF7E0629282928292829282F282F28
%2928292829282953FFFFFF7E7E53A8FD04FF7E29282953FF7D292853FD04
%FF7D2928297EFD15FF53285329537EFD06FFA953FD0429FD0BFF7E292953
%2953292F2953292F2953292F2953292928A9FD04FFAF532853292F295329
%2F282F292F2953292F292953FFFFFFA829282929FD04FF842853287EFFA8
%282929FFFFFFA853292929FD16FF2929282928292853537E535328292829
%2829A8FD0BFF532928292829282928292829282928292829067EFD06FF7E
%292829282928292829282928292829282929FD05FF53292829297E595428
%292829A8FF7E292829297E59290629282FA9FD16FF532928532929282928
%29282F29292853A8FD0DFF7E292829285329292853292928532929287EFD
%08FF7E29282F29292853292928532929282953FD07FF5329282928292829
%282F84FFFFFFFD042901292953282929FD18FF7D29012928292829282928
%29287EA8FD0FFF8453282906292829282928290629287EFD0AFFA8530129
%2829282928292829062F7DFD09FF7D5328292829287EA8FD04FFA9292928
%2953A97E292853A8FD18FFA87E532F28292929285359A9FD13FFA9595429
%29282F292929547EFD0EFFA95353292F29292953537EA9FD0DFFA8A9A8FD
%09FFA8A9A8FFFFFFAFFD1EFFA8A87EA87EA9A8FD19FFA8A87EA9A8FD13FF
%A9A97EA9A8A9A8FDFCFFFDFCFFFDFCFFFD3EFFFF
%%EndData
%%EndComments
%%BeginDefaults
%%ViewingOrientation: 1 0 0 1
%%EndDefaults
%%BeginProlog
%%BeginResource: procset Adobe_AGM_Utils 1.0 0
%%Version: 1.0 0
%%Copyright: Copyright (C) 2000-2003 Adobe Systems, Inc.  All Rights Reserved.
systemdict /setpacking known
{
	currentpacking
	true setpacking
} if
userdict /Adobe_AGM_Utils 70 dict dup begin put
/bdf
{
	bind def
} bind def
/nd{
	null def
}bdf
/xdf
{
	exch def
}bdf
/ldf 
{
	load def
}bdf
/ddf
{
	put
}bdf	
/xddf
{
	3 -1 roll put
}bdf	
/xpt
{
	exch put
}bdf
/ndf
{ 
	exch dup where{
		pop pop pop
	}{
		xdf
	}ifelse
}def
/cdndf
{
	exch dup currentdict exch known{
		pop pop
	}{
		exch def
	}ifelse
}def
/ps_level
	/languagelevel where{
		pop systemdict /languagelevel get exec
	}{
		1
	}ifelse
def
/level2 
	ps_level 2 ge
def
/level3 
	ps_level 3 ge
def
/ps_version
	{version cvr} stopped {
		-1
	}if
def
/set_gvm
{
	currentglobal exch setglobal
}bdf
/reset_gvm
{
	setglobal
}bdf
/makereadonlyarray
{
	/packedarray where{
		pop packedarray
	}{
		array astore readonly
	}ifelse
}bdf
/map_reserved_ink_name
{
	dup type /stringtype eq{
		dup /Red eq{
			pop (_Red_)
		}{
			dup /Green eq{
				pop (_Green_)
			}{
				dup /Blue eq{
					pop (_Blue_)
				}{
					dup () cvn eq{
						pop (Process)
					}if
				}ifelse
			}ifelse
		}ifelse
	}if
}bdf
/AGMUTIL_GSTATE 22 dict def
/get_gstate
{
	AGMUTIL_GSTATE begin
	/AGMUTIL_GSTATE_clr_spc currentcolorspace def
	/AGMUTIL_GSTATE_clr_indx 0 def
	/AGMUTIL_GSTATE_clr_comps 12 array def
	mark currentcolor counttomark
		{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
		/AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def} repeat pop
	/AGMUTIL_GSTATE_fnt rootfont def
	/AGMUTIL_GSTATE_lw currentlinewidth def
	/AGMUTIL_GSTATE_lc currentlinecap def
	/AGMUTIL_GSTATE_lj currentlinejoin def
	/AGMUTIL_GSTATE_ml currentmiterlimit def
	currentdash /AGMUTIL_GSTATE_do xdf /AGMUTIL_GSTATE_da xdf
	/AGMUTIL_GSTATE_sa currentstrokeadjust def
	/AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
	/AGMUTIL_GSTATE_op currentoverprint def
	/AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
	/AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
	currentcolortransfer cvlit /AGMUTIL_GSTATE_gy_xfer xdf cvlit /AGMUTIL_GSTATE_b_xfer xdf
		cvlit /AGMUTIL_GSTATE_g_xfer xdf cvlit /AGMUTIL_GSTATE_r_xfer xdf
	/AGMUTIL_GSTATE_ht currenthalftone def
	/AGMUTIL_GSTATE_flt currentflat def
	end
}def
/set_gstate
{
	AGMUTIL_GSTATE begin
	AGMUTIL_GSTATE_clr_spc setcolorspace
	AGMUTIL_GSTATE_clr_indx {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
	/AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def} repeat setcolor
	AGMUTIL_GSTATE_fnt setfont
	AGMUTIL_GSTATE_lw setlinewidth
	AGMUTIL_GSTATE_lc setlinecap
	AGMUTIL_GSTATE_lj setlinejoin
	AGMUTIL_GSTATE_ml setmiterlimit
	AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
	AGMUTIL_GSTATE_sa setstrokeadjust
	AGMUTIL_GSTATE_clr_rnd setcolorrendering
	AGMUTIL_GSTATE_op setoverprint
	AGMUTIL_GSTATE_bg cvx setblackgeneration
	AGMUTIL_GSTATE_ucr cvx setundercolorremoval
	AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
		AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
	AGMUTIL_GSTATE_ht /HalftoneType get dup 9 eq exch 100 eq or
		{
		currenthalftone /HalftoneType get AGMUTIL_GSTATE_ht /HalftoneType get ne
			{
			  mark AGMUTIL_GSTATE_ht {sethalftone} stopped cleartomark
			} if
		}{
		AGMUTIL_GSTATE_ht sethalftone
		} ifelse
	AGMUTIL_GSTATE_flt setflat
	end
}def
/get_gstate_and_matrix
{
	AGMUTIL_GSTATE begin
	/AGMUTIL_GSTATE_ctm matrix currentmatrix def
	end
	get_gstate
}def
/set_gstate_and_matrix
{
	set_gstate
	AGMUTIL_GSTATE begin
	AGMUTIL_GSTATE_ctm setmatrix
	end
}def
/AGMUTIL_str256 256 string def
/AGMUTIL_src256 256 string def
/AGMUTIL_dst64 64 string def
/AGMUTIL_srcLen nd
/AGMUTIL_ndx nd
/thold_halftone
{ 
	level3
		{sethalftone currenthalftone}
		{
			dup /HalftoneType get 3 eq
			{
				sethalftone currenthalftone
			}
			{
				begin
				Width Height mul {
					Thresholds read {pop} if
				} repeat
				end
				currenthalftone
			} ifelse
		}ifelse
} def 
/rdcmntline
{
	currentfile AGMUTIL_str256 readline pop
	(%) anchorsearch {pop} if
} bdf
/filter_cmyk
{	
	dup type /filetype ne{
		exch () /SubFileDecode filter
	}
	{
		exch pop
	}
	ifelse
	[
	exch
	{
		AGMUTIL_src256 readstring pop
		dup length /AGMUTIL_srcLen exch def
		/AGMUTIL_ndx 0 def
		AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
			1 index exch get
			AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
			/AGMUTIL_ndx AGMUTIL_ndx 1 add def
		}for
		pop
		AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
	}
	bind
	/exec cvx
	] cvx
} bdf
/filter_indexed_devn
{
	cvi Names length mul names_index add Lookup exch get
} bdf
/filter_devn
{	
	4 dict begin
	/srcStr xdf
	/dstStr xdf
	dup type /filetype ne{
		0 () /SubFileDecode filter
	}if
	[
	exch
		[
			/devicen_colorspace_dict /AGMCORE_gget cvx /begin cvx
			currentdict /srcStr get /readstring cvx /pop cvx
			/dup cvx /length cvx 0 /gt cvx [
				Adobe_AGM_Utils /AGMUTIL_ndx 0 /ddf cvx
				names_index Names length currentdict /srcStr get length 1 sub {
					1 /index cvx /exch cvx /get cvx
					currentdict /dstStr get /AGMUTIL_ndx /load cvx 3 -1 /roll cvx /put cvx
					Adobe_AGM_Utils /AGMUTIL_ndx /AGMUTIL_ndx /load cvx 1 /add cvx /ddf cvx
				} for
				currentdict /dstStr get 0 /AGMUTIL_ndx /load cvx /getinterval cvx
			] cvx /if cvx
			/end cvx
		] cvx
		bind
		/exec cvx
	] cvx
	end
} bdf
/AGMUTIL_imagefile nd
/read_image_file
{
	AGMUTIL_imagefile 0 setfileposition
	10 dict begin
	/imageDict xdf
	/imbufLen Width BitsPerComponent mul 7 add 8 idiv def
	/imbufIdx 0 def
	/origDataSource imageDict /DataSource get def
	/origMultipleDataSources imageDict /MultipleDataSources get def
	/origDecode imageDict /Decode get def
	/dstDataStr imageDict /Width get colorSpaceElemCnt mul string def
	imageDict /MultipleDataSources known {MultipleDataSources}{false} ifelse
	{
		/imbufCnt imageDict /DataSource get length def
		/imbufs imbufCnt array def
		0 1 imbufCnt 1 sub {
			/imbufIdx xdf
			imbufs imbufIdx imbufLen string put
			imageDict /DataSource get imbufIdx [ AGMUTIL_imagefile imbufs imbufIdx get /readstring cvx /pop cvx ] cvx put
		} for
		DeviceN_PS2 {
			imageDict begin
		 	/DataSource [ DataSource /devn_sep_datasource cvx ] cvx def
			/MultipleDataSources false def
			/Decode [0 1] def
			end
		} if
	}{
		/imbuf imbufLen string def
		Indexed_DeviceN level3 not and DeviceN_NoneName or {
			/srcDataStrs [ imageDict begin
				currentdict /MultipleDataSources known {MultipleDataSources {DataSource length}{1}ifelse}{1} ifelse
				{
					Width Decode length 2 div mul cvi string
				} repeat
				end ] def		
			imageDict begin
		 	/DataSource [AGMUTIL_imagefile Decode BitsPerComponent false 1 /filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource /exec cvx] cvx def
			/Decode [0 1] def
			end
		}{
			imageDict /DataSource [1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx /pop cvx names_index /get cvx /put cvx] cvx put
			imageDict /Decode [0 1] put
		} ifelse
	} ifelse
	imageDict exch
	load exec
	imageDict /DataSource origDataSource put
	imageDict /MultipleDataSources origMultipleDataSources put
	imageDict /Decode origDecode put	
	end
} bdf
/write_image_file
{
	begin
	{ (AGMUTIL_imagefile) (w+) file } stopped{
		false
	}{
		Adobe_AGM_Utils/AGMUTIL_imagefile xddf 
		2 dict begin
		/imbufLen Width BitsPerComponent mul 7 add 8 idiv def
		MultipleDataSources {DataSource 0 get}{DataSource}ifelse type /filetype eq {
			/imbuf imbufLen string def
		}if
		1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ 
			pop
			MultipleDataSources {
			 	0 1 DataSource length 1 sub {
					DataSource type dup
					/arraytype eq {
						pop DataSource exch get exec
					}{
						/filetype eq {
							DataSource exch get imbuf readstring pop
						}{
							DataSource exch get
						} ifelse
					} ifelse
					AGMUTIL_imagefile exch writestring
				} for
			}{
				DataSource type dup
				/arraytype eq {
					pop DataSource exec
				}{
					/filetype eq {
						DataSource imbuf readstring pop
					}{
						DataSource
					} ifelse
				} ifelse
				AGMUTIL_imagefile exch writestring
			} ifelse
		}for
		end
		true
	}ifelse
	end
} bdf
/close_image_file
{
	AGMUTIL_imagefile closefile (AGMUTIL_imagefile) deletefile
}def
statusdict /product known userdict /AGMP_current_show known not and{
	/pstr statusdict /product get def
	pstr (HP LaserJet 2200) eq 	
	pstr (HP LaserJet 4000 Series) eq or
	pstr (HP LaserJet 4050 Series ) eq or
	pstr (HP LaserJet 8000 Series) eq or
	pstr (HP LaserJet 8100 Series) eq or
	pstr (HP LaserJet 8150 Series) eq or
	pstr (HP LaserJet 5000 Series) eq or
	pstr (HP LaserJet 5100 Series) eq or
	pstr (HP Color LaserJet 4500) eq or
	pstr (HP Color LaserJet 4600) eq or
	pstr (HP LaserJet 5Si) eq or
	pstr (HP LaserJet 1200 Series) eq or
	pstr (HP LaserJet 1300 Series) eq or
	pstr (HP LaserJet 4100 Series) eq or 
	{
 		userdict /AGMP_current_show /show load put
		userdict /show {
		  currentcolorspace 0 get
		  /Pattern eq
		  {false charpath f}
		  {AGMP_current_show} ifelse
		} put
	}if
	currentdict /pstr undef
} if
/consumeimagedata
{
	begin
	currentdict /MultipleDataSources known not
		{/MultipleDataSources false def} if
	MultipleDataSources
		{
		DataSource 0 get type
		dup /filetype eq
			{
			1 dict begin
			/flushbuffer Width cvi string def
			1 1 Height cvi
				{
				pop
				0 1 DataSource length 1 sub
					{
					DataSource exch get
					flushbuffer readstring pop pop
					}for
				}for
			end
			}if
		dup /arraytype eq exch /packedarraytype eq or DataSource 0 get xcheck and
			{
			Width Height mul cvi
				{
				0 1 DataSource length 1 sub
					{dup DataSource exch get exec length exch 0 ne {pop}if}for
				dup 0 eq
					{pop exit}if
				sub dup 0 le
					{exit}if
				}loop
			pop
			}if		
		}
		{
		/DataSource load type 
		dup /filetype eq
			{
			1 dict begin
			/flushbuffer Width Decode length 2 idiv mul cvi string def
			1 1 Height { pop DataSource flushbuffer readstring pop pop} for
			end
			}if
		dup /arraytype eq exch /packedarraytype eq or /DataSource load xcheck and
			{
				Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
					{
					DataSource length dup 0 eq
						{pop exit}if
					sub dup 0 le
						{exit}if
					}loop
				pop
			}if
		}ifelse
	end
}bdf
/addprocs
{
	  2{/exec load}repeat
	  3 1 roll
	  [ 5 1 roll ] bind cvx
}def
/modify_halftone_xfer
{
	currenthalftone dup length dict copy begin
	 currentdict 2 index known{
	 	1 index load dup length dict copy begin
		currentdict/TransferFunction known{
			/TransferFunction load
		}{
			currenttransfer
		}ifelse
		 addprocs /TransferFunction xdf 
		 currentdict end def
		currentdict end sethalftone
	}{ 
		currentdict/TransferFunction known{
			/TransferFunction load 
		}{
			currenttransfer
		}ifelse
		addprocs /TransferFunction xdf
		currentdict end sethalftone		
		pop
	}ifelse
}def
/clonearray
{
	dup xcheck exch
	dup length array exch
	Adobe_AGM_Core/AGMCORE_tmp -1 ddf 
	{
	Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf 
	dup type /dicttype eq
		{
			Adobe_AGM_Core/AGMCORE_tmp get
			exch
			clonedict
			Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf 
		} if
	dup type /arraytype eq
		{
			Adobe_AGM_Core/AGMCORE_tmp get exch
			clonearray
			Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf 
		} if
	exch dup
	Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
	}forall
	exch {cvx} if
}bdf
/clonedict
{
	dup length dict
	begin
		{
		dup type /dicttype eq
			{
				clonedict
			} if
		dup type /arraytype eq
			{
				clonearray
			} if
		def
		}forall
	currentdict
	end
}bdf
/DeviceN_PS2
{
	/currentcolorspace AGMCORE_gget 0 get /DeviceN eq level3 not and
} bdf
/Indexed_DeviceN
{ 
	/indexed_colorspace_dict AGMCORE_gget dup null ne {
		dup /CSDBase known {
			/CSDBase get /CSD get_res /Names known 
		}{
			pop false
		}ifelse
	}{
		pop false
	} ifelse
} bdf
/DeviceN_NoneName
{	
	/Names where {
		pop
		false Names
		{
			(None) eq or
		} forall
	}{
		false
	}ifelse
} bdf
/DeviceN_PS2_inRip_seps
{
	/AGMCORE_in_rip_sep where
	{
		pop dup type dup /arraytype eq exch /packedarraytype eq or
		{
			dup 0 get /DeviceN eq level3 not and AGMCORE_in_rip_sep and
			{
				/currentcolorspace exch AGMCORE_gput
				false
			}
			{
				true
			}ifelse
		}
		{
			true
		} ifelse
	}
	{
		true
	} ifelse
} bdf
/base_colorspace_type
{
	dup type /arraytype eq {0 get} if
} bdf
/currentdistillerparams where { pop currentdistillerparams /CoreDistVersion get 5000 lt}{true}ifelse
{
	/pdfmark_5 {cleartomark} bind def
}{
	/pdfmark_5 {pdfmark} bind def
}ifelse
/ReadBypdfmark_5
{
	2 dict begin
	/makerString exch def string /tmpString exch def
	{
		currentfile tmpString readline pop
		makerString anchorsearch
		{
		pop pop cleartomark exit
		}{
			3 copy /PUT pdfmark_5 pop 2 copy (\n) /PUT pdfmark_5
		} ifelse
	}loop
	end
} bdf
/doc_setup{
	Adobe_AGM_Utils begin
}bdf
/doc_trailer{
	currentdict Adobe_AGM_Utils eq{
		end
	}if
}bdf
systemdict /setpacking known
{
	setpacking
} if
%%EndResource
%%BeginResource: procset Adobe_AGM_Core 2.0 0
%%Version: 2.0 0
%%Copyright: Copyright (C) 1997-2005 Adobe Systems, Inc.  All Rights Reserved.
%% Note: This procset assumes Adobe_AGM_Utils is opened on the stack below it, for
%% definitions of some fundamental procedures.
systemdict /setpacking known
{
	currentpacking
	true setpacking
} if
userdict /Adobe_AGM_Core 201 dict dup begin put
/Adobe_AGM_Core_Id /Adobe_AGM_Core_2.0_0 def
/AGMCORE_str256 256 string def
/AGMCORE_save nd
/AGMCORE_graphicsave nd
/AGMCORE_c 0 def
/AGMCORE_m 0 def
/AGMCORE_y 0 def
/AGMCORE_k 0 def
/AGMCORE_cmykbuf 4 array def
/AGMCORE_screen [currentscreen] cvx def
/AGMCORE_tmp 0 def
/AGMCORE_&setgray nd
/AGMCORE_&setcolor nd
/AGMCORE_&setcolorspace nd
/AGMCORE_&setcmykcolor nd
/AGMCORE_cyan_plate nd
/AGMCORE_magenta_plate nd
/AGMCORE_yellow_plate nd
/AGMCORE_black_plate nd
/AGMCORE_plate_ndx nd
/AGMCORE_get_ink_data nd
/AGMCORE_is_cmyk_sep nd
/AGMCORE_host_sep nd
/AGMCORE_avoid_L2_sep_space nd
/AGMCORE_distilling nd
/AGMCORE_composite_job nd
/AGMCORE_producing_seps nd
/AGMCORE_ps_level -1 def
/AGMCORE_ps_version -1 def
/AGMCORE_environ_ok nd
/AGMCORE_CSD_cache 0 dict def
/AGMCORE_currentoverprint false def
/AGMCORE_deltaX nd
/AGMCORE_deltaY nd
/AGMCORE_name nd
/AGMCORE_sep_special nd
/AGMCORE_err_strings 4 dict def
/AGMCORE_cur_err nd
/AGMCORE_current_spot_alias false def
/AGMCORE_inverting false def
/AGMCORE_feature_dictCount nd
/AGMCORE_feature_opCount nd
/AGMCORE_feature_ctm nd
/AGMCORE_ConvertToProcess false def
/AGMCORE_Default_CTM matrix def
/AGMCORE_Default_PageSize nd
/AGMCORE_currentbg nd
/AGMCORE_currentucr nd
/AGMCORE_in_pattern false def
/AGMCORE_currentpagedevice nd
/knockout_unitsq nd
currentglobal true setglobal
[/CSA /Gradient /Procedure]
{
	/Generic /Category findresource dup length dict copy /Category defineresource pop
} forall
setglobal
/AGMCORE_key_known
{
	where{
		/Adobe_AGM_Core_Id known
	}{
		false
	}ifelse
}ndf
/flushinput
{
	save
	2 dict begin
	/CompareBuffer 3 -1 roll def
	/readbuffer 256 string def
	mark
	{
	currentfile readbuffer {readline} stopped
		{cleartomark mark}
		{
		not
			{pop exit}
		if
		CompareBuffer eq
			{exit}
		if
		}ifelse
	}loop
	cleartomark
	end
	restore
}bdf
/getspotfunction
{
	AGMCORE_screen exch pop exch pop
	dup type /dicttype eq{
		dup /HalftoneType get 1 eq{
			/SpotFunction get
		}{
			dup /HalftoneType get 2 eq{
				/GraySpotFunction get
			}{ 
				pop
				{
					abs exch abs 2 copy add 1 gt{
						1 sub dup mul exch 1 sub dup mul add 1 sub
					}{
						dup mul exch dup mul add 1 exch sub
					}ifelse
				}bind
			}ifelse
		}ifelse
	}if
} def
/clp_npth
{
	clip newpath
} def
/eoclp_npth
{
	eoclip newpath
} def
/npth_clp
{
	newpath clip
} def
/graphic_setup
{
	/AGMCORE_graphicsave save def
	concat
	0 setgray
	0 setlinecap
	0 setlinejoin
	1 setlinewidth
	[] 0 setdash
	10 setmiterlimit
	newpath
	false setoverprint
	false setstrokeadjust
	//Adobe_AGM_Core/spot_alias get exec
	/Adobe_AGM_Image where {
		pop
		Adobe_AGM_Image/spot_alias 2 copy known{
			get exec
		}{
			pop pop
		}ifelse
	} if
	100 dict begin
	/dictstackcount countdictstack def
	/showpage {} def
	mark
} def
/graphic_cleanup
{
	cleartomark
	dictstackcount 1 countdictstack 1 sub {end}for
	end
	AGMCORE_graphicsave restore
} def
/compose_error_msg
{
	grestoreall initgraphics	
	/Helvetica findfont 10 scalefont setfont
	/AGMCORE_deltaY 100 def
	/AGMCORE_deltaX 310 def
	clippath pathbbox newpath pop pop 36 add exch 36 add exch moveto
	0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
	0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
	0 AGMCORE_&setgray
	gsave 1 AGMCORE_&setgray fill grestore 
	1 setlinewidth gsave stroke grestore
	currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
	/AGMCORE_deltaY 12 def
	/AGMCORE_tmp 0 def
	AGMCORE_err_strings exch get
		{
		dup 32 eq
			{
			pop
			AGMCORE_str256 0 AGMCORE_tmp getinterval
			stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
				{
				currentpoint AGMCORE_deltaY sub exch pop
				clippath pathbbox pop pop pop 44 add exch moveto
				} if
			AGMCORE_str256 0 AGMCORE_tmp getinterval show ( ) show
			0 1 AGMCORE_str256 length 1 sub
				{
				AGMCORE_str256 exch 0 put
				}for
			/AGMCORE_tmp 0 def
			}
			{
				AGMCORE_str256 exch AGMCORE_tmp xpt
				/AGMCORE_tmp AGMCORE_tmp 1 add def
			} ifelse
		} forall
} bdf
/doc_setup{
	Adobe_AGM_Core begin
	/AGMCORE_ps_version xdf
	/AGMCORE_ps_level xdf
	errordict /AGM_handleerror known not{
		errordict /AGM_handleerror errordict /handleerror get put
		errordict /handleerror {
			Adobe_AGM_Core begin
			$error /newerror get AGMCORE_cur_err null ne and{
				$error /newerror false put
				AGMCORE_cur_err compose_error_msg
			}if
			$error /newerror true put
			end
			errordict /AGM_handleerror get exec
			} bind put
		}if
	/AGMCORE_environ_ok 
		ps_level AGMCORE_ps_level ge
		ps_version AGMCORE_ps_version ge and 
		AGMCORE_ps_level -1 eq or
	def
	AGMCORE_environ_ok not
		{/AGMCORE_cur_err /AGMCORE_bad_environ def} if
	/AGMCORE_&setgray systemdict/setgray get def
	level2{
		/AGMCORE_&setcolor systemdict/setcolor get def
		/AGMCORE_&setcolorspace systemdict/setcolorspace get def
	}if
	/AGMCORE_currentbg currentblackgeneration def
	/AGMCORE_currentucr currentundercolorremoval def
	/AGMCORE_distilling
		/product where{
			pop systemdict/setdistillerparams known product (Adobe PostScript Parser) ne and
		}{
			false
		}ifelse
	def
	/AGMCORE_GSTATE AGMCORE_key_known not{
		/AGMCORE_GSTATE 21 dict def
		/AGMCORE_tmpmatrix matrix def
		/AGMCORE_gstack 32 array def
		/AGMCORE_gstackptr 0 def
		/AGMCORE_gstacksaveptr 0 def
		/AGMCORE_gstackframekeys 10 def
		/AGMCORE_&gsave /gsave ldf
		/AGMCORE_&grestore /grestore ldf
		/AGMCORE_&grestoreall /grestoreall ldf
		/AGMCORE_&save /save ldf
		/AGMCORE_&setoverprint /setoverprint ldf
		/AGMCORE_gdictcopy {
			begin
			{ def } forall
			end
		}def
		/AGMCORE_gput {
			AGMCORE_gstack AGMCORE_gstackptr get
			3 1 roll
			put
		}def
		/AGMCORE_gget {
			AGMCORE_gstack AGMCORE_gstackptr get
			exch
			get
		}def
		/gsave {
			AGMCORE_&gsave
			AGMCORE_gstack AGMCORE_gstackptr get
			AGMCORE_gstackptr 1 add
			dup 32 ge {limitcheck} if
			/AGMCORE_gstackptr exch store
			AGMCORE_gstack AGMCORE_gstackptr get
			AGMCORE_gdictcopy
		}def
		/grestore {
			AGMCORE_&grestore
			AGMCORE_gstackptr 1 sub
			dup AGMCORE_gstacksaveptr lt {1 add} if
			dup AGMCORE_gstack exch get dup /AGMCORE_currentoverprint known
				{/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
			/AGMCORE_gstackptr exch store
		}def
		/grestoreall {
			AGMCORE_&grestoreall
			/AGMCORE_gstackptr AGMCORE_gstacksaveptr store 
		}def
		/save {
			AGMCORE_&save
			AGMCORE_gstack AGMCORE_gstackptr get
			AGMCORE_gstackptr 1 add
			dup 32 ge {limitcheck} if
			/AGMCORE_gstackptr exch store
			/AGMCORE_gstacksaveptr AGMCORE_gstackptr store
			AGMCORE_gstack AGMCORE_gstackptr get
			AGMCORE_gdictcopy
		}def
		/setoverprint{
			dup /AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
		}def	
		0 1 AGMCORE_gstack length 1 sub {
				AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
		} for
	}if
	level3 /AGMCORE_&sysshfill AGMCORE_key_known not and
	{
		/AGMCORE_&sysshfill systemdict/shfill get def
		/AGMCORE_&sysmakepattern systemdict/makepattern get def
		/AGMCORE_&usrmakepattern /makepattern load def
	}if
	/currentcmykcolor [0 0 0 0] AGMCORE_gput
	/currentstrokeadjust false AGMCORE_gput
	/currentcolorspace [/DeviceGray] AGMCORE_gput
	/sep_tint 0 AGMCORE_gput
	/devicen_tints [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] AGMCORE_gput
	/sep_colorspace_dict null AGMCORE_gput
	/devicen_colorspace_dict null AGMCORE_gput
	/indexed_colorspace_dict null AGMCORE_gput
	/currentcolor_intent () AGMCORE_gput
	/customcolor_tint 1 AGMCORE_gput
	<<
	/MaxPatternItem currentsystemparams /MaxPatternCache get
	>>
	setuserparams
	end
}def
/page_setup
{
	/setcmykcolor where{
		pop
		Adobe_AGM_Core/AGMCORE_&setcmykcolor /setcmykcolor load put
	}if
	Adobe_AGM_Core begin
	/setcmykcolor
	{
		4 copy AGMCORE_cmykbuf astore /currentcmykcolor exch AGMCORE_gput
		1 sub 4 1 roll
		3 {
			3 index add neg dup 0 lt {
				pop 0
			} if
			3 1 roll
		} repeat
		setrgbcolor pop
	}ndf
	/currentcmykcolor
	{
		/currentcmykcolor AGMCORE_gget aload pop
	}ndf
	/setoverprint
	{
		pop
	}ndf
	/currentoverprint
	{
		false
	}ndf
	/AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
	/AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
	/AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
	/AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
	/AGMCORE_plate_ndx 
		AGMCORE_cyan_plate{ 
			0
		}{
			AGMCORE_magenta_plate{
				1
			}{
				AGMCORE_yellow_plate{
					2
				}{
					AGMCORE_black_plate{
						3
					}{
						4
					}ifelse
				}ifelse
			}ifelse
		}ifelse
		def
	/AGMCORE_have_reported_unsupported_color_space false def
	/AGMCORE_report_unsupported_color_space
	{
		AGMCORE_have_reported_unsupported_color_space false eq
		{
			(Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.) ==
			Adobe_AGM_Core /AGMCORE_have_reported_unsupported_color_space true ddf
		} if
	}def
	/AGMCORE_composite_job
		AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
	/AGMCORE_in_rip_sep
		/AGMCORE_in_rip_sep where{
			pop AGMCORE_in_rip_sep
		}{
			AGMCORE_distilling 
			{
				false
			}{
				userdict/Adobe_AGM_OnHost_Seps known{
					false
				}{
					level2{
						currentpagedevice/Separations 2 copy known{
							get
						}{
							pop pop false
						}ifelse
					}{
						false
					}ifelse
				}ifelse
			}ifelse
		}ifelse
	def
	/AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
	/AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
	/AGM_preserve_spots 
		/AGM_preserve_spots where{
			pop AGM_preserve_spots
		}{
			AGMCORE_distilling AGMCORE_producing_seps or
		}ifelse
	def
	/AGM_is_distiller_preserving_spotimages
	{
		currentdistillerparams/PreserveOverprintSettings known
		{
			currentdistillerparams/PreserveOverprintSettings get
				{
					currentdistillerparams/ColorConversionStrategy known
					{
						currentdistillerparams/ColorConversionStrategy get
						/sRGB ne
					}{
						true
					}ifelse
				}{
					false
				}ifelse
		}{
			false
		}ifelse
	}def
	/convert_spot_to_process where {pop}{
		/convert_spot_to_process
		{
			//Adobe_AGM_Core begin
			dup map_alias {
				/Name get exch pop
			} if
			dup dup (None) eq exch (All) eq or
				{
				pop false
				}{
				AGMCORE_host_sep
				{ 
					gsave
					1 0 0 0 setcmykcolor currentgray 1 exch sub
					0 1 0 0 setcmykcolor currentgray 1 exch sub
					0 0 1 0 setcmykcolor currentgray 1 exch sub
					0 0 0 1 setcmykcolor currentgray 1 exch sub
					add add add 0 eq
					{
						pop false
					}{
						false setoverprint
						current_spot_alias false set_spot_alias
						1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
						set_spot_alias
						currentgray 1 ne
					}ifelse
					grestore
				}{
					AGMCORE_distilling
					{
						pop AGM_is_distiller_preserving_spotimages not
					}{
						//Adobe_AGM_Core/AGMCORE_name xddf
						false
						//Adobe_AGM_Core/AGMCORE_in_pattern known {//Adobe_AGM_Core/AGMCORE_in_pattern get}{false} ifelse
						not AGMCORE_currentpagedevice/OverrideSeparations known and
						{
							AGMCORE_currentpagedevice/OverrideSeparations get
							{
								/HqnSpots /ProcSet resourcestatus
								{
									pop pop pop true
								}if
							}if
						}if					
						{
							AGMCORE_name /HqnSpots /ProcSet findresource /TestSpot get exec not
						}{
							gsave
							[/Separation AGMCORE_name /DeviceGray {}]AGMCORE_&setcolorspace
							false
							AGMCORE_currentpagedevice/SeparationColorNames 2 copy known
							{
								get
								{ AGMCORE_name eq or}forall
								not
							}{
								pop pop pop true
							}ifelse
							grestore
						}ifelse
					}ifelse
				}ifelse
			}ifelse
			end
		}def
	}ifelse
	/convert_to_process where {pop}{
		/convert_to_process
		{
			dup length 0 eq
				{
				pop false
				}{
				AGMCORE_host_sep
				{ 
				dup true exch
					{
					dup (Cyan) eq exch
					dup (Magenta) eq 3 -1 roll or exch
					dup (Yellow) eq 3 -1 roll or exch
					dup (Black) eq 3 -1 roll or
						{pop}
						{convert_spot_to_process and}ifelse
					}
				forall
					{
					true exch
						{
						dup (Cyan) eq exch
						dup (Magenta) eq 3 -1 roll or exch
						dup (Yellow) eq 3 -1 roll or exch
						(Black) eq or and
						}forall
						not
					}{pop false}ifelse
				}{
				false exch
					{
					dup (Cyan) eq exch
					dup (Magenta) eq 3 -1 roll or exch
					dup (Yellow) eq 3 -1 roll or exch
					dup (Black) eq 3 -1 roll or
					{pop}
					{convert_spot_to_process or}ifelse
					}
				forall
				}ifelse
			}ifelse
		}def
	}ifelse	
	/AGMCORE_avoid_L2_sep_space  
		version cvr 2012 lt 
		level2 and 
		AGMCORE_producing_seps not and
	def
	/AGMCORE_is_cmyk_sep
		AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
	def
	/AGM_avoid_0_cmyk where{
		pop AGM_avoid_0_cmyk
	}{
		AGM_preserve_spots 
		userdict/Adobe_AGM_OnHost_Seps known 
		userdict/Adobe_AGM_InRip_Seps known or
		not and
	}ifelse
	{
		/setcmykcolor[
			{
				4 copy add add add 0 eq currentoverprint and{
					pop 0.0005
				}if
			}/exec cvx
			/AGMCORE_&setcmykcolor load dup type/operatortype ne{
				/exec cvx
			}if
		]cvx def
	}if
	/AGMCORE_IsSeparationAProcessColor
		{
		dup (Cyan) eq exch dup (Magenta) eq exch dup (Yellow) eq exch (Black) eq or or or
		}def
	AGMCORE_host_sep{
		/setcolortransfer
		{ 
			AGMCORE_cyan_plate{
				pop pop pop
			}{
			  	AGMCORE_magenta_plate{
			  		4 3 roll pop pop pop
			  	}{
			  		AGMCORE_yellow_plate{
			  			4 2 roll pop pop pop
			  		}{
			  			4 1 roll pop pop pop
			  		}ifelse
			  	}ifelse
			}ifelse
			settransfer  
		}	
		def
		/AGMCORE_get_ink_data
			AGMCORE_cyan_plate{
				{pop pop pop}
			}{
			  	AGMCORE_magenta_plate{
			  		{4 3 roll pop pop pop}
			  	}{
			  		AGMCORE_yellow_plate{
			  			{4 2 roll pop pop pop}
			  		}{
			  			{4 1 roll pop pop pop}
			  		}ifelse
			  	}ifelse
			}ifelse
		def
		/AGMCORE_RemoveProcessColorNames
			{
			1 dict begin
			/filtername
				{
				dup /Cyan eq 1 index (Cyan) eq or
					{pop (_cyan_)}if
				dup /Magenta eq 1 index (Magenta) eq or
					{pop (_magenta_)}if
				dup /Yellow eq 1 index (Yellow) eq or
					{pop (_yellow_)}if
				dup /Black eq 1 index (Black) eq or
					{pop (_black_)}if
				}def
			dup type /arraytype eq
				{[exch {filtername}forall]}
				{filtername}ifelse
			end
			}def
		level3 {
			/AGMCORE_IsCurrentColor
				{
				dup AGMCORE_IsSeparationAProcessColor
					{
					AGMCORE_plate_ndx 0 eq
						{dup (Cyan) eq exch /Cyan eq or}if
					AGMCORE_plate_ndx 1 eq
						{dup (Magenta) eq exch /Magenta eq or}if
					AGMCORE_plate_ndx 2 eq
						{dup (Yellow) eq exch /Yellow eq or}if
					AGMCORE_plate_ndx 3 eq
						{dup (Black) eq exch /Black eq or}if
					AGMCORE_plate_ndx 4 eq
						{pop false}if
					}{
					gsave
					false setoverprint
					current_spot_alias false set_spot_alias
					1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
					set_spot_alias
					currentgray 1 ne
					grestore
					}ifelse
				}def
			/AGMCORE_filter_functiondatasource
				{	
				5 dict begin
				/data_in xdf
				data_in type /stringtype eq
					{
					/ncomp xdf
					/comp xdf
					/string_out data_in length ncomp idiv string def
					0 ncomp data_in length 1 sub
						{
						string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
						}for
					string_out
					}{
					string /string_in xdf
					/string_out 1 string def
					/component xdf
					[
					data_in string_in /readstring cvx
						[component /get cvx 255 /exch cvx /sub cvx string_out /exch cvx 0 /exch cvx /put cvx string_out]cvx
						[/pop cvx ()]cvx /ifelse cvx
					]cvx /ReusableStreamDecode filter
				}ifelse
				end
				}def
			/AGMCORE_separateShadingFunction
				{
				2 dict begin
				/paint? xdf
				/channel xdf
				dup type /dicttype eq
					{
					begin
					FunctionType 0 eq
						{
						/DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
						currentdict /Decode known
							{/Decode Decode channel 2 mul 2 getinterval def}if
						paint? not
							{/Decode [1 1]def}if
						}if
					FunctionType 2 eq
						{
						paint?
							{
							/C0 [C0 channel get 1 exch sub] def
							/C1 [C1 channel get 1 exch sub] def
							}{
							/C0 [1] def
							/C1 [1] def
							}ifelse			
						}if
					FunctionType 3 eq
						{
						/Functions [Functions {channel paint? AGMCORE_separateShadingFunction} forall] def			
						}if
					currentdict /Range known
						{/Range [0 1] def}if
					currentdict
					end}{
					channel get 0 paint? AGMCORE_separateShadingFunction
					}ifelse
				end
				}def
			/AGMCORE_separateShading
				{
				3 -1 roll begin
				currentdict /Function known
					{
					currentdict /Background known
						{[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
					Function 3 1 roll AGMCORE_separateShadingFunction /Function xdf
					/ColorSpace [/DeviceGray] def
					}{
					ColorSpace dup type /arraytype eq {0 get}if /DeviceCMYK eq
						{
						/ColorSpace [/DeviceN [/_cyan_ /_magenta_ /_yellow_ /_black_] /DeviceCMYK {}] def
						}{
						ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
						}ifelse
					ColorSpace 0 get /Separation eq
						{
							{
								[1 /exch cvx /sub cvx]cvx
							}{
								[/pop cvx 1]cvx
							}ifelse
							ColorSpace 3 3 -1 roll put
							pop
						}{
							{
								[exch ColorSpace 1 get length 1 sub exch sub /index cvx 1 /exch cvx /sub cvx ColorSpace 1 get length 1 add 1 /roll cvx ColorSpace 1 get length{/pop cvx} repeat]cvx
							}{
								pop [ColorSpace 1 get length {/pop cvx} repeat cvx 1]cvx
							}ifelse
							ColorSpace 3 3 -1 roll bind put
						}ifelse
					ColorSpace 2 /DeviceGray put																		
					}ifelse
				end
				}def
			/AGMCORE_separateShadingDict
				{
				dup /ColorSpace get
				dup type /arraytype ne
					{[exch]}if
				dup 0 get /DeviceCMYK eq
					{
					exch begin 
					currentdict
					AGMCORE_cyan_plate
						{0 true}if
					AGMCORE_magenta_plate
						{1 true}if
					AGMCORE_yellow_plate
						{2 true}if
					AGMCORE_black_plate
						{3 true}if
					AGMCORE_plate_ndx 4 eq
						{0 false}if		
					dup not currentoverprint and
						{/AGMCORE_ignoreshade true def}if
					AGMCORE_separateShading
					currentdict
					end exch
					}if
				dup 0 get /Separation eq
					{
					exch begin
					ColorSpace 1 get dup /None ne exch /All ne and
						{
						ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
							{
							ColorSpace 2 get dup type /arraytype eq {0 get}if /DeviceCMYK eq 
								{
								/ColorSpace
									[
									/Separation
									ColorSpace 1 get
									/DeviceGray
										[
										ColorSpace 3 get /exec cvx
										4 AGMCORE_plate_ndx sub -1 /roll cvx
										4 1 /roll cvx
										3 [/pop cvx]cvx /repeat cvx
										1 /exch cvx /sub cvx
										]cvx									
									]def
								}{
								AGMCORE_report_unsupported_color_space
								AGMCORE_black_plate not
									{
									currentdict 0 false AGMCORE_separateShading
									}if
								}ifelse
							}{
							currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
							0 exch 
							dup not currentoverprint and
								{/AGMCORE_ignoreshade true def}if
							AGMCORE_separateShading
							}ifelse	
						}if			
					currentdict
					end exch
					}if
				dup 0 get /DeviceN eq
					{
					exch begin
					ColorSpace 1 get convert_to_process
						{
						ColorSpace 2 get dup type /arraytype eq {0 get}if /DeviceCMYK eq 
							{
							/ColorSpace
								[
								/DeviceN
								ColorSpace 1 get
								/DeviceGray
									[
									ColorSpace 3 get /exec cvx
									4 AGMCORE_plate_ndx sub -1 /roll cvx
									4 1 /roll cvx
									3 [/pop cvx]cvx /repeat cvx
									1 /exch cvx /sub cvx
									]cvx									
								]def
							}{
							AGMCORE_report_unsupported_color_space
							AGMCORE_black_plate not
								{
								currentdict 0 false AGMCORE_separateShading
								/ColorSpace [/DeviceGray] def
								}if
							}ifelse
						}{
						currentdict
						false -1 ColorSpace 1 get
							{
							AGMCORE_IsCurrentColor
								{
								1 add
								exch pop true exch exit
								}if
							1 add
							}forall
						exch 
						dup not currentoverprint and
							{/AGMCORE_ignoreshade true def}if
						AGMCORE_separateShading
						}ifelse
					currentdict
					end exch
					}if
				dup 0 get dup /DeviceCMYK eq exch dup /Separation eq exch /DeviceN eq or or not
					{
					exch begin
					ColorSpace dup type /arraytype eq
						{0 get}if
					/DeviceGray ne
						{
						AGMCORE_report_unsupported_color_space
						AGMCORE_black_plate not
							{
							ColorSpace 0 get /CIEBasedA eq
								{
								/ColorSpace [/Separation /_ciebaseda_ /DeviceGray {}] def
								}if
							ColorSpace 0 get dup /CIEBasedABC eq exch dup /CIEBasedDEF eq exch /DeviceRGB eq or or
								{
								/ColorSpace [/DeviceN [/_red_ /_green_ /_blue_] /DeviceRGB {}] def
								}if
							ColorSpace 0 get /CIEBasedDEFG eq
								{
								/ColorSpace [/DeviceN [/_cyan_ /_magenta_ /_yellow_ /_black_] /DeviceCMYK {}] def
								}if
							currentdict 0 false AGMCORE_separateShading
							}if
						}if
					currentdict
					end exch
					}if
				pop
				dup /AGMCORE_ignoreshade known
					{
					begin
					/ColorSpace [/Separation (None) /DeviceGray {}] def
					currentdict end
					}if
				}def
			/shfill
				{
				AGMCORE_separateShadingDict 
				dup /AGMCORE_ignoreshade known
					{pop}
					{AGMCORE_&sysshfill}ifelse
				}def
			/makepattern
				{
				exch
				dup /PatternType get 2 eq
					{
					clonedict
					begin
					/Shading Shading AGMCORE_separateShadingDict def
					Shading /AGMCORE_ignoreshade known
					currentdict end exch
					{pop <</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
					exch AGMCORE_&sysmakepattern
					}{
					exch AGMCORE_&usrmakepattern
					}ifelse
				}def
		}if
	}if
	AGMCORE_in_rip_sep{
		/setcustomcolor
		{
			exch aload pop
			dup 7 1 roll inRip_spot_has_ink not	{ 
				4 {4 index mul 4 1 roll}
				repeat
				/DeviceCMYK setcolorspace
				6 -2 roll pop pop
			}{ 
				//Adobe_AGM_Core begin
					/AGMCORE_k xdf /AGMCORE_y xdf /AGMCORE_m xdf /AGMCORE_c xdf
				end
				[/Separation 4 -1 roll /DeviceCMYK
				{dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
				]
				setcolorspace
			}ifelse
			setcolor
		}ndf
		/setseparationgray
		{
			[/Separation (All) /DeviceGray {}] setcolorspace_opt
			1 exch sub setcolor
		}ndf
	}{
		/setseparationgray
		{
			AGMCORE_&setgray
		}ndf
	}ifelse
	/findcmykcustomcolor
	{
		5 makereadonlyarray
	}ndf
	/setcustomcolor
	{
		exch aload pop pop
		4 {4 index mul 4 1 roll} repeat
		setcmykcolor pop
	}ndf
	/has_color
		/colorimage where{
			AGMCORE_producing_seps{
				pop true
			}{
				systemdict eq
			}ifelse
		}{
			false
		}ifelse
	def
	/map_index
	{
		1 index mul exch getinterval {255 div} forall
	} bdf
	/map_indexed_devn
	{
		Lookup Names length 3 -1 roll cvi map_index
	} bdf
	/n_color_components
	{
		base_colorspace_type
		dup /DeviceGray eq{
			pop 1
		}{
			/DeviceCMYK eq{
				4
			}{
				3
			}ifelse
		}ifelse
	}bdf
	level2{
		/mo /moveto ldf
		/li /lineto ldf
		/cv /curveto ldf
		/knockout_unitsq
		{
			1 setgray
			0 0 1 1 rectfill
		}def
		level2 /setcolorspace AGMCORE_key_known not and{
			/AGMCORE_&&&setcolorspace /setcolorspace ldf
			/AGMCORE_ReplaceMappedColor
			{
				dup type dup /arraytype eq exch /packedarraytype eq or
				{
					/AGMCORE_SpotAliasAry2 where {
						begin
						dup 0 get dup /Separation eq
						{
							pop
							dup length array copy
							dup dup 1 get
							current_spot_alias
							{
								dup map_alias
								{
									false set_spot_alias
									dup 1 exch setsepcolorspace
									true set_spot_alias
									begin
									/sep_colorspace_dict currentdict AGMCORE_gput
									pop pop	pop
									[ 
										/Separation Name 
										CSA map_csa
										MappedCSA 
										/sep_colorspace_proc load
									]
									dup Name
									end
								}if
							}if
							map_reserved_ink_name 1 xpt
						}{
							/DeviceN eq 
							{
								dup length array copy
								dup dup 1 get [ 
									exch {
										current_spot_alias{
											dup map_alias{
												/Name get exch pop
											}if
										}if
										map_reserved_ink_name
									} forall 
								] 1 xpt
							}if
						}ifelse
						end
					} if
				}if
			}def
			/setcolorspace
			{
				dup type dup /arraytype eq exch /packedarraytype eq or
				{
					dup 0 get /Indexed eq
					{
						AGMCORE_distilling
						{
							/PhotoshopDuotoneList where
							{
								pop false
							}{
								true
							}ifelse
						}{
							true
						}ifelse
						{
							aload pop 3 -1 roll
							AGMCORE_ReplaceMappedColor
							3 1 roll 4 array astore
						}if
					}{
						AGMCORE_ReplaceMappedColor
					}ifelse
				}if
				DeviceN_PS2_inRip_seps {AGMCORE_&&&setcolorspace} if
			}def
		}if	
	}{
		/adj
		{
			currentstrokeadjust{
				transform
				0.25 sub round 0.25 add exch
				0.25 sub round 0.25 add exch
				itransform
			}if
		}def
		/mo{
			adj moveto
		}def
		/li{
			adj lineto
		}def
		/cv{
			6 2 roll adj
			6 2 roll adj
			6 2 roll adj curveto
		}def
		/knockout_unitsq
		{
			1 setgray
			8 8 1 [8 0 0 8 0 0] {<ffffffffffffffff>} image
		}def
		/currentstrokeadjust{
			/currentstrokeadjust AGMCORE_gget
		}def
		/setstrokeadjust{
			/currentstrokeadjust exch AGMCORE_gput
		}def
		/setcolorspace
		{
			/currentcolorspace exch AGMCORE_gput
		} def
		/currentcolorspace
		{
			/currentcolorspace AGMCORE_gget
		} def
		/setcolor_devicecolor
		{
			base_colorspace_type
			dup /DeviceGray eq{
				pop setgray
			}{
				/DeviceCMYK eq{
					setcmykcolor
				}{
					setrgbcolor
				}ifelse
			}ifelse
		}def
		/setcolor
		{
			currentcolorspace 0 get
			dup /DeviceGray ne{
				dup /DeviceCMYK ne{
					dup /DeviceRGB ne{
						dup /Separation eq{
							pop
							currentcolorspace 3 get exec
							currentcolorspace 2 get
						}{
							dup /Indexed eq{
								pop
								currentcolorspace 3 get dup type /stringtype eq{
									currentcolorspace 1 get n_color_components
									3 -1 roll map_index
								}{
									exec
								}ifelse
								currentcolorspace 1 get
							}{
								/AGMCORE_cur_err /AGMCORE_invalid_color_space def
								AGMCORE_invalid_color_space
							}ifelse
						}ifelse
					}if
				}if
			}if
			setcolor_devicecolor
		} def
	}ifelse
	/sop /setoverprint ldf
	/lw /setlinewidth ldf
	/lc /setlinecap ldf
	/lj /setlinejoin ldf
	/ml /setmiterlimit ldf
	/dsh /setdash ldf
	/sadj /setstrokeadjust ldf
	/gry /setgray ldf
	/rgb /setrgbcolor ldf
	/cmyk /setcmykcolor ldf
	/sep /setsepcolor ldf
	/devn /setdevicencolor ldf
	/idx /setindexedcolor ldf
	/colr /setcolor ldf
	/csacrd /set_csa_crd ldf
	/sepcs /setsepcolorspace ldf
	/devncs /setdevicencolorspace ldf
	/idxcs /setindexedcolorspace ldf
	/cp /closepath ldf
	/clp /clp_npth ldf
	/eclp /eoclp_npth ldf
	/f /fill ldf
	/ef /eofill ldf
	/@ /stroke ldf
	/nclp /npth_clp ldf
	/gset /graphic_setup ldf
	/gcln /graphic_cleanup ldf
	/AGMCORE_def_ht currenthalftone def
	/clonedict Adobe_AGM_Utils begin /clonedict load end def
	/clonearray Adobe_AGM_Utils begin /clonearray load end def
	currentdict{
		dup xcheck 1 index type dup /arraytype eq exch /packedarraytype eq or and {
			bind
		}if
		def
	}forall
	/getrampcolor
	{ 
		/indx exch def
		0 1 NumComp 1 sub
		{
			dup
			Samples exch get
			dup type /stringtype eq {indx get} if
			exch
			Scaling exch get aload pop
			3 1 roll
			mul add
		} for
		ColorSpaceFamily /Separation eq 
		{sep}
		{
			ColorSpaceFamily /DeviceN eq
			{devn} {setcolor}ifelse
		}ifelse
	} bdf
	/sssetbackground {aload pop setcolor} bdf
	/RadialShade
	{
		40 dict begin
		/ColorSpaceFamily xdf
		/background xdf
		/ext1 xdf
		/ext0 xdf
		/BBox xdf
		/r2 xdf
		/c2y xdf
		/c2x xdf
		/r1 xdf
		/c1y xdf
		/c1x xdf
		/rampdict xdf
		/setinkoverprint where {pop /setinkoverprint{pop}def}if
		gsave
		BBox length 0 gt
		{
			newpath
			BBox 0 get BBox 1 get moveto
			BBox 2 get BBox 0 get sub 0 rlineto
			0 BBox 3 get BBox 1 get sub rlineto
			BBox 2 get BBox 0 get sub neg 0 rlineto
			closepath
			clip
			newpath
		} if
		c1x c2x eq
		{
			c1y c2y lt {/theta 90 def}{/theta 270 def} ifelse
		}
		{
			/slope c2y c1y sub c2x c1x sub div def
			/theta slope 1 atan def
			c2x c1x lt c2y c1y ge and { /theta theta 180 sub def} if
			c2x c1x lt c2y c1y lt and { /theta theta 180 add def} if
		} ifelse
		gsave
		clippath
		c1x c1y translate
		theta rotate
		-90 rotate
		{ pathbbox } stopped
		{ 0 0 0 0 } if
		/yMax xdf
		/xMax xdf
		/yMin xdf
		/xMin xdf
		grestore
		xMax xMin eq yMax yMin eq or
		{
			grestore
			end
		}
		{
			/max { 2 copy gt { pop } {exch pop} ifelse } bdf
			/min { 2 copy lt { pop } {exch pop} ifelse } bdf
			rampdict begin
			40 dict begin
			background length 0 gt { background sssetbackground gsave clippath fill grestore } if
			gsave
			c1x c1y translate
			theta rotate
			-90 rotate
			/c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
			/c1y 0 def
			/c1x 0 def
			/c2x 0 def
			ext0
			{
				0 getrampcolor
				c2y r2 add r1 sub 0.0001 lt
				{
					c1x c1y r1 360 0 arcn
					pathbbox
					/aymax exch def
					/axmax exch def
					/aymin exch def
					/axmin exch def
					/bxMin xMin axmin min def
					/byMin yMin aymin min def
					/bxMax xMax axmax max def
					/byMax yMax aymax max def
					bxMin byMin moveto
					bxMax byMin lineto
					bxMax byMax lineto
					bxMin byMax lineto
					bxMin byMin lineto
					eofill
				}
				{
					c2y r1 add r2 le
					{
						c1x c1y r1 0 360 arc
						fill
					}
					{
						c2x c2y r2 0 360 arc fill
						r1 r2 eq
						{
							/p1x r1 neg def
							/p1y c1y def
							/p2x r1 def
							/p2y c1y def
							p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
							fill
						}
						{
							/AA r2 r1 sub c2y div def
							AA -1 eq
							{ /theta 89.99 def}
							{ /theta AA 1 AA dup mul sub sqrt div 1 atan def}
							ifelse
							/SS1 90 theta add dup sin exch cos div def
							/p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
							/p1y p1x SS1 div neg def
							/SS2 90 theta sub dup sin exch cos div def
							/p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
							/p2y p2x SS2 div neg def
							r1 r2 gt
							{
								/L1maxX p1x yMin p1y sub SS1 div add def
								/L2maxX p2x yMin p2y sub SS2 div add def
							}
							{
								/L1maxX 0 def
								/L2maxX 0 def
							} ifelse
							p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
							L1maxX L1maxX p1x sub SS1 mul p1y add lineto
							fill
						} ifelse
					} ifelse
				} ifelse
			} if
		c1x c2x sub dup mul
		c1y c2y sub dup mul
		add 0.5 exp
		0 dtransform
		dup mul exch dup mul add 0.5 exp 72 div
		0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
		72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
		1 index 1 index lt { exch } if pop
		/hires xdf
		hires mul
		/numpix xdf
		/numsteps NumSamples def
		/rampIndxInc 1 def
		/subsampling false def
		numpix 0 ne
		{
			NumSamples numpix div 0.5 gt
			{
				/numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def
				/rampIndxInc NumSamples 1 sub numsteps div def
				/subsampling true def
			} if
		} if
		/xInc c2x c1x sub numsteps div def
		/yInc c2y c1y sub numsteps div def
		/rInc r2 r1 sub numsteps div def
		/cx c1x def
		/cy c1y def
		/radius r1 def
		newpath
		xInc 0 eq yInc 0 eq rInc 0 eq and and
		{
			0 getrampcolor
			cx cy radius 0 360 arc
			stroke
			NumSamples 1 sub getrampcolor
			cx cy radius 72 hires div add 0 360 arc
			0 setlinewidth
			stroke
		}
		{
			0
			numsteps
			{
				dup
				subsampling { round cvi } if
				getrampcolor
				cx cy radius 0 360 arc
				/cx cx xInc add def
				/cy cy yInc add def
				/radius radius rInc add def
				cx cy radius 360 0 arcn
				eofill
				rampIndxInc add
			} repeat
			pop
		} ifelse
		ext1
		{
			c2y r2 add r1 lt
			{
				c2x c2y r2 0 360 arc
				fill
			}
			{
				c2y r1 add r2 sub 0.0001 le
				{
					c2x c2y r2 360 0 arcn
					pathbbox
					/aymax exch def
					/axmax exch def
					/aymin exch def
					/axmin exch def
					/bxMin xMin axmin min def
					/byMin yMin aymin min def
					/bxMax xMax axmax max def
					/byMax yMax aymax max def
					bxMin byMin moveto
					bxMax byMin lineto
					bxMax byMax lineto
					bxMin byMax lineto
					bxMin byMin lineto
					eofill
				}
				{
					c2x c2y r2 0 360 arc fill
					r1 r2 eq
					{
						/p1x r2 neg def
						/p1y c2y def
						/p2x r2 def
						/p2y c2y def
						p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
						fill
					}
					{
						/AA r2 r1 sub c2y div def
						AA -1 eq
						{ /theta 89.99 def}
						{ /theta AA 1 AA dup mul sub sqrt div 1 atan def}
						ifelse
						/SS1 90 theta add dup sin exch cos div def
						/p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
						/p1y c2y p1x SS1 div sub def
						/SS2 90 theta sub dup sin exch cos div def
						/p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
						/p2y c2y p2x SS2 div sub def
						r1 r2 lt
						{
							/L1maxX p1x yMax p1y sub SS1 div add def
							/L2maxX p2x yMax p2y sub SS2 div add def
						}
						{
							/L1maxX 0 def
							/L2maxX 0 def
						}ifelse
						p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
						L1maxX L1maxX p1x sub SS1 mul p1y add lineto
						fill
					} ifelse
				} ifelse
			} ifelse
		} if
		grestore
		grestore
		end
		end
		end
		} ifelse
	} bdf
	/GenStrips
	{
		40 dict begin
		/ColorSpaceFamily xdf
		/background xdf
		/ext1 xdf
		/ext0 xdf
		/BBox xdf
		/y2 xdf
		/x2 xdf
		/y1 xdf
		/x1 xdf
		/rampdict xdf
		/setinkoverprint where {pop /setinkoverprint{pop}def}if
		gsave
		BBox length 0 gt
		{
			newpath
			BBox 0 get BBox 1 get moveto
			BBox 2 get BBox 0 get sub 0 rlineto
			0 BBox 3 get BBox 1 get sub rlineto
			BBox 2 get BBox 0 get sub neg 0 rlineto
			closepath
			clip
			newpath
		} if
		x1 x2 eq
		{
			y1 y2 lt {/theta 90 def}{/theta 270 def} ifelse
		}
		{
			/slope y2 y1 sub x2 x1 sub div def
			/theta slope 1 atan def
			x2 x1 lt y2 y1 ge and { /theta theta 180 sub def} if
			x2 x1 lt y2 y1 lt and { /theta theta 180 add def} if
		}
		ifelse
		gsave
		clippath
		x1 y1 translate
		theta rotate
		{ pathbbox } stopped
		{ 0 0 0 0 } if
		/yMax exch def
		/xMax exch def
		/yMin exch def
		/xMin exch def
		grestore
		xMax xMin eq yMax yMin eq or
		{
			grestore
			end
		}
		{
			rampdict begin
			20 dict begin
			background length 0 gt { background sssetbackground gsave clippath fill grestore } if
			gsave
			x1 y1 translate
			theta rotate
			/xStart 0 def
			/xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
			/ySpan yMax yMin sub def
			/numsteps NumSamples def
			/rampIndxInc 1 def
			/subsampling false def
			xStart 0 transform
			xEnd 0 transform
			3 -1 roll
			sub dup mul
			3 1 roll
			sub dup mul
			add 0.5 exp 72 div
			0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
			72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
			1 index 1 index lt { exch } if pop
			mul
			/numpix xdf
			numpix 0 ne
			{
				NumSamples numpix div 0.5 gt
				{
					/numsteps numpix 2 div round cvi dup 1 le { pop 2 } if def
					/rampIndxInc NumSamples 1 sub numsteps div def
					/subsampling true def
				} if
			} if
			ext0
			{
				0 getrampcolor
				xMin xStart lt
				{
					xMin yMin xMin neg ySpan rectfill
				} if
			} if
			/xInc xEnd xStart sub numsteps div def
			/x xStart def
			0
			numsteps
			{
				dup
				subsampling { round cvi } if
				getrampcolor
				x yMin xInc ySpan rectfill
				/x x xInc add def
				rampIndxInc add
			} repeat
			pop
			ext1 {
				xMax xEnd gt
				{
					xEnd yMin xMax xEnd sub ySpan rectfill
				} if
			} if
			grestore
			grestore
			end
			end
			end
		} ifelse
	} bdf
}def
/page_trailer
{
	end
}def
/doc_trailer{
}def
/capture_currentpagedevice {
	//Adobe_AGM_Core/AGMCORE_currentpagedevice currentpagedevice ddf
} def
systemdict /findcolorrendering known{
	/findcolorrendering systemdict /findcolorrendering get def
}if
systemdict /setcolorrendering known{
	/setcolorrendering systemdict /setcolorrendering get def
}if
/test_cmyk_color_plate
{
	gsave
	setcmykcolor currentgray 1 ne
	grestore
}def
/inRip_spot_has_ink
{
	dup //Adobe_AGM_Core/AGMCORE_name xddf
	convert_spot_to_process not
}def
/map255_to_range
{
	1 index sub
	3 -1 roll 255 div mul add
}def
/set_csa_crd
{
	/sep_colorspace_dict null AGMCORE_gput
	begin
		CSA get_csa_by_name setcolorspace_opt
		set_crd
	end
}
def
/map_csa
{
	currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
	{pop}{get_csa_by_name /MappedCSA xdf}ifelse
} def
/setsepcolor
{ 
	/sep_colorspace_dict AGMCORE_gget begin
		dup /sep_tint exch AGMCORE_gput
		TintProc
	end
} def
/setdevicencolor
{ 
	/devicen_colorspace_dict AGMCORE_gget begin
		Names length copy
		Names length 1 sub -1 0
		{
			/devicen_tints AGMCORE_gget 3 1 roll xpt
		} for
		TintProc
	end
} def
/sep_colorspace_proc
{
	/AGMCORE_tmp exch store
	/sep_colorspace_dict AGMCORE_gget begin
	currentdict/Components known{
		Components aload pop 
		TintMethod/Lab eq{
			2 {AGMCORE_tmp mul NComponents 1 roll} repeat
			LMax sub AGMCORE_tmp mul LMax add  NComponents 1 roll
		}{
			TintMethod/Subtractive eq{
				NComponents{
					AGMCORE_tmp mul NComponents 1 roll
				}repeat
			}{
				NComponents{
					1 sub AGMCORE_tmp mul 1 add  NComponents 1 roll
				} repeat
			}ifelse
		}ifelse
	}{
		ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
		aload pop
	}ifelse
	end
} def
/sep_colorspace_gray_proc
{
	/AGMCORE_tmp exch store
	/sep_colorspace_dict AGMCORE_gget begin
	GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
	end
} def
/sep_proc_name
{
	dup 0 get 
	dup /DeviceRGB eq exch /DeviceCMYK eq or level2 not and has_color not and{
		pop [/DeviceGray]
		/sep_colorspace_gray_proc
	}{
		/sep_colorspace_proc
	}ifelse
} def
/setsepcolorspace
{ 
	current_spot_alias{
		dup begin
			Name map_alias{
				exch pop
			}if
		end
	}if
	dup /sep_colorspace_dict exch AGMCORE_gput
	begin
	CSA map_csa
	/AGMCORE_sep_special Name dup () eq exch (All) eq or store
	AGMCORE_avoid_L2_sep_space{
		[/Indexed MappedCSA sep_proc_name 255 exch 
			{ 255 div } /exec cvx 3 -1 roll [ 4 1 roll load /exec cvx ] cvx 
		] setcolorspace_opt
		/TintProc {
			255 mul round cvi setcolor
		}bdf
	}{
		MappedCSA 0 get /DeviceCMYK eq 
		currentdict/Components known and 
		AGMCORE_sep_special not and{
			/TintProc [
				Components aload pop Name findcmykcustomcolor 
				/exch cvx /setcustomcolor cvx
			] cvx bdf
		}{
 			AGMCORE_host_sep Name (All) eq and{
 				/TintProc { 
					1 exch sub setseparationgray 
				}bdf
 			}{
				AGMCORE_in_rip_sep MappedCSA 0 get /DeviceCMYK eq and 
				AGMCORE_host_sep or
				Name () eq and{
					/TintProc [
						MappedCSA sep_proc_name exch 0 get /DeviceCMYK eq{
							cvx /setcmykcolor cvx
						}{
							cvx /setgray cvx
						}ifelse
					] cvx bdf
				}{
					AGMCORE_producing_seps MappedCSA 0 get dup /DeviceCMYK eq exch /DeviceGray eq or and AGMCORE_sep_special not and{
	 					/TintProc [
							/dup cvx
							MappedCSA sep_proc_name cvx exch
							0 get /DeviceGray eq{
								1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx
							}if
							/Name cvx /findcmykcustomcolor cvx /exch cvx
							AGMCORE_host_sep{
								AGMCORE_is_cmyk_sep
								/Name cvx 
								/AGMCORE_IsSeparationAProcessColor load /exec cvx
								/not cvx /and cvx 
							}{
								Name inRip_spot_has_ink not
							}ifelse
							[
		 						/pop cvx 1
							] cvx /if cvx
							/setcustomcolor cvx
						] cvx bdf
 					}{ 
						/TintProc {setcolor} bdf
						[/Separation Name MappedCSA sep_proc_name load ] setcolorspace_opt
					}ifelse
				}ifelse
			}ifelse
		}ifelse
	}ifelse
	set_crd
	setsepcolor
	end
} def
/additive_blend
{
  	3 dict begin
  	/numarrays xdf
  	/numcolors xdf
  	0 1 numcolors 1 sub
  		{
  		/c1 xdf
  		1
  		0 1 numarrays 1 sub
  			{
			1 exch add /index cvx
  			c1 /get cvx /mul cvx
  			}for
 		numarrays 1 add 1 /roll cvx 
  		}for
 	numarrays [/pop cvx] cvx /repeat cvx
  	end
}def
/subtractive_blend
{
	3 dict begin
	/numarrays xdf
	/numcolors xdf
	0 1 numcolors 1 sub
		{
		/c1 xdf
		1 1
		0 1 numarrays 1 sub
			{
			1 3 3 -1 roll add /index cvx  
			c1 /get cvx /sub cvx /mul cvx
			}for
		/sub cvx
		numarrays 1 add 1 /roll cvx
		}for
	numarrays [/pop cvx] cvx /repeat cvx
	end
}def
/exec_tint_transform
{
	/TintProc [
		/TintTransform cvx /setcolor cvx
	] cvx bdf
	MappedCSA setcolorspace_opt
} bdf
/devn_makecustomcolor
{
	2 dict begin
	/names_index xdf
	/Names xdf
	1 1 1 1 Names names_index get findcmykcustomcolor
	/devicen_tints AGMCORE_gget names_index get setcustomcolor
	Names length {pop} repeat
	end
} bdf
/setdevicencolorspace
{ 
	dup /AliasedColorants known {false}{true}ifelse 
	current_spot_alias and {
		7 dict begin
		/names_index 0 def
		dup /names_len exch /Names get length def
		/new_names names_len array def
		/new_LookupTables names_len array def
		/alias_cnt 0 def
		dup /Names get
		{
			dup map_alias {
				exch pop
				dup /ColorLookup known {
					dup begin
					new_LookupTables names_index ColorLookup put
					end
				}{
					dup /Components known {
						dup begin
						new_LookupTables names_index Components put
						end
					}{
						dup begin
						new_LookupTables names_index [null null null null] put
						end
					} ifelse
				} ifelse
				new_names names_index 3 -1 roll /Name get put
				/alias_cnt alias_cnt 1 add def 
			}{
				/name xdf				
				new_names names_index name put
				dup /LookupTables known {
					dup begin
					new_LookupTables names_index LookupTables names_index get put
					end
				}{
					dup begin
					new_LookupTables names_index [null null null null] put
					end
				} ifelse
			} ifelse
			/names_index names_index 1 add def 
		} forall
		alias_cnt 0 gt {
			/AliasedColorants true def
			/lut_entry_len new_LookupTables 0 get dup length 256 ge {0 get length}{length}ifelse def
			0 1 names_len 1 sub {
				/names_index xdf
				new_LookupTables names_index get dup length 256 ge {0 get length}{length}ifelse lut_entry_len ne {
					/AliasedColorants false def
					exit
				}
				{
					new_LookupTables names_index get 0 get null eq {
						dup /Names get names_index get /name xdf
						name (Cyan) eq name (Magenta) eq name (Yellow) eq name (Black) eq
						or or or not {
							/AliasedColorants false def
							exit
						} if
					} if
				} ifelse
			} for
			lut_entry_len 1 eq {
				/AliasedColorants false def
			} if
			AliasedColorants {
				dup begin
				/Names new_names def
				/LookupTables new_LookupTables def
				/AliasedColorants true def
				/NComponents lut_entry_len def
				/TintMethod NComponents 4 eq {/Subtractive}{/Additive}ifelse def
				/MappedCSA TintMethod /Additive eq {/DeviceRGB}{/DeviceCMYK}ifelse def
				currentdict /TTTablesIdx known not {
					/TTTablesIdx -1 def
				} if
				end
			} if
		}if
		end
	} if
	dup /devicen_colorspace_dict exch AGMCORE_gput
	begin
	currentdict /AliasedColorants known {
		AliasedColorants
	}{
		false
	} ifelse
	dup not {
		CSA map_csa
	} if
	/TintTransform load type /nulltype eq or {
		/TintTransform [
			0 1 Names length 1 sub
				{
				/TTTablesIdx TTTablesIdx 1 add def
				dup LookupTables exch get dup 0 get null eq
					{
					1 index
					Names exch get
					dup (Cyan) eq
						{
						pop exch
						LookupTables length exch sub
						/index cvx
						0 0 0
						}
						{
						dup (Magenta) eq
							{
							pop exch
							LookupTables length exch sub
							/index cvx
							0 /exch cvx 0 0
							}
							{
							(Yellow) eq
								{
								exch
								LookupTables length exch sub
								/index cvx
								0 0 3 -1 /roll cvx 0
								}
								{
								exch
								LookupTables length exch sub
								/index cvx
								0 0 0 4 -1 /roll cvx
								} ifelse
							} ifelse
						} ifelse
					5 -1 /roll cvx /astore cvx
					}
					{
					dup length 1 sub
					LookupTables length 4 -1 roll sub 1 add
					/index cvx /mul cvx /round cvx /cvi cvx /get cvx
					} ifelse
					Names length TTTablesIdx add 1 add 1 /roll cvx
				} for
			Names length [/pop cvx] cvx /repeat cvx
			NComponents Names length
  			TintMethod /Subtractive eq
  				{
  				subtractive_blend
  				}
  				{
  				additive_blend
  				} ifelse
		] cvx bdf
	} if
	AGMCORE_host_sep {
		Names convert_to_process {
			exec_tint_transform
		}
		{	
			currentdict /AliasedColorants known {
				AliasedColorants not
			}{
				false
			} ifelse
			5 dict begin
			/AvoidAliasedColorants xdf
			/painted? false def
			/names_index 0 def
			/names_len Names length def
			AvoidAliasedColorants {
				/currentspotalias current_spot_alias def
				false set_spot_alias
			} if
			Names {
				AGMCORE_is_cmyk_sep {
					dup (Cyan) eq AGMCORE_cyan_plate and exch
					dup (Magenta) eq AGMCORE_magenta_plate and exch
					dup (Yellow) eq AGMCORE_yellow_plate and exch
					(Black) eq AGMCORE_black_plate and or or or {
						/devicen_colorspace_dict AGMCORE_gget /TintProc [
							Names names_index /devn_makecustomcolor cvx
						] cvx ddf
						/painted? true def
					} if
					painted? {exit} if
				}{
					0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq {
					/devicen_colorspace_dict AGMCORE_gget /TintProc [
						Names names_index /devn_makecustomcolor cvx
					] cvx ddf
					/painted? true def
					exit
					} if
				} ifelse
				/names_index names_index 1 add def
			} forall
			AvoidAliasedColorants {
				currentspotalias set_spot_alias
			} if
			painted? {
				/devicen_colorspace_dict AGMCORE_gget /names_index names_index put
			}{
				/devicen_colorspace_dict AGMCORE_gget /TintProc [
					names_len [/pop cvx] cvx /repeat cvx 1 /setseparationgray cvx
 					0 0 0 0 /setcmykcolor cvx
				] cvx ddf
			} ifelse
			end
		} ifelse
	}
	{
		AGMCORE_in_rip_sep {
			Names convert_to_process not
		}{
			level3
		} ifelse
		{
			[/DeviceN Names MappedCSA /TintTransform load] setcolorspace_opt
			/TintProc level3 not AGMCORE_in_rip_sep and {
				[
					Names /length cvx [/pop cvx] cvx /repeat cvx
				] cvx bdf
			}{
				{setcolor} bdf
			} ifelse
		}{
			exec_tint_transform
		} ifelse
	} ifelse
	set_crd
	/AliasedColorants false def
	end
} def
/setindexedcolorspace
{
	dup /indexed_colorspace_dict exch AGMCORE_gput
	begin
		currentdict /CSDBase known {
			CSDBase /CSD get_res begin
			currentdict /Names known {
				currentdict devncs
			}{
				1 currentdict sepcs
			} ifelse
			AGMCORE_host_sep{
				4 dict begin
				/compCnt /Names where {pop Names length}{1}ifelse def
				/NewLookup HiVal 1 add string def
				0 1 HiVal {
					/tableIndex xdf
					Lookup dup type /stringtype eq {
						compCnt tableIndex map_index
					}{
						exec
					} ifelse
					/Names where {
						pop setdevicencolor
					}{
						setsepcolor
					} ifelse
					currentgray
					tableIndex exch
					HiVal mul cvi 
					NewLookup 3 1 roll put
				} for
				[/Indexed currentcolorspace HiVal NewLookup] setcolorspace_opt
				end
			}{
				level3
				{
					currentdict /Names known {
						[/Indexed [/DeviceN Names MappedCSA /TintTransform load] HiVal Lookup] setcolorspace_opt
					}{
						[/Indexed [/Separation Name MappedCSA sep_proc_name load] HiVal Lookup] setcolorspace_opt
					} ifelse
				}{
				[/Indexed MappedCSA HiVal
					[
					currentdict /Names known {
						Lookup dup type /stringtype eq
							{/exch cvx CSDBase /CSD get_res /Names get length dup /mul cvx exch /getinterval cvx {255 div} /forall cvx}
							{/exec cvx}ifelse
							/TintTransform load /exec cvx
					}{
						Lookup dup type /stringtype eq
							{/exch cvx /get cvx 255 /div cvx}
							{/exec cvx}ifelse
							CSDBase /CSD get_res /MappedCSA get sep_proc_name exch pop /load cvx /exec cvx
					} ifelse
					]cvx
				]setcolorspace_opt
				}ifelse
			} ifelse
			end
			set_crd
		}
		{
			CSA map_csa
			AGMCORE_host_sep level2 not and{
				0 0 0 0 setcmykcolor
			}{
				[/Indexed MappedCSA 
				level2 not has_color not and{
					dup 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or{
						pop [/DeviceGray]
					}if
					HiVal GrayLookup
				}{
					HiVal 
					currentdict/RangeArray known{
						{ 
							/indexed_colorspace_dict AGMCORE_gget begin
							Lookup exch 
							dup HiVal gt{
								pop HiVal
							}if
							NComponents mul NComponents getinterval {} forall
							NComponents 1 sub -1 0{
								RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
								NComponents 1 roll
							}for
							end
						} bind
					}{
						Lookup
					}ifelse
				}ifelse
				] setcolorspace_opt
				set_crd
			}ifelse
		}ifelse
	end
}def
/setindexedcolor
{
	AGMCORE_host_sep {
		/indexed_colorspace_dict AGMCORE_gget dup /CSDBase known { 
			begin
			CSDBase /CSD get_res begin
			currentdict /Names known{
				map_indexed_devn
				devn
			}
			{
				Lookup 1 3 -1 roll map_index
				sep
			}ifelse
			end
			end
		}{
			/Lookup get 4 3 -1 roll map_index setcmykcolor
		} ifelse
	}{
		level3 not AGMCORE_in_rip_sep and /indexed_colorspace_dict AGMCORE_gget /CSDBase known and {
			/indexed_colorspace_dict AGMCORE_gget /CSDBase get /CSD get_res begin
			map_indexed_devn
			devn
			end
		}
		{
			setcolor
		} ifelse
	}ifelse
} def
/ignoreimagedata
{
	currentoverprint not{
		gsave
		dup clonedict begin
		1 setgray
		/Decode [0 1] def
		/DataSource <FF> def
		/MultipleDataSources false def
		/BitsPerComponent 8 def
		currentdict end
		systemdict /image get exec
		grestore
		}if
	consumeimagedata
}def
/add_res
{
	dup /CSD eq {
		pop 
		//Adobe_AGM_Core begin
		/AGMCORE_CSD_cache load 3 1 roll put
		end
	}{
		defineresource pop
	} ifelse
}def
/del_res
{
	{
		aload pop exch
		dup /CSD eq {
			pop 
			{
				//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef
			}forall
		}{
			exch
			{
				1 index undefineresource
			}forall
			pop
		} ifelse
	} forall
}def
/get_res
{
	dup /CSD eq {
		pop
		dup type dup /nametype eq exch /stringtype eq or {
			AGMCORE_CSD_cache exch get
		} if
	}{
		findresource
	} ifelse
}def
/get_csa_by_name
{
	dup type dup /nametype eq exch /stringtype eq or{
		/CSA get_res
	} if
}def
/pattern_buf_init
{
	/count get 0 0 put
} def
/pattern_buf_next
{
	dup /count get dup 0 get
	dup 3 1 roll
	1 add 0 xpt
	get				
} def
/cachepattern_compress
{
	5 dict begin
	currentfile exch 0 exch /SubFileDecode filter /ReadFilter exch def
	/patarray 20 dict def
	/string_size 16000 def
	/readbuffer string_size string def
	currentglobal true setglobal 
	patarray 1 array dup 0 1 put /count xpt
	setglobal
	/LZWFilter 
	{
		exch
		dup length 0 eq {
			pop
		}{
			patarray dup length 1 sub 3 -1 roll put
		} ifelse
		{string_size}{0}ifelse string
	} /LZWEncode filter def
	{ 		
		ReadFilter readbuffer readstring
		exch LZWFilter exch writestring
		not {exit} if
	} loop
	LZWFilter closefile
	patarray				
	end
}def
/cachepattern
{
	2 dict begin
	currentfile exch 0 exch /SubFileDecode filter /ReadFilter exch def
	/patarray 20 dict def
	currentglobal true setglobal 
	patarray 1 array dup 0 1 put /count xpt
	setglobal
	{
		ReadFilter 16000 string readstring exch
		patarray dup length 1 sub 3 -1 roll put
		not {exit} if
	} loop
	patarray dup dup length 1 sub () put					
	end	
}def
/wrap_paintproc
{ 
  statusdict /currentfilenameextend known{
	clonedict
	begin
	/OldPaintProc /PaintProc load def
	/PaintProc
	{
		mark exch
		dup /OldPaintProc get stopped
		{closefile restore end} if
		cleartomark
	}  def
	end
  } {pop} ifelse
} def
/make_pattern
{
	exch clonedict exch
	dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
	exch 3 index /XStep get 1 index exch 2 copy div cvi mul sub sub
	exch 3 index /YStep get 1 index exch 2 copy div cvi mul sub sub
	matrix translate exch matrix concatmatrix
			  1 index begin
		BBox 0 get XStep div cvi XStep mul /xshift exch neg def
		BBox 1 get YStep div cvi YStep mul /yshift exch neg def
		BBox 0 get xshift add
		BBox 1 get yshift add
		BBox 2 get xshift add
		BBox 3 get yshift add
		4 array astore
		/BBox exch def
		[ xshift yshift /translate load null /exec load ] dup
		3 /PaintProc load put cvx /PaintProc exch def
		end
	1 index dup /ID get exch /Pattern add_res
	gsave 0 setgray
	makepattern
	grestore
}def
/set_pattern
{
	dup /PatternType get 1 eq{
		dup /PaintType get 1 eq{
			currentoverprint sop [/DeviceGray] setcolorspace 0 setgray
		}if
	}if
	setpattern
}def
/setcolorspace_opt
{
	dup currentcolorspace eq{
		pop
	}{
		setcolorspace
	}ifelse
}def
/updatecolorrendering
{
	currentcolorrendering/RenderingIntent known{
		currentcolorrendering/RenderingIntent get
	}{null}ifelse
	Intent ne {
		Intent /ColorRendering {findresource} stopped
		{
			pop pop systemdict /findcolorrendering known
			{
				Intent findcolorrendering pop
				/ColorRendering findresource 
				true
			}
			{false} ifelse
		}
		{true} ifelse
		{
			dup begin
			currentdict /TransformPQR known {
				currentdict /TransformPQR get aload pop
				3 {{} eq 3 1 roll} repeat or or
			}
			{true} ifelse
			currentdict /MatrixPQR known {
				currentdict /MatrixPQR get aload pop
				1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
				0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
				0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
				and and and and and and and and
			}
			{true} ifelse
			end
			or
			{
				clonedict begin
				/TransformPQR [
					{4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
					3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add} bind
					{4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
					3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add} bind
					{4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
					3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add} bind
				] def
				/MatrixPQR [ 0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296 ] def
				/RangePQR [-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392] def
				currentdict end
			} if
			setcolorrendering_opt
		} if		
	}if
} def
/set_crd
{
	AGMCORE_host_sep not level2 and{
		currentdict /ColorRendering known{
			ColorRendering /ColorRendering {findresource} stopped not {setcolorrendering_opt} if
		}{
			currentdict/Intent known{
				updatecolorrendering
			}if
		}ifelse
		currentcolorspace dup type /arraytype eq
			{0 get}if
		/DeviceRGB eq
			{
			currentdict/UCR known
				{/UCR}{/AGMCORE_currentucr}ifelse
			load setundercolorremoval
			currentdict/BG known 
				{/BG}{/AGMCORE_currentbg}ifelse
			load setblackgeneration
			}if
	}if
}def
/setcolorrendering_opt
{
	dup currentcolorrendering eq{
		pop
	}{
		clonedict
		begin
			/Intent Intent def
			currentdict
		end
		setcolorrendering
	}ifelse
}def
/cpaint_gcomp
{
	convert_to_process //Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
	//Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
	{
		(%end_cpaint_gcomp) flushinput
	}if
}def
/cpaint_gsep
{
	//Adobe_AGM_Core/AGMCORE_ConvertToProcess get
	{	
		(%end_cpaint_gsep) flushinput
	}if
}def
/cpaint_gend
{
	newpath
}def
/set_spot_alias_ary
{
	dup inherit_aliases
	//Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
}def
/set_spot_normalization_ary
{
	dup inherit_aliases
	dup length
	/AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add} if
	array
	//Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
	/AGMCORE_SpotAliasAry where{
		pop
		AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
		AGMCORE_SpotAliasAry length
	}{0} ifelse
	AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
	true set_spot_alias
}def
/inherit_aliases
{
	{dup /Name get map_alias {/CSD put}{pop} ifelse} forall
}def
/set_spot_alias
{
	/AGMCORE_SpotAliasAry2 where{
		/AGMCORE_current_spot_alias 3 -1 roll put
	}{
		pop
	}ifelse
}def
/current_spot_alias
{
	/AGMCORE_SpotAliasAry2 where{
		/AGMCORE_current_spot_alias get
	}{
		false
	}ifelse
}def
/map_alias
{
	/AGMCORE_SpotAliasAry2 where{
		begin
			/AGMCORE_name xdf
			false	
			AGMCORE_SpotAliasAry2{
				dup/Name get AGMCORE_name eq{
					/CSD get /CSD get_res
					exch pop true
					exit
				}{
					pop
				}ifelse
			}forall
		end
	}{
		pop false
	}ifelse
}bdf
/spot_alias
{
	true set_spot_alias
	/AGMCORE_&setcustomcolor AGMCORE_key_known not {
		//Adobe_AGM_Core/AGMCORE_&setcustomcolor /setcustomcolor load put
	} if
	/customcolor_tint 1 AGMCORE_gput
	//Adobe_AGM_Core begin
	/setcustomcolor
	{
		currentdict/TintProc known currentdict/CSA known and 3 1 roll
		//Adobe_AGM_Core begin
		dup /customcolor_tint exch AGMCORE_gput
		1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
		current_spot_alias and{1 index 4 get map_alias}{false}ifelse
		{
			false set_spot_alias
			4 -1 roll{
				exch pop /sep_tint AGMCORE_gget exch
			}if
			mark 3 1 roll
			setsepcolorspace
			counttomark 0 ne{
				setsepcolor
			}if
			pop
			pop
			true set_spot_alias
		}{
			AGMCORE_&setcustomcolor
			pop
		}ifelse
		end
	}bdf
	end
}def
/begin_feature
{
	Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
	count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
	{Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
}def
/end_feature
{
	2 dict begin
	/spd /setpagedevice load def
	/setpagedevice { get_gstate spd set_gstate } def
	stopped{$error/newerror false put}if
	end
	count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
	countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
	{Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
}def
/set_negative
{
	//Adobe_AGM_Core begin
	/AGMCORE_inverting exch def
	level2{
		currentpagedevice/NegativePrint known{
			currentpagedevice/NegativePrint get //Adobe_AGM_Core/AGMCORE_inverting get ne{
				true begin_feature true{
						<< /NegativePrint //Adobe_AGM_Core/AGMCORE_inverting get >> setpagedevice
				}end_feature
			}if
			/AGMCORE_inverting false def
		}if
	}if
	AGMCORE_inverting{
		[{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
		gsave newpath clippath 1 /setseparationgray where{pop setseparationgray}{setgray}ifelse 
		/AGMIRS_&fill where {pop AGMIRS_&fill}{fill} ifelse grestore
	}if
	end
}def
/lw_save_restore_override {
	/md where {
		pop
		md begin
		initializepage
		/initializepage{}def
		/pmSVsetup{} def
		/endp{}def
		/pse{}def
		/psb{}def
		/orig_showpage where
			{pop}
			{/orig_showpage /showpage load def}
		ifelse
		/showpage {orig_showpage gR} def
		end
	}if
}def
/pscript_showpage_override {
	/NTPSOct95 where
	{
		begin
		showpage
		save
		/showpage /restore load def
		/restore {exch pop}def
		end
	}if
}def
/driver_media_override
{
	/md where {
		pop
		md /initializepage known {
			md /initializepage {} put
		} if
		md /rC known {
			md /rC {4{pop}repeat} put
		} if
	}if
	/mysetup where {
		/mysetup [1 0 0 1 0 0] put
	}if
	Adobe_AGM_Core /AGMCORE_Default_CTM matrix currentmatrix put
	level2
		{Adobe_AGM_Core /AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
}def
/driver_check_media_override
{
	/PrepsDict where
		{pop}
		{
		Adobe_AGM_Core /AGMCORE_Default_CTM get matrix currentmatrix ne
		Adobe_AGM_Core /AGMCORE_Default_PageSize get type /arraytype eq
			{
			Adobe_AGM_Core /AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
			Adobe_AGM_Core /AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
			}if
			{
			Adobe_AGM_Core /AGMCORE_Default_CTM get setmatrix
			}if
		}ifelse
}def
AGMCORE_err_strings begin
	/AGMCORE_bad_environ (Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. ) def
	/AGMCORE_color_space_onhost_seps (This job contains colors that will not separate with on-host methods. ) def
	/AGMCORE_invalid_color_space (This job contains an invalid color space. ) def
end
/set_def_ht
{
	AGMCORE_def_ht sethalftone
} def
end
systemdict /setpacking known
{
	setpacking
} if
%%EndResource
%%BeginResource: procset Adobe_CoolType_Core 2.25 0
%%Copyright: Copyright 1997-2005 Adobe Systems Incorporated.  All Rights Reserved.
%%Version: 2.25 0
10 dict begin
/Adobe_CoolType_Passthru currentdict def
/Adobe_CoolType_Core_Defined userdict /Adobe_CoolType_Core known def
Adobe_CoolType_Core_Defined
	{ /Adobe_CoolType_Core userdict /Adobe_CoolType_Core get def }
if
userdict /Adobe_CoolType_Core 60 dict dup begin put
/Adobe_CoolType_Version 2.25 def
/Level2?
	systemdict /languagelevel known dup
		{ pop systemdict /languagelevel get 2 ge }
	if def
Level2? not
	{
	/currentglobal false def
	/setglobal /pop load def
	/gcheck { pop false } bind def
	/currentpacking false def
	/setpacking /pop load def
	/SharedFontDirectory 0 dict def
	}
if
currentpacking
true setpacking
currentglobal false setglobal
userdict /Adobe_CoolType_Data 2 copy known not
	 { 2 copy 10 dict put }
if
get
	 begin
	 /@opStackCountByLevel 32 dict def
	 /@opStackLevel 0 def
	 /@dictStackCountByLevel 32 dict def
	 /@dictStackLevel 0 def
	 end
setglobal
/@_SaveStackLevels
	{
	Adobe_CoolType_Data
		begin
		/@vmState currentglobal def false setglobal
		@opStackCountByLevel
		@opStackLevel
		2 copy known not
			{
			2 copy
			3 dict dup /args
			7 index
			5 add array put
			put get
			}
			{
			get dup /args get dup length 3 index lt
				{
				dup length 5 add array exch
				1 index exch 0 exch putinterval
				1 index exch /args exch put
				}
				{ pop }
			ifelse
			}
		ifelse
			begin
			count 1 sub
			1 index lt
				{ pop count }
			if
			dup /argCount exch def
			dup 0 gt
				{
				args exch 0 exch getinterval 
			astore pop
				}
				{ pop }
			ifelse
			count
			/restCount exch def
			end
		/@opStackLevel @opStackLevel 1 add def
		countdictstack 1 sub
		@dictStackCountByLevel exch @dictStackLevel exch put
		/@dictStackLevel @dictStackLevel 1 add def
		@vmState setglobal
		end
	} bind def
/@_RestoreStackLevels
	{
	Adobe_CoolType_Data
		begin
		/@opStackLevel @opStackLevel 1 sub def
		@opStackCountByLevel @opStackLevel get
			begin
			count restCount sub dup 0 gt
				{ { pop } repeat }
				{ pop }
			ifelse
			args 0 argCount getinterval {} forall
			end
		/@dictStackLevel @dictStackLevel 1 sub def
		@dictStackCountByLevel @dictStackLevel get
		end
	countdictstack exch sub dup 0 gt
		{ { end } repeat }
		{ pop }
	ifelse
	} bind def
/@_PopStackLevels
	{
	Adobe_CoolType_Data
		begin
		/@opStackLevel @opStackLevel 1 sub def
		/@dictStackLevel @dictStackLevel 1 sub def
		end
	} bind def
/@Raise
	{
	exch cvx exch errordict exch get exec
	stop
	} bind def
/@ReRaise
	{
	cvx $error /errorname get errordict exch get exec
	stop
	} bind def
/@Stopped
	{
	0 @#Stopped
	} bind def
/@#Stopped
	{
	@_SaveStackLevels
	stopped
		{ @_RestoreStackLevels true }
		{ @_PopStackLevels false }
	ifelse
	} bind def
/@Arg
	{
	Adobe_CoolType_Data
		begin
		@opStackCountByLevel @opStackLevel 1 sub get
		begin
		args exch
		argCount 1 sub exch sub get
		end
		end
	} bind def
currentglobal true setglobal
/CTHasResourceForAllBug
	Level2?
		{
		1 dict dup
				/@shouldNotDisappearDictValue true def
				Adobe_CoolType_Data exch /@shouldNotDisappearDict exch put
				begin
				count @_SaveStackLevels
					 { (*) { pop stop } 128 string /Category resourceforall }
				stopped pop
				@_RestoreStackLevels
				currentdict Adobe_CoolType_Data /@shouldNotDisappearDict get ne dup
					 {
						  /@shouldNotDisappearDictValue known
								{
										  {
												end
												currentdict 1 index eq
													 { pop exit }
												if
										  }
									 loop
								}
						  if
					 }
				if
				end
		}
		{ false }
	ifelse
	def
true setglobal
/CTHasResourceStatusBug
	Level2?
		{
		mark
			{ /steveamerige /Category resourcestatus }
		stopped
			{ cleartomark true }
			{ cleartomark currentglobal not }
		ifelse
		}
		{ false }
	ifelse
	def
setglobal
/CTResourceStatus
		{
		mark 3 1 roll
		/Category findresource
			begin
			({ResourceStatus} stopped) 0 () /SubFileDecode filter cvx exec
				{ cleartomark false }
				{ { 3 2 roll pop true } { cleartomark false } ifelse }
			ifelse
			end
		} bind def
/CTWorkAroundBugs
	{
	Level2?
		{
		/cid_PreLoad /ProcSet resourcestatus
			{
			pop pop
			currentglobal
			mark
				{
				(*)
					{
					dup /CMap CTHasResourceStatusBug
						{ CTResourceStatus }
						{ resourcestatus }
					ifelse
						{
						pop dup 0 eq exch 1 eq or
							{
							dup /CMap findresource gcheck setglobal
							/CMap undefineresource
							}
							{
							pop CTHasResourceForAllBug
								{ exit }
								{ stop }
							ifelse
							}
						ifelse
						}
						{ pop }
					ifelse
					}
				128 string /CMap resourceforall
				}
			stopped
				{ cleartomark }
			stopped pop
			setglobal
			}
		if
		}
	if
	} bind def
/doc_setup
	{
	Adobe_CoolType_Core
		begin
		CTWorkAroundBugs
		/mov /moveto load def
		/nfnt /newencodedfont load def
		/mfnt /makefont load def
		/sfnt /setfont load def
		/ufnt /undefinefont load def
		/chp /charpath load def
		/awsh /awidthshow load def
		/wsh /widthshow load def
		/ash /ashow load def
		/sh /show load def
		end
		currentglobal false setglobal
	  userdict /Adobe_CoolType_Data 2 copy known not
		  { 2 copy 10 dict put }
		if
		get
		begin
		/AddWidths? false def
		/CC 0 def
		/charcode 2 string def
		/@opStackCountByLevel 32 dict def
		/@opStackLevel 0 def
		/@dictStackCountByLevel 32 dict def
		/@dictStackLevel 0 def
		/InVMFontsByCMap 10 dict def
		/InVMDeepCopiedFonts 10 dict def
		end
		setglobal
	} bind def
/doc_trailer
	{
	currentdict Adobe_CoolType_Core eq
		{ end }
	if
	} bind def
/page_setup
	{
	Adobe_CoolType_Core begin
	} bind def
/page_trailer
	{
	end
	} bind def
/unload
	{
	systemdict /languagelevel known
		{
		systemdict/languagelevel get 2 ge
			{
			userdict/Adobe_CoolType_Core 2 copy known
				{ undef }
				{ pop pop }
			ifelse
			}
		if
		}
	if
	} bind def
/ndf
	{
	1 index where
		{ pop pop pop }
		{ dup xcheck { bind } if def }
	ifelse
	} def
/findfont systemdict
	begin
	userdict
		begin
		/globaldict where { /globaldict get begin } if
			dup where pop exch get
		/globaldict where { pop end } if
		end
	end
Adobe_CoolType_Core_Defined
	{ /systemfindfont exch def }
	{
	/findfont 1 index def
	/systemfindfont exch def
	}
ifelse
/undefinefont
	{ pop } ndf
/copyfont
	{
	currentglobal 3 1 roll
	1 index gcheck setglobal
	dup null eq { 0 } { dup length } ifelse
	2 index length add 1 add dict
		begin
		exch
			{
			1 index /FID eq
				{ pop pop }
				{ def }
			ifelse
			}
		forall
		dup null eq
			{ pop }
			{ { def } forall }
		ifelse
		currentdict
		end
	exch setglobal
	} bind def
/copyarray
	{
	currentglobal exch
	dup gcheck setglobal
	dup length array copy
	exch setglobal
	} bind def
/newencodedfont
	{
	currentglobal
		{
		SharedFontDirectory 3 index  known
			{ SharedFontDirectory 3 index get /FontReferenced known }
			{ false }
		ifelse
		}
		{
		FontDirectory 3 index known
			{ FontDirectory 3 index get /FontReferenced known }
			{
			SharedFontDirectory 3 index known
				{ SharedFontDirectory 3 index get /FontReferenced known }
				{ false }
			ifelse
			}
		ifelse
		}
	ifelse
	dup
		{
		3 index findfont /FontReferenced get
		2 index dup type /nametype eq
			{findfont}
		if ne
			{ pop false }
		if
		}
	if
		{
		pop
		1 index findfont
		/Encoding get exch
		0 1 255
			{ 2 copy get 3 index 3 1 roll put }
		for
		pop pop pop
		}
		{
		dup type /nametype eq
		  { findfont }
	  if
		dup dup maxlength 2 add dict
			begin
			exch
				{
				1 index /FID ne
					{def}
					{pop pop}
				ifelse
				}
			forall
			/FontReferenced exch def
			/Encoding exch dup length array copy def
			/FontName 1 index dup type /stringtype eq { cvn } if def dup
			currentdict
			end
		definefont def
		}
	ifelse
	} bind def
/SetSubstituteStrategy
	{
	$SubstituteFont
		begin
		dup type /dicttype ne
			{ 0 dict }
		if
		currentdict /$Strategies known
			{
			exch $Strategies exch 
			2 copy known
				{
				get
				2 copy maxlength exch maxlength add dict
					begin
					{ def } forall
					{ def } forall
					currentdict
					dup /$Init known
						{ dup /$Init get exec }
					if
					end
				/$Strategy exch def
				}
				{ pop pop pop }
			ifelse
			}
			{ pop pop }
		ifelse
		end
	} bind def
/scff
	{
	$SubstituteFont
		begin
		dup type /stringtype eq
			{ dup length exch }
			{ null }
		ifelse
		/$sname exch def
		/$slen exch def
		/$inVMIndex
			$sname null eq
				{
				1 index $str cvs
				dup length $slen sub $slen getinterval cvn
				}
				{ $sname }
			ifelse def
		end
		{ findfont }
	@Stopped
		{
		dup length 8 add string exch
		1 index 0 (BadFont:) putinterval
		1 index exch 8 exch dup length string cvs putinterval cvn
			{ findfont }
		@Stopped
			{ pop /Courier findfont }
		if
		}
	if
	$SubstituteFont
		begin
		/$sname null def
		/$slen 0 def
		/$inVMIndex null def
		end
	} bind def
/isWidthsOnlyFont
	{
	dup /WidthsOnly known
		{ pop pop true }
		{
		dup /FDepVector known
			{ /FDepVector get { isWidthsOnlyFont dup { exit } if } forall }
			{
			dup /FDArray known
				{ /FDArray get { isWidthsOnlyFont dup { exit } if } forall }
				{ pop }
			ifelse
			}
		ifelse
		}
	ifelse
	} bind def
/?str1 256 string def
/?set
	{
	$SubstituteFont
		begin
		/$substituteFound false def
		/$fontname 4 index def
		/$doSmartSub false def
		end
	3 index
	currentglobal false setglobal exch
	/CompatibleFonts /ProcSet resourcestatus
		{
		pop pop
		/CompatibleFonts /ProcSet findresource
			begin
			dup /CompatibleFont currentexception
			1 index /CompatibleFont true setexception
			1 index /Font resourcestatus
				{
				pop pop
				3 2 roll setglobal
				end
				exch
				dup findfont
				/CompatibleFonts /ProcSet findresource
					begin
					3 1 roll exch /CompatibleFont exch setexception
					end
				}
				{
				3 2 roll setglobal
				1 index exch /CompatibleFont exch setexception
				end
				findfont
				$SubstituteFont /$substituteFound true put
				}
			ifelse
		}
		{ exch setglobal findfont }
	ifelse
	$SubstituteFont
		begin
		$substituteFound
			{
		 false
		 (%%[Using embedded font ) print
		 5 index ?str1 cvs print
		 ( to avoid the font substitution problem noted earlier.]%%\n) print
		 }
			{
			dup /FontName known
				{
				dup /FontName get $fontname eq
				1 index /DistillerFauxFont known not and
				/currentdistillerparams where
					{ pop false 2 index isWidthsOnlyFont not and }
				if
				}
				{ false }
			ifelse
			}
		ifelse
		exch pop
		/$doSmartSub true def
		end
		{
		exch pop exch pop exch
		2 dict dup /Found 3 index put
		exch findfont exch
		}
		{
		exch exec
		exch dup findfont
		dup /FontType get 3 eq
	  {
		  exch ?str1 cvs
		  dup length 1 sub
		  -1 0
		{
			  exch dup 2 index get 42 eq
			{
				 exch 0 exch getinterval cvn 4 1 roll 3 2 roll pop
				 exit
			  }
			  {exch pop} ifelse
		  }for
		}
		{
		 exch pop
	  } ifelse
		2 dict dup /Downloaded 6 5 roll put
		}
	ifelse
	dup /FontName 4 index put copyfont definefont pop
	} bind def
/?str2 256 string def
/?add
	{
	1 index type /integertype eq
		{ exch true 4 2 }
		{ false 3 1 }
	ifelse
	roll
	1 index findfont
	dup /Widths known
		{
		Adobe_CoolType_Data /AddWidths? true put
		gsave dup 1000 scalefont setfont
		}
	if
	/Downloaded known
		{
		exec
		exch
			{
			exch ?str2 cvs exch
			findfont /Downloaded get 1 dict begin /Downloaded 1 index def ?str1 cvs length
			?str1 1 index 1 add 3 index putinterval
			exch length 1 add 1 index add
			?str1 2 index (*) putinterval
			?str1 0 2 index getinterval cvn findfont 
			?str1 3 index (+) putinterval
			2 dict dup /FontName ?str1 0 6 index getinterval cvn put
			dup /Downloaded Downloaded put end copyfont
			dup /FontName get exch definefont pop pop pop
			}
			{
			pop
			}
		ifelse
		}
		{
		pop
		exch
			{
			findfont
			dup /Found get
			dup length exch ?str1 cvs pop
			?str1 1 index (+) putinterval
			?str1 1 index 1 add 4 index ?str2 cvs putinterval
			?str1 exch 0 exch 5 4 roll ?str2 cvs length 1 add add getinterval cvn
			1 dict exch 1 index exch /FontName exch put copyfont
			dup /FontName get exch definefont pop
			}
			{
			pop
			}
		ifelse
		}
	ifelse
	Adobe_CoolType_Data /AddWidths? get
		{ grestore Adobe_CoolType_Data /AddWidths? false put }
	if
	} bind def
/?sh
	{
	currentfont /Downloaded known { exch } if pop
	} bind def
/?chp
	{
	currentfont /Downloaded known { pop } { false chp } ifelse
	} bind def
/?mv 
	{
	currentfont /Downloaded known { moveto pop pop } { pop pop moveto } ifelse
	} bind def
setpacking
userdict /$SubstituteFont 25 dict put
1 dict
	begin
	/SubstituteFont
		dup $error exch 2 copy known
			{ get }
			{ pop pop { pop /Courier } bind }
		ifelse def
	/currentdistillerparams where dup
		{
		pop pop
		currentdistillerparams /CannotEmbedFontPolicy 2 copy known
			{ get /Error eq }
			{ pop pop false }
		ifelse
		}
	if not
		{
		countdictstack array dictstack 0 get
			begin
			userdict
				begin
				$SubstituteFont
					begin
					/$str 128 string def
					/$fontpat 128 string def
					/$slen 0 def
					/$sname null def
					/$match false def
					/$fontname null def
					/$substituteFound false def
					/$inVMIndex null def
					/$doSmartSub true def
					/$depth 0 def
					/$fontname null def
					/$italicangle 26.5 def
					/$dstack null def
					/$Strategies 10 dict dup
						begin
						/$Type3Underprint
							{
							currentglobal exch false setglobal
							11 dict
								begin
								/UseFont exch
									$WMode 0 ne
										{
										dup length dict copy
										dup /WMode $WMode put
										/UseFont exch definefont
										}
									if def
								/FontName $fontname dup type /stringtype eq { cvn } if def
								/FontType 3 def
								/FontMatrix [ .001 0 0 .001 0 0 ] def
								/Encoding 256 array dup 0 1 255 { /.notdef put dup } for pop def
								/FontBBox [ 0 0 0 0 ] def
								/CCInfo 7 dict dup
									begin
									/cc null def
									/x 0 def
									/y 0 def
									end def
								/BuildChar
									{
									exch
										begin
										CCInfo
											begin
											1 string dup 0 3 index put exch pop
											/cc exch def
											UseFont 1000 scalefont setfont
											cc stringwidth /y exch def /x exch def
											x y setcharwidth
											$SubstituteFont /$Strategy get /$Underprint get exec
											0 0 moveto cc show
											x y moveto
											end
										end
									} bind def
								currentdict
								end
							exch setglobal
							} bind def
						/$GetaTint
							2 dict dup
								begin
								/$BuildFont
									{
									dup /WMode known
										{ dup /WMode get }
										{ 0 }
									ifelse
									/$WMode exch def
									$fontname exch
									dup /FontName known
										{
										dup /FontName get
										dup type /stringtype eq { cvn } if
										}
										{ /unnamedfont }
									ifelse
									exch
									Adobe_CoolType_Data /InVMDeepCopiedFonts get
									1 index /FontName get known
										{
										pop
										Adobe_CoolType_Data /InVMDeepCopiedFonts get
										1 index get
										null copyfont
										}
										{ $deepcopyfont }
									ifelse
									exch 1 index exch /FontBasedOn exch put
									dup /FontName $fontname dup type /stringtype eq { cvn } if put
									definefont
									Adobe_CoolType_Data /InVMDeepCopiedFonts get
										begin
										dup /FontBasedOn get 1 index def
										end
									} bind def
								/$Underprint
									{
									gsave
									x abs y abs gt
										{ /y 1000 def }
										{ /x -1000 def 500 120 translate }
									ifelse
									Level2?
										{
										[ /Separation (All) /DeviceCMYK { 0 0 0 1 pop } ]
										setcolorspace
										}
										{ 0 setgray }
									ifelse
									10 setlinewidth
									x .8 mul
									[ 7 3 ]
										{
										y mul 8 div 120 sub x 10 div exch moveto
										0 y 4 div neg rlineto
										dup 0 rlineto
										0 y 4 div rlineto
										closepath
										gsave
										Level2?
											{ .2 setcolor }
											{ .8 setgray }
										ifelse
										fill grestore
										stroke
										}
									forall
									pop
									grestore
									} bind def
								end def
						/$Oblique
							1 dict dup
								begin
								/$BuildFont
									{
									currentglobal exch dup gcheck setglobal
									null copyfont
										begin
										/FontBasedOn
										currentdict /FontName known
											{
											FontName
											dup type /stringtype eq { cvn } if
											}
											{ /unnamedfont }
										ifelse
										def
										/FontName $fontname dup type /stringtype eq { cvn } if def
										/currentdistillerparams where
											{ pop }
											{
											/FontInfo currentdict /FontInfo known
												{ FontInfo null copyfont }
												{ 2 dict }
											ifelse
											dup
												begin
												/ItalicAngle $italicangle def
												/FontMatrix FontMatrix
												[ 1 0 ItalicAngle dup sin exch cos div 1 0 0 ]
												matrix concatmatrix readonly
												end
											4 2 roll def
											def
											}
										ifelse
										FontName currentdict
										end
									definefont
									exch setglobal
									} bind def
								end def
						/$None
							1 dict dup
								begin
								/$BuildFont {} bind def
								end def
						end def
					/$Oblique SetSubstituteStrategy
					/$findfontByEnum
						{
						dup type /stringtype eq { cvn } if
						dup /$fontname exch def
						$sname null eq
							{ $str cvs dup length $slen sub $slen getinterval }
							{ pop $sname }
						ifelse
						$fontpat dup 0 (fonts/*) putinterval exch 7 exch putinterval
						/$match false def
						$SubstituteFont /$dstack countdictstack array dictstack put
						mark
							{
							$fontpat 0 $slen 7 add getinterval
								{ /$match exch def exit }
							$str filenameforall
							}
						stopped
							{
							cleardictstack
							currentdict
							true
							$SubstituteFont /$dstack get
								{
								exch
									{
									1 index eq
										{ pop false }
										{ true }
									ifelse
									}
									{ begin false }
								ifelse
								}
							forall
							pop
							}
						if
						cleartomark
						/$slen 0 def
						$match false ne
							{ $match (fonts/) anchorsearch pop pop cvn }
							{ /Courier }
						ifelse
						} bind def
					/$ROS 1 dict dup
						begin
						/Adobe 4 dict dup
							begin
							/Japan1  [ /Ryumin-Light /HeiseiMin-W3
										  /GothicBBB-Medium /HeiseiKakuGo-W5
										  /HeiseiMaruGo-W4 /Jun101-Light ] def
							/Korea1  [ /HYSMyeongJo-Medium /HYGoThic-Medium ] def
							/GB1	  [ /STSong-Light /STHeiti-Regular ] def
							/CNS1	 [ /MKai-Medium /MHei-Medium ] def
							end def
						end def
					/$cmapname null def
					/$deepcopyfont
						{
						dup /FontType get 0 eq
							{
							1 dict dup /FontName /copied put copyfont
								begin
								/FDepVector FDepVector copyarray
								0 1 2 index length 1 sub
									{
									2 copy get $deepcopyfont
									dup /FontName /copied put
									/copied exch definefont
									3 copy put pop pop
									}
								for
								def
								currentdict
								end
							}
							{ $Strategies /$Type3Underprint get exec }
						ifelse
						} bind def
					/$buildfontname
						{
						dup /CIDFont findresource /CIDSystemInfo get
							begin
							Registry length Ordering length Supplement 8 string cvs
							3 copy length 2 add add add string
							dup 5 1 roll dup 0 Registry putinterval
							dup 4 index (-) putinterval
							dup 4 index 1 add Ordering putinterval
							4 2 roll add 1 add 2 copy (-) putinterval
							end
						1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
						anchorsearch
							{ pop pop 3 2 roll putinterval cvn /$cmapname exch def }
							{ pop pop pop pop pop }
						ifelse
						length
						$str 1 index (-) putinterval 1 add
						$str 1 index $cmapname $fontpat cvs putinterval
						$cmapname length add
						$str exch 0 exch getinterval cvn
						} bind def
					/$findfontByROS
						{
						/$fontname exch def
						$ROS Registry 2 copy known
							{
							get Ordering 2 copy known
								{ get }
								{ pop pop [] }
							ifelse
							}
							{ pop pop [] }
						ifelse
						false exch
							{
							dup /CIDFont resourcestatus
								{
								pop pop
								save
								1 index /CIDFont findresource
								dup /WidthsOnly known
									{ dup /WidthsOnly get }
									{ false }
								ifelse
								exch pop
								exch restore
									{ pop }
									{ exch pop true exit }
								ifelse
								}
								{ pop }
							ifelse
							}
						forall
							{ $str cvs $buildfontname }
							{
							false (*)
								{
								save exch
								dup /CIDFont findresource
								dup /WidthsOnly known
									{ dup /WidthsOnly get not }
									{ true }
								ifelse
								exch /CIDSystemInfo get
								dup /Registry get Registry eq
								exch /Ordering get Ordering eq and and
									{ exch restore exch pop true exit }
									{ pop restore }
								ifelse
								}
							$str /CIDFont resourceforall
								{ $buildfontname }
								{ $fontname $findfontByEnum }
							ifelse
							}
						ifelse
						} bind def
					end
				end
				currentdict /$error known currentdict /languagelevel known and dup
					{ pop $error /SubstituteFont known }
				if
				dup
					{ $error }
					{ Adobe_CoolType_Core }
				ifelse
				begin
					{
					/SubstituteFont
					/CMap /Category resourcestatus
						{
						pop pop
						{
						$SubstituteFont
							begin
							/$substituteFound true def
							dup length $slen gt
							$sname null ne or
							$slen 0 gt and
								{
								$sname null eq
									{ dup $str cvs dup length $slen sub $slen getinterval cvn }
									{ $sname }
								ifelse
								Adobe_CoolType_Data /InVMFontsByCMap get
								1 index 2 copy known
									{
									get
									false exch
										{
										pop
										currentglobal
											{
											GlobalFontDirectory 1 index known
												{ exch pop true exit }
												{ pop }
											ifelse
											}
											{
											FontDirectory 1 index known
												{ exch pop true exit }
												{
												GlobalFontDirectory 1 index known
													{ exch pop true exit }
													{ pop }
												ifelse
												}
											ifelse
											}
										ifelse
										}
									forall
									}
									{ pop pop false }
								ifelse
									{
									exch pop exch pop
									}
									{
									dup /CMap resourcestatus
										{
										pop pop
										dup /$cmapname exch def
										/CMap findresource /CIDSystemInfo get { def } forall
										$findfontByROS
										}
										{
										128 string cvs
										dup (-) search
											{
											3 1 roll search
												{
												3 1 roll pop
													{ dup cvi }
												stopped
													{ pop pop pop pop pop $findfontByEnum }
													{
													4 2 roll pop pop
													exch length
													exch
													2 index length
													2 index
													sub
													exch 1 sub -1 0
														{
														$str cvs dup length
														4 index
														0
														4 index
														4 3 roll add
														getinterval
														exch 1 index exch 3 index exch
														putinterval
														dup /CMap resourcestatus
															{
															pop pop
															4 1 roll pop pop pop
															dup /$cmapname exch def
															/CMap findresource /CIDSystemInfo get { def } forall
															$findfontByROS
															true exit
															}
															{ pop }
														ifelse
														}
													for
													dup type /booleantype eq
														{ pop }
														{ pop pop pop $findfontByEnum }
													ifelse
													}
												ifelse
												}
												{ pop pop pop $findfontByEnum }
											ifelse
											}
											{ pop pop $findfontByEnum }
										ifelse
										}
									ifelse
									}
								ifelse
								}
								{ //SubstituteFont exec }
							ifelse
							/$slen 0 def
							end
						}
						}
						{
						{
						$SubstituteFont
							begin
							/$substituteFound true def
							dup length $slen gt
							$sname null ne or
							$slen 0 gt and
								{ $findfontByEnum }
								{ //SubstituteFont exec }
							ifelse
							end
						}
						}
					ifelse
					bind readonly def
					Adobe_CoolType_Core /scfindfont /systemfindfont load put
					}
					{
					/scfindfont
						{
						$SubstituteFont
							begin
							dup systemfindfont
							dup /FontName known
								{ dup /FontName get dup 3 index ne }
								{ /noname true }
							ifelse
							dup
								{
								/$origfontnamefound 2 index def
								/$origfontname 4 index def /$substituteFound true def
								}
							if
							exch pop
								{
								$slen 0 gt
								$sname null ne
								3 index length $slen gt or and
									{
									pop dup $findfontByEnum findfont
									dup maxlength 1 add dict
										begin
											{ 1 index /FID eq { pop pop } { def } ifelse }
										forall
										currentdict
										end
									definefont
									dup /FontName known { dup /FontName get } { null } ifelse
									$origfontnamefound ne
										{
										$origfontname $str cvs print
										( substitution revised, using ) print
										dup /FontName known
											{ dup /FontName get } { (unspecified font) }
										ifelse
										$str cvs print (.\n) print
										}
									if
									}
									{ exch pop }
								ifelse
								}
								{ exch pop }
							ifelse
							end
						} bind def
					}
				ifelse
				end
			end
		Adobe_CoolType_Core_Defined not
			{
			Adobe_CoolType_Core /findfont
				{
				$SubstituteFont
					begin
					$depth 0 eq
						{
						/$fontname 1 index dup type /stringtype ne { $str cvs } if def
						/$substituteFound false def
						}
					if
					/$depth $depth 1 add def
					end
				scfindfont
				$SubstituteFont
					begin
					/$depth $depth 1 sub def
					$substituteFound $depth 0 eq and
						{
						$inVMIndex null ne
							{ dup $inVMIndex $AddInVMFont }
						if
						$doSmartSub
							{
							currentdict /$Strategy known
								{ $Strategy /$BuildFont get exec }
							if
							}
						if
						}
					if
					end
				} bind put
			}
		if
		}
	if
	end
/$AddInVMFont
	{
	exch /FontName 2 copy known
		{
		get
		1 dict dup begin exch 1 index gcheck def end exch
		Adobe_CoolType_Data /InVMFontsByCMap get exch
		$DictAdd
		}
		{ pop pop pop }
	ifelse
	} bind def
/$DictAdd
	{
	2 copy known not
		{ 2 copy 4 index length dict put }
	if
	Level2? not
		{
		2 copy get dup maxlength exch length 4 index length add lt
		2 copy get dup length 4 index length add exch maxlength 1 index lt
			{
			2 mul dict
				begin
				2 copy get { forall } def
				2 copy currentdict put
				end
			}
			{ pop }
		ifelse
		}
	if
	get
		begin
			{ def }
		forall
		end
	} bind def
end
end
%%EndResource
%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.21 0
%%Copyright: Copyright 1987-2005 Adobe Systems Incorporated.
%%Version: 1.21 0
systemdict /languagelevel known dup
	{ currentglobal false setglobal }
	{ false }
ifelse
exch
userdict /Adobe_CoolType_Utility 2 copy known
	{ 2 copy get dup maxlength 27 add dict copy }
	{ 27 dict }
ifelse put
Adobe_CoolType_Utility
	begin
	/@eexecStartData
		  <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
		 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
		 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A> def
	/@recognizeCIDFont null def
	/ct_Level2? exch def
	/ct_Clone? 1183615869 internaldict dup
			/CCRun known not
			exch /eCCRun known not
			ct_Level2? and or def
ct_Level2?
	{ globaldict begin currentglobal true setglobal }
if
	/ct_AddStdCIDMap
		ct_Level2?
			{ {
				mark
				Adobe_CoolType_Utility /@recognizeCIDFont currentdict put
					 {
					 ((Hex) 57 StartData
					 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
					 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
					 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
					 cc36 74f4 1144 b13b 77) 0 () /SubFileDecode filter cvx exec
					 }
				stopped
					 {
					 cleartomark
					 Adobe_CoolType_Utility /@recognizeCIDFont get
					 countdictstack dup array dictstack
					 exch 1 sub -1 0
						  {
						  2 copy get 3 index eq
								{ 1 index length exch sub 1 sub { end } repeat exit }
								{ pop }
						  ifelse
						  }
					 for
					 pop pop
					 Adobe_CoolType_Utility /@eexecStartData get eexec
					 }
					 { cleartomark }
				ifelse
			} }
			{ {
				Adobe_CoolType_Utility /@eexecStartData get eexec
			} }
		ifelse bind def
userdict /cid_extensions known
dup { cid_extensions /cid_UpdateDB known and } if
	 {
	 cid_extensions
	 begin
	 /cid_GetCIDSystemInfo
		 {
		 1 index type /stringtype eq
			 { exch cvn exch }
		 if
		 cid_extensions
			 begin
			 dup load 2 index known
				 {
				 2 copy
				 cid_GetStatusInfo
				 dup null ne
					 {
					 1 index load
					 3 index get
					 dup null eq
						  { pop pop cid_UpdateDB }
						  {
						  exch
						  1 index /Created get eq
							  { exch pop exch pop }
							  { pop cid_UpdateDB }
						  ifelse
						  }
					 ifelse
					 }
					 { pop cid_UpdateDB }
				 ifelse
				 }
				 { cid_UpdateDB }
			 ifelse
			 end
		 } bind def
	 end
	 }
if
ct_Level2?
	{ end setglobal }
if
	/ct_UseNativeCapability?  systemdict /composefont known def
	/ct_MakeOCF 35 dict def
	/ct_Vars 25 dict def
	/ct_GlyphDirProcs 6 dict def
	/ct_BuildCharDict 15 dict dup
		begin
		/charcode 2 string def
		/dst_string 1500 string def
		/nullstring () def
		/usewidths? true def
		end def
	ct_Level2? { setglobal } { pop } ifelse
	ct_GlyphDirProcs
		begin
		/GetGlyphDirectory
			{
			systemdict /languagelevel known
				{ pop /CIDFont findresource /GlyphDirectory get }
				{
				1 index /CIDFont findresource /GlyphDirectory
				get dup type /dicttype eq
					{
					dup dup maxlength exch length sub 2 index lt
						{
						dup length 2 index add dict copy 2 index
						/CIDFont findresource/GlyphDirectory 2 index put
						}
					if
					}
				if
				exch pop exch pop
				}
			ifelse
			+
			} def
		/+
			{
			systemdict /languagelevel known
				{
				currentglobal false setglobal
				3 dict begin
					/vm exch def
				}
				{ 1 dict begin }
			ifelse
			/$ exch def
			systemdict /languagelevel known
				{
				vm setglobal
				/gvm currentglobal def
				$ gcheck setglobal
				}
			if
			? { $ begin } if
			} def
		/? { $ type /dicttype eq } def
		/| {
			userdict /Adobe_CoolType_Data known
				{
			Adobe_CoolType_Data /AddWidths? known
				{
				 currentdict Adobe_CoolType_Data
					begin
					  begin
						AddWidths?
								{
								Adobe_CoolType_Data /CC 3 index put
								? { def } { $ 3 1 roll put } ifelse
								CC charcode exch 1 index 0 2 index 256 idiv put
								1 index exch 1 exch 256 mod put
								stringwidth 2 array astore
								currentfont /Widths get exch CC exch put
								}
								{ ? { def } { $ 3 1 roll put } ifelse }
							ifelse
					end
				end
				}
				{ ? { def } { $ 3 1 roll put } ifelse }	ifelse
				}
				{ ? { def } { $ 3 1 roll put } ifelse }
			ifelse
			} def
		/!
			{
			? { end } if
			systemdict /languagelevel known
				{ gvm setglobal }
			if
			end
			} def
		/: { string currentfile exch readstring pop } executeonly def
		end
	ct_MakeOCF
		begin
		/ct_cHexEncoding
		[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
		 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
		 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
		 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
		 /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
		 /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
		 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
		 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
		 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
		 /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
		 /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
		 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
		 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
		 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF] def
		/ct_CID_STR_SIZE 8000 def
		/ct_mkocfStr100 100 string def
		/ct_defaultFontMtx [.001 0 0 .001 0 0] def
		/ct_1000Mtx [1000 0 0 1000 0 0] def
		/ct_raise {exch cvx exch errordict exch get exec stop} bind def
		/ct_reraise
			{ cvx $error /errorname get (Error: ) print dup (						  ) cvs print
					errordict exch get exec stop
			} bind def
		/ct_cvnsi
			{
			1 index add 1 sub 1 exch 0 4 1 roll
				{
				2 index exch get
				exch 8 bitshift
				add
				}
			for
			exch pop
			} bind def
		/ct_GetInterval
			{
			Adobe_CoolType_Utility /ct_BuildCharDict get
				begin
				/dst_index 0 def
				dup dst_string length gt
					{ dup string /dst_string exch def }
				if
				1 index ct_CID_STR_SIZE idiv
				/arrayIndex exch def
				2 index arrayIndex  get
				2 index
				arrayIndex ct_CID_STR_SIZE mul
				sub
					{
					dup 3 index add 2 index length le
						{
						2 index getinterval
						dst_string  dst_index 2 index putinterval
						length dst_index add /dst_index exch def
						exit
						}
						{
						1 index length 1 index sub
						dup 4 1 roll
						getinterval
						dst_string  dst_index 2 index putinterval
						pop dup dst_index add /dst_index exch def
						sub
						/arrayIndex arrayIndex 1 add def
						2 index dup length arrayIndex gt
							  { arrayIndex get }
							  {
							  pop
							  exit
							  }
						ifelse
						0
						}
					ifelse
					}
				loop
				pop pop pop
				dst_string 0 dst_index getinterval
				end
			} bind def
		ct_Level2?
			{
			/ct_resourcestatus
			currentglobal mark true setglobal
				{ /unknowninstancename /Category resourcestatus }
			stopped
				{ cleartomark setglobal true }
				{ cleartomark currentglobal not exch setglobal }
			ifelse
				{
					{
					mark 3 1 roll /Category findresource
						begin
						ct_Vars /vm currentglobal put
						({ResourceStatus} stopped) 0 () /SubFileDecode filter cvx exec
							{ cleartomark false }
							{ { 3 2 roll pop true } { cleartomark false } ifelse }
						ifelse
						ct_Vars /vm get setglobal
						end
					}
				}
				{ { resourcestatus } }
			ifelse bind def
			/CIDFont /Category ct_resourcestatus
				{ pop pop }
				{
				currentglobal  true setglobal
				/Generic /Category findresource
				dup length dict copy
				dup /InstanceType /dicttype put
				/CIDFont exch /Category defineresource pop
				setglobal
				}
			ifelse
			ct_UseNativeCapability?
				{
				/CIDInit /ProcSet findresource begin
				12 dict begin
				begincmap
				/CIDSystemInfo 3 dict dup begin
				  /Registry (Adobe) def
				  /Ordering (Identity) def
				  /Supplement 0 def
				end def
				/CMapName /Identity-H def
				/CMapVersion 1.000 def
				/CMapType 1 def
				1 begincodespacerange
				<0000> <FFFF>
				endcodespacerange
				1 begincidrange
				<0000> <FFFF> 0
				endcidrange
				endcmap
				CMapName currentdict /CMap defineresource pop
				end
				end
				}
			if
			}
			{
			/ct_Category 2 dict begin
			/CIDFont  10 dict def
			/ProcSet	2 dict def
			currentdict
			end
			def
			/defineresource
				{
				ct_Category 1 index 2 copy known
					{
					get
					dup dup maxlength exch length eq
						{
						dup length 10 add dict copy
						ct_Category 2 index 2 index put
						}
					if
					3 index 3 index put
					pop exch pop
					}
					{ pop pop /defineresource /undefined ct_raise }
				ifelse
				} bind def
			/findresource
				{
				ct_Category 1 index 2 copy known
					{
					get
					2 index 2 copy known
						{ get 3 1 roll pop pop}
						{ pop pop /findresource /undefinedresource ct_raise }
					ifelse
					}
					{ pop pop /findresource /undefined ct_raise }
				ifelse
				} bind def
			/resourcestatus
				{
				ct_Category 1 index 2 copy known
					{
					get
					2 index known
					exch pop exch pop
						{
						0 -1 true
						}
						{
						false
						}
					ifelse
					}
					{ pop pop /findresource /undefined ct_raise }
				ifelse
				} bind def
			/ct_resourcestatus /resourcestatus load def
			}
		ifelse
		/ct_CIDInit 2 dict
			begin
			/ct_cidfont_stream_init
				{
					{
					dup (Binary) eq
						{
						pop
						null
						currentfile
						ct_Level2?
							{
								{ cid_BYTE_COUNT () /SubFileDecode filter }
							stopped
								{ pop pop pop }
							if
							}
						if
						/readstring load
						exit
						}
					if
					dup (Hex) eq
						{
						pop
						currentfile
						ct_Level2?
							{
								{ null exch /ASCIIHexDecode filter /readstring }
							stopped
								{ pop exch pop (>) exch /readhexstring }
							if
							}
							{ (>) exch /readhexstring }
						ifelse
						load
						exit
						}
					if
					/StartData /typecheck ct_raise
					}
				loop
				cid_BYTE_COUNT ct_CID_STR_SIZE le
					{
					2 copy cid_BYTE_COUNT string exch exec
					pop
					1 array dup
					3 -1 roll
					0 exch put
					}
					{
					cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
					dup array exch 2 sub 0 exch 1 exch
						{
						2 copy
						5 index
						ct_CID_STR_SIZE
						string
						6 index exec
						pop
						put
						pop
						}
					for
					2 index
					cid_BYTE_COUNT ct_CID_STR_SIZE mod string
					3 index exec
					pop
					1 index exch
					1 index length 1 sub
					exch put
					}
				ifelse
				cid_CIDFONT exch /GlyphData exch put
				2 index null eq
					{
					pop pop pop
					}
					{
					pop /readstring load
					1 string exch
						{
						3 copy exec
						pop
						dup length 0 eq
							{
							pop pop pop pop pop
							true exit
							}
						if
						4 index
						eq
							{
							pop pop pop pop
							false exit
							}
						if
						}
					loop
					pop
					}
				ifelse
				} bind def
			/StartData
				{
				mark
					{
					currentdict
					dup /FDArray get 0 get /FontMatrix get
					0 get 0.001 eq
						{
						dup /CDevProc known not
							{
							/CDevProc 1183615869 internaldict /stdCDevProc 2 copy known
								{ get }
								{
								pop pop
								{ pop pop pop pop pop 0 -1000 7 index 2 div 880 }
								}
							ifelse
							def
							}
						if
						}
						{
						 /CDevProc
							 {
							 pop pop pop pop pop
							 0
							 1 cid_temp /cid_CIDFONT get
							 /FDArray get 0 get
							 /FontMatrix get 0 get div
							 7 index 2 div
							 1 index 0.88 mul
							 } def
						}
					ifelse
					/cid_temp 15 dict def
					cid_temp
						begin
						/cid_CIDFONT exch def
						3 copy pop
						dup /cid_BYTE_COUNT exch def 0 gt
							{
							ct_cidfont_stream_init
							FDArray
								{
								/Private get
								dup /SubrMapOffset known
									{
									begin
									/Subrs SubrCount array def
									Subrs
									SubrMapOffset
									SubrCount
									SDBytes
									ct_Level2?
										{
										currentdict dup /SubrMapOffset undef
										dup /SubrCount undef
										/SDBytes undef
										}
									if
									end
									/cid_SD_BYTES exch def
									/cid_SUBR_COUNT exch def
									/cid_SUBR_MAP_OFFSET exch def
									/cid_SUBRS exch def
									cid_SUBR_COUNT 0 gt
										{
										GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
										0 cid_SD_BYTES ct_cvnsi
										0 1 cid_SUBR_COUNT 1 sub
											{
											exch 1 index
											1 add
											cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
											GlyphData exch cid_SD_BYTES ct_GetInterval
											0 cid_SD_BYTES ct_cvnsi
											cid_SUBRS 4 2 roll
											GlyphData exch
											4 index
											1 index
											sub
											ct_GetInterval
											dup length string copy put
											}
										for
										pop
										}
									if
									}
									{ pop }
								ifelse
								}
							forall
							}
						if
						cleartomark pop pop
						end
					CIDFontName currentdict /CIDFont defineresource pop
					end end
					}
				stopped
					{ cleartomark /StartData ct_reraise }
				if
				} bind def
			currentdict
			end def
		/ct_saveCIDInit
			{
			/CIDInit /ProcSet ct_resourcestatus
				{ true }
				{ /CIDInitC /ProcSet ct_resourcestatus }
			ifelse
				{
				pop pop
				/CIDInit /ProcSet findresource
				ct_UseNativeCapability?
					{ pop null }
					{ /CIDInit ct_CIDInit /ProcSet defineresource pop }
				ifelse
				}
				{ /CIDInit ct_CIDInit /ProcSet defineresource pop null }
			ifelse
			ct_Vars exch /ct_oldCIDInit exch put
			} bind def
		/ct_restoreCIDInit
			{
			ct_Vars /ct_oldCIDInit get dup null ne
				{ /CIDInit exch /ProcSet defineresource pop }
				{ pop }
			ifelse
			} bind def
		/ct_BuildCharSetUp
			{
			1 index
				begin
				CIDFont
					begin
					Adobe_CoolType_Utility /ct_BuildCharDict get
						begin
						/ct_dfCharCode exch def
						/ct_dfDict exch def
						CIDFirstByte ct_dfCharCode add
						dup CIDCount ge
							{ pop 0 }
						if
						/cid exch def
							{
							GlyphDirectory cid 2 copy known
								{ get }
								{ pop pop nullstring }
							ifelse
							dup length FDBytes sub 0 gt
								{
								dup
								FDBytes 0 ne
									{ 0 FDBytes ct_cvnsi }
									{ pop 0 }
								ifelse
								/fdIndex exch def
								dup length FDBytes sub FDBytes exch getinterval
								/charstring exch def
								exit
								}
								{
								pop
								cid 0 eq
									{ /charstring nullstring def exit }
								if
								/cid 0 def
								}
							ifelse
							}
						loop
			} def
		/ct_SetCacheDevice
			{
			0 0 moveto
			dup stringwidth
			3 -1 roll
			true charpath
			pathbbox
			0 -1000
			7 index 2 div 880
			setcachedevice2
			0 0 moveto
			} def
		/ct_CloneSetCacheProc
			{
			1 eq
				{
				stringwidth
				pop -2 div -880
				0 -1000 setcharwidth
				moveto
				}
				{
				usewidths?
					{
					currentfont /Widths get cid
					2 copy known
						{ get exch pop aload pop }
						{ pop pop stringwidth }
					ifelse
					}
					{ stringwidth }
				ifelse
				setcharwidth
				0 0 moveto
				}
			ifelse
			} def
		/ct_Type3ShowCharString
			{
			ct_FDDict fdIndex 2 copy known
				{ get }
				{
				currentglobal 3 1 roll
				1 index gcheck setglobal
				ct_Type1FontTemplate dup maxlength dict copy
					begin
					FDArray fdIndex get
					dup /FontMatrix 2 copy known
						{ get }
						{ pop pop ct_defaultFontMtx }
					ifelse
					/FontMatrix exch dup length array copy def
					/Private get
					/Private exch def
					/Widths rootfont /Widths get def
					/CharStrings 1 dict dup /.notdef
						<d841272cf18f54fc13> dup length string copy put def
					currentdict
					end
				/ct_Type1Font exch definefont
				dup 5 1 roll put
				setglobal
				}
			ifelse
			dup /CharStrings get 1 index /Encoding get
			ct_dfCharCode get charstring put
			rootfont /WMode 2 copy known
				{ get }
				{ pop pop 0 }
			ifelse
			exch
			1000 scalefont setfont
			ct_str1 0 ct_dfCharCode put
			ct_str1 exch ct_dfSetCacheProc
			ct_SyntheticBold
				{
				currentpoint
				ct_str1 show
				newpath
				moveto
				ct_str1 true charpath
				ct_StrokeWidth setlinewidth
				stroke
				}
				{ ct_str1 show }
			ifelse
			} def
		/ct_Type4ShowCharString
			{
			ct_dfDict ct_dfCharCode charstring
			FDArray fdIndex get
			dup /FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
				{ ct_1000Mtx matrix concatmatrix concat }
				{ pop }
			ifelse
			/Private get
			Adobe_CoolType_Utility /ct_Level2? get not
				{
				ct_dfDict /Private
				3 -1 roll
					{ put }
				1183615869 internaldict /superexec get exec
				}
			if
			1183615869 internaldict
			Adobe_CoolType_Utility /ct_Level2? get
				{ 1 index }
				{ 3 index /Private get mark 6 1 roll }
			ifelse
			dup /RunInt known
				{ /RunInt get }
				{ pop /CCRun }
			ifelse
			get exec
			Adobe_CoolType_Utility /ct_Level2? get not
				{ cleartomark }
			if
			} bind def
		/ct_BuildCharIncremental
			{
				{
				Adobe_CoolType_Utility /ct_MakeOCF get begin
				ct_BuildCharSetUp
				ct_ShowCharString
				}
			stopped
				{ stop }
			if
			end
			end
			end
			end
			} bind def
		/BaseFontNameStr (BF00) def
		/ct_Type1FontTemplate 14 dict
			begin
			/FontType 1 def
			/FontMatrix  [0.001 0 0 0.001 0 0] def
			/FontBBox  [-250 -250 1250 1250] def
			/Encoding ct_cHexEncoding def
			/PaintType 0 def
			currentdict
			end def
		/BaseFontTemplate 11 dict
			begin
			/FontMatrix  [0.001 0 0 0.001 0 0] def
			/FontBBox  [-250 -250 1250 1250] def
			/Encoding ct_cHexEncoding def
			/BuildChar /ct_BuildCharIncremental load def
			ct_Clone?
				{
				/FontType 3 def
				/ct_ShowCharString /ct_Type3ShowCharString load def
				/ct_dfSetCacheProc /ct_CloneSetCacheProc load def
				/ct_SyntheticBold false def
				/ct_StrokeWidth 1 def
				}
				{
				/FontType 4 def
				/Private 1 dict dup /lenIV 4 put def
				/CharStrings 1 dict dup /.notdef <d841272cf18f54fc13> put def
				/PaintType 0 def
				/ct_ShowCharString /ct_Type4ShowCharString load def
				}
			ifelse
			/ct_str1 1 string def
			currentdict
			end def
		/BaseFontDictSize BaseFontTemplate length 5 add def
		/ct_matrixeq
			{
			true 0 1 5
				{
				dup 4 index exch get exch 3 index exch get eq and
				dup not
					{ exit }
				if
				}
			for
			exch pop exch pop
			} bind def
		/ct_makeocf
			{
			15 dict
				begin
				exch /WMode exch def
				exch /FontName exch def
				/FontType 0 def
				/FMapType 2 def
			dup /FontMatrix known
				{ dup /FontMatrix get /FontMatrix exch def }
				{ /FontMatrix matrix def }
			ifelse
				/bfCount 1 index /CIDCount get 256 idiv 1 add
					dup 256 gt { pop 256} if def
				/Encoding
					256 array 0 1 bfCount 1 sub { 2 copy dup put pop } for
					bfCount 1 255 { 2 copy bfCount put pop } for
					def
				/FDepVector bfCount dup 256 lt { 1 add } if array def
				BaseFontTemplate BaseFontDictSize dict copy
					begin
					/CIDFont exch def
					CIDFont /FontBBox known
						{ CIDFont /FontBBox get /FontBBox exch def }
					if
					CIDFont /CDevProc known
						{ CIDFont /CDevProc get /CDevProc exch def }
					if
					currentdict
					end
				BaseFontNameStr 3 (0) putinterval
				0 1 bfCount dup 256 eq { 1 sub } if
					{
					FDepVector exch
					2 index BaseFontDictSize dict copy
						begin
						dup /CIDFirstByte exch 256 mul def
						FontType 3 eq
							{ /ct_FDDict 2 dict def }
						if
						currentdict
						end
					1 index  16
					BaseFontNameStr  2 2 getinterval cvrs pop
					BaseFontNameStr exch definefont
					put
					}
				for
				ct_Clone?
					{ /Widths 1 index /CIDFont get /GlyphDirectory get length dict def }
				if
				FontName
				currentdict
				end
			definefont
			ct_Clone?
				{
				gsave
				dup 1000 scalefont setfont
				ct_BuildCharDict
					begin
					/usewidths? false def
					currentfont /Widths get
						begin
						exch /CIDFont get /GlyphDirectory get
							{
							pop
							dup charcode exch 1 index 0 2 index 256 idiv put
							1 index exch 1 exch 256 mod put
							stringwidth 2 array astore def
							}
						forall
						end
					/usewidths? true def
					end
				grestore
				}
				{ exch pop }
			ifelse
			} bind def
		/ct_ComposeFont
			{
			ct_UseNativeCapability?
				{
				2 index /CMap ct_resourcestatus
					{ pop pop exch pop }
					{
					/CIDInit /ProcSet findresource
						begin
						12 dict
							begin
							begincmap
							/CMapName 3 index def
							/CMapVersion 1.000 def
							/CMapType 1 def
							exch /WMode exch def
							/CIDSystemInfo 3 dict dup
								begin
								/Registry (Adobe) def
								/Ordering
								CMapName ct_mkocfStr100 cvs
								(Adobe-) search
									{
									pop pop
									(-) search
										{
										dup length string copy
										exch pop exch pop
										}
										{ pop (Identity)}
									ifelse
									}
									{ pop  (Identity)  }
								ifelse
								def
								/Supplement 0 def
								end def
							1 begincodespacerange
							<0000> <FFFF>
							endcodespacerange
							1 begincidrange
							<0000> <FFFF> 0
							endcidrange
							endcmap
							CMapName currentdict /CMap defineresource pop
							end
						end
					}
				ifelse
				composefont
				}
				{
				3 2 roll pop
				0 get /CIDFont findresource
				ct_makeocf
				}
			ifelse
			} bind def
		/ct_MakeIdentity
			{
			ct_UseNativeCapability?
				{
				1 index /CMap ct_resourcestatus
					{ pop pop }
					{
					/CIDInit /ProcSet findresource begin
					12 dict begin
					begincmap
					/CMapName 2 index def
					/CMapVersion 1.000 def
					/CMapType 1 def
					/CIDSystemInfo 3 dict dup
						begin
						/Registry (Adobe) def
						/Ordering
						CMapName ct_mkocfStr100 cvs
						(Adobe-) search
							{
							pop pop
							(-) search
								{ dup length string copy exch pop exch pop }
								{ pop (Identity) }
							ifelse
							}
							{ pop (Identity) }
						ifelse
						def
						/Supplement 0 def
						end def
					1 begincodespacerange
					<0000> <FFFF>
					endcodespacerange
					1 begincidrange
					<0000> <FFFF> 0
					endcidrange
					endcmap
					CMapName currentdict /CMap defineresource pop
					end
					end
					}
				ifelse
				composefont
				}
				{
				exch pop
				0 get /CIDFont findresource
				ct_makeocf
				}
			ifelse
			} bind def
		currentdict readonly pop
		end
	end
%%EndResource
%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
%%Version: 1.0 0
userdict /ct_T42Dict 15 dict put
ct_T42Dict begin
/Is2015?
{
  version
  cvi
  2015
  ge
} bind def
/AllocGlyphStorage
{
  Is2015?
  {	
		pop
  } 
  { 
		{string} forall
  } ifelse
} bind def
/Type42DictBegin
{
	25 dict begin
  /FontName exch def
  /CharStrings 256 dict 
	begin
		  /.notdef 0 def
		  currentdict 
	end def
  /Encoding exch def
  /PaintType 0 def
  /FontType 42 def
  /FontMatrix [1 0 0 1 0 0] def
  4 array  astore cvx /FontBBox exch def
  /sfnts
} bind def
/Type42DictEnd  
{
	 currentdict dup /FontName get exch definefont end
	ct_T42Dict exch
	dup /FontName get exch put
} bind def
/RD {string currentfile exch readstring pop} executeonly def
/PrepFor2015
{
	Is2015?
	{		  
		 /GlyphDirectory 
		 16
		 dict def
		 sfnts 0 get
		 dup
		 2 index
		 (glyx)
		 putinterval
		 2 index  
		 (locx)
		 putinterval
		 pop
		 pop
	}
	{
		 pop
		 pop
	} ifelse			
} bind def
/AddT42Char
{
	Is2015?
	{
		/GlyphDirectory get 
		begin
		def
		end
		pop
		pop
	}
	{
		/sfnts get
		4 index
		get
		3 index
	  2 index
		putinterval
		pop
		pop
		pop
		pop
	} ifelse
} bind def
/T0AddT42Mtx2
{
	/CIDFont findresource /Metrics2 get begin def end
}bind def
end
%%EndResource
Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end
%%BeginResource: procset Adobe_AGM_Image 1.0 0
%%Version: 1.0 0
%%Copyright: Copyright (C) 2000-2003 Adobe Systems, Inc.  All Rights Reserved.
systemdict /setpacking known
{
	currentpacking
	true setpacking
} if
userdict /Adobe_AGM_Image 75 dict dup begin put
/Adobe_AGM_Image_Id /Adobe_AGM_Image_1.0_0 def
/nd{
	null def
}bind def
/AGMIMG_&image nd
/AGMIMG_&colorimage nd
/AGMIMG_&imagemask nd
/AGMIMG_mbuf () def
/AGMIMG_ybuf () def
/AGMIMG_kbuf () def
/AGMIMG_c 0 def
/AGMIMG_m 0 def
/AGMIMG_y 0 def
/AGMIMG_k 0 def
/AGMIMG_tmp nd
/AGMIMG_imagestring0 nd
/AGMIMG_imagestring1 nd
/AGMIMG_imagestring2 nd
/AGMIMG_imagestring3 nd
/AGMIMG_imagestring4 nd
/AGMIMG_imagestring5 nd
/AGMIMG_cnt nd
/AGMIMG_fsave nd
/AGMIMG_colorAry nd
/AGMIMG_override nd
/AGMIMG_name nd
/AGMIMG_maskSource nd
/AGMIMG_flushfilters nd
/invert_image_samples nd
/knockout_image_samples	nd
/img nd
/sepimg nd
/devnimg nd
/idximg nd
/doc_setup
{ 
	Adobe_AGM_Core begin
	Adobe_AGM_Image begin
	/AGMIMG_&image systemdict/image get def
	/AGMIMG_&imagemask systemdict/imagemask get def
	/colorimage where{
		pop
		/AGMIMG_&colorimage /colorimage ldf
	}if
	end
	end
}def
/page_setup
{
	Adobe_AGM_Image begin
	/AGMIMG_ccimage_exists {/customcolorimage where 
		{
			pop
			/Adobe_AGM_OnHost_Seps where
			{
			pop false
			}{
			/Adobe_AGM_InRip_Seps where
				{
				pop false
				}{
					true
				 }ifelse
			 }ifelse
			}{
			false
		}ifelse 
	}bdf
	level2{
		/invert_image_samples
		{
			Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
			/Decode [ Decode 1 get Decode 0 get] def
		}def
		/knockout_image_samples
		{
			Operator/imagemask ne{
				/Decode [1 1] def
			}if
		}def
	}{	
		/invert_image_samples
		{
			{1 exch sub} currenttransfer addprocs settransfer
		}def
		/knockout_image_samples
		{
			{ pop 1 } currenttransfer addprocs settransfer
		}def
	}ifelse
	/img /imageormask ldf
	/sepimg /sep_imageormask ldf
	/devnimg /devn_imageormask ldf
	/idximg /indexed_imageormask ldf
	/_ctype 7 def
	currentdict{
		dup xcheck 1 index type dup /arraytype eq exch /packedarraytype eq or and{
			bind
		}if
		def
	}forall
}def
/page_trailer
{
	end
}def
/doc_trailer
{
}def
/AGMIMG_flushfilters
{
	dup type /arraytype ne
		{1 array astore}if
	aload length
		{
		dup type /filetype eq
			{
			dup status 1 index currentfile ne and
				{dup flushfile closefile}
				{pop}
			ifelse
			}{pop}ifelse
		} repeat
}def
/imageormask_sys
{
	begin
		save mark
		level2{
			currentdict
			Operator /imagemask eq{
				AGMIMG_&imagemask
			}{
				use_mask {
					level3 {process_mask_L3 AGMIMG_&image}{masked_image_simulation}ifelse
				}{
					AGMIMG_&image
				}ifelse
			}ifelse
		}{
			Width Height
			Operator /imagemask eq{
				Decode 0 get 1 eq Decode 1 get 0 eq	and
				ImageMatrix /DataSource load
				AGMIMG_&imagemask
			}{
				BitsPerComponent ImageMatrix /DataSource load
				AGMIMG_&image
			}ifelse
		}ifelse
		currentdict /_Filters known {_Filters AGMIMG_flushfilters} if
		cleartomark restore
	end
}def
/overprint_plate
{
	currentoverprint {
		0 get dup type /nametype eq {
			dup /DeviceGray eq{
				pop AGMCORE_black_plate not
			}{
				/DeviceCMYK eq{
					AGMCORE_is_cmyk_sep not
				}if
			}ifelse
		}{
			false exch
			{
				 AGMOHS_sepink eq or
			} forall
			not
		} ifelse
	}{
		pop false
	}ifelse
}def
/process_mask_L3
{
	dup begin
	/ImageType 1 def
	end
	4 dict begin
		/DataDict exch def
		/ImageType 3 def
		/InterleaveType 3 def
		/MaskDict 9 dict begin
			/ImageType 1 def
			/Width DataDict dup /MaskWidth known {/MaskWidth}{/Width} ifelse get def
			/Height DataDict dup /MaskHeight known {/MaskHeight}{/Height} ifelse get def
			/ImageMatrix [Width 0 0 Height neg 0 Height] def
			/NComponents 1 def
			/BitsPerComponent 1 def
			/Decode [0 1] def
			/DataSource AGMIMG_maskSource def
		currentdict end def
	currentdict end
}def
/use_mask
{
	dup type /dicttype eq
	{
		dup /Mask known	{
			dup /Mask get {
				level3
				{true}
				{
					dup /MaskWidth known {dup /MaskWidth get 1 index /Width get eq}{true}ifelse exch
					dup /MaskHeight known {dup /MaskHeight get 1 index /Height get eq}{true}ifelse
					3 -1 roll and
				} ifelse
			}
			{false} ifelse
		}
		{false} ifelse
	}
	{false} ifelse
}def
/make_line_source
{
	begin
	MultipleDataSources {
		[
		Decode length 2 div cvi {Width string} repeat
		]
	}{
		Width Decode length 2 div mul cvi string
	}ifelse
	end
}def
/datasource_to_str
{
	exch dup type
	dup /filetype eq {
		pop exch readstring
	}{
		/arraytype eq {
			exec exch copy
		}{
			pop
		}ifelse
	}ifelse
	pop
}def
/masked_image_simulation
{
	3 dict begin
	dup make_line_source /line_source xdf
	/mask_source AGMIMG_maskSource /LZWDecode filter def
	dup /Width get 8 div ceiling cvi string /mask_str xdf
	begin
	gsave
	0 1 translate 1 -1 Height div scale
	1 1 Height {
		pop
		gsave
		MultipleDataSources {
			0 1 DataSource length 1 sub {
				dup DataSource exch get
				exch line_source exch get
				datasource_to_str
			} for
		}{
			DataSource line_source datasource_to_str
		} ifelse
		<<
			/PatternType 1
			/PaintProc [
				/pop cvx
				<<
					/ImageType 1
					/Width Width
					/Height 1
					/ImageMatrix Width 1.0 sub 1 matrix scale 0.5 0 matrix translate matrix concatmatrix
					/MultipleDataSources MultipleDataSources
					/DataSource line_source
					/BitsPerComponent BitsPerComponent
					/Decode Decode
				>>
				/image cvx
			] cvx
			/BBox [0 0 Width 1]
			/XStep Width
			/YStep 1
			/PaintType 1
			/TilingType 2
		>>
		matrix makepattern set_pattern
		<<
			/ImageType 1
			/Width Width
			/Height 1
			/ImageMatrix Width 1 matrix scale
			/MultipleDataSources false
			/DataSource mask_source mask_str readstring pop
			/BitsPerComponent 1
			/Decode [0 1]
		>>
		imagemask
		grestore
		0 1 translate
	} for
	grestore
	end
	end
}def
/imageormask
{
	begin
		SkipImageProc {
			currentdict consumeimagedata
		}
		{
			save mark
			level2 AGMCORE_host_sep not and{
				currentdict
				Operator /imagemask eq DeviceN_PS2 not and {
					imagemask
				}{
					AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get /DeviceGray eq and{
						[/Separation /Black /DeviceGray {}] setcolorspace
						/Decode [ Decode 1 get Decode 0 get ] def
					}if
					use_mask {
						level3 {process_mask_L3 image}{masked_image_simulation}ifelse
					}{
						DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and 
						{
							Names convert_to_process not {
								2 dict begin
								/imageDict xdf
								/names_index 0 def
								gsave
								imageDict write_image_file {
									Names {
										dup (None) ne {
											[/Separation 3 -1 roll /DeviceGray {1 exch sub}] setcolorspace
											Operator imageDict read_image_file
											names_index 0 eq {true setoverprint} if
											/names_index names_index 1 add def
										}{
											pop
										} ifelse
									} forall
									close_image_file
								} if
								grestore
								end
							}{
								Operator /imagemask eq {
									imagemask
								}{
									image
								} ifelse
							} ifelse
						}{
							Operator /imagemask eq {
								imagemask
							}{
								image
							} ifelse
						} ifelse
					}ifelse
				}ifelse
			}{
				Width Height
				Operator /imagemask eq{
					Decode 0 get 1 eq Decode 1 get 0 eq	and
					ImageMatrix /DataSource load
					/Adobe_AGM_OnHost_Seps where {
						pop imagemask
					}{
						currentgray 1 ne{
							currentdict imageormask_sys
						}{
							currentoverprint not{
								1 AGMCORE_&setgray
								currentdict imageormask_sys
							}{
								currentdict ignoreimagedata
							}ifelse				 		
						}ifelse
					}ifelse
				}{
					BitsPerComponent ImageMatrix 
					MultipleDataSources{
						0 1 NComponents 1 sub{
							DataSource exch get
						}for
					}{
						/DataSource load
					}ifelse
					Operator /colorimage eq{
						AGMCORE_host_sep{
							MultipleDataSources level2 or NComponents 4 eq and{
								AGMCORE_is_cmyk_sep{
									MultipleDataSources{
										/DataSource [
											DataSource 0 get /exec cvx
											DataSource 1 get /exec cvx
											DataSource 2 get /exec cvx
											DataSource 3 get /exec cvx
											/AGMCORE_get_ink_data cvx
										] cvx def
									}{
										/DataSource 
										Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul 
										/DataSource load
										filter_cmyk 0 () /SubFileDecode filter def
									}ifelse
									/Decode [ Decode 0 get Decode 1 get ] def
									/MultipleDataSources false def
									/NComponents 1 def
									/Operator /image def
									invert_image_samples
						 			1 AGMCORE_&setgray
									currentdict imageormask_sys
								}{
									currentoverprint not Operator/imagemask eq and{
  			 							1 AGMCORE_&setgray
  			 							currentdict imageormask_sys
  			 						}{
  			 							currentdict ignoreimagedata
  			 						}ifelse
								}ifelse
							}{	
								MultipleDataSources NComponents AGMIMG_&colorimage						
							}ifelse
						}{
							true NComponents colorimage
						}ifelse
					}{
						Operator /image eq{
							AGMCORE_host_sep{
								/DoImage true def
								HostSepColorImage{
									invert_image_samples
								}{
									AGMCORE_black_plate not Operator/imagemask ne and{
										/DoImage false def
										currentdict ignoreimagedata
					 				}if
								}ifelse
						 		1 AGMCORE_&setgray
								DoImage
									{currentdict imageormask_sys} if
							}{
								use_mask {
									level3 {process_mask_L3 image}{masked_image_simulation}ifelse
								}{
									image
								}ifelse
							}ifelse
						}{
							Operator/knockout eq{
								pop pop pop pop pop
								currentcolorspace overprint_plate not{
									knockout_unitsq
								}if
							}if
						}ifelse
					}ifelse
				}ifelse
			}ifelse
			cleartomark restore
		}ifelse
		currentdict /_Filters known {_Filters AGMIMG_flushfilters} if
	end
}def
/sep_imageormask
{
 	/sep_colorspace_dict AGMCORE_gget begin
	CSA map_csa
	begin
	SkipImageProc {
		currentdict consumeimagedata
	}
	{
		save mark 
		AGMCORE_avoid_L2_sep_space{
			/Decode [ Decode 0 get 255 mul Decode 1 get 255 mul ] def
		}if
 		AGMIMG_ccimage_exists 
		MappedCSA 0 get /DeviceCMYK eq and
		currentdict/Components known and 
		Name () ne and 
		Name (All) ne and 
		Operator /image eq and
		AGMCORE_producing_seps not and
		level2 not and
		{
			Width Height BitsPerComponent ImageMatrix 
			[
			/DataSource load /exec cvx
			{
				0 1 2 index length 1 sub{
					1 index exch
					2 copy get 255 xor put
				}for
			} /exec cvx
			] cvx bind
			MappedCSA 0 get /DeviceCMYK eq{
				Components aload pop
			}{
				0 0 0 Components aload pop 1 exch sub
			}ifelse
			Name findcmykcustomcolor
			customcolorimage
		}{
			AGMCORE_producing_seps not{
				level2{
					AGMCORE_avoid_L2_sep_space not currentcolorspace 0 get /Separation ne and{
						[/Separation Name MappedCSA sep_proc_name exch 0 get exch load ] setcolorspace_opt
						/sep_tint AGMCORE_gget setcolor
					}if
					currentdict imageormask
				}{ 
					currentdict
					Operator /imagemask eq{
						imageormask
					}{
						sep_imageormask_lev1
					}ifelse
				}ifelse
 			}{
				AGMCORE_host_sep{
					Operator/knockout eq{
						currentdict/ImageMatrix get concat
						knockout_unitsq
					}{
						currentgray 1 ne{
 							AGMCORE_is_cmyk_sep Name (All) ne and{
 								level2{
 									Name AGMCORE_IsSeparationAProcessColor 
 									{
 										Operator /imagemask eq{
 											/sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
 										}{
											invert_image_samples
 										}ifelse
	 								}{
	 									[ /Separation Name [/DeviceGray]
	 									{ 
	 										sep_colorspace_proc AGMCORE_get_ink_data
											1 exch sub
	 									} bind
										] AGMCORE_&setcolorspace
										/sep_tint AGMCORE_gget AGMCORE_&setcolor
 									}ifelse
 									currentdict imageormask_sys
	 							}{
	 								currentdict
									Operator /imagemask eq{
										imageormask_sys
									}{
										sep_image_lev1_sep
									}ifelse
	 							}ifelse
 							}{
 								Operator/imagemask ne{
									invert_image_samples
 								}if
		 						currentdict imageormask_sys
 							}ifelse
 						}{
 							currentoverprint not Name (All) eq or Operator/imagemask eq and{
								currentdict imageormask_sys 
								}{
								currentoverprint not
									{
 									gsave 
 									knockout_unitsq
 									grestore
									}if
								currentdict consumeimagedata 
		 					}ifelse
 						}ifelse
		 			}ifelse
 				}{
					currentcolorspace 0 get /Separation ne{
						[/Separation Name MappedCSA sep_proc_name exch 0 get exch load ] setcolorspace_opt
						/sep_tint AGMCORE_gget setcolor
					}if
					currentoverprint 
					MappedCSA 0 get /DeviceCMYK eq and 
					Name AGMCORE_IsSeparationAProcessColor not and
					Name inRip_spot_has_ink not and 
					Name (All) ne and {
						imageormask_l2_overprint
					}{
						currentdict imageormask
 					}ifelse
				}ifelse
			}ifelse
		}ifelse
		cleartomark restore
	}ifelse
	currentdict /_Filters known {_Filters AGMIMG_flushfilters} if
	end
	end
}def
/decode_image_sample
{
	4 1 roll exch dup 5 1 roll
	sub 2 4 -1 roll exp 1 sub div mul add
} bdf
/colorSpaceElemCnt
{
	mark currentcolor counttomark dup 2 add 1 roll cleartomark
} bdf
/devn_sep_datasource
{
	1 dict begin
	/dataSource xdf
	[
		0 1 dataSource length 1 sub {
			dup currentdict /dataSource get /exch cvx /get cvx /exec cvx
			/exch cvx names_index /ne cvx [ /pop cvx ] cvx /if cvx
		} for
	] cvx bind
	end
} bdf		
/devn_alt_datasource
{
	11 dict begin
	/convProc xdf
	/origcolorSpaceElemCnt xdf
	/origMultipleDataSources xdf
	/origBitsPerComponent xdf
	/origDecode xdf
	/origDataSource xdf
	/dsCnt origMultipleDataSources {origDataSource length}{1}ifelse def
	/DataSource origMultipleDataSources
		{
			[
			BitsPerComponent 8 idiv origDecode length 2 idiv mul string
			0 1 origDecode length 2 idiv 1 sub
				{
				dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
				origDataSource exch get 0 () /SubFileDecode filter
				BitsPerComponent 8 idiv string /readstring cvx /pop cvx /putinterval cvx
				}for 
			]bind cvx
		}{origDataSource}ifelse 0 () /SubFileDecode filter def		
	[
		origcolorSpaceElemCnt string
		0 2 origDecode length 2 sub
			{
			dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
			1 BitsPerComponent 8 idiv {DataSource /read cvx /not cvx{0}/if cvx /mul cvx}repeat /mul cvx /add cvx
			}for
		/convProc load /exec cvx
		origcolorSpaceElemCnt 1 sub -1 0
			{
			/dup cvx 2 /add cvx /index cvx
			3 1 /roll cvx /exch cvx 255 /mul cvx /cvi cvx /put cvx
			}for
	]bind cvx 0 () /SubFileDecode filter
	end
} bdf
/devn_imageormask
{
 	/devicen_colorspace_dict AGMCORE_gget begin
	CSA map_csa
	2 dict begin
	dup
	/srcDataStrs [ 3 -1 roll begin
		currentdict /MultipleDataSources known {MultipleDataSources {DataSource length}{1}ifelse}{1} ifelse
		{
			Width Decode length 2 div mul cvi
			{
				dup 65535 gt {1 add 2 div cvi}{exit}ifelse
			} loop
			string
		} repeat
		end ] def
	/dstDataStr srcDataStrs 0 get length string def
	begin
	SkipImageProc {
		currentdict consumeimagedata
	}
	{
		save mark 
		AGMCORE_producing_seps not {
			level3 not {
				Operator /imagemask ne {
					/DataSource [ [
						DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
						colorSpaceElemCnt /devicen_colorspace_dict AGMCORE_gget /TintTransform get 
						devn_alt_datasource 1 /string cvx /readstring cvx /pop cvx] cvx colorSpaceElemCnt 1 sub{dup}repeat] def				
					/MultipleDataSources true def
					/Decode colorSpaceElemCnt [ exch {0 1} repeat ] def
				} if
			}if
			currentdict imageormask
 		}{
			AGMCORE_host_sep{
				Names convert_to_process {
					CSA get_csa_by_name 0 get /DeviceCMYK eq {
						/DataSource
							Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul 
							DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
							4 /devicen_colorspace_dict AGMCORE_gget /TintTransform get 
							devn_alt_datasource
						filter_cmyk 0 () /SubFileDecode filter def
						/MultipleDataSources false def
						/Decode [1 0] def
						/DeviceGray setcolorspace
			 			currentdict imageormask_sys
 					}{
						AGMCORE_report_unsupported_color_space
						AGMCORE_black_plate {
							/DataSource
								DataSource Decode BitsPerComponent currentdict /MultipleDataSources known {MultipleDataSources}{false} ifelse
								CSA get_csa_by_name 0 get /DeviceRGB eq{3}{1}ifelse /devicen_colorspace_dict AGMCORE_gget /TintTransform get
								devn_alt_datasource
							/MultipleDataSources false def
							/Decode colorSpaceElemCnt [ exch {0 1} repeat ] def
				 			currentdict imageormask_sys
				 		}
						{
	 						gsave 
	 						knockout_unitsq
	 						grestore
							currentdict consumeimagedata 
						} ifelse
 					} ifelse
				}
				{	
					/devicen_colorspace_dict AGMCORE_gget /names_index known {
	 					Operator/imagemask ne{
	 						MultipleDataSources {
		 						/DataSource [ DataSource devn_sep_datasource /exec cvx ] cvx def
								/MultipleDataSources false def
	 						}{
								/DataSource /DataSource load dstDataStr srcDataStrs 0 get filter_devn def
	 						} ifelse
							invert_image_samples
	 					} if
			 			currentdict imageormask_sys
	 				}{
	 					currentoverprint not Operator/imagemask eq and{
							currentdict imageormask_sys 
							}{
							currentoverprint not
								{
	 							gsave 
	 							knockout_unitsq
	 							grestore
								}if
							currentdict consumeimagedata 
			 			}ifelse
	 				}ifelse
	 			}ifelse
 			}{
				currentdict imageormask
			}ifelse
		}ifelse
		cleartomark restore
	}ifelse
	currentdict /_Filters known {_Filters AGMIMG_flushfilters} if
	end
	end
	end
}def
/imageormask_l2_overprint
{
	currentdict
	currentcmykcolor add add add 0 eq{
		currentdict consumeimagedata
	}{
		level3{ 			
			currentcmykcolor 
			/AGMIMG_k xdf 
			/AGMIMG_y xdf 
			/AGMIMG_m xdf 
			/AGMIMG_c xdf
			Operator/imagemask eq{
				[/DeviceN [
				AGMIMG_c 0 ne {/Cyan} if
				AGMIMG_m 0 ne {/Magenta} if
				AGMIMG_y 0 ne {/Yellow} if
				AGMIMG_k 0 ne {/Black} if
				] /DeviceCMYK {}] setcolorspace
				AGMIMG_c 0 ne {AGMIMG_c} if
				AGMIMG_m 0 ne {AGMIMG_m} if
				AGMIMG_y 0 ne {AGMIMG_y} if
				AGMIMG_k 0 ne {AGMIMG_k} if
				setcolor			
			}{	
				/Decode [ Decode 0 get 255 mul Decode 1 get 255 mul ] def
				[/Indexed 				
					[
						/DeviceN [
							AGMIMG_c 0 ne {/Cyan} if
							AGMIMG_m 0 ne {/Magenta} if
							AGMIMG_y 0 ne {/Yellow} if
							AGMIMG_k 0 ne {/Black} if
						] 
						/DeviceCMYK {
							AGMIMG_k 0 eq {0} if
							AGMIMG_y 0 eq {0 exch} if
							AGMIMG_m 0 eq {0 3 1 roll} if
							AGMIMG_c 0 eq {0 4 1 roll} if						
						}
					]
					255
					{
						255 div 
						mark exch
						dup	dup dup
						AGMIMG_k 0 ne{
							/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop		
							counttomark 1 roll
						}{
							pop
						}ifelse
						AGMIMG_y 0 ne{
							/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop		
							counttomark 1 roll
						}{
							pop
						}ifelse
						AGMIMG_m 0 ne{
							/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop		
							counttomark 1 roll
						}{
							pop
						}ifelse
						AGMIMG_c 0 ne{
							/sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop		
							counttomark 1 roll
						}{
							pop
						}ifelse
						counttomark 1 add -1 roll pop
					}
				] setcolorspace
			}ifelse
			imageormask_sys
		}{
	write_image_file{
		currentcmykcolor
		0 ne{
			[/Separation /Black /DeviceGray {}] setcolorspace
			gsave
			/Black
			[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 1 roll pop pop pop 1 exch sub} /exec cvx]
			cvx modify_halftone_xfer
			Operator currentdict read_image_file
			grestore
		}if
		0 ne{
			[/Separation /Yellow /DeviceGray {}] setcolorspace
			gsave
			/Yellow
			[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 2 roll pop pop pop 1 exch sub} /exec cvx]
			cvx modify_halftone_xfer
			Operator currentdict read_image_file
			grestore
		}if
		0 ne{
			[/Separation /Magenta /DeviceGray {}] setcolorspace
			gsave
			/Magenta
			[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {4 3 roll pop pop pop 1 exch sub} /exec cvx]
			cvx modify_halftone_xfer
			Operator currentdict read_image_file
			grestore
		}if
		0 ne{
			[/Separation /Cyan /DeviceGray {}] setcolorspace
			gsave
			/Cyan 
			[{1 exch sub /sep_tint AGMCORE_gget mul} /exec cvx MappedCSA sep_proc_name cvx exch pop {pop pop pop 1 exch sub} /exec cvx]
			cvx modify_halftone_xfer
			Operator currentdict read_image_file
			grestore
		} if
				close_image_file
			}{
				imageormask
			}ifelse
		}ifelse
	}ifelse
} def
/indexed_imageormask
{
	begin
		save mark 
 		currentdict
 		AGMCORE_host_sep{
			Operator/knockout eq{
				/indexed_colorspace_dict AGMCORE_gget dup /CSA known {
					/CSA get get_csa_by_name
				}{
					/Names get
				} ifelse
				overprint_plate not{
					knockout_unitsq
				}if
			}{
				Indexed_DeviceN {
					/devicen_colorspace_dict AGMCORE_gget /names_index known {
			 			indexed_image_lev2_sep
					}{
						currentoverprint not{
							knockout_unitsq
			 			}if
			 			currentdict consumeimagedata
					} ifelse
				}{
		 			AGMCORE_is_cmyk_sep{
						Operator /imagemask eq{
							imageormask_sys
						}{
							level2{
								indexed_image_lev2_sep
							}{
								indexed_image_lev1_sep
							}ifelse
						}ifelse
					}{
						currentoverprint not{
							knockout_unitsq
			 			}if
			 			currentdict consumeimagedata
					}ifelse
				}ifelse
			}ifelse
 		}{
			level2{
				Indexed_DeviceN {
					/indexed_colorspace_dict AGMCORE_gget begin
				}{
					/indexed_colorspace_dict AGMCORE_gget begin
					CSA get_csa_by_name 0 get /DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and {
						[/Indexed [/DeviceN [/Cyan /Magenta /Yellow /Black] /DeviceCMYK {}] HiVal Lookup]
						setcolorspace
					} if
					end
				} ifelse
				imageormask
				Indexed_DeviceN {
					end
				} if
			}{ 
				Operator /imagemask eq{
					imageormask
				}{
					indexed_imageormask_lev1
				}ifelse
			}ifelse
 		}ifelse
		cleartomark restore
	currentdict /_Filters known {_Filters AGMIMG_flushfilters} if
	end
}def
/indexed_image_lev2_sep
{
	/indexed_colorspace_dict AGMCORE_gget begin
	begin
		Indexed_DeviceN not {
			currentcolorspace 
			dup 1 /DeviceGray put
			dup 3
			currentcolorspace 2 get 1 add string
			0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
			{
			dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
			}for 
			put	setcolorspace
		} if
		currentdict 
		Operator /imagemask eq{
			AGMIMG_&imagemask
		}{
			use_mask {
				level3 {process_mask_L3 AGMIMG_&image}{masked_image_simulation}ifelse
			}{
				AGMIMG_&image
			}ifelse
		}ifelse
	end end
}def
  /OPIimage
  {
  	dup type /dicttype ne{
  		10 dict begin
  			/DataSource xdf
  			/ImageMatrix xdf
  			/BitsPerComponent xdf
  			/Height xdf
  			/Width xdf
  			/ImageType 1 def
  			/Decode [0 1 def]
  			currentdict
  		end
  	}if
  	dup begin
  		/NComponents 1 cdndf
  		/MultipleDataSources false cdndf
  		/SkipImageProc {false} cdndf
  		/HostSepColorImage false cdndf
  		/Decode [
  				0 
  				currentcolorspace 0 get /Indexed eq{
  					2 BitsPerComponent exp 1 sub
  				}{
  					1
  				}ifelse
  		] cdndf
  		/Operator /image cdndf
  	end
  	/sep_colorspace_dict AGMCORE_gget null eq{
  		imageormask
  	}{
  		gsave
  		dup begin invert_image_samples end
  		sep_imageormask
  		grestore
  	}ifelse
  }def
/cachemask_level2
{
	3 dict begin
	/LZWEncode filter /WriteFilter xdf
	/readBuffer 256 string def
	/ReadFilter
		currentfile
		0 (%EndMask) /SubFileDecode filter
		/ASCII85Decode filter
		/RunLengthDecode filter
	def
	{
		ReadFilter readBuffer readstring exch
		WriteFilter exch writestring
		not {exit} if
	}loop
	WriteFilter closefile
	end
}def
/cachemask_level3
{
	currentfile
	<<
		/Filter [ /SubFileDecode /ASCII85Decode /RunLengthDecode ]
		/DecodeParms [ << /EODCount 0 /EODString (%EndMask) >> null null ]
		/Intent 1
	>>
	/ReusableStreamDecode filter
}def
/spot_alias
{
	/mapto_sep_imageormask 
	{
		dup type /dicttype ne{
			12 dict begin
				/ImageType 1 def
				/DataSource xdf
				/ImageMatrix xdf
				/BitsPerComponent xdf
				/Height xdf
				/Width xdf
				/MultipleDataSources false def
		}{
			begin
		}ifelse
				/Decode [/customcolor_tint AGMCORE_gget 0] def
				/Operator /image def
				/HostSepColorImage false def
				/SkipImageProc {false} def
				currentdict 
			end
		sep_imageormask
	}bdf
	/customcolorimage
	{
		Adobe_AGM_Image/AGMIMG_colorAry xddf
		/customcolor_tint AGMCORE_gget
		<<
			/Name AGMIMG_colorAry 4 get
			/CSA [ /DeviceCMYK ] 
			/TintMethod /Subtractive
			/TintProc null
			/MappedCSA null
			/NComponents 4 
			/Components [ AGMIMG_colorAry aload pop pop ] 
		>>
		setsepcolorspace
		mapto_sep_imageormask
	}ndf
	Adobe_AGM_Image/AGMIMG_&customcolorimage /customcolorimage load put
	/customcolorimage
	{
		Adobe_AGM_Image/AGMIMG_override false put
		current_spot_alias{dup 4 get map_alias}{false}ifelse
		{
			false set_spot_alias
			/customcolor_tint AGMCORE_gget exch setsepcolorspace
			pop
			mapto_sep_imageormask
			true set_spot_alias
		}{
			AGMIMG_&customcolorimage
		}ifelse			
	}bdf
}def
/snap_to_device
{
	6 dict begin
	matrix currentmatrix
	dup 0 get 0 eq 1 index 3 get 0 eq and
	1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
	{
		1 1 dtransform 0 gt exch 0 gt /AGMIMG_xSign? exch def /AGMIMG_ySign? exch def
		0 0 transform
		AGMIMG_ySign? {floor 0.1 sub}{ceiling 0.1 add} ifelse exch
		AGMIMG_xSign? {floor 0.1 sub}{ceiling 0.1 add} ifelse exch
		itransform /AGMIMG_llY exch def /AGMIMG_llX exch def
		1 1 transform
		AGMIMG_ySign? {ceiling 0.1 add}{floor 0.1 sub} ifelse exch
		AGMIMG_xSign? {ceiling 0.1 add}{floor 0.1 sub} ifelse exch
		itransform /AGMIMG_urY exch def /AGMIMG_urX exch def			
		[AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub  AGMIMG_llX AGMIMG_llY] concat
	}{
	}ifelse
	end
} def
level2 not{
	/colorbuf
	{
		0 1 2 index length 1 sub{
			dup 2 index exch get 
			255 exch sub 
			2 index 
			3 1 roll 
			put
		}for
	}def
	/tint_image_to_color
	{
		begin
			Width Height BitsPerComponent ImageMatrix 
			/DataSource load
		end
		Adobe_AGM_Image begin
			/AGMIMG_mbuf 0 string def
			/AGMIMG_ybuf 0 string def
			/AGMIMG_kbuf 0 string def
			{
				colorbuf dup length AGMIMG_mbuf length ne
					{
					dup length dup dup
					/AGMIMG_mbuf exch string def
					/AGMIMG_ybuf exch string def
					/AGMIMG_kbuf exch string def
					} if
				dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
			}
			addprocs
			{AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf} true 4 colorimage	
		end
	} def			
	/sep_imageormask_lev1
	{
		begin
			MappedCSA 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or has_color not and{
				{
					255 mul round cvi GrayLookup exch get
				} currenttransfer addprocs settransfer
				currentdict imageormask
			}{
				/sep_colorspace_dict AGMCORE_gget/Components known{
					MappedCSA 0 get /DeviceCMYK eq{
						Components aload pop
					}{
						0 0 0 Components aload pop 1 exch sub
					}ifelse
					Adobe_AGM_Image/AGMIMG_k xddf 
					Adobe_AGM_Image/AGMIMG_y xddf 
					Adobe_AGM_Image/AGMIMG_m xddf 
					Adobe_AGM_Image/AGMIMG_c xddf 
					AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
						{AGMIMG_k mul 1 exch sub} currenttransfer addprocs settransfer
						currentdict imageormask
					}{ 
						currentcolortransfer
						{AGMIMG_k mul 1 exch sub} exch addprocs 4 1 roll
						{AGMIMG_y mul 1 exch sub} exch addprocs 4 1 roll
						{AGMIMG_m mul 1 exch sub} exch addprocs 4 1 roll
						{AGMIMG_c mul 1 exch sub} exch addprocs 4 1 roll
						setcolortransfer
						currentdict tint_image_to_color
					}ifelse
				}{
					MappedCSA 0 get /DeviceGray eq {
						{255 mul round cvi ColorLookup exch get 0 get} currenttransfer addprocs settransfer
						currentdict imageormask
					}{
						MappedCSA 0 get /DeviceCMYK eq {
							currentcolortransfer
							{255 mul round cvi ColorLookup exch get 3 get 1 exch sub} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 2 get 1 exch sub} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 1 get 1 exch sub} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 0 get 1 exch sub} exch addprocs 4 1 roll
							setcolortransfer 
							currentdict tint_image_to_color
						}{ 
							currentcolortransfer
							{pop 1} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 2 get} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 1 get} exch addprocs 4 1 roll
							{255 mul round cvi ColorLookup exch get 0 get} exch addprocs 4 1 roll
							setcolortransfer 
							currentdict tint_image_to_color
						}ifelse
					}ifelse
				}ifelse
			}ifelse
		end
	}def
	/sep_image_lev1_sep
	{
		begin
			/sep_colorspace_dict AGMCORE_gget/Components known{
				Components aload pop
				Adobe_AGM_Image/AGMIMG_k xddf 
				Adobe_AGM_Image/AGMIMG_y xddf 
				Adobe_AGM_Image/AGMIMG_m xddf 
				Adobe_AGM_Image/AGMIMG_c xddf 
				{AGMIMG_c mul 1 exch sub}
				{AGMIMG_m mul 1 exch sub}
				{AGMIMG_y mul 1 exch sub}
				{AGMIMG_k mul 1 exch sub}
			}{ 
				{255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
				{255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
				{255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
				{255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
			}ifelse
			AGMCORE_get_ink_data currenttransfer addprocs settransfer
			currentdict imageormask_sys
		end
	}def
	/indexed_imageormask_lev1
	{
		/indexed_colorspace_dict AGMCORE_gget begin
		begin
			currentdict
			MappedCSA 0 get dup /DeviceRGB eq exch /DeviceCMYK eq or has_color not and{
				{HiVal mul round cvi GrayLookup exch get HiVal div} currenttransfer addprocs settransfer
				imageormask
			}{
				MappedCSA 0 get /DeviceGray eq {
					{HiVal mul round cvi Lookup exch get HiVal div} currenttransfer addprocs settransfer
					imageormask
				}{
					MappedCSA 0 get /DeviceCMYK eq {
						currentcolortransfer
						{4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
						{4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
						{4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
						{4 mul HiVal mul round cvi		 Lookup exch get HiVal div 1 exch sub} exch addprocs 4 1 roll
						setcolortransfer 
						tint_image_to_color
					}{ 
						currentcolortransfer
						{pop 1} exch addprocs 4 1 roll
						{3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div} exch addprocs 4 1 roll
						{3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div} exch addprocs 4 1 roll
						{3 mul HiVal mul round cvi 		Lookup exch get HiVal div} exch addprocs 4 1 roll
						setcolortransfer 
						tint_image_to_color
					}ifelse
				}ifelse
			}ifelse
		end end
	}def
	/indexed_image_lev1_sep
	{
		/indexed_colorspace_dict AGMCORE_gget begin
		begin
			{4 mul HiVal mul round cvi		 Lookup exch get HiVal div 1 exch sub}
			{4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
			{4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
			{4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
			AGMCORE_get_ink_data currenttransfer addprocs settransfer
			currentdict imageormask_sys
		end end
	}def
}if
end
systemdict /setpacking known
{
	setpacking
} if
%%EndResource
currentdict Adobe_AGM_Utils eq {end} if
%%EndProlog
%%BeginSetup
Adobe_AGM_Utils begin
2 2010 Adobe_AGM_Core/doc_setup get exec
Adobe_CoolType_Core/doc_setup get exec
Adobe_AGM_Image/doc_setup get exec
currentdict Adobe_AGM_Utils eq {end} if
%%EndSetup
%%Page: (Page 1) 1
%%EndPageComments
%%BeginPageSetup
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{ userdict /AI11_PDFMark5 /cleartomark load put
userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put}
{ userdict /AI11_PDFMark5 /pdfmark load put
userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse
[/NamespacePush AI11_PDFMark5
[/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5
[{ai_metadata_stream_123}
currentfile 0 (%  &&end XMP packet marker&&)
/SubFileDecode filter AI11_ReadMetadata_PDFMark5
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1.1-111">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/">
+         <dc:format>application/postscript</dc:format>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:xap="http://ns.adobe.com/xap/1.0/"
+            xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/">
+         <xap:CreatorTool>Adobe Illustrator CS2</xap:CreatorTool>
+         <xap:CreateDate>2009-02-09T11:31:58+01:00</xap:CreateDate>
+         <xap:ModifyDate>2009-02-09T11:31:59+01:00</xap:ModifyDate>
+         <xap:MetadataDate>2009-02-09T11:31:59+01:00</xap:MetadataDate>
+         <xap:Thumbnails>
+            <rdf:Alt>
+               <rdf:li rdf:parseType="Resource">
+                  <xapGImg:width>256</xapGImg:width>
+                  <xapGImg:height>76</xapGImg:height>
+                  <xapGImg:format>JPEG</xapGImg:format>
+                  <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgATAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+               </rdf:li>
+            </rdf:Alt>
+         </xap:Thumbnails>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#">
+         <xapMM:DocumentID>uuid:9781C769F82F11DD957788AAD8F65D92</xapMM:DocumentID>
+         <xapMM:InstanceID>uuid:9781C76AF82F11DD957788AAD8F65D92</xapMM:InstanceID>
+         <xapMM:DerivedFrom rdf:parseType="Resource">
+            <stRef:instanceID>uuid:18522BF22EF8DD11B6DFB2F17E203B27</stRef:instanceID>
+            <stRef:documentID>uuid:17522BF22EF8DD11B6DFB2F17E203B27</stRef:documentID>
+         </xapMM:DerivedFrom>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
+         <photoshop:ColorMode>3</photoshop:ColorMode>
+         <photoshop:History/>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>
%  &&end XMP packet marker&&
[{ai_metadata_stream_123}
<</Type /Metadata /Subtype /XML>>
/PUT AI11_PDFMark5
[/Document
1 dict begin /Metadata {ai_metadata_stream_123} def
currentdict end /BDC AI11_PDFMark5
%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0
Adobe_AGM_Utils begin
Adobe_AGM_Core/page_setup get exec
Adobe_AGM_Core/capture_currentpagedevice get exec
Adobe_CoolType_Core/page_setup get exec
Adobe_AGM_Image/page_setup get exec
%%EndPageSetup
Adobe_AGM_Core/AGMCORE_save save ddf
1 -1 scale 0 -346.999 translate
[1 0 0 1 0 0 ]  concat
% page clip
gsave
newpath
gsave % PSGState
0 0 mo
0 346.999 li
1190.59 346.999 li
1190.59 0 li
cp
clp
[1 0 0 1 0 0 ] concat
117.664 249.537 mo
115.487 248.393 95.3335 232.718 94.9785 232.733 cv
92.7925 232.826 86.3252 242.936 84.0562 245.336 cv
78.8462 250.847 73.7607 253.542 72.2935 257.938 cv
91.8438 277.571 121.828 294.962 159.673 294.907 cv
197.007 294.853 227.463 277.275 246.213 257.099 cv
237.566 249.501 231.385 239.439 222.688 231.893 cv
200.563 260.887 152.141 267.663 117.664 249.537 cv
cp
1072.96 183.161 mo
1069.04 134.177 972.732 145.522 967.938 187.362 cv
979.21 187.853 989.543 189.282 1000.71 189.884 cv
1004.07 167.746 1052.97 172.605 1036.83 200.806 cv
1011.5 208.045 988.711 200.9 968.777 214.249 cv
949.42 227.211 949.312 262.449 965.417 276.423 cv
983.789 292.364 1015.44 281.098 1026.75 268.861 cv
1027.02 273.635 1028.37 277.329 1029.27 281.464 cv
1040.19 281.464 1051.12 281.464 1062.04 281.464 cv
1052 247.624 1075.64 216.563 1072.96 183.161 cv
cp
834.347 188.202 mo
831.496 215.83 855.318 223.207 874.676 230.212 cv
883.944 233.566 899.216 236.272 900.722 243.655 cv
904.187 260.636 872.965 264.786 859.553 256.258 cv
853.511 252.416 853.258 246.31 846.949 241.135 cv
836.673 242.9 826.02 244.29 815.862 246.176 cv
824.822 299.207 931.887 296.894 936.01 243.655 cv
937.918 219.014 917.988 209.959 897.361 203.326 cv
887.05 200.011 867.627 198.185 867.114 187.362 cv
866.465 173.664 890.315 171.611 903.242 178.12 cv
909.547 181.295 910.76 187.353 915.005 189.884 cv
924.697 188.093 934.158 186.071 944.412 184.842 cv
937.529 135.568 839.043 142.686 834.347 188.202 cv
cp
163.875 107.544 mo
129.846 105.777 105.619 128.293 94.9785 157.116 cv
91.042 156.572 84.918 158.214 82.376 156.275 cv
81.9595 139.498 83.0938 128.673 83.2158 113.426 cv
71.8979 120.709 60.8799 131.561 50.4487 141.992 cv
39.7305 152.71 28.3745 163.109 18.5215 173.919 cv
41.0952 192.759 61.1343 218.305 83.2158 234.413 cv
83.1875 218.077 81.9224 206.733 82.376 189.043 cv
86.8569 189.043 91.3379 189.043 95.8188 189.043 cv
105.267 220.015 129.191 243.992 169.756 239.454 cv
199.332 236.146 216.002 214.026 225.208 189.043 cv
229.044 189.408 234.459 188.193 236.971 189.884 cv
237.443 207.288 236.043 218.351 236.131 234.413 cv
256.226 216.419 278.91 193.734 298.305 172.239 cv
277.22 152.715 257.723 131.603 236.131 112.585 cv
235.604 128.013 238.531 141.457 236.131 157.116 cv
232.21 157.116 228.289 157.116 224.368 157.116 cv
215.628 130.532 195.157 109.169 163.875 107.544 cv
cp
1170.42 132.75 mo
1174.93 92.6963 1103.86 97.0156 1103.21 131.91 cv
1110.07 133.73 1118.88 133.607 1125.89 135.271 cv
1123.64 121.726 1145.51 115.46 1147.74 127.709 cv
1149.66 138.281 1132.93 147.278 1125.05 153.755 cv
1109.22 166.772 1097.29 175.587 1093.97 194.925 cv
1115.81 194.925 1137.66 194.925 1159.5 194.925 cv
1160.48 188.339 1162.72 183.024 1163.7 176.44 cv
1152.78 176.44 1141.86 176.44 1130.93 176.44 cv
1141.5 162.071 1167.96 154.686 1170.42 132.75 cv
cp
463.823 51.2515 mo
423.245 53.4082 395.704 65.6802 372.242 88.2202 cv
350.11 109.482 333.479 139.475 331.072 173.079 cv
324.933 258.789 383.741 298.306 465.503 293.227 cv
540.949 288.54 566.031 227.583 563.805 141.992 cv
525.437 141.992 487.068 141.992 448.699 141.992 cv
446.654 160.689 443.366 182.566 442.818 199.966 cv
460.743 200.524 480.905 198.847 497.43 200.806 cv
496.612 225.762 478.18 235.873 459.622 237.774 cv
433.265 240.474 412.459 226.915 403.329 208.367 cv
385.779 172.716 406.732 130.137 432.735 116.787 cv
455.405 105.148 488.102 109.767 522.636 109.225 cv
525.261 90.8457 526.691 71.2705 529.357 52.9321 cv
506.556 52.5078 486.571 50.0425 463.823 51.2515 cv
cp
234.45 99.9829 mo
236.877 97.5566 246.327 90.8779 246.213 88.2202 cv
246.105 85.6963 233.958 77.1836 229.409 73.937 cv
210.905 60.7314 186.125 51.1035 157.153 51.2515 cv
136.822 51.3555 119.82 56.355 103.38 64.6948 cv
97.7813 67.5352 72.0601 83.6055 72.2935 89.0601 cv
72.373 90.9224 81.8877 97.8145 84.0562 99.9829 cv
88.9297 104.856 91.4717 107.916 94.9785 111.746 cv
110.656 97.6343 133.008 84.1777 161.354 84.8594 cv
188.472 85.5117 208.859 98.792 223.528 112.585 cv
227.055 107.29 229.595 104.838 234.45 99.9829 cv
cp
650.345 61.334 mo
612.505 80.8486 587.504 112.492 578.929 161.317 cv
565.98 235.039 608.083 288.694 671.35 293.227 cv
726.54 297.18 760.177 276.371 785.615 244.495 cv
804.927 220.299 819.205 187.081 815.862 141.152 cv
814.438 121.573 807.413 102.675 799.059 89.9004 cv
780.93 62.1777 742.297 43.6064 695.715 47.8906 cv
677.252 49.5889 663.646 54.4741 650.345 61.334 cv
cp
0.877441 0 mo
397.437 0 794.029 0 1190.59 0 cv
1190.59 115.667 1190.59 231.33 1190.59 346.999 cv
793.734 346.999 396.897 346.999 0.0371094 346.999 cv
0.0371094 232.173 0.0371094 117.346 0.0371094 2.52051 cv
-0.0351563 1.32813 -0.101563 0.141113 0.877441 0 cv
cp
false sop
/0 
<<
/Name (Black)
/0 
[/DeviceCMYK] /CSA add_res
/CSA /0 get_csa_by_name
/MappedCSA /0 /CSA get_res
/TintMethod /Subtractive
/TintProc null
/NComponents 4 
/Components [ 0 0 0 1 ] 
>>
/CSD add_res
1 /0 /CSD get_res sepcs
0 sep
ef
668.829 113.426 mo
644.736 133.127 630.34 201.173 657.906 227.691 cv
670.881 240.173 698.574 241.237 715.04 232.733 cv
753.499 212.87 764.906 123.76 723.441 105.864 cv
717.717 103.394 706.651 102.24 700.757 102.503 cv
686.892 103.122 676.364 107.264 668.829 113.426 cv
cp
695.715 47.8906 mo
742.297 43.6064 780.93 62.1777 799.059 89.9004 cv
807.413 102.675 814.438 121.573 815.862 141.152 cv
819.205 187.081 804.927 220.299 785.615 244.495 cv
760.177 276.371 726.54 297.18 671.35 293.227 cv
608.083 288.694 565.98 235.039 578.929 161.317 cv
587.504 112.492 612.505 80.8486 650.345 61.334 cv
663.646 54.4741 677.252 49.5889 695.715 47.8906 cv
cp
0.913725 0.807843 0.0470588 0.00392157 cmyk
ef
223.528 112.585 mo
208.859 98.792 188.472 85.5117 161.354 84.8594 cv
133.008 84.1777 110.656 97.6343 94.9785 111.746 cv
91.4717 107.916 88.9297 104.856 84.0562 99.9829 cv
81.8877 97.8145 72.373 90.9224 72.2935 89.0601 cv
72.0601 83.6055 97.7813 67.5352 103.38 64.6948 cv
119.82 56.355 136.822 51.3555 157.153 51.2515 cv
186.125 51.1035 210.905 60.7314 229.409 73.937 cv
233.958 77.1836 246.105 85.6963 246.213 88.2202 cv
246.327 90.8779 236.877 97.5566 234.45 99.9829 cv
229.595 104.838 227.055 107.29 223.528 112.585 cv
cp
ef
529.357 52.9321 mo
526.691 71.2705 525.261 90.8457 522.636 109.225 cv
488.102 109.767 455.405 105.148 432.735 116.787 cv
406.732 130.137 385.779 172.716 403.329 208.367 cv
412.459 226.915 433.265 240.474 459.622 237.774 cv
478.18 235.873 496.612 225.762 497.43 200.806 cv
480.905 198.847 460.743 200.524 442.818 199.966 cv
443.366 182.566 446.654 160.689 448.699 141.992 cv
487.068 141.992 525.437 141.992 563.805 141.992 cv
566.031 227.583 540.949 288.54 465.503 293.227 cv
383.741 298.306 324.933 258.789 331.072 173.079 cv
333.479 139.475 350.11 109.482 372.242 88.2202 cv
395.704 65.6802 423.245 53.4082 463.823 51.2515 cv
486.571 50.0425 506.556 52.5078 529.357 52.9321 cv
cp
ef
700.757 102.503 mo
706.651 102.24 717.717 103.394 723.441 105.864 cv
764.906 123.76 753.499 212.87 715.04 232.733 cv
698.574 241.237 670.881 240.173 657.906 227.691 cv
630.34 201.173 644.736 133.127 668.829 113.426 cv
676.364 107.264 686.892 103.122 700.757 102.503 cv
cp
1 /0 /CSD get_res sepcs
0 sep
ef
1130.93 176.44 mo
1141.86 176.44 1152.78 176.44 1163.7 176.44 cv
1162.72 183.024 1160.48 188.339 1159.5 194.925 cv
1137.66 194.925 1115.81 194.925 1093.97 194.925 cv
1097.29 175.587 1109.22 166.772 1125.05 153.755 cv
1132.93 147.278 1149.66 138.281 1147.74 127.709 cv
1145.51 115.46 1123.64 121.726 1125.89 135.271 cv
1118.88 133.607 1110.07 133.73 1103.21 131.91 cv
1103.86 97.0156 1174.93 92.6963 1170.42 132.75 cv
1167.96 154.686 1141.5 162.071 1130.93 176.44 cv
cp
0.913725 0.807843 0.0470588 0.00392157 cmyk
ef
201.683 144.513 mo
192.101 154.255 182.006 163.484 171.436 172.239 cv
180.612 183.507 191.943 192.621 203.363 201.646 cv
203.363 195.765 203.363 189.884 203.363 184.002 cv
217.927 184.002 232.49 184.002 247.053 184.002 cv
247.053 176.72 247.053 169.438 247.053 162.157 cv
232.769 161.598 216.248 163.275 203.363 161.317 cv
202.349 156.169 205.459 146.898 201.683 144.513 cv
cp
115.143 162.157 mo
100.58 162.157 86.0166 162.157 71.4531 162.157 cv
71.4531 169.438 71.4531 176.72 71.4531 184.002 cv
85.7383 184.561 102.258 182.884 115.143 184.842 cv
115.143 190.443 115.143 196.044 115.143 201.646 cv
126.515 193.133 135.993 182.728 146.23 173.079 cv
135.66 163.765 126.398 153.143 115.143 144.513 cv
115.143 150.394 115.143 156.275 115.143 162.157 cv
cp
224.368 157.116 mo
228.289 157.116 232.21 157.116 236.131 157.116 cv
238.531 141.457 235.604 128.013 236.131 112.585 cv
257.723 131.603 277.22 152.715 298.305 172.239 cv
278.91 193.734 256.226 216.419 236.131 234.413 cv
236.043 218.351 237.443 207.288 236.971 189.884 cv
234.459 188.193 229.044 189.408 225.208 189.043 cv
216.002 214.026 199.332 236.146 169.756 239.454 cv
129.191 243.992 105.267 220.015 95.8188 189.043 cv
91.3379 189.043 86.8569 189.043 82.376 189.043 cv
81.9224 206.733 83.1875 218.077 83.2158 234.413 cv
61.1343 218.305 41.0952 192.759 18.5215 173.919 cv
28.3745 163.109 39.7305 152.71 50.4487 141.992 cv
60.8799 131.561 71.8979 120.709 83.2158 113.426 cv
83.0938 128.673 81.9595 139.498 82.376 156.275 cv
84.918 158.214 91.042 156.572 94.9785 157.116 cv
105.619 128.293 129.846 105.777 163.875 107.544 cv
195.157 109.169 215.628 130.532 224.368 157.116 cv
cp
ef
115.143 144.513 mo
126.398 153.143 135.66 163.765 146.23 173.079 cv
135.993 182.728 126.515 193.133 115.143 201.646 cv
115.143 196.044 115.143 190.443 115.143 184.842 cv
102.258 182.884 85.7383 184.561 71.4531 184.002 cv
71.4531 176.72 71.4531 169.438 71.4531 162.157 cv
86.0166 162.157 100.58 162.157 115.143 162.157 cv
115.143 156.275 115.143 150.394 115.143 144.513 cv
cp
1 /0 /CSD get_res sepcs
0 sep
ef
203.363 161.317 mo
216.248 163.275 232.769 161.598 247.053 162.157 cv
247.053 169.438 247.053 176.72 247.053 184.002 cv
232.49 184.002 217.927 184.002 203.363 184.002 cv
203.363 189.884 203.363 195.765 203.363 201.646 cv
191.943 192.621 180.612 183.507 171.436 172.239 cv
182.006 163.484 192.101 154.255 201.683 144.513 cv
205.459 146.898 202.349 156.169 203.363 161.317 cv
cp
ef
944.412 184.842 mo
934.158 186.071 924.697 188.093 915.005 189.884 cv
910.76 187.353 909.547 181.295 903.242 178.12 cv
890.315 171.611 866.465 173.664 867.114 187.362 cv
867.627 198.185 887.05 200.011 897.361 203.326 cv
917.988 209.959 937.918 219.014 936.01 243.655 cv
931.887 296.894 824.822 299.207 815.862 246.176 cv
826.02 244.29 836.673 242.9 846.949 241.135 cv
853.258 246.31 853.511 252.416 859.553 256.258 cv
872.965 264.786 904.187 260.636 900.722 243.655 cv
899.216 236.272 883.944 233.566 874.676 230.212 cv
855.318 223.207 831.496 215.83 834.347 188.202 cv
839.043 142.686 937.529 135.568 944.412 184.842 cv
cp
0.913725 0.807843 0.0470588 0.00392157 cmyk
ef
985.581 245.336 mo
985.816 249.693 988.654 255.782 993.983 257.938 cv
1015.86 266.791 1033.64 242.015 1031.79 221.811 cv
1016.6 226.935 984.439 224.199 985.581 245.336 cv
cp
1062.04 281.464 mo
1051.12 281.464 1040.19 281.464 1029.27 281.464 cv
1028.37 277.329 1027.02 273.635 1026.75 268.861 cv
1015.44 281.098 983.789 292.364 965.417 276.423 cv
949.312 262.449 949.42 227.211 968.777 214.249 cv
988.711 200.9 1011.5 208.045 1036.83 200.806 cv
1052.97 172.605 1004.07 167.746 1000.71 189.884 cv
989.543 189.282 979.21 187.853 967.938 187.362 cv
972.732 145.522 1069.04 134.177 1072.96 183.161 cv
1075.64 216.563 1052 247.624 1062.04 281.464 cv
cp
ef
1031.79 221.811 mo
1033.64 242.015 1015.86 266.791 993.983 257.938 cv
988.654 255.782 985.816 249.693 985.581 245.336 cv
984.439 224.199 1016.6 226.935 1031.79 221.811 cv
cp
1 /0 /CSD get_res sepcs
0 sep
ef
222.688 231.893 mo
231.385 239.439 237.566 249.501 246.213 257.099 cv
227.463 277.275 197.007 294.853 159.673 294.907 cv
121.828 294.962 91.8438 277.571 72.2935 257.938 cv
73.7607 253.542 78.8462 250.847 84.0562 245.336 cv
86.3252 242.936 92.7925 232.826 94.9785 232.733 cv
95.3335 232.718 115.487 248.393 117.664 249.537 cv
152.141 267.663 200.563 260.887 222.688 231.893 cv
cp
0.913725 0.807843 0.0470588 0.00392157 cmyk
ef
%ADOBeginClientInjection: EndPageContent "AI11EPS"
userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse

%ADOEndClientInjection: EndPageContent "AI11EPS"
% page clip
grestore
grestore % PSGState
Adobe_AGM_Core/AGMCORE_save get restore
%%PageTrailer
[/EMC AI11_PDFMark5
[/NamespacePop AI11_PDFMark5
[
[/CSA [/0 ]]
[/CSD [/0 ]]
] del_res
Adobe_AGM_Image/page_trailer get exec
Adobe_CoolType_Core/page_trailer get exec
Adobe_AGM_Core/page_trailer get exec
currentdict Adobe_AGM_Utils eq {end} if
%%Trailer
Adobe_AGM_Image/doc_trailer get exec
Adobe_CoolType_Core/doc_trailer get exec
Adobe_AGM_Core/doc_trailer get exec
%%EOF
%AI9_PrintingDataEnd

userdict /AI9_read_buffer 256 string put
userdict begin
/ai9_skip_data
{
	mark
	{
		currentfile AI9_read_buffer { readline } stopped
		{
		}
		{
			not
			{
				exit
			} if
			(%AI9_PrivateDataEnd) eq
			{
				exit
			} if
		} ifelse
	} loop
	cleartomark
} def
end
userdict /ai9_skip_data get exec
%AI9_PrivateDataBegin
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Adobe Illustrator(R) 10.0
%%AI8_CreatorVersion: 12.0.1
%%For: (stephan heller) (heller & partner)
%%Title: (GOsa-logo.eps)
%%CreationDate: 09.02.2009 11:32 Uhr
%AI9_DataStream
%Gb!T<m?/F/Z/r\"hOu/P\3\sDJ6cIZ<V.q`L9PqtM@<AQeQlMe",#hU_ScE[!(2ThqE644X1Nq__2PSZV6us#5Z_SuAS%J2W%7pp
%o&RddDKW?hh7Qkir&d!_S4g0#9PS4(_W at O?:]@m!Y1Xg/e`5.[L6U`PV'OC,7?Q0bA&i`Z8p%^JcgPb at ec+BJ4`>MUoC[.;h*"QZ
%^W]a#S(S8=b``!BQHSqsac#7srb;"8nuDI=>qDK0H@%a.-fm=!S,FI8J(UG*](<Tn^KSmKG?<$NFDe6fh;\-g2l[DZrdD-1K4E,=
%^s)VDs8:@Ah/:!APl[I(l*rA23j\B(FZ!JU?5JGiT)Rj-Cq"2q`:d-9qWg*(5C$6Y)t09 at CcgB)egjFEYt9tFa[L86]3F]g^SIdE
%g\j&;7ekl_gC5*Fd]#o<l"fdgs7FI`?%`0$B)#_/(;Ai+/?qc!e%C$O_'q.Q?`$D$i,7,oRsW/)8gZ";n!i(VEjfmSeX<JX7?V<J
%fKuQ-QRt?7-FD=5WXA&)dh3J)AP8WEG"CN.UA;H8IX2JTbSR>YHM:8?r,+5j,YYZDpPWCOEar>]F;^:p]Gd\^C6d_h]4J>I at C=ag
%N[M$#NppY/eL]H%).pIM&I1\.ag2V-5MP$OH[pLW]VC(M-["/"qY'@Np$>>Xm3d.jBia,ps"',$R68=^^fh'/687?(`ptXI:oV<-
%.Q^IE4"A;/#_(tEC3p3(^>1DZ(9?V2((*.0-<Do$@Cs&7Z!:j3X\Z6SEBX)<r_H\9WqZC&eZs(u&*Im-ERJt,k.OOZrPuP)bLLDp
%O_&ZuVb%>P?8UU%@^_ml:W`a`Ir'R/?@:GT`)<VNo!p=Ill;YDc[Dk%I'o8aXlWi(p$QqEhV,"]8QD(h.SE[)-)o%-3qZuD7iLP]
%j7$Gpk=F\SWVDM"UcL^febM4PStGW"q)N/d;r4'?bEBQ:;r4-A[?#@0r$jolUY]QXJ):<KHmTT[`+Mtf9n&pbO"93GBt,?NF5:.8
%g6ZU71U";45'&!7PE*j%nX8_*.pKP2cDf7Aq+8PJnX25_.GMLaaLTGqV5R;OZhDn6/,.2untraWF0?faTat%@I=10JW^0puhG]F(
%PuM"\f<@k9qf7+4jqUsqqWG2*c5&U-MX0</C/Ij&En0tGUW3?pp\=8>;uTb]Uf+aK\`h2$HZH9:l+B'_f9]D1#AL\/O%c^:]lhkO
%Qg<ZfW>+5pT?9S!nsM=>h<9\c[^R9BSBdekp)*L*nRs01MA4$][gTB<Q+M(7;V-1oDWKSg`32m\-^C<08([`d?Q[G$>,J#sFfr$t
%&Z5+qr:\^EI7@#F[J#pJjj[dIdHtr2j,^m#%!bM7[HsaFl[^%$8[<On%F;*<f?^MXC/8>;H14hIU1k]PVK_l<IH7qFpTOE14[JWa
%O8`-$<Me=GX$5fPYNsog?+5m:7.9cOqKVNsYPVCLN1O9ZBM8B*O-_Nm\pr7#g-*rX;g3Ui^$<#?dT<M'bKochH826YgLgb*:?m\R
%+9"tfb_9<ReP#^JqipK8A'-m`bJG#TrpW^1fEp8OLFjCHdl_]jUj at m&Wp,c?),QGi1P^If4QEiRTY032\Pj%=A8LaIg]!Sp*7Dp9
%"+Qt!Ah(,/Nm[lHDTqc?a%FN7<E>;n>>1sUQTQ[gkhU76^?-)anYRo,g5\$1]ukTXHm3Yb9&oi:1,mS9a[kIqNBn1$nW*(FUtesn
%b3=>(jBSMI*hr9^'eV88Y!lhXB?(:S8m$5jl"qi4p=3q]HV<67j1/Y;G(7uYG0tV*07XcV@^+s$mrIi;5PGcaSR/jE?HMP6N*<&]
%?%eRgets6dVF[>dCDEA_A)[XQdiuirnn>#J<C/2,mS?<j9VCqLeB,Z&aPepF!EoiUU!i3\!fk\0`a+Kf-a_?gZ^PPf7!HtPbW6?8
%QA:V73u&hmW=Pi!Hlf_nV>,k5dOnEEQ`8s!/\TMV=nu3HXk,T%YsinX`4X`iQNgd,3a-[\:[ci*rXa.NZ'M.g7\-RO<Vr!2Q?:\f
%5LS7EOTd3(Y"-aA`HYN\lJWhIHJ!7omLI#*;!Q1XAM/dH^M.FFcectrpT=2R0L_P?lgCiNjsf&13kqC)X+!Z;CKpF7p25",Xn*\K
%V9bs&k2AiT9lTNRo2`KMVp*q3QtoRc*Qq5c$Ue1U.X^EMQKio-D84,`Md7>q<KYs[gB1TZ%+L?<Kdt*lYA*lB/&r2CEhV*%<9'S%
%BiGctFP][<iM1(e1"Ap4JVpiV]A:&rTbhRnIY;g;V:SF[;h`a^![$;k=(>q$hYIG;N<9=Z;)K9!rj.Y3"+MeFD-&[g.YG,LB^F*l
%*p_BIkb1J(]Zj[Yb1t at -9UqGc48WF(8LJYO>AXdi'T-=6F4fVPm\M%L4OlE7TYlEG/uu(["(0ltJjSL"In(cZWuP63[t"EaFQlu4
%fX?%N5B36kI8;M[Fp;)TTbcA(6XtnE[[3VhN-?R<lg5DP;Vr,9C7WgHL46M=E:6`ElcOMU471&U;:rqAd1_A%(OaNXIWaLmV'/W7
%(GTW(i_t]i5o)EP4u77C_IVf'bKX3o at SLDb<g.=mj`Ap(96#UZm<liESOS6!X5thh at 25E;NPn=Jo^Q.ifu8n.o%k=r%V=<_@)6`B
%"itpV?/L*e"j*0kT33DtcrTu+4@;-u(km"eqp7\PDDL[_FH&FYHTPYSDdVAa9FeCD7?VG3n801LK(pXV_`7p'dXT`k^'>QQmQ5 at 8
%frS%8H/Ql$3/8m*43Z=XV[))R33U]crS!<KBoiYr5HeL-Y(o2 at 4TTSZ<]:qle5Bf\Kgqsu:5R1X8q$>HD:$>Mj/=4 at XQICV,PU'I
%bP.Z"a-Y)R?FPuI4qiYUC\&I0LA+p;Vu<",1JFdqJ<?bYB\e"FQ(mo?"M%VRM*/(rIA$2'.'c41l<i`+N\!P=Ma#kgGH6WsDsC7S
%HMs;,pEG6<Q5f1s?M%+8mjq6$,/(oA#J5n3s'<+4G6c\Sm4<<$Kf1;XIFKk"gqZZgRl"]4;86U(N;f#%N!8tSV59L_A*Ci&R2\Qa
%>-S6)jh8[`:CcjeG!9WlEK'.bGDBqJn*[;8P.>_g'sQ983fVV]1$i!p,.2. at q@uGP<]tg_!3U*+e:"rtG5j\$4qE%q5gl6.[2=lZ
%@D2rWWT:ok^!ACD%!)-G@`!p\bUcKU1[R)HHf*jOqR6%u\_dd,hUCZ)gWOKtmCGA[]j/$6GAWVfF]XIOWS\^+CKe<-C"r8`EsLn"
%HYjd(b4OB$e>W!"jm%^N1]$NeIEUZXSNjH+[p:Z=2gVZS06c83qn%h/6-8eTDqCXgXEZ!IqH!%6+5SU<E9e%hp"ec\l?YU>3k8F$
%2Tb\tT$lF?D_M.AbkL!?:FDKug"if6%Gm\i^K^&onSGK+k2]Y5B)@Y2Me06+g9J,o9ia3rAhj=1\%9C at s6"8Yg])<+^:IO#iq;;P
%F*9h<n/Uo[4T*n[0=H):O3..^os1(PrMKC%0jAN2X'N%oRd0D!Il,nU^GL-ns)QR_Qa8:)-oWl>>iJaog8qHDc2?$8oPcuu/f-J$
%g#h=(*om/orV\(c^*gGYmQZ.,mmLQa[jsm73;]2W*=1ZrhQ:tuhnY27mJd+<?7_CD^X9UKJ%<6t0,M7T*oqqhI=DlZjR[ZuXDS^A
%);R:5Npc82ferY6p-AJ#b;&l(O**2obr**+2PR='r3+=Fb at TU@](Y3&Fd;kBP1['oX?6PdbLpX=9r,IlM6pp!<lqBW0K&a7?[PUd
%B1qc]oOgE6*,dcZnH%Kmk`='8:-33gGPE&4rKh*%)a4)ICAlUR/s>CmVgj!,T<58.gT/)<P<A_cG2":W)a/P_\D8\T:Qm,D7u&0M
%q/M.Dmma3=)Pc at X:.G108UgShMgrd:^S0ni,Z!8BJ,*lK>bUi2mm])#e``F&2u3D#Gm;OO<Ru[hpFCJb%.><'R'8:Cmd^s+*e02?
%(Ad&EUYt`,n)gBh000=84F`Cn?8$L!"/uM5'T2pNW_KM&e?1dTs(IlVcr&gdK=B)$O5=R at nDTeM"rMTmR.K>kZgARBrpe8!DqA&b
%o]GV+Va'&k=1EY_YI\"EhX)6boA>[PZJEh*h[K$*N'Eu(ItX0DdR$Nh--ou1rEVVS^MFh%qt,B?Frroo[_(G7]\[.?UdbTbT4c>/
%:WrIf4`i3AVNS?Wljg1IUXH\XaJT3d,D6.B+trmq`:1!aL=F!8\nbQQ=8/s^>i0R]>jU`1C\*e*P5>3peXMc'J!=7UZccqO(uRWW
%affOEF8=bX5KhQ+94$u\k=71cUlU<%57`OqO\m=g at EaAiGUsj7l#n3l$iZK$jo5Q9h-L'Q0-#tdZ5N"pMtq;I(IJB[YcGHeOdGAs
%r:K=;HESEeIZ0T15$unhl\F<^W_B"4f??u at p8>m[ro7KhfFiYhA_F^946IYgeAl0 at oC4PqZ(q6.bNceAo>%rO4D%/l^@l<q0D:V@
%Wp/\:q9OPIpb.ZrrVCCnDraPb?TeETR/5Mfgc#&_(%S&JPRmL!o'nrJg&f3&i%uSU?,SF5B7l],<P+/]IDD4%(G4\tDZNq/`E8W#
%[Um0ZDNFYMc?>h?@aAquhKM(V?6tfIrAsal`ldi2QfC=gH"B\?DVONHmH5hl^A3&H]Y%G7B:"P<@fN9o9VrW[Xs,*'29G1;lK2u-
%dj4D5)qGcnC4CN8f^G0O[_^bNbQ#_$[_#c"r,j."fMLtEJXW_3ZVUElFF(a*(N].]Kam;CDP,]t at IjWd@^kK$`f`t95_+Ph$q9H(
%13quE2pLc#-Ro"3>lUY$2G0bM4l5&_2jjVeT)hS;fuu?ViGNX^\"*+:=XR[Fm'j=ODDMBLk?kI!`>,<VHL'd,g\p5[[_5;qr(<C6
%0=!^@n"iT2XP[Ob6.26>j3?dRg9!"9PXT#=q^Kd?JHnaO$p7)80ec"=RTt'(!_eo<<KleCg[ur_hX;]GG_9+JDRLK"._Tiq9H80,
%$38 at 82tK2b\XY6aX*MY5L0`rb`<P[MkP$db^Yot^6O:_uY_SKi!s]V)lg7\n'tTprfsg;G_<iBr=T[4E[N4o::akRV<8Vok%`KP9
%C&lTZXQt at UYl:>U.J4dkZ`=83EjiPoNUE%!BrBQn at C"EYii%l!R3STc*\$Q_Id,t+pSXP/U$j8s3E:@]Wq*cq.RVpgaG9=cZ:>:%
%aWHg^H7pYZ=q at I4<.Bt]h6BW1bZ<!Zmh*:tm?+[jg.."V-*)0,b/n*=G.6>M\__f`_O4nV*CK2p6gWG&XNrkurG?sChI%]*s-k7Q
%Nlg5Q(sWW%3@<I.>&5elS56''g,<>ff9!W3+E*@SJE$G"od.os'/&NHX#iGtMli612_r=&C'40QqrRTF^U>cCoaJi1-$;l3k at H#3
%2cmIZiKgN7Z`pudBM>PGG(_T4D`6 at 9lnhEuBcDS.i@XYgDQnDhoB\Z at iF]I2O(c@:,oA;)lb23?T;LDI>C.d`r&!MY0Y;a@<3:AO
%?=T/U"!Q*rL'_<KjSVP2pCe"4F(2*@p%>J5OR2!>=eK&oOt?(/@9th'`Q`. at i5;=C!rC)`n+\$aqKfDo^qC$0Cj3GBhp+-X8X3n7
%'GKnYE!JE37C1d0Bp>MEk3Eaeet*hO'+6-ukO^G'q].%t[o_V_Q4``iEKfl11$@SCqb)kGH`/4(%*+7 at 7:s4NT>YA8e"0R,oNnQR
%I(!kh=:`i.5/"tlI']>m\_etgc$Zo\KlbW-Z&eOhXo$]T/M1V)LZQn2S`"p;F8K[1D)q<8VgL1tG5TS%.C]_M]'A-_:65P6qo-:U
%X`5-Nfd)8mBC9p+SDn?o,nDV>^0R?b;^#RYYs9.UJ;bEZClodC!hGQ[YKPUBG=$*D$K)U'Ol[1nqn\F:U>8#k^(72u!N*MrS0,Gt
%*HM)aif<=pcjmR7"SIlBQpk>bp>`48C$2HPS*flpFincgCj1*fD;3&AY_-1EqrBquOW at m5;oFkFX6'Ugqg=!.&2 at BZK\;p9,j>lr
%<i<uA)NH]`G<AB;]8nc/_p&K:Of6rSHbKQ"SRS=g*E#nBR.9c[Hr)a5em_V5j'XAV_AMCZ1$(Q?D*74O$8Hr$FBV!k9o0F,Em"&e
%I_lg+_<ut#L#D7ad9Feh^8I0VmF?CSE"!>Ylat^FK]\Psh9L?6a12i2fkTVa[jS,/]8('9^)c92:LDs%3&JaXpM[<4`h)]MRD/X;
%GE],>Df9fWoP]g9B(6bKc!%2D7=U>mA[M:#QW(Fr:Uo82N:0%[Sp[aMrI)3Ilp%k&pd%5qe):#5"nLDK,;]+S1Hnl8IUXcW$="9]
%I=4,%qXP9q9?]?:ld\N9L%^WRk9"#9?oP0o+$ckW8GVj`\FkhonA?YKpu0^EIi at .&rp<HEjD'jIa*_.BnDgN]r/!4.\>oEP]B".r
%gt4ZSpJ&1K`m/-uh\,he??/6pg at D6boB0J,.U2JgY[;U;GWt-NV5nFik3?qlkV)OA"&J3:?0'_*AmCb0f"63-Nf2[.H;up\[\Yc3
%m5V4'rkKU&09)-RNNI?R<F/>IYoq=^f+?BLa;3I]VH'#uQHU-[6tB"UcH?P.)*:T7P at V(2K2(nT1HYR_>+L7N"6m'p"WY`V=]p_i
%T"2cT>U%a.9oAoR>1-kr>[\:Mfs*D*pY`BuAVglaI$A::\4G"#F!]D-jH-:ENnpaU@;8J6j%WPF2rgjM]Ke-/Y:JRn"b3VUaNU"a
%bBYI([fZNoXN6PEMl]1aDPeE:BpqDb=L]e#TSkNTikUL/P at L-4N7/2u/5eQQr:*2E=D(`S7PRan`[,o%,Aj88$KSCubn::o>ZMSm
%S/6304s/J#[:=e,9;Z$HLQqS?OK!g$KGp4F2eOF;<J.t))WNd0TU3!J$V[fH#g->?S/#Q=M]o!t0pT,q=Um,Qiamsljs.;pRi/R6
%(s_9c=d]@K+sBK>/IbnKELB+tKlLU(@%lchW>fWg]X:"#SL%pg?ml,b(HEaEZ_PWnKK?Tj<*E+lV^];1d9,%k?"l5%3[eg`-LbbT
%4t[3oXiMJ!b6aoL/EM$TQiRk1r^7=ERmEV\OAQjPR\R-eat:3%3>Ut7?T+3]c at ok?8%bF)=J3bZ#)Xt6$?e;VWp'[;PCe at m!Z@)k
%>)\@dQs<duM6gF?.A^8T*eD[#Vu7J=ak"JS"Q1692,J:]e[6MmY]=>l3A+I[@8go>.mh,MU<K1l`E!QL).kfq&A:Pj,q!>*%bks)
%jeZ'?k,_H5!77Z!C7;0rniU^@LXd^pHjD3B<n0XllfrWr at iT-g*p=3"j9\[73e>"C=!Z]H9Cm1[-m1FEc0$r(71(qidEZ+["Ead]
%Um?b%!?<F<`&kbb#^=X)b7/@r?;eu(Te+3bMA`pb]I`?ACB0NK2aE]>"NCse3Z//+fb3dF9=A6$OpWN/*AYY+;3k5Ijh!DqMP^@@
%=pe#g*V9GEa/,cN3*$#)Ar2'jgC1eS#P9V=-+)_E,#+K"c"tXRE*60J_6OLs%OsMuZDL]R.UaAf!Y8=#P-cQ\$ljCej]i0%PLaC)
%<_X(iUC0d*<_#f7FQb'%A5gjf$q,mdZHY_k+JQd!+Faa;<DXHA4pKU]JX?f^#.ai7<=U+5dna#1^M\nYdOXKG$Z#q:>?I['f6IPS
%(RUWmU+D/C]%6lY:fCPL-*#j5i"f8/"cHf^J*Ah at AtuLX\+&ec'^Q,9+9VBI7%.891pqou=/b8sPPG&"2`*()M0['oT^TCFgJ1'P
%'APGcH4BV:dnO!Pp3"mi$2Sa`I5M-0gJN=".r?t?lD, at c)k!W6!,`D/o.jn47'J&#iQ\2FWu:oA^`)VZn>UOjkXPlBZ44I6'&Wu/
%@pDur2XkMJBRs)Q%EF2il]d]<"+d;9&,XuVPuW&d`jm('6"qGF:6um#3JX]/-Mkk'O>Jh,a`/!N^Ht\MG_8Nn[)/Z8)-c%41*cr;
%?uomcbOYH"Xq4(S<[/HH7aUF)+:Z-'*V9HV0g5;bbTtT8&P1%_MTatHCZ<&\>9=9LJCr7XeaNoG:3$-=R]7&RF=fCL,96CZ'siZ8
%2usXO*J+q5#q]7,SO]W#$(f'iCpF`kBbC=^4UnO;;:@dp at IB!YKG?ean2gVh=UfdA>W.8r,fr[SJ[Y]=6L7$>i\ZN0C)pFpU4+8j
%L.aHt<>m!N>n,g(dgHGt3k-+cjiEW.Ia3iJ<h&B5;$7 at o`6PN)R91)]d1Rme?']aUr=`.=Z^O/d#V-I:HT/rh<n-CSo:38WfG1\B
%73jcks)eO,"'["I)"]=DOgDpN\=Cs#-=]uW'r#Z'BLoPpWf$nm[QkU,Q(#.e0pdiX2O5(ppbh\_bU&/;5Y@!ja==Tud1pha,4j6n
%_kmk5WpN)RWfReu1*R8ubOCj`jGG.B1W*$i$b,Vh[La#Of'q=2`s(9Cr;'PjUF35V93j<d!k;tPGrQn#8,Q5m,[O*A'b)ra3j'&s
%9M5F'1hg-L2W6S%AB0c7K/T5XWAKc8Wn&&)8]sK#k/9G(GstMl9%q3kJ\gT?$@ZOr5uER^NkIhIUl\#(-8Yc(R-tpj"qpf"TS#[u
%rH,s4JgPB;&T$#l5eou86q)I#ml%B];J450IG5Xt`bG;S.&\\4GL-dCcdTIg!!G_EH%M(BRQ^qLUrm5]JMGWn$d8>6>-V$![j*6"
%ZJC&;9t;K92Vi*h3>8,A=qD9<DN69FP\_B)$o:!k1h]N>`g=Vm7B3*1KE,^F#07[M+`Ei+%4]gb\[9QrpiG+j!k^,DaG^l`:f8ur
%e&Er0!jcUb#</82UU3jX]O=IQ`EKNYUiZbq&^>^5G:@QiX0 at C:QI%6^h3\mqr!:obJ/t-%_4HE,<CXpN9H*FV6`QEP'S('Y<Go at o
%c(G4b0i/>2#;6Hj:nGHe&73NA^_"FTIB[G%IM,cmpD]EjF9Ze1:8D&]-o7F*K$"IO!NiaT6Xk1S8X\"JZ\DK$er3`_Ku^8,.8)+:
%g8q$bBC21OGmt!DQAM]hEBZ at GZ$^1 at 8(`QU<T"NGbJZk(3e,r!KHkNmdLJq`O9-WFl!Q&tA/PsuVBrsU@`6BP'(OR/.PYkf/*Y'5
%)s[Y9r0C*>WJZX+(G&uD"=G?s#s)lSd1Z72+^6[h-gq65$:r"U.W:M++@$RCP#5#`XBnq8U*`,]-Z/GGrM?8'>,P;>02iIgjh[*1
%Tk9g'Ck3nTDk81(/]E"Vh?oYoUd6Nr&lmiqG#_0j=m$JQZs>G at 7!MTTQ<6YB6^[M;-+K[Y$Dqd$)b>*DRM/o2.]:6&9dR$oJ:J6[
%\_5<N0)BR'5R>77M[WgiatT at k/!c&]9RuV3=uMSX(.H(u7u(me+'M at Whl>")2DEq0 at 2i*Q=ogPeaq5rQ%nWRMVQLBU*8kpNd)$5J
%(H:O^,$0p25QlEFL_:b44?HiVV)JetY1X,54KB'[70+r9OqY>ln-iH._i_RRBXj6H&o0e1i]aZk:8E_?bN9NtOltGcQ;T"aD3[FM
%"n:2`H]^?5GI+mJALLtVA91>j\Za"j&$&,,Gg%$*\udl7DIWQ]7O7dd7;HTdf\i+-@:]=.S00pQ+cQ(e'E+/3H];oo1ZoI`gs?fO
%B/$//:0eaT10A4d$bfd'T1H'gR*LMf,&>)B_>L6HGDT at 0CF/p!j!H$:-_7QeFN-J7</t>h8?rd5"-$,Qs7V'\*A9mDTs5?$&QI5:
%`=CJ,.bYTnUmBj[AaQIMcXAdc\V'&Ek5\5B?c<Oj6arhpJ.rce@\p$-?58d5 at YM"Y3YiFV at V)u=1%(uF(G"a(KtjiO(bHm8KuTc$
%)(V%BMJ?SY/Zd7*'i93/k*\F+^)bUs2>77;W\Pe/1YkjSiCR=@3EjZO/=i8MZ3dp4(j!8W3/:,&SSA-KgB(FDDZkds'B[">)]5qj
%fdYu.RmS&6-ppPbQ3V#hdmglp8a-u;&,'4.NqFUcc7ki292>p>3_CiKd>Jj8Tf4TXc^Hn&0'KgZWg&H6>aEm(16LLW=B^o]4bQfa
%Gd+Dq'e++@$Xo0L=]e^_<SsN>]!.D8X8#*jK9>``I:^FYEb&:ZN#"?^7F4T)1g3cd9<VcP2HId+CV=.>pn"MU;/J<A5=^TiO]#^l
%Y)F&PY=E"Yk]RZ>)+Eg_61HD*:dqBdO]#7W%uZ[r_R`pHqA'e/@TC(Feecm>,=TMCYSbq4 at hm-W*AaX:`[[]Kh))487Ot]OSMmG.
%`[\^C<T0Te*%<H]=.b-9FJOS<>icI<i3=J9=GdO1Q*I(G[2`D*Set$akc[@G*qT;<HjF4Q/CF[k.#_<Va;2e10Lgd/,8+%/ck?d`
%f=sYp'il#e8!1Am=IY7L0I(_cYSJ.VR"fb6T_9;)d"Z\uYgsbq#`!Q_TX5]>5DN8(Y`^$/G6_.<Y]:ecY6RMkYYH8hlpf.46%q9r
%7_WIQ+-rODSpFY:MNk at i`NDa'm'pdG/$4L/\=cA//`e#)q][?&=Q(r3?At-l_a7p:c4!=:Z,10V4q1/dd7S5V at XD)(NE1L<(#hb)
%3F6Wae>4D?lWBE6/;?YEk0_=tU]MX;dmra"Oh-&'F<Gme&3F`bS4Q,p0#BE)a at Sqh`$@HIM4M at K$G3PEE*+EHe<4r1-ZtZB@?au0
%,Wnt/@0qIe`4'/d!,I>M at F,.&1?%G#g(P<;b?/.+fmjFt"Zu*[^Qc^cWeD8IlKVOk-0kUC81,lFRC65MZeF"H#AnEr3L/]1\:55D
%)73qUqacje<%O;GiZtOU*ueZm./>SF1sG71$kXe!o=5N]&lD>]/JAHD\R6s;OYa3a*Amq"=W#LCp.aJp($0te6RYn<eTBqaMq!_T
%"i8_KUor_09853<GC65"I)-P;ZqT8 at 3HU;Ro3&4B2CUOn1j!lA]"oGoP/bAPQnMNeOnEQb[Yp`UF,#=5?FS/49fgW[K1:u)_\O]I
%;tP]k?!E)SY,+Kef.t,aXgY==8g6?X1PD!m(9:,53HolI8d^p*_K.<OJ/)L3IQi_0SQpWWK@:hiik41,1L1HSIQNER,K.oV0KY#!
%LtNWNn&9ci,6sMK)I133UXje,NJDsjkUf-!&pg.*8XqQ+d's;&$MD\"9Rr-75r"n#5\#W&J[@c9LDCN/U\h/F0ZX>UKZ5$R!HD0Q
%\s1S3"@`tZSA;R""8k$b0Z!#&m3m!C'cpl(%_EoT at _o<PjDZ\5Jr:Vt71]!A,JW_M0QMCT*\iDIOO9iGirdQqcng,-)B>E)LTIbU
%f^Q[74Of?2r<<MFi?<7>W;63R3]sd0*c6Z;i5$:VjK(+!d0rf6,=eN7dgFCCDF]fk[IDNpFu1!Vi.Zr6Z(o+po>9ER0m`1'*_qFp
%R'C/Hi%QuI09)O%L'Op at iG<aj)]nT?Ne1aG`kep#E:Ou1Xc/caL?G/eiM\*`--qblo=Hg!>A:,fVakTYgIi,#&T&[:WSEiALbQ&W
%-]W7FC!ErPA_D^thMRd8W<b9:W-GgfeN@!_9(g]<1:;Q\?>?eMg^ni`S3IBggl=C03FHoWQjJHK"4G$P!J at Xg6l$^K,f3?uFh"a0
%qL=JQ'V;>1F:t+WL?Gn*6eq1,2f]lX5;j"4QQq:4n\aY5Tlt\O*BbJTO3o2-mI<R>i:&pN`#h!`Ngrk"-eOQ&md&72,F:Ok-Md0r
%7^)^H5F:j,n;"pCs%<=iG.(L2gX48`p:3cU4&iP7__8[n-\Q[?osRG8+4i`^"^O7dP:&$@:.P=#4O.qm~>
%AI9_PrivateDataEnd
\ No newline at end of file
diff --git a/gosa-core/contrib/desktoprc b/gosa-core/contrib/desktoprc
new file mode 100644
index 0000000..27cfc1e
--- /dev/null
+++ b/gosa-core/contrib/desktoprc
@@ -0,0 +1 @@
+URL="https://www.gosa-project.org/demo/2.6/"
diff --git a/gosa-core/contrib/encodings b/gosa-core/contrib/encodings
new file mode 100644
index 0000000..51d6f82
--- /dev/null
+++ b/gosa-core/contrib/encodings
@@ -0,0 +1,9 @@
+# Encodings for class_servNfs.inc
+# This file should be placed in /etc/gosa/
+UTF-8=UTF-8
+ISO8859-1=ISO8859-1 (Latin 1)
+ISO8859-2=ISO8859-2 (Latin 2)
+ISO8859-3=ISO8859-3 (Latin 3)
+ISO8859-4=ISO8859-4 (Latin 4)
+ISO8859-5=ISO8859-5 (Latin 5)
+cp850=CP850 (Europe)
diff --git a/gosa-core/contrib/extract-locale b/gosa-core/contrib/extract-locale
new file mode 100755
index 0000000..2fceffb
--- /dev/null
+++ b/gosa-core/contrib/extract-locale
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ ! -f contrib/extract-locale ]; then
+  echo "This script has to be executed in the gosa root - preferrable a gosa-all checkout!"
+  exit 1
+fi
+
+for i in $(find | grep messages.po | grep -v svn | grep -v LC_MES); do cp $i $(echo $i | sed 's#^.*/\([^/]*\)/[^/]*$#\1.po#'); done
diff --git a/gosa-core/contrib/gosa b/gosa-core/contrib/gosa
new file mode 100755
index 0000000..4fb0789
--- /dev/null
+++ b/gosa-core/contrib/gosa
@@ -0,0 +1,177 @@
+#!/bin/sh
+# Start script for GOsa to be started via gecko based browsers
+
+[ -r /etc/gosa/desktoprc ] && . /etc/gosa/desktoprc
+[ -r $HOME/.gosa-desktop ] && . $HOME/.gosa-desktop
+
+url=""
+if [ $# -ne 1 -a -z "$URL" ]; then
+	echo "Usage: $(basename $0) <URL>"
+	exit 1
+fi
+
+if [ $# -ne 1 ]; then
+	url="$URL"
+else
+	url="$1"
+fi
+
+# What browser are we using?
+result=""
+echo -n "Looking for browser: "
+for browser in iceweasel firefox mozilla; do
+	if which $browser 2> /dev/null; then
+		result=$browser
+		break
+	fi
+done
+if [ -z "$result" ]; then
+	echo "none found. You'll need iceweasel, firefox or mozilla in your PATH!"
+	exit 1
+fi
+browser=$result
+dbrowser=$browser
+
+# Workaround for debian
+if [ "$browser" = "iceweasel" ]; then
+	dbrowser=firefox
+fi
+
+# Check for presence of gosa profile
+if [ ! -d $HOME/.mozilla/$dbrowser/*.gosa ]; then
+	echo "No browser profile found for GOsa - creating one..."
+	$browser -CreateProfile gosa
+	if [ "$browser" = "iceweasel" ]; then
+		config=`echo $HOME/.mozilla/firefox/*.gosa/`
+	else
+		config=`echo $HOME/.mozilla/$dbrowser/*.gosa/`
+	fi
+
+	# Catch resolution
+	width=1024
+	height=768
+	if which xrandr > /dev/null; then
+		if xrandr 1> /dev/null 2> /dev/null; then
+			resolution=$(xrandr | sed -n '/current/s/^.*current \([0-9]*\)[^0-9]*\([0-9]*\).*$/\1 \2/p')
+			width=${resolution%% *}
+			height=${resolution##* }
+
+			[ $width -gt 1050 ] && width=1050
+			[ $height -gt 850 ] && height=850
+		fi
+	fi
+
+	cat << EOF > $config/prefs.js
+# Mozilla User Preferences
+
+/* Do not edit this file.
+ *
+ * If you make changes to this file while the browser is running,
+ * the changes will be overwritten when the browser exits.
+ *
+ * To make a manual change to preferences, you can visit the URL about:config
+ * For more information, see http://www.mozilla.org/unix/customizing.html#prefs
+ */
+
+user_pref("app.update.autoUpdateEnabled", false);
+user_pref("app.update.enabled", false);
+user_pref("browser.download.folderList", 2);
+user_pref("browser.download.manager.showWhenStarting", false);
+user_pref("browser.formfill.enable", false);
+user_pref("browser.preferences.lastpanel", 1);
+user_pref("browser.search.selectedEngine", "Damnfresh");
+user_pref("browser.startup.homepage", "$url");
+user_pref("browser.startup.homepage_override.mstone", "rv:1.8.1.1");
+user_pref("extensions.disabledObsolete", true);
+user_pref("extensions.lastAppVersion", "2.0.0.1");
+user_pref("extensions.update.autoUpdateEnabled", false);
+user_pref("intl.charsetmenu.browser.cache", "ISO-8859-1");
+user_pref("network.cookie.prefsMigrated", true);
+user_pref("security.OCSP.URL", "");
+user_pref("security.OCSP.signingCA", "Builtin Object Token:IPS CLASE1 root");
+user_pref("security.warn_entering_secure", false);
+user_pref("security.warn_leaving_secure", false);
+user_pref("security.warn_submit_insecure", false);
+user_pref("security.warn_viewing_mixed", false);
+user_pref("signon.rememberSignons", false);
+user_pref("security.warn_submit_insecure", false);
+EOF
+
+	cat << EOF > $config/84795799.s
+#2c
+http://vserver-02
+.
+EOF
+
+	[ ! -d $config/chrome ] && mkdir -p $config/chrome
+	cat << EOF > $config/chrome/userChrome.css
+#main-menubar {
+        display: none;
+}
+#navigator-throbber {
+        display: none;
+}
+EOF
+
+cat << EOF > $config/localstore.rdf
+<?xml version="1.0"?>
+<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
+         xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+  <RDF:Description RDF:about="chrome://mozapps/content/downloads/unknownContentType.xul#unknownContentType"
+                   screenX="267"
+                   screenY="304" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#PersonalToolbar"
+                   currentset="__empty"
+                   collapsed="true" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar"
+                   currentset="__empty"
+                   collapsed="true" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#sidebar-box"
+                   collapsed="true"
+                   sidebarcommand=""
+                   width=""
+                   src="" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#status-bar"
+                   hidden="true" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul">
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#main-window"/>
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-box"/>
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#sidebar-title"/>
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#nav-bar"/>
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#PersonalToolbar"/>
+    <NC:persist RDF:resource="chrome://browser/content/browser.xul#toolbar-menubar"/>
+  </RDF:Description>
+  <RDF:Description RDF:about="chrome://mozapps/content/downloads/unknownContentType.xul">
+    <NC:persist RDF:resource="chrome://mozapps/content/downloads/unknownContentType.xul#unknownContentType"/>
+  </RDF:Description>
+  <RDF:Description RDF:about="chrome://global/content/customizeToolbar.xul">
+    <NC:persist RDF:resource="chrome://global/content/customizeToolbar.xul#CustomizeToolbarWindow"/>
+  </RDF:Description>
+  <RDF:Description RDF:about="chrome://help/content/help.xul#help"
+                   screenX="350"
+                   screenY="225"
+                   width="700"
+                   height="550" />
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#main-window"
+                   screenX="50"
+                   screenY="25"
+                   sizemode="normal"
+                   width="$width"
+                   height="$height" />
+  <RDF:Description RDF:about="chrome://help/content/help.xul">
+    <NC:persist RDF:resource="chrome://help/content/help.xul#help"/>
+  </RDF:Description>
+  <RDF:Description RDF:about="chrome://browser/content/browser.xul#nav-bar"
+                   currentset="__empty"
+                   collapsed="true" />
+</RDF:RDF>
+
+
+
+EOF
+fi
+
+
+# Start mozilla with GOsa profile
+$browser -P gosa $url
+
diff --git a/gosa-core/contrib/gosa.1 b/gosa-core/contrib/gosa.1
new file mode 100644
index 0000000..73f383e
--- /dev/null
+++ b/gosa-core/contrib/gosa.1
@@ -0,0 +1,41 @@
+.TH gosa 1
+.SH NAME
+gosa \- start script for the GOsa web interface
+.SH SYNOPSIS
+.PP
+.B gosa
+[
+URL
+]
+.SH DESCRIPTION
+Start the 
+.B GOsa
+web interface using a gecko based browser and generate
+a special browser profile for
+.B GOsa
+usage. This profile will disable
+normal style browser navigation and URL fields.
+.SH OPTIONS
+.TP
+.BR URL
+Open this URL when launching the browser with the GOsa profile. This
+option is optional and may be preset by the
+.B configuration
+files.
+.SH "RETURN VALUE"
+The script return zero values on success.
+.SH EXAMPLES
+.B gosa
+https://admin.example.net
+.SH FILES
+Presetting the URL works by placing something like
+.B URL="http://admin.example.net"
+inside one of these files:
+.br
+.nf
+.\" set tabstop to longest possible filename, plus a wee bit
+.ta \w'/usr/lib/perl/getopts.pl   'u
+\fI/etc/gosa/desktoprc\fR	system wide setting
+\fI$HOME/.gosa-desktop\fR	user specific setting
+.SH AUTHOR
+Cajus Pollmeier <cajus at debian.org>
diff --git a/gosa-core/contrib/gosa.conf b/gosa-core/contrib/gosa.conf
new file mode 100644
index 0000000..6d14060
--- /dev/null
+++ b/gosa-core/contrib/gosa.conf
@@ -0,0 +1,591 @@
+{literal}<?xml version="1.0"?>{/literal}
+<conf configVersion="{$config_checksum}" >
+
+  <!-- GOsa menu definition **************************************************
+
+       This tag defines the side and icon menu inside the
+       interface. Defining an entry here is no guarantie to get it shown,
+       though. Only entries with matching ACL's get shown.
+
+       There are two types of entries inside of the menu: section and plugin
+
+       Defining a section:
+
+       Open a <section> tag including a "name" attribute. This will show up in
+       the menu as a new section later on. Own entries are not handled via I18N
+       by default. Close the </section> tag after your plugin definitions.
+
+       Defining a plugin:
+
+       Open a <plugin> tag including a "class" attribute. The "class" should be
+       present inside your GOsa setup - the entry will be ignored if it is not.
+
+       Plugins should have an "acl" entry, that allows GOsa to decide wether
+       a user is allowed to see a plugin or not. The "acl" string matches with
+       an ACL definition done inside of GOsa -> ACLs.
+
+       You can override an icon by specifying the "icon" attribute.
+
+       For more information about possible configuration parameters, please take
+       a look at the gosa.conf(5) manual page.
+   -->
+  <menu>
+
+    <!-- Section to enable quick self service shortcuts for the logged in user -->
+    <section name="My account">
+      <plugin acl="users/user:self" class="user" />
+      <plugin acl="users/posixAccount:self"  class="posixAccount" />
+      <plugin acl="users/environment:self" class="environment" {if $cv.optional.kioskpath_active} kioskPath="{$cv.optional.kioskpath}"{/if} />
+      <plugin acl="users/mailAccount:self" class="mailAccount" />
+      <plugin acl="users/sambaAccount:self" class="sambaAccount" />
+      <plugin acl="users/netatalk:self" class="netatalk" />
+      <plugin acl="users/connectivity:self" class="connectivity" />
+      <plugin acl="users/gofaxAccount:self" class="gofaxAccount" />
+      <plugin acl="users/phoneAccount:self" class="phoneAccount" />
+      <plugin acl="users/nagiosAccount:self" class="nagiosAccount" />
+      <plugin acl="users/scalixAccount:self" class="scalixAccount" />
+      <plugin acl="users/password:self" class="password" />
+    </section>
+
+    <!-- Section to enable administrative services -->
+    <section name="Administration">
+      <plugin acl="department" class="departmentManagement" />
+      <plugin acl="users" class="userManagement" />
+      <plugin acl="groups" class="groupManagement" />
+      <plugin acl="roles" class="roleManagement"/>
+      <plugin acl="ogroups" class="ogroupManagement" />
+      <plugin acl="application" class="applicationManagement" />
+      <plugin acl="mimetypes" class="mimetypeManagement" />
+      <plugin acl="devices" class="deviceManagement" />
+      <plugin acl="terminal/termgeneric,workstation/workgeneric,server/servgeneric,phone/phoneGeneric,printer/printgeneric,component/componentGeneric,winworkstation/wingeneric,opsi/opsiGeneric" class="systemManagement" />
+      <!-- Use 'lockDn'      for dn
+               'lockName'    for name
+               'lockType'    for branch/freeze -->
+      <plugin acl="fai/faiScript,fai/faiHook,fai/faiTemplate,fai/faiVariable,fai/faiPartitionTable,fai/faiPackage,fai/faiProfile,fai/faiManagement,opsi/opsiProperties" class="faiManagement" />
+      <plugin acl="opsi" class="opsiLicenses"/>
+      <plugin acl="gofaxlist" class="blocklist" />
+      <plugin acl="gofonmacro" class="goFonMacro" />
+      <plugin acl="gofonconference" class="phoneConferenceManagment" />
+      <plugin acl="acl"  class="aclManagement" />
+      <plugin acl="sudo" class="sudoManagement" />
+    </section>
+
+    <!-- Section to enable addon plugins -->
+    <section name="Addons">
+      <plugin acl="server/rSyslogServer"  class="rsyslog" />
+    <!--  <plugin acl="server/servservrepository,server/dakrepository,server/dakkeyring,server/dakqueue" class="dak_tabs" path="plugins/addons/dak" /> -->
+      <plugin acl="addressbook" class="addressbook" />
+      <plugin acl="mailqueue" class="mailqueue" />
+      <plugin acl="faxreport/faxreport:self,faxreport" class="faxreport" />
+      <plugin acl="fonreport/fonreport:self,fonreport" class="fonreport" />
+      <plugin acl="gotomasses" class="gotomasses" />
+      <plugin acl="ldapmanager" class="ldif" />
+    </section>
+  </menu>
+
+
+
+  <!-- Tab definitions *******************************************************
+
+       Tab definitions define the sub plugins which get included for certain
+       tabbed dialogs. If you change something here, never (!) remove the
+       primary (the first) "tab" tag which is defined. Most tabbed dialogs
+       need a primary plugin.
+
+       "*tab" should be looked for by a defined plugin. This one will take
+       every "tab" defined "class" and will show it inside of a tabbed dialog
+       with the header defined in "name".
+   -->
+
+  <!-- ACL dialog -->
+  <acltab>
+    <tab class="acl" name="ACL" />
+  </acltab>
+
+  <aclroletab>
+    <tab class="aclRole" name="ACL Role" />
+  </aclroletab>
+
+  <!-- User dialog -->
+  <usertabs>
+     <tab class="user" name="Generic" />
+     <tab class="posixAccount" name="Unix" />
+     <tab class="environment" name="Environment" />
+     <tab class="mailAccount" name="Mail" />
+     <tab class="sambaAccount" name="Samba" />
+     <tab class="netatalk" name="Netatalk" />
+     <tab class="connectivity" name="Connectivity" />
+     <tab class="gofaxAccount" name="Fax" />
+     <tab class="phoneAccount" name="Phone" />
+     <tab class="scalixAccount" name="Scalix" />
+     <tab class="nagiosAccount" name="Nagios" /> 
+   </usertabs>
+
+  <opsiLicenseTabs>
+    <tab class="licensePoolGeneric" name="Generic"/>
+    <tab class="licenseUsage" name="Usage"/>
+  </opsiLicenseTabs>
+
+  <!-- Group dialog -->
+  <grouptabs>
+    <tab class="group" name="Generic" />
+    <tab class="environment" name="Environment" />
+    <tab class="appgroup" name="Applications" />
+    <tab class="mailgroup" name="Mail" />
+  </grouptabs>
+
+  <!-- Sudo dialog -->
+  <sudotabs>
+    <tab class="sudo" name="Generic" />
+    <tab class="sudoOption" name="Options" />
+  </sudotabs>
+
+  <!-- GOfax plugins -->
+  <faxblocktabs>
+    <tab class="blocklistGeneric" name="Generic" />
+  </faxblocktabs>
+
+  <!-- GOfon plugins -->
+  <conferencetabs>
+    <tab class="conference" name="Generic" />
+  </conferencetabs>
+
+  <macrotabs>
+    <tab class="macro" name="Generic" />
+    <tab class="macroParameter" name="Parameter" />
+  </macrotabs>
+
+  <phonetabs>
+    <tab class="phoneGeneric" name="Generic" />
+    <!-- <tab class="glpiAccount" name="Inventory" /> -->
+  </phonetabs>
+
+  <!-- GOto plugins -->
+  <appstabs>
+    <tab class="application" name="Generic" />
+    <tab class="applicationParameters" name="Options" />
+  </appstabs>
+
+  <mimetabs>
+    <tab class="mimetype" name="Generic" />
+  </mimetabs>
+
+  <devicetabs>
+    <tab class="deviceGeneric" name="Generic" />
+  </devicetabs>
+
+  <arpnewdevicetabs>
+    <tab class="ArpNewDevice" name="Generic" />
+  </arpnewdevicetabs>
+
+  <termtabs>
+     <tab class="termgeneric" name="Generic" />
+     <tab class="termstartup" name="Startup" />
+     <tab class="termservice" name="Devices" />
+     <tab class="terminfo" name="Information" snmpCommunity="{$cv.optional.snmpcommunity}" />
+     <!--<tab class="glpiAccount" name="Inventory" /> -->
+  </termtabs>
+
+  <servtabs>
+     <tab class="servgeneric" name="Generic" />
+     <tab class="workstartup" name="Startup" />
+     <tab class="ServerService" name="Services" />
+     <tab class="faiSummaryTab" name="Deployment summary" />
+     <tab class="gotoLogView" name="Installation logs" />
+     <tab class="terminfo" name="Information" snmpCommunity="{$cv.optional.snmpcommunity}" />
+     <!-- <tab class="glpiAccount" name="Inventory" /> -->
+  </servtabs>
+
+  <worktabs>
+     <tab class="workgeneric" name="Generic" />
+     <tab class="workstartup" name="Startup" />
+     <tab class="workservice" name="Devices" />
+     <tab class="printgeneric" name="Printer" />
+     <tab class="terminfo" name="Information" snmpCommunity="{$cv.optional.snmpcommunity}" />
+     <tab class="faiSummaryTab" name="Deployment summary" />
+     <tab class="gotoLogView" name="Installation logs" />
+     <!-- <tab class="glpiAccount" name="Inventory" /> -->
+  </worktabs>
+
+  <printtabs>
+     <tab class="printgeneric" name="Generic" />
+     <!-- <tab class="glpiPrinterAccount" name="Inventory" /> -->
+  </printtabs>
+
+  <componenttabs>
+     <tab class="componentGeneric" name="Generic" />
+     <!-- <tab class="glpiAccount" name="Inventory" /> -->
+  </componenttabs>
+
+  <wintabs>
+     <tab class="wingeneric" name="Generic" />
+     <!-- <tab class="glpiAccount" name="Inventory" /> -->
+  </wintabs>
+
+  <serverservice>
+    <tab class="goMailServer" />
+{if $cv.mail == "Kolab" || $cv.mail == "Kolab22"}
+    <tab class="servkolab" />
+{else}
+    <!-- <tab class="servkolab" /> -->
+{/if}
+    <tab class="goNtpServer" />
+    <tab class="servrepository" />
+    <tab class="goImapServer" />
+    <tab class="goKrbServer" />
+    <tab class="goFaxServer" />
+    <tab class="goFonServer" />
+    <tab class="goGlpiServer" />
+    <tab class="goCupsServer" />
+    <tab class="goKioskService" />
+    <tab class="goTerminalServer" />
+    <tab class="goLdapServer" />
+    <tab class="goShareServer" />
+    <tab class="gospamserver" />
+    <tab class="govirusserver" />
+    <tab class="servdhcp" />
+    <tab class="servdns" />
+    <tab class="rSyslogServer" />
+  </serverservice>
+
+  <!-- Department plugin -->
+  <deptabs>
+    <tab class="department" name="Generic" />
+  </deptabs>
+
+  <organization_tabs>
+    <tab class="organization" name="Generic" />
+  </organization_tabs>
+
+  <locality_tabs>
+    <tab class="locality" name="Generic" />
+  </locality_tabs>
+
+  <country_tabs>
+    <tab class="country" name="Generic" />
+  </country_tabs>
+
+  <dcobject_tabs>
+    <tab class="dcObject" name="Generic" />
+  </dcobject_tabs>
+
+  <domain_tabs>
+    <tab class="domain" name="Generic" />
+  </domain_tabs>
+
+  <!-- Role tabs -->
+  <roletabs>
+    <tab class="roleGeneric" name="Generic"/>
+  </roletabs>
+
+  <ogrouptabs>
+    <tab class="ogroup" name="Generic" />
+  </ogrouptabs>
+
+  <!-- Debian archive management plugin -->
+  <!--
+  <dak_tabs>
+    <tab class="dakrepository" name="Repository" />
+    <tab class="dakqueue" name="Queue" />
+    <tab class="dakkeyring" name="Key ring" />
+  </dak_tabs>
+  -->
+
+  <!-- Connectivity plugins -->
+  <connectivity>
+{if $cv.mail == "Kolab" || $cv.mail == "Kolab22"}
+    <tab class='kolabAccount' />
+{else}
+<!-- <tab class='kolabAccount' /> -->
+{/if}
+    <tab class="proxyAccount" />
+    <tab class="pureftpdAccount" />
+    <tab class="webdavAccount" />
+    <tab class="phpgwAccount" />
+    <tab class="intranetAccount" />
+    <!--
+    <tab class="opengwAccount"
+      username="OGo"
+      password=""
+      database="OGo"
+      databaseServer="localhost" />
+    -->
+    <tab class="pptpAccount" /> 
+    <tab class="phpscheduleitAccount" /> 
+    <tab class="oxchangeAccount" />
+  </connectivity>
+
+  <ldiftab>
+    <tab class="ldifexport" name="Export" />
+    <tab class="xlsexport" name="Excel Export" />
+    <tab class="ldifimport" name="Import" />
+    <tab class="csvimport" name="CSV Import" />
+  </ldiftab>
+
+  <faipartitiontabs>
+    <tab class="faiPartitionTable" name="Partitions" />
+  </faipartitiontabs>
+
+  <faiscripttabs>
+    <tab class="faiScript" name="Script" />
+  </faiscripttabs>
+
+  <faihooktabs>
+    <tab class="faiHook" name="Hooks" />
+  </faihooktabs>
+
+  <faivariabletabs>
+    <tab class="faiVariable" name="Variables" />
+  </faivariabletabs>
+
+  <faitemplatetabs>
+    <tab class="faiTemplate" name="Templates" />
+  </faitemplatetabs>
+
+  <faiprofiletabs>
+    <tab class="faiProfile" name="Profiles" />
+    <tab class="faiSummaryTab" name="Summary" />
+  </faiprofiletabs>
+
+  <faipackagetabs>
+    <tab class="faiPackage" name="Packages" />
+  </faipackagetabs>
+
+  <opsitabs>
+    <tab class="opsiGeneric" name="Opsi" />
+    <tab class="opsiSoftware" name="Hardware information" />
+    <tab class="opsiHardware" name="software information" />
+    <tab class="licenseUsageByHost" name="Usage"/>
+  </opsitabs>
+
+  <opsiprodconfig>
+    <tab class="opsiProperties" name="Config" />
+    <tab class="licenseByProduct" name="Usage"/>
+  </opsiprodconfig>
+
+  <!-- rSyslog plugin -->
+  <rsyslogtabs>
+      <tab class="rsyslog" name="System logs" />
+  </rsyslogtabs>
+
+  <!-- Main section **********************************************************
+
+       The main section defines global settings, which might be overridden by
+       each location definition inside.
+
+       For more information about the configuration parameters, take a look at
+       the gosa.conf(5) manual page.
+
+  -->
+  <main default="{$cv.location}"
+{if $cv.generic_settings.logging}
+        logging="true"
+{else}
+        logging="false"
+{/if}
+{if $cv.optional.list_summary}
+        listSummary="true"
+{else}
+        listSummary="false"
+{/if}
+{if $cv.pwd_rules.pwminlen_active}
+        passwordMinLength="{$cv.pwd_rules.pwminlen}"
+{/if}
+{if $cv.pwd_rules.pwdiffer_active}
+        passwordMinDiffer="{$cv.pwd_rules.pwdiffer}"
+{/if}
+{if $cv.pwd_rules.externalpwdhook_active}
+        passwordHook="{$cv.pwd_rules.externalpwdhook}"
+{/if}
+{if $cv.errorlvl}
+        displayErrors="true"
+{else}
+        displayErrors="false"
+{/if}
+{if $cv.enable_schema_check}
+        schemaCheck="true"
+{else}
+        schemaCheck="false"
+{/if}
+{if $cv.generic_settings.enableCopyPaste}
+        copyPaste="true"
+{else}
+        copyPaste="false"
+{/if}
+{if $cv.optional.forceglobals}
+        forceGlobals="true"
+{else}
+        forceGlobals="false"
+{/if}
+{if $cv.optional.forcessl}
+        forceSSL="true"
+{else}
+        forceSSL="false"
+{/if}
+{if $cv.optional.ldapstats}
+        ldapStats="true"
+{else}
+        ldapStats="false"
+{/if}
+{if $cv.optional.warnssl}
+        warnSSL="true"
+{else}
+        warnSSL="false"
+{/if}
+{if $cv.optional.ppd_path_active}
+        ppdGzip="true"
+        ppdPath="{$cv.optional.ppd_path}"
+{/if}
+{if $cv.optional.max_ldap_query_time_active}  
+        ldapMaxQueryTime="{$cv.optional.max_ldap_query_time}"
+{/if}
+{if $cv.optional.noprimarygroup}
+        primaryGroupFilter="true"
+{/if}
+{if $cv.optional.mailQueueScriptPath_active}
+        mailQueueScriptPath="{$cv.optional.mailQueueScriptPath}"
+{/if}
+{if $cv.optional.user_filter_cookie}
+        storeFilterSettings="true"
+{else}
+        storeFilterSettings="false"
+{/if}
+{if $cv.compressed}
+        sendCompressedOutput="true"
+{else}
+        sendCompressedOutput="false"
+{/if}
+{if $cv.optional.uniq_identifier_active}
+        modificationDetectionAttribute="{$cv.optional.uniq_identifier}"
+{else}
+        modificationDetectionAttribute=""
+{/if}
+        language="{$cv.lang_selected}"
+        theme="{$cv.theme}"
+        sessionLifetime="{$cv.optional.session_lifetime}"
+        templateCompileDirectory="{$cv.optional.compile}"
+        debugLevel="{$cv.optional.debuglevel}"
+        sambaHashHook='{$cv.samba_settings.smbhash}'
+    >
+
+    <!-- Location definition -->
+    <location name="{$cv.location}"
+              passwordDefaultHash="{$cv.encryption}"
+              accountPrimaryAttribute="{$cv.peopledn}"
+              userRDN="{$cv.peopleou}"
+              groupRDN="{$cv.groupou}"
+              gidNumberBase="{$cv.uidbase}"
+              uidNumberBase="{$cv.uidbase}"
+{if $cv.optional.sudoou_active}
+              sudoRDN="{$cv.optional.sudoou}"
+{/if}
+{if $cv.optional.gosaSupportURI_active}
+              gosaSupportURI="{$cv.optional.gosaSupportURI}"
+              gosaSupportTimeout="{$cv.optional.gosaSupportTimeout}"
+{else}
+              disabled_gosaSupportURI="gosa-si-secret at server:20081"
+              disabled_gosaSupportTimeout="15"
+{/if}
+{if $cv.optional.login_attribute}
+              loginAttribute="{$cv.optional.login_attribute}"
+{else}
+              loginAttribute="uid"
+{/if}
+{if $cv.timezone}
+              timezone="{$cv.timezone}"
+{/if}
+{if $cv.optional.strict_units}
+              honourUnitTags="true"
+{else}
+              honourUnitTags="false"
+{/if}
+{if $cv.krbsasl}
+              useSaslForKerberos="true"
+{else}
+              useSaslForKerberos="false"
+{/if}
+{if $cv.rfc2307bis}
+              rfc2307bis="true"
+{else}
+              rfc2307bis="false"
+{/if}
+{if $cv.include_personal_title}
+              personalTitleInDN="true"
+{else}
+              personalTitleInDN="false"
+{/if}
+{if $cv.base_hook_active}
+              nextIdHook="{$cv.base_hook}"
+{/if}
+{if $cv.generic_settings.wws_ou_active}
+              sambaMachineAccountRDN="{$cv.generic_settings.wws_ou}"
+{/if}
+{if $cv.id_settings.idgen_active}
+              idGenerator="{$cv.id_settings.idgen}"
+{/if}
+{if $cv.strict}
+              strictNamingRules="true"
+{else}
+              strictNamingRules="false"
+{/if}
+{if $cv.id_settings.minid_active}
+              minId="{$cv.id_settings.minid}"
+{/if}
+              mailAttribute="{$cv.mail_attrib}"
+              gosaSharedPrefix=""
+              mailUserCreation=""
+              mailFolderCreation=""
+              imapTimeout="10"
+{if $cv.mail != "disabled"}
+              mailMethod="{$cv.mail}"
+{if $cv.cyrusunixstyle}
+              cyrusUseSlashes="true"
+{else}
+              cyrusUseSlashes="false"
+{/if}
+{if $cv.mail_settings.vacationdir_active}
+              vacationTemplateDirectory="{$cv.mail_settings.vacationdir}"
+{/if}
+{/if}
+{if $cv.tls}
+              ldapTLS="true"
+{/if}
+{if $cv.governmentmode}
+              honourIvbbAttributes="true"
+{else}
+              honourIvbbAttributes="false"
+{/if}
+{if $cv.sambaidmapping}
+              sambaIdMapping="true"
+{/if}
+{if $cv.account_expiration}
+              handleExpiredAccounts="true"
+{/if}
+{if $cv.samba_settings.samba_sid_active}
+              sambaSID="{$cv.samba_settings.samba_sid}"
+{/if}
+{if $cv.samba_settings.samba_rid_active}
+              sambaRidBase="{$cv.samba_settings.samba_rid_active}"
+{/if}
+{if $cv.generic_settings.snapshot_active}  
+              enableSnapshots="true"
+              snapshotBase="{$cv.generic_settings.snapshot_base}"
+              snapshotAdminDn="{$cv.generic_settings.snapshot_user}"
+              snapshotAdminPassword="{$cv.generic_settings.snapshot_password}"
+              snapshotURI="{$cv.generic_settings.snapshot_server}"
+{else}
+              enableSnapshots="false"
+              snapshotBase="dc=localhost,dc=de"
+              snapshotAdminDn="cn=admin,dc=localhost,dc=de"
+              snapshotAdminPassword="secret"
+              snapshotURI="ldap://localhost:389"
+{/if}
+              config="ou=gosa,ou=configs,ou=systems,{$cv.base}">
+
+              <referral URI="{$cv.connection}/{$cv.base}"
+                        adminDn="{$cv.admin}"
+                        adminPassword="{$cv.password}" />
+
+    </location>
+  </main>
+</conf>
diff --git a/gosa-core/contrib/gosa.conf.5 b/gosa-core/contrib/gosa.conf.5
new file mode 100644
index 0000000..edd19b7
--- /dev/null
+++ b/gosa-core/contrib/gosa.conf.5
@@ -0,0 +1,1436 @@
+.TH gosa.conf 5 "2008-04-07" "GOsa v2.6" "Debian"
+.SH NAME
+gosa.conf - GOsa configuration file
+.SH DESCRIPTION
+The gosa.conf file contains configuration information for
+.IR GOsa,
+a powerful GPL'ed framework for managing accounts and systems in
+LDAP databases.
+.PP
+The gosa.conf file is a XML style configuration file. It is parsed by
+the GOsa web application during log in.  The file may contain
+extra tabs and newlines for formatting purposes.  Tag keywords in the
+file are case-insensitive. Comments should be placed outside of XML
+tags and should be encapsulated inside of <!-- --> tags.
+.PP
+The gosa.conf file can be used to configure the look and feel, behaviour
+and access control of the GOsa webinterface.
+.SH Configuration layout
+
+The configuration has to be specified inside of the <conf> tags. It
+basically consists of three main parts: menu definition, definition
+of subdialogs (tabbed dialogs) and the main configuration - including
+information about several locations.
+
+.B Layout example:
+
+.nf
+  <?xml version="1.0"?>
+  
+  <conf configVersion="...." >
+    <!-- Menu definition -->
+    <menu>
+    ...
+    </menu>
+  
+    <!-- Tabbed dialog definitions -->
+    ...
+  
+    <!-- Global setup -->
+    <main>
+  
+       <!-- Location specific setups -->
+       <location name="">
+         ...
+       </location>
+  
+    </main>
+  
+  </conf>
+.fi
+
+.SH Menu definition
+
+This tag defines the side and icon menu inside the
+interface. Defining an entry here is no guarantie to get it shown,
+though. Only entries with matching ACL's get shown.
+
+There are two types of entries inside of the menu: section and plugin
+
+.B Defining a section
+
+Open a 
+.I <section>
+tag including a 
+.I name
+attribute. This will show up in the menu as a new section later on.
+Own entries are not handled via I18N by default. Close the 
+.I </section>
+tag after your plugin definitions.
+
+.B Defining a plugin
+
+Open a 
+.I <plugin>
+tag including a 
+.I "class"
+attribute. The 
+.I "class" 
+should be present inside your GOsa setup - the entry will be ignored if it is not.
+
+Plugins should have an 
+.I "acl"
+entry, that allows GOsa to decide wether a user is allowed to see a plugin or not.
+The 
+.I "acl"
+string matches with an ACL definition done inside of GOsa.
+
+You can override an icon by specifying the 
+.I "icon"
+attribute.
+
+For every plugin, you can provide at least four additional hooks: 
+.I postcreate,
+.I postremove,
+.I postmodify
+and
+.I check.
+These can be used to perform special actions when a plugins gets
+a create, delete, modify or check request. As a parameter, these
+keywords get a shell script or program to the task.
+
+.I The
+.B create / delete / modify
+.I keywords
+
+These keywords take a full executable path of a script. You can
+provide certain parameters in form of LDAP attributes. '%uid'
+will pass the current user id, '%dn' the current object dn, etc.
+
+The script gets executed after create, delete or modify tasks.
+
+.I The
+.B check
+.I keyword
+
+This keyword takes a full executable path of a script. Check is
+triggered after you press the
+\-I "Apply"
+or
+\-I "OK"
+button. The complete LDAP entry as it will be written to the
+LDAP is passed to your script. If parts of the entry do not
+match some logic of your script, just print an error message
+to STDOUT. GOsa will show this message and abort the current
+process of saving the entry to the LDAP.
+
+.B Example menu definition:
+
+.nf
+  <menu>
+    <section name="My account">
+      <plugin acl="users/user:self" class="user" check="/usr/local/bin/test_user.sh" />
+      <plugin acl="users/samba:self" class="sambaAccount" postcreate="/usr/local/bin/create_share '%uid'" />
+    </section>
+  </menu>
+.fi
+
+.SH Tabbed dialog definitions
+
+Tab definitions define the sub plugins which get included for certain
+tabbed dialogs. If you change something here, never (!) remove the
+primary (the first) "tab" tag which is defined. Most tabbed dialogs
+need a primary plugin.
+
+.I "*tab"
+should be looked for by a defined plugin. This one will take
+every 
+.I "tab"
+defined
+.I "class"
+and will show it inside of a tabbed dialog
+with the header defined in
+.I "name".
+
+.B Example tabbed dialog definition:
+
+.nf
+  <grouptabs>
+    <tab class="group" name="Generic" />
+    <tab class="environment" name="Environment" />
+    <tab class="appgroup" name="Applications" />
+    <tab class="mailgroup" name="Mail" />
+  </grouptabs>
+.fi
+
+.SH Main section
+
+The main section defines global settings, which might be overridden by
+each location definition inside of this global definition.
+
+.B Example layout:
+
+.nf
+  <main default="Example Net"
+        listSummary="false"
+        ... >
+
+        <location name="Example Net"
+                  hash="md5"
+                  accountPrimaryAttribute="cn"
+                  ...
+
+                  <referral uri="ldaps://ldap.example.net:636/dc=example,dc=net"
+                            admin="cn=gosa-admin,dc=example,dc=net"
+                            password="secret" />
+
+        </location>
+
+  </main>
+
+.fi
+
+.PP
+.B Generic options
+
+.PP
+.B forceGlobals
+.I bool
+.PP
+The
+.I forceGlobals
+statement enables PHP security checks to force register_global settings to
+be switched off.
+.PP
+
+.B forceSSL
+.I bool
+.PP
+The
+.I forceSSL
+statement enables PHP security checks to force encrypted access to the web
+interface. GOsa will try to redirect to the same URL - just with https://.
+.PP
+
+.B warnSSL
+.I bool
+.PP
+The
+.I warnSSL
+statement enables PHP security checks to detect non encrypted access to
+the web interface. GOsa will display a warning in this case.
+.PP
+
+.B modificationDetectionAttribute
+.I string
+.PP
+The
+.I modificationDetectionAttribute
+statement enables GOsa to check if a entry currently being edited has
+been modified from someone else outside GOsa in the meantime. It will
+display an informative dialog then. It can be set to
+.I entryCSN
+for OpenLDAP based systems or
+.I contextCSN
+for Sun DS based systems.
+.PP
+
+.B logging
+.I string
+.PP
+The
+.I logging
+statement enables event logging on GOsa side. Setting it to 
+.I true,
+GOsa will log every action a user performs via syslog. If you use
+rsyslog and configure it to mysql logging, you can browse all events
+within GOsa.
+
+GOsa will not log anything, if the logging value is empty or set to
+false.
+.PP
+
+.B loginAttribute
+.I string
+.PP
+The
+.I loginAttribute
+statement tells GOsa which LDAP attribute is used as the login name
+during login. It can be set to
+.I uid, mail
+or
+.I both.
+.PP
+
+.B copyPaste
+.I bool
+.PP
+The
+.I copyPaste
+statement enables copy and paste for LDAP entries managed with GOsa.
+.PP
+
+.B snapshots
+.I bool
+.PP
+The
+.I snapshots
+statement enables a snapshot mechaism in GOsa. This enables you to save
+certain states of entries and restore them later on.
+.PP
+
+.B snapshotBase
+.I dn
+.PP
+The
+.I snapshotBase
+statement defines the base where snapshots should be stored inside of
+the LDAP.
+.PP
+
+.B snapshotURI
+.I uri 
+.PP
+The
+.I snapshotURI
+variable defines the LDAP URI for the server which is used to do object
+snapshots.
+.PP
+
+.B snapshotAdminDn
+.I dn
+.PP
+The
+.I snapshotAdminDn
+variable defines the user which is used to authenticate when connecting
+to
+.I snapshotURI.
+.PP
+
+.B snapshotAdminPassword
+.I string
+.PP
+The
+.I snapshotAdminPassword
+variable defines the credentials which are used in combination with
+.I snapshotAdminDn
+and
+.I snapshotURI
+in order to authenticate.
+.PP
+
+.B config
+.I dn
+.PP
+The
+.I config
+statement defines the LDAP base, where GOsa stores management information,
+such as site wide locking and user notifications.
+.PP
+
+.B templateCompileDirectory
+.I path
+.PP
+The
+.I templateCompileDirectory
+statements defines the path, where the PHP templating engins
+.I smarty
+should store its compiled GOsa templates for improved speed. This path
+needs to be writeable by the user your webserver is running with.
+.PP
+
+.B timezone
+.I string
+.PP
+The
+.I timezone
+statements defines the timezone used inside of GOsa to handle date
+related tasks, such as password expiery, vacation messages, etc.
+The
+.I timezone
+value should be a unix conform timezone value like in /etc/timezone.
+.PP
+
+.B honourIvbbAttributes
+.I bool
+.PP
+The
+.I honourIvbbAttributes
+statement enables the IVBB mode inside of GOsa. You need the ivbb.schema
+file from used by german authorities.
+.PP
+
+.B strictNamingRules
+.I bool
+.PP
+The
+.I strictNamingRules
+statement enables strict checking of uids and group names. If you need
+characters like . or - inside of your accounts, set this to
+.I false.
+.PP
+
+.B honourUnitTags
+.I bool
+.PP
+The
+.I honourUnitTags
+statement enables checking of
+.I unitTag
+attributes when using administrative units. If this is set to
+.I true
+GOsa can only see objects inside the administrative unit a
+user is logged into.
+.PP
+
+.B rfc2307bis
+.I bool
+.PP
+The
+.I rfc2307bis
+statement enables rfc2307bis style groups in GOsa. You can use
+.I member
+attributes instead of memberUid in this case. To make it work
+on unix systems, you've to adjust your NSS configuration to
+use rfc2307bis style groups, too.
+.PP
+
+.B ppdPath
+.I path
+.PP
+The
+.I ppdPath
+variable defines where to store PPD files for the GOto environment plugins.
+.PP
+
+.B resolutions
+.I path
+.PP
+The
+.I resolutions
+variable defines a plain text file which contains additional resolutions
+to be shown in the environment and system plugins.
+.PP
+
+.B htaccessAuthentication
+.I bool
+.PP
+The
+.I htaccessAuthentication
+variable tells GOsa to use either htaccess authentication or LDAP authentication. This
+can be used if you want to use i.e. kerberos to authenticate the users.
+.PP
+
+.B gosaSupportURI
+.I URI
+.PP
+The
+.I gosaSupportURI
+defines the major gosa-si server host and the password for GOsa to connect to it.
+can be used if you want to use i.e. kerberos to authenticate the users.
+
+The format is:
+
+.nf
+credentials at host:port
+.fi
+.PP
+
+
+.B Browser and display options
+
+.B listSummary
+.I true/false
+.PP
+The
+.I listSummary
+statement determines whether a status bar will be shown on the bottom of
+GOsa generated lists, displaying a short summary of type and number of
+elements in the list.
+.PP
+
+.B iconsize
+.I size value
+.PP
+The
+.I iconsize
+statement sets the icon size in the main menu. Its value should be something
+like 48x48.
+.PP
+
+.B sendCompressedOutput
+.I true/false
+.PP
+The
+.I sendCompressedOutput
+statement determines whether PHP should send compressed HTML pages to
+browsers or not. This may increase or decrease the performance, depending
+on your network.
+.PP
+
+.B storeFilterSettings
+.I true/false
+.PP
+The
+.I storeFilterSettings
+statement determines whether GOsa should store filter and plugin settings
+inside of a cookie.
+.PP
+
+.B language
+.I string
+.PP
+The
+.I language
+statement defines the default language used by GOsa. Normally GOsa autodetects
+the language from the browser settings. If this is not working or you want to
+force the language, just add the language code (i.e. de for german) here.
+.PP
+
+.B theme
+.I string
+.PP
+The
+.I theme
+statement defines what theme is used to display GOsa pages. You can install some
+corporate identity like theme and/or modify certain templates to fit your needs
+within themes. Take a look at the GOsa
+.I FAQ
+for more information.
+.PP
+
+.B sessionLifetime
+.I int
+.PP
+The
+.I sessionLifetime
+value defines when a session will expire in seconds. For Debian systems, this will
+not work because the sessions will be removed by a cron job instead. Please modify
+the value inside of your php.ini instead.
+.PP
+
+.B primaryGroupFilter
+.I bool
+.PP
+The
+.I primaryGroupFilter
+variable enables or disables the group filter to show primary user groups. It is
+time consuming to evaluate which groups are primary and which are not. So you may
+want to set it to
+.I true
+if your group plugin is slow.
+.PP
+
+.B iePngWorkaround
+.I bool
+.PP
+The
+.I iePngWorkaround
+variable enables or disables a workaround for IE < 7 in order to display transparent
+PNG files correctly. This drastically slows down browsing. Please use Firefox or Opera
+instead.
+.PP
+.PP
+
+
+.B Password options
+.PP
+.B passwordMinLength
+.I integer
+.PP
+The
+.I passwordMinLength
+statement determines whether a newly entered password has to be of
+a minimum length.
+.PP
+
+.B passwordMinDiffer
+.I integer
+.PP
+The
+.I passwordMinDiffer
+statement determines whether a newly entered password has to be checked
+to have at least n different characters.
+.PP
+
+.B passwordHook
+.I path
+.PP
+The
+.I passwordHook
+can specify an external script to handle password settings at some other
+location besides the LDAP. It will be called this way:
+
+.nf
+/path/to/your/script "username" "oldpassword" "newpassword"
+.fi
+
+.B handleExpiredAccounts
+.I bool
+.PP
+The
+.I handleExpiredAccounts
+statement enables shadow attribute tests during the login to the GOsa web
+interface and forces password renewal or account lockout.
+.PP
+
+.B useSaslForKerberos
+.I bool
+.PP
+The
+.I useSaslForKerberos
+statement defines the way the kerberos realm is stored in the
+.I userPassword
+attribute. Set it to
+.I true
+in order to get {sasl}user at REALM.NET, or to
+.I false
+to get {kerberos}user at REALM.NET. The latter is outdated, but may be
+needed from time to time.
+.PP
+.PP
+
+
+.B LDAP options
+.PP
+.B ldapMaxQueryTime
+.I integer
+.PP
+The
+.I ldapMaxQueryTime
+statement tells GOsa to stop LDAP actions if there is no answer within the
+specified number of seconds.
+.PP
+
+.B schemaCheck
+.I bool
+.PP
+The
+.I schemaCheck
+statement enables or disables schema checking during login. It is recommended
+to switch this on in order to let GOsa handle object creation more efficient.
+.PP
+
+.B ldapTLS
+.I bool
+.PP
+The
+.I ldapTLS
+statement enables or disables TLS operating on LDAP connections.
+.PP
+
+.B accountPrimaryAttribute
+.I cn/uid
+.PP
+The
+.I accountPrimaryAttribute
+option tells GOsa how to create new accounts. Possible values are
+.I uid
+and
+.I cn.
+In the first case GOsa creates uid style DN entries:
+.nf
+uid=superuser,ou=staff,dc=example,dc=net
+.fi
+In the second case, GOsa creates cn style DN entries:
+.nf
+cn=Foo Bar,ou=staff,dc=example,dc=net
+.fi
+If you choose "cn" to be your
+.I accountPrimaryAttribute
+you can decide whether to include the personal title in your dn by
+selecting
+.I personalTitleInDN.
+.PP
+
+.B accountRDN
+.I pattern
+.PP
+The
+.I accountRDN
+option tells GOsa to use a placeholder pattern for generating account
+RDNs. A pattern can include attribute names prefaced by a % and normal
+text:
+.nf
+accountRDN="cn=%sn %givenName"
+.fi
+This will generate a RDN consisting of cn=.... filled with surname and
+given name of the edited account. This option disables the use of
+.I accountPrimaryAttribute
+and
+.I personalTitleInDn
+in your config. The latter attributes are maintained for compatibility.
+
+
+.B personalTitleInDN
+.I bool
+.PP
+The
+.I personalTitleInDN
+option tells GOsa to include the personal title in user DNs when
+.I accountPrimaryAttribute
+is set to "cn".
+
+.B userRDN
+.I string
+.PP
+The
+.I userRDN
+statement defines the location where new accounts will be created inside of
+defined departments. The default is
+.I ou=people.
+.PP
+
+.B groupsRDN
+.I string
+.PP
+The
+.I groupsRDN
+statement defines the location where new groups will be created inside of
+defined departments. The default is
+.I ou=groups.
+.PP
+
+.B sudoRDN
+.I string
+.PP
+The
+.I sudoRDN
+statement defines the location where new groups will be created inside of
+defined departments. The default is
+.I ou=groups.
+.PP
+
+.B sambaMachineAccountRDN
+.I string
+.PP
+This statement defines the location where GOsa looks for new samba workstations.
+.PP
+
+.B ogroupRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new object groups inside of defined
+departments. Default is
+.I ou=groups.
+.PP
+
+.B serverRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new servers inside of defined
+departments. Default is
+.I ou=servers.
+.PP
+
+.B terminalRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new terminals inside of defined
+departments. Default is
+.I ou=terminals.
+.PP
+
+.B workstationRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new workstations inside of defined
+departments. Default is
+.I ou=workstations.
+.PP
+
+.B printerRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new printers inside of defined
+departments. Default is
+.I ou=printers.
+.PP
+
+.B componentRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new network components inside of defined
+departments. Default is
+.I ou=components.
+.PP
+
+.B phoneRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new phones inside of defined
+departments. Default is
+.I ou=phones.
+.PP
+
+.B phoneConferenceRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new phone conferences inside of defined
+departments. Default is
+.I ou=conferences.
+.PP
+
+.B faxBlocklistRDN
+.I string
+.PP
+This statement defines the location where GOsa creates new fax blocklists inside of defined
+departments. Default is
+.I ou=blocklists.
+.PP
+
+.B systemIncomingRDN
+.I string
+.PP
+This statement defines the location where GOsa looks for new systems to be joined to the LDAP.
+Default is
+.I ou=incoming.
+.PP
+
+.B systemRDN
+.I string
+.PP
+This statement defines the base location for servers, workstations, terminals, phones and
+components. Default is
+.I ou=systems.
+.PP
+
+.B ogroupRDN
+.I string
+.PP
+This statement defines the location where GOsa looks for object groups.
+Default is
+.I ou=groups.
+.PP
+
+.B aclRoleRDN
+.I string
+.PP
+This statement defines the location where GOsa stores ACL role definitions.
+Default is
+.I ou=aclroles.
+.PP
+
+.B phoneMacroRDN
+.I string
+.PP
+This statement defines the location where GOsa stores phone macros for use with the Asterisk
+phone server.
+Default is
+.I ou=macros,ou=asterisk,ou=configs,ou=systems.
+.PP
+
+.B faiBaseRDN
+.I string
+.PP
+This statement defines the location where GOsa looks for FAI settings.
+Default is
+.I ou=fai,ou=configs,ou=systems.
+.PP
+
+.B faiScriptRDN, faiHookRDN, faiTemplateRDN, faiVariableRDN, faiProfileRDN, faiPackageRDN, faiPartitionRDN 
+.I string
+.PP
+These statement define the location where GOsa stores FAI classes. The complete base for the
+corresponding class is an additive of
+.B faiBaseRDN
+an and this value.
+.PP
+
+.B deviceRDN
+.I string
+.PP
+This statement defines the location where GOsa looks for devices.
+Default is
+.I ou=devices.
+.PP
+
+.B mimetypeRDN
+.I string
+.PP
+This statement defines the location where GOsa stores mime type definitions.
+Default is
+.I ou=mimetypes.
+.PP
+
+.B applicationRDN
+.I string
+.PP
+This statement defines the location where GOsa stores application definitions.
+Default is
+.I ou=apps.
+.PP
+
+.B ldapFilterNestingLimit
+.I integer
+.PP
+The
+.I ldapFilterNestingLimit
+statement can be used to speed up group handling for groups with several hundreds of members.
+The default behaviour is, that GOsa will resolv the memberUid values in a group to real names.
+To achieve this, it writes a single filter to minimize searches. Some LDAP servers (namely
+Sun DS) simply crash when the filter gets too big. You can set a member limit, where GOsa will
+stop to do these lookups.
+.PP
+
+.B ldapSizelimit
+.I integer
+.PP
+The
+.I ldapSizelimit
+statement tells GOsa to retrieve the specified maximum number of results. The user will get
+a warning, that not all entries were shown.
+.PP
+
+.B ldapFollowReferrals
+.I bool
+.PP
+The
+.I ldapFollowReferrals
+statement tells GOsa to follow LDAP referrals.
+.PP
+.PP
+
+
+.B Account creation options
+.PP
+.B uidNumberBase
+.I integer
+.PP
+The
+.I uidNumberBase
+statement defines where to start looking for a new free user id. This should be synced
+with your
+.I adduser.conf
+to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase
+can even be dynamic. Take a look at the
+.I baseIdHook
+definition below.
+.PP
+
+.B gidNumberBase
+.I integer
+.PP
+The
+.I gidNumberBase
+statement defines where to start looking for a new free group id. This should be synced
+with your
+.I adduser.conf
+to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase
+can even be dynamic. Take a look at the
+.I nextIdHook
+definition below.
+.PP
+
+.B idAllocationMethod
+.I traditional/pool
+.PP
+The
+.I idAllocationMethod
+statement defines how GOsa generates numeric user and group id values. If it is set to
+.I traditional
+GOsa will do create a lock and perform a search for the next free ID. The lock will be
+removed after the procedure completes.
+.I pool
+will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe,
+because it does not check for concurrent LDAP access and already used IDs in this range. 
+On the other hand it is much faster.
+.PP
+
+.B minId
+.I integer
+.PP
+The
+.I minId
+statement defines the minimum assignable user or group id to avoid security leaks with
+uid 0 accounts. This is used for the
+.I traditional
+method
+.PP
+
+.B uidNumberPoolMin/gidNumberPoolMin
+.I integer
+.PP
+The
+.I uidNumberPoolMin/gidNumberPoolMin
+statement defines the minimum assignable user/group id for use with the
+.I pool
+method.
+.PP
+
+.B uidNumberPoolMax/gidNumberPoolMax
+.I integer
+.PP
+The
+.I uidNumberPoolMin/gidNumberPoolMin
+statement defines the highest assignable user/group id for use with the
+.I pool
+method.
+.PP
+
+.B nextIdHook
+.I path
+.PP
+The
+.I nextIdHook
+statement defines a script to be called for finding the next free id for users or groups
+externaly. It gets called with the current entry "dn" and the attribute to be ID'd. It
+should return an integer value.
+.PP
+
+.B hash
+.I string
+.PP
+The
+.I hash
+statement defines the default password hash to choose for new accounts. Valid values are
+.I crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear
+and
+.I sasl.
+These values will be overridden when using templates.
+.PP
+
+.B idGenerator
+.I string
+.PP
+The
+.I idGenerator
+statement describes an automatic way to generate new user ids. There are two basic
+functions supported - which can be combined:
+
+ a) using attributes
+
+    You can specify LDAP attributes (currently only sn and givenName) in
+    braces {} and add a percent sign befor it. Optionally you can strip it
+    down to a number of characters, specified in []. I.e.
+
+.nf
+      idGenerator="{%sn}-{%givenName[2-4]}"
+.fi
+
+    will generate an ID using the full surename, adding a dash, and adding at
+    least the first two characters of givenName. If this ID is used, it'll
+    use up to four characters. If no automatic generation is possible, a
+    input box is shown.
+
+ b) using automatic id's
+
+    I.e. specifying
+
+.nf
+      idGenerator="acct{id:3}"
+.fi
+
+    will generate a three digits id with the next free entry appended to
+    "acct".
+
+.nf
+      idGenerator="acct{id!1}"
+.fi
+
+    will generate a one digit id with the next free entry appended to
+    "acct" - if needed.
+
+.nf
+      idGenerator="ext{id#3}"
+.fi
+
+    will generate a three digits random number appended to "ext".
+.PP
+.PP
+
+
+.B Samba options
+.PP
+.B sambaSID
+.I string
+.PP
+The
+.I sambaSID
+statement defines a samba SID if not available inside of the LDAP. You can retrieve
+the current sid by
+.I net getlocalsid.
+.PP
+
+.B sambaRidBase
+.I integer
+.PP
+The
+.I sambaRidBase
+statement defines the base id to add to ordinary sid calculations - if not available
+inside of the LDAP.
+.PP
+
+.B sambaHashHook
+.I path
+.PP
+The
+.I sambaHashHook
+statement contains an executable to generate samba hash values. This is required
+for password synchronization, but not required if you apply gosa-si services.
+If you don't have mkntpasswd from the samba distribution installed, you can use
+perl to generate the hash:
+
+.nf
+perl \-MCrypt::SmbHash \-e "print join(q[:], ntlmgen \\$ARGV[0]), $/;"
+.if
+.PP
+
+.B sambaidmapping
+.I bool
+.PP
+The
+.I sambaidmapping
+statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your
+setup this can drastically improve the windows login performance.
+.PP
+.PP
+
+.B Asterisk options
+.PP
+.B ctiHook
+.I path
+.PP
+The
+.I ctiHook
+statement defines a script to be executed if someone clicks on a phone number
+inside of the addressbook plugin. It gets called with two parameters:
+
+.nf
+ctiHook $source_number $destination_number
+.fi
+
+This script can be used to do automatted dialing from the addressbook.
+.PP
+.PP
+
+.B Mail options
+.PP
+.B mailMethod
+.I Cyrus/SendmailCyrus/Kolab/Kolab22
+.PP
+The
+.I mailMethod
+statement tells GOsa which mail method the setup should use to communicate
+with a possible mail server. Leave this undefined if your mail method does
+not match the predefined ones.
+
+.I Cyrus
+maintains accounts and sieve scripts in cyrus servers.
+.I Kolab/Kolab22
+is like cyrus, but lets the kolab daemon maintain the accounts.
+.I SendmailCyrus is based on sendmail LDAP attributes.
+.PP
+
+.B cyrusUseSlashes
+.I bool
+.PP
+The
+.I cyrusUseSlashes
+statement determines if GOsa should use "foo/bar" or "foo.bar" namespaces
+in IMAP. Unix style is with slashes.
+
+.B cyrusDeleteMailbox
+.I bool
+.PP
+The
+.I cyrusDeleteMailbox
+statement determines if GOsa should remove the mailbox from your IMAP
+server or keep it after the account is deleted in LDAP.
+
+.B cyrusAutocreateFolders
+.I string
+.PP
+The
+.I cyrusAutocreateFolders
+statement contains a comma separated list of personal IMAP folders that
+should be created along initial account creation.
+
+.B postfixRestrictionFilters
+.I path
+.PP
+The
+.I postfixRestrictionFilters
+statement defines a file to include for the postfix module in order
+to display user defined restriction filters.
+
+.B postfixProtocols
+.I path
+.PP
+The
+.I postfixProtocols
+statement defines a file to include for the postfix module in order
+to display user defined protocols.
+
+.B mailAttribute
+.I mail/uid
+.PP
+The
+.I mailAttribute
+statement determines which attribute GOsa will use to create accounts.
+Valid values are
+.I mail
+and
+.I uid.
+
+.B imapTimeout
+.I Integer (default 10) 
+.PP
+The
+.I imapTimeout
+statement sets the connection timeout for imap actions.
+
+.B mailFolderCreation
+Every mail method has its own way to create mail accounts like 
+.I share/development
+or 
+.I shared.development at example.com
+which is used to identify the accounts, set quotas or add acls. 
+
+To override the methods default account creation syntax, you can set the
+.I mailFolderCreation
+option.
+
+.I Examples
+
+.nf
+ mailFolderCreation="%prefix%%cn%"              => "shared.development"
+ mailFolderCreation="my-prefix.%cn%%domain%"    => "my-prefix.development at example.com">
+.fi
+
+.I Placeholders
+
+.nf
+ %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
+ %cn%        The groups/users cn.
+ %uid%       The users uid.
+ %mail%      The objects mail attribute.
+ %domain%    The domain part of the objects mail attribute.
+ %mailpart%  The user address part of the mail address.
+ %uattrib%   Depends on mailAttribute="uid/mail".
+.fi
+
+
+.B mailUserCreation
+This attribute allows to override the user account creation syntax, see
+the
+.I mailFolderCreation
+description for more details. 
+
+.I Examples
+
+.nf
+ mailUserCreation="%prefix%%uid%"           => "user.foobar"
+ mailUserCreation=my-prefix.%uid%%domain%"  => "my-prefix.foobar at example.com"
+.fi
+
+
+.B vacationTemplateDirectory
+.I path
+.PP
+The
+.I vacationTemplateDirectory
+statement sets the path where GOsa will look for vacation message
+templates. Default is /etc/gosa/vacation.
+
+Example template /etc/gosa/vacation/business.txt:
+
+.nf
+   DESC:Away from desk
+   Hi, I'm currently away from my desk. You can contact me on
+   my cell phone via %mobile.
+
+   Greetings,
+   %givenName %sn
+.fi
+.PP
+
+
+.B Debug options
+.PP
+.B displayerrors
+.I bool
+.PP
+The
+.I displayerrors
+statement tells GOsa to show PHP errors in the upper part of the screen. This
+should be disabled in productive deployments, because there might be some
+important passwords arround.
+.PP
+
+.B ldapstats
+.I bool
+.PP
+The
+.I ldapstats
+statement tells GOsa to track LDAP timing statistics to the syslog. This may
+help to find indexing problems or bad search filters.
+.PP
+
+.B ignoreAcl
+.I dn
+.PP
+The
+.I ignoreAcl
+value tells GOsa to ignore complete ACL sets for the given DN. Add your
+DN here and you'll be able to restore accidently dropped ACLs.
+.PP
+
+.B debuglevel
+.I integer
+.PP
+The
+.I debuglevel
+value tells GOsa to display certain information on each page load. Value
+is an AND combination of the following byte values:
+
+DEBUG_TRACE   = 1
+
+DEBUG_LDAP    = 2
+
+DEBUG_MYSQL   = 4
+
+DEBUG_SHELL   = 8
+
+DEBUG_POST    = 16
+
+DEBUG_SESSION = 32
+
+DEBUG_CONFIG  = 64
+
+DEBUG_ACL     = 128
+
+DEBUG_SI      = 256
+
+DEBUG_MAIL    = 512
+.PP
+
+
+.SH LDAP resource definition
+
+For every location you define inside your gosa.conf, you need at least
+one entry of the type
+.I referral.
+These entries define the way how to connect to some directory service.
+
+.B Example:
+
+.nf
+  <referral uri="ldap://ldap.example.net/dc=example,dc=net"
+            admin="cn=gosa-admin,dc=example,dc=net"
+            password="secret" />
+.fi
+
+.I uri
+is a valid LDAP uri extendet by the base this referral is responsible for.
+.I admin
+is the DN which has the permission to write LDAP entries. And
+.I password
+is the corresponding password for this DN.
+
+You can define a set of referrals if you have several server to
+connect to.
+
+.SH Settings for the environment plugin
+
+In order to make full use of the environment plugin, you may want
+to define the location where kiosk profiles will be stored on the
+servers harddisk.
+
+This is done by the
+.I kioskPath
+keyword defined within the
+.I environment
+class definition inside your gosa.conf.
+
+.B Example:
+
+.nf
+  <plugin acl="users/environment"
+          class="environment"
+          kioskPath="/var/spool/kiosk"/>
+.fi
+
+Make sure, that this path is writeable by GOsa.
+
+.SH Settings for the FAI plugin
+
+The FAI plugin can be used in a way that it generates branched or
+freezed releases inside your repository. Specifying the
+.I postcreate
+and
+.I postmodify
+keywords in the
+.I servrepository
+definition, calls the provided script as a hook when adding or
+removing branches. This script should do the rest inside of your
+repository.
+
+.B Example:
+
+.nf
+  <tab class="servrepository" 
+          repositoryBranchHook="/opt/dak/bin/get_extra_repos"
+          postcreate="/opt/dak/bin/handle_repository '%lock_dn' '%lock_name' '%lock_type' />
+.fi
+
+.I %lock_dn
+keeps the base DN of the source branch,
+.I %lock_name
+the name of the new branch and
+.I %lock_type
+is either "freeze" or "branch".
+
+The
+.I repositoryBranchHook
+outputs additional releases, that are not retrieveable with the standard
+GOsa/FAI methods.
+
+If you have only one release, or want to define a default release to be shown
+by GOsa, define the
+.I defaultFaiRelease="ou=sarge,ou=fai,ou=configs,ou=syst..."
+within the 
+.I faiManagement
+class definition
+
+.SH Settings for the addressbook plugin
+
+The addressbook plugin can be configured to store the addressbook data on
+a special location. Use the
+.I addressbookBaseDN
+keyword within the
+.I addressbook
+class definition inside your gosa.conf to configure this location.
+
+Default:
+.I ou=addressbook.
+
+.SH Settings for system plugins
+For the
+.I workstationStartup
+and
+.I terminalStartup
+classes, you can define the
+.I systemKernelsHook
+keyword. It can load additional kernels that are not retrieveable by
+standard GOsa/FAI mechanisms.
+
+In order to make use of SNMP information, you can set the
+.I snmpCommunity
+in the
+.I terminfo
+class definition.
+
+To enable the burn CD image function, you can specify the
+.I systemIsoHook
+in the
+.I workgeneric
+class. You will get a CD symbol in the systems list - which calls
+the hook if pressed.
+
+.SH AUTHOR
+.B gosa.conf(5)
+was written by Cajus Pollmeier for
+the GOsa project (
+.B http://www.gosa-project.org
+).
diff --git a/gosa-core/contrib/latex2html b/gosa-core/contrib/latex2html
new file mode 100755
index 0000000..5b4e3f7
--- /dev/null
+++ b/gosa-core/contrib/latex2html
@@ -0,0 +1,17413 @@
+#! /usr/bin/perl
+#
+# $Id: latex2html.pin,v 1.71 2004/01/06 23:49:54 RRM Exp $
+#
+# Comprises patches and revisions by various authors:
+#   See Changes, the log file of LaTeX2HTML.
+#
+# Original Copyright notice:
+#
+# LaTeX2HTML by Nikos Drakos <nikos at cbl.leeds.ac.uk>
+
+# ****************************************************************
+# LaTeX To HTML Translation **************************************
+# ****************************************************************
+# LaTeX2HTML is a Perl program that translates LaTeX source
+# files into HTML (HyperText Markup Language). For each source
+# file given as an argument the translator will create a
+# directory containing the corresponding HTML files.
+#
+# The man page for this program is included at the end of this file
+# and can be viewed using "perldoc latex2html"
+#
+# For more information on this program and some examples of its
+# capabilities visit 
+#
+#          http://www.latex2html.org/
+#
+# or see the accompanying documentation in the docs/  directory
+#
+# or
+#
+#    http://www-texdev.ics.mq.edu.au/l2h/docs/manual/
+#
+# or
+#
+#    http://www.cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/
+#
+# Original code written by Nikos Drakos, July 1993.
+#
+# Address: Computer Based Learning Unit
+#          University of Leeds
+#          Leeds,  LS2 9JT
+#
+# Copyright (c) 1993-95. All rights reserved.
+#
+#
+# Extensively modified by Ross Moore, Herb Swan and others
+#
+# Address: Mathematics Department
+#          Macquarie University
+#          Sydney, Australia, 2109 
+#
+# Copyright (c) 1996-2001. All rights reserved.
+#
+# See general license in the LICENSE file.
+#
+##########################################################################
+
+use 5.003; # refuse to work with old and buggy perl version
+#use strict;
+#use diagnostics;
+
+# include some perl packages; these come with the standard distribution
+use Getopt::Long;
+use Fcntl;
+use AnyDBM_File;
+
+# The following are global variables that also appear in some modules
+use vars qw($LATEX2HTMLDIR $LATEX2HTMLPLATDIR $SCRIPT
+            %Month %used_icons $inside_tabbing $TABLE_attribs
+            %mathentities $date_name $outer_math $TABLE__CELLPADDING_rx);
+
+BEGIN {
+  # print "scanning for l2hdir\n";
+  if($ENV{'LATEX2HTMLDIR'}) {
+    $LATEX2HTMLDIR = $ENV{'LATEX2HTMLDIR'};
+  } else {
+    $ENV{'LATEX2HTMLDIR'} = $LATEX2HTMLDIR = '/usr/share/latex2html';
+  }
+
+  if($ENV{'LATEX2HTMLPLATDIR'}) {
+    $LATEX2HTMLPLATDIR = $ENV{'LATEX2HTMLPLATDIR'};
+  } else {
+    $LATEX2HTMLPLATDIR = '/usr/share/latex2html'||$LATEX2HTMLDIR;
+    $ENV{'LATEX2HTMLPLATDIR'} = $LATEX2HTMLPLATDIR;
+  }
+  if(-d $LATEX2HTMLPLATDIR) {
+    push(@INC,$LATEX2HTMLPLATDIR);
+  }
+
+  if(-d $LATEX2HTMLDIR) {
+    push(@INC,$LATEX2HTMLDIR);
+  } else {
+    die qq{Fatal: Directory "$LATEX2HTMLDIR" does not exist.\n};
+  }
+}
+
+use L2hos; # Operating system dependent routines
+
+# $^W = 1; # turn on warnings
+
+my $RELEASE = '2002-2-1';
+my ($REVISION) = q$Revision: 1.71 $ =~ /:\s*(\S+)/;
+
+# The key, which delimts expressions defined in the environment
+# depends on the operating system. 
+$envkey = L2hos->pathd();
+
+# $dd is the directory delimiter character
+$dd = L2hos->dd();
+
+# make sure the $LATEX2HTMLDIR is on the search-path for forked processes
+if($ENV{'PERL5LIB'}) {
+  $ENV{'PERL5LIB'} .= "$envkey$LATEX2HTMLDIR"
+    unless($ENV{'PERL5LIB'} =~ m|\Q$LATEX2HTMLDIR\E|o);
+} else {
+  $ENV{'PERL5LIB'} = $LATEX2HTMLDIR;
+}
+
+# Local configuration, read at runtime
+# Read the $CONFIG_FILE  (usually l2hconf.pm )
+if($ENV{'L2HCONFIG'}) {
+  require $ENV{'L2HCONFIG'} ||
+    die "Fatal (require $ENV{'L2HCONFIG'}): $!";
+} else {
+  eval 'use l2hconf';
+  if($@) {
+    die "Fatal (use l2hconf): $@\n";
+  }
+}
+
+# MRO: Changed this to global value in config/config.pl
+# change these whenever you do a patch to this program and then
+# name the resulting patch file accordingly
+# $TVERSION = "2002-2-1";
+#$TPATCHLEVEL = " beta";
+#$TPATCHLEVEL = " release";
+#$RELDATE = "(March 30, 1999)";
+#$TEX2HTMLV_SHORT = $TVERSION . $TPATCHLEVEL;
+
+$TEX2HTMLV_SHORT = $RELEASE;
+$TEX2HTMLVERSION = "$TEX2HTMLV_SHORT ($REVISION)";
+$TEX2HTMLADDRESS = "http://www.latex2html.org/";
+$AUTHORADDRESS = "http://cbl.leeds.ac.uk/nikos/personal.html";
+#$AUTHORADDRESS2 = "http://www-math.mpce.mq.edu.au/%7Eross/";
+$AUTHORADDRESS2 = "http://www.maths.mq.edu.au/~ross/";
+
+# Set $HOME to what the system considers the home directory
+$HOME = L2hos->home();
+push(@INC,$HOME);
+
+# flush stdout with every print -- gives better feedback during
+# long computations
+$| = 1;
+
+# set Perl's subscript separator to LaTeX's illegal character.
+# (quite defensive but why not)
+$; = "\000";
+
+# No arguments!!
+unless(@ARGV) {
+  die "Error: No files to process!\n";
+}
+
+# Image prefix
+$IMAGE_PREFIX = '_image';
+
+# Partition prefix 
+$PARTITION_PREFIX = 'part_' unless $PARTITION_PREFIX;
+
+# Author address
+ at address_data = &address_data('ISO');
+$ADDRESS = "$address_data[0]\n$address_data[1]";
+
+# ensure non-zero defaults
+$MAX_SPLIT_DEPTH = 4 unless ($MAX_SPLIT_DEPTH);
+$MAX_LINK_DEPTH = 4 unless ($MAX_LINK_DEPTH);
+$TOC_DEPTH = 4 unless ($TOC_DEPTH);
+
+# A global value may already be set in the $CONFIG_FILE
+$INIT_FILE_NAME = $ENV{'L2HINIT_NAME'} || '.latex2html-init'
+   unless $INIT_FILE_NAME;
+
+# Read the $HOME/$INIT_FILE_NAME if one is found
+if (-f "$HOME$dd$INIT_FILE_NAME" && -r _) {
+    print "Note: Loading $HOME$dd$INIT_FILE_NAME\n";
+    require("$HOME$dd$INIT_FILE_NAME");
+    $INIT_FILE = "$HOME$dd$INIT_FILE_NAME";
+    # _MRO_TODO_: Introduce a version to be checked?
+    die "Error: You have an out-of-date " . $HOME .
+	"$dd$INIT_FILE_NAME file.\nPlease update or delete it.\n"
+	if ($DESTDIR eq '.');
+}
+
+# Read the $INIT_FILE_NAME file if one is found in current directory
+if ( L2hos->Cwd() ne $HOME && -f ".$dd$INIT_FILE_NAME" && -r _) {
+    print "Note: Loading .$dd$INIT_FILE_NAME\n";
+    require(".$dd$INIT_FILE_NAME");
+    $INIT_FILE = "$INIT_FILE_NAME";
+}
+die "Error: '.' is an incorrect setting for DESTDIR.\n" .
+    "Please check your $INIT_FILE_NAME file.\n"
+    if ($DESTDIR eq '.');
+
+# User home substitutions
+$LATEX2HTMLSTYLES =~ s/~([$dd$dd$envkey]|$)/$HOME$1/go;
+# the next line fails utterly on non-UNIX systems
+$LATEX2HTMLSTYLES =~ s/~([^$dd$dd$envkey]+)/L2hos->home($1)/geo;
+
+#absolutise the paths
+$LATEX2HTMLSTYLES = join($envkey,
+                        map(L2hos->Make_directory_absolute($_),
+                                split(/$envkey/o, $LATEX2HTMLSTYLES)));
+
+#HWS:  That was the last reference to HOME.  Now set HOME to $LATEX2HTMLDIR,
+#	to enable dvips to see that version of .dvipsrc!  But only if we
+#	have DVIPS_MODE not set - yes - this is a horrible nasty kludge
+# MRO: The file has to be updated by configure _MRO_TODO_
+
+if ($PK_GENERATION && ! $DVIPS_MODE) {
+    $ENV{HOME} =  $LATEX2HTMLDIR;
+    delete $ENV{PRINTER}; # Overrides .dvipsrc
+}
+
+# language of the DTD specified in the <DOCTYPE...> tag
+$ISO_LANGUAGE = 'EN' unless $ISO_LANGUAGE;
+
+# Save the command line arguments, quote where necessary
+$argv = join(' ', map {/[\s#*!\$%]/ ? "'$_'" : $_ } @ARGV);
+
+# Pre-process the command line for backward compatibility
+foreach(@ARGV) {
+  s/^--?no_/-no/; # replace e.g. no_fork by nofork
+  # s/^[+](\d+)$/$1/; # remove + in front of integers
+}
+
+# Process command line options
+my %opt;
+unless(GetOptions(\%opt, # all non-linked options go into %opt
+        # option                linkage (optional)
+        'help|h',
+        'version|V',
+        'split=s',
+        'link=s',
+        'toc_depth=i',          \$TOC_DEPTH,
+        'toc_stars!',           \$TOC_STARS,
+        'short_extn!',          \$SHORTEXTN,
+        'iso_language=s',       \$ISO_LANGUAGE,
+        'validate!',            \$HTML_VALIDATE,
+        'latex!',
+        'djgpp!',               \$DJGPP,
+        'fork!',                \$CAN_FORK,
+        'external_images!',     \$EXTERNAL_IMAGES,
+        'ascii_mode!',          \$ASCII_MODE,
+        'lcase_tags!',          \$LOWER_CASE_TAGS,
+        'ps_images!',           \$PS_IMAGES,
+        'font_size=s',          \$FONT_SIZE,
+        'tex_defs!',            \$TEXDEFS,
+        'navigation!',
+        'top_navigation!',      \$TOP_NAVIGATION,
+        'bottom_navigation!',   \$BOTTOM_NAVIGATION,
+        'auto_navigation!',     \$AUTO_NAVIGATION,
+        'index_in_navigation!', \$INDEX_IN_NAVIGATION,
+        'contents_in_navigation!', \$CONTENTS_IN_NAVIGATION,
+        'next_page_in_navigation!', \$NEXT_PAGE_IN_NAVIGATION,
+        'previous_page_in_navigation!', \$PREVIOUS_PAGE_IN_NAVIGATION,
+        'footnode!',
+        'numbered_footnotes!',  \$NUMBERED_FOOTNOTES,
+        'prefix=s',             \$PREFIX,
+        'auto_prefix!',         \$AUTO_PREFIX,
+        'long_titles=i',        \$LONG_TITLES,
+        'custom_titles!',       \$CUSTOM_TITLES,
+        'title|t=s',            \$TITLE,
+        'rooted!',              \$ROOTED,
+        'rootdir=s',
+        'dir=s',                \$FIXEDDIR,
+        'mkdir',                \$MKDIR,
+        'address=s',            \$ADDRESS,
+        'noaddress',
+        'subdir!',
+        'info=s',               \$INFO,
+        'noinfo',
+        'auto_link!',
+        'reuse=i',              \$REUSE,
+        'noreuse',
+        'antialias_text!',      \$ANTI_ALIAS_TEXT,
+        'antialias!',           \$ANTI_ALIAS,
+        'transparent!',         \$TRANSPARENT_FIGURES,
+        'white!',               \$WHITE_BACKGROUND,
+        'discard!',             \$DISCARD_PS,
+        'image_type=s',         \$IMAGE_TYPE,
+        'images!',
+        'accent_images=s',      \$ACCENT_IMAGES,
+        'noaccent_images',
+        'style=s',              \$STYLESHEET,
+        'parbox_images!',
+        'math!',
+        'math_parsing!',
+        'latin!',
+        'entities!',            \$USE_ENTITY_NAMES,
+        'local_icons!',         \$LOCAL_ICONS,
+        'scalable_fonts!',      \$SCALABLE_FONTS,
+        'images_only!',         \$IMAGES_ONLY,
+        'show_section_numbers!',\$SHOW_SECTION_NUMBERS,
+        'show_init!',           \$SHOW_INIT_FILE,
+        'init_file=s',          \$INIT_FILE,
+        'up_url=s',             \$EXTERNAL_UP_LINK,
+        'up_title=s',           \$EXTERNAL_UP_TITLE,
+        'down_url=s',           \$EXTERNAL_DOWN_LINK,
+        'down_title=s',         \$EXTERNAL_DOWN_TITLE,
+        'prev_url=s',           \$EXTERNAL_PREV_LINK,
+        'prev_title=s',         \$EXTERNAL_PREV_TITLE,
+        'index=s',              \$EXTERNAL_INDEX,
+        'biblio=s',             \$EXTERNAL_BIBLIO,
+        'contents=s',           \$EXTERNAL_CONTENTS,
+        'external_file=s',      \$EXTERNAL_FILE,
+        'short_index!',         \$SHORT_INDEX,
+        'unsegment!',           \$UNSEGMENT,
+        'debug!',               \$DEBUG,
+        'tmp=s',                \$TMP,
+        'ldump!',               \$LATEX_DUMP,
+        'timing!',              \$TIMING,
+        'verbosity=i',          \$VERBOSITY,
+        'html_version=s',       \$HTML_VERSION,
+        'strict!',              \$STRICT_HTML,
+        'xbit!',                \$XBIT_HACK,
+        'ssi!',                 \$ALLOW_SSI,
+        'php!',                 \$ALLOW_PHP,
+        'test_mode!' # undocumented switch
+       )) {
+    &usage();
+    exit 1;
+}
+
+# interpret options, check option consistency
+if(defined $opt{'split'}) {
+    if ($opt{'split'} =~ /^(\+?)(\d+)$/) {
+        $MAX_SPLIT_DEPTH = $2;
+        if ($1) { $MAX_SPLIT_DEPTH *= -1; $REL_DEPTH = 1; }
+    } else { 
+        &usage;
+        die "Error: Unrecognised value for -split: $opt{'split'}\n";
+    }
+}
+if(defined $opt{'link'}) {
+    if ($opt{'link'} =~ /^(\+?)(\d+)$/) {
+        $MAX_LINK_DEPTH = $2;
+        if ($1) { $MAX_LINK_DEPTH *= -1 }
+    } else { 
+        &usage;
+        die "Error: Unrecognised value for -link: $opt{'link'}\n";
+    }
+}
+unless ($ISO_LANGUAGE =~ /^[A-Z.]+$/) {
+    die "Error: Language (-iso_language) must be uppercase and dots only: $ISO_LANGUAGE\n";
+}
+if ($HTML_VALIDATE && !$HTML_VALIDATOR) {
+    die "Error: Need a HTML_VALIDATOR when -validate is specified.\n";
+}
+&set_if_false($NOLATEX,$opt{latex}); # negate the option...
+if ($ASCII_MODE || $PS_IMAGES) {
+    $EXTERNAL_IMAGES = 1;
+}
+if ($FONT_SIZE && $FONT_SIZE !~ /^\d+pt$/) {
+    die "Error: Font size (-font_size) must end with 'pt': $FONT_SIZE\n"
+}
+&set_if_false($NO_NAVIGATION,$opt{navigation});
+&set_if_false($NO_FOOTNODE,$opt{footnode});
+if (defined $TITLE && !length($TITLE)) {
+    die "Error: Empty title (-title).\n";
+}
+if ($opt{rootdir}) {
+    $ROOTED = 1;
+    $FIXEDDIR = $opt{rootdir};
+}
+if ($FIXEDDIR && !-d $FIXEDDIR) {
+    if ($MKDIR) {
+	print "\n *** creating directory: $FIXEDDIR ";
+	die "Failed: $!\n" unless (mkdir($FIXEDDIR, 0755));
+        # _TODO_ use File::Path to create a series of directories
+    } else {
+	&usage;
+	die "Error: Specified directory (-rootdir, -dir) does not exist.\n";
+    }
+}
+&set_if_false($NO_SUBDIR, $opt{subdir});
+&set_if_false($NO_AUTO_LINK, $opt{auto_link});
+if ($opt{noreuse}) {
+    $REUSE = 0;
+}
+unless(grep(/^\Q$IMAGE_TYPE\E$/o, @IMAGE_TYPES)) {
+    die <<"EOF";
+Error: No such image type '$IMAGE_TYPE'.
+       This installation supports (first is default): @IMAGE_TYPES
+EOF
+}
+&set_if_false($NO_IMAGES, $opt{images});
+if ($opt{noaccent_images}) {
+    $ACCENT_IMAGES = '';
+}
+if($opt{noaddress}) {
+    $ADDRESS = '';
+}
+if($opt{noinfo}) {
+    $INFO = 0;
+}
+if($ACCENT_IMAGES && $ACCENT_IMAGES !~ /^[a-zA-Z,]+$/) {
+    die "Error: Single word or comma-list of style words needed for -accent_images, not: $_\n";
+}
+&set_if_false($NO_PARBOX_IMAGES, $opt{parbox_images});
+&set_if_false($NO_SIMPLE_MATH, $opt{math});
+if (defined $opt{math_parsing}) {
+    $NO_MATH_PARSING = !$opt{math_parsing};
+    $NO_SIMPLE_MATH = !$opt{math_parsing} unless(defined $opt{math});
+}
+&set_if_false($NO_ISOLATIN, $opt{latin});
+if ($INIT_FILE) {
+    if (-f $INIT_FILE && -r _) {
+        print "Note: Initialising with file: $INIT_FILE\n"
+            if ($DEBUG || $VERBOSITY);
+        require($INIT_FILE);
+    } else {
+        die "Error: Could not find file (-init_file): $INIT_FILE\n";
+    }
+}
+foreach($EXTERNAL_UP_LINK, $EXTERNAL_DOWN_LINK, $EXTERNAL_PREV_LINK,
+        $EXTERNAL_INDEX, $EXTERNAL_BIBLIO, $EXTERNAL_CONTENTS) {
+    $_ ||= ''; # initialize
+    s/~/~/g; # protect `~'
+}
+if($TMP && !(-d $TMP && -w _)) {
+    die "Error: '$TMP' not usable as temporary directory.\n";
+}
+if ($opt{help}) {
+    L2hos->perldoc($SCRIPT);
+    exit 0;
+}
+if ($opt{version}) {
+    &banner();
+    exit 0;
+}
+if ($opt{test_mode}) {
+    return; # make /usr/bin/latex2html non-exploitable
+    $TITLE = 'LaTeX2HTML Test Document';
+    $TEXEXPAND = "$PERL /build/buildd/latex2html-2002-2-1-20050114${dd}texexpand";
+    $PSTOIMG   = "$PERL /build/buildd/latex2html-2002-2-1-20050114${dd}pstoimg";
+    $ICONSERVER = L2hos->path2URL("/build/buildd/latex2html-2002-2-1-20050114${dd}icons");
+    $TEST_MODE  = 1;
+    $RGBCOLORFILE = "/build/buildd/latex2html-2002-2-1-20050114${dd}styles${dd}rgb.txt";
+    $CRAYOLAFILE = "/build/buildd/latex2html-2002-2-1-20050114${dd}styles${dd}crayola.txt";
+}
+if($DEBUG) {
+    # make the OS-dependent functions more chatty, too
+    $L2hos::Verbose = 1;
+}
+
+undef %opt; # not needed any more
+
+
+$FIXEDDIR = $FIXEDDIR || $DESTDIR || '';  # for backward compatibility
+
+if ($EXTERNAL_UP_TITLE xor $EXTERNAL_UP_LINK) {
+    warn "Warning (-up_url, -up_title): Need to specify both a parent URL and a parent title!\n";
+    $EXTERNAL_UP_TITLE = $EXTERNAL_UP_LINK = "";
+}
+
+if ($EXTERNAL_DOWN_TITLE xor $EXTERNAL_DOWN_LINK) {
+    warn "Warning (-down_url, -down_title): Need to specify both a parent URL and a parent title!\n";
+    $EXTERNAL_DOWN_TITLE = $EXTERNAL_DOWN_LINK = "";
+}
+
+# $NO_NAVIGATION = 1 unless $MAX_SPLIT_DEPTH;	#  Martin Wilck
+
+if ($MAX_SPLIT_DEPTH && $MAX_SPLIT_DEPTH < 0) {
+    $MAX_SPLIT_DEPTH *= -1; $REL_DEPTH = 1;
+}
+if ($MAX_LINK_DEPTH && $MAX_LINK_DEPTH < 0) {
+    $MAX_LINK_DEPTH *= -1; $LEAF_LINKS = 1;
+}
+
+$FOOT_FILENAME = 'footnode' unless ($FOOT_FILENAME);
+$NO_FOOTNODE = 1 unless ($MAX_SPLIT_DEPTH || $NO_FOOTNODE);
+$NO_SPLIT = 1 unless $MAX_SPLIT_DEPTH; # _MRO_TODO_: is this needed at all?
+$SEGMENT = $SEGMENTED = 0;
+$NO_MATH_MARKUP = 1;
+
+# specify the filename extension to use with the generated HTML files
+if ($SHORTEXTN) { $EXTN = ".htm"; }	# for HTML files on CDROM
+elsif ($ALLOW_PHP) { $EXTN = ".php"; }  # has PHP dynamic includes
+	# with server-side includes (SSI) :
+elsif ($ALLOW_SSI && !$XBIT_HACK) { $EXTN = ".shtml"; }
+	# ordinary names, valid also for SSI with XBit hack :
+else { $EXTN = ".html"; }
+
+$NODE_NAME = 'node' unless (defined $NODE_NAME);
+
+# space for temporary files
+# different to the $TMPDIR for image-generation
+# MRO: No directory should end with $dd!
+$TMP_ = "TMP";
+
+$TMP_PREFIX = "l2h" unless ($TMP_PREFIX);
+
+# This can be set to 1 when using a version of dvips that is safe
+# from the "dot-in-name" bug.
+# _TODO_ this should be determined by configure
+$DVIPS_SAFE = 1;
+
+$CHARSET = $charset || 'iso-8859-1';
+
+####################################################################
+#
+# If possible, use icons of the same type as generated images
+#
+if ($IMAGE_TYPE && defined %{"icons_$IMAGE_TYPE"}) {
+    %icons = %{"icons_$IMAGE_TYPE"};
+}
+
+####################################################################
+#
+# Figure out what options we need to pass to DVIPS and store that in
+# the $DVIPSOPT variable.  Also, scaling is taken care of at the
+# dvips level if PK_GENERATION is set to 1, so adjust SCALE_FACTORs
+# accordingly.
+#
+if ($SCALABLE_FONTS) {
+    $PK_GENERATION = 0;
+    $DVIPS_MODE = '';
+}
+
+if ($PK_GENERATION) {
+    if ($MATH_SCALE_FACTOR <= 0) { $MATH_SCALE_FACTOR = 2; }
+    if ($FIGURE_SCALE_FACTOR <= 0) { $FIGURE_SCALE_FACTOR = 2; }
+    my $saveMSF = $MATH_SCALE_FACTOR;
+    my $saveFSF = $FIGURE_SCALE_FACTOR;
+    my $desired_dpi = int($MATH_SCALE_FACTOR*75);
+    $FIGURE_SCALE_FACTOR = ($METAFONT_DPI / 72) *
+	($FIGURE_SCALE_FACTOR / $MATH_SCALE_FACTOR) ;
+    $MATH_SCALE_FACTOR = $METAFONT_DPI / 72;
+    $dvi_mag = int(1000 * $desired_dpi / $METAFONT_DPI);
+    if ($dvi_mag > 1000) {
+	&write_warnings(
+	    "WARNING: Your SCALE FACTOR is too large for PK_GENERATION.\n" .
+	    "         See $CONFIG_FILE for more information.\n");
+    }
+
+    # RRM: over-sized scaling, using dvi-magnification
+    if ($EXTRA_IMAGE_SCALE) {
+	print "\n *** Images at $EXTRA_IMAGE_SCALE times resolution of displayed size ***\n";
+	$desired_dpi = int($EXTRA_IMAGE_SCALE * $desired_dpi+.5);
+	print "    desired_dpi = $desired_dpi  METAFONT_DPI = $METAFONT_DPI\n"
+            if $DEBUG;
+	$dvi_mag = int(1000 * $desired_dpi / $METAFONT_DPI);
+	$MATH_SCALE_FACTOR = $saveMSF;
+	$FIGURE_SCALE_FACTOR = $saveFSF;
+    }
+    # no space after "-y", "-D", "-e" --- required by DVIPS under DOS !
+    my $mode_switch = "-mode $DVIPS_MODE" if $DVIPS_MODE;
+    $DVIPSOPT .= " -y$dvi_mag -D$METAFONT_DPI $mode_switch -e5 ";
+} else { # no PK_GENERATION
+#    if ($EXTRA_IMAGE_SCALE) {
+#	&write_warnings(
+#	   "the \$EXTRA_IMAGE_SCALE feature requires either \$PK_GENERATION=1"
+#			. " or the '-scalable_fonts' option");
+#	$EXTRA_IMAGE_SCALE = '';
+#    }
+    # MRO: shifted to l2hconf
+    #$DVIPSOPT .= ' -M';
+} # end PK_GENERATION
+
+# The mapping from numbers to accents.
+# These are required to process the \accent command, which is found in
+# tables of contents whenever there is an accented character in a
+# caption or section title.  Processing the \accent command makes
+# $encoded_*_number work properly (see &extract_captions) with
+# captions that contain accented characters.
+# I got the numbers from the plain.tex file, version 3.141.
+
+# Missing entries should be looked up by a native speaker.
+# Have a look at generate_accent_commands and $iso_8859_1_character_map.
+
+# MEH: added more accent types
+# MRO: only uppercase needed!
+%accent_type = (
+   '18' => 'grave',		# \`
+   '19' => 'acute',		# `'
+   '20' => 'caron',		# \v
+   '21' => 'breve',		# \u
+   '22' => 'macr',		# \=
+   '23' => 'ring',		#
+   '24' => 'cedil',		# \c
+   '94' => 'circ',		# \^
+   '95' => 'dot',		# \.
+   '7D' => 'dblac',		# \H
+   '7E' => 'tilde',		# \~
+   '7F' => 'uml',		# \"
+);
+
+&driver;
+
+exit 0; # clean exit, no errors
+
+############################ Subroutines ##################################
+
+#check that $TMP is writable, if so create a subdirectory
+sub make_tmp_dir {
+    &close_dbm_database if $DJGPP; # to save file-handles
+
+    # determine a suitable temporary path
+    #
+    $TMPDIR = '';
+    my @tmp_try = ();
+    push(@tmp_try, $TMP) if($TMP);
+    push(@tmp_try, "$DESTDIR$dd$TMP_") if($TMP_);
+    push(@tmp_try, $DESTDIR) if($DESTDIR);
+    push(@tmp_try, L2hos->Cwd());
+
+    my $try;
+    TempTry: foreach $try (@tmp_try) {
+      next unless(-d $try && -w _);
+      my $tmp = "$try$dd$TMP_PREFIX$$";
+      if(mkdir($tmp,0755)) {
+        $TMPDIR=$tmp;
+	last TempTry;
+      } else {
+        warn "Warning: Cannot create temporary directory '$tmp': $!\n";
+      }
+    }
+
+    $dvips_warning = <<"EOF";
+
+Warning: There is a '.' in \$TMPDIR, $DVIPS will probably fail.
+Set \$TMP to use a /tmp directory, or rename the working directory.
+EOF
+    die ($dvips_warning . "\n\$TMPDIR=$TMPDIR  ***\n\n")
+	if ($TMPDIR =~ /\./ && $DVIPS =~ /dvips/ && !$DVIPS_SAFE);
+
+    &open_dbm_database if $DJGPP;
+}
+
+# MRO: set first parameter to the opposite of the second if second parameter is defined
+sub set_if_false {
+    $_[0] = !$_[1] if(defined $_[1]);
+}
+
+sub check_for_dots {
+    local($file) = @_;
+    if ($file =~ /\.[^.]*\./ && !$DVIPS_SAFE) {
+	die "\n\n\n *** Fatal Error --- but easy to fix ***\n"
+	    . "\nCannot have '.' in file-name prefix, else dvips fails on images"
+	    . "\nChange the name from  $file  and try again.\n\n";
+    }
+}
+
+# Process each file ...
+sub driver {
+    local($FILE, $orig_cwd, %unknown_commands, %dependent, %depends_on
+	  , %styleID, %env_style, $bbl_cnt, $dbg, %numbered_section);
+    # MRO: $texfilepath has to be global!
+    local(%styles_loaded);
+    $orig_cwd = L2hos->Cwd();
+
+    print "\n *** initialise *** " if ($VERBOSITY > 1);
+    &initialise;		# Initialise some global variables
+
+    print "\n *** check modes *** " if ($VERBOSITY > 1);
+    &ascii_mode if $ASCII_MODE;	# Must come after initialization
+    &titles_language($TITLES_LANGUAGE);
+    &make_numbered_footnotes if ($NUMBERED_FOOTNOTES);
+    $dbg = $DEBUG ? "-debug" : "";
+    $dbg .= (($VERBOSITY>2) ? " -verbose" : "");
+
+    #use the same hashes for all files in a batch
+    local(%cached_env_img, %id_map, %symbolic_labels, %latex_labels)
+	if ($FIXEDDIR && $NO_SUBDIR);
+
+    local($MULTIPLE_FILES,$THIS_FILE);
+    $MULTIPLE_FILES = 1+$#ARGV if $ROOTED;
+    print "\n *** $MULTIPLE_FILES file".($MULTIPLE_FILES ? 's: ' : ': ')
+    	. join(',', at ARGV) . " *** " if ($VERBOSITY > 1);
+
+    local(%section_info, %toc_section_info, %cite_info, %ref_files);
+    
+    foreach $FILE (@ARGV) {
+	&check_for_dots($FILE) unless $DVIPS_SAFE;
+	++$THIS_FILE if $MULTIPLE_FILES;
+	do {
+	    %section_info = ();
+	    %toc_section_info = ();
+	    %cite_info = ();
+	    %ref_files = ();
+	} unless $MULTIPLE_FILES;
+	local($bbl_nr) = 1;
+
+	# The number of reused images and those in images.tex
+	local($global_page_num) = (0) unless($FIXEDDIR && $NO_SUBDIR);
+	# The number of images in images.tex
+	local($new_page_num) = (0); # unless($FIXEDDIR && $NO_SUBDIR);
+	local($pid, $sections_rx,
+	    , $outermost_level, %latex_body, $latex_body
+	    , %encoded_section_number
+	    , %verbatim, %new_command, %new_environment
+	    , %provide_command, %renew_command, %new_theorem
+	    , $preamble, $aux_preamble, $prelatex, @preamble);
+
+	# must retain these when all files are in the same directory
+	# else the images.pl and labels.pl files get clobbered
+	unless ($FIXEDDIR && $NO_SUBDIR) {
+	    print "\nResetting image-cache" if ($#ARGV);
+	    local(%cached_env_img, %id_map, %symbolic_labels, %latex_labels)
+	}
+
+## AYS: Allow extension other than .tex and make it optional
+	($EXT = $FILE) =~ s/.*\.([^\.]*)$/$1/;
+	if ( $EXT eq $FILE ) {
+	    $EXT = "tex";
+	    $FILE =~ s/$/.tex/;
+	}
+
+	#RRM: allow user-customisation, dependent on file-name
+	# e.g. add directories to $TEXINPUTS named for the file
+	# --- idea due to Fred Drake <fdrake at acm.org>
+	&custom_driver_hook($FILE) if (defined &custom_driver_hook);
+
+# JCL(jcl-dir)
+# We need absolute paths for TEXINPUTS here, because
+# we change the directory
+	if ($orig_cwd eq $texfilepath) {
+	    &deal_with_texinputs($orig_cwd);
+	} else {
+	    &deal_with_texinputs($orig_cwd, $texfilepath);
+	}
+
+	($texfilepath, $FILE) = &get_full_path($FILE);
+	$texfilepath = '.' unless($texfilepath);
+
+	die "Cannot read $texfilepath$dd$FILE \n"
+	    unless (-f "$texfilepath$dd$FILE");
+
+
+# Tell texexpand which files we *don't* want to look at.
+	$ENV{'TEXE_DONT_INCLUDE'} = $DONT_INCLUDE if $DONT_INCLUDE;
+# Tell texexpand which files we *do* want to look at, e.g.
+# home-brew style files
+	$ENV{'TEXE_DO_INCLUDE'} = $DO_INCLUDE if $DO_INCLUDE;
+
+	$FILE =~ s/\.[^\.]*$//; ## AYS
+	$DESTDIR = ''; # start at empty
+	if ($FIXEDDIR) {
+	    $DESTDIR = $FIXEDDIR unless ($FIXEDDIR eq '.');
+	    if (($ROOTED)&&!($texfilepath eq $orig_cwd)) {
+		$DESTDIR .= $dd . $FILE unless $NO_SUBDIR;
+	    };
+	} elsif ($texfilepath eq $orig_cwd) {
+	    $DESTDIR = ($NO_SUBDIR ? '.' : $FILE);
+	} else {
+	    $DESTDIR = $ROOTED ? '.' : $texfilepath;
+	    $DESTDIR .= $dd . $FILE unless $NO_SUBDIR;
+	}
+	$PREFIX  = "$FILE-" if $AUTO_PREFIX;
+
+	print "\nOPENING $texfilepath$dd$FILE.$EXT \n"; ## AYS
+
+	next unless (&new_dir($DESTDIR,''));
+        # establish absolute path to $DESTDIR
+	$DESTDIR = L2hos->Make_directory_absolute($DESTDIR);
+        &make_tmp_dir;
+        print "\nNote: Working directory is $DESTDIR\n";
+        print "Note: Images will be generated in $TMPDIR\n\n";
+
+# Need to clean up a bit in case there's garbage left
+# from former runs.
+	if ($DESTDIR) { chdir($DESTDIR) || die "$!\n"; }
+	if (opendir (TMP,$TMP_)) {
+	    foreach (readdir TMP) {
+		L2hos->Unlink("TMP_$dd$_") unless (/^\.\.?$/);
+	    }
+	    closedir TMP; 
+	}
+	&cleanup(1);
+	unless(-d $TMP_) {
+	    mkdir($TMP_, 0755) ||
+	      die "Cannot create directory '$TMP_': $!\n";
+	}
+	chdir($orig_cwd);
+
+# RRM 14/5/98  moved this to occur earlier
+## JCL(jcl-dir)
+## We need absolute paths for TEXINPUTS here, because
+## we change the directory
+#	if ($orig_cwd eq $texfilepath) {
+#	    &deal_with_texinputs($orig_cwd);
+#	} else {
+#	    &deal_with_texinputs($orig_cwd, $texfilepath);
+#	}
+
+
+# This needs $DESTDIR to have been created ...
+	print " *** calling  `texexpand' ***" if ($VERBOSITY > 1);
+	local($unseg) = ($UNSEGMENT ? "-unsegment " : "");
+
+# does DOS need to check these here ?
+#	die "File $TEXEXPAND does not exist or is not executable\n"
+#	    unless (-x $TEXEXPAND);
+	L2hos->syswait("$TEXEXPAND $dbg -auto_exclude $unseg"
+		 . "-save_styles $DESTDIR$dd$TMP_${dd}styles "
+		 . ($TEXINPUTS ? "-texinputs $TEXINPUTS " : '' )
+		 . (($VERBOSITY >2) ? "-verbose " : '' )
+		 . "-out $DESTDIR$dd$TMP_$dd$FILE "
+		 . "$texfilepath$dd$FILE.$EXT")
+	    && die " texexpand  failed: $!\n";
+	print STDOUT "\n ***  `texexpand' done ***\n" if ($VERBOSITY > 1);
+
+	chdir($DESTDIR) if $DESTDIR;
+	$SIG{'INT'} = 'handler';
+
+	&open_dbm_database;
+	&initialise_sections;
+	print STDOUT "\n ***  database open ***\n" if ($VERBOSITY > 1);
+
+	if ($IMAGES_ONLY) {
+	    &make_off_line_images;
+	} else {
+	    &rename_image_files;
+	    &load_style_file_translations;
+	    &make_language_rx;
+	    &make_raw_arg_cmd_rx;
+#	    &make_isolatin1_rx unless ($NO_ISOLATIN);
+	    &translate_titles;
+	    &make_sections_rx;
+	    print "\nReading ...";
+	    if ($SHORT_FILENAME) {
+		L2hos->Rename ("$TMP_$dd$FILE" ,"$TMP_$dd$SHORT_FILENAME" );
+		&slurp_input_and_partition_and_pre_process(
+		      "$TMP_$dd$SHORT_FILENAME");
+	    } else {
+		&slurp_input_and_partition_and_pre_process("$TMP_$dd$FILE");
+	    }
+	    &add_preamble_head;
+	    # Create a regular expressions
+	    &set_depth_levels;
+	    &make_sections_rx;
+	    &make_order_sensitive_rx;
+	    &add_document_info_page if ($INFO && !(/\\htmlinfo/));
+	    &add_bbl_and_idx_dummy_commands;
+	    &translate;	# Destructive!
+	}
+	&style_sheet;
+	&close_dbm_database;
+	&cleanup();
+
+#JCL: read warnings from file to $warnings
+	local($warnings) = &get_warnings;
+	print "\n\n*********** WARNINGS ***********  \n$warnings"
+	    if ($warnings || $NO_IMAGES || $IMAGES_ONLY);
+	&image_cache_message if ($NO_IMAGES || $IMAGES_ONLY);
+	&image_message if ($warnings =~ /Failed to convert/io);
+	undef $warnings;
+
+# JCL - generate directory index entry.
+# Yet, a hard link, cause Perl lacks symlink() on some systems.
+	do {
+	    local($EXTN) = $EXTN;
+	    $EXTN =~ s/_\w+(\.html?)/$1/ if ($frame_main_name);
+	    local($from,$to) = (eval($LINKPOINT),eval($LINKNAME));
+	    if (length($from) && length($to) && ($from ne $to)) {
+		#frames may have altered $EXTN
+		$from =~ s/$frame_main_name(\.html?)/$1/ if ($frame_main_name);
+		$to =~ s/$frame_main_name(\.html?)/$1/ if ($frame_main_name);
+		L2hos->Unlink($to);
+		L2hos->Link($from,$to);
+	    }
+	} unless ($NO_AUTO_LINK || !($LINKPOINT) || !($LINKNAME));
+
+	&html_validate if ($HTML_VALIDATE && $HTML_VALIDATOR);
+
+# Go back to the source directory
+	chdir($orig_cwd);
+        $TEST_MODE = $DESTDIR if($TEST_MODE); # save path
+	$DESTDIR = '';
+	$OUT_NODE = 0 unless $FIXEDDIR;
+	$STYLESHEET = '' if ($STYLESHEET =~ /^\Q$FILE./);
+    }
+    print "\nUnknown commands: ". join(" ",keys %unknown_commands)
+	if %unknown_commands;
+###MEH -- math support
+    print "\nMath commands outside math: " .
+	join(" ",keys %commands_outside_math) .
+	    "\n  Output may look weird or may be faulty!\n"
+		if %commands_outside_math;
+    print "\nDone.\n";
+    if($TEST_MODE) {
+      $TEST_MODE =~ s:[$dd$dd]+$::;
+      print "\nTo view the results, point your browser at:\n",
+        L2hos->path2URL(L2hos->Make_directory_absolute($TEST_MODE).$dd.
+        "index$EXTN"),"\n";
+    }
+    $end_time = time; 
+    $total_time = $end_time - $start_time;
+    print STDOUT join(' ',"Timing:",$total_time,"seconds\n")
+	if ($TIMING||$DEBUG||($VERBOSITY > 2));
+    $_;
+}
+
+sub open_dbm_database {
+    # These are DBM (unix DataBase Management) arrays which are actually
+    # stored in external files. They are used for communication between
+    # the main process and forked child processes;
+    print STDOUT "\n"; # this mysteriously prevents a core dump !
+
+    dbmopen(%verb, "$TMP_${dd}verb",0755);
+#    dbmopen(%verbatim, "$TMP_${dd}verbatim",0755);
+    dbmopen(%verb_delim, "$TMP_${dd}verb_delim",0755);
+    dbmopen(%expanded,"$TMP_${dd}expanded",0755);
+# Holds max_id, verb_counter, verbatim_counter, eqn_number
+    dbmopen(%global, "$TMP_${dd}global",0755);
+# Hold style sheet information
+    dbmopen(%env_style, "$TMP_${dd}envstyles",0755);
+    dbmopen(%txt_style, "$TMP_${dd}txtstyles",0755);
+    dbmopen(%styleID, "$TMP_${dd}styleIDs",0755);
+
+# These next two are used during off-line image conversion
+# %new_id_map maps image id's to page_numbers of the images in images.tex
+# %image_params maps image_ids to conversion parameters for that image
+    dbmopen(%new_id_map, "$TMP_${dd}ID_MAP",0755);
+    dbmopen(%img_params, "$TMP_${dd}IMG_PARAMS",0755);
+    dbmopen(%orig_name_map, "$TMP_${dd}ORIG_MAP",0755);
+
+    $global{'max_id'} = ($global{'max_id'} | 0);
+    &read_mydb(\%verbatim, "verbatim");
+    $global{'verb_counter'} = ($global{'verb_counter'} | 0);
+    $global{'verbatim_counter'} = ($global{'verbatim_counter'} | 0);
+
+    &read_mydb(\%new_command, "new_command");
+    &read_mydb(\%renew_command, "renew_command");
+    &read_mydb(\%provide_command, "provide_command");
+    &read_mydb(\%new_theorem, "new_theorem");
+    &read_mydb(\%new_environment, "new_environment");
+    &read_mydb(\%dependent, "dependent");
+#    &read_mydb(\%env_style, "env_style");
+#    &read_mydb(\%styleID, "styleID");
+    # MRO: Why should we use read_mydb instead of catfile?
+    $preamble = &catfile(&_dbname("preamble"),1) || '';
+    $prelatex = &catfile(&_dbname("prelatex"),1) || '';
+    $aux_preamble = &catfile(&_dbname("aux_preamble"),1) || '';
+    &restore_critical_variables;
+}
+
+sub close_dbm_database {
+    &save_critical_variables;
+    dbmclose(%verb); undef %verb;
+#    dbmclose(%verbatim); undef %verbatim;
+    dbmclose(%verb_delim); undef %verb_delim;
+    dbmclose(%expanded); undef %expanded;
+    dbmclose(%global); undef %global;
+    dbmclose(%env_style); undef %env_style;
+    dbmclose(%style_id); undef %style_id;
+    dbmclose(%new_id_map); undef %new_id_map;
+    dbmclose(%img_params); undef %img_params;
+    dbmclose(%orig_name_map); undef %orig_name_map;
+    dbmclose(%txt_style); undef %txt_style;
+    dbmclose(%styleID); undef %styleID;
+}
+
+sub clear_images_dbm_database {
+    # <Added calls to dbmclose dprhws>
+    # %new_id_map will be used by the off-line image conversion process
+    #
+    dbmclose(%new_id_map);
+    dbmclose(%img_params);
+    dbmclose(%orig_name_map);
+    undef %new_id_map;
+    undef %img_params;
+    undef %orig_name_map;
+    dbmopen(%new_id_map, "$TMP_${dd}ID_MAP",0755);
+    dbmopen(%img_params, "$TMP_${dd}IMG_PARAMS",0755);
+    dbmopen(%orig_name_map, "$TMP_${dd}ORIG_MAP",0755);
+}
+
+sub initialise_sections {
+    local($key);
+    foreach $key (keys %numbered_section) {
+	$global{$key} = $numbered_section{$key}}
+}
+
+sub save_critical_variables {
+    $global{'math_markup'} = $NO_MATH_MARKUP;
+    $global{'charset'} = $CHARSET;
+    $global{'charenc'} = $charset;
+    $global{'language'} = $default_language;
+    $global{'isolatin'} = $ISOLATIN_CHARS;
+    $global{'unicode'} = $UNICODE_CHARS;
+    if ($UNFINISHED_ENV) {
+	$global{'unfinished_env'} = $UNFINISHED_ENV;
+	$global{'replace_end_env'} = $REPLACE_END_ENV;
+    }
+    $global{'unfinished_comment'} = $UNFINISHED_COMMENT;
+    if (@UNMATCHED_OPENING) {
+	$global{'unmatched'} = join(',', at UNMATCHED_OPENING);
+    }
+}
+
+sub restore_critical_variables {
+    $NO_MATH_MARKUP = ($global{'math_markup'}|
+	(defined $NO_MATH_MARKUP ? $NO_MATH_MARKUP:1));
+    $CHARSET = ($global{'charset'}| $CHARSET);
+    $charset = ($global{'charenc'}| $charset);
+    $default_language = ($global{'language'}|
+	(defined $default_language ? $default_language:'english'));
+    $ISOLATIN_CHARS = ($global{'isolatin'}|
+	(defined $ISOLATIN_CHARS ? $ISOLATIN_CHARS:0));
+    $UNICODE_CHARS = ($global{'unicode'}|
+	(defined $UNICODE_CHARS ? $UNICODE_CHARS:0));
+    if ($global{'unfinished_env'}) {
+	$UNFINISHED_ENV = $global{'unfinished_env'};
+	$REPLACE_END_ENV = $global{'replace_end_env'};
+    }
+    $UNFINISHED_COMMENT = $global{'unfinished_comment'};
+    if ($global{'unmatched'}) {
+	@UNMATCHED_OPENING = split(',',$global{'unmatched'});
+    }
+
+    # undef any renewed-commands...
+    # so the new defs are read from %new_command
+    local($cmd,$key,$code);
+    foreach $key (keys %renew_command) {
+	$cmd = "do_cmd_$key";
+	$code = "undef \&$cmd"; eval($code) if (defined &$cmd);
+	if ($@) { print "\nundef \&do_cmd_$cmd failed"}
+    }
+}
+
+#JCL: The warnings should have been handled within the DBM database.
+# Unfortunately if the contents of an array are more than ~900 (system
+# dependent) chars long then dbm cannot handle it and gives error messages.
+sub write_warnings { #clean
+    my ($str) = @_;
+    $str .= "\n" unless($str =~ /\n$/);
+    print STDOUT "\n *** Warning: $str" if ($VERBOSITY > 1);
+    my $warnings = '';
+    if(-f 'WARNINGS') {
+        $warnings = &catfile('WARNINGS') || '';
+    }
+    return () if ($warnings =~ /\Q$str\E/);
+    if(open(OUT,">>WARNINGS")) {
+        print OUT $str;
+        close OUT;
+    } else {
+        print "\nError: Cannot append to 'WARNINGS': $!\n";
+    }
+}
+
+sub get_warnings {
+    return &catfile('WARNINGS',1) || '';
+}
+
+# MRO: Standardizing
+sub catfile {
+    my ($file,$ignore) = @_;
+    unless(open(CATFILE,"<$file")) {
+        print "\nError: Cannot read '$file': $!\n"
+            unless($ignore);
+        return undef;
+    }
+    local($/) = undef; # slurp in whole file
+    my $contents = <CATFILE>;
+    close(CATFILE);
+    $contents;
+}
+
+
+sub html_validate {
+    my ($extn) = $EXTN;
+    if ($EXTN !~ /^\.html?$/i) {
+	$extn =~ s/^[^\.]*(\.html?)$/$1/;
+    }
+    print "\n *** Validating ***\n";
+    my @htmls = glob("*$extn");
+    my $file;
+    foreach $file (@htmls) {
+      system("$HTML_VALIDATOR $file");
+    }
+}
+
+sub lost_argument {
+    local($cmd) = @_;
+    &write_warnings("\nincomplete argument to command: \\$cmd");
+}
+
+
+# These subroutines should have been handled within the DBM database.
+# Unfortunately if the contents of an array are more than ~900 (system
+# dependent) chars long then dbm cannot handle it and gives error messages.
+# So here we save and then read the contents explicitly.
+sub write_mydb {
+    my ($db, $key, $str) = @_;
+    &write_mydb_simple($db, "\n$mydb_mark#$key#$str");
+}
+
+# generate the DB file name from the DB name
+sub _dbname {
+    "$TMP_$dd$_[0]";
+}
+
+sub write_mydb_simple {
+    my ($db, $str) = @_;
+    my $file = &_dbname($db);
+    if(open(DB,">>$file")) {
+        print DB $str;
+        close DB;
+    } else {
+        print "\nError: Cannot append to '$file': $!\n";
+    }
+}
+
+sub clear_mydb {
+    my ($db) = @_;
+    my $file = &_dbname($db);
+    if(open(DB,">$file")) {
+        close DB;
+    } else {
+        print "\nError: Cannot clear '$file': $!\n";
+    }
+}
+
+# Assumes the existence of a DB file which contains
+# sequences of e.g. verbatim counters and verbatim contents.
+sub read_mydb {
+    my ($dbref,$name) = @_;
+    my $contents = &catfile(&_dbname($name),1);
+    return '' unless(defined $contents);
+    my @tmp = split(/\n$mydb_mark#([^#]*)#/, $contents);
+    my $i = 1;	# Ignore the first element at 0
+    print "\nDBM: $name open..." if ($VERBOSITY > 2);
+    while ($i < scalar(@tmp)) {
+	my $tmp1 = $tmp[$i];
+        my $tmp2 = $tmp[++$i];
+	$$dbref{$tmp1} = defined $tmp2 ? $tmp2 : '';
+	++$i;
+    };
+    $contents;
+}
+
+
+# Reads in a latex generated file (e.g. .bbl or .aux)
+# It returns success or failure
+# ****** and binds $_ in the caller as a side-effect ******
+sub process_ext_file {
+    local($ext) = @_;
+    local($found, $extfile,$dum,$texpath);
+    $extfile =  $EXTERNAL_FILE||$FILE;
+    local($file) = &fulltexpath("$extfile.$ext");
+    $found = 0;
+    &write_warnings(
+	    "\n$extfile.$EXT is newer than $extfile.$ext: Please rerun latex" . ## AYS
+	    (($ext =~ /bbl/) ? " and bibtex.\n" : ".\n"))
+	if ( ($found = (-f $file)) &&
+	    &newer(&fulltexpath("$extfile.$EXT"), $file)); ## AYS
+    if ((!$found)&&($extfile =~ /\.$EXT$/)) {
+	$file = &fulltexpath("$extfile");
+	&write_warnings(
+	    "\n$extfile is newer than $extfile: Please rerun latex" . ## AYS
+	    (($ext =~ /bbl/) ? " and bibtex.\n" : ".\n"))
+	    if ( ($found = (-f $file)) &&
+		&newer(&fulltexpath("$extfile"), $file)); ## AYS
+    }
+
+    # check in other directories on the $TEXINPUTS paths
+    if (!$found) {
+	foreach $texpath (split /$envkey/, $TEXINPUTS ) {
+	    $file = "$texpath$dd$extfile.$ext";
+	    last if ($found = (-f $file));
+	}
+    }
+    if ( $found ) {
+	print "\nReading $ext file: $file ...";
+	# must allow @ within control-sequence names
+	$dum = &do_cmd_makeatletter();
+	&slurp_input($file);
+	if ($ext =~ /bbl/) {
+	    # remove the \newcommand{\etalchar}{...} since not needed
+	    s/^\\newcommand{\\etalchar}[^\n\r]*[\n\r]+//s;
+	}
+	&pre_process;
+	&substitute_meta_cmds if (%new_command || %new_environment);
+	if ($ext eq "aux") {
+            my $latex_pathname = L2hos->path2latex($file);
+	    $aux_preamble .=
+		"\\AtBeginDocument{\\makeatletter\n\\input $latex_pathname\n\\makeatother\n}\n";
+	    local(@extlines) = split ("\n", $_);
+	    print " translating ".(0+ at extlines). " lines " if ($VERBOSITY >1);
+	    local($eline,$skip_to); #$_ = '';
+	    foreach $eline (@extlines) {
+		if ($skip_to) { next unless ($eline =~ s/$O$skip_to$C//) }
+		$skip_to = '';
+		# skip lines added for pdfTeX/hyperref compatibility
+		next if ($eline =~ /^\\(ifx|else|fi|global \\let|gdef|AtEndDocument|let )/);
+		# remove \index and \label commands, else invalid links may result
+		$eline =~ s/\\(index|label)\s*($O\d+$C).*\2//g;
+		if ($eline =~ /\\(old)?contentsline/) {
+		    do { local($_,$save_AUX) = ($eline,$AUX_FILE);
+		    $AUX_FILE = 0;
+		    &wrap_shorthand_environments;
+		    #footnote markers upset the numbering
+		    s/\\footnote(mark|text)?//g;
+		    $eline = &translate_environments($_);
+		    $AUX_FILE = $save_AUX;
+		    undef $_ };
+		} elsif ($eline =~ s/^\\\@input//) {
+		    &do_cmd__at_input($eline);
+		    $eline = '';
+		} elsif ($eline =~ s/^\\\@setckpt$O(\d+)$C//) {
+		    $skip_to = $1; next;
+		}
+#	    $eline =~ s/$image_mark#([^#]+)#/print "\nIMAGE:",$img_params{$1},"\n";''/e;
+#		$_ .= &translate_commands(&translate_environments($eline));
+		$_ .= &translate_commands($eline) if $eline;
+	    }
+	    undef @extlines;
+	} elsif ($ext =~ /$caption_suffixes/) {
+	    local(@extlines) = split ("\n", $_);
+	    print " translating ".(0+ at extlines). " lines "if ($VERBOSITY >1);
+	    local($eline); $_ = '';
+	    foreach $eline (@extlines) {
+		# remove \index and \label commands, else invalid links may result
+		$eline =~ s/\\(index|label)\s*($O\d+$C).*\2//gso;
+                if ($eline =~ /\\(old)?contentsline/) {
+		    do { local($_,$save_PREAMBLE) = ($eline,$PREAMBLE);
+		    $PREAMBLE = 0;
+                    &wrap_shorthand_environments;
+                    $eline = &translate_environments($_);
+		    $PREAMBLE = $save_PREAMBLE;
+                    undef $_ };
+                }
+		$_ .= &translate_commands($eline);
+	    }
+	    undef @extlines;
+	} else {
+	    print " wrapping " if ($VERBOSITY >1);
+	    &wrap_shorthand_environments;
+	    $_ = &translate_commands(&translate_environments($_));
+	    print " translating " if ($VERBOSITY >1);
+	}
+	print "\n processed size: ".length($_)."\n" if($VERBOSITY>1);
+	$dum = &do_cmd_makeatother();
+    } else { 
+	print "\n*** Could not find file: $file ***\n" if ($DEBUG)
+    };
+    $found;
+}
+
+sub deal_with_texinputs {
+# The dot precedes all, this let's local files override always.
+# The dirs we want are given as parameter list.
+    if(!$TEXINPUTS) { $TEXINPUTS = '.' }
+    elsif ($TEXINPUTS =~ /^$envkey/) {
+	$TEXINPUTS = '.'.$TEXINPUTS
+    };
+    if ($ROOTED) {$TEXINPUTS .= "$envkey$FIXEDDIR"}
+    $TEXINPUTS = &absolutize_path($TEXINPUTS);
+    $ENV{'TEXINPUTS'} = join($envkey,".", at _,$TEXINPUTS,$ENV{'TEXINPUTS'});
+}
+
+# provided by Fred Drake
+sub absolutize_path {
+    my ($path) = @_;
+    my $npath = '';
+    foreach $dir (split /$envkey/o, $path) {
+        $npath .= L2hos->Make_directory_absolute($dir) . $envkey;
+    }
+    $npath =~ s/$envkey$//;
+    $npath;
+}
+
+sub add_document_info_page {
+    # Uses $outermost_level
+    # Nasty race conditions if the next two are done in parallel
+    local($X) = ++$global{'max_id'};
+    local($Y) = ++$global{'max_id'};
+    ###MEH -- changed for math support: no underscores in commandnames
+    $_ = join('', $_
+	      , (($MAX_SPLIT_DEPTH <= $section_commands{$outermost_level})?
+		 "\n<HR>\n" : '')
+	      , "\\$outermost_level", "*"
+	      , "$O$X$C$O$Y$C\\infopagename$O$Y$C$O$X$C\n",
+	      , " \\textohtmlinfopage");
+}
+
+
+# For each style file name in TMP_styles (generated by texexpand) look for a
+# perl file in $LATEX2HTMLDIR/styles and load it.
+sub load_style_file_translations {
+    local($_, $style, $options, $dir);
+    print "\n";
+    if ($TEXDEFS) {
+	foreach $dir (split(/$envkey/,$LATEX2HTMLSTYLES)) {
+	    if (-f ($_ = "$dir${dd}texdefs.perl")) {
+		print "\nLoading $_...";
+		require ($_);
+		$styles_loaded{'texdefs'} = 1;
+		last;
+	    }
+	}
+    }
+
+    # packages automatically implemented
+    local($auto_styles) = $AUTO_STYLES;
+    $auto_styles .= 'array|' if ($HTML_VERSION > 3.1);
+    $auto_styles .= 'tabularx|' if ($HTML_VERSION > 3.1);
+    $auto_styles .= 'theorem|';
+
+    # these are not packages, but can appear as if class-options
+    $auto_styles .= 'psamsfonts|';
+    $auto_styles .= 'noamsfonts|';
+
+    $auto_styles =~ s/\|$//;
+
+    if(open(STYLES, "<$TMP_${dd}styles")) {
+        while(<STYLES>) {
+            if(s/^\s*(\S+)\s*(.*)$/$style = $1; $options = $2;/eo) {
+                &do_require_package($style);
+	        $_ = $DONT_INCLUDE;
+	        s/:/|/g;
+	        &write_warnings("No implementation found for style \`$style\'\n")
+		    unless ($styles_loaded{$style} || $style =~ /^($_)$/
+			|| $style =~ /$auto_styles/);
+
+                # MRO: Process options for packages
+                &do_package_options($style,$options) if($options);
+            }
+        }
+        close(STYLES);
+    } else {
+        print "\nError: Cannot read '$TMP_${dd}styles': $!\n";
+    }
+}
+
+################## Weird Special case ##################
+
+# The new texexpand can be told to leave in \input and \include
+# commands which contain code that the translator should simply pass
+# to latex, such as the psfig stuff.  These should still be seen by
+# TeX, so we add them to the preamble ...
+
+sub do_include_lines {
+    while (s/$include_line_rx//o) {
+	local($include_line) = &revert_to_raw_tex($&);
+	&add_to_preamble ('include', $include_line);
+    }
+}
+
+########################## Preprocessing ############################
+
+# JCL(jcl-verb)
+# The \verb declaration and the verbatim environment contain simulated
+# typed text and should not be processed. Characters such as $,\,{,and }
+# loose their special meanings and should not be considered when marking
+# brackets etc. To achieve this \verb declarations and the contents of
+# verbatim environments are replaced by markers. At the end the original
+# text is put back into the document.
+# The markers for verb and verbatim are different so that these commands
+# can be restored to what the raw input was just in case they need to
+# be passed to latex.
+
+sub pre_process {
+    # Modifies $_;
+    #JKR: We need support for some special environments.
+    # This has to be here, because  they might contain
+    # structuring commands like \section etc.
+    local(%comments);
+    &pre_pre_process if (defined &pre_pre_process);
+    s/\\\\/\\\\ /go;		# Makes it unnecessary to look for escaped cmds
+    &replace_html_special_chars;
+    # Remove fake environment which should be invisible to LaTeX2HTML.
+    s/\001//m;
+    s/[%]end\s*{latexonly}/\001/gom;
+    s/[%]begin\s*{latexonly}([^\001]*)\001/%/gos;
+    s/\001//m;
+
+    &preprocess_alltt if defined(&preprocess_alltt);
+
+    $KEEP_FILE_MARKERS = 1;
+    if ($KEEP_FILE_MARKERS) {
+#	if (s/%%% TEXEXPAND: \w+ FILE( MARKER)? (\S*).*/
+#	    '<tex2html_'.($1?'':'end').'file>'.qq|#$2#|."\n"/em) {
+#	    $_ = "<tex2html_file>#$2#\n". $_ };
+	#RRM: ignore \n at end of included file, else \par may result
+	if (s/(\n{1,2})?%%% TEXEXPAND: \w+ FILE( MARKER)? (\S*).*\n?/
+	    ($2?$1:"\n").'<tex2html_'.($2?'':'end').'file>'.qq|#$3#|."\n"/em) {
+	    $_ = "<tex2html_file>#$3#\n". $_ };
+    } else {
+	s/%%% TEXEXPAND[^\n]*\n//gm;
+    }
+
+    # Move all LaTeX comments into a local list
+    s/([ \t]*(^|\G|[^\\]))(%.*(\n[ \t]*|$))/print "%";
+	$comments{++$global{'verbatim_counter'}} = "$3";
+	&write_mydb("verbatim", $global{'verbatim_counter'}, $3);
+	"$1$comment_mark".$global{'verbatim_counter'}."\n"/mge;
+    # Remove the htmlonly-environment
+    s/\\begin\s*{htmlonly}\s*\n?//gom;
+    s/\\end\s*{htmlonly}\s*\n?//gom;
+    # Remove enviroments which should be invisible to LaTeX2HTML.
+    s/\n[^%\n]*\\end\s*{latexonly}\s*\n?/\001/gom;
+    s/((^|\n)[^%\n]*)\\begin\s*{latexonly}([^\001]*)\001/$1/gom;
+    s/\\end\s*{comment}\s*\n?/\001/gom;
+    s/\\begin\s*{comment}([^\001]*)\001//gom;
+
+    # this used to be earlier, but that can create problems with comments
+    &wrap_other_environments if (%other_environments);
+
+#    s/\\\\/\\\\ /go;		# Makes it unnecessary to look for escaped cmds
+    local($next, $esc_del);
+    &normalize_language_changes;
+    # Patches by #JKR, #EI#, #JCL(jcl-verb)
+
+    #protect \verb|\begin/end....|  parts, for LaTeX documentation
+    s/(\\verb\*?(.))\\(begin|end)/$1\003$3/g;
+
+    local(@processedV);
+    local($opt, $style_info,$before, $contents, $after, $env);
+    while (($UNFINISHED_COMMENT)||
+  (/\\begin\s*($opt_arg_rx)?\s*\{($verbatim_env_rx|$keepcomments_rx)\}/o)) {
+	($opt, $style_info) = ($1,$2);
+	$before=$contents=$after=$env='';
+	if ($UNFINISHED_COMMENT) {
+	    $UNFINISHED_COMMENT =~ s/([^:]*)::(\d+)/$env=$1;$after=$_;
+	        $before = join("",$unfinished_mark,$env,$2,"#");''/e;
+	    print "\nfound the lost \\end{$env}\n";
+	}
+	#RRM: can we avoid copying long strings here ?
+	#     maybe this loop can be an  s/.../../s  with (.*?)
+	#
+	($before, $after, $env) = ($`, $', $3) unless ($env);
+	if (!($before =~ 
+     /\\begin(\s*\[[^\]]*\]\s*)?\{($verbatim_env_rx|$keepcomments_rx)\}/)) {
+	    push(@processedV,$before);
+	    print "'";$before = '';
+	}
+ 	if ($after =~ /\s*\\end{$env[*]?}/) { # Must NOT use the s///o option!!!
+	    ($contents, $after) = ($`, $');
+ 	    $contents =~ s/^\n+/\n/s;
+# 	    $contents =~ s/\n+$//s;
+
+	    # re-insert comments
+	    $contents =~ s/$comment_mark(\d+)\n?/$comments{$1}/g;
+#	    $contents =~ s/$comment_mark(\d+)/$verbatim{$1}/g;
+
+	    # revert '\\ ' -> '\\' only once 
+	    if ($env =~ /rawhtml|$keepcomments_rx/i) {
+		$contents = &revert_to_raw_tex($contents);
+	    } else {
+		$contents =~ s/([^\\](?:\\\\)*\\)([$html_escape_chars])/$1.&special($2)/geos;
+		$contents =~ s/\\\\ /\\\\/go;
+	    }
+
+	    if ($env =~/$keepcomments_rx/) {
+		$verbatim{++$global{'verbatim_counter'}} = "$contents";
+	    } else {
+		&write_mydb("verbatim", ++$global{'verbatim_counter'}, $contents);
+	    }
+#	    $verbatim{$global{'verbatim_counter'}} = "$contents" if ($env =~/$keepcomments_rx/);
+#	    $verbatim{$global{'verbatim_counter'}} = "$contents";
+
+	    if ($env =~ /rawhtml|$keepcomments_rx/i) {
+		if ($before) {
+		    $after = join("",$verbatim_mark,$env
+			      ,$global{'verbatim_counter'},"#",$after);
+		} else {
+		    push (@processedV, join("",$verbatim_mark,$env
+			   ,$global{'verbatim_counter'},"#"));
+		}
+	    } elsif ($env =~ /tex2html_code/) {
+		if ($before) {
+		    $after = join("","\\begin", $opt, "\{verbatim_code\}"
+			  , $verbatim_mark,$env
+			  , $global{'verbatim_counter'},"#"
+			  , "\\end\{verbatim_code\}",$after);
+		} else {
+		    push (@processedV
+			  , join("","\\begin", $opt, "\{verbatim_code\}"
+				 , $verbatim_mark,$env
+				 , $global{'verbatim_counter'},"#"
+				 , "\\end\{verbatim_code\}"));
+		}
+	    } else {
+		if ($before) {
+		    $after = join("","\\begin", $opt, "\{tex2html_preform\}"
+			  , $verbatim_mark,$env
+			  , $global{'verbatim_counter'},"#"
+			  , "\\end\{tex2html_preform\}",$after);
+		} else {
+		    push (@processedV
+			  , join("","\\begin", $opt, "\{tex2html_preform\}"
+				 , $verbatim_mark,$env
+				 , $global{'verbatim_counter'},"#"
+				 , "\\end\{tex2html_preform\}" ));
+		}
+	    }
+	} else {
+	    print "Cannot find \\end{$env}\n";
+	    $after =~ s/$comment_mark(\d+)\n?/$comments{$1}/g;
+#	    $after =~ s/$comment_mark(\d+)/$verbatim{$1}/g;
+	    if ($env =~ /rawhtml|$keepcomments_rx/i) {
+                $after = &revert_to_raw_tex($contents);
+	    } else {
+		$after =~ s/([^\\](?:\\\\)*\\)([$html_escape_chars])/$1.&special($2)/geos;
+                $after =~ s/\\\\ /\\\\/go;
+	    }
+	    if ($env =~/$keepcomments_rx/) {
+                $verbatim{++$global{'verbatim_counter'}} = "$after";
+	    } else {
+                &write_mydb("verbatim", ++$global{'verbatim_counter'}, $after );
+	    }
+	    $after = join("",$unfinished_mark,$env
+			  ,$global{'verbatim_counter'},"#");
+	}
+	$_ = join("",$before,$after);
+    }
+    print STDOUT "\nsensitive environments found: ".(int(0+ at processedV/2))." "
+	if((@processedV)&&($VERBOSITY > 1));
+    $_ = join('', at processedV, $_); undef @processedV;
+
+    #restore \verb|\begin/end....|  parts, for LaTeX documentation
+#    $_ =~ s/(\\verb\W*?)\003(begin|end)/$1\\$2/g;
+    $_ =~ s/(\\verb(;SPM\w+;|\W*?))\003(begin|end)/$1\\$3/g;
+
+    # Now do the \verb declarations
+    # Patches by: #JKR, #EI#, #JCL(jcl-verb)
+    # Tag \verb command and legal opening delimiter with unique number.
+    # Replace tagged ones and its contents with $verb_mark & id number if the
+    # closing delimiter can be found. After no more \verb's are to tag, revert
+    # tagged one's to the original pattern.
+    local($del,$contents,$verb_rerun);
+    local($id) = $global{'verb_counter'};
+    # must tag only one alternation per loop
+    ##RRM: can this be speeded up using a list ??
+    my $vbmark = $verb_mark;
+    while (s/\\verb(\t*\*\t*)(\S)/"<verb$1".++$id.">$2"/e ||
+	    s/\\verb()(\;SPM\w+\;|[^a-zA-Z*\s])/"<verb$1".++$id.">$2"/e ||
+	    s/\\verb(\t\t*)([^*\s])/"<verb$1".++$id.">$2"/e) {
+
+	$del = $2;
+	#RRM: retain knowledge of whether \verb* or \verb
+	$vb_mark = ($1 =~/^\s*\*/? $verbstar_mark : $verb_mark);
+	$esc_del = &escape_rx_chars($del);
+	$esc_del = '' if (length($del) > 2);
+
+	# try to find closing delimiter and substitute the complete
+	# statement with $verb_mark or $verbstar_mark
+#	s/(<verb[^\d>]*$id>[\Q$del\E])([^$esc_del\n]*)([\Q$del\E]|$comment_mark(\d+)\n?)/
+	s/(<verb[^\d>]*$id>\Q$del\E)([^$esc_del\n]*?)(\Q$del\E|$comment_mark(\d+)\n?)/
+	    $contents=$2;
+	    if ($4) { $verb_rerun = 1;
+		join('', "\\verb$del", $contents, $comments{$4})
+	    } else {
+		$contents =~ s|\\\\ |\\\\|g;
+		$contents =~ s|\n| |g;
+		$verb{$id}=$contents;
+		$verb_delim{$id}=$del;
+		join('',$vb_mark,$id,$verb_mark)
+	    }
+	/e;
+    }
+    $global{'verb_counter'} = $id;
+    # revert changes to fake verb statements
+    s/<verb([^\d>]*)\d+>/\\verb$1/g;
+
+    #JKR: the comments include the linebreak and the following whitespace
+#   s/([^\\]|^)(%.*\n[ \t]*)+/$1/gom; # Remove Comments but not % which may be meaningful
+    s/((^|\n)$comment_mark(\d+))+//gom; # Remove comment markers on new lines, but *not* the trailing \n
+    s/(\\\w+|(\W?))($comment_mark\d*\n?)/($2)? $2.$3:($1? $1.' ':'')/egm; # Remove comment markers, not after braces
+#    s/(\W?)($comment_mark\d*\n?)/($1)? $1.$2:''/egm; # Remove comment markers, not after braces
+    # Remove comment markers, but *not* the trailing \n
+#  HWS:  Correctly remove multiple %%'s.
+#
+    s/\\%/\002/gm;
+#    s/(%.*\n[ \t]*)//gm;
+    s/(%[^\n]*\n)[ \t]*/$comment_mark\n/gm;
+
+    s/\002/\\%/gm;
+
+    local($tmp1,$tmp2);
+    s/^$unfinished_mark$keepcomments_rx(\d+)#\n?$verbatim_mark$keepcomments_rx(\d+)#/
+	$verbatim{$4}."\n\\end{$1}"/egm; # Raw TeX
+    s/$verbatim_mark$keepcomments_rx(\d+)#/
+	$tmp1 = $1;
+	$tmp2 = &protect_after_comments($verbatim{$2});
+	$tmp2 =~ s!\n$!!s;
+	join ('', "\\begin{$tmp1}"
+		, $tmp2
+		, "\n\\end{$tmp1}"
+		)/egm; # Raw TeX
+    s/$unfinished_mark$keepcomments_rx(\d+)#/$UNFINISHED_COMMENT="$1::$2";
+	"\\begin{$1}\n".$verbatim{$2}/egm; # Raw TeX
+
+    $KEEP_FILE_MARKERS = 1;
+    if ($KEEP_FILE_MARKERS) {
+	s/%%% TEXEXPAND: \w+ FILE( MARKER) (\S*).*\n/
+	    '<tex2html_'.($1?'':'end').'file>'.qq|#.$2#\n|/gem;
+    } else {
+	s/%%% TEXEXPAND[^\n]*\n//gm;
+    }
+
+    &mark_string($_);
+
+
+    # attempt to remove the \html \latex and \latexhtml commands
+    s/\\latex\s*($O\d+$C)(.*)\1//gm;
+    s/\\latexhtml\s*($O\d+$C)(.*)\1\s*($O\d+$C)(.*)\3/$4/sg;
+    s/\\html\s*($O\d+$C)(.*)\1/$2/sg;
+    s/\\html\s*($O\d+$C)//gm;
+
+#    &make_unique($_);
+}
+
+# RRM:  When comments are retained, then ensure that they are benign
+# by removing \s and escaping braces, 
+# so that environments/bracing cannot become unbalanced.
+sub protect_after_comments {
+    my ($verb_text) = @_;
+#    $verb_text =~ s/\%(.*)/'%'.&protect_helper($1)/eg;
+    $verb_text =~ s/(^|[^\\])(\\\\)*\%(.*)/$1.$2.'%'.&protect_helper($3)/emg;
+    $verb_text;
+}
+
+sub protect_helper {
+    my ($text) = @_;
+    $text =~ s/\\/ /g;
+    $text =~ s/(\{|\})/\\$1/g;
+    $text;
+}
+
+sub make_comment {
+    local($type,$_) = @_;
+    $_ =~ s/\\(index|label)\s*(($O|$OP)\d+($C|$CP)).*\2//sg;
+    $_ = &revert_to_raw_tex($_);  s/^\n+//m;
+    $_ =~ s/\\(index|label)\s*\{.*\}//sg;
+    s/\-\-/- -/g; s/\-\-/- -/g; # cannot have -- inside a comment
+    $_ = join('', '<!-- ', $type , "\n ", $_ , "\n -->" );
+    $verbatim{++$global{'verbatim_counter'}} = $_;
+    &write_mydb('verbatim', $global{'verbatim_counter'}, $_ );
+    join('', $verbatim_mark, 'verbatim' , $global{'verbatim_counter'},'#')
+}
+
+sub wrap_other_environments {
+    local($key, $env, $start, $end, $opt_env, $opt_start);
+    foreach $key (keys %other_environments) {
+	# skip bogus entries
+	next unless ($env = $other_environments{$key});
+	$key =~ s/:/($start,$end)=($`,$');':'/e;
+
+	if (($end =~ /^\#$/m) && ($start =~ /^\#/m)) {
+	    # catch Indica pre-processor language switches
+	    $opt_start = $';
+	    if ($env =~ s/\[(\w*)\]//o) {
+		$opt_env = join('','[', ($1 ? $1 : $opt_start ), ']');
+	    }
+	    local($next);
+	    while ($_ =~ /$start\b/) {
+		push(@pre_wrapped, $`, "\\begin\{pre_$env\}", $opt_env );
+		$_=$';
+		if (/(\n*)$end/) {
+		    push(@pre_wrapped, $`.$1,"\\end\{pre_$env\}$1");
+		    $_ = $';
+		    if (!(s/^N(IL)?//o)) {$_ = '#'.$_ }
+		} else {
+		    print "\n *** unclosed $start...$end chunk ***\n";
+		    last;
+		}
+	    }
+	    $_ = join('', @pre_wrapped, $_);
+	    undef @pre_wrapped;
+
+	} elsif (($end=~/^\n$/) && ($start =~ /^\#/)) {
+	    # catch ITRANS pre-processor language info;  $env = 'nowrap';
+	    local($ilang) = $start; $ilang =~ s/^\#//m;
+	    s/$start\s*\=([^<\n%]*)\s*($comment_mark\d*|\n|%)/\\begin\{tex2html_$env\}\\ITRANSinfo\{$ilang\}\{$1\}\n\\end\{tex2html_$env\}$2/g;
+
+	} elsif (!$end &&($start =~ /^\#/m)) {
+	    # catch Indica pre-processor input-mode switches
+	    s/$start(.*)\n/\\begin\{tex2html_$env\}$&\\end\{tex2html_$env\}\n/g;
+
+	} elsif (($start eq $end)&&(length($start) == 1)) {
+	    $start =~ s/(\W)/\\$1/; $end = $start;
+	    s/([^$end])$start([^$end]+)$end/$1\\begin\{pre_$env\}$2\\end\{pre_$env\}/mg;
+	} elsif ($start eq $end) {
+	    if (!($start =~ /\#\#/)) {
+		$start =~ s/(\W)/\\$1/g; $end = $start; }
+	    local (@pre_wrapped);
+	    local($opt); $opt = '[indian]' if ($start =~ /^\#\#$/m);
+	    while ($_ =~ /$start/s) {
+		push(@pre_wrapped, $` , "\\begin\{pre_$env\}$opt");
+		$_=$';
+		if (/$end/s) {
+		    push(@pre_wrapped, $`, "\\end\{pre_$env\}");
+		    $_ = $';
+		} else {
+		    print "\n *** unclosed $start...$end chunk ***\n";
+		    last;
+		}
+	    }
+	    $_ = join('', @pre_wrapped, $_);
+	    undef @pre_wrapped;
+	} elsif ($start && ($env =~ /itrans/)) {
+	    # ITRANS is of this form
+	    local($indic); if($start =~ /\#(\w+)$/m) {$indic = $1}
+	    #include the language-name as an optional parameter
+	    s/$start\b/\\begin\{pre_$env\}\[$indic\]/sg;
+	    s/$end\b/\\end\{pre_$env\}/sg;
+	} elsif (($start)&&($end)) {
+	    s/$start\b/\\begin\{pre_$env\}/sg;
+	    s/$end\b/\\end\{pre_$env\}/sg;
+	}
+    }
+    $_;
+}
+
+#################### Marking Matching Brackets ######################
+
+# Reads the entire input file and performs pre_processing operations
+# on it before returning it as a single string. The pre_processing is
+# done on separate chunks of the input file by separate Unix processes
+# as determined by LaTeX \input commands, in order to reduce the memory
+# requirements of LaTeX2HTML.
+sub slurp_input_and_partition_and_pre_process {
+    local($file) = @_;
+    local(%string, @files, $pos);
+    local ($count) =  1;
+
+    unless(open(SINPUT,"<$file")) {
+        die "\nError: Cannot read '$file': $!\n";
+    }
+    local(@file_string);
+    print STDOUT "$file" if ($VERBOSITY >1);
+    while (<SINPUT>) {
+	if (/TEXEXPAND: INCLUDED FILE MARKER (\S*)/) {
+	    # Forking seems to screw up the rest of the input stream
+	    # We save the current position ...
+	    $pos = tell SINPUT;
+	    print STDOUT " fork at offset $pos " if ($VERBOSITY >1);
+            $string{'STRING'} = join('', at file_string); @file_string = ();
+	    &write_string_out($count);
+	    delete $string{'STRING'};
+	    # ... so that we can return to it
+	    seek(SINPUT, $pos, 0);
+	    print STDOUT "\nDoing $1 ";
+	    ++$count}
+	else {
+#	    $string{'STRING'} .= $_
+	    push(@file_string,$_);
+	}
+    }
+    $string{'STRING'} = join('', at file_string); @file_string = ();
+    &write_string_out($count);
+    delete $string{'STRING'};
+    close SINPUT;
+    @files = ();
+    if(opendir(DIR, $TMP_)) {
+        @files = sort grep(/^\Q$PARTITION_PREFIX\E\d+/, readdir(DIR));
+        closedir(DIR);
+    }
+
+    unless(@files) {
+        die "\nFailed to read in document parts.\n".
+	     "Look up section Globbing in the troubleshooting manual.\n";
+    }
+
+    $count = 0;
+    foreach $file (@files) {
+	print STDOUT "\nappending file: $TMP_$dd$file " if ($VERBOSITY > 1);
+        $_ .= (&catfile("$TMP_$dd$file") || '');
+	print STDOUT "\ntotal length: ".length($_)." characters\n" if ($VERBOSITY > 1);
+    }
+    die "\nFailed to read in document parts (out of memory?).\n"
+	unless length($_);
+    print STDOUT "\ntotal length: ".length($_)." characters\n" if ($VERBOSITY > 1);
+}
+
+sub write_string_out {
+    local($count) = @_;
+    if ($count < 10) {$count = '00'.$count}
+    elsif ($count < 100) {$count = '0'.$count}
+    local($pid);
+    # All open unflushed streams are inherited by the child. If this is
+    # not set then the parent will *not* wait
+    $| = 1;
+    # fork returns 0 to the child and PID to the parent
+    &write_mydb_simple("prelatex", $prelatex);
+    &close_dbm_database;
+    unless ($CAN_FORK) {
+	&do_write_string_out;
+    } else {
+	unless ($pid = fork) {
+	    &do_write_string_out;
+	    exit 0;
+	};
+	waitpid($pid,0);
+    }
+    &open_dbm_database;
+}
+
+sub do_write_string_out {
+    local($_);
+    close (SINPUT) if($CAN_FORK);
+    &open_dbm_database;
+    $_ = delete $string{'STRING'};
+    # locate blank-lines, for paragraphs.
+    # Replace verbatim environments etc.
+    &pre_process;
+    # locate the blank lines for \par s
+    &substitute_pars;
+    # Handle newcommand, newenvironment, newcounter ...
+    &substitute_meta_cmds;
+    &wrap_shorthand_environments;
+    print STDOUT "\n *** End-of-partition ***" if ($VERBOSITY > 1);
+    if(open(OUT, ">$TMP_$dd$PARTITION_PREFIX$count")) {
+        print OUT $_;
+        close(OUT);
+    } else {
+        print "\nError: Cannot write '$TMP_$dd$PARTITION_PREFIX$count': $!\n";
+    }
+    print STDOUT $_ if ($VERBOSITY > 9);
+    $preamble = join("\n",$preamble, at preamble); # undef @preamble;
+    &write_mydb_simple("preamble", $preamble);
+    # this was done earlier; it should not be repeated
+    #&write_mydb_simple("prelatex", $prelatex);
+    &write_mydb_simple("aux_preamble", $aux_preamble);
+    &close_dbm_database;
+}
+
+# Reads the entire input file into a
+# single string.
+sub slurp_input  {
+    local($file) = @_;
+    local(%string);
+    if(open(INPUT,"<$file")) {
+        local(@file_string);
+        while (<INPUT>) {
+	    push(@file_string, $_ );
+        }
+        $string{'STRING'} = join('', at file_string);
+        close INPUT;
+        undef @file_string;
+    } else {
+        print "\nError: Cannot read '$file': $!\n";
+    }
+    $_ = delete $string{'STRING'}; # Blow it away and return the result
+}
+
+# MRO: make them more efficient
+sub special {
+    $html_specials{$_[0]} || $_[0];
+}
+
+sub special_inv {
+    $html_specials_inv{$_[0]} || $_[0];
+}
+
+sub special_html {
+    $html_special_entities{$_[0]} || $_[0];
+}
+
+sub special_html_inv {
+    $html_spec_entities_inv{$_[0]} || $_[0];
+}
+
+# Mark each matching opening and closing bracket with a unique id.
+sub mark_string {
+    # local (*_) = @_; # Modifies $_ in the caller;
+    # -> MRO: changed to $_[0] (same effect)
+    # MRO: removed deprecated $*, replaced by option /m
+    $_[0] =~ s/(^|[^\\])\\{/$1tex2html_escaped_opening_bracket/gom;
+    $_[0] =~ s/(^|[^\\])\\{/$1tex2html_escaped_opening_bracket/gom; # repeat this
+    $_[0] =~ s/(^|[^\\])\\}/$1tex2html_escaped_closing_bracket/gom;
+    $_[0] =~ s/(^|[^\\])\\}/$1tex2html_escaped_closing_bracket/gom; # repeat this
+    my $id = $global{'max_id'};
+    my $prev_id = $id;
+    # mark all balanced braces
+    # MRO: This should in fact mark all of them as the hierarchy is
+    # processed inside-out.
+    1 while($_[0] =~ s/{([^{}]*)}/join("",$O,++$id,$C,$1,$O,$id,$C)/geo);
+    # What follows seems esoteric...
+    my @processedB = ();
+    # Take one opening brace at a time
+    while ($_[0] =~ /\{/) { 
+	my ($before,$after) = ($`,$');
+        my $change = 0;
+	while (@UNMATCHED_OPENING && $before =~ /\}/) {
+            my $this = pop(@UNMATCHED_OPENING);
+            print "\n *** matching brace \#$this found ***\n";
+            $before =~ s/\}/join("",$O,$this,$C)/eo;
+            $change = 1;
+        }
+        $_[0] = join('',$before,"\{",$after) if($change);
+        # MRO: mark one opening brace
+	if($_[0] =~ s/^([^{]*){/push(@processedB,$1);join('',$O,++$id,$C)/eos) {
+	    $before=''; $after=$';
+        }
+        if ($after =~ /\}/) { 
+	    $after =~ s/\}/join("",$O,$id,$C)/eo;
+	    $_[0] = join('',$before,$O,$id,$C,$after);
+	} else {
+	    print "\n *** opening brace \#$id  is unmatched ***\n";
+	    $after =~ /^(.+\n)(.+\n)?/;
+	    print " preceding: $after \n";
+	    push (@UNMATCHED_OPENING,$id);
+	}
+    }
+    $_[0] = join('', at processedB,$_[0]); undef(@processedB);
+    print STDOUT "\nInfo: bracketings found: ", $id - $prev_id,"\n"
+        if ($VERBOSITY > 1);
+    # process remaining closing braces
+    while (@UNMATCHED_OPENING && $_[0] =~ /\}/) {
+        my $this = pop(@UNMATCHED_OPENING);
+        print "\n *** matching brace \#$this found ***\n";
+	$_[0] =~ s/\}/join("",$O,$this,$C)/eo;
+    }
+
+    while ($_[0] =~ /\}/) {
+        print "\n *** there was an unmatched closing \} ";
+        my ($beforeline,$prevline,$afterline) = ($`, $`.$& , $');
+        $prevline =~ /\n([^\n]+)\}$/m;
+        if ($1) {
+	    print "at the end of:\n" . $1 . "\}\n\n";
+        } else {
+	    $afterline =~ /^([^\n]+)\n/m;
+	    if ($1) {
+	        print "at the start of:\n\}" . $1 ."\n\n";
+	    } else {
+	        $prevline =~ /\n([^\n]+)\n\}$/m;
+	        print "on a line by itself after:\n" . $1 . "\n\}\n\n";
+	    }
+        }
+        $_[0] =  $beforeline . $afterline;
+    }
+    $global{'max_id'} = $id;
+
+    # restore escaped braces
+    $_[0] =~ s/tex2html_escaped_opening_bracket/\\{/go;
+    $_[0] =~ s/tex2html_escaped_closing_bracket/\\}/go;
+}
+
+sub replace_html_special_chars {
+    # Replaces html special characters with markers unless preceded by "\"
+    s/([^\\])(<|>|&|\"|``|'')/&special($1).&special($2)/geom;
+    # MUST DO IT AGAIN JUST IN CASE THERE ARE CONSECUTIVE HTML SPECIALS
+    s/([^\\])(<|>|&|\"|``|'')/&special($1).&special($2)/geom;
+    s/^(<|>|&|\"|``|'')/&special($1)/geom;
+}
+
+#  used in \verbatiminput only:   $html_escape_chars = '<>&';
+sub replace_all_html_special_chars { s/([$html_escape_chars])/&special($1)/geom; }
+
+# The bibliography and the index should be treated as separate sections
+# in their own HTML files. The \bibliography{} command acts as a sectioning command
+# that has the desired effect. But when the bibliography is constructed
+# manually using the thebibliography environment, or when using the
+# theindex environment it is not possible to use the normal sectioning
+# mechanism. This subroutine inserts a \bibliography{} or a dummy
+# \textohtmlindex command just before the appropriate environments
+# to force sectioning.
+sub add_bbl_and_idx_dummy_commands {
+    local($id) = $global{'max_id'};
+
+    s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; $1/eg;
+    ## if ($bbl_cnt == 1) {
+	s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C $1"/geo;
+    #}
+    $global{'max_id'} = $id;
+    s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex $1/o;
+    s/[\\]printindex/\\textohtmlindex /o;
+    &lib_add_bbl_and_idx_dummy_commands() if defined(&lib_add_bbl_and_idx_dummy_commands);
+}
+
+
+# Uses and modifies $default_language
+# This would be straight-forward except when there are
+#  \MakeUppercase, \MakeLowercase  or \uppercase , \lowercase commands
+# present in the source. The cases have to be adjusted before the
+# ISO-character code is set; e.g. with "z --> "Z  in  german.perl
+#
+sub convert_iso_latin_chars {
+    local($_) = @_;
+    local($next_language, $pattern);
+    local($xafter, $before, $after, $funct, $level, $delim);
+    local(@case_processed);
+    while (/$case_change_rx/) {
+	$xafter = $2;
+#	$before .= $`;
+	push(@case_processed, $`);
+	$funct = $3;
+	$after = '';
+	$_ = $';
+	if ($xafter =~ /noexpand/) { $before .= "\\$funct"; next; }
+
+	s/^[\s%]*(.)/$delim=$1;''/eo;
+	if ($delim =~ /{/ ) {
+            # brackets not yet numbered...
+#	    $before .= $funct . $delim;
+	    push(@case_processed, $funct . $delim);
+	    $level = 1;
+	    $after = $delim;
+	    while (($level)&&($_)&&(/[\{\}]/)) {
+		$after .= $` . $&;
+		$_ = $';
+		if ( "$&" eq "\{" ) {$level++}
+		elsif ( "$&" eq "\}" ) { $level-- }
+		else { print $_ }
+		print "$level";
+	    } 
+#	    $before .= $after;
+	    push(@case_processed, $after);
+	} elsif ($delim eq "<") {
+            # brackets numbered, but maybe not processed...
+	    s/((<|#)(\d+)(>|#)>).*\1//;
+	    $after .= $delim . $&;
+	    $_ = $';
+	    print STDOUT "\n<$2$funct$4>" if ($VERBOSITY > 2);
+	    $funct =~ s/^\\//o;
+	    local($cmd) = "do_cmd_$funct";
+	    $after = &$cmd($after);
+#	    $before .= $after;
+	    push(@case_processed, $after);
+	} elsif (($xafter)&&($delim eq "\\")) {
+	    # preceded by \expandafter ...
+	    # ...so expand the following macro first
+	    $funct =~ s/^\\//o;
+	    local($case_change) = $funct;
+	    s/^(\w+|\W)/$funct=$1;''/eo;
+	    local($cmd) = $funct;
+	    local($thiscmd) = "do_cmd_$funct";
+	    if (defined &$thiscmd) { $_ = &$thiscmd($_) }
+	    elsif ($new_command{$funct}) { 
+		local($argn, $body, $opt) = split(/:!:/, $new_command{$funct});
+		do { ### local($_) = $body;
+		     &make_unique($body);
+		} if ($body =~ /$O/);
+		if ($argn) {
+		    do { 
+			local($before) = '';
+			local($after) = "\\$funct ".$_;
+			$after = &substitute_newcmd;   # may change $after
+			$after =~ s/\\\@#\@\@/\\/o ;
+		    }
+		} else { $_ = $body . $_; }
+	    } else { print "\nUNKNOWN COMMAND: $cmd "; }
+
+	    $cmd = $case_change;
+	    $case_change = "do_cmd_$cmd";
+	    if (defined &$case_change) { $_ = &$case_change($_) }
+	} else {
+            # this should not happen, but just in case...
+	    $funct =~ s/^\\//o;
+	    local($cmd) = "do_cmd_$funct";
+	    print STDOUT "\n\n<$delim$funct>" if ($VERBOSITY > 2);
+	    $_ = join('', $delim , $_ );
+	    if (defined &$cmd) { $_ = &$cmd($_) }
+	}
+    }
+#   $_ = join('', $before, $_) if ($before);
+    $_ = join('', @case_processed, $_) if (@case_processed);
+
+    # ...now do the conversions
+    ($before, $after, $funct) = ('','','');
+    @case_processed = ();
+    if (/$language_rx/o) {
+	($next_language, $pattern, $before, $after) = (($2||$1), $&, $`, $');
+	$before = &convert_iso_latin_chars($before) if ($before);
+#	push(@case_processed, $pattern, $before);
+	local($br_id) = ++$global{'max_id'};
+	$pattern = join('' , '\selectlanguage', $O.$br_id.$C
+	    , (($pattern =~ /original/) ? $TITLES_LANGUAGE : $next_language )
+	    , $O.$br_id.$C );
+	push(@case_processed, $before, $pattern);
+	push(@language_stack, $default_language);
+	$default_language = $next_language;
+	$_ = &convert_iso_latin_chars($after);
+	$default_language = pop @language_stack;
+    } else {
+	$funct = $language_translations{$default_language};
+	(defined(&$funct) ? $_ = &$funct($_) :
+	 do {   &write_warnings(
+		"\nCould not find translation function for $default_language.\n\n")
+	    }
+	);
+	if ($USE_UTF ||(!$NO_UTF &&(defined %unicode_table)&&length(%unicode_table)>2)) {
+	    &convert_to_unicode($_)};
+    }
+    $_ = join('', @case_processed, $_); undef(@case_processed);
+    $_;
+}
+
+# May need to add something here later
+sub english_translation { $_[0] }
+
+# This replaces \setlanguage{\language} with \languageTeX
+# This makes the identification of language chunks easier.
+sub normalize_language_changes {
+    s/$setlanguage_rx/\\$2TeX/gs;
+}
+
+sub get_current_language {
+    return () if ($default_language eq $TITLES_LANGUAGE);
+    local($lang,$lstyle) = ' LANG="';
+    $lang_code = $iso_languages{$default_language};
+    if (%styled_languages) {
+	$lstyle = $styled_languages{$default_language};
+	$lstyle = '" CLASS="'.$lstyle  if $lstyle;
+    }
+    ($lang_code ? $lang.$lang_code.$lstyle.'"' : '');
+}
+
+%styled_languages = ();
+
+sub do_cmd_htmllanguagestyle {
+    local($_) = @_;
+    local($class) = &get_next_optional_argument;
+    local($lang) = &missing_braces unless (
+	(s/$next_pair_pr_rx/$lang=$2;''/e)
+	||(s/$next_pair_rx/$lang=$2;''/e));
+    return ($_) unless $lang;
+    local($class) = $iso_languages{$lang} unless $class;
+    if ($USING_STYLES && $class) {
+	print "\nStyling language: $lang = \"$class\" ";
+    	$styled_languages{"$lang"} = $class;
+    }
+    $_;
+}
+
+# General translation mechanism:
+#
+#
+# The main program latex2html calls texexpand with the document name
+# in order to expand some of its \input and \include statements, here
+# also called 'merging', and to write a list of sensitized style, class,
+# input, or include file names.
+# When texexpand has finished, all is contained in one file, TMP_foo.
+# (assumed foo.tex is the name of the document to translate).
+#
+# In this version, texexpand cares for following environments
+# that may span include files / section boundaries:
+# (For a more technical description, see texexpand.)
+#  a) \begin{comment}
+#  b) %begin{comment}
+#  c) \begin{any}  introduced with \excludecomment
+#  d) %begin{any}
+#  e) \begin{verbatim}
+#  f) \begin{latexonly}
+#  g) %begin{latexonly}
+# 
+# a)-d) cause texexpand to drop its contents, it will not show up in the
+# output file. You can use this to 'comment out' a bunch of files, say.
+# 
+# e)-g) prevent texexpand from expanding input files, but the environment
+# content goes fully into the output file.
+# 
+# Together with each merging of \input etc. there are so-called %%%texexpand
+# markers accompanying the boundary.
+#
+# When latex2html reads in the output file, it uses these markers to write
+# each part to a separate file, and process them further.
+#
+#
+# If you have, for example:
+#
+# a) preample
+# b) \begin{document}
+# c) text
+# d) \input{chapter}
+# e) more text
+# f) \end{document}
+#
+# you end up in two parts, part 1 is a)-c), part 2 is the rest.
+# Regardless of environments spanning input files or sections.
+#
+#
+# What now starts is meta command substitution:
+# Therefore, latex2html forks a child process on the first part and waits
+# until it finished, then forks another on the next part and so forth
+# (see also &slurp_input_and_partition_and_preprocess).
+#
+# Here's what each child is doing:
+# Each child process reads the new commands translated so far by the previous
+# child from the TMP_global DBM database.
+# After &pre_processing, it substitutes the meta commands (\newcommand, \def,
+# and the like) it finds, and adds the freshly retrieved new commands to the
+# list so far.
+# This is done *only on its part* of the document; this saves upwards of memory.
+# Finally, it writes its list of new commands (synopsis and bodies) to the
+# DBM database, and exits.
+# After the last child finished, latex2html reads in all parts and
+# concatenates them.
+#
+#
+# So, at this point in time (start of &translate), it again has the complete
+# document, but now preprocessed and with new commands substituted.
+# This has several disadvantages: an amount of commands is substituted (in
+# TeX lingo, expanded) earlier than the rest.
+# This causes trouble if commands really must get expanded at the point
+# in time they show up.
+#
+#
+# Then, still in &translate, latex2html uses the list of section commands to
+# split the complete document into chunks.
+# The chunks are not written to files yet. They are retained in the @sections
+# list, but each chunk is handled separately.
+# latex2html puts the current chunk to $_ and processes it with
+# &translate_environments etc., then fetches the next chunk, and so on.
+# This prevents environments that span section boundaries from getting
+# translated, because \begin and \end cannot find one another, to say it this
+# way.
+#
+#
+# After the chunk is translated to HTML, it is written to a file.
+# When all chunks are done, latex2html rereads each file to get cross
+# references right, replace image markers with the image file names, and
+# writes index and bibliography.
+#
+#
+sub translate {
+    &normalize_sections;	# Deal with the *-form of sectioning commands
+
+    # Split the input into sections, keeping the preamble together
+    # Due to the regular expression, each split will create 5 more entries.
+    # Entry 1 and 2: non-letter/letter sectioning command,
+    # entry 4: the delimiter (may be empty)
+    # entry 5: the text.
+    local($pre_section, @sections);
+    if (/\\(startdocument|begin\s*($O\d+$C)\s*document\s*\2)/) {
+	$pre_section = $`.$&; $_ = $';
+    }
+    @sections = split(/$sections_rx/, $_);
+    $sections[0] = $pre_section.$sections[0] if ($pre_section);
+    undef $pre_section;
+    local($sections) = int(scalar(@sections) / 5);
+
+    # Initialises $curr_sec_id to a list of 0's equal to
+    # the number of sectioning commands.
+    local(@curr_sec_id) = split(' ', &make_first_key);
+    local(@segment_sec_id) = @curr_sec_id;
+    local($i, $j, $current_depth) = (0,0,0);
+    local($curr_sec) = $SHORT_FILENAME||$FILE;
+    local($top_sec) = ($SEGMENT ? '' : 'top of ');
+#    local(%section_info, %toc_section_info, $CURRENT_FILE, %cite_info, %ref_files);
+    local($CURRENT_FILE);
+    # These filenames may be set when translating the corresponding commands.
+    local($tocfile, $loffile, $lotfile, $footfile, $citefile, $idxfile,
+	  $figure_captions, $table_captions, $footnotes, $citations, %font_size, %index,
+	  %done, $t_title, $t_author, $t_date, $t_address, $t_affil, $changed);
+    local(@authors, at affils, at addresses, at emails, at authorURLs);
+    local(%index_labels, %index_segment, $preindex, %footnotes, %citefiles);
+    local($segment_table_captions, $segment_figure_captions);
+    local($dir,$nosave) = ('','');
+    local($del,$close_all,$open_all,$toc_sec_title,$multiple_toc);
+    local($open_tags_R) = [];
+    local(@save_open_tags)= ();
+    local(@language_stack) = ();
+    push (@language_stack, $default_language);
+
+#    $LATEX_FONT_SIZE = '10pt' unless ($LATEX_FONT_SIZE);
+    &process_aux_file 
+	if $SHOW_SECTION_NUMBERS || /\\(caption|(html|hyper)?((eq)?ref|cite))/;
+
+    require ("${PREFIX}internals.pl") if (-f "${PREFIX}internals.pl");
+#JCL(jcl-del)
+    &make_single_cmd_rx;
+#
+    $tocfile = $EXTERNAL_CONTENTS;
+    $idxfile = $EXTERNAL_INDEX;
+    $citefile = $EXTERNAL_BIBLIO; $citefile =~ s/#.*$//;
+    $citefiles{1} = $citefile if ($citefile);
+    print "\nTranslating ...";
+
+    while ($i <= @sections) {
+        undef $_;
+	$_ = $sections[$i];
+	s/^[\s]*//;		# Remove initial blank lines
+
+	# The section command was removed when splitting ...
+	s/^/\\$curr_sec$del/  if ($i > 0); # ... so put it back
+	if ($current_depth < $MAX_SPLIT_DEPTH)  {
+	    if (($footnotes)&&($NO_FOOTNODE)&&( $current_depth < $MAX_SPLIT_DEPTH)) {
+		local($thesenotes) = &make_footnotes ;
+		print OUTPUT $thesenotes;
+	    }
+	    $CURRENT_FILE = &make_name($curr_sec, join('_', at curr_sec_id));
+	    
+	    open(OUTPUT, ">$CURRENT_FILE")
+		|| die "Cannot write '$CURRENT_FILE': $!\n";
+	    if ($XBIT_HACK) { # use Apache's XBit hack
+		chmod 0744, $CURRENT_FILE;
+		&check_htaccess;
+	    } else {
+		chmod 0644, $CURRENT_FILE;
+	    }
+
+	    if ($MULTIPLE_FILES && $ROOTED) {
+	        if ($DESTDIR =~ /^\Q$FIXEDDIR\E[$dd$dd]?([^$dd$dd]+)/)
+	            { $CURRENT_FILE = "$1$dd$CURRENT_FILE" };
+	    }
+	}
+	&remove_document_env;
+#        &wrap_shorthand_environments;    #RRM  Is this needed ?
+	print STDOUT "\n" if ($VERBOSITY);
+	print STDOUT "\n" if ($VERBOSITY > 2);
+	print $i/5,"/$sections";
+	print ":$top_sec$curr_sec:" if ($VERBOSITY);
+
+	# Must do this early ... It also sets $TITLE
+	&process_command($sections_rx, $_) if (/^$sections_rx/);
+	# reset tags saved from the previous section
+	$open_tags_R = [ @save_open_tags ];
+	@save_open_tags = ();
+
+	local($curr_sec_tex);
+	if ((! $TITLE) || ($TITLE eq $default_title)) {
+	    eval '$TITLE = '.$default_title;
+	    $TITLE = $default_title if $@;
+	    $curr_sec_tex = ($top_sec ? '' :
+		  join('', '"', &revert_to_raw_tex($curr_sec), '"'));
+	    print STDOUT "$curr_sec_tex for $CURRENT_FILE\n" if ($VERBOSITY);
+	} else { 
+	    local($tmp) = &purify($TITLE,1);
+	    $tmp = &revert_to_raw_tex($tmp);
+	    print STDOUT "\"$tmp\" for $CURRENT_FILE\n" if ($VERBOSITY); 
+	}
+
+	if (/\\(latextohtmlditchpreceding|startdocument)/m) {
+ 	    local($after) = $';
+ 	    local($before) = $`.$&;
+	    $SEGMENT = 1 if ($1 =~ /startdocument/);
+	    print STDOUT "\n *** translating preamble ***\n" if ($VERBOSITY);
+	    $_ = &translate_preamble($before);
+	    s/\n\n//g; s/<BR>//g;	# remove redundant blank lines and breaks
+#
+#	    &process_aux_file  if $AUX_FILE_NEEDED;
+#
+	    print STDOUT "\n *** preamble done ***\n" if ($VERBOSITY);
+	    $PREAMBLE = 0;
+ 	    $NESTING_LEVEL=0;
+	    &do_AtBeginDocument;
+	    $after =~ s/^\s*//m;
+	    print STDOUT (($VERBOSITY >2)? "\n*** Translating environments ***" : ";");
+	    $after = &translate_environments($after);
+	    print STDOUT (($VERBOSITY >2)? "\n*** Translating commands ***" : ";");
+	    $_ .= &translate_commands($after);
+#            $_ = &translate_commands($after);
+ 	} else {
+	    &do_AtBeginDocument;
+	    $PREAMBLE = 0;
+ 	    $NESTING_LEVEL=0;
+	    print STDOUT (($VERBOSITY >2)? "\n*** Translating environments ***" : ";");
+ 	    $_ = &translate_environments($_);
+	    print STDOUT (($VERBOSITY >2)? "\n*** Translating commands ***" : ";");
+ 	    $_ = &translate_commands($_);
+ 	}
+
+	# close any tags that remain open
+	if (@$open_tags_R) {
+	    ($close_all,$open_all) = &preserve_open_tags();
+	    $_ .= $close_all; 
+	    @save_open_tags = @$open_tags_R; $open_tags_R = [];
+	} else { ($close_all,$open_all) = ('','') }
+
+	print STDOUT (($VERBOSITY >2)? "\n*** Translations done ***" : "\n");
+#	if (($footnotes)&&($NO_FOOTNODE)&&( $current_depth < $MAX_SPLIT_DEPTH)) {
+#	    $_ .= &make_footnotes
+#	}
+	print OUTPUT $_;
+
+	# Associate each id with the depth, the filename and the title
+	###MEH -- starred sections don't show up in TOC ...
+	# RRM:  ...unless $TOC_STARS is set
+#	$toc_sec_title = &simplify($toc_sec_title);
+	$toc_sec_title = &purify($toc_sec_title);# if $SEGMENT;
+	$toc_sec_title = &purify($TITLE) unless ($toc_sec_title);	
+
+	if ($TOC_STARS) {
+	    $toc_section_info{join(' ', at curr_sec_id)} =
+		"$current_depth$delim$CURRENT_FILE$delim$toc_sec_title"
+#		    if ($current_depth <= $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH);
+		    if ($current_depth <= $TOC_DEPTH);
+	} else {
+	    $toc_section_info{join(' ', at curr_sec_id)} =
+		"$current_depth$delim$CURRENT_FILE$delim$toc_sec_title"
+		. ($curr_sec =~ /star$/ ? "$delim<tex2html_star_mark>" : "")
+#		    if ($current_depth <= $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH);
+		    if ($current_depth <= $TOC_DEPTH);
+	}
+
+	# include $BODYTEXT in the section_info, when starting a new page
+	$section_info{join(' ', at curr_sec_id)} =
+	    "$current_depth$delim$CURRENT_FILE$delim$TITLE$delim"
+		. (($current_depth < $MAX_SPLIT_DEPTH)? $BODYTEXT: "");
+
+	# Get type of section (see also the split above)
+	$curr_sec = $sections[$i+1].$sections[$i+2];
+	$del = $sections[$i+4];
+
+	# Get the depth of the current section;
+#	$curr_sec = $outermost_level unless $curr_sec;
+	$current_depth = $section_commands{$curr_sec};
+	if ($after_segment) {
+	    $current_depth = $after_segment;
+            $curr_sec_id[$after_segment] += $after_seg_num;
+            ($after_segment,$after_seg_num) = ('','');
+	    for($j=1+$current_depth; $j <= $#curr_sec_id; $j++) {
+		$curr_sec_id[$j] = 0;
+	    }
+	}
+	if ($SEGMENT||$SEGMENTED) {
+	    for($j=1; $j <= $#curr_sec_id; $j++) {
+		$curr_sec_id[$j] += $segment_sec_id[$j];
+		$segment_sec_id[$j] = 0;
+	    }
+	}; 
+
+
+	# this may alter the section-keys
+	$multiple_toc = 1 if ($MULTIPLE_FILES && $ROOTED && (/$toc_mark/));
+
+
+	#RRM : Should this be done here, or in \stepcounter ?
+	@curr_sec_id = &new_level($current_depth, @curr_sec_id);
+
+	$toc_sec_title = $TITLE = $top_sec = '';
+	$i+=5; #skip to next text section
+    }
+    $open_tags_R = [];
+    $open_all = '';
+
+    $_ = undef;
+    $_ = &make_footnotes if ($footnotes);
+    $CURRENT_FILE = '';
+    print OUTPUT;
+    close OUTPUT;
+    
+
+#    # this may alter the section-keys
+#    &adjust_root_keys if $multiple_toc;
+
+    if ($PREPROCESS_IMAGES) { &preprocess_images }
+    else { &make_image_file }
+    print STDOUT "\n *** making images ***" if ($VERBOSITY > 1);
+    &make_images;
+
+    # Link sections, add head/body/address do cross-refs etc
+    print STDOUT "\n *** post-process ***" if ($VERBOSITY > 1);
+    &post_process;
+
+    if (defined &document_post_post_process) {
+    	#BRM: extra document-wide post-processing
+	print STDOUT "\n *** post-processing Document ***" if ($VERBOSITY > 1);
+	&document_post_post_process();
+    }
+
+    print STDOUT "\n *** post-processed ***" if ($VERBOSITY > 1);
+    &copy_icons if $LOCAL_ICONS;
+    if ($SEGMENT || $DEBUG || $SEGMENTED) {
+	&save_captions_in_file("figure",  $figure_captions) if $figure_captions;
+	&save_captions_in_file("table",  $table_captions) if $table_captions;
+#	&save_array_in_file ("captions", "figure_captions", 0, %figure_captions) if %figure_captions;
+#	&save_array_in_file ("captions", "table_captions", 0, %table_captions) if %table_captions;
+	&save_array_in_file ("index", "index", 0, %index);
+	&save_array_in_file ("sections", "section_info", 0, %section_info);
+	&save_array_in_file ("contents", "toc_section_info", 0,%toc_section_info);
+	&save_array_in_file ("index", "sub_index", 1, %sub_index) if %sub_index;
+	&save_array_in_file ("index", "index_labels", 1, %index_labels) if %index_labels;
+	&save_array_in_file ("index", "index_segment", 1, %index_segment) if %index_segment;
+	&save_array_in_file ("index", "printable_key", 1, %printable_key) 
+	    if (%printable_key || %index_segment);
+    }
+    elsif ($MULTIPLE_FILES && $ROOTED) {
+	&save_array_in_file ("sections", "section_info", 0, %section_info);
+	&save_array_in_file ("contents", "toc_section_info", 0, %toc_section_info);
+    }
+    &save_array_in_file ("internals", "ref_files", 0, %ref_files) if $changed;
+    &save_array_in_file ("labels", "external_labels", 0, %ref_files);
+    &save_array_in_file ("labels", "external_latex_labels", 1, %latex_labels);
+    &save_array_in_file ("images", "cached_env_img", 0, %cached_env_img);
+}
+
+# RRM:
+sub translate_preamble {
+    local($_) = @_;
+    $PREAMBLE = 1;
+    $NESTING_LEVEL=0;   #counter for TeX group nesting level
+    # remove some artificially inserted constructions
+    s/\n${tex2html_deferred_rx}\\par\s*${tex2html_deferred_rx2}\n/\n/gm;
+    s/\\newedcommand(<<\d+>>)([A-Za-z]+|[^A-Za-z])\1(\[\d+\])?(\[[^]]*\])?(<<\d+>>)[\w\W\n]*\5($comment_mark\d*)?//gm;
+    s/\n{2,}/\n/ogm;
+
+    if (/\\htmlhead/) {
+        print STDOUT "\nPREAMBLE: discarding...\n$`" if ($VERBOSITY > 4);
+        local($after) = $&.$';
+	# translate segment preamble preceding  \htmlhead
+	&translate_commands(&translate_environments($`));
+	# translate \htmlhead  and rest of preamble
+	$_=&translate_commands(&translate_environments($after));
+        print STDOUT "\nPREAMBLE: retaining...\n$_" if ($VERBOSITY > 4);
+    } else {
+	# translate only preamble here (metacommands etc.)
+	# there should be no textual results, if so, discard them
+	&translate_commands(&translate_environments($_));
+        print STDOUT "\nPREAMBLE: discarding...\n$_" if ($VERBOSITY > 4);
+	$_="";
+    };
+    $_ = &do_AtBeginDocument($_);
+    if (! $SEGMENT) { $_ = ''} # segmented documents have a heading already
+    $_;
+}
+
+############################ Processing Environments ##########################
+
+sub wrap_shorthand_environments {
+    # This wraps a dummy environment around environments that do not use
+    # the begin-end convention. The wrapper will force them to be
+    # evaluated by Latex rather than them being translated.
+    # Wrap a dummy environment around matching TMPs.
+    # s/^\$\$|([^\\])\$\$/{$1.&next_wrapper('tex2html_double_dollar')}/ge;
+    # Wrap a dummy environment around matching $s.
+    # s/^\$|([^\\])\$/{$1.&next_wrapper('$')}/ge;
+    # s/tex2html_double_dollar/\$\$/go;
+    # Do \(s and \[s
+    #
+    local($wrapper) = "tex2html_wrap_inline";	# \ensuremath wrapper
+    print STDOUT "\n *** wrapping environments ***\n" if ($VERBOSITY > 3);
+
+    # MRO: replaced $* with /m
+    print STDOUT "\\(" if ($VERBOSITY > 3);
+    s/(^\\[(])|([^\\])(\\[(])/{$2.&make_any_wrapper(1,'',$wrapper).$1.$3}/geom;
+    print STDOUT "\\)" if ($VERBOSITY > 3);
+    s/(^\\[)]|[^\\]\\[)])/{$1.&make_any_wrapper(0,'',$wrapper)}/geom;
+
+    print STDOUT "\\[" if ($VERBOSITY > 3);
+    s/(^\\[[])|([^\\])(\\[[])/{$2.&make_any_wrapper(1,1,"displaymath")}/geom;
+    print STDOUT "\\]" if ($VERBOSITY > 3);
+    s/(^\\[\]])|([^\\])(\\[\]])/{$2.&make_any_wrapper(0,1,"displaymath")}/geom;
+
+    print STDOUT "\$" if ($VERBOSITY > 3);
+    s/$enspair/print "\$";
+       {&make_any_wrapper(1,'',$wrapper).$&.&make_any_wrapper(0,'',$wrapper)}/geom;
+
+    $double_dol_rx = '(^|[^\\\\])\\$\\$';
+    $single_dol_rx = '(^|[^\\\\])\\$';
+    print STDOUT "\$" if ($VERBOSITY > 3);
+
+    local($dollars_remain) = 0;
+    $_ = &wrap_math_environment;
+    $_ = &wrap_raw_arg_cmds;
+}
+
+sub wrap_math_environment {
+
+    # This wraps math-type environments
+    # The trick here is that the opening brace is the same as the close,
+    # but they *can* still nest, in cases like this:
+    #
+    # $ outer stuff ... \hbox{ ... $ inner stuff $ ... } ... $
+    #
+    # Note that the inner pair of $'s is nested within a group.  So, to
+    # handle these cases correctly, we need to make sure that the outer
+    # brace-level is the same as the inner. --- rst
+    #tex2html_wrap
+    # And yet another problem:  there is a scungy local idiom to do
+    # this:  $\_$ for a boldfaced underscore.  xmosaic can't display the
+    # resulting itty-bitty bitmap, for some reason; even if it could, it
+    # would probably come out as an overbar because of the floating-
+    # baseline problem.  So, we have to special case this.  --- rst again.
+
+    local ($processed_text, @processed_text, $before, $end_rx, $delim, $ifclosed);
+    local ($underscore_match_rx) = "^\\s*\\\\\\_\\s*\\\$";
+    local ($wrapper);
+    print STDOUT "\nwrap math:" if ($VERBOSITY > 3);
+
+    #find braced dollars, in tabular-specs
+    while (/((($O|$OP)\d+($C|$CP))\s*)\$(\s*\2)/) {
+        push (@processed_text, $`, $1.$dol_mark.$5);
+        $_ = $';
+    }
+    $_ = join('', at processed_text, $_) if (@processed_text);
+    undef @processed_text;
+
+    $dollars_remain = 0;
+    while (/$single_dol_rx/) {
+	$processed_text .= $`.$1;
+	$_ = $';
+	$wrapper = "tex2html_wrap_inline";
+	$end_rx = $single_dol_rx; # Default, unless we begin with $$.
+	$delim = "\$";
+
+        if (/^\$/ && (! $`)) {
+	    s/^\$//;
+	    $end_rx = $double_dol_rx;
+	    $delim = "";	# Cannot say "\$\$" inside displaymath
+	    $wrapper = "displaymath";
+
+        } elsif (/$underscore_match_rx/ && (! $`)) {
+
+            # Special case for $\_$ ...
+
+            s/$underscore_match_rx//;
+            $processed_text .= '\\_';
+            next;
+        }
+
+        # Have an opening $ or $$.  Find matching close, at same bracket level
+#	$processed_text .= &make_any_wrapper(1,'',$wrapper).$delim;
+
+	print STDOUT "\$" if ($VERBOSITY > 3);
+	$ifclosed = 0;
+	local($thismath);
+        while (/$end_rx/) {
+	    # Forget the $$ if we are going to replace it with "displaymath"
+            $before = $` . (($wrapper eq "displaymath")? "$1" : $&);
+	    last if ($before =~ /\\(sub)*(item|section|chapter|part|paragraph)(star)?\b/);
+	    $thismath .= $before;
+            $_ = $';
+	    s/^( [^\n])/\\space$1/s;  #make sure a trailing space doesn't get lost.
+
+            # Found dollar sign inside open subgroup ... now see if it's
+            # at the same brace-level ...
+
+            local ($losing, $br_rx) = (0, '');
+	    print STDOUT "\$" if ($VERBOSITY > 3);
+            while ($before =~ /$begin_cmd_rx/) {
+                $br_rx = &make_end_cmd_rx($1);  $before = $';
+
+                if ($before =~ /$br_rx/) { $before = $'; }
+                else { $losing = 1; last; }
+            }
+            do { $ifclosed = 1; last } unless $losing;
+
+            # It wasn't ... find the matching close brace farther on; then
+            # keep going.
+
+            /$br_rx/;
+
+            $thismath .= $`.$&;
+
+	    #RRM: may now contain unprocessed $s e.g. $\mbox{...$...$...}$
+	    # the &do_cmd_mbox uses this specially to force an image
+	    # ...but there may be other situations; e.g. \hbox
+	    # so set a flag:
+	    $dollars_remain = 1;
+
+            $_ = $';
+        }
+
+        # Got to the end.  Whew!
+	if ($ifclosed) {
+	    # also process any nested math
+	    while (($dollars_remain)&&($delim eq "\$")) {
+		local($saved) = $_;
+                $thismath =~ s/\$$//;
+                $_ = $thismath;
+		$thismath =  &wrap_math_environment;
+		$thismath .= "\$";
+		$_ = $saved;
+	    }
+	    $processed_text .= &make_any_wrapper(1,'',$wrapper) . $delim 
+		. $thismath . &make_any_wrapper(0,'',$wrapper);
+	} else {
+	    print STDERR "\n\n *** Error: unclosed math or extra `\$', before:\n$thismath\n\n";
+#	    # remove a $ to try to recover as much as possible.
+#	    $thismath =~ s/([^\\]\\\\|[^\\])\$/$1\%\%/;
+#	    $_ = $thismath . $_; $thismath = "";
+	print "\n$thismath\n\n\n$_\n\n\n"; die;
+	    
+	}
+    }
+    $processed_text . $_;
+}
+
+sub translate_environments {
+    local ($_) = @_;
+    local($tmp, $capenv);
+#   print "\nTranslating environments ...";
+    local($after, @processedE);
+    local ($contents, $before, $br_id, $env, $pattern);
+    for (;;) {
+#	last unless (/$begin_env_rx/o);
+	last unless (/$begin_env_rx|$begin_cmd_rx|\\(selectlanguage)/o);
+#	local ($contents, $before, $br_id, $env, $pattern);
+	local($this_env, $opt_arg, $style_info);
+	$contents = '';
+	# $1,$2 : optional argument/text --- stylesheet info
+	# $3 : br_id (at the beginning of an environment name)
+	# $4 : environment name
+	# $5 : br_id of open-brace, when $3 == $4 == '';
+	# $6 : \selectlanguage{...}
+	if ($7) {
+	    push(@processedE,$`);
+	    $_ = $';
+	    if (defined &do_cmd_selectlanguage) {
+		$_ = &do_cmd_selectlanguage($_);
+	    } else {
+		local($cmd) = $7;
+		$pattern = &missing_braces unless (
+		    s/$next_pair_rx/$pattern = $2;''/e);
+		local($trans) = $pattern.'_translation';
+		if (defined &$trans) {
+		    &set_default_language($pattern,$_);
+		}
+		undef $cmd; undef $trans;
+	    }
+	    next;
+	} elsif ($4) {
+	    ($before, $opt_arg, $style_info, $br_id
+	         , $env, $after, $pattern) = ($`, $2, $3, $4, $5, $', $&);
+	    if (($before)&& (!($before =~ /$begin_env_rx|$begin_cmd_rx/))) {
+		push(@processedE,$before);
+		$_ = $pattern . $after; $before = '';
+	    }
+	} else {
+	    ($before, $br_id, $env, $after, $pattern) = ($`, $6, 'group', $', $&);
+	    if (($before)&& (!($before =~ /$begin_env_rx|$begin_cmd_rx/))) {
+		push(@processedE,$before);
+		$_ = $pattern . $after; $before = '';
+	    }
+	    local($end_cmd_rx) = &make_end_cmd_rx($br_id);
+	    if ($after =~ /$end_cmd_rx/) {
+		# ... find the the matching closing one
+		$NESTING_LEVEL++;
+		($contents, $after) = ($`, $');
+		$contents = &process_group_env($contents);
+		print STDOUT "\nOUT: {$br_id} ".length($contents) if ($VERBOSITY > 3);
+		print STDOUT "\n:$contents\n" if ($VERBOSITY > 7);
+		# THIS MARKS THE OPEN-CLOSE DELIMITERS AS PROCESSED
+		$_ = join("", $before,"$OP$br_id$CP", $contents,"$OP$br_id$CP", $after);
+		$NESTING_LEVEL--;
+	    } else {
+		$pattern = &escape_rx_chars($pattern);
+		s/$pattern//;
+		print "\nCannot find matching bracket for $br_id";
+		$_ = join("", $before,"$OP$br_id$CP", $after);
+	    }
+	    next;
+	}
+	$contents = undef;
+	local($defenv) = $env =~ /deferred/;
+#	local($color_env);
+	local($color_env)
+	    unless ($env =~ /tabular|longtable|in(line|display)|math/);
+	local($closures,$reopens);
+	local(@save_open_tags) = @$open_tags_R unless ($defenv);
+	local($open_tags_R) = [ @save_open_tags ] unless ($defenv);
+	local(@saved_tags) if ($env =~ /tabular|longtable/);
+	if ($env =~ /tabular|longtable|makeimage|in(line|display)/) {
+	    @save_open_tags = @$open_tags_R;
+	    $open_tags_R = [ @save_open_tags ];
+	    # check for color
+	    local($color_test) = join(',',@$open_tags_R);
+	    if ($color_test =~ /(color{[^}]*})/g ) {
+		$color_env = $1;
+	    } # else { $color_env = '' }
+
+	    if ($env =~ /tabular|longtable|makeimage/) {
+		# close to the surrounding block-type tag
+		($closures,$reopens, at saved_tags) = &preserve_open_block_tags();
+		@save_open_tags = @$open_tags_R;
+		$open_tags_R = [ @save_open_tags ];
+		if ($color_env) {
+		    $color_test = join(',', at saved_tags);
+		    if ($color_test =~ /(color{[^}]*})/g ) {
+		        $color_env = $1;
+		    }
+		}
+	    } elsif ($env =~ /in(line|display)/) {
+		$closures = &close_all_tags() if ((&defined_env($env))
+		    &&!($defenv)&&!($env=~/inline/)&&(!$declarations{$env}));
+		if ($color_env) {
+		    $color_test = $declarations{$color_env};
+		    $color_test =~ s/<\/.*$//;
+		    $closures .= "\n$color_test";
+		    push (@$open_tags_R , $color_env);		
+		}
+	    }
+	} elsif ($env =~ /alltt|tex2html_wrap/) {
+	    # alltt is constructed as paragraphs, not with <PRE>
+	    #  tex2html_wrap  creates an image, which is at text-level
+	} else {
+	    $closures = &close_all_tags() if ((&defined_env($env))
+		&&!($defenv)&&(!$declarations{$env}) );
+	}
+	# Sets $contents and modifies $after
+	if (&find_end_env($env,$contents,$after)) {
+	    print STDOUT "\nIN-A {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    &process_command($counters_rx, $before)
+		if ($before =~ /$counters_rx/);
+	    # This may modify $before and $after
+	    # Modifies $contents
+#RRM: the do_env_... subroutines handle when to translate sub-environments
+#	    $contents = &translate_environments($contents) if
+##		((!$defenv) && (&defined_env($env)) && (! $raw_arg_cmds{$env})
+##		&& (!$declarations{$env})
+#		((&defined_env($env)) && (! $raw_arg_cmds{$env})
+#		&& (!($env =~ /latexonly|enumerate|figure|table|makeimage|wrap_inline/))
+#		&& ((! $NO_SIMPLE_MATH)||(!($env =~ /wrap/)))
+#		&& (!($env =~ /(math|wrap|equation|eqnarray|makeimage|minipage|tabular)/) )
+#		);
+	    if ($opt_arg) { 
+		&process_environment(1, $env, $br_id, $style_info); # alters $contents
+	    } else {
+		&process_environment(0, $env, $br_id, '');
+	    }
+	    undef $_;
+	    print STDOUT "\nOUT-A {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    #JCL(jcl-env) - insert the $O$br_id$C stuff to handle environment grouping
+	    if (!($contents eq '')) {
+		$after =~ s/^\n//o if ($defenv);
+		$this_env = join("", $before, $closures
+			  , $contents
+			  , ($defenv ? '': &balance_tags())
+			  , $reopens ); $_ = $after;
+	    } else { 
+		$this_env = join("", $before , $closures
+			  , ($defenv ? '': &balance_tags())
+			  , $reopens ); $_ = $after;
+	    };
+	### Evan Welsh <welsh at epcc.ed.ac.uk> added the next 24 lines ##
+	} elsif (&defined_env($env)) {
+	    print STDOUT "\nIN-B {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    # If I specify a function for the environment then it
+	    # calls it with the contents truncated at the next section.
+	    # It assumes I know what I'm doing and doesn't give a
+	    # deferred warning.
+	    $contents = $after;
+	    if ($opt_arg) { 
+		$contents = &process_environment(1, $env, $br_id, $style_info);
+	    } else {
+		$contents = &process_environment(0, $env, $br_id, '');
+	    }
+	    print STDOUT "\nOUT-B {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    $this_env = join("", $before, $closures ,$contents, $reopens);
+
+	    # there should not be anything left over 
+#	    $_ = $after;
+	    $_ = '';
+	} elsif ($ignore{$env}) {
+	    print STDOUT "\nIGNORED {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    # If I specify that the environment should be ignored then
+	    # it is but I get a deferred warning.
+	    $this_env = join("", $before , $closures , &balance_tags()
+		      , $contents, $reopens );
+	    $_ = $after;
+	    &write_warnings("\n\\end{$env} not found (ignored).\n");
+	} elsif ($raw_arg_cmds{$env}) {
+	    print "\nIN-C {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    # If I specify that the environment should be passed to tex
+	    # then it is with the environment truncated at the next
+	    # section and I get a deferred warning.
+
+	    $contents = $after;
+	    if ($opt_arg) { 
+		$contents = &process_environment(1, $env, $br_id, $style_info);
+	    } else {
+		$contents = &process_environment(0, $env, $br_id, '');
+	    }
+	    print STDOUT "\nOUT-C {$env $br_id}\n$contents\n" if ($VERBOSITY > 4);
+	    $this_env = join("", $before, $closures
+			     , $contents, &balance_tags(), $reopens );
+	    $_='';
+	    &write_warnings(
+	        "\n\\end{$env $br_id} not found (truncated at next section boundary).\n");
+	} else {
+	    $pattern = &escape_rx_chars($pattern);
+	    s/$pattern/$closures/;
+	    print "\nCannot find \\end{$env $br_id}\n";
+	    $_ .= join('', &balance_tags(), $reopens) unless ($defenv);
+	}
+	if ($this_env =~ /$begin_env_rx|$begin_cmd_rx/) {
+	    $_ = $this_env . $_;
+	} else { push (@processedE, $this_env) }
+    }
+    $_ = join('', at processedE) . $_;
+    $tmp = $_; undef $_;
+    &process_command($counters_rx, $tmp) if ($tmp =~ /$counters_rx/);
+    $_ = $tmp; undef $tmp;
+    $_
+}
+
+sub find_end_env {
+    # MRO: find_end_env($env,$contents,$rest)
+    #local ($env, *ref_contents, *rest) = @_;
+    my $env = $_[0];
+    my $be_rx = &make_begin_end_env_rx($env);
+    my $count = 1;
+
+    while ($_[2] =~ /($be_rx)(\n?)/s) { # $rest
+	$_[1] .= $`; # $contents
+
+	if ($2 eq "begin") { ++$count }
+	else { --$count };
+
+	#include any final \n at an {end} only
+	$_[2] = (($2 eq 'end')? $5 : '') . $'; # $rest
+	last if $count == 0;
+
+	$_[1] .= $1; # $contents
+    }
+
+    if ($count != 0) {
+	$_[2] = join('', $_[1], $_[2]); # $rest = join('', $contents, $rest);
+	$_[1] = ''; # $contents
+	return(0)
+    } else { return(1) }
+}
+
+
+sub process_group_env {
+    local($contents) = @_;
+    local(@save_open_tags) = @$open_tags_R;
+    local($open_tags_R) = [ @save_open_tags ];
+    print STDOUT "\nIN::{group $br_id}" if ($VERBOSITY > 4);
+    print STDOUT "\n:$contents\n" if ($VERBOSITY > 6);
+
+    # need to catch explicit local font-changes
+    local(%font_size) = %font_size if (/\\font\b/);
+
+    # record class/id info for a style-sheet entry
+    local($env_id, $tmp, $etmp);
+    if (($USING_STYLES) && !$PREAMBLE ) { $env_id = $br_id; }
+#	$env_id = "grp$br_id";
+#	$styleID{$env_id} = " ";
+#        $env_id = " ID=\"$env_id\"";
+#    }
+
+    undef $_;
+    $contents =~ s/^\s*$par_rx\s*//s; # don't start with a \par 
+    if ($contents =~ /^\s*\\($image_switch_rx)\b\s*/s) {
+	# catch TeX-like environments: {\fontcmd ... }
+	local($image_style) = $1;
+	if ($USING_STYLES) {
+	    $env_style{$image_style} = " " unless ($env_style{$image_style});
+	}
+	local($switch_cmd) = "do_cmd_${image_style}";
+	if (defined &$switch_cmd ) {
+	    eval "\$contents = \&${switch_cmd}(\$')";
+	    print "\n*** &$switch_cmd didn't work: $@\n$contents\n\n" if ($@);
+	} elsif ($contents =~ /$par_rx/) {
+	    # split into separate image for each paragraph
+	    local($par_style,$this_par_img) = '';
+	    local(@par_pieces) = split($par_rx, $contents);
+	    local($this_par,$par_style,$par_comment);
+	    $contents = '';
+	    while (@par_pieces) {
+		$this_par = shift @par_pieces;
+		if ($this_par =~ /^\s*\\($image_switch_rx)\b/s) {
+		    $image_style = $1;
+		    $par_style = 'P.'.$1;
+		    $env_style{$par_style} = " " unless ($env_style{$par_style});
+		}
+#	no comment: source is usually too highly encoded to be meaningful
+#	$par_comment = &make_comment($image_style,$this_par);
+		$this_par_img = &process_in_latex("\{".$this_par."\}");
+		$contents .=  join(''  #,"\n", $par_comment
+			, "\n<P"
+			, (($USING_STYLES && $image_style)? " CLASS=\"$image_style\"" :'')
+			,">", $this_par_img
+			, "</P>\n");
+		if (@par_pieces) {
+		    # discard the pieces from matching  $par_rx
+		    $dum = shift @par_pieces;
+		    $dum = shift @par_pieces;
+		    $dum = shift @par_pieces;
+		    $dum = shift @par_pieces;
+		    $dum = shift @par_pieces;
+		    $dum = shift @par_pieces;
+#		    $contents .= "\n</P>\n<P>";
+		}
+	    }
+	} else {
+	    $contents = &process_undefined_environment("tex2html_accent_inline"
+		, ++$global{'max_id'},"\{".$contents."\}");
+        }
+    } elsif ($contents =~ /^\s*\\(html)?url\b($O\d+$C)[^<]*\2\s*/) {
+	# do nothing
+	$contents = &translate_environments($contents);
+	$contents = &translate_commands($contents);
+    } elsif (($env_switch_rx)&&($contents =~ s/^(\s*)\\($env_switch_rx)\b//s)) {
+	# write directly into images.tex, protected by \begingroup...\endgroup
+	local($prespace, $cmd, $tmp) = ($1,$2,"do_cmd_$2");
+	$latex_body .= "\n\\begingroup ";
+	if (defined &$tmp) {
+	    eval("\$contents = &do_cmd_$cmd(\$contents)");
+	}
+	$contents = &translate_environments($contents);
+	$contents = &translate_commands($contents);
+	undef $tmp; undef $cmd;
+	$contents .= "\n\\endgroup ";
+    } elsif ($contents =~ /^\s*\\([a-zA-Z]+)\b/s) { 
+	local($after_cmd) = $';
+	local($cmd) = $1; $tmp = "do_cmd_$cmd"; $etmp = "do_env_$cmd";
+	if (($cmd =~/^(rm(family)?|normalsize)$/)
+		||($declarations{$cmd}&&(defined &$tmp))) {
+	    do{
+		local(@save_open_tags) = @$open_tags_R;
+		eval "\$contents = \&$tmp(\$after_cmd);";
+		print "\n*** eval &$tmp failed: $@\n$contents\n\n" if ($@);
+		$contents .= &balance_tags();
+	    };
+	} elsif ($declarations{$cmd}&&(defined &$etmp)) {
+	    eval "\$contents = \&$etmp(\$after_cmd);";
+	} else {
+	    $contents = &translate_environments($contents);
+	    $contents = &translate_commands($contents)
+		if ($contents =~ /$match_br_rx/o);
+	    # Modifies $contents
+	    &process_command($single_cmd_rx,$contents) if ($contents =~ /\\/o);
+	}
+	undef $cmd; undef $tmp; undef $etmp;
+    } else { 
+	$contents = &translate_environments($contents);
+	$contents = &translate_commands($contents)
+	    if ($contents =~ /$match_br_rx/o);
+        # Modifies $contents
+	&process_command($single_cmd_rx,$contents)
+	    if ($contents =~ /\\/o);
+    }
+    $contents . &balance_tags();
+}
+
+# MODIFIES $contents
+sub process_environment {
+    local($opt, $env, $id, $styles) = @_;
+
+    local($envS) = $env; $envS =~ s/\*\s*$/star/;
+    local($env_sub,$border,$attribs,$env_id) = ("do_env_$envS",'','','');
+    local($original) = $contents;
+
+    if ($env =~ /tex2html_deferred/ ) {
+	$contents = &do_env_tex2html_deferred($contents);
+	return ($contents);
+    }
+    $env_id = &read_style_info($opt, $env, $id, $styles) 
+	if (($USING_STYLES)&&($opt));
+
+    if (&defined_env($env)) {
+	print STDOUT ",";
+	print STDOUT "{$env $id}" if ($VERBOSITY > 1);
+#	$env_sub =~ s/\*$/star/;
+	$contents = &$env_sub($contents);
+
+    } elsif ($env =~ /tex2html_nowrap/) {
+	#pass it on directly for LaTeX, via images.tex
+	$contents = &process_undefined_environment($env, $id, $contents);
+	return ($contents);
+
+#    elsif (&special_env) {	# &special_env modifies $contents
+    } else {
+	local($no_special_chars) = 0;
+	local($failed) = 0;
+	local($has_special_chars) = 0;
+	&special_env; #  modifies $contents
+	print STDOUT "\n<MATH $env$id $contents>" if ($VERBOSITY > 3);
+	if ($failed || $has_special_chars) {
+	    $contents = $original;
+	    $failed = 1;
+	    print STDOUT " !failed!\n" if ($VERBOSITY > 3);
+        }
+    }
+    if (($contents) && ($contents eq $original)) {
+        if ($ignore{$env}) {  return(''); }
+        # Generate picture
+	if ($contents =~ s/$htmlborder_rx//o) {
+	    $attribs = $2; $border = (($4)? "$4" : 1)
+	} elsif ($contents =~ s/$htmlborder_pr_rx//o) { 
+	    $attribs = $2; $border = (($4)? "$4" : 1)
+	}
+	$contents = &process_undefined_environment($env, $id, $contents);
+	$env_sub = "post_latex_$env_sub"; # i.e. post_latex_do_env_ENV
+        if ( defined &$env_sub) {
+	    $contents = &$env_sub($contents);
+	} elsif (($border||($attributes))&&($HTML_VERSION > 2.1)) {
+	    $contents = &make_table($border,$attribs,'','','',$contents);
+	} else {
+	    $contents = join('',"<BR>\n",$contents,"\n<BR>")
+	        unless (!($contents)||($inner_math)||($env =~
+	              /^(tex2html_wrap|tex2html_nowrap|\w*math|eq\w*n)/o ));
+	}
+    }
+    $contents;
+}
+
+
+#RRM: This reads the style information contained in the optional argument
+#   to the \begin command. It is stored to be recovered later as an entry
+#   within the automatically-generated style-sheet, if $USING_STYLES is set.
+# Syntax for this info is:
+#   <style names> ; <extra style-info> 
+
+sub read_style_info {
+    local($opt, $envS, $id, $styles) = @_;
+    return() unless (($opt)&&($USING_STYLES));
+    # allow macro-expansion within the style-info
+    $opt = &translate_commands($opt) if ($opt =~ /\\/);
+
+    # record class/id info for a style-sheet entry
+    local($style_names, $style_extra, $env_id)=(''," ",'');
+    if ($opt) {
+	# if there is a `;'  then <names> ; <extra>
+	if ($styles =~ /^\s*([^\|]*)\|\s*(.*)$/) {
+	    $style_names = $1; $style_extra = $2;
+	    if ($style_names =~ /[=:;]/) {
+		# cannot be <names>, so is <extra>
+		$style_extra = $style_names.$style_extra;
+		$style_names = '';
+	    }
+	} elsif ($styles =~ /[\=\:]/) {
+	    # cannot be <names>, so is <extras>
+	    $style_extra = $styles;
+	} else { $style_names = $styles }
+	$style_extra =~ s/\s*[=:]\s*/ : /go;
+	$style_extra =~ s/([\w,\-]+)\s+([\w,\-]+)/$1 ; $2/go;
+	$style_extra =~ s/\s*,\s*/ /go;
+
+	if ($style_names) {
+	    local($sname);
+	    local(@names) = split ( /\s+/ , $style_names );
+	    # ensure a style-sheet entry for each new name
+	    foreach $sname (@names) {
+		$env_style{$sname} = " "
+		    unless (($env_style{$sname})||($sname =~ /^\s*$/));		
+	    }
+	}
+    }
+    # remove uninformative part of internally-defined env names
+    $envS =~ s/tex2html_(\w+_)?(\w+)/$2/; $envS =~ s/preform/pre/;
+    $env_id = $envS.$id;
+    $styleID{$env_id} = $style_extra unless ($PREAMBLE);
+    
+    if ($style_names) { $envS = "$style_names" }
+    elsif (($envS =~ /^pre$/)&&
+	(/^\\begin.*preform($O|$OP)\d+($C|$CP)$verbatim_mark(\w*[vV]erbatim)(\*?)/))
+	    { $envS = $3.($4 ? 'star' : '') };
+    $env_style{$envS} = " " unless (($style_names)||($env_style{$envS}));
+    $env_id = " ID=\"$env_id\"".(($envS) ? " CLASS=\"$envS\"" : '');
+    return($env_id);
+}
+
+# RRM: This provides the mechanism to save style information in %env_style
+#      using LaTeX macros  \htmlsetstyle  and  \htmladdtostyle
+#
+sub process_htmlstyles {
+    local($mode, $_) = @_;
+    local($pre_tags) = &get_next_optional_argument;
+    local($class) = &missing_braces unless (
+        (s/$next_pair_pr_rx/$class = $2;''/e)
+        ||(s/$next_pair_rx/$class = $2;''/e));
+    local($sinfo) = &missing_braces unless (
+        (s/$next_pair_pr_rx/$sinfo = $2;''/e)
+        ||(s/$next_pair_rx/$sinfo = $2;''/e));
+    return ($_) unless ($class||$pre_tags);
+
+    $class = $pre_tags.($class ?'.':'').$class;
+    $sinfo =~ s/\s*[:=]\s*/ : /g;
+    $sinfo =~ s/\s*,\s*/ /g;
+    if ($mode =~ /add/) {
+    	$sinfo = '; '.$sinfo if ($env_style{$class}); 
+	$env_style{$class} .= $sinfo;
+    } else { $env_style{$class} = $sinfo }
+    $_;
+}
+sub do_cmd_htmlsetstyle   { &process_htmlstyles('set', at _) }
+sub do_cmd_htmladdtostyle { &process_htmlstyles('add', at _) }
+
+
+# The $<$, $>$, $|$ and $=>$, etc strings are replaced with their textual
+# equivalents instead of passing them on to latex for processing in math-mode.
+# This will not be necessary when the mechanism for passing environments
+# to Latex is improved.
+# RETURNS SUCCESS OR FAILURE
+sub special_env {
+    # Modifies $contents in its caller
+    local($next)='';
+    local ($allow) = $HTML_VERSION ge '3.0' ?
+	 "[^#\$%&~\\\\{}]|\\limits" : "[^^#\$%&~_\\\\{}]";
+    #JKR: Use italics instead of bold #HWS: Generalize to include more symbols.
+#    $contents =~ s/^\$(\s*($html_specials_inv_rx|$allow)*\s*)\$(.)?/
+#	$next=$3;&simple_math_env($1).(($next =~ m|\w|)? " ":'').$next/ige;
+    $contents =~ s/^\$(\s*($html_specials_inv_rx|$allow)*\s*)\$$/
+	&simple_math_env($1)." "/ige;
+    if ($contents =~ /\&\w*;/) { $has_math_chars=1 }
+    if ($contents =~ /;SPM([a-zA-Z]+);/) { $has_special_chars=1 };
+}
+
+# Translate simple math environments into italic.
+# Only letters should become italic; symbols should stay non-italic.
+sub simple_math_env {
+    local($mathcontents) = @_;
+    if ($mathcontents eq '') { return("$mathcontents"); }
+    elsif ($NO_SIMPLE_MATH) {  # always make an image
+	$failed = 1; return($mathcontents);
+    } elsif ($mathcontents =~ /\\/) { # any macro kills "simple-math"
+	local($save_math) = $mathcontents;
+	local(@text_only) = ();
+	while ((!$failed)&&($mathcontents =~
+		/\\((boldsymbol|bm)|(math|text)(bf|rm|it|tt)|times|[{}@#^_])(\b|[^A-Za-z]|$)/)) {
+	    # ...except when only simple styles
+	    push (@text_only, $`, ("$2$4" ? "\\simplemath".($4 ? $4 :"bf") :"\\$1") );
+	    $mathcontents = $5.$';
+	    $failed = 1 if ($` =~ /\\/);
+	}
+	$failed = 1 if ($mathcontents =~ /\\/);
+	return($save_math) if $failed;
+	$mathcontents = join('', at text_only,$mathcontents);
+    }
+    # Is there a problem here, with nested super/subscripts ?
+    # Yes, so do each pattern-match for bracketings within a while-loop
+    while ($mathcontents =~ s/\^$any_next_pair_rx/<SUP>$2<\/SUP>/go){};
+    while ($mathcontents =~ s/\^$any_next_pair_pr_rx/<SUP>$2<\/SUP>/go){};
+    while ($mathcontents =~ s/_$any_next_pair_rx/<SUB>$2<\/SUB>/g){};
+    while ($mathcontents =~ s/_$any_next_pair_pr_rx/<SUB>$2<\/SUB>/g){};
+
+    $mathcontents =~ s/\^(\\[a-zA-Z]+|.)/<SUP>$1<\/SUP>/g;
+    $mathcontents =~ s/_(\\[a-zA-Z]+|.)/<SUB>$1<\/SUB>/g;
+    $mathcontents =~ s/(^|\s|[,;:'\?\.\[\]\(\)\+\-\=\!>]|[^\\<]\/|\d)(<(I|TT|B)>)?([a-zA-Z]([a-zA-Z ]*[a-zA-Z])?)(<\/\3>)?/
+	$1.(($2)? $2 :'<I>').$4.(($6)? $6 : '<\/I>')/eig;
+
+    $mathcontents =~ s/\\times($|\b|[^A-Za-z])/ x $1/g;
+    $mathcontents =~ s/\\times($|\b|[^A-Za-z])/ x $1/g;
+    $mathcontents =~ s/\\\\/<BR>\n/g;
+    $mathcontents =~ s/\\\\/<BR>\n/g;
+    $mathcontents =~ s/\\([,;])/ /g;
+    $mathcontents =~ s/\\(\W)/$1/g;
+    $mathcontents =~ s/ {2,}/ /g;
+
+    # any simple style changes remove enclosed <I> tags
+    $mathcontents = &translate_commands($mathcontents)
+	if ($mathcontents =~ /\\/);
+
+    $mathcontents =~ s/<I><\/(SUB|SUP)>/<\/$1><I>/g;
+    $mathcontents =~ s/<(SUB|SUP)><\/I>/<\/I><$1>/g;
+    $mathcontents =~ s/;<I>SPM([a-zA-Z]+)<\/I>;/;SPM$1;/go;
+    $mathcontents =~ s/<(\/?)<I>(SUB|SUP|I|B|TT)<\/I>>/<$1$2>/g;
+    $mathcontents =~ s/<\/(B|I|TT)><\1>//g;
+    $mathcontents;
+}
+
+sub do_cmd_simplemathrm { 
+    local ($_) = @_;
+    local($text);
+    $text = &missing_braces unless (
+        (s/$next_pair_pr_rx/$text = $2;''/e)
+        ||(s/$next_pair_rx/$text = $2;''/e));
+    $text =~ s/<\/?I>//g;
+    join('', $text, $_)
+}
+sub do_cmd_simplemathbf { 
+    local ($_) = @_;
+    local($text);
+    $text = &missing_braces unless (
+        (s/$next_pair_pr_rx/$text = $2;''/e)
+        ||(s/$next_pair_rx/$text = $2;''/e));
+    $text =~ s/<\/?I>//g;
+    join('','<B>', $text, '</B>', $_)
+}
+sub do_cmd_simplemathtt {
+    local ($_) = @_;
+    local($text);
+    $text = &missing_braces unless (
+        (s/$next_pair_pr_rx/$text = $2;''/e)
+        ||(s/$next_pair_rx/$text = $2;''/e));
+    $text =~ s/<\/?I>//g;
+    join('','<TT>', $text, '</TT>', $_)
+}
+
+sub process_math_in_latex {
+    local($mode,$style,$level,$math) = @_;
+    local(@anchors);
+    if ($level) {
+	$style = (($level > 1) ? "script" : "") . "script";
+    } elsif (! $style) { 
+	$style = (($mode =~/display|equation/)? "display" : "")
+    }
+    $style = "\\${style}style" if ($style);
+
+    #  &process_undefined_environment  changes $_ , so save it.
+    local($after) = $_;
+
+    # the 'unless' catches nested AMS-aligned environments
+    $mode = "tex2html_wrap_" .
+	(($mode =~/display|equation|eqnarray/) ? 'indisplay' : 'inline')
+	    unless ($mode =~ /^equationstar/ && $outer_math =~ /^equationstar/);
+
+    $global{'max_id'}++;
+    $math =~ s/\\(\n|$)/\\ $1/g;	# catch \ at end of line or string
+    $math =~ s/^\s*((\\!|;SPMnegsp;)\s*)*//g;		# remove neg-space at start of string
+    if ($mode =~ /tex2html_wrap_/ ) {
+	$math = &process_undefined_environment( $mode
+	    , $global{'max_id'}, join('', "\$$style ", $math, "\$"));
+    } else {
+	# some AMS environments must be within {equation} not {displaymath}
+	$math =~ s/displaymath/equation*/
+		if ($math =~ /\\begin\{(x+|fl)*align/);
+	$math = &process_undefined_environment($mode, $global{'max_id'}, $math);
+    }
+    $math .= "\n" if ($math =~ /$comment_mark\s*\d+$/s);
+    $_ = $after;
+    # the delimiter \001 inhibits an unwanted \n at image-replacement
+    $math . ($math =~ /$image_mark/? "\001" : '');
+}
+     
+#RRM: Explicit font switches need images. Use the image_switch mechanism.
+sub do_cmd_font {
+    local($_) = @_;
+    local($fontinfo,$fontname,$size) = ('','','10pt');
+    s/\s*\\(\w+)\s*=?\s*(.*)(\n|$)/$fontname=$1;$fontinfo=$2;''/eo;
+    $image_switch_rx .= "|$fontname";
+
+    if ($fontinfo =~ /([.\d]+\s*(true)?(pt|mm|cm))/ ) { $size = $1 }
+    elsif ( $fontinfo =~ /[a-zA-Z]+(\d+)\b/ ) { $size = $1.'pt' }
+    if  ( $fontinfo =~ /(scaled|at)\s*\\?(.+)/) { $size .= " scaled $1" }
+    $font_size{$fontname} = $size;
+    $_;
+}
+sub wrap_cmd_font {
+    local($cmd, $_) = @_;
+    local ($args, $dummy, $pat) = "";
+    if (/\n/) { $args .= $`.$& ; $_ = $' } else {$args = $_; $_ = ''};
+    (&make_deferred_wrapper(1).$cmd.$padding.$args.&make_deferred_wrapper(0),$_)
+}
+
+sub do_cmd_newfont {
+    local($_) = @_;
+    local($fontinfo,$fontname,$size) = ('','','10pt');
+    $fontname = &missing_braces unless (
+	(s/$next_pair_pr_rx/$fontname=$2;''/eo)
+	||(s/$next_pair_rx/$fontname=$2;''/eo));
+    $fontname=~ s/^\s*\\|\s*$//g;
+    $image_switch_rx .= "|$fontname";
+
+    $fontinfo = &missing_braces unless (
+	(s/$next_pair_pr_rx/$fontinfo=$2;''/eo)
+	||(s/$next_pair_rx/$fontinfo=$2;''/eo));
+    if ($fontinfo =~ /([.\d]+\s*(true)?(pt|mm|cm))/ ) { $size = $1 }
+    elsif ( $fontinfo =~ /[a-zA-Z]+(\d+)\b/ ) { $size = $1.'pt' }
+    if  ( $fontinfo =~ /(scaled|at)\s*\\?(.+)/) { $size .= " scaled $1" }
+    $font_size{$fontname} = $size;
+    $_;
+}
+
+sub defined_env {
+    local($env) = @_;
+    $env =~ s/\*$/star/;
+    local($env_sub) = ("do_env_$env");
+    # The test using declarations should not be necessary but 'defined'
+    # doesn't seem to recognise subroutines generated dynamically using 'eval'.
+    # Remember that each entry in $declarations generates a dynamic prodedure ...
+    ((defined &$env_sub) || ($declarations{$env}));
+}
+
+# RRM: utility to add style information to stored image-parameters
+#      currently only (math) scaling info is included;
+#      current color, etc.  could also be added here.
+sub addto_encoding {
+    local($env, $contents) = @_;
+#    $contents =~ s/(\\(begin|end)\s*)?<<\d*>>|\n//g;	# RRM: remove env delimiters
+    $contents =~ s/(\\(begin|end)\s*(<<\d*>>))|\n//g;	# RRM: remove env delimiters
+    # append scaling information for environments using it
+    if (($MATH_SCALE_FACTOR)
+	&&(($contents =~ /makeimage|inline|indisplay|entity|displaymath|eqnarray|equation|xy|diagram/)
+	   ||($env =~ /makeimage|inline|indisplay|entity|displaymath|eqnarray|equation|xy|diagram/))
+	) { $contents .= ";MSF=$MATH_SCALE_FACTOR" }
+
+    if ($LATEX_FONT_SIZE =~ /([\d\.]+)pt/) {
+	local($fsize) = $1;
+	$contents .= ";LFS=$fsize" unless ($fsize ==10);
+    }
+
+    if (($EXTRA_IMAGE_SCALE)
+	&&(($contents =~ /makeimage|inline|indisplay|entity|displaymath|eqnarray|equation|xy|diagram/)
+	   ||($env =~ /makeimage|inline|indisplay|entity|displaymath|eqnarray|equation|xy|diagram/))
+	) { $contents .= ";EIS=$EXTRA_IMAGE_SCALE" }
+
+    if (($DISP_SCALE_FACTOR)
+	&&(($contents =~ /indisplay|displaymath|eqnarray|equation/)
+	   ||($env =~ /indisplay|displaymath|eqnarray|equation/))
+	&&!(($contents =~ /makeimage/)||($env =~ /makeimage/))
+	) { $contents .= ";DSF=$DISP_SCALE_FACTOR" }
+
+    if (($EQN_TAGS)
+	&&(($env =~ /eqnarray($|[^_\*])|equation/)
+	   ||($contents =~ /eqnarray($|[^_\*])|equation/))
+	&&!(($contents =~ /makeimage/)||($env =~ /makeimage/))
+	) { $contents .= ";TAGS=$EQN_TAGS" }
+
+    if (($FIGURE_SCALE_FACTOR)
+	&&!(($contents =~ /makeimage/)||($env =~ /makeimage/))
+	&&(($contents =~ /figure/)||($env =~ /figure/))
+	) { $contents .= ";FSF=$FIGURE_SCALE_FACTOR"}
+
+    if (($ANTI_ALIAS)
+	&&(($contents =~ /figure/)||($env =~ /figure/))
+	&&!(($contents =~ /makeimage/)||($env =~ /makeimage/))
+	) { $contents .= ";AAF" }
+    elsif ($ANTI_ALIAS_TEXT) { $contents .= ";AAT" }
+    if (!$TRANSPARENT_FIGURES) { $contents .= ";NTR" }
+
+    $contents;
+}
+
+sub process_undefined_environment {
+    local($env, $id, $contents) = @_;
+    if ($env =~ s/\*{2,}/*/) { print "\n*** $_[0] has too many \*s ***"};
+
+    local($name,$cached,$raw_contents,$uucontents) = ("$env$id");
+    $name =~ s/\*/star/;
+    local($oldimg,$size,$fullcontents,$imgID);
+    return if ($AUX_FILE);
+
+    # catch \footnotemark within an image, especially if in math
+    local(@foot_anchors,$foot_anchor);
+    local($im_footnote,$im_mpfootnote) = ($global{'footnote'},$global{'mpfootnote'});
+    @foot_anchors = &process_image_footnote($contents)
+	if ($contents =~ /\\footnote(mark)?\b/s);
+    if ((@foot_anchors)&&($eqno)) {
+	# append the markers to the equation-numbers
+	$eqno .= join(' ', ' ', @foot_anchors);
+	@foot_anchors = ();
+    }
+    
+    print STDOUT "\nUNDEF-IN {$env $id}:\n$contents\n" if ($VERBOSITY > 4);
+    #RRM - LaTeX commands wrapped with this environment go directly into images.tex.
+    if ($env =~ /tex2html_nowrap|^lrbox$/){ # leave off the wrapper, do not cache
+	# totally ignore if in preamble...
+	# ...since it will be put into  images.tex  anyway!!
+	if (!($PREAMBLE)) {
+	    $contents =~ s/^\n+|\n+$/\n/g;
+	    local($lcontents) = join('', "\\begin{$env}", $contents , "\\end{$env}" );
+	    $lcontents =~ s/\\(index|label)\s*(($O|$OP)\d+($C|$CP)).*\2//sg;
+	    print STDOUT "pre-LATEX {$env}:\n$lcontents\n" if ($VERBOSITY > 3);
+	    $raw_contents = &revert_to_raw_tex($lcontents);
+	    print STDOUT "LATEX {$env}:\n$raw_contents\n" if ($VERBOSITY > 3);
+	    $latex_body .= "\n$raw_contents"."%\n\n" ;
+	}
+	return("") if ($env =~ /^lrbox/);
+	# ignore enclosed environments; e.g. in  \settolength  commands
+#	$contents = &translate_environments($contents); # ignore environments
+#	$contents = &translate_commands($contents);
+	# ...but apply any Perl settings that may be defined
+	$contents = &process_command($single_cmd_rx,$contents);
+	print STDOUT "\nOUT {$env $id}:\n$contents\n" if ($VERBOSITY > 4);
+	return("");
+    }
+    # catch pre-processor environments
+    if ($PREPROCESS_IMAGES) {
+	local($pre_env,$which, $done, $indic);
+	while ($contents =~ /$pre_processor_env_rx/) {
+	    $done .= $`; $pre_env = $5; $which =$1; $contents = $';
+	    if (($which =~ /begin/)&&($pre_env =~ /indica/)) {
+		if ($contents =~ s/^\[(\w+)]//o) { $done .= '#'.$1 }
+	    } elsif (($which =~ /end/)&&($pre_env =~ /indica/)) {
+		$done .= '#NIL';
+	    } elsif (($which =~ /begin/)&&($pre_env =~ /itrans/)) {
+		if ($contents =~ s/^\[(\w+)]/$indic=$1;''/e)
+	            { $done .= "\#$indic" }
+	    } elsif (($which =~ /end/)&&($pre_env =~ /itrans/)) {
+		$done .= "\#end$indic";
+	    } elsif ($which =~ /begin/) {
+		$done .= (($which =~ /end/)? $end_preprocessor{$pre_env}
+		          : $begin_preprocessor{$pre_env} )
+	    }
+	}
+	$contents = $done . $contents;
+    }
+    $fullcontents =  $contents; # save for later \label search.
+    # MRO: replaced $* with /m
+    $contents =~ s/\n?$labels_rx(\%([^\n]+$|$EOL))?/\n/gm;
+
+    local($tmp) = $contents;
+    $tmp =~ s/^((\\par|\%)?\s*\n)+$//g;
+    return( &do_labels($fullcontents, "\ ") ) unless $tmp;
+
+    # just a comment as the contents of a cell in a math-display
+    if ($tmp =~ /\$\\(display|text|(script)+)style\s*$comment_mark\d+\s*\$$/)
+	{ return ( &do_labels($fullcontents, "\ ") ) };
+
+    $contents = "\n% latex2html id marker $id\n$contents" if
+	(!$PREAMBLE &&($contents =~ /$order_sensitive_rx/)
+		&&(!($env =~ /makeimage/)));
+
+    $env =~ s/displaymath/equation*/
+	if ($contents =~ /\\begin\{(x+|fl)*align/);
+    #RRM: include the inline-color, when applicable
+    $contents = join(''
+	    , (($inner_math =~ /in(display|line)/) ? '$' : '')
+	    , "\\begin{$env}"
+	    , ($color_env ? "\\bgroup\\$color_env" : '')
+	    , $contents , ($color_env ? "\\egroup" : '')
+	    , "\\end{$env}"
+	    , (($inner_math =~ /in(display|line)/) ? '$' : '')
+	) if ($contents);
+
+    # append to the name of special environments found within math
+    if ($inner_math) {
+	local($ext) = $inner_math;
+	if ($inner_math =~ /(display|line)/){ $ext = 'in'.$1;};
+	$name =~ s/(\d+)$/_$ext$1/;
+    }
+
+    if (!($latex_body{$name} = $contents)) {
+	print "\n *** code for $name is too long ***\n"}
+    if ($contents =~ /$htmlimage_rx/) {
+	$uucontents = &special_encoding($env,$2,$contents);
+    } elsif ($contents =~ /$htmlimage_pr_rx/) {
+	$uucontents = &special_encoding($env,$2,$contents);
+    } else {
+	$uucontents = &encode(&addto_encoding($env,$contents));
+    }
+    $cached = $cached_env_img{$uucontents};
+    print STDOUT "\nCACHED: $uucontents:\n$cached\n" if ($VERBOSITY > 4);
+    if ($NOLATEX) { 
+	$id_map{$name} = "[$name]";
+    } elsif (defined ($_ = $cached)) { # Is it in our cache?
+	# Have we already used it?
+	if (($oldimg) = /SRC="$PREFIX$img_rx\.$IMAGE_TYPE"/o) {
+	    # No, check its size
+	    local($eis) = 1;
+	    # Does it have extra scaling ?
+	    if ($uucontents =~ /EIS=(.*);/) { $eis = $1 }
+	    ($size, $imgID) = &get_image_size("$PREFIX$oldimg.old", $eis);	
+	    # Does it have extra scaling ?
+#	    if ($uucontents =~ /EIS=(.*);/) {
+#		local($eis) = $1; local($w,$h);
+#		# quotes will not be there with HTML 2.0
+#		$size =~ s/(WIDTH=\")(\d*)(\".*HEIGHT=\")(\d*)\"/
+#		    $w = int($2\/$eis + .5); $h=int($4\/$eis + .5);
+#		    "$1$w$3$h\""/e ; # insert the re-scaled size
+#	    }
+	    # quotes will not be there with HTML 2.0
+	    $size =~ s/\"//g if ($HTML_VERSION < 2.2);
+	    if ($size && /\s$size\s/) {
+		# Size is OK; recycle it!
+		++$global_page_num;
+		$_ = $cached ;    # ...perhaps restoring the desired size.
+		s/(${PREFIX}T?img)\d+\.($IMAGE_TYPE|html)/
+			&rename_html($&,"$1$global_page_num.$2")/geo;
+	    } else {
+		if ($env =~ /equation/) { &extract_eqno($name,$cached) }
+		$_ = "";				# The old Image has wrong size!
+		undef($cached);			#  (or it doesn't exist)
+	    }
+	}
+	s/(IMG\n)/$1$imgID/ if $imgID;
+
+	s/$PREFIX$img_rx\.new/$PREFIX$1.$IMAGE_TYPE/go; # Point to the actual image file(s)
+	$id_map{$name} = $_;
+	s/$PREFIX$img_rx\.$IMAGE_TYPE/$PREFIX$1.new/go;	# But remember them as used.
+	$cached_env_img{$uucontents} = $_;
+    }
+
+    if (! defined($cached)) {				# Must generate it anew.
+	&clear_images_dbm_database
+	    unless ($new_page_num ||($NO_SUBDIR && $FIXEDDIR));
+	$new_id_map{$name} = $id_map{$name} = ++$global_page_num . "#" .
+	    ++$new_page_num;
+	$orig_name_map{$id_map{$name}} = $name;
+	$cached_env_img{$uucontents} = $id_map{$name} if ($REUSE == 2);
+
+	#RRM: this (old) code frequently crashes NDBM, so do it in 2 steps
+#	$img_params{$name} = join('#', &extract_parameters($contents));
+	local(@params) = &extract_parameters($contents);
+	$img_params{$name} = join('#', at params); undef $params;
+	print "\nIMAGE_PARAMS $name: ".$img_params{$name} if ($VERBOSITY > 3);
+
+	$contents =~ s/\\(index|label)\s*(($O|$OP)\d+($C|$CP)).*\2//sg;
+	print STDOUT "\nLATEX {$env}:\n$contents" if ($VERBOSITY > 3);
+	$raw_contents = &revert_to_raw_tex($contents) unless ($contents =~ /^\s*$/) ;
+	$raw_contents =~ s/\\pagebreak|\\newpage|\\clearpage/\\\\/go;
+	print STDOUT "\nLATEX {$env}:\n$raw_contents\n" if ($VERBOSITY > 3);
+	local($box_type) = '';
+	if ($raw_contents =~ /\\special\s*\{/) { 
+	    $tex_specials{$name} = "1";
+	    &write_warnings("\nenvironment $name contains \\special commands");
+	    print STDOUT "\n *** environment $name contains \\special commands ***\n"
+		if ($VERBOSITY);
+	} elsif (($env =~ /$inline_env_rx/)||($inner_math =~ /in(line|display)/)) {
+	    # crop to the marks only... or shave a bit off the bottom
+	    if (($env =~ /tex2html_[^w]/)||$inner_math) {
+		# e.g. accents, indic  but not wrap
+		$crop{$name} = "bl";
+		$box_type = "i";		
+	    } else {
+	    # ...or shave a bit off the bottom as well
+		$crop{$name} = "bls";
+		$box_type = "h";
+	    }
+	} elsif (($env =~ /(eqnarray|equation)(\*|star)/)||($inner_math)) {
+	    # crop to minimum size...
+	    $crop{$name} = "blrl";
+	    $box_type = "v";
+	} elsif ($env =~ /(picture|tex2html_wrap)(\*|star)?/) {
+	    # crop hbox to minimum size...
+	    $crop{$name} = "";
+	    $box_type = "p";
+	} elsif ($env =~ /$display_env_rx/) {
+	    # crop vbox to minimum size...
+	    $crop{$name} = "blrl" ;
+	    if ($env =~ /(equation|eqnarray)((s)?$|\d)/) {
+		# ... unless equation numbers are included ...
+		if ($3) { #  AMS {subequations}
+		    $global{'eqn_number'}=$prev_eqn_number if $prev_eqn_number;
+		    --$global{'eqn_number'};
+		}
+		$raw_contents = join('' ,
+		    (($eqno{$name}||$global{'eqn_number'})?
+		      &set_equation_counter($eqno{$name}) : '')
+		    , $raw_contents);
+		$crop{$name} = "bl" ;
+	    } elsif ($HTML_VERSION < 2.2) {
+		# ... HTML 2.0 cannot align images, so keep the full typeset width
+		$crop{$name} = "bl" ;		
+	    }
+	    $box_type = "v";
+	}
+	
+	#RRM: include the TeX-code for the appropriate type of box.
+	eval "\$raw_contents = \&make_$box_type"."box($name, \$raw_contents);";
+
+	# JCL(jcl-pag) - remember html text if debug is set.
+	local($_);
+	if ($DEBUG) {
+	    $_ = $contents;
+	    s/\n/ /g;
+	    $_ = &revert_to_raw_tex($_);
+	    # incomplete or long commented code can break pre-processors
+	    if ($PREPROCESS_IMAGES) {
+		$_ = ((/^(\\\w+)?\{[^\\\}\<]*\}?/)? $& : '').'...' ;
+		$_ = '{ ... }' if ( length($_) > 100);
+	    } elsif ( length($_) > 200) {
+		    $_ = join('',substr($_,0,200),"...\}");
+	    }
+	    s/\\(begin|end)/$1/g; s/[\000-\020]//g;
+	    $_ = join('',"% contents=",$_,"\n");
+	}
+	$raw_contents = '\setcounter{equation}{'.$prev_eqn_number."}\n".$raw_contents
+	    if ($env =~ /subequations/);
+
+# JCL(jcl-pag) - build the page entries for images.tex:  Each page is embraced to
+# let most statements have only local effect. Each page must compile into a
+# single dvi page to get proper image translation. Hence the invisible glue to
+# get *at least* one page (raw_contents alone might not wield glue), and
+# sufficing page length to get *exactly* one page.
+#
+	$latex_body .= "{\\newpage\\clearpage\n$_" .
+#	    "$raw_contents\\hfill\\vglue1pt\\vfill}\n\n";
+#	    "$raw_contents\\hfill\\vss}\n\n" if ($raw_contents);
+#	    "$raw_contents\\hfill\\lthtmlcheckvsize\\clearpage}\n\n" if ($raw_contents);
+	    "$raw_contents\\lthtmlcheckvsize\\clearpage}\n\n" if ($raw_contents);
+    }
+    print STDOUT "\nIMAGE_CODE:{$env $id}:\n$raw_contents\n" if ($VERBOSITY > 4);
+
+    # Anchor the labels and put a marker in the text;
+    local($img) = &do_labels($fullcontents,"$image_mark#$name#");
+    print STDOUT "\nUNDEF_OUT {$env $id}:\n$img\n" if ($VERBOSITY > 4);
+    return($img) unless (@foot_anchors);
+
+    # use the image as source to the 1st footnote, unless it is already an anchor.
+    if ($img =~ /<\/?A>/) {
+	join(' ', $img, @foot_anchors);    	
+    } elsif ($#foot_anchors ==0) {
+	$foot_anchor = shift @foot_anchors;
+	$foot_anchor =~ s/<SUP>.*<\/SUP>/$img/;
+#	join(' ', $foot_anchor, @foot_anchors);    	
+	$foot_anchor;
+    } else {
+	join(' ', $img, @foot_anchors);    	
+    }
+}
+
+sub special_encoding { # locally sets $EXTRA_IMAGE_SCALE
+    local($env,$_,$contents) = @_; 
+    local($exscale) = /extrascale=([\.\d]*)/;
+    local($EXTRA_IMAGE_SCALE) = $exscale if ($exscale);
+    &encode(&addto_encoding($env,$contents));
+}
+
+
+sub extract_eqno{
+    local($name,$contents) = @_;
+    if ($contents =~ /<P ALIGN="\w+">\(([^<>])\)<\/P>$/) {
+	if (($eqno{$name})&&!($eqno{$name} eq $1)) {
+	    &write_warnings("\nequation number for $name may be wrong.")};
+	$eqno{$name}="$1";
+    }
+}
+sub set_equation_counter{
+    if ( $global{'eqn_number'}) {
+	"\\setcounter{equation}{". $global{'eqn_number'} ."}\n"
+    } else { "\\setcounter{equation}{0}\n" }
+}
+
+# RRM: 3 different types of boxing, for image environments.
+
+#	general environments --- crops to width & height
+sub make_box {
+    local($id,$contents) = @_;
+    "\\lthtmlfigureA{". $id ."}%\n". $contents ."%\n\\lthtmlfigureZ\n";
+}
+
+#	inline math --- horizontal mode, captures height/depth + \mathsurround
+sub make_hbox {
+    local($id,$contents) = @_;
+    if ($id =~ /indisplay/) {
+	"\\lthtmlinlinemathA{". $id ."}%\n". $contents ."%\n\\lthtmlindisplaymathZ\n";
+    } else {
+	"\\lthtmlinlinemathA{". $id ."}%\n". $contents ."%\n\\lthtmlinlinemathZ\n";
+    }
+}
+
+#	inline text-image (e.g. accents) --- horizontal mode, captures height/depth
+sub make_ibox {
+    local($id,$contents) = @_;
+    "\\lthtmlinlineA{". $id ."}%\n". $contents ."%\n\\lthtmlinlineZ\n";
+}
+
+#	centered images (e.g. picture environments) --- horizontal mode
+sub make_pbox {
+    local($id,$contents) = @_;
+    "\\lthtmlpictureA{". $id ."}%\n". $contents ."%\n\\lthtmlpictureZ\n";
+}
+
+#	displayed math --- vertical mode, captures height/depth + page-width
+sub make_vbox {
+    local($id,$contents) = @_;
+    if (($HTML_VERSION >=3.2)&&($id =~/(equation|eqnarray)($|\d)/) &&! $failed ) {
+	if ($contents =~ s/^\\setcounter\{equation\}\{\d+\}/$&%\n\\lthtmldisplayB\{$id\}%/)
+	    { $contents ."%\n\\lthtmldisplayZ\n" }
+	else { "\\lthtmldisplayB{$id}%\n". $contents ."%\n\\lthtmldisplayZ\n" }
+    } else { "\\lthtmldisplayA{$id}%\n". $contents ."%\n\\lthtmldisplayZ\n"}
+}
+
+sub preprocess_images {
+    do {
+	print "\nWriting image.pre file ...\n";
+	open(ENV,">.$dd${PREFIX}images.pre")
+            || die "\nCannot write '${PREFIX}images.pre': $!\n";
+	print ENV &make_latex($latex_body);
+	print ENV "\n";
+	close ENV;
+	&copy_file($FILE, "bbl");
+	&copy_file($FILE, "aux");
+	local($num_cmds, $cnt, $this, @cmds);
+	@cmds = (split ('\n', $preprocessor_cmds));
+	$this_cmd = $num_cmds = 1+$#cmds;
+	$cnt = $num_cmds; $preprocessor_cmds = '';
+	while (@cmds) {
+	    $this_cmd = shift @cmds; last unless ($this_cmd);
+	    $this_cmd =~ s/.pre /.tex$cnt / if(($cnt)&&($cnt < $num_cmds));
+	    $cnt--; $this_cmd .= $cnt if ($cnt);
+	    $preprocessor_cmds .= $this_cmd."\n";
+	    L2hos->syswait($this_cmd);
+	}
+	# save pre-processor commands in a file:  preproc
+	open(CMDS,">.$dd${PREFIX}preproc")
+            || die "\nCannot write '${PREFIX}preproc': $!\n";
+	print CMDS $preprocessor_cmds ;
+	close CMDS;
+
+    } if ((%latex_body) && ($latex_body =~ /newpage/));
+}
+sub make_image_file {
+    do {
+	print "\nWriting image file ...\n";
+	open(ENV,">.$dd${PREFIX}images.tex")
+            || die "\nCannot write '${PREFIX}images.tex': $!\n";
+	print ENV &make_latex($latex_body);
+	print ENV "\n";
+	close ENV;
+	&copy_file($FILE, "bbl");
+	&copy_file($FILE, "aux");
+    } if ((%latex_body) && ($latex_body =~ /newpage/));
+}
+
+sub make_latex_images{
+    &close_dbm_database if $DJGPP;
+    local($dd) = $dd; $dd = '/' if ($dd eq "\\"); 
+    local($latex_call) = "$LATEX .$dd${PREFIX}images.tex";
+    print "$latex_call\n" if (($DEBUG)||($VERBOSITY > 1));
+    L2hos->syswait($latex_call);
+    &open_dbm_database if $DJGPP;
+}
+
+sub make_off_line_images {
+    local($name, $page_num);
+    if (!$NOLATEX && -f ".${dd}${PREFIX}images.tex") {
+	&make_tmp_dir;	# sets  $TMPDIR  and  $DESTDIR
+	$IMAGE_PREFIX =~ s/^_//o if ($TMPDIR);
+
+	&make_latex_images();
+
+	print "\nGenerating postscript images using dvips ...\n";
+	&process_log_file(".$dd${PREFIX}images.log"); # Get eqn size info
+	unless ($LaTeXERROR) {
+	    local($dvips_call) = 
+		"$DVIPS -S1 -i $DVIPSOPT -o$TMPDIR$dd${IMAGE_PREFIX} .${dd}${PREFIX}images.dvi";
+	    print "$dvips_call\n" if (($DEBUG)||($VERBOSITY > 1));
+
+	    &close_dbm_database if $DJGPP;
+	    L2hos->syswait($dvips_call) && print "Error: $!\n";
+	    undef $dvips_call;
+	    &open_dbm_database if $DJGPP;
+
+	    # add suffix .ps to the file-names for each image
+	    if(opendir(DIR, $TMPDIR || '.')) {
+                #  use list-context instead; thanks De-Wei Yin <yin at asc.on.ca>
+	        my (@ALL_IMAGE_FILES) = grep /^$IMAGE_PREFIX\d+$/o, readdir(DIR);
+	        foreach (@ALL_IMAGE_FILES) {
+		        L2hos->Rename("$TMPDIR$dd$_", "$TMPDIR$dd$_.ps");
+	        }
+	        closedir(DIR);
+            } else {
+                print "\nError: Cannot read dir '$TMPDIR': $!\n";
+            }
+	}
+    }
+    if ($LaTeXERROR) {
+        print "\n\n*** LaTeXERROR\n"; return();
+    }
+
+    while ( ($name, $page_num) = each %new_id_map) {
+	# Extract the page, convert and save it
+	&extract_image($page_num,$orig_name_map{$page_num});
+    }
+}
+
+# Generate images for unknown environments, equations etc, and replace
+# the markers in the main text with them.
+# - $cached_env_img maps encoded contents to image URL's
+# - $id_map maps $env$id to page numbers in the generated latex file and after
+# the images are generated, maps page numbers to image URL's
+# - $page_map maps page_numbers to image URL's (temporary map);
+# Uses global variables $id_map and $cached_env_img,
+# $new_page_num and $latex_body
+
+
+sub make_images {
+    local($name, $contents, $raw_contents, $uucontents, $page_num,
+	  $uucontents, %page_map, $img);
+    # It is necessary to run LaTeX this early because we need the log file
+    # which contains information used to determine equation alignment
+    if ( $latex_body =~ /newpage/) {
+	print "\n";
+	if ($LATEX_DUMP) {
+	    # dump a pre-compiled format
+	    if (!(-f "${PREFIX}images.fmt")) {
+	        print "$INILATEX ./${PREFIX}images.tex\n" 
+		    if (($DEBUG)||($VERBOSITY > 1));
+	        print "dumping ${PREFIX}images.fmt\n"
+		    unless ( L2hos->syswait("$INILATEX ./${PREFIX}images.tex"));
+	    }
+	    local ($img_fmt) = (-f "${PREFIX}images.fmt");
+	    if ($img_fmt) {
+                # use the pre-compiled format
+	        print "$TEX \"&./${PREFIX}images\" ./${PREFIX}images.tex\n"
+		    if (($DEBUG)||($VERBOSITY > 1));
+	        L2hos->syswait("$TEX \"&./${PREFIX}images\" ./${PREFIX}images.tex");
+	    } elsif (-f "${PREFIX}images.dvi") {
+	        print "${PREFIX}images.fmt failed, proceeding anyway\n";
+	    } else {
+	        print "${PREFIX}images.fmt failed, trying without it\n";
+		print "$LATEX ./${PREFIX}images.tex\n"
+		    if (($DEBUG)||($VERBOSITY > 1));
+		L2hos->syswait("$LATEX ./${PREFIX}images.tex");
+	    }
+	} else { &make_latex_images() }
+#	    local($latex_call) = "$LATEX .$dd${PREFIX}images.tex";
+#	    print "$latex_call\n" if (($DEBUG)||($VERBOSITY > 1));
+#	    L2hos->syswait("$latex_call");
+##	    print "$LATEX ./${PREFIX}images.tex\n" if (($DEBUG)||($VERBOSITY > 1));
+##	    L2hos->syswait("$LATEX ./${PREFIX}images.tex");
+##        }
+	$LaTeXERROR = 0;
+	&process_log_file("./${PREFIX}images.log"); # Get image size info
+    }
+    if ($NO_IMAGES) {
+        my $img = "image.$IMAGE_TYPE";
+	my $img_path = "$LATEX2HTMLDIR${dd}icons$dd$img";
+	L2hos->Copy($img_path, ".$dd$img")
+            if(-e $img_path && !-e $img);
+    }
+    elsif ((!$NOLATEX) && ($latex_body =~ /newpage/) && !($LaTeXERROR)) {
+   	print "\nGenerating postscript images using dvips ...\n";
+        &make_tmp_dir;  # sets  $TMPDIR  and  $DESTDIR
+	$IMAGE_PREFIX =~ s/^_//o if ($TMPDIR);
+
+	local($dvips_call) = 
+		"$DVIPS -S1 -i $DVIPSOPT -o$TMPDIR$dd$IMAGE_PREFIX .${dd}${PREFIX}images.dvi\n";
+	print $dvips_call if (($DEBUG)||($VERBOSITY > 1));
+	
+	if ((($PREFIX=~/\./)||($TMPDIR=~/\./)) && not($DVIPS_SAFE)) {
+	    print " *** There is a '.' in $TMPDIR or $PREFIX filename;\n"
+	    	. "  dvips  will fail, so image-generation is aborted ***\n";
+	} else {
+	    &close_dbm_database if $DJGPP;
+	    L2hos->syswait($dvips_call) && print "Error: $!\n";
+	    &open_dbm_database if $DJGPP;
+	}
+
+	# append .ps suffix to the filenames
+	if(opendir(DIR, $TMPDIR || '.')) {
+            # use list-context instead; thanks De-Wei Yin <yin at asc.on.ca>
+	    my @ALL_IMAGE_FILES = grep /^$IMAGE_PREFIX\d+$/o, readdir(DIR);
+	    foreach (@ALL_IMAGE_FILES) {
+	        L2hos->Rename("$TMPDIR$dd$_", "$TMPDIR$dd$_.ps");
+	    }
+	    closedir(DIR);
+        } else {
+            print "\nError: Cannot read dir '$TMPDIR': $!\n";
+        }
+    }
+    do {print "\n\n*** LaTeXERROR"; return()} if ($LaTeXERROR);
+    return() if ($LaTeXERROR); # empty .dvi file
+    L2hos->Unlink(".$dd${PREFIX}images.dvi") unless $DEBUG;
+
+    print "\n *** updating image cache\n" if ($VERBOSITY > 1);
+    while ( ($uucontents, $_) = each %cached_env_img) {
+	delete $cached_env_img{$uucontents}
+	    if ((/$PREFIX$img_rx\.$IMAGE_TYPE/o)&&!($DESTDIR&&$NO_SUBDIR));
+	$cached_env_img{$uucontents} = $_
+	    if (s/$PREFIX$img_rx\.new/$PREFIX$1.$IMAGE_TYPE/go);
+    }
+    print "\n *** removing unnecessary images ***\n" if ($VERBOSITY > 1);
+    while ( ($name, $page_num) = each %id_map) {
+	$contents = $latex_body{$name};
+	if ($page_num =~ /^\d+\#\d+$/) { # If it is a page number
+	    do {		# Extract the page, convert and save it
+		$img = &extract_image($page_num,$orig_name_map{$page_num});
+		if ($contents =~ /$htmlimage_rx/) {
+		    $uucontents = &special_encoding($env,$2,$contents);
+		} elsif ($contents =~ /$htmlimage_pr_rx/) {
+		    $uucontents = &special_encoding($env,$2,$contents);
+		} else {
+		    $uucontents = &encode(&addto_encoding($contents,$contents));
+		}
+		if (($HTML_VERSION >=3.2)||!($contents=~/$order_sensitive_rx/)){
+		    $cached_env_img{$uucontents} = $img;
+		} else {
+                    # Blow it away so it is not saved for next time
+		    delete $cached_env_img{$uucontents};
+		    print "\nimage $name not recycled, contents may change (e.g. numbering)";
+		}
+		$page_map{$page_num} = $img;
+	    } unless ($img = $page_map{$page_num}); # unless we've just done it
+	    $id_map{$name} = $img;
+	} else {
+	    $img = $page_num;	# it is already available from previous runs
+	}
+	print STDOUT " *** image done ***\n" if ($VERBOSITY > 2);
+    }
+    &write_warnings(
+		    "\nOne of the images is more than one page long.\n".
+		    "This may cause the rest of the images to get out of sync.\n\n")
+	if (-f sprintf("%s%.3d%s", $IMAGE_PREFIX, ++$new_page_num, ".ps"));
+    print "\n *** no more images ***\n"  if ($VERBOSITY > 1);
+    # MRO: The following cleanup seems to be incorrect: The DBM is
+    # still open at this stage, this causes a lot of unlink errors
+    #
+    #do { &cleanup; print "\n *** clean ***\n"  if ($VERBOSITY > 1);}
+    #	unless $DJGPP;
+}
+
+# MRO: This copies the navigation icons from the distribution directory
+# or an alternative specified in $ALTERNATIVE_ICONS
+# to the document directory.
+
+sub copy_icons {
+    local($icon,$_);
+    print "\nCopying navigation icons ...";
+    foreach (keys %used_icons) {
+	# each entry ends in gif or png
+	if ($ALTERNATIVE_ICONS) {
+	    L2hos->Copy("$ALTERNATIVE_ICONS$dd$_", ".$dd$_")
+		if (-e "$ALTERNATIVE_ICONS$dd$_" && !-e $_);
+	} elsif (/(gif|png)$/) {
+	    L2hos->Copy("$LATEX2HTMLDIR${dd}icons$dd$_", ".$dd$_")
+		if (-e "$LATEX2HTMLDIR${dd}icons$dd$_" && !-e $_);
+	}
+    }
+}
+
+sub process_log_file {
+    local($logfile) = @_;
+    local($name,$before,$lengthsfound);
+    local($TeXpt)= 72/72.27;
+    local($image_counter);
+    open(LOG, "<$logfile") || die "\nCannot read logfile '$logfile': $!\n";
+    while (<LOG>) {
+        if (/Overfull/) { $before .= $_ }
+        elsif (/latex2htmlLength ([a-zA-Z]+)=(\-?[\d\.]+)pt/) {
+	    ${$1} = 0.0+$2; $lengthsfound = 1;
+	} elsif (/latex2htmlSize|l2hSize/) {
+	    /:([^:]*):/;
+	    $name = $1; $name =~ s/\*//g;
+	    ++$image_counter;
+	    s/:([0-9.]*)pt/$height{$name} = $1*$TeXpt;''/e;
+	    s/::([0-9.]*)pt/$depth{$name} = $1*$TeXpt;''/e;
+	    s/::([0-9.]*)pt/$width{$name} = $1*$TeXpt;''/e;
+	    s/\((.*)\)/$eqno{$name} = 1+$1;''/e;
+	    if ($before) {
+		local($tmp);
+		if ($before =~ /hbox\s*\((\d+\.?\d*)pt/) {
+		    $width{$name} = $width{$name}+$1*$TeXpt;
+		}
+		if ($before =~ /vbox\s*\((\d+\.?\d*)pt/) {
+		    $height{$name} = $height{$name}+$1*$TeXpt;
+		}
+	        $before = '';
+	    }
+	}
+    $LaTeXERROR = 1 if (/^No pages of output./);
+    }
+
+    if ($LaTeXERROR) {
+	print STDERR "\n\n *** LaTeX produced no output ***\n"
+	    . " *** no new images can be created\n"
+	    . " *** Examine the  images.log  file.\n\n";
+	return;
+    }
+    print STDOUT "\n *** processing $image_counter images ***\n";
+    print STDOUT "\n *** LATEX LOG OK. ***\n" if ($VERBOSITY > 1);
+
+    if ($lengthsfound) {
+	$ODD_HMARGIN  = $hoffset + $oddsidemargin;
+	$EVEN_HMARGIN = $hoffset + $evensidemargin;
+	$VMARGIN = $voffset + $topmargin + $headheight + $headsep;
+        if ($dvi_mag >0 && $dvi_mag != 1000) {
+	    $ODD_HMARGIN = int($dvi_mag /1000 * $ODD_HMARGIN);
+	    $EVEN_HMARGIN = int($dvi_mag /1000 * $EVEN_HMARGIN);
+	    $VMARGIN = int($dvi_mag /1000 * $VMARGIN);
+	}
+    } else {
+	$ODD_HMARGIN = 0;
+	$EVEN_HMARGIN = 0;
+	$VMARGIN = 0;
+    }
+    $ODD_HMARGIN  = int($ODD_HMARGIN*$TeXpt  + 72.5);
+    $EVEN_HMARGIN = int($EVEN_HMARGIN*$TeXpt + 72.5);
+    $VMARGIN = int($VMARGIN*$TeXpt + 72.5);
+    close(LOG);
+}
+
+sub extract_image { # clean
+    my ($page_num,$name) = @_;
+
+    # The followin come out of %img_params
+    my ($scale, $external, $thumbnail, $map, $psimage, $align, $usemap,
+	  $flip, $aalias, $trans, $exscale, $alt, $exstr);
+
+    my ($lwidth, $val) = (0, '');
+    my ($custom_size,$color_depth,$height,$width,$croparg);
+
+    print STDOUT "\nextracting $name as $page_num\n" if ($VERBOSITY > 1);
+    # $global_num identifies this image in the original source file
+    # $new_num identifies this image in images.tex
+    my ($global_num, $new_num) = split(/#/, $page_num);
+    $name =~ s/\*/star/;
+    my ($env,$basename,$img) = ($name,"img$global_num",'');
+    $env =~ s/\d+$//;
+    $psname = sprintf("%s%.3d", "$TMPDIR$dd$IMAGE_PREFIX", $new_num);
+    if ( $EXTERNAL_IMAGES && $PS_IMAGES ) {
+	$img =  "$basename.ps";
+	L2hos->Copy("$psname.ps", "${PREFIX}$img");
+    } else {
+	$img = "$basename.$IMAGE_TYPE";
+	($scale, $external, $thumbnail, $map, $psimage, $align, $usemap, 
+	    $flip, $aalias, $trans, $exscale, $alt, $exstr) =
+            split('#', $img_params{$name});
+	$lwidth = ($align =~ s/nojustify/middle/) ? 0 : $LINE_WIDTH;
+	$alt = "ALT=\"$name\"" unless $alt;
+	$exscale = $EXTRA_IMAGE_SCALE unless($exscale);
+	if ($NO_IMAGES) {
+	    L2hos->Symlink("image.$IMAGE_TYPE", "${PREFIX}$img");
+	    if ($thumbnail) {
+		L2hos->Symlink("image.$IMAGE_TYPE", "${PREFIX}T$img");
+		$thumbnail = "${PREFIX}T$img";
+	    }
+	} else {
+	    # RRM: deal with size data
+ 	    if ($width{$name} < 0) {
+		if ($exscale && $PK_GENERATION) {
+	    	    $height = int(				
+			$exscale*$height{$name}+	
+			$exscale*$depth{$name} +.5);
+		    $width = int($exscale*$width{$name}-.5);
+		} else {
+	    	    $height = int($height{$name}+$depth{$name}+.5);
+		    $width = int($width{$name}-.5);
+		}
+		$custom_size = "${width}x$height";
+	    } elsif ($width{$name}) {
+		if ($exscale && $PK_GENERATION) {
+		    $height = int( $height{$name} * $exscale +
+			$depth{$name} * $exscale +.5);
+		    $width = int($width{$name} * $exscale +.5);
+		} else {
+		    $height = int($height{$name}+$depth{$name}+.5);
+		    $width = int($width{$name}+.5);
+		}
+		$custom_size = "${width}x$height";
+            } else {
+		$custom_size = '';
+	    }
+            # MRO: add first overall crop
+	    $croparg = '-crop a' . ($crop{$name} || '') . ' ';
+	    $page_num  =~ s/^\d+#//o;
+	    $custom_size .= " -margins "
+		. (($page_num % 2) ? $ODD_HMARGIN:$EVEN_HMARGIN)
+		. ",$VMARGIN" if ($custom_size);
+
+	    #RRM: \special commands may place ink outside the expected bounds:
+	    $custom_size = '' if ($tex_specials{$name});
+
+	    # MRO: Patches for image conversion with pstoimg
+	    # RRM: ...with modifications and fixes
+	    L2hos->Unlink("${PREFIX}$img");
+	    &close_dbm_database if $DJGPP;
+            print "Converting image #$new_num\n";
+
+	    if ( ($name =~ /figure/) || $psimage || $scale || $thumbnail) {
+		$scale = $FIGURE_SCALE_FACTOR unless ($scale);
+		print "\nFIGURE: $name scaled $scale  $aalias\n" if ($VERBOSITY > 2);
+		(L2hos->syswait( "$PSTOIMG -type $IMAGE_TYPE "
+		. ($DEBUG ? '-debug ' : '-quiet ' )
+		. ($TMPDIR ? "-tmp $TMPDIR " : '' )
+		. (($DISCARD_PS && !$thumbnail && !$psimage)? "-discard " :'')
+		. (($INTERLACE) ? "-interlace " : '' )
+		. (((($ANTI_ALIAS)||($aalias))&&($aalias !~ /no|text/))? "-antialias ":'')
+		. (($ANTI_ALIAS_TEXT||(($aalias =~/text/)&&($aalias !~/no/)))?
+			"-aaliastext ":'') 
+		. (($custom_size) ? "-geometry $custom_size ": '' )
+		. $croparg
+		. ($color_depth || '')
+		. (($flip) ? "-flip $flip " : '' )
+		. (($scale > 0) ? "-scale $scale " : '' )
+		. (((($TRANSPARENT_FIGURES && ($env =~ /figure/o))||($trans))
+		     &&(!($trans =~ /no/))) ? "-transparent " : '')
+		. (($WHITE_BACKGROUND) ? "-white " : '' )
+		. "-out ${PREFIX}$img $psname.ps"
+		) ) # ||!(print "\nWriting image: ${PREFIX}$img"))
+		    && print "\nError while converting image: $!\n";
+
+		if ($thumbnail) { # $thumbnail contains the reduction factor
+		    L2hos->Unlink("${PREFIX}T$img");
+		    print "\nIMAGE thumbnail: $name" if ($VERBOSITY > 2);
+		    (L2hos->syswait( "$PSTOIMG -type $IMAGE_TYPE "
+		    . ($DEBUG ? '-debug ' : '-quiet ' )
+		    . ($TMPDIR ? "-tmp $TMPDIR " : '' )
+		    . (($DISCARD_PS && !$psimage) ? "-discard " : '' )
+		    . (($INTERLACE) ? "-interlace " : '' )
+		    . ((($ANTI_ALIAS||($aalias))&&(!($aalias =~/no/)))? "-antialias " :'')
+		    . (($ANTI_ALIAS_TEXT||(($aalias =~/text/)&&($aalias !~/no/)))?
+			"-aaliastext ":'') 
+		    . (($custom_size) ? "-geometry $custom_size " : '' )
+		    . ($color_depth || '')
+		    . (($flip) ? "-flip $flip " : '' )
+		    . (($thumbnail > 0) ? "-scale $thumbnail " : '' )
+		    . ((($trans)&&(!($trans =~ /no/))) ? "-transparent " : '')
+		    . (($WHITE_BACKGROUND) ? "-white " : '' )
+		    . "-out ${PREFIX}T$img $psname.ps"
+		    ) ) # ||!(print "\nWriting image: ${PREFIX}T$img"))
+			&& print "\nError while converting thumbnail: $!\n";
+		    $thumbnail = "${PREFIX}T$img";
+		}
+	    } elsif (($exscale &&(!$PK_GENERATION))&&($width{$name})) {
+		my $under = '';
+		my $mathscale = ($MATH_SCALE_FACTOR > 0) ? $MATH_SCALE_FACTOR : 1;
+		if (($DISP_SCALE_FACTOR > 0) &&
+		    ( $name =~ /equation|eqnarray|display/))
+		        { $mathscale *= $DISP_SCALE_FACTOR; };
+		if ($scale) {
+		    $scale *= $exscale if ($name =~ /makeimage|tab/);
+		} else {
+		    $scale = $mathscale*$exscale;
+		    $under = "d" if (($name =~/inline|indisplay/)&&($depth{$name}));
+		}
+		print "\nIMAGE: $name  scaled by $scale \n" if ($VERBOSITY > 2);
+		(L2hos->syswait( "$PSTOIMG -type $IMAGE_TYPE "
+		. ($DEBUG ? '-debug ' : '-quiet ' )
+		. ($TMPDIR ? "-tmp $TMPDIR " : '' )
+		. (($DISCARD_PS)? "-discard " : '' )
+		. (($INTERLACE)? "-interlace " : '' )
+		. ((($ANTI_ALIAS_TEXT||($aalias))&&($aalias !=~/no/))? 
+		    "-antialias -depth 1 " :'')
+		. (($custom_size)? "-geometry $custom_size " : '' )
+                . $croparg
+		. (($scale != 1)? "-scale $scale " : '' )
+		. ((($exscale)&&($exscale != 1)&&
+		    !($ANTI_ALIAS_TEXT &&($LATEX_COLOR)))? 
+			"-shoreup $exscale$under " :'')
+		. ((($TRANSPARENT_FIGURES ||($trans))
+		     &&(!($trans =~ /no/)))? "-transparent " : '')
+		. (($WHITE_BACKGROUND && !$TRANSPARENT_FIGURES) ? "-white " : '' )
+		. "-out ${PREFIX}$img $psname.ps"
+		) ) # ||!(print "\nWriting image: ${PREFIX}$img"))
+		    && print "\nError while converting image: $!\n";
+	    } else {
+		print "\nIMAGE: $name\n" if ($VERBOSITY > 2);
+		my $under = '';
+		my $mathscale = ($MATH_SCALE_FACTOR > 0) ? $MATH_SCALE_FACTOR : 1;
+		if (($DISP_SCALE_FACTOR > 0) &&
+		    ( $name =~ /equation|eqnarray|display/))
+		        { $mathscale *= $DISP_SCALE_FACTOR; };
+		if (($scale)&&($exscale)) {
+		    $scale *= $exscale if ($name =~ /makeimage|tab/);
+		} elsif ($scale) {
+		} elsif (($mathscale)&&($exscale)) {
+		    $scale = $mathscale*$exscale;
+		    $under = "d" if (($name =~/inline|indisplay/)&&($depth{$name}));
+		} elsif ($mathscale) { $scale = $mathscale; }
+
+		(L2hos->syswait("$PSTOIMG -type $IMAGE_TYPE "
+		. ($DEBUG ? '-debug ' : '-quiet ' )
+		. ($TMPDIR ? "-tmp $TMPDIR " : '' )
+		. (($DISCARD_PS) ? "-discard " : '' )
+		. (($INTERLACE) ? "-interlace " : '' )
+		. ((($ANTI_ALIAS_TEXT||($aalias))&&(!($aalias =~ /no/)))?
+		    "-antialias -depth 1 " :'')
+		. ((($exscale)&&($exscale != 1)&&
+		    !($ANTI_ALIAS_TEXT &&($LATEX_COLOR)))? 
+			"-shoreup $exscale " :'')
+		. (($scale ne 1) ? "-scale $scale " : '' )
+		. (($custom_size) ? "-geometry $custom_size " : '' )
+                . $croparg
+#		.  (($name =~ /(equation|eqnarray)/) ? "-rightjustify $lwidth " : '')
+#		.  (($name =~ /displaymath/) ? "-center $lwidth " : '')
+		. (($name =~ /inline|indisplay/ && (!($custom_size))&&$depth{$name}!= 0) ?
+		    do {$val=($height{$name}-$depth{$name})/($height{$name}+$depth{$name});
+			"-topjustify x$val "} : '')
+		. ((($TRANSPARENT_FIGURES||($trans))
+		    &&(!($trans =~ /no/))) ? "-transparent " : '')
+		. (($WHITE_BACKGROUND && !$TRANSPARENT_FIGURES) ? "-white " : '' )
+		. "-out ${PREFIX}$img $psname.ps")
+		) #|| !(print "\nWriting image: ${PREFIX}$img"))
+		    && print "\nError while converting image\n";
+	    }
+	    if (! -r "${PREFIX}$img") {
+		&write_warnings("\nFailed to convert image $psname.ps")
+	    } else { } #L2hos->Unlink("$psname.ps") unless $DEBUG }
+	    &open_dbm_database if $DJGPP;
+	}
+    }
+    print "\nextracted $name as $page_num\n" if ($VERBOSITY > 1);
+    &embed_image("${PREFIX}$img", $name, $external, $alt, $thumbnail, $map,
+        $align, $usemap, $exscale, $exstr);
+}
+
+sub extract_parameters {
+    local($contents) = @_;
+    local($_, $scale, $external, $thumbnail, $map, $psimage, $align,
+	  $usemap, $flip, $aalias, $trans, $pagecolor, $alt, $exscale,
+	  $cdepth, $htmlparams);
+
+    #remove the \htmlimage commands and arguments before...
+    $contents =~ s/$htmlimage_rx/$_ = $2;''/ego;
+    $contents =~ s/$htmlimage_pr_rx/$_ .= $2;''/ego;
+
+    # code adapted from original idea by Stephen Gildea:
+    # If the document specifies the ALT tag explicitly
+    # with \htmlimage{alt=some text} then use it.
+    s!alt=([^,]+)!$alt = $1;
+        $alt =~ s/^\s+|\s+$//g; $alt =~ s/"//g;
+        $alt="ALT=\"$alt\"";
+    ''!ie;
+
+  if (!$alt) {
+    #...catching all the code for the ALT text.
+    local($keep_gt)=1;
+    $alt = &flatten_math($contents); undef $keep_gt;
+    #RRM: too long strings upset the DBM. Truncate to <= 165 chars.
+    if ( length($alt) > 163 ) {
+	local($start,$end);
+	$start = substr($alt,0,80);
+	$end = substr($alt,length($alt)-80,80);
+	$alt = join('',$start,"...\n ...",$end);
+    }
+    s/ALT\s*=\"([\w\W]*)\"/$alt=$1;''/ie;
+    if ($alt) {
+	if ($alt =~ /\#/) {
+	    $alt =~ s/^(\\vbox\{)?\#[A-Za-z]*\s*//;
+	    $alt =~ s/\n?\#[A-Za-z]*\s*\}?$//s;
+	    if ($alt =~ /\#/) { $alt = $` . " ... " };
+	}
+	$alt =~ s/\`\`/\\lq\\lq /g; $alt =~ s/\`/\\lq /g;
+	$alt =~ s/(^\s*|\s*$)//mg;
+	$alt = "ALT=\"$alt\"" if ($alt);
+    } else { $alt = 'ALT="image"' }
+  }
+
+    $psimage++ if ($contents =~ /\.ps/);
+#    $contents =~ s/\s//g;	# Remove spaces   Why ?
+    s/extrascale=([\.\d]*)/$exscale=$1;''/ie;
+    s/\bscale=([\.\d]*)/$scale=$1;''/ie;
+    s/(^|,\s*)external/$external=1;''/ie;
+    s/(^|,\s*)((no)?_?anti)alias(_?(text))?/$aalias = $2.$4;''/ie;
+    s/(^|,\s*)((no)?_?trans)parent/$trans = $2;''/ie;
+    s/thumbnail=([\.\d]*)/$thumbnail=$1;''/ie;
+    s/usemap=([^\s,]+)/$usemap=$1;''/ie;
+    s/map=([^\s,]+)/;$map=$1;''/ie;
+    s/align=([^\s,]+)/$align=$1;''/ie;
+    s/flip=([^\s,]+)/$flip=$1;''/ie;
+    s/color_?(depth)?=([^\s,]+)/$cdepth=$2;''/ie;
+    ($scale,$external,$thumbnail,$map,$psimage,$align
+     ,$usemap,$flip,$aalias,$trans,$exscale,$alt,$_);
+}
+
+
+# RRM: Put the raw \TeX code into the ALT tag
+# replacing artificial environments and awkward characters
+sub flatten_math {
+    local ($_) = @_;
+    $_ = &revert_to_raw_tex($_);
+    s/[ \t]+/ /g;
+    # MRO: replaced $* with /m
+    s/$tex2html_wrap_rx//gm;
+    s/(\\begin\s*\{[^\}]*\})(\s*(\[[^]]*\]))?[ \t]*/$1$3/gm;
+    s/(\\end\{[^\}]*\})\n?/$1/gm;
+    s/>(\w)?/($1)?"\\gt $1":"\\gt"/eg unless ($keep_gt); # replace > by \gt
+    s/\\\|(\w)?/($1)?"\\Vert $1":"\\Vert"/eg; 	# replace \| by \Vert
+    s/\|(\w)?/($1)?"\\vert $1":"\\vert"/eg; 	# replace | by \vert
+    s/\\\\/\\\\ /g; 	# insert space after \\ 
+    s/\\"/\\uml /g;	# screen umlaut accents...
+    s/"/\'\'/g;		# replace " by ''
+    s/\\\#/\\char93 /g;	# replace \# by \char93 else caching fails
+#    s/"(\w)?/($1)?"\\rq\\rq $1":"\'\'"/eg;	# replace " by \rq\rq
+#    s/\&\\uml /\\\"/g;	# ...reinstate umlauts
+    $_;
+}
+
+sub scaled_image_size {
+    local($exscale,$_) = @_;
+    local($width,$height) = ('','');
+    /WIDTH=\"?(\d*)\"?\s*HEIGHT=\"?(\d*)\"?$/o;
+    $width=int($1/$exscale + .5);
+    $height=int($2/$exscale + .5);
+    "WIDTH=\"$width\" HEIGHT=\"$height\""
+}
+
+sub process_in_latex {
+    # This is just a wrapper for process_undefined_environment.
+    # @[0] = contents
+    $global{'max_id'}++;
+    &process_undefined_environment('tex2html_wrap',$global{'max_id'},$_[0]);
+}
+
+# MRO: cp deprecated, replaced by L2hos->Copy
+
+# Marcus Hennecke  6/3/96
+# MRO: test for existance
+sub copy_file {
+    local($file, $ext) = @_;
+    $file =  &fulltexpath("$FILE.$ext");
+    if(-r $file) {
+        print "\nNote: Copying '$file' for image generation\n"
+            if($VERBOSITY > 2);
+        L2hos->Copy($file, ".$dd${PREFIX}images.$ext");
+    }
+}
+
+sub rename_image_files {
+    local($_, $old_name, $prefix);
+    if ($PREFIX) {
+	foreach (<${PREFIX}*img*.$IMAGE_TYPE>) {
+	    $old_name = $_;
+	    s/\.$IMAGE_TYPE$/\.old/o;
+	    L2hos->Rename($old_name, $_);
+	    }
+	}
+    else {
+	foreach (<img*.$IMAGE_TYPE>) {
+	    $old_name = $_;
+	    s/\.$IMAGE_TYPE$/\.old/o;
+	    L2hos->Rename($old_name, $_);
+	}
+	foreach (<Timg*.$IMAGE_TYPE>) {
+	    $old_name = $_;
+	    s/\.$IMAGE_TYPE$/\.old/o;
+	    L2hos->Rename($old_name, $_);
+	}
+    }
+}
+
+
+############################ Processing Commands ##########################
+
+sub ignore_translate_commands {
+    local ($_) = @_;
+#   print "\nTranslating commands ...";
+
+    local(@processedC);
+    &replace_strange_accents;
+    local($before, $contents, $br_id, $after, $pattern, $end_cmd_rx);
+    s/$begin_cmd_rx/&replace_macro_expansion($`, $1, $&, $')/eg;
+}
+
+sub replace_macro_expansion {
+    push(@processedC,$_[1]);
+    $end_cmd_rx = &make_end_cmd_rx($_[2]);
+    $pattern = $_[3];
+    $_ = join('',$_[3],$_[4]);
+    $after = $_[4];
+    if (($before)&&(!($before =~ /$begin_cmd_rx/))) {
+	push(@processedC,$before);
+	    $_ = join('',$pattern,$after); $before = '';
+	}
+	local($end_cmd_rx) = &make_end_cmd_rx($br_id);
+    
+}
+
+sub translate_aux_commands {
+    s/^(.*)$/&translate_commands($1)/s;
+}
+
+sub translate_commands {
+    local ($_) = @_;
+#   print "\nTranslating commands ...";
+
+    local(@processedC);
+    &replace_strange_accents;
+    for (;;) {			# For each opening bracket ...
+	last unless ($_ =~ /$begin_cmd_rx/);
+	local($before, $contents, $br_id, $after, $pattern);
+	($before, $br_id, $after, $pattern) = ($`, $1, $', $&);
+	if (($before)&&(!($before =~ /$begin_cmd_rx/))) {
+	    push(@processedC,$before);
+	    $_ = join('',$pattern,$after); $before = '';
+	}
+	local($end_cmd_rx) = &make_end_cmd_rx($br_id);
+	if ($after =~ /$end_cmd_rx/) { # ... find the the matching closing one
+	    $NESTING_LEVEL++;
+	    ($contents, $after) = ($`, $');
+	    do {
+		local(@save_open_tags) = @$open_tags_R;
+		local($open_tags_R) = [ @save_open_tags ];
+		print STDOUT "\nIN::{$br_id}" if ($VERBOSITY > 4);
+		print STDOUT "\n:$contents\n" if ($VERBOSITY > 7);
+		undef $_;
+		$contents = &translate_commands($contents)
+		    if ($contents =~ /$match_br_rx/o);
+                # Modifies $contents
+		&process_command($single_cmd_rx,$contents)
+		    if ($contents =~ /\\/o);
+
+		$contents .= &balance_tags();
+	    };
+
+	    print STDOUT "\nOUT: {$br_id}" if ($VERBOSITY > 4);
+	    print STDOUT "\n:$contents\n" if ($VERBOSITY > 7);
+	    # THIS MARKS THE OPEN-CLOSE DELIMITERS AS PROCESSED
+	    $_ = join("", $before,"$OP$br_id$CP", $contents,"$OP$br_id$CP", $after);
+	    $NESTING_LEVEL--;
+	}
+	else {
+	    $pattern = &escape_rx_chars($pattern);
+	    s/$pattern//;
+	    print "\nCannot find matching bracket for $br_id" unless $AUX_FILE;
+	}
+	last unless ($_ =~ /$begin_cmd_rx/o);
+    }
+    $_ = join('', at processedC) . $_;
+    # Now do any top level commands that are not inside any brackets
+    # MODIFIES $_
+    print $_ if ($VERBOSITY > 8);
+    &process_command($single_cmd_rx,$_);
+}
+
+#RRM: based on earlier work of Marcus Hennecke
+# makes sure the $open_tags_R at the end of an environment
+# is the same as @save_open_tags from the start,
+# ensuring that the HTML page indeed has balanced tags
+sub balance_tags {
+    local($tag_cmd, $tags, $save_tags, $open_tags, @reopen_tags);
+    $save_tags = join(',', at save_open_tags) if (@save_open_tags);
+    $open_tags = join(',',@$open_tags_R) if (@$open_tags_R);
+    if ($open_tags eq $save_tags) { return(); }
+    if ($save_tags =~ s/^$open_tags//) {
+	@reopen_tags = split (',',$');
+    } else {
+	@reopen_tags = @save_open_tags;
+	while (@$open_tags_R) {
+	    $tag_cmd = pop (@$open_tags_R);
+	    print STDOUT "\n</$tag_cmd>" if $VERBOSITY > 2;
+	    $declarations{$tag_cmd} =~ m|</.*$|;
+	    $tags .= $& unless ($` =~ /^<>$/);
+	    $open_tags = join(',',@$open_tags_R) if (@$open_tags_R);
+	    last if ( $save_tags =~ s/^$open_tags/
+		     @reopen_tags = split (',',$');''/e);
+	}
+    }
+    while (@reopen_tags) {
+	$tag_cmd = shift @reopen_tags;
+	if ($tag_cmd) {
+	    push (@$open_tags_R, $tag_cmd) if ($tag_cmd);
+	    print STDOUT "\n<$tag_cmd>" if $VERBOSITY > 2;
+	    $declarations{$tag_cmd} =~ m|</.*$|;
+	    $tags .= $` unless ($` =~ /^<>$/);
+	}
+    }
+    $tags;
+}
+
+sub close_all_tags {
+    return() if (!@$open_tags_R);
+    local($tags,$tag_cmd);
+    while (@$open_tags_R) {
+	$tag_cmd = pop (@$open_tags_R);
+	print STDOUT "\n</$tag_cmd>" if $VERBOSITY > 2;
+	$declarations{$tag_cmd} =~ m|</.*$|;
+	$tags .= $& unless ($` =~ /^<>$/);
+    }
+    $tags;
+}
+
+sub preserve_open_tags {
+    local(@save_open_tags) = @$open_tags_R;
+    local($open_tags_R) = [ @save_open_tags ];
+    # provides the markup to close and reopen the current tags
+    (&close_all_tags(), &balance_tags());
+}
+
+sub preserve_open_block_tags {
+    local($tag_cmd,$tags_open,$tags_close,$pre,$post, at tags);
+    while (@$open_tags_R) {
+	$tag_cmd = pop (@$open_tags_R);
+	print STDOUT "\n</$tag_cmd>" if $VERBOSITY > 2;
+	$declarations{$tag_cmd} =~ m|</.*$|;
+	($pre,$post) = ($`,$&);
+	if ($post =~ /$block_close_rx/) {
+	    # put it back and exit
+	    push(@$open_tags_R,$tag_cmd);
+	    last;
+	} else {
+	    # leave it closed, collecting tags for it
+	    $tags_close .= $post;
+	    $tags_open = $pre . $tags_open;
+	    unshift(@tags,$tag_cmd);
+	}
+    }
+    ($tags_close , $tags_open, @tags);  
+}
+
+sub minimize_open_tags {
+    local($this_tag, $close_only) = @_;
+    local($pre,$post,$decl);
+    $decl = $declarations{$this_tag};
+    if ($decl) {
+    # if it is a declaration, get the corresponding tags...
+	$decl =~ m|</.*$|;
+	($pre,$post) = ($`,$&) unless ($` =~ /^<>$/);
+	if (!@$open_tags_R) { # when nothing else is open...
+            # pushing the style, when appropriate
+	    push (@$open_tags_R, $this_tag)
+		unless ($close_only ||($post =~ /$block_close_rx/));
+	    print STDOUT "\n<$this_tag>" if $VERBOSITY > 2;
+            # and return the tags
+	    return($pre,$post) unless ($USING_STYLES);
+	    local($env_id) = '' if ($env_id =~/^\w+$/);
+	    $pre =~ s/>$/ $env_id>/ if ($env_id);
+	    return($pre,$post);
+	}
+    } else { # ...else record the argument as $pre
+	$pre = $this_tag unless $close_only;
+    }
+    local($env_id) = '' if ($env_id =~/^\w+$/);
+    $pre =~ s/>$/ ID="$env_id">/ if ($USING_STYLES &&($env_id));
+
+    # return the tags, if nothing is already open
+    if (!@$open_tags_R) { 
+	return($pre,$post);
+    }
+#    elsif ($close_only) { push (@$open_tags_R, $this_tag) }
+
+    local($tags,$tag_cmd,$tag_open);
+    local($closures,$reopens, at tags);
+    local($tag_close,$tag_open);
+    local($size_cmd,$size_open);
+    local($font_cmd,$font_open);
+    local($fontwt_cmd,$fontwt_open);
+    local($color_cmd,$color_open);
+     if ($decl) {
+	if ($this_tag =~ /$sizechange_rx/) { 
+	    $size_cmd = $this_tag;
+	} else {
+	    if ($this_tag =~ /$fontchange_rx/) { 
+	        $font_cmd = $this_tag }
+	    if ($this_tag =~ /$fontweight_rx/) { 
+		$fontwt_cmd = $this_tag }
+	}
+    }
+    while (@$open_tags_R) {
+	($tag_close,$tag_open) = ('','');
+	$tag_cmd = pop (@$open_tags_R);
+	print STDOUT "\n</$tag_cmd>" if $VERBOSITY > 2;
+	$declarations{$tag_cmd} =~ m|</.*$|;
+	($tag_close,$tag_open) = ($&,$`) unless ($` =~ /<>/);
+	$closures .= $tag_close;
+
+	if ((!$size_cmd)&&($tag_cmd =~ /$sizechange_rx/)) {
+	    $size_cmd = $tag_cmd;
+	    $size_open = $tag_open;
+	}
+	elsif ((!$font_cmd)&&($tag_cmd =~ /$fontchange_rx/)) {
+	    $font_cmd = $tag_cmd;
+	    $font_open = $tag_open;
+	}
+	elsif ((!$fontwt_cmd)&&($tag_cmd =~ /$fontweight_rx/)) {
+	    $fontwt_cmd = $tag_cmd;
+	    $fontwt_open = $tag_open;
+	}
+	elsif ((!$color_cmd)&&($tag_cmd =~ /$colorchange_rx/)) {
+	    $color_cmd = $tag_cmd;
+	    $color_open = $tag_open;
+	} 
+	elsif ($tag_cmd =~ 
+	     /$sizechange_rx|$fontchange_rx|$fontweight_rx|$colorchange_rx/) {
+	} else {
+	    unshift (@tags, $tag_cmd);
+	    print STDOUT "\n<<$tag_cmd>" if $VERBOSITY > 2;
+	    $reopens = $tag_open . $reopens;
+	}
+    }
+    if ($USING_STYLES) {
+	local($TAG) = "DIV";
+	if ($pre =~ /^<(DIV|SPAN|PRE)/) { $TAG = $1 };
+	if (($pre =~ /^<$TAG/)&&($env_id =~ /^\s+(CLASS|ID)/)) {
+	    $pre =~ s/<$TAG/<$TAG$env_id/;
+	} elsif ($pre =~ /<P>/) {
+	    $TAG = 'P';
+	} else {
+	}
+#	$post .= "</$TAG>";
+    }
+    push (@$open_tags_R, @tags);
+    $tags .= $pre if ($pre && $post =~ /$block_close_rx/);
+    if ($font_cmd && !($font_cmd eq $this_tag)) {
+	push (@$open_tags_R,$font_cmd);
+	print STDOUT "\n<$font_cmd>" if $VERBOSITY > 2;
+	$tags .= $font_open;
+    }
+    if ($fontwt_cmd && !($fontwt_cmd eq $this_tag)) {
+	push (@$open_tags_R,$fontwt_cmd);
+	print STDOUT "\n<$fontwt_cmd>" if $VERBOSITY > 2;
+	$tags .= $fontwt_open;
+    }
+    if ($size_cmd && !($size_cmd eq $this_tag)) {
+	push (@$open_tags_R,$size_cmd);
+	print STDOUT "\n<$size_cmd>" if $VERBOSITY > 2;
+	$tags .= $size_open;
+    }
+    if ($color_cmd && !($color_cmd eq $this_tag)) {
+	push (@$open_tags_R,$color_cmd);
+	print STDOUT "\n<$color_cmd>" if $VERBOSITY > 2;
+	$tags .= $color_open;
+    }
+    $tags .= $pre unless ($pre && $post =~ /$block_close_rx/);
+    push (@$open_tags_R, $this_tag)
+	if ($decl &&!($post =~ /$block_close_rx|$all_close_rx/));
+    print STDOUT "\n<$this_tag>" if $VERBOSITY > 2;
+    ($closures.$reopens.$tags , $post );
+}
+
+
+sub declared_env {
+    local($decl, $_, $deferred) = @_;
+    local($after_cell,$pre,$post);
+    local($decls) = $declarations{$decl};
+    $decls =~ m|</.*$|;
+    ($pre,$post) = ($`,$&);
+    if ($USING_STYLES) {
+	$env_style{$decl} = " " unless ($env_style{$decl});
+	$pre =~ s/>$/$env_id>/ if ($env_id);
+    }
+    local($closing_tag) = 1 if ($pre =~ /^<>$/);
+    $pre = $post = '' if $closing_tag;
+    local($closures,$reopens);
+
+    local(@save_open_tags) = @$open_tags_R
+	unless ($closing_tag || $deferred);
+    local($open_tags_R) = [ @save_open_tags ]
+	unless ($closing_tag || $deferred );
+
+    if ($post =~ /$block_close_rx/) {
+	local($last_tag) = pop (@$open_tags_R);
+	local($ldecl) = $declarations{$last_tag};
+	if ($ldecl =~ m|</.*$|) { $ldecl = $& }
+	if (($last_tag)&&!($ldecl =~ /$block_close_rx/)) {
+	    # need to close tags, for re-opening inside
+	    push (@$open_tags_R, $last_tag);
+	    ($closures,$reopens) = &preserve_open_tags();
+	    $pre = join('', $closures, "\n", $pre, $reopens);
+	    $post = join('', $closures, $post, $reopens);
+	} elsif ($last_tag) {
+	    $pre = "\n".$pre;
+	    push (@$open_tags_R, $last_tag);
+	    undef $ldecl;
+	} else {
+	}
+
+	if ($deferred) {
+	    if (defined $ldecl) {
+		print STDOUT "\n<<$decl>" if $VERBOSITY > 2;
+		unshift(@$open_tags_R, $decl);
+	    } else {
+		print STDOUT "\n<$decl>" if $VERBOSITY > 2;
+		push(@$open_tags_R, $decl);
+	    }
+	    return ( $pre . $_ );
+	} else {
+	    if (defined $ldecl) {
+		print STDOUT "\n<<$decl>" if $VERBOSITY > 2;
+		unshift(@$open_tags_R, $decl);
+	    } else {
+		print STDOUT "\n<$decl>" if $VERBOSITY > 2;
+		push(@$open_tags_R, $decl);
+	    }
+	}
+    } elsif ($post =~/$all_close_rx/) {
+	($closures,$reopens) = &preserve_open_tags();
+	($pre,$post) = &minimize_open_tags($decl,1);
+	$pre = join('', $closures, $pre);
+    } elsif ($closing_tag) {
+	$prev_open = $pre;
+	($pre,$post) = &minimize_open_tags($decl,1);
+	$pre =~ s/<\/?>//g; $post =~ s/<\/?>//;
+    } else {
+	($pre,$post) = &minimize_open_tags($decl); 
+    }
+    $_ =~ s/^\s+//s; #RRM:28/4/99 remove spaces at the beginning
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_) if (/\\/);
+    if ($post =~ /$block_close_rx/) {
+	s/^\n?/\n/o; 
+	if (defined $ldecl) {
+	    $post = &close_all_tags();
+	} else {
+	    $post = "\n";
+	}
+    } elsif ($post =~/$all_close_rx/) {
+    } else { $post = '' };
+
+    join('', $pre, $_, $post
+	   , ($closing_tag ? '' : &balance_tags()) );
+}
+
+sub do_cmd_centering{&declared_env('center',$_[0],$tex2html_deferred)}
+sub do_cmd_raggedright{&declared_env('flushleft',$_[0],$tex2html_deferred)}
+sub do_cmd_raggedleft{&declared_env('flushright',$_[0],$tex2html_deferred)}
+
+sub do_env_verse { &declared_env('verse', at _) }
+sub do_env_quote { &declared_env('quote', @_) }
+sub do_env_quotation { &declared_env('quote', @_) }
+sub do_env_tex2html_preform { &declared_env('preform', @_) }
+sub do_env_tex2html_ord { &declared_env('ord', @_) }
+sub do_env_tex2html_unord { &declared_env('unord', @_) }
+sub do_env_tex2html_desc { &declared_env('desc', @_) }
+
+
+# Modifies $contents
+sub process_command {
+    # MRO: modified to use $_[1]
+    # local ($cmd_rx, *ref_contents) = @_;
+    local ($cmd_rx) = @_;
+    local($ref_before, $cmd , $pc_after);
+    local($cmd_sub, $cmd_msub, $cmd_trans, $mathentity);
+    local (@open_font_tags, at open_size_tags);
+    $_[1] = &convert_iso_latin_chars($_[1])
+	unless (($cmd =~ /(Make)?([Uu]pp|[Ll]ow)ercase/)||
+	    ((!$cmd)&&($_[1] =~ /^\\(Make)?([Uu]pp|[Ll]ow)ercase/s)));
+
+    local(@ref_processed);
+    for (;;) {			# Do NOT use the o option
+	last unless ($_[1] =~ /$cmd_rx/ );
+	print ".";
+	#JCL(jcl-del) - use new regexp form which handles white space
+	($ref_before, $cmd, $pc_after) = ($`, $1.$2, $4.$');
+	push(@ref_processed,$ref_before);
+#print "\nAFTER:$1.$2:".$4."\n" if ($cmd_rx eq $single_cmd_rx);
+	print STDOUT "$cmd" if ($VERBOSITY > 2);
+	print STDOUT "\nIN: $_[1]\n" if ($VERBOSITY > 6);
+	#
+	if ( $cmd = &normalize($cmd,$pc_after) ) {
+	    ($cmd_sub, $cmd_msub, $cmd_trans, $mathentity) =
+		("do_cmd_$cmd", "do_math_cmd_$cmd"
+		, $declarations{$cmd}, $mathentities{$cmd});
+	    if ($new_command{$cmd}||$renew_command{$cmd}) { 
+                # e.g. some \the$counter 
+		local($argn, $body, $opt) = split(/:!:/, $new_command{$cmd});
+		&make_unique($body) if ($body =~ /$O/);
+		if ($argn) {
+		    do { 
+			local($before) = '';
+			local($_) = "\\$cmd ".$pc_after;
+			# &substitute_newcmd  may need what comes after the $cmd
+			# from the value of $after 
+			#RRM: maybe best to pass it as a parameter ?
+			my $keep_after = $after;
+			$after = $pc_after;
+			$pc_after = &substitute_newcmd;   # may change $after
+			$pc_after =~ s/\\\@#\@\@/\\/o ;
+			$pc_after .= $after;
+			$after = $keep_after;
+		    }
+		} else {
+		    $pc_after = $body . $pc_after;
+		}
+	    } elsif (defined &$cmd_sub) {
+		# $ref_before may also be modified ...
+		if ($cmd =~ /$sizechange_rx/o) {
+		    $pc_after = &$cmd_sub($pc_after, $open_tags_R);
+		} else {
+		    $pc_after = &$cmd_sub($pc_after, $open_tags_R);
+		};
+	    } elsif ((defined &$cmd_msub)&&!$NO_SIMPLE_MATH) {
+#print "\nMCMD:$cmd_msub :  ";
+		# $ref_before may also be modified ...
+		$pc_after = &$cmd_msub($pc_after, $open_tags_R);
+		if ( !$math_mode ) {
+		    $pc_after = "<MATH>" . $pc_after . "</MATH>";
+		    ++$commands_outside_math{$cmd};
+		};
+	    } elsif ($cmd_trans) { # One to one transform
+#print "\nCMD-DECL: $inside_tabular : $cmd_trans". join(',',@$open_tags_R);
+		if ($inside_tabular) {
+		    push (@ref_processed , "\\$cmd ")
+		} else {
+		    $cmd_trans =~ m|</.*$|;
+		    $pc_after = $` . $pc_after unless ($` =~ /^<>/);
+		    push(@$open_tags_R, $cmd)
+			if ($cmd =~ /$fontchange_rx|$fontweight_rx|$sizechange_rx/o);
+		}
+	    } elsif ($mathentity) {
+#print "\nM-ENT:$mathentity :  ";
+		if ( $math_mode ) {
+		    $pc_after = "&$mathentity#$cmd;" . $pc_after;
+		} elsif ($NO_SIMPLE_MATH) {
+		    $pc_after = "&$mathentity#$cmd;" . $pc_after;
+#		    ++$commands_outside_math{$cmd};
+		} else {
+		    $pc_after = "<MATH>&$mathentity#$cmd;</MATH>" . $pc_after;
+		    ++$commands_outside_math{$cmd};
+		}
+	    } elsif ($ignore{$cmd}) { # Ignored command
+		print "\nignoring \\$cmd" if $VERBOSITY > 5;
+		$pc_after = join('', " ", $pc_after) if ($cmd eq " "); # catches `\ '
+		$pc_after = join(''," ", $pc_after)
+		    if (($cmd eq ',')&&($pc_after =~ /^\-/s)&&($ref_before =~/\-$/s));
+	    } elsif ($cmd =~ /^the(.+)$/){
+		$counter = $1;
+		local($tmp)="do_cmd_$cmd";
+		if (defined &$tmp) { # Counter
+		    $pc_after = &do_cmd_thecounter($pc_after);
+		} else {
+		    if (defined $failed) {
+			$failed = 1;
+#			$ref_before .= "$cmd";
+			push(@ref_processed,$cmd);  # $ref_before .= "$cmd";
+		    } else {  &declare_unknown_cmd($cmd) }
+#		    $ref_before .= "$cmd" if ($failed);
+		}
+	    } elsif ($cmd eq "\n") { push(@ref_processed," ");  # $ref_before .= " "; 
+	    } else {
+		# Do not add if reading an auxiliary file
+		if (defined $failed) { 
+		    $failed = 1;
+		} else { &declare_unknown_cmd($cmd) }
+	    }
+	} else {
+	    # &normalize should have already handled it adequately
+	    # '\ ' (space) gets thru to here. Perhaps some others too ?
+#	    print "\n ?? This should not happen: \\$cmd ??\n";
+	}
+#	$_[1] = join('', $ref_before, $pc_after);
+	$_[1] = $pc_after;
+	print STDOUT "\n-> $ref_before\n" if ($VERBOSITY > 6);
+    }
+    $_[1] = join('', at ref_processed).$_[1];
+}
+
+sub declare_unknown_cmd {
+    local($this_cmd) = @_;
+    local($tmp) = "wrap_cmd_$cmd";
+    do { ++$unknown_commands{$cmd};
+	print STDOUT "\n*** Unknown command[1]: \\$cmd *** \n" 
+	    if ($VERBOSITY > 2);
+    } unless ($AUX_FILE||(defined &$tmp)||($image_switch_rx=~/\b\Q$cmd\E\b/));
+}
+
+
+# This makes images from the code for math-entities,
+# when $NO_SIMPLE_MATH is set and the  math  extension is loaded.
+#
+sub replace_math_constructions {
+    local($math_mode) = @_;
+    &make_math_box_images($math_mode) if (/<BOX>/);
+    &make_math_entity_images($math_mode) if (/\&\w+#\w+;/);
+}
+
+sub make_math_box_images {
+    local($math_mode) = @_;
+    local($pre,$this,$post,$tmp) = ('','','');
+    local($slevel,$blevel) = 0;
+
+    while (/<BOX>/) {
+	$pre .= $`; $tmp = $`; $this = ''; $post = $';	
+	# compute the super/sub-scripting level for each entity
+	$tmp =~ s/<(\/?)SU[BP]>/
+	    if ($1) { $slevel--} else { $slevel++};''/eog;
+
+	$tmp = $post;
+	if ($tmp =~ /<(\/?)BOX>/o ) {
+	    if ($1) { $this = $`; $post = $' }
+	    else { $failed = 1 } # nested box, too complicated !
+	} else {
+	    &write_warnings("\nLost end of a <BOX> ?");
+	    $failed = 1;
+	}
+	last if ($failed);
+
+	($this,$_) = &process_box_in_latex(
+		    $math_mode, $slevel, $this, $post);
+	$_ =~ s/^\s*//; # remove any leading spaces
+	$pre .= $this ."\001"; 
+    }
+    return  if ($failed);
+    $_ = $pre . $_;
+}
+
+sub make_math_entity_images {
+    local($math_mode) = @_;
+    local($pre,$this,$post,$tmp) = ('','','');
+    local($slevel) = 0;
+    # compute the super/sub-scripting level for each entity
+    while (/\&\w+#(\w+);/) {
+	$pre .= $`; $tmp = $`; $this = $1; $post = $';
+	$tmp =~ s/<(\/?)SU[BP]>/
+	    if ($1) { $slevel--} else { $slevel++};''/eog; 
+	($this,$_) = &process_entity_in_latex(
+		$math_mode, $slevel, $this, $post);
+	$_ =~ s/^\s*//; # remove any leading spaces
+	$pre .= $this ."\001"; 
+    }
+    $_ = $pre . $_;
+}
+
+
+#RRM:  Revert a math-entity to create image using LaTeX, together with
+# any super/sub-scripts (possibly nested or with \limits ).
+# Must also get the correct  \display/text/(script)script  style.
+#
+sub process_entity_in_latex {
+    local($mode,$level,$entity,$after) = @_;
+    local($math_style,$supsub,$rest) = ('','','');
+    $level++ if ($mode =~/box/); # for top/bottom of inline fractions, etc.
+
+    if ($level) {
+	$math_style = "\\". (($level > 1) ? "script" : "")."scriptstyle"
+    } else {
+	$math_style = "\\displaystyle" unless ($mode =~ /inline/);
+    }
+    while ($after =~ s/^\s*((\\limits|\&limits;)?\s*<SU(P|B)>)\s*/$supsub .= $1;''/eo) {
+	local($slevel) = 1;
+	local($aftersupb) = '';
+	while ($slevel) {
+	    $after =~ s/(<(\/)SU(B|P)>)/($2)? $slevel-- : $slevel++;''/oe;
+	    $supsub .= $`.$&;
+	    $aftersupb = $';
+	}
+	$after = $aftersupb;
+    }
+
+    local($latex_code) = "\$$math_style\\$entity$supsub\$";
+
+    $global{'max_id'}++;
+    ( &process_undefined_environment('tex2html_wrap_inline'
+	     ,$global{'max_id'}, $latex_code ) , $after);
+}
+
+sub process_box_in_latex {
+    local($mode,$level,$inside,$after) = @_;
+    local($math_style,$which,$pre,$post,$tmp) = ('','',"\{","\}");
+    
+    if ($level) {
+	$math_style = "\\". (($level > 1) ? "script" : "")."scriptstyle"
+    } else {
+	$math_style = "\\displaystyle" unless ($mode =~ /inline/);
+    }
+
+    if ($inside =~ /<((LEFT)|(RIGHT))>/ ) {
+	$pre = "\\left"; $post = "\\right";
+	if ($2) { 
+	    $tmp = $`; $inside = $';
+	    $pre .= (($tmp) ? $tmp : ".") . "\{";
+	    if ( $inside =~ /<RIGHT>/ ) {
+		$tmp = $';
+		$inside = $`;
+		$post = "\}". (($tmp) ? $tmp : ".");
+	    }
+	} else {
+	    $pre .= ".\{"; $tmp = $'; $inside = $`;
+	    $post = "\}". (($tmp) ? $tmp : ".");
+	}
+    }
+    if ( $inside =~ /<((OVER)|(ATOP)|(CHOOSE))>/ ) {
+	$pre .= $`;
+	$post = $' . $post ;
+	if ($2) { $which = "over " }
+	elsif ($3) { $which = "atop " }
+	elsif ($4) { $which = "atopwithdelims\(\)" }
+    }
+
+    local($latex_code) = join('', "\$" , $math_style , " ", $pre 
+	  , (($which)? "\\$which" : "") , $post , "\$" );
+
+    if ($after =~ s/<SUP ALIGN=\"CENTER\">([^<]*)<\/SUP>/
+	$tmp =$1;''/eo ) {
+	$latex_code = join('', "\\stackrel" , $latex_code
+			   , "\{" , $tmp , "\}" );
+    }
+    
+    $global{'max_id'}++;
+    ( &process_undefined_environment('tex2html_wrap_inline'
+	     ,$global{'max_id'}, $latex_code ) , $after);
+}
+
+####################### Processing Meta Commands ############################
+# This is a specialised version of process_command above.
+# The special commands (newcommand, newenvironment etc.)
+# must be processed before translating their arguments,
+# and before we cut up the document into sections
+# (there might be sectioning commands in the new definitions etc.).
+# \newtheorem commands are treated during normal processing by
+# generating code for the environments they define.
+
+sub substitute_meta_cmds {
+    local ($next_def);
+    local ($cmd, $arg, $argn, $opt, $body, $before, $xafter);
+    local ($new_cmd_no_delim_rx, $new_cmd_rx, $new_env_rx, $new_cmd_or_env_rx);
+    local ($new_end_env_rx);
+    &tokenize($meta_cmd_rx);	#JCL(jcl-del) - put delimiter after meta command
+    print "\nProcessing macros ..." if (%new_command || %new_environment);
+    # First complete any replacement left-over from the previous part.
+    if ($UNFINISHED_ENV) { 
+	s/$UNFINISHED_ENV/$REPLACE_END_ENV/;
+	$UNFINISHED_ENV = '';
+	$REPLACE_END_ENV = '';
+    }
+
+    local(@processed);
+    local($processed, $before, $after)=('', '', $_);
+    while ($after =~ /$meta_cmd_rx$EOL/o) {	# ... and uses the delimiter
+	($cmd, $after) = ($1.$2, $');
+	$before .= $`;
+#	$next_def = '';
+	if (!($before =~ /$meta_cmd_rx$EOL/)) {
+	    push(@processed, $before); $before = '';
+	}
+		 
+	print ",";
+#	$next_def = "\\$cmd" unless (($cmd =~ /renewcommand/));
+	local($cmd_sub) = "get_body_$cmd";
+	if (defined &$cmd_sub) {
+#	    $processed = &$cmd_sub(*after);
+	    $processed = &$cmd_sub(\$after);
+#	    if ($processed) { $after = $before . $processed; }
+#	    $next_def = '' 
+#		if (($PREAMBLE > 1)&&($cmd =~ /(re)?newcommand/));
+#	    &add_to_preamble($cmd, $next_def)
+#		unless ($next_def =~ /^\s*$/);
+### new style of handling meta-commands
+	    if ($processed) { push(@processed, "\\".$processed) }
+	}
+	elsif ($before) {
+	    # this shouldn't happen !!
+	    print STDERR "\nCannot handle \\$cmd , since there is no $cmd_sub ";
+	    $after = $before . $cmd . $after;
+	    $before = '';
+	} else { 
+	    push(@processed, "\\$cmd ") if $cmd;
+	}
+    }
+    print "\nmeta-commands: ". (0+ at processed) ." found "
+	if ((@processed)&&($VERBOSITY > 1));
+    $_ = join('', at processed, $after); undef @processed;
+    if ($PREAMBLE) {
+	# MRO: replaced $* with /m
+        s/((\n$comment_mark\d*)+\n)//gm;
+        s/(\\par\b\s*\n?)+/\\par\n/gm;
+        s/(\\par\b\n?)+/\\par\n/gm;
+    }
+
+    # hard-code the new-command replacements for these
+    $new_command{'begingroup'} = "0:!:\\begin<<0>>tex2html_begingroup<<0>>:!:}";
+    $new_command{'endgroup'} = "0:!:\\end<<0>>tex2html_begingroup<<0>>:!:}";
+    $new_command{'bgroup'} = "0:!:\\begin<<0>>tex2html_bgroup<<0>>:!:}";
+    $new_command{'egroup'} = "0:!:\\end<<0>>tex2html_bgroup<<0>>:!:}";
+
+    # All the definitions have now moved to the $preamble and their bodies
+    # are stored in %new_command and %new_environment
+    #
+    # Now substitute the new commands and environments:
+    # (must do them all together because of cross definitions)
+    $new_cmd_rx = &make_new_cmd_rx(keys %new_command);
+    $new_cmd_no_delim_rx = &make_new_cmd_no_delim_rx(keys %new_command);
+    $new_env_rx = &make_new_env_rx;
+    $new_end_env_rx = &make_new_end_env_rx;
+#    $new_cnt_rx = &make_new_cnt_rx(keys %new_counter);
+    $new_cmd_or_env_rx = join("|", $new_cmd_no_delim_rx." ", $new_env_rx);
+#    $new_cmd_or_env_rx = join("|", $new_cmd_no_delim_rx." ", $new_env_rx, " ".$new_cnt_rx);
+    $new_cmd_or_env_rx =~ s/^ \||\|$//;
+
+    print STDOUT "\nnew commands:\n" if ($VERBOSITY > 2);
+    while (($cmd, $body) = each %new_command) {
+	unless ($expanded{"CMD$cmd"}++) {
+	    print STDOUT ".$cmd " if ($VERBOSITY > 2);
+	    $new_command{$cmd} = &expand_body;
+	    print STDOUT " ".$new_command{$cmd}."\n" if ($VERBOSITY > 4);
+	    &write_mydb("new_command", $cmd, $new_command{$cmd});
+	}
+    }
+
+    print STDOUT "\nnew environments:\n" if ($VERBOSITY > 2);
+    while (($cmd, $body) = each %new_environment) {
+	unless ($expanded{"ENV$cmd"}++) {
+	    print STDOUT ".$cmd" if ($VERBOSITY > 2);
+	    $new_environment{$cmd} = &expand_body;
+	    &write_mydb("new_environment", $cmd, $new_environment{$cmd});
+	}
+    }
+
+    print STDOUT "\nnew counters and dependencies:\n" if ($VERBOSITY > 2);
+    &clear_mydb("dependent") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %dependent) {
+	print STDOUT ".($cmd,$body)" if ($VERBOSITY > 2);
+        &write_mydb("dependent", $cmd, $dependent{$cmd});
+    }
+    &clear_mydb("img_style") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %img_style) {
+        &write_mydb("img_style", $cmd, $img_style{$cmd});
+    }
+
+    &clear_mydb("depends_on") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %depends_on) {
+	print STDOUT ".($cmd,$body)" if ($VERBOSITY > 2);
+        &write_mydb("depends_on", $cmd, $depends_on{$cmd});
+    }
+
+
+    &clear_mydb("styleID") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %styleID) {
+        &write_mydb("styleID", $cmd, $styleID{$cmd});
+    }
+
+    &clear_mydb("env_style") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %env_style) {
+        &write_mydb("env_style", $cmd, $env_style{$cmd});
+    }
+    &clear_mydb("txt_style") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %txt_style) {
+        &write_mydb("txt_style", $cmd, $txt_style{$cmd});
+    }
+
+    print STDOUT "\ntheorem counters:\n" if ($VERBOSITY > 2);
+    &clear_mydb("new_theorem") if ($DEBUG);     #avoids appending to a previous version
+    while (($cmd, $body) = each %new_theorem) {
+	print STDOUT ".($cmd,$body)" if ($VERBOSITY > 2);
+        &write_mydb("new_theorem", $cmd, $new_theorem{$cmd});
+    }
+
+
+    print "+";
+    if (length($new_env_rx)) {
+	local(@pieces);
+        print STDOUT "\nsubstituting new environments: $new_env_rx\n" if ($VERBOSITY > 3);
+#	while (/\n?$new_env_rx/ && (($before, $cmd, $after) = ($`, $2, $'))) {
+	while (/$new_env_rx/ && (($before, $cmd, $after) = ($`, $2, $'))) {
+	    print STDOUT ",";
+	    print STDOUT "{$cmd}" if ($VERBOSITY > 1);
+	    if (!($before =~ /$new_env_rx/)) {
+		push (@pieces, $before); $before = ''; print "{}";
+	    }
+	    $_ = join('',$before, &substitute_newenv);
+	}
+	print "\n ".(0+ at pieces). " new environments replaced\n" if (@pieces);
+	$_ = join('', @pieces, $_); undef @pieces;	
+    }
+
+
+    print "+";
+    if (length($new_cmd_rx)) {
+	print STDOUT "\ntokenizing: $new_cmd_rx\n" if ($VERBOSITY > 2);
+	&tokenize($new_cmd_rx); # Put delimiter after the new commands
+
+	# and use the delimiter.
+	print STDOUT "\nsubstituting new commands: $new_cmd_rx\n" if ($VERBOSITY > 2);
+	print STDOUT "\ninitial size: ".length($after) if ($VERBOSITY > 1);
+	# store processed pieces in an array
+	local($this_cmd, @pieces);
+	# speed-up processing of long files by splitting into smaller segments
+	# but don't split within the preamble, else \newenvironment may break
+	local($pre_segment, at segments); &make_sections_rx;
+	local($within_preamble,$this_section) = 1 if ($PREAMBLE>1);
+	while (/$sections_rx/) {
+	    $pre_segment .= $`; $_ = $'; $this_section = $&;
+	    do {
+		push(@segments,$pre_segment);
+		$pre_segment = '';
+	    } unless ($within_preamble);
+	    $within_preamble = 0 if ($within_preamble && ($pre_segment =~ 
+		    /\\(startdocument|begin\s*($O\d+${C})\s*document\s*\2)/));
+	    $pre_segment .= $this_section;
+	}
+	push(@segments,$pre_segment.$_);
+	local($replacements,$seg) ; $before = ''; # count the segments
+	local($within_preamble) = 1 if ($PREAMBLE>1);
+	foreach $after (@segments) {
+	  while ($after =~ /(\\(expandafter|noexpand)\b\s*)?$new_cmd_no_delim_rx\b\s?/) {
+	    ($before, $xafter, $cmd, $after) = ($`, $2, $3, $');
+	    $within_preamble = 0
+		if ($before =~ /\\(startdocument|begin\s*($O\d+${C})\s*document\s*\2)/);
+	    push(@pieces, $before);
+	    print "."; ++$replacements;
+	    print STDOUT "$cmd" if ($VERBOSITY > 2);
+	    if ($xafter =~ /no/) { $this_cmd = "\\\@#\@\@".$cmd  }
+	    elsif (($xafter =~ /after/)&&($after =~ /^\s*\\/)) {
+		local($delayed) = $cmd;
+		local($nextcmd);
+		$after =~ s/^\s*\\([a-zA-Z]+|.)/$nextcmd = $1;''/eo;
+		($cmd,$nextcmd) = ($nextcmd, "do_cmd_$nextcmd");
+		if (defined &$nextcmd) { $after = &$nextcmd($after); }
+		elsif ($new_command{$cmd}) { 
+		    local($argn, $body, $opt) = split(/:!:/, $new_command{$cmd});
+		    &make_unique($body) if ($body =~ /$O/);
+		    if ($argn) {
+			do { 
+			    local($before) = '';
+			    $after = join('',&substitute_newcmd, $after);
+			    $after =~ s/\\\@#\@\@/\\/o ;
+			};
+		    } else { $after = $body . $after; }
+		} else { print "\nUNKNOWN COMMAND: $cmd "; }
+		$cmd = $delayed;
+		if ($new_command{$cmd}) {
+		    if ($renew_command{$cmd}) {
+#			# must wrap it in a deferred environment
+#			$this_cmd = join('', &make_deferred_wrapper(1)
+#				,"\\$cmd".(($cmd =~ /\w$/)? " ":'')
+#				, &make_deferred_wrapper(0));
+#			push(@pieces, $this_cmd); $this_cmd = '';
+			push(@pieces, "\\$cmd".(($cmd =~ /\w$/)? " ":''));
+			$this_cmd = '';
+		    } elsif ($provide_command{$cmd}&&$within_preamble) {
+			# leave it alone
+			push(@pieces, "\\$cmd".(($cmd =~ /\w$/)? " ":''));
+			$this_cmd = '';
+		    } else {
+			# do the substitution
+			$this_cmd = &substitute_newcmd;
+		    }
+		}
+	    } elsif ($renew_command{$cmd}) {
+		# leave it alone
+		push(@pieces, "\\$cmd".(($cmd =~ /\w$/)? " ":''));
+		$this_cmd = '';
+	    } elsif (($provide_command{$cmd})&&($within_preamble)) {
+		# leave it alone
+		push(@pieces, "\\$cmd".(($cmd =~ /\w$/)? " ":''));
+		$this_cmd = '';
+	    } else {
+		# do the substitution
+		$this_cmd = &substitute_newcmd if ($new_command{$cmd});
+	    }
+	    if ($this_cmd =~ /(\\(expandafter|noexpand)\s*)?$new_cmd_no_delim_rx\b\s?/)
+	        { $after = $this_cmd . $after }
+	    elsif ($this_cmd) { push(@pieces, $this_cmd) }
+	  }
+	  push(@pieces, $after);
+		# after the first segment we should no longer be in the preamble
+		$within_preamble = 0;
+	}
+	print " $replacements new-command replacements\n"
+	    if (($VERBOSITY>1) && $replacements);
+	# recombine the processed pieces
+	$_ = join('', @pieces); undef @pieces;
+        print STDOUT ", resulting size: ".length($_)." " if ($VERBOSITY > 1);
+	$_ =~ s/\\\@#\@\@/\\/go;
+    }
+
+    print STDOUT "\n *** substituting metacommands done ***\n" if ($VERBOSITY > 3);
+}
+
+sub insert_command_expansion {
+    ($xafter, $cmd) = @_;
+#   push(@pieces, $_[1]);
+    print ".$cmd";
+    print STDOUT "$_[3]" if ($VERBOSITY > 2);
+#   $xafter = $_[2];
+#   $cmd = $_[3];
+    if ($xafter =~ /no/) { $this_cmd = "\\\@#\@\@".$cmd }
+    elsif (($xafter =~ /after/)&&($after =~ /^\s*\\/)) {
+	local($delayed,$nextcmd) = ($_[3],'');
+
+	$after =~ s/^\s*\\([a-zA-Z]+|.)/$nextcmd = $1;''/eo;
+	($cmd,$nextcmd) = ($nextcmd, "do_cmd_$nextcmd");
+	if (defined &$nextcmd) { $after = &$nextcmd($after); }
+	elsif ($new_command{$cmd}) { 
+	    local($argn, $body, $opt) = split(/:!:/, $new_command{$cmd});
+	    &make_unique($body) if ($body =~ /$O/);
+	    if ($argn) {
+		do { 
+		    local($before) = '';
+		    $after = join('',&substitute_newcmd, $after);
+		    $after =~ s/\\\@#\@\@/\\/o ;
+		};
+	    } else { $after = $body . $after; }
+	} else { print "\nUNKNOWN COMMAND: $cmd "; }
+	$cmd = $delayed;
+	$this_cmd = &substitute_newcmd if ($new_command{$cmd});		
+    } else {
+	$this_cmd = &substitute_newcmd if ($new_command{$cmd});
+    }
+#   if ($this_cmd =~ /(\\(expandafter|noexpand)\s*)?$new_cmd_no_delim_rx\s?/){
+#	$after = $this_cmd . $after
+#   } else { push(@pieces, $this_cmd); }
+    $this_cmd;
+}
+
+
+sub expand_body {
+    return unless length($new_cmd_or_env_rx);
+    local($_) = $body;
+    local($cmd,$saveafter,$avoid_looping);
+    # Uses $before, $body, $arg, etc. of the caller, but not $cmd.
+    # Uses $new_cmd_rx (resp. $new_cmd_no_delim_rx) and $new_env_rx
+    # set in the caller, of which one might be empty.
+
+    # Puts delimiter after the new commands ...
+    &tokenize($new_cmd_rx) if length($new_cmd_rx);
+
+    while (/$new_cmd_or_env_rx/) {
+	# $new_cmd_rx binds $1, and $new_env_rx binds $3.
+	($before,$cmd,$after,$saveafter) = ($`,$1.$3,$',$');
+	if (length($new_command{$cmd})) { # We have a command
+	    # this tokenizes again
+	    local($replace) = &substitute_newcmd; # sets $_, changes $after
+	    if (!($replace)) {
+		# protect name of unexpanded macro
+		$_ = join('', $before ,"\\@#@@", $cmd, $saveafter );
+	    } else {
+		$_ = join('', $before , $replace, $after );
+	    }
+	} elsif (length($new_environment{$cmd})) {
+	    $_ = join('',$before, &substitute_newenv);
+	}
+	last if $avoid_looping;
+    }
+    # remove protection from unreplaced macro names
+    s/\\\@#\@\@/\\/go;
+
+    # remove trivial comments
+    s/(\\\w+)$comment_mark\d*\n[ \t]*/$1 /go;
+    s/$comment_mark\d*\n[ \t]*//go;
+#    s/($O\d+$C)?($comment_mark\n)[ \t]*/($1 ? $1.$2 : '')/eg;
+
+    $_;
+}
+
+
+sub substitute_newcmd {
+    # Modifies $after in the caller
+    # Get the body from the new_command array
+    local($tmp,$cnt,$saved, $arg, $isword) = ('',0,$cmd);
+    local($argn, $_, $opt) = split(/:!:/, $new_command{$cmd});
+    $avoid_looping = 1 if ($new_command{$cmd} =~ /\\$cmd\b/);
+
+    &tokenize($new_cmd_rx); # must do it again for newly inserted cmd bodies
+    print STDOUT "\nNEW:$cmd:$_" if ($VERBOSITY > 5);
+    foreach $i (1..$argn) {
+	$arg = $isword = '';
+	if ($i == 1 && $opt ne '}') {
+	    $arg = ($after =~ s/$optional_arg_rx//o) ? $1 : $opt;
+	}
+	else {
+	    # Get the next argument, if not in braces, get next character
+	    #RRM: allow also for processed braces, in case substitution
+	    #     was delayed; e.g. by \renewcommand
+	    if (!(($after =~ s/$next_pair_rx/$arg = $2;''/e)
+		  ||($after =~ s/$next_pair_pr_rx/$arg = $2;''/e))) {
+		$after =~ s/^\s*(\\[a-zA-Z]+|.)/$arg = $1;''/e;
+	    }
+	    if ($arg eq '#') { 
+		&write_warnings("\nSubstitution of arg to $cmd delayed."); 
+		$_ = "\\\@#\@\@$saved";
+		return ();
+	    };
+	}
+	$arg =~ s/(^|\G|[^\\])\\\#/$1$hash_mark/gs;
+	$arg =~ s/\#/$param_mark/gs;
+
+	#RRM: Substitute the arguments in the body one at a time
+	#     else multiple instances would fail in  &make_unique
+
+	# First protect ## parameters in TeX-like substitutions
+	# suggested by Dirk Pleiter (Berlin)
+	s/((^|[^\\])(\\\\)*)\#\#$i/$1$protected_hash/gs;
+	$tmp = $_;
+	$cnt = $tmp =~ s/\#$i//g ;
+	$isword = 1 if ($arg =~ /^\w/);
+	if ($cnt > 1 ) {
+	    $tmp = $_;
+	    while ($cnt > 1) {
+		if ( s/(\\\w+)?\#$i/(($1&&$isword)? $1.' ': '').$arg/e) { 
+		    &make_unique($_) if ($arg =~ /$O/ ); 
+		    &make_unique_p($_) if ($arg =~ /$OP/ );
+		}
+		$cnt--;
+	    }
+	    $tmp = $_;
+	}
+#	s/(\\\w+)?\#$i/(($1&&$isword)? $1.' ': '').$arg/e ;
+	s/(\\\w+)?\#$i/$1.(($1&&$isword)? ' ': '').$arg/e ;
+	print "\n *** substitution: $arg \nfor \#$i in \\$cmd did not take ***\n"
+	   if (/\#$i/);
+	&write_warnings("incomplete substitution in a \\$cmd command:\n$_") if (/\#$i/);
+	s/$protected_hash/\#$i/g;
+    }
+    s/$param_mark/\#/g;
+    s/$hash_mark/\\\#/g;
+    s/(\\\w+)$/$1 /s;
+
+    # Make the body unique (give unique id's to the brackets),
+    # translate, and return it
+    &make_unique($_);
+    if ($avoid_looping) {
+	s/\\$cmd\b/\\csname $cmd\\endcsname/g;
+	print STDERR "\n *** possible looping with new-command \\$cmd ***\n";
+	&write_warnings("\npossible looping with new-command \\$cmd ");
+    }
+    print STDOUT "\nOUT:$cmd:$_" if ($VERBOSITY > 5);
+
+# Insert a space to prevent letters from clashing together with a
+# letter command. Consider this:
+# New command substitution is restricted to commands introduced by
+# \newcommand etc. (so-called meta commands), but it is not done
+# for already defined commands, eg. \large.
+# But new command, as well as new environment, substitution is done
+# prior to any other substitution.
+# So \newcommand{\this}{...} {\large\this b} will get expanded the
+# following way:
+# 1. \newcommand{\this}{...}
+#    is handled by &substitute_meta_cmds, it gets the definition
+#    of \this and stores it within a table, %new_command.
+#    After all new commands are recognized, &expand_body is called
+#    to expand one command body from each other. That's O(n*n)!
+# 2. A regular expression $new_cmd_rx is built containing a pattern
+#    that matches all occurrences of a properly delimited \this
+#    macro. When matching, ensuing white space gets lost.
+#    (But only for letter commands, see also &make_new_cmd_rx.)
+#    Another regular expression called $new_cmd_no_delim_rx is built
+#    which matches exact the \this, and would also match the prefix
+#    of \thisx.
+# 3. The *whole* text is tokenized using $new_cmd_rx, with separates
+#    \this from the ensuing text by one white space.
+# 4. Then $new_cmd_no_delim_rx together with the delimiting space
+#    is used to substitute \this with its body.
+# 5. The following situations may occur:
+#  a) ... is some text (no macros) => {\large<text>yyy}
+#     Then we must prevent that the text clashes into \large.
+#     This is only dangerous when <text> begins with a letter.
+#  b) ... contains another, not expanded new command.
+#     This happens during &expand_body.
+#     In this case, make sure to &tokenize the body before giving
+#     the result to the caller. Also take care that leading letters
+#     of the body cannot clash into \large.
+#  e) ... contains a macro not known as new command:
+#     Make sure that the macro cannot clash with the ensuing yyy.
+#  f) ... is empty:
+#     Make sure that \large cannot clash with yyy.
+# 6. We prevent clashing by inserting a delimiting blank.
+#    Out of the scetched situation, there are three conditions to
+#    take care of:
+#  a) empty body, left a letter command, right a letter => blank
+#  b) body starts with letter, left a letter command    => blank
+#  c) body ends with letter command, right a letter     => blank
+#  d) else => no blank, clash all together, it will work.
+# 7. With this rules, the expansion should work quite well,
+#    concerning letter/non-letter commands and white space
+#    handling.
+# 8. Deficiencies:
+# 8.1 Consider \this<CR>that. It's handled this way:
+#  a) The \this swallows the <CR> in LaTeX, but what LaTeX2HTML does
+#     is to &tokenize the expression into \this <CR>that.
+#  b) If ... is some text, it results in <text><CR>that.
+#  c) If ... is a macro (or command, or control sequence, these
+#     terms are often mixed up, but effectively mean the same),
+#     then if the macro later takes at least one argument, the <CR>
+#     might get swallowed, this depends on the grace of $next_pair_rx
+#     resp. $next_pair_pr_rx.
+#     If the macro takes no arguments, the <CR> remains in the text.
+#  d) If ... ends in another new command, the problem repeats.
+# 8.2 The new commands are substituted in a very insensitive way.
+#     If \this occurs within an environment which sees \this
+#     totally different, there's no chance to substitute \this in
+#     a different way.
+# 8.3 In relation to 8.2 a similar problem arises when the meta
+#     command, or several meta commands redefining \this, occur
+#     amongst several \this macros.
+# 8.4 In raw TeX like environments it is not possible to revert the
+#     expansion of \this, but \this probably *must* occur in its
+#     raw form.
+
+# Handle the cases as depicted in the description of new command
+# substitution.
+    local($befdel,$aftdel);
+    $befdel = ' '
+	if ($before=~/(^|[^\\])\\[a-zA-Z]+$/ && /^$/ && $after=~/^[a-zA-Z]/) ||
+	    ($before=~/(^|[^\\])\\[a-zA-Z]+$/ && /^[a-zA-Z]/);
+    $aftdel = ' '
+	if /(^|[^\\])\\[a-zA-Z]+$/s && $after=~/^[a-zA-Z]/;
+    join('', $befdel, $_, $aftdel);
+}
+
+#RRM:  use this to test whether a specific command is substituting correctly
+sub trace_cmd {
+    local($this) = @_;
+    if ($cmd eq $this) { print "\n$1=>$id:$2::"}
+}
+
+# Make the text unique (give unique id's to the brackets).
+# The text shouldn't contain processed brackets.
+sub make_unique {
+    # MRO: Change to references $_[0]
+    # local(*_) = @_;
+    my $id = $global{'max_id'};
+    # MRO: replaced $* by /m
+    # this looks quite funny but is optimized
+    1 while($_[0] =~ s/$O(\d+)$C([\w\W]*)$O\1$C/$id++;"\000$id $2\000$id "/geom);
+    $_[0] =~ s/\000(\d+) /$O$1$C/gom;
+    $global{'max_id'} = $id;
+}
+
+#RRM: this shouldn't be needed, but just in case...
+sub make_unique_p {
+    # MRO: Change to references $_[0]
+    my $id = $global{'max_id'};
+    # MRO: replaced $* by /m
+    # this looks quite funny but is optimized
+    1 while($_[0] =~ s/$OP(\d+)$CP([\w\W]*)$OP\1$CP/$id++;"\000$id $2\000$id "/geom);
+    $_[0] =~ s/\000(\d+) /$OP$1$CP/gom;
+    $global{'max_id'} = $id;
+}
+
+
+sub substitute_newenv {
+    # Modifies $cmd and $after in the caller
+    # Get the body from the new_environment array
+    local($argn, $begdef, $enddef, $opt) = split(/:!:/, $new_environment{$cmd});
+    local($arg,$new_def_rx,$tmp,$cnt);
+
+    # Note that latex allows argument substitution only in the
+    # \begin part of the new definition
+    foreach $i (1..$argn) {	# Process the arguments
+	if (($i == 1) && ($opt ne '}')) {
+	    $after =~ s/$optional_arg_rx/$arg = $1;''/eo;
+	    $arg = $opt unless $arg;
+	}
+	else {
+	    $after =~ s/$next_pair_rx/$arg = $2;''/eo;
+	}
+	$arg =~ s/(^|[^\\])\\\#/$1$hash_mark/g;
+	$arg =~ s/\#/$param_mark/g;
+
+        #RRM: multiple instances can fail later in  &make_unique
+#       s/\#$i/$arg/g;          # Substitute the arguments in the body
+        #RRM: ...so do one at a time and  &make_unique_p
+        $tmp = $begdef;
+        $cnt = $tmp =~ s/\#$i//g ;
+        if ($cnt > 1) {
+            $tmp = $begdef;
+            while ($cnt > 1) {
+		if ( $begdef =~ s/\#$i/$arg/) { 
+		    &make_unique($begdef) if ($arg =~ /$O/ ); 
+		    &make_unique_p($begdef) if ($arg =~ /$OP/ );
+		}
+                $cnt--;
+            }
+            $tmp = $_;
+        }
+        $begdef =~ s/\#$i/$arg/ ;
+        print "\n *** substitution: $arg \nfor \#$i in {$cmd} did not take ***\n"
+           if ($begdef =~ /\#$i/);
+	&write_warnings("incomplete substitution in a {$cmd} environment:\n$begdef")
+	    if ($begdef =~ /\#$i/);
+    }
+    $begdef =~ s/$param_mark/\#/g;
+    $begdef =~ s/$hash_mark/\\\#/g;
+    $begdef =~ s/(\\\w+)$/$1 /s;
+
+    # Make the body unique (Give unique id's to the brackets),
+    # translate, and return it
+#RRM: when are these needed ?
+#    $_ = &revert_to_raw_tex($_);
+#    &pre_process;
+
+    &make_unique($begdef);		# Make bracket IDs unique   
+    print STDOUT "\nBEGIN:$cmd:$begdef" if ($VERBOSITY > 4);
+
+    # Now substitute the \end part:
+#RRM: when are these needed ?
+#    $_ = &revert_to_raw_tex($enddef);
+#    &pre_process;
+
+    &make_unique($enddef);		# Make bracket IDs unique
+    print STDOUT "\nEND:$cmd:$enddef" if (($enddef)&&($VERBOSITY > 4));
+    $enddef =~ s/(\\\w+)$/$1 /s;
+
+    local($new_end_def_rx) = &make_end_env_rx($cmd);
+    if (($enddef)&&!($after =~ s/\n?$new_end_def_rx/$enddef/ )) {
+        $UNFINISHED_ENV = $new_end_def_rx;
+        $REPLACE_END_ENV = $enddef;
+    };
+    join('',$begdef,$after);
+}
+
+sub substitute_pars {
+    s/((\%|$comment_mark\d*)|.)(\r*\n[ \t]*){2,}[ \t]*/$1\n\\par \n/og;
+#    s/((\%|$comment_mark\d*)|\d|.)[\r\n\015]{2,}/print "\nPAR:".$`.$&;"$1\n\\par \n"/egs;
+}
+
+sub do_cmd_end { #RRM:  catches the end of any unclosed environments
+    local($_) = @_;
+    &missing_braces unless (
+	(s/$next_pair_pr_rx//o)||(s/$next_pair_rx//o));
+    s/^\n//;
+    $_;
+}
+
+# Removes the definition from the input string, 
+# adds to the preamble unless it is part of the preamble already
+# and stores the body in %new_command;
+sub get_body_newcommand {
+    local($newed, $n_after) = &process_body_newcommand(0, at _);
+    (($PREAMBLE)? "newed".$newed : '');
+}
+
+sub process_body_newcommand {
+#    local($renewed,*_) = @_;
+    local($renewed,$after_R) = @_;
+    local($_) = $$after_R;
+    local($no_change) = $_;
+    local($argn,$newcmd,$cmd_br,$body,$body_br,$tmp,$tmp1,$opt,$pat);
+    local($new_cmd) = 'command';
+    if ($renewed =~ /provide/||$renewed == 2) {
+	# $newcmd = &missing_braces unless (
+	($newcmd,$pat) = &get_next(1) unless (
+	        (s/$next_pair_pr_rx/$pat=$&;$newcmd=$2;''/e)
+	        ||(s/$next_pair_rx/$pat=$&;$newcmd=$2;''/e));
+	if (!$pat) {
+	    local($br_id) = ++$global{'max_id'};
+	    $pat = "$O$br_id$C".$newcmd."$O$br_id$C";
+	}
+    } else {
+	($newcmd,$pat) = &get_next(1); # Get command name
+    }
+    $pat =~ s/\\//; $new_cmd .= $pat;
+    $newcmd =~ s/^\s*\\//;
+    ($argn,$pat) = &get_next(0);	# Get optional no. of args
+    $argn = 0 unless $argn; $new_cmd .= $pat if $argn;
+    local($cmd) = $newcmd;
+
+    # Get the body of the code and store it with the name and number of args
+    # UNLESS THE COMMAND IS ALREADY DEFINED
+    # ...in which case $ALLOW_REDEFINE must also have been set.  # RRM
+    # (This is the mechanism with which raw html can be ignored in a Latex document
+    # but be recognised as such by the translator).
+    $opt = '}';			# Flag for no optional arg
+    local($bodyA) = '';
+    if (/^\[/) {
+	($opt,$pat) = &get_next(0);
+	$new_cmd .= $pat;
+	$bodyA .= "\n".'($dummy, $pat) = &get_next_optional_argument;' .
+                    "\n". '$args .= $pat;';
+    }
+    local($nargs) = $argn;
+    while ($nargs > 0) { $nargs--;
+	$bodyA .=
+	    "\n".'$args .= $`.$& if ((s/$next_pair_pr_rx//o)||(s/$next_pair_rx//o));';
+    }
+    if ($renewed =~ /provide/||$renewed == 2 ) {
+        $body = &missing_braces unless (
+	        (s/$next_pair_pr_rx/$pat=$&;$body=$2;''/e)
+	        ||(s/$next_pair_rx/$pat=$&;$body=$2;''/e));
+	$new_cmd .= $pat;
+    } else {
+	($body,$pat) = &get_next(4);  #get the body
+	$new_cmd .= $pat;
+    }
+
+    local($thisone);
+#    $thisone = 1 if ($cmd =~ /div|vec/);  # for debugging
+
+    $tmp = "do_cmd_$cmd";
+    local($wtmp) = "wrap_cmd_$cmd";
+    if ((defined &$tmp)||(defined &$wtmp)){
+	# command already exists, so \providecommand  does nothing
+	# but may still be needed in  images.tex
+	$$after_R = $_;
+	return ($new_cmd) if ($renewed =~ /provide/);
+
+	print "\n*** redefining \\$cmd ***\n";
+	&write_warnings("\nredefining command \\$cmd ");
+	if (!$ALLOW_REDEFINE) {
+	    print "*** overriding previous meaning ***\n";
+	    &write_warnings("\nprevious meaning of \\$cmd will be lost");
+	}
+#	local($code) = "undef \&$tmp"; eval ($code);
+#	if ($@) {print "\n*** undef \&$cmd failed \n"}
+	if ((!$PREAMBLE)||($renewed>1)) {
+	    $new_command{$cmd} = join(':!:',$argn,$body,$opt);
+#	    local($code) = "sub $tmp\{\&replace_new_command(\"$cmd\");\}";
+#	    eval $code;
+#	    print STDERR "\n*** sub do_cmd_$cmd failed:\nPERL: $@\n" if ($@);
+#	    &replace_new_command($cmd);
+	}
+
+	$renew_command{$cmd} = 1;
+	&write_mydb("renew_command", $cmd, $renew_command{$cmd});
+        local($padding) = " ";
+        $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+        # Generate a new subroutine
+        local($codeA) = "sub wrap_cmd_$cmd {" . "\n"
+            .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'
+            . $bodyA
+	    . (($thisone)? "\nprint \"\\nwrap $cmd:\".\$args.\"\\n\";" : '')
+            . "\n".'(&make_deferred_wrapper(1).$cmd.'
+            . "\"$padding\"".'.$args.&make_deferred_wrapper(0),$_)}'
+            . "\n";
+        print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging
+        eval $codeA;
+        print STDERR "\n\n*** sub wrap_cmd_$cmd  failed: $@\n" if ($@);
+	$raw_arg_cmds{$cmd} = 1;
+
+    } elsif (($ALLOW_REDEFINE)&&($PREAMBLE < 2)) {
+	print "\n*** redefining \\$cmd ***\n";
+	&write_warnings("\ncommand \\$cmd had no previous definition")
+	    if (!($new_command{$cmd}));
+    }
+    if ($renewed && ($PREAMBLE > 1) &&($new_command{$cmd})) {
+	$raw_arg_cmds{$cmd} = 1 ;
+	$renew_command{$cmd} = 1;
+        local($padding) = " ";
+        $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+        # Generate a new subroutine
+        local($codeA) = "sub wrap_cmd_$cmd {" . "\n"
+            .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'
+            . $bodyA
+	    . (($thisone)? "\nprint \"\\nwrap $cmd:\".\$args.\"\\n\";" : '')
+            . "\n".'(&make_deferred_wrapper(1).$cmd.'
+	    . "\"$padding\"".'.$args.&make_deferred_wrapper(0),$_)}'
+            . "\n";
+        print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging
+        eval $codeA;
+        print STDERR "\n\n*** sub wrap_cmd_$cmd  failed: $@\n" if ($@);
+
+	&write_mydb("renew_command", $cmd, $renew_command{$cmd});
+    } elsif ($renewed) {
+        $new_command{$cmd} = join(':!:',$argn,$body,$opt);
+    } else {
+	$new_command{$cmd} = join(':!:',$argn,$body,$opt)
+	    unless (($PREAMBLE > 1)&&($renew_command{$cmd}));
+    }
+
+    local($this_cmd);
+    $this_cmd = join(''
+	, "command{\\$cmd}"
+	, ($argn ? "[$argn]" :'') 
+	, (($opt =~ /^}$/) ? '' : "[$opt]" )
+	, "{", $body , "}" );
+    $this_cmd = &revert_to_raw_tex($this_cmd);
+    if ($renewed) {
+	if ($renewed=~/provide/){
+	    $provide_command{$cmd} = 1;
+	    &write_mydb("provide_command", $cmd, $provide_command{$cmd});
+#	} else {
+#	    print "\n ** marking $cmd as renewed **";
+#	    $renew_command{$cmd} = 1;
+	};
+	if ((!$PREAMBLE)&&($renewed>1)) {
+#	    local($this_cmd) = join(''
+#		, "\n\\renewcommand{\\$cmd}"
+#		, ($argn ? "[$argn]" :'') 
+#		, (($opt =~ /^}$/) ? '' : "[$opt]" )
+#		, "{", $body , "}\n" );
+#	    $latex_body .= &revert_to_raw_tex($this_cmd);
+	    $latex_body .= "\n\\renew". $this_cmd."\n";
+	} else {
+##	    &add_to_preamble('command',"\\" . $this_cmd);
+	}
+    } else {
+	&add_to_preamble('command',"\\new" . $this_cmd)
+	    unless ($PREAMBLE);
+    }
+    undef $body;
+    if ($renewed == 2) {
+	# there is no output to return
+	$$after_R = $_;
+	return();
+    } 
+
+    if (!$PREAMBLE) {
+	$$after_R = $_;
+	return ($new_cmd) if ($renewed);
+#	    $cmd_br =~ s/\\//;
+#	( join ('', &make_deferred_wrapper(1)
+#	    , "\\". ($renewed ? (($renewed =~ /provide/)? 'provid' : 'renew')
+#		: 'new')."edcommand"
+#	    , $cmd_br , ($argn ? "[$argn]" :'') 
+#	    , ( ($opt =~ /^\}$/ ) ? '' : "[$opt]" ) , $body_br
+#	    , &make_deferred_wrapper(0)) , $_ );
+	$new_cmd = join('', "command{\\$cmd}"
+			 , ($argn ? "[$argn]" :'') 
+			 , (($opt =~ /^\}$/) ? '' : "[$opt]" )
+			 , "{", $body , "}" );
+	$new_cmd = &revert_to_raw_tex($new_cmd);
+	&add_to_preamble('command', "\\provide".$new_cmd );
+	$$after_R = $_;
+	return();
+    }
+    $new_cmd =~ s/\\$cmd([\d\W]|$)/$cmd$1/s;
+    $$after_R = $_;
+    $new_cmd;
+}
+
+sub replace_new_command {
+    local($cmd) = @_;
+    local($argn, $body, $opt) = split(/:!:/, $new_command{$cmd});
+    do { ### local($_) = $body;
+	 &make_unique($body);
+	 } if ($body =~ /$O/);
+    $body =~ s/(^|[^\\])\~/$1\\nobreakspace /g;
+    if ($argn) {
+	do { 
+	    local($before) = '';
+	    local($after) = "\\$cmd ".$_;
+	    $after = &substitute_newcmd;   # may change $after
+	    $after =~ s/\\\@#\@\@/\\/o ;
+	};
+    } elsif ($body =~ /\\/) {
+	$body = &translate_commands($body);  # ???
+	$_ = $body . $_;
+    } else { $_ = $body . $_; }
+    $_;
+}
+
+sub get_body_let {
+#    local(*_) = @_;
+    local($_) = @_;
+    local($cmd,$body,$replace,$tmp,$pat);
+    ($cmd,$body) = &get_next_tex_cmd;
+    s/^\s*=?\s*/$body .= $&;''/e;
+    ($replace,$pat) = &get_next_tex_cmd;
+#    return() if ($replace eq $cmd);
+    $body .= $pat;
+    $body = &revert_to_raw_tex($body);
+    &add_to_preamble('', "\\let ".$body );
+    $_[0] = $_;
+    if (($replace eq $cmd)||($cmd="\\")||($cmd =~/(style|size)$/)) {
+	"let ".$body
+    } else {
+	$new_command{$cmd} = join(':!:','',"\\$replace ",'}');
+	'';
+    }
+}
+
+
+#  do not remove the \renewcommand code, since it may be needed
+#  within images. Instead replace it with \renewedcommand;
+#  This will be reverted in &revert_to_raw_tex
+sub get_body_renewcommand {
+    local($ALLOW_REDEFINE) = 1;
+    local($renew, $n_after) = &process_body_newcommand(1, at _);
+    ($renew ? 'renewed' . $renew : '');
+}
+
+sub do_cmd_renewedcommand {
+    local($_) = @_;
+    local($ALLOW_REDEFINE) = 1;
+    &process_body_newcommand(2,\$_);
+    $_ ;
+}
+
+sub get_body_providecommand {
+    local($provide, $n_after) = &process_body_newcommand('provide', at _);
+    (($PREAMBLE && $provide) ? 'provided'.$provide : '');
+}
+
+sub do_cmd_providedcommand{ &do_cmd_renewedcommand(@_) }
+
+sub get_body_DeclareRobustCommand {
+    local($provide, $n_after) = &process_body_newcommand('provide', at _);
+    (($PREAMBLE && $provide) ? 'provided'.$provide : '');
+}
+
+sub get_body_DeclareMathOperator {
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    my $star;
+    s/^\\DeclareMathOperator\s*(\*|star)/$star = $1;''/s;
+    my ($mcmd,$patA) = &get_next(1);
+    my ($mop,$patB) = &get_next(1);
+    if ($star) {
+	$patA .= "${O}0$C\\mathop${O}1$C\\mathrm${patB}${O}1$C${O}0$C".$_;
+    } else {
+	$patA .= "${O}0$C${O}1$C\\mathrm${patB}${O}1$C${O}0$C".$_;
+    }
+    local($provide, $n_after) = &process_body_newcommand('provide',\$patA);
+    $$after_R = $patA;
+    (($PREAMBLE && $provide) ? 'provided'.$provide : '');
+}
+
+sub get_body_DeclareMathOperatorstar {
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    my $star;
+    s/^\\DeclareMathOperator\s*(\*|star)/$star = $1;''/s;
+    my ($mcmd,$patA) = &get_next(1);
+    my ($mop,$patB) = &get_next(1);
+    $patA .= "${O}0$C\\mathop${O}1$C\\mathrm${patB}${O}1$C${O}0$C".$_;
+    local($provide, $n_after) = &process_body_newcommand('provide',\$patA);
+    $$after_R = $patA;
+    (($PREAMBLE && $provide) ? 'provided'.$provide : '');
+}
+
+
+# Removes the definition from the input string, adds to the preamble
+# and stores the body in %new_environment;
+sub get_body_newenvironment {
+    local($newed,$after) = &process_body_newenvironment(0, at _);
+    ( $PREAMBLE ? "newed".$newed : '');
+}
+
+sub process_body_newenvironment {
+#    local($renew,*_) = @_;
+    local($renew,$after_R) = @_;
+    local($_) = $$after_R;
+    local($no_change) = $_;
+    local($argn,$env,$begin,$end,$tmp,$opt,$pat);
+    local($new_env) = 'environment';
+    if ($renew == 2) {
+        $env = &missing_braces unless (
+	        (s/$next_pair_pr_rx/$pat=$&;$env=$2;''/e)
+	        ||(s/$next_pair_rx/$pat=$&;$env=$2;''/e));
+	$new_env .= $pat;
+    } else {
+	($env,$pat) = &get_next(1);	# Get the environment name
+	$env =~ s/^\s*\\//; $new_env .= $pat;
+    }
+    ($argn,$pat) = &get_next(0);	# Get optional no. of args
+    $argn = 0 unless $argn; $new_env .= $pat if $argn;
+
+    # Get the body of the code and store it with the name and number of args
+    # UNLESS THE COMMAND IS ALREADY DEFINED (see get_body_newcommand)
+    # ...in which case $ALLOW_REDEFINE must also have been set.  # RRM
+    $opt = '}';			# Flag for no optional arg
+    if (/^\[/) {
+	($opt,$pat) = &get_next(0);
+	$new_env .= $pat;
+    }
+    $tmp = "do_env_$env";
+
+    if ($renewed == 2 ) {
+        $begin = &missing_braces unless (
+	        (s/$next_pair_pr_rx/$pat=$&;$begin=$2;''/e)
+	        ||(s/$next_pair_rx/$pat=$&;$begin=$2;''/e));
+	$new_env .= $pat;
+	$end = &missing_braces unless (
+	        (s/$next_pair_pr_rx/$pat=$&;$end=$2;''/e)
+	        ||(s/$next_pair_rx/$pat=$&;$end=$2;''/e));
+	$new_env .= $pat;
+    } else {
+	($begin,$pat) = &get_next(1); $new_env .= $pat;
+	($end,$pat) = &get_next(1); $new_env .= $pat;
+    }
+    if ((defined &$tmp)&&($ALLOW_REDEFINE)) {
+	print STDOUT "\n*** redefining environment {$env} ***\n";
+	&write_warnings("\nredefined environment {$env} ");
+    }
+    $new_environment{$env} = join(':!:', $argn, $begin, $end, $opt)
+	unless ((defined &$tmp)&&(! $ALLOW_REDEFINE));
+
+    if (!$PREAMBLE) {
+	$new_env = join ('', 
+	    , "environment{$env}" 
+	    , ($argn ? "[$argn]" : '')
+	    , (($opt ne '}')? "[$opt]" : '')
+	    , "{$begin}{$end}"
+	    );
+	&revert_to_raw_tex($new_env);
+	if ($renew == 2) {
+	    $latex_body .= "\n\\".($renew ? 're':'').'new'.$new_env."\n";
+	} else {
+	    &add_to_preamble ('environment'
+		, "\\".($renew ? 're':'').'new'.$new_env );
+	}
+	$$after_R = $_;
+	return();
+    }
+    if ($new_env =~ /$sections_rx/) {
+    	$new_env = join('', $`,'\csname ',$2,'\endcsname',$3,$');
+    }
+    $new_env =~ s/$par_rx/\\par /g;
+    $$after_R = $_;
+    $new_env;
+}
+
+sub get_body_renewenvironment {
+    local($ALLOW_REDEFINE) = 1;
+    local($renewed, $after) = &process_body_newenvironment(1, at _);
+    'renewed'.$renewed;
+}
+
+sub do_cmd_renewedenvironment {
+    local($ALLOW_REDEFINE) = 1;
+    local($_) = @_;
+    &process_body_newenvironment(2,\$_);
+    $_;
+}
+
+# Instead of substituting as with newcommand and newenvironment,
+# or generating code to handle each new theorem environment,
+# it now does nothing. This forces theorem environments to be passed
+# to latex. Although it would be possible to handle theorem
+# formatting in HTML as it was done previously it is impossible
+# to keep the theorem counters in step with other counters (e.g. equations)
+# to which only latex has access to. Sad...
+sub get_body_newtheorem {
+#    local(*_) = @_;
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    my ($orig, $body) = ($_, '');
+    my ($title, $env, $ctr, $within, $cmd, $tmp, $begin, $end, $pat);
+    my ($new_thm) = 'theorem';
+    # Just chop off the arguments and append to $next_def
+    ($env,$pat) = &get_next(1); $new_thm .= $pat;
+    ($ctr,$pat) = &get_next(0); $new_thm .= $pat;
+    ($title,$pat) = &get_next(1); $new_thm .= $pat;
+    ($within,$pat) = &get_next(0); $new_thm .= $pat;
+
+    #check the style parameters
+    my ($hfont,$bfont,$thm_style);
+    my ($before_thm) = join('', at processed);
+    my ($which,$cmds);
+    while ($before_thm =~ /$theorem_cmd_rx/) {
+	$which = $1;
+	$before_thm = $';
+	$before_thm =~ s/$next_pair_rx/$cmds = $2;''/e;
+	$cmds =~ s/\\/\|/g;  # escape any backslash
+	if ($which =~ /style/) { $thm_style = $cmds }
+	elsif ($which =~ /header/) { $hfont = $cmds }
+	elsif ($which =~ /body/)   { $bfont = $cmds }
+    }
+    $hfont = '['.$hfont.']';
+    $bfont = '['.$bfont.']';
+    $thm_style = '['.$thm_style.']';
+    undef $before_thm;
+
+    if (!($ctr)) {
+	# define the new counter
+	$ctr = $env;
+	do {
+###	    local($_) = "\\arabic<<1>>$ctr<<1>>";
+###	    $_ = join('',"\\the$within", "." , $_) if ($within);
+	    $body = "\\arabic<<1>>$ctr<<1>>";
+	    $body = join('',"\\the$within", "." , $body) if ($within);
+	    &make_unique($body);
+	    $cmd = "the$ctr";
+	    $tmp = "do_cmd_$cmd";
+	    do {
+                $new_command{$cmd} = join(':!:',0,$body,'}') 
+	    } unless (defined &$tmp);
+	    &write_mydb("new_command", $cmd, $new_command{$cmd});
+	    eval "sub do_cmd_$cmd {\n"
+		. 'local($_,$ot) = @_;'."\n"
+		. 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'."\n"
+		. '&translate_commands(' . "\"$body\"" . ");\n}\n";
+	    print STDERR "\n*** sub $tmp failed:\n$@\n" if ($@);
+	    $raw_arg_cmds{$cmd} = 1;
+	    undef $body;
+	};
+	&do_body_newcounter($ctr);
+    } else {
+	do {
+###	    local($_) = "\\arabic<<1>>$ctr<<1>>";
+	    $body = "\\arabic<<1>>$ctr<<1>>";
+	    &make_unique($body);
+	    $cmd = "the$env";
+	    $tmp = "do_cmd_$cmd";
+	    do {
+                $new_command{$cmd} = join(':!:',0,$body,'}') 
+	    } unless (defined &$tmp);
+	    &write_mydb("new_command", $cmd, $new_command{$cmd});
+	    eval "sub do_cmd_$cmd {\n"
+		. 'local($_,$ot) = @_;'
+		. 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'
+		. '&translate_commands(' . "\"$body\"" . ");\n}\n";
+	    print STDERR "\n*** sub $tmp failed:\n$@\n" if ($@);
+	    $raw_arg_cmds{$cmd} = 1;
+	    undef $body;
+	};
+    }
+
+    # record the counter dependency
+    &addto_dependents($within,$ctr) if ($within);
+
+    # save the text-label in the %new_theorem hash
+    $new_theorem{$env} = $title;
+
+    # define a new environment
+    my ($id) = ++$global{'max_id'};
+    $begin = "\\begin<<$id>>theorem_type<<$id>>"
+	. "[$env][$ctr][$within]$thm_style$hfont$bfont\n";
+    $id = ++$global{'max_id'};
+    $end = "\\end<<$id>>theorem_type<<$id>>\n";
+    $tmp = "do_env_$env";
+    if ((defined &$tmp)&&($ALLOW_REDEFINE)) {
+	print STDOUT "\n*** redefining theorem environment {$env} ***\n";
+    }
+    $new_environment{$env} = join(':!:', '', $begin, $end, '')
+	unless ((defined &$tmp)&&(! $ALLOW_REDEFINE));
+
+    if (!$PREAMBLE) {
+	my ($new_cmd) = join(''
+	    , 'theorem{}' );
+	&add_to_preamble('theorem', "\\new".$new_cmd );
+	$$after_R = $_;
+	return();
+    }
+    $$after_R = $_;
+    'newed'.$new_thm;
+}
+
+sub do_cmd_theoremstyle {
+    local($_) = @_;
+    local($thm_type);
+    $thm_type = &missing_braces unless (
+	(s/$next_pair_pr_rx/$thm_type=$2;''/e)
+	||(s/$next_pair_rx/$thm_type=$2;''/e));
+#   $THM_STYLE = $thm_type;
+    $_;
+}
+sub do_cmd_theoremheaderfont {
+    local($_) = @_;
+    local($thm_type);
+    $thm_type = &missing_braces unless (
+	(s/$next_pair_pr_rx/$thm_type=$2;''/e)
+	||(s/$next_pair_rx/$thm_type=$2;''/e));
+#   $THM_HFONT = $thm_type;
+    $_;
+}
+sub do_cmd_theorembodyfont {
+    local($_) = @_;
+    local($thm_type);
+    $thm_type = &missing_braces unless (
+	(s/$next_pair_pr_rx/$thm_type=$2;''/e)
+	||(s/$next_pair_rx/$thm_type=$2;''/e));
+#   $THM_BFONT = $thm_type;
+    $_;
+}
+
+sub do_env_theorem_type {
+    local($_) = @_;
+    local($dum,$env,$ctr,$within, $label, $name, $title, $text, $index);
+    ($env, $dum) = &get_next_optional_argument;
+    ($ctr, $dum) = &get_next_optional_argument;
+    ($within, $dum) = &get_next_optional_argument;
+
+    local($thm_num, $thm_style);
+    # defaults for plain theorem-style
+    my ($hfont,$bfont) = ('','');
+
+    ($thm_style, $dum) = &get_next_optional_argument;
+    ($hfont, $dum) = &get_next_optional_argument;
+    $hfont =~ s/\|/\\/og;
+    ($bfont, $dum) = &get_next_optional_argument;
+    $bfont =~ s/\|/\\/og;
+
+    # the pre-defined alternative theorem-styles
+    if ($thm_style =~ /definition/) {
+	$bfont = '\normalfont' unless $bfont;
+    } elsif ($thm_style =~ /remark/) {
+	$hfont = '\itshape' unless $hfont;
+	$bfont = '\normalfont' unless $bfont;
+    }
+
+    # defaults for plain theorem-style
+    $hfont = '\bfseries' unless $hfont;
+    $bfont = '\itshape' unless $bfont;
+
+    ($name, $dum) = &get_next_optional_argument;
+    $name = &translate_environments("${O}0$C".$name."${O}0$C") if $name;
+    $name = &translate_commands($name) if ($name =~ /\\/);
+
+    $index = $section_commands{$ctr};
+    if ($index) { 
+	# environment actually starts a new (sub-)section
+	$curr_sec_id[$index]++;
+	local($this) = &translate_commands("\\the$ctr");
+	local($hash) = &sanitize($name." $this");
+	local($section_tag) = join('', @curr_sec_id);
+	$encoded_section_number{$hash} = join($;, $section_tag);
+	&reset_dependents($ctr) if ($dependent{$ctr});
+	$thm_num = &translate_commands("\\the$ctr");
+	$thm_num =~ s/(\w)\.(\.\w)/$1$2/g;
+
+	# construct the sectioning title from the counter values
+	$title = join( '', $new_theorem{$env}, " "
+	    , &translate_commands("\\the$ctr") );
+	$toc_section_info{join(' ', at curr_sec_id)} = \
+	    "$current_depth$delim$CURRENT_FILE$delim$title"
+		if ($current_depth <= $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH);
+	$section_info{join(' ', at curr_sec_id)} = \
+	    "$current_depth$delim$CURRENT_FILE$delim$title$delim";
+	$title = join('',"<A NAME=\"SECTION$section_tag\"><B>"
+		      , $title , "</B></A>" );
+    } else {
+	if ($ctr) {
+	    print STDOUT "\nSTP:$ctr:+1" if ($VERBOSITY > 3);
+	    $global{$ctr}++;
+	    print STDOUT "=".$global{$ctr}." " if ($VERBOSITY > 3);
+	    &reset_dependents($ctr) if ($dependent{$ctr});
+	    $thm_num = "\\the$ctr ";
+	} else { $thm_num = ''; }
+
+	# construct the full title from the counter values
+	$title = $new_theorem{$env};
+	if (($thm_style =~ /margin/)&&($HTML_VERSION > 2.1)) {
+	    # don't use the number yet
+	} elsif ($thm_style =~ /change/) {
+	    $title = join(' ', $thm_num, "\\space", $title)
+	} else {
+	    $title = join(' ', $title, "\\space", $thm_num);
+	}
+
+	if ($hfont) {
+	    $title = join('',$O,++$global{'max_id'},$C,$hfont," "
+		      , $title, $O,++$global{'max_id'},$C);
+	    $title = &translate_environments($title);
+	    $title = &translate_commands($title);
+	} else {
+	    $title = join('',"<B>",&translate_commands($title),"</B>");
+	}
+	$title =~ s/(\w)\.(\.\w)/$1$2/g;
+    }
+    # extract any name or label that may occur at the start
+    s/^\s*(\\label(($O|$OP)\d+($C|$CP))([^<]*)\2)?\s*(\(([^\)]*)\))?/
+	$label=$1; $text=$5; $name=$7 if ($7); ''/eo;
+    if ($label) {
+	$label = &anchor_label($text,$CURRENT_FILE,'');
+	$label =~ s/$anchor_mark/$title/;
+	$title = $label;
+    }
+    if ($name) {
+	$name =~ s/^\s*|\s*$//g; 
+	$name = join('', " (", $name, ") ") if $name;
+    }
+    local($attribs, $border);
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+
+    $_ = join('', $O,++$global{'max_id'},$C, $bfont
+	    , " ", $_ ,$O,++$global{'max_id'},$C) if ($bfont);
+
+    my($cmd) = 'do_thm_'.$env;
+    if (defined &$cmd) {
+	$_ = &$cmd($ctr, $title, $_);
+    } else {
+	$_ = &translate_environments($_);
+	$_ = &translate_commands($_);
+    }
+
+    if ($thm_style =~ /margin/) {
+	local($valign);
+	$valign = ($NETSCAPE_HTML ? ' VALIGN="BASELINE"':'');
+	if ($hfont) {
+	    $thm_num = join('',$O,++$global{'max_id'},$C,$hfont," "
+		      , $thm_num, $O,++$global{'max_id'},$C);
+	    $thm_num = &translate_environments($thm_num);
+	    $thm_num = &translate_commands($thm_num);
+	} else {
+	    $thm_num = join('',"<B>",&translate_commands($thm_num),"</B>");
+	}
+	$thm_num =~ s/(\w)\.(\.\w)/$1$2/g;
+
+	# code copied from  &make_table
+	local($Tattribs);
+	if ($attribs) {
+	    if (!($attribs =~ /=/)) {
+		$Tattribs = &parse_valuesonly($attribs,"TABLE");
+	    } else {
+		$Tattribs = &parse_keyvalues($attribs,"TABLE");
+	    }
+	    $Tattribs = ' '.$Tattribs if ($Tattribs);
+	}
+	$_ = join ('', "\n<P><DIV$env_id><TABLE"
+		, (($border) ? " BORDER=\"$border\"" : '')
+		, $Tattribs , ">\n<TR VALIGN=\"TOP\">"
+		, "<TD$valign>", &translate_commands($thm_num)
+		, "</TD>\n<TD>", $title, $name
+		, (($thm_style =~ /break/)? "\n<BR>":" \  \n")
+		, $_ , "\n</TD></TR></TABLE></DIV>");
+    } else {
+	$_ = join('', "<P><DIV$env_id>"
+		, $title, $name
+		, (($thm_style =~ /break/)? "\n<BR>":" \  \n")
+		, $_
+		,"</DIV><P></P>\n");
+	if (($border||($attribs))&&($HTML_VERSION > 2.1 )) { 
+	    &make_table( $border, $attribs, '', '', '', $_ ) 
+	} else { $_ }
+    }
+}
+
+# Modifies $_ in the caller and as a side-effect it modifies $next_def
+# which is local to substitute_meta_cmds
+sub get_next {
+    local($what) = @_;
+    local($next, $pat, $tmp);
+    if ($what == 1) {
+	($next, $tmp, $pat) = &get_next_argument;
+    }
+    elsif ($what == 2) {
+	($next, $pat) = &get_next_tex_cmd;
+    }
+    elsif ($what == 3) {
+	($next, $pat) = &get_next_def_arg;
+    }
+    elsif ($what == 4) {
+	($next, $tmp, $pat) = &get_next_argument;
+    }
+    else {
+	($next, $pat) =  &get_next_optional_argument;
+    }
+    do {
+	$next_def .= &revert_to_raw_tex($pat) if $pat;
+    } unless ($renewed); # don't add \renewcommand to preamble
+#    $next =~ s/(^\s*)|(\s*$)//g unless ($what == 4); #don't lose white space on body
+    $next =~ s/(^\s*)|(\s*$)//g unless ($what =~ /[14]/); #retain white space in body
+    ($next, $pat);
+}
+
+# The following get_next_<something> ARE ALL DESTRUCTIVE.
+sub get_next_argument {
+    local($next, $br_id, $pat);
+    if (!(s/$next_pair_rx/$br_id=$1;$next=$2;$pat=$&;''/seo)) {
+	print " *** Could not find argument for command \\$cmd ***\n";
+	print "$_\n";
+    };
+    ($next, $br_id, $pat);
+}
+
+sub get_next_pair_or_char_pr {
+    local($next, $br_id, $pat, $epat);
+    if ( /^\{([^\}]*)\}/o && (! $`)) {
+	($next, $pat) = ($1, $&);
+    } elsif ( (/^\s*([^\s\\<])/o && (! $`))) {
+	($next, $pat) = ($1, $&);
+    } elsif ( /$next_pair_pr_rx/o && (! $`)) {
+	($next, $br_id, $pat) = ($2, $1, $&);
+    };
+    $epat = &escape_rx_chars($pat);
+    s/$epat// if $pat;
+    ($next, $br_id, $pat);
+}
+
+sub get_next_optional_argument {
+    local($next, $pat);
+    s/$optional_arg_rx/$next=$1;$pat=$&;''/eo
+	if (/\s*[[]/ && (! $`)); # if the first character is a [
+    #remove trailing spaces and/or comments
+    s/^($comment_mark(\d+\n?)?|$EOL)//gos;
+
+    # if  nested inside {}s  we need to get more tokens  
+    if ($pat) {
+	# check for \item, indicating something has gone wrong
+	if ($pat =~ /\\item\b/ ) {
+	    print "\n*** optional argument badly formed:\n" . $pat . "\n\n";
+	    $_ = $pat . $_;
+	    return('','');
+	}
+	# check for being nested inside {}s
+	local($found) = $pat;
+	while ($found =~ s/$O(\d+)$C[\s\S]*$O\1$C//g) {
+	    if ($found =~ /$O(\d+)$C/) {
+		local($br_id) = $1;
+		if (s/$O$br_id$C//) {
+		    $found .= $`.$&;
+		    $pat .= "]".$`.$&;
+		    $next .= "]".$`.$&;
+		    $_ = $';
+		    s/^([^]]*)\]/$next.=$1;$pat.=$&;''/e;
+		    $found .= $&;
+		} else { last } # give up if no closing brace
+	    }
+	}
+    } else {
+	s/^\s*\[\]/$pat=$&;''/e; # This is not picked by $optional_arg_rx
+    }
+    ($next, $pat);
+}
+
+#JCL(jcl-del) - use new form of $single_cmd_rx.
+sub get_next_tex_cmd {
+    local($next, $pat);
+    s/^\s*\=?\s*$single_cmd_rx/$4/;
+    ($next, $pat) = ($1.$2,"\\".$1.$2);
+}
+
+sub get_next_def_arg {
+    local($next, $pat);
+
+    # Sets is_simple_def for caller.  Start by turning it off, then
+    # turn it on if we find one of the "simple" patterns.
+
+    # This has got to be hit-or-miss to an extent, given the
+    # thoroughly incestuous relationship between the TeX macroprocessor
+    # ('mouth') and typesetting back-end ('stomach').  Anything which
+    # even does catcode hacking is going to lose BAD.
+
+    s/^\s*//so;			# Remove whitespace
+
+    $is_simple_def = 0;
+
+    # no arguments
+
+    if (/^$O/ && (! $`)) { $next=0; $pat=''; $is_simple_def=1; }
+
+    # 'simple' arguments
+
+    if (! $is_simple_def && /$tex_def_arg_rx/o && (! $`)) {
+	s/$tex_def_arg_rx/$next=$1; $pat=$&; $is_simple_def=1; $2/seo; }
+
+    # MESSY arguments
+
+    if (! $is_simple_def) {
+ 	print "Arguments to $cmd are too complex ...\n";
+	print "It will not be processed unless used in another environment\n";
+	print "which is passed to LaTeX whole for processing.\n";
+
+	s/^[^<]*(<[^<]+)*<</$next=''; $pat=$&; $O/seo;
+    }
+
+    $pat =~ s/$O$//so;
+
+    ($next, $pat);
+}
+
+#### Key-value parsing added by RRM
+#
+#   This cleans-up the key-value pairs for a given tag, 
+#   by removing unnecessary spaces and commas, inserting quotes
+#   around the value and puts a preceding space.
+#   The key becomes upper-case, while the value becomes lower-case.
+#   If specific `tags' are provided, then checking is done to verify 
+#   that the keys and values are valid for these tags, eliminating
+#   any that are not; unmatched keys or values are handled as well.
+#   If no tags are provided, then just a list of pairs is returned.
+#
+sub parse_keyvalues {
+    local($_, at tags) = @_;
+    local($key,$KEY,$attribs,$atts,%attributes)=('','','','');
+
+    # beware active " in german
+    local($is_german);
+    if (s/\"/'/g) { 
+	$is_german=1;
+	s/(^|[\s,=])(\&\#\d\d\d;)/$1'$2/g
+    }
+    local($saved) = &revert_to_raw_tex(&translate_commands($_));
+    print "\nATTRIBS: $saved\n" if ($VERBOSITY > 6);
+
+    $saved =~ s/$percent_mark/%/g;
+    $saved =~ s/((^|[\s,=])')\\\W{(\w)}/$1$3/g
+	if $is_german;  #unwanted accents, from active "
+    if (@tags) {
+	foreach $tag (@tags) {
+	    $_ = $saved;
+	    local($name)= $tag."_attribs";
+	    $taglist = $$name;
+	    $name .= "_rx_list";
+	    $taglist .= $$name;
+	    $taglist =~ s/,,/,/;
+#	    s/(^|,)\s*([a-zA-Z]+)\s*\=\s*"?([\#\%\w\d]+)"?\s*/$attributes{$2}="$3";''/eg;
+#	    s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([#%\w\d]*))\s*/
+#	    s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([#%&@;:+-\/\w\d]*))\s*/
+	    s/(^|,)\s*([a-zA-Z]+)\s*\=\s*(\"([^"]*)\"|\'([^\']*)\'|([^<>,=\s]*))\s*/
+		$attributes{$2}=($4?$4:($5?$5:$6));' '/eg;
+	    foreach $key (keys %attributes){ 
+		$KEY = $key;
+		$KEY =~ tr/a-z/A-Z/;
+		if ($taglist =~ /,$KEY,/i) {	        
+		    local($keyname) = $tag."__".$KEY; 
+		    local($keyvalues) = '';
+		    if ($$keyname) {
+			$keyvalues = $$keyname;
+			$atts = $attributes{$key};
+			if ($keyvalues =~ /\,$atts\,/i ) {
+#			    $atts =~ tr/A-Z/a-z/;
+			    $attribs .= " $KEY=\"$atts\"";
+			    print "\n$KEY=$atts " if ($VERBOSITY > 3);
+			} else { &invalid_tag($tag,$KEY,$atts); }
+		    } else {	# test for a regular expression
+		        $keyname = $keyname."_rx";
+			if ($$keyname) {
+			    $keyvalues = $$keyname;
+			    $atts = $attributes{$key};
+			    if ($atts =~ /$keyvalues/) {
+#				$atts =~ tr/A-Z/a-z/;
+				$attribs .= " $KEY=\"$atts\"";				
+				print "\n$KEY=$atts " if ($VERBOSITY > 3);
+			    } else { &invalid_tag($tag,$KEY,$atts) }
+			} else {
+			    $atts = $attributes{$key};
+#			    $atts =~ tr/A-Z/a-z/;
+			    $attribs .= " $KEY=\"$atts\"";
+			    print "\n$KEY=$atts " if ($VERBOSITY > 3);
+			}
+		    }
+		} else {
+		    print "\n$key not in $taglist for $tag" if ($VERBOSITY > 3);
+		}
+	    }
+	}
+        s/(^|\s,)\'([^\s,]*)\'(\s|$)/$1$2 /g if $is_german;
+	$attribs .= &parse_valuesonly($_, at tags);
+    } else {
+	# with no tags provided, just list the key-value pairs
+	$_ = $saved;
+	s/\s*(\w+)\s*=\s*\"?(\w+)\"?\s*,?/$attributes{$1}=$2;''/eg;
+	foreach $key (keys %attributes){ 
+	    $KEY = $key;
+	    $KEY =~ tr/a-z/A-Z/;
+	    $atts = $attributes{$key};
+	    $atts =~ tr/A-Z/a-z/;
+	    $attribs .= " $KEY=\"$atts\"";
+	}
+    }
+    $attribs;
+}
+
+sub invalid_tag {
+    local($tag,$key,$value) = @_;
+    &write_warnings("$key=$value is an invalid value in the <$tag> tag\n");
+}
+
+# RRM
+#   This creates key-value pairs from values only, 
+#   by checking whether the data matches any key to the provided tags.
+#   Only the first match found is retained.
+#   Attributes with no values are also recognised here.
+#
+sub parse_valuesonly {
+    local($values, at tags) = @_;
+    local($i,$tag,$key,$KEY,$attribs,$atts)=(0,'','','','','');
+    local($saved) = &revert_to_raw_tex(&translate_commands($values));
+    $saved =~ s/$percent_mark/%/g;
+    foreach $tag (@tags) {
+	local($name)= $tag."_attribs";
+	$taglist = $$name;
+	$values = $saved;
+        $values =~ s/\s*\"?([^,\s\"]+)\"?\s*,?/$i++;$attributes{$i}=$1;''/eg;
+        local($j) = 0;
+	while ($j < $i) {
+	    $j++;
+	    $key = $attributes{$j};
+	    if ($taglist =~ /,$key,/i) {
+		$KEY = $key;
+		$KEY =~ tr/a-z/A-Z/;
+		$attribs .= " $KEY";
+		print " $KEY" if ($VERBOSITY > 3);
+	    } else {
+		$atts = $attributes{$j};
+		$key = &find_attribute($key,$tag);
+	        if ($key) {
+		    $KEY = $key;
+		    $KEY =~ tr/a-z/A-Z/;
+		    $atts =~ tr/A-Z/a-z/;
+	            $attribs .= " $KEY=\"$atts\"";
+		    print " $KEY = $atts" if ($VERBOSITY > 3);
+		} else { }
+	    }
+	}
+    }
+    $attribs;
+}
+
+# RRM
+#   Extracts key-value pairs using a supplied (comma-separated) list.
+#   When no list is given, it checks for a pre-defined list for the tag.
+#   
+sub extract_attributes {
+    local($tag,$taglist,$_) = @_;
+    local($key,$attribs,$unused,%attributes);
+    if (! ($taglist)) {
+	local($name) = "$tag"."_attribs";
+	if ($$name) { $taglist = $$name }
+    }
+    s/\s*(\w+)\s*=\s*\"?(\w+)\"?\s*,?/$attributes{$1}=$2;''/eg;
+    foreach $key (keys %attributes){ 
+	if ($taglist =~ /\,$key\,/) {
+	    $attribs .= " $key=\"$attributes{$key}\"";
+	    &write_warnings("valid attribute $key for $tag\n");
+	} else {
+	    &write_warnings("unknown attribute $key for $tag\n");
+	    $unused .= " $key=\"$attributes{$key}\"";
+	}
+    }
+    ($attribs,$unused);
+}
+
+# RRM
+#   Finds the attribute of a given tag, for which a given value is valid.
+#   Requires variables: <tag>_<key> to be a comma-separated list of keys.
+#   So far it cannot recognise data-types, only names.
+#
+sub find_attribute {
+    local($key,$attrib,$tag) = ('', at _);
+    local($name) = $tag."_attribs";
+    local($attrib_list)=$$name;
+    if ($attrib_list) {
+	$attrib_list =~ s/^\,//o;
+	$attrib_list =~ s/\,$//o;
+	local(@keys) = split(',',$attrib_list);
+	local($attrib_vals) = '';
+	foreach $key (@keys) {
+	    $name = $tag."__".$key;
+	    $attrib_vals = $$name;
+	    return ($key) if ($attrib_vals =~ /\,$attrib\,/i ); 
+	}
+    }
+    $name = $tag."_attribs_rx_list";
+    $attrib_list=$$name;
+    if (!($attrib_list)) { return(); }
+    $attrib_list =~ s/^\,//o;
+    $attrib_list =~ s/\,$//o;
+    @keys = split(',',$attrib_list);
+    foreach $key (@keys) {
+	next if ($attribs =~ / $key=/);
+	$name = $tag."__".$key."_rx";
+	$attrib_vals = $$name;
+	if ( $attrib =~ /^$attrib_vals$/ ) { 
+	    return ($key);
+	}
+    }
+    0;
+}
+
+# in case \HTML is defined differently in packages
+sub do_cmd_HTML { &do_cmd_HTMLcode(@_) }
+
+sub do_cmd_HTMLcode {
+    local($_) = @_;
+    local($tag,$attribs,$dum);
+    local($attribs, $dum) = &get_next_optional_argument;
+    $tag = &missing_braces unless (
+	(s/$next_pair_pr_rx/$tag = $2;''/eo)
+	||(s/$next_pair_rx/$tag = $2;''/eo));
+    $tag = &translate_commands($tag) if ($tag =~ /\\/);
+    if (! $tag) {
+	print "*** no tag given with \\HTML command, ignoring it";
+	return($_);
+    }
+    local($afterHTML) = $_;
+    local($value,$TAGattribs,$etag);
+    if (defined $unclosed_tags_list{$tag}) {
+    } elsif (defined $closed_tags_list{$tag}) {
+	$value = &missing_braces unless (
+	    (s/$next_pair_pr_rx/$value = $2;''/eo)
+	    ||(s/$next_pair_rx/$value = $2;''/eo));
+	$etag = "</$tag>";
+	$afterHTML = $_;
+    } else {
+	print "\n*** <$tag> is not a valid tag for HTML $HTML_VERSION";
+	print "\n rejecting: \\HTML".(($attribs)? "[$attribs]" : '')."{$tag}";
+	return $_ ;
+    }
+    if ($dum) {
+	$attribs = &translate_commands($attribs) if ($attribs=~/\\/);
+        if ($attribs) {
+            if (!($attribs =~ /=/)) {
+                $TAGattribs = &parse_valuesonly($attribs,$tag);
+            } else {
+                $TAGattribs = &parse_keyvalues($attribs,$tag);
+            }
+        }
+    } else { }  # default if no [...]
+    local($needed) = join(','
+	    , $closed_tags_list{$tag},$unclosed_tags_list{$tag});
+    $needed =~ s/,,/,/g; $needed =~ s/^,|,$//g;
+    if ($TAGattribs) {
+	if ($needed) {
+	    $needed =~ s/,,/,/g;
+	    local($this, @needed);
+	    (@needed) = split(',',$needed);
+	    foreach $this (@needed) {
+		next unless ($this);
+		next if ($TAGattribs =~ /\b$this\b/);
+		print "\n*** attribute $this required for <$tag> ***";
+		print "\n rejecting: \\HTML".(($attribs)? "[$attribs]" : '')."{$tag}";
+		return($value.$afterHTML);
+	    }
+	}
+	$value = &translate_environments($value);
+	$value = &translate_commands($value) if ($value =~ /\\/);
+	$_ = join('', "<$tag", $TAGattribs, ">", $value, $etag);
+   } elsif ($needed) {
+	print STDOUT "\n*** attributes $needed are required for <$tag> ***";
+	return($value.$after);
+    } elsif ($value) {
+	$value = &translate_environments($value);
+	$value = &translate_commands($value) if ($value =~ /\\/);
+	$_ = join('', "<$tag>", $value, $etag);
+    } else {
+	$_ = join('', "<$tag>", $etag);
+    }
+    $_.$afterHTML; 
+}
+
+sub do_cmd_HTMLget {
+    local($_) = @_;
+    local($which,$value,$hash,$dummy);
+    local($hash, $dummy) = &get_next_optional_argument;
+    $which = &missing_braces unless (
+	(s/$next_pair_pr_rx/$which = $2;''/eo)
+	||(s/$next_pair_rx/$which = $2;''/eo));
+    if ($hash) {
+	local($tmp) = "\%$hash";
+	if (eval "defined \%{$hash}") { $! = '';
+	    $value = ${$hash}{'$which'};
+	} else { print "\nhash: \%$hash not defined" }
+    } elsif ($which) {
+	$value = ${$which};
+    }
+    $value.$_;
+}
+
+sub do_cmd_HTMLset {
+    local($_) = @_;
+    local($which,$value,$hash,$dummy);
+    local($hash, $dummy) = &get_next_optional_argument;
+    $which = &missing_braces unless (
+	(s/$next_pair_pr_rx/$which = $2;''/eo)
+	||(s/$next_pair_rx/$which = $2;''/eo));
+    $value = &missing_braces unless (
+	(s/$next_pair_pr_rx/$value = $2;''/eo)
+	||(s/$next_pair_rx/$value = $2;''/eo));
+    if ($hash) {
+	local($tmp) = "\%$hash";
+	if (eval "defined \%{$hash}") { $! = '';
+#	    eval "\$$hash{'$which'} = \"$value\";";
+	    ${$hash}{'$which'} = $value;
+	    print "\nHTMLset failed: $! " if ($!);
+	} else { print "\nhash: \%$hash not defined" }
+    } elsif ($which) { $! = '';
+	eval "\${$which} = \"$value\";";
+	print "\nHTMLset failed: $! " if ($!);
+    }
+    $_;
+}
+
+sub do_cmd_HTMLsetenv { &do_cmd_HTMLset(@_) }
+
+####
+
+
+# Appends $next_def to the preamble if it is not already there.
+sub add_to_preamble {
+    local($type, $next_def) = @_;
+    local($name);
+    if ($type =~ /def|include|special|graphicspath/) {
+        local($pat) = &escape_rx_chars ($next_def);
+#	$preamble .= $next_def . "\n" unless ($preamble =~ /$pat/);
+	push(@preamble, $pat); 
+    } 
+    elsif ($type =~ /command|environment|theorem|counter/) {
+	push(@preamble, $next_def ); 
+    }
+    else {
+	($name) = $next_def =~ /$marker\s*({[^}]+})/; # matches type{name}
+	$name = &escape_rx_chars($name);
+#	$preamble .= $next_def . "\n" unless ($preamble =~ /$marker\s*$name/);
+	push(@preamble, $name ); 
+    }
+}
+
+sub make_latex{
+# This is the environment in which to process constructs that cannot be
+# translated to HTML.
+# The environment tex2html_wrap will be wrapped around any shorthand
+# environments (e.g. $, \(, \[).
+# The tex2html_wrap environment will be treated as an unrecognised
+# evironment by the translator and its contents (i.e. the 'shorthand'
+# environment) will be passed to latex for processing as usual.
+    local($contents) = @_;
+    local($preamble) = $preamble;
+    local($aux_preamble) = $aux_preamble;
+    while ($preamble =~ s/^(\@.*\n)/$prelatex .= $1;''/e) {}
+    print "\nPRE-LATEX: $prelatex" if (($prelatex)&&($VERBOSITY > 1));
+
+    %newed_commands =
+	 ( 'newedcommand' , 'newcommand'
+	 , 'renewedcommand' , 'renewcommand'
+	 , 'providedcommand' , 'providecommand'
+	 , 'newedenvironment' , 'newenvironment'
+	 , 'newedboolean' , 'newboolean'
+	 , 'newedcounter' , 'newcounter'
+	 , 'newedtheorem' , 'newtheorem'
+	 , 'newedfont' , 'newfont' , 'newedif', 'newif'
+	 );
+		     
+
+    # Make the @ character a normal letter ...
+    $preamble =~ s/\\par([^A-Za-z]|$)/\n$1/g;
+    $preamble =~ s/(\\document(class|style)(\[[^\]]+\])?\{\w+\})/$1\n/;
+    $preamble =~ s/(\\document(class|style)(\[[^\]]+\])?\{\w+\})/$1\n\\RequirePackage{ifthen}\n/
+			 unless ($preamble =~/\{ifthen\}/);
+#    $preamble =~ s/(\\document(class|style)(\[[^\]]+\])?\{\w+\})/$1\n\\makeatletter/;
+    # ... and make it special again after the preamble
+    # remove the  \begin/\end  for  tex2html_nowrap and tex2html_deferred environments
+    $preamble =~s/\\(begin|end)\s*\{(tex2html_(nowrap|deferred|nomath|preform)[_a-z]*|imagesonly)\}//g;
+    $preamble =~s/\n?\s?<tex2html_(end)?file>\#[^#]*\#//mg;
+
+    $preamble = "\\documentclass\{article\}%\n\\usepackage{html}\n\\usepackage[dvips]{color}\n"
+	unless ($preamble);
+    if (($LATEX_DUMP)&&(!($preamble =~ /\\usepackage\{ldump\}/))) {
+	# MRO: replaced $* with /m
+	$preamble =~ s/(\\document(class|style)[^\n]*\n)/$1\\usepackage\{ldump\}\n/m;
+    }
+    if ($preamble =~ /pstricks/) {
+	if ($LOAD_LATEX_COLOR) {
+	    $LOAD_LATEX_COLOR =~ s/\{color\}/\{pstcol\}/ ;
+	} else {
+	    $LOAD_LATEX_COLOR = "\n\\usepackage[dvips]{pstcol}\n";
+	}
+    } else {
+	$LOAD_LATEX_COLOR = "\n\\usepackage[dvips]{color}";
+    }
+    $LATEX_COLOR = "\\pagecolor[gray]{.85}\\nobreak " unless $LATEX_COLOR;
+    if ($preamble =~ /(^|\s*[^%])\s*\\documentstyle/) {
+	# \usepackage is invalid in LaTeX 2.09 and LaTeX-2e compatibility mode
+	$LATEX_COLOR = ''; $LOAD_LATEX_COLOR = '';
+	# ... so is \providecommand 
+	$preamble =~ s/\\documentstyle[^{]*{[^}]*}\n?/
+		$&."\n\\let\\providecommand\\newcommand\n"/eo;
+    }
+
+    $preamble .= $LOAD_LATEX_COLOR."\n" unless ($preamble =~ /[,\{]color[,\}]/);
+    $preamble .= "\n\n".$LATEX_COLOR."\n" unless ($preamble =~ /\\pagecolor/);
+    do {
+	if ($ISOLATIN_CHARS) { $INPUTENC = $INPUTENC || 'latin1' };
+	$preamble .= "\n\\usepackage[".$INPUTENC."]\{inputenc\}\n";
+	} unless ($preamble =~ /\\inputenc/);
+
+    $aux_preamble = '' unless (($aux_preamble)&&($contents =~ /\\(hyper)?(ref|cite)/));
+
+    $preamble =~ s/\\((provide|(re)?new)ed(command|counter|if|theorem|environment|font))\b/
+			 "%\n\\".$newed_commands{$1}/eg;
+    $preamble =~ s/(\\(re)?newcommand)\s*(\{(\\?)(\}|[^\}]+)\})/
+		$1.(($4)? $3 : "{\\".$5.'}' )/eg;
+
+    $preamble =~s/$verbatim_mark(imagesonly)(\d+)#/$verbatim{$2}/eg; # for images.tex only
+
+#    local($key);
+#    foreach $key (keys %newed_commands) {
+#	$preamble .= "\n\\let\\$key\\".$newed_commands{$key}
+#    }
+    $preamble .= "\n";
+
+    local($paperwidth) = '';
+    if ($PAPERSIZE) { $paperwidth = &adjust_textwidth($PAPERSIZE); }
+    else { $paperwidth = &adjust_textwidth("a5"); }
+    local($kern) = ($EXTRA_IMAGE_SCALE ? $EXTRA_IMAGE_SCALE/2 : ".5" );
+    $kern = $kern * $MATH_SCALE_FACTOR;
+    $prelatex . ($DEBUG ? "\\nonstopmode" : "\\batchmode") .
+    "\n$preamble\n\n\\makeatletter\n$aux_preamble\n" .
+    "\\makeatletter\n\\count\@=\\the\\catcode`\\_ \\catcode`\\_=8 \n" .
+    "\\newenvironment{tex2html_wrap}{}{}%\n" .
+    "\\catcode`\\<=12\\catcode`\\_=\\count\@\n" .
+    "\\newcommand{\\providedcommand}[1]{\\expandafter\\providecommand\\csname #1\\endcsname}%\n" .
+    "\\newcommand{\\renewedcommand}[1]{\\expandafter\\providecommand\\csname #1\\endcsname{}%\n" .
+    "  \\expandafter\\renewcommand\\csname #1\\endcsname}%\n" .
+    "\\newcommand{\\newedenvironment}[1]{\\newenvironment{#1}{}{}\\renewenvironment{#1}}%\n" .
+    "\\let\\newedcommand\\renewedcommand\n" .
+    "\\let\\renewedenvironment\\newedenvironment\n" .
+    "\\makeatother\n" .
+    "\\let\\mathon=\$\n\\let\\mathoff=\$\n" .
+    "\\ifx\\AtBeginDocument\\undefined \\newcommand{\\AtBeginDocument}[1]{}\\fi\n" .
+    "\\newbox\\sizebox\n" . "$paperwidth" .
+    "\\newwrite\\lthtmlwrite\n" . "\\makeatletter\n" .
+    "\\let\\realnormalsize=\\normalsize\n\\global\\topskip=2sp\n\\def\\preveqno{}" .
+    "\\let\\real\@float=\\\@float \\let\\realend\@float=\\end\@float\n" .
+    "\\def\\\@float{\\let\\\@savefreelist\\\@freelist\\real\@float}\n" .
+#    "\\def\\\@float{\\\@dbflt}\n" .
+    "\\def\\liih\@math{\\ifmmode\$\\else\\bad\@math\\fi}\n" .
+    "\\def\\end\@float{\\realend\@float\\global\\let\\\@freelist\\\@savefreelist}\n" . 
+    "\\let\\real\@dbflt=\\\@dbflt \\let\\end\@dblfloat=\\end\@float\n" .
+    "\\let\\\@largefloatcheck=\\relax\n" .
+    "\\let\\if\@boxedmulticols=\\iftrue\n" .
+    "\\def\\\@dbflt{\\let\\\@savefreelist\\\@freelist\\real\@dbflt}\n" .
+    "\\def\\adjustnormalsize{\\def\\normalsize{\\mathsurround=0pt \\realnormalsize\n" .
+    " \\parindent=0pt\\abovedisplayskip=0pt\\belowdisplayskip=0pt}%\n" .
+    " \\def\\phantompar{\\csname par\\endcsname}\\normalsize}%\n" .
+    "\\def\\lthtmltypeout#1{{\\let\\protect\\string \\immediate\\write\\lthtmlwrite{#1}}}%\n" .
+    "\\newcommand\\lthtmlhboxmathA{\\adjustnormalsize\\setbox\\sizebox=\\hbox\\bgroup\\kern.05em }%\n" .
+    "\\newcommand\\lthtmlhboxmathB{\\adjustnormalsize\\setbox\\sizebox=\\hbox to\\hsize\\bgroup\\hfill }%\n" .
+    "\\newcommand\\lthtmlvboxmathA{\\adjustnormalsize\\setbox\\sizebox=\\vbox\\bgroup %\n".
+    " \\let\\ifinner=\\iffalse \\let\\)\\liih\@math }%\n" .
+    "\\newcommand\\lthtmlboxmathZ{\\\@next\\next\\\@currlist{}{\\def\\next{\\voidb\@x}}%\n" .
+#    " \\expandafter\\box\\next\\edef\\next{\\egroup\\def\\noexpand\\thiseqn{\\theequation}}\\next}%\n" .
+    " \\expandafter\\box\\next\\egroup}%\n" .
+    "\\newcommand\\lthtmlmathtype[1]{\\gdef\\lthtmlmathenv{#1}}%\n" .
+    "\\newcommand\\lthtmllogmath{\\dimen0\\ht\\sizebox \\advance\\dimen0\\dp\\sizebox\n" .
+    "  \\ifdim\\dimen0>.95\\vsize\n" .  "   \\lthtmltypeout{%\n" .
+    "*** image for \\lthtmlmathenv\\space is too tall at \\the\\dimen0, reducing to .95 vsize ***}%\n" .
+    "   \\ht\\sizebox.95\\vsize \\dp\\sizebox\\z\@ \\fi\n" .  "  \\lthtmltypeout{l2hSize %\n" .
+    ":\\lthtmlmathenv:\\the\\ht\\sizebox::\\the\\dp\\sizebox::\\the\\wd\\sizebox.\\preveqno}}%\n" .
+    "\\newcommand\\lthtmlfigureA[1]{\\let\\\@savefreelist\\\@freelist
+       \\lthtmlmathtype{#1}\\lthtmlvboxmathA}%\n" .
+    "\\newcommand\\lthtmlpictureA{\\bgroup\\catcode`\\_=8 \\lthtmlpictureB}%\n" . 
+    "\\newcommand\\lthtmlpictureB[1]{\\lthtmlmathtype{#1}\\egroup
+       \\let\\\@savefreelist\\\@freelist \\lthtmlhboxmathB}%\n" .
+    "\\newcommand\\lthtmlpictureZ[1]{\\hfill\\lthtmlfigureZ}%\n" .
+    "\\newcommand\\lthtmlfigureZ{\\lthtmlboxmathZ\\lthtmllogmath\\copy\\sizebox
+       \\global\\let\\\@freelist\\\@savefreelist}%\n" .
+    "\\newcommand\\lthtmldisplayA{\\bgroup\\catcode`\\_=8 \\lthtmldisplayAi}%\n" .
+    "\\newcommand\\lthtmldisplayAi[1]{\\lthtmlmathtype{#1}\\egroup\\lthtmlvboxmathA}%\n" .
+    "\\newcommand\\lthtmldisplayB[1]{\\edef\\preveqno{(\\theequation)}%\n" .
+    "  \\lthtmldisplayA{#1}\\let\\\@eqnnum\\relax}%\n" .
+    "\\newcommand\\lthtmldisplayZ{\\lthtmlboxmathZ\\lthtmllogmath\\lthtmlsetmath}%\n" .
+    "\\newcommand\\lthtmlinlinemathA{\\bgroup\\catcode`\\_=8 \\lthtmlinlinemathB}\n" .
+    "\\newcommand\\lthtmlinlinemathB[1]{\\lthtmlmathtype{#1}\\egroup\\lthtmlhboxmathA\n" .
+    "  \\vrule height1.5ex width0pt }%\n" .
+    "\\newcommand\\lthtmlinlineA{\\bgroup\\catcode`\\_=8 \\lthtmlinlineB}%\n" .
+    "\\newcommand\\lthtmlinlineB[1]{\\lthtmlmathtype{#1}\\egroup\\lthtmlhboxmathA}%\n" .
+    "\\newcommand\\lthtmlinlineZ{\\egroup\\expandafter\\ifdim\\dp\\sizebox>0pt %\n" .
+    "  \\expandafter\\centerinlinemath\\fi\\lthtmllogmath\\lthtmlsetinline}\n" .
+    "\\newcommand\\lthtmlinlinemathZ{\\egroup\\expandafter\\ifdim\\dp\\sizebox>0pt %\n" .
+    "  \\expandafter\\centerinlinemath\\fi\\lthtmllogmath\\lthtmlsetmath}\n" .
+    "\\newcommand\\lthtmlindisplaymathZ{\\egroup %\n" .
+    "  \\centerinlinemath\\lthtmllogmath\\lthtmlsetmath}\n" .
+    "\\def\\lthtmlsetinline{\\hbox{\\vrule width.1em \\vtop{\\vbox{%\n" .
+    "  \\kern.1em\\copy\\sizebox}\\ifdim\\dp\\sizebox>0pt\\kern.1em\\else\\kern.3pt\\fi\n" .
+    "  \\ifdim\\hsize>\\wd\\sizebox \\hrule depth1pt\\fi}}}\n" .
+    "\\def\\lthtmlsetmath{\\hbox{\\vrule width.1em\\kern-.05em\\vtop{\\vbox{%\n" .
+    "  \\kern.1em\\kern$kern pt\\hbox{\\hglue.17em\\copy\\sizebox\\hglue$kern pt}}\\kern.3pt%\n" .
+    "  \\ifdim\\dp\\sizebox>0pt\\kern.1em\\fi \\kern$kern pt%\n" .
+    "  \\ifdim\\hsize>\\wd\\sizebox \\hrule depth1pt\\fi}}}\n" .
+    "\\def\\centerinlinemath{%\n" . 
+    "  \\dimen1=\\ifdim\\ht\\sizebox<\\dp\\sizebox \\dp\\sizebox\\else\\ht\\sizebox\\fi\n" .
+    "  \\advance\\dimen1by.5pt \\vrule width0pt height\\dimen1 depth\\dimen1 \n".
+    " \\dp\\sizebox=\\dimen1\\ht\\sizebox=\\dimen1\\relax}\n\n" .
+    "\\def\\lthtmlcheckvsize{\\ifdim\\ht\\sizebox<\\vsize \n" .
+    "  \\ifdim\\wd\\sizebox<\\hsize\\expandafter\\hfill\\fi \\expandafter\\vfill\n" .
+    "  \\else\\expandafter\\vss\\fi}%\n" .
+    "\\providecommand{\\selectlanguage}[1]{}%\n" .
+#    "\\def\\\@enddocumenthook{\\ifnum\\count0>1 \\ifvoid\\\@cclv\\penalty-\\\@MM\\fi\\fi}\n" .
+    "\\makeatletter \\tracingstats = 1 \n"
+    . ($itrans_loaded ? $itrans_tex_mod : '')
+    . $LaTeXmacros . "\n"  # macros defined in extension files
+#    "\\usepackage{lthimages}\n" .
+    . (($LATEX_DUMP)? "\\latexdump\n" : '')
+    . "\n\\begin{document}\n" .
+    "\\pagestyle{empty}\\thispagestyle{empty}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength hsize=\\the\\hsize}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength vsize=\\the\\vsize}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength hoffset=\\the\\hoffset}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength voffset=\\the\\voffset}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength topmargin=\\the\\topmargin}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength topskip=\\the\\topskip}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength headheight=\\the\\headheight}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength headsep=\\the\\headsep}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength parskip=\\the\\parskip}\\lthtmltypeout{}%\n" .
+    "\\lthtmltypeout{latex2htmlLength oddsidemargin=\\the\\oddsidemargin}\\lthtmltypeout{}%\n" .
+    "\\makeatletter\n" .
+    "\\if\@twoside\\lthtmltypeout{latex2htmlLength evensidemargin=\\the\\evensidemargin}%\n" .
+    "\\else\\lthtmltypeout{latex2htmlLength evensidemargin=\\the\\oddsidemargin}\\fi%\n" .
+    "\\lthtmltypeout{}%\n" .
+    "\\makeatother\n\\setcounter{page}{1}\n\\onecolumn\n\n% !!! IMAGES START HERE !!!\n\n"
+    . "$contents\n"
+#    "\\clearpage\n" .
+    . "\\end{document}";
+}
+
+sub adjust_textwidth {
+    local($_) = @_;
+    local($width,$length) = ('','');
+    if (/a4/) {$width = 595; $length= 842; }
+    elsif (/letter/) {$width = 612; $length= 792; }
+    elsif (/legal/) {$width = 612; $length= 1008; }
+    elsif (/note/) {$width = 540; $length= 720; }
+    elsif (/b5/) {$width = 501; $length= 709; }
+    elsif (/a5/) {$width = 421; $length= 595; }
+    elsif (/a6/) {$width = 297; $length= 421; }
+    elsif (/a7/) {$width = 210; $length= 297; }
+    elsif (/a8/) {$width = 148; $length= 210; }
+    elsif (/a9/) {$width = 105; $length= 148; }
+    elsif (/a10/) {$width = 74; $length= 105; }
+    elsif (/b4/) {$width = 709; $length= 1002; }
+    elsif (/a3/) {$width = 842; $length= 1190; }
+    elsif (/b3/) {$width = 1002; $length= 1418; }
+    elsif (/a2/) {$width = 1190; $length= 1684; }
+    elsif (/b2/) {$width = 1418; $length= 2004; }
+    elsif (/a1/) {$width = 1684; $length= 2380; }
+    elsif (/b1/) {$width = 2004; $length= 2836; }
+    elsif (/a0/) {$width = 2380; $length= 3368; }
+    elsif (/b0/) {$width = 2836; $length= 4013; }
+    else {
+	&write_warnings("\nPAPERSIZE: $_ unknown, using LaTeX's size.");
+	return();
+     }
+    if ($width > 500) { $width = $width - 144; $length = $length - 288; }
+    elsif ($width > 250) { $width = $width - 72; $length = $length - 144; }
+    elsif ($width > 125) { $width = $width - 36; $length = $length - 72; }
+#    "\\setlength{\\oddsidemargin}{0pt}\n" .
+#    "\\setlength{\\evensidemargin}{0pt}\n" .
+#    "\\setlength{\\parskip}{0pt}\\setlength{\\topskip}{0pt}\n" .
+    "\\setlength{\\hoffset}{0pt}\\setlength{\\voffset}{0pt}\n" .
+    "\\addtolength{\\textheight}{\\footskip}\\setlength{\\footskip}{0pt}\n" .
+    "\\addtolength{\\textheight}{\\topmargin}\\setlength{\\topmargin}{0pt}\n" .
+    "\\addtolength{\\textheight}{\\headheight}\\setlength{\\headheight}{0pt}\n" .
+    "\\addtolength{\\textheight}{\\headsep}\\setlength{\\headsep}{0pt}\n" .
+    "\\setlength{\\textwidth}{${width}pt}\n"
+    . (($length > 500) ? "\\setlength{\\textheight}{${length}pt}\n" : '')
+}
+
+# Given the depth of the current sectioning declaration and the current
+# section numbers it returns the new section numbers.
+# It increments the $depth-ieth element of the @curr_sec_id list and
+# 0's the elements after the $depth-ieth element.
+sub new_level {
+    local($depth, @curr_sec_id) = @_;
+    $depth = $section_commands{$outermost_level} unless $depth;
+    local($i) = 0;
+    grep( do { if ($i == $depth) {$_++ ;}
+	       elsif ($i > $depth) {$_ = 0 ;};
+	       $i++;
+	       0;
+	   },
+	 @curr_sec_id);
+    @curr_sec_id;
+}
+
+sub make_head_and_body {
+    local($title,$body,$before_body) = @_;
+    local($DTDcomment) = '';
+    local($version,$isolanguage) = ($HTML_VERSION, 'EN');
+    local(%isolanguages) = (  'english',  'EN'   , 'USenglish', 'EN-US'
+			    , 'original', 'EN'   , 'german'   , 'DE'
+			    , 'austrian', 'DE-AT', 'french'   , 'FR'
+			    , 'spanish',  'ES'
+			    , %isolanguages );
+#    $isolanguage = $isolanguages{$default_language};  # DTD is in EN
+    $isolanguage = 'EN' unless $isolanguage;
+#JCL(jcl-tcl)
+# clean title as necessary
+# the first words ... is a kludge, but reasonable (or not?) 
+#RRM: why bother? --- as long as it is pure text.
+    $title = &purify($title,1);
+    eval("\$title = ". $default_title ) unless ($title);
+#    $title = &get_first_words($title, $WORDS_IN_NAVIGATION_PANEL_TITLES);
+
+    # allow user-modification of the <TITLE> tag; thanks Dan Young
+    if (defined &custom_TITLE_hook) {
+	$title = &custom_TITLE_hook($title, $toc_sec_title);
+    }
+
+    if ($DOCTYPE =~ /\/\/[\w\.]+\s*$/) { # language spec included
+	$DTDcomment = '<!DOCTYPE HTML PUBLIC "'. $DOCTYPE .'"';
+    } else {
+	$DTDcomment = '<!DOCTYPE HTML PUBLIC "'. $DOCTYPE .'//'
+	    . ($ISO_LANGUAGE ? $ISO_LANGUAGE : $isolanguage) . '"'
+    }
+    $DTDcomment .= ($PUBLIC_REF ? "\n  \"".$PUBLIC_REF.'"' : '' ) . '>'."\n";
+
+    $STYLESHEET = $FILE.".css" unless defined($STYLESHEET);
+
+    my ($this_charset) = $charset;
+    if ($USE_UTF) { $charset = $utf8_str; $NO_UTF = ''; }
+    if (!$charset && $CHARSET) {
+	$this_charset = $CHARSET;
+	$this_charset =~ s/_/\-/go;
+    }
+    if ($NO_UTF && $charset =~/utf/) {
+	$this_charset = $PREV_CHARSET||$CHARSET; 
+	$this_charset =~ s/_/\-/go;
+    }
+
+    join("\n", (($DOCTYPE)? $DTDcomment : '' )
+	,"<!--Converted with LaTeX2HTML $TEX2HTMLVERSION"
+	, "original version by:  Nikos Drakos, CBLU, University of Leeds"
+	, "* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan"
+	, "* with significant contributions from:"
+	, "  Jens Lippmann, Marek Rouchal, Martin Wilck and others"
+	    . " -->\n<HTML>\n<HEAD>\n<TITLE>".$title."</TITLE>"
+	, &meta_information($title)
+	,  ($CHARSET && $HTML_VERSION ge "2.1" ? 
+	      "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=$this_charset\">" 
+	      : "" )
+	, $LATEX2HTML_META
+	, ($BASE ? "<BASE HREF=\"$BASE\">" : "" )
+	, $STYLESHEET_CASCADE
+	, ($STYLESHEET ? "<LINK REL=\"STYLESHEET\" HREF=\"$STYLESHEET\">" : '' )
+	, $more_links_mark
+	, "</HEAD>" , ($before_body? $before_body : '')
+	, "<BODY $body>", '');
+}
+
+
+sub style_sheet {
+    local($env,$id,$style);
+    #AXR:  don't overwrite existing .css
+    #MRO: This is supposed to be $FILE.css, no?
+    #RRM: only by default, others can be specified as well, via $EXTERNAL_STYLESHEET
+    #return if (-f $EXTERNAL_STYLESHEET);
+    return if (-r "$FILE.css" && -s _ && !$REFRESH_STYLES );
+
+    unless(open(STYLESHEET, ">$FILE.css")) {
+        print "\nError: Cannot write '$FILE.css': $!\n";
+        return;
+    }
+    if ( -f $EXTERNAL_STYLESHEET ) {
+        if(open(EXT_STYLES, "<$EXTERNAL_STYLESHEET")) {
+            while (<EXT_STYLES>) { print STYLESHEET $_; }
+            close(EXT_STYLES);
+        } else {
+            print "\nError: Cannot read '$EXTERNAL_STYLESHEET': $!\n";
+        }
+    } else {
+	print STYLESHEET <<"EOF"
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: \"Century Schoolbook\", serif; }
+.MATH I  { font-family: \"Century Schoolbook\", serif; font-style: italic }
+.BOLDMATH { font-family: \"Century Schoolbook\", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+EOF
+    }
+    print "\n *** Adding document-specific styles *** ";
+    while (($env,$style) = each %env_style) {
+        if ($env =~ /\./) {
+            $env =~ s/\.$//;
+            print STYLESHEET "$env\t\t{ $style }\n";
+        } elsif ($env =~ /inline|^(text|math)?((tt|rm|sf)(family)?|(up|it|sl|sc)(shape)?|(bf|md)(series)?|normal(font)?)$/) {
+            print STYLESHEET "SPAN.$env\t\t{ $style }\n";
+        } elsif ($env =~ /\./) {
+            print STYLESHEET "$env\t\t{ $style }\n";
+        } elsif ($env =~ /^(preform|\w*[Vv]erbatim(star)?)$/) {
+            print STYLESHEET "PRE.$env\t\t{ $style }\n";
+        } elsif ($env =~ /figure|table|tabular|equation|$array_env_rx/) {
+            print STYLESHEET "TABLE.$env\t\t{ $style }\n";
+        } else {
+            print STYLESHEET "DIV.$env\t\t{ $style }\n";
+        }
+    }
+    while (($env,$style) = each %txt_style) {
+        print STYLESHEET "SPAN.$env\t\t{ $style }\n";
+    }
+    while (($env,$style) = each %img_style) {
+        print STYLESHEET "IMG.$env\t\t{ $style }\n";
+    }
+
+    my ($style);
+    foreach $id (sort(keys  %styleID)) {
+        $style =  $styleID{$id};
+        $style =~ s/font-(color)/$1/;
+        print STYLESHEET "\#$id\t\t{ $style }\n"
+            if ($styleID{$id} ne '');
+    }
+    close(STYLESHEET);
+}
+
+sub clear_styleID {
+    return unless ($USING_STYLES);
+    local($env_id,$id) = ("grp", @_); 
+    undef $styleID{$env_id} if ($id =~ /^\d+$/);
+}
+
+sub make_address { 
+    local($addr) = &make_real_address(@_);
+    $addr .= "\n</BODY>\n</HTML>\n";
+    &lowercase_tags($addr) if $LOWER_CASE_TAGS;
+    $addr;
+}
+
+sub make_real_address {
+    local($addr) = $ADDRESS;
+    if ((defined &custom_address)&&($addr)) {
+	&custom_address($addr)
+    } elsif ($addr) {
+	"<ADDRESS>\n$addr\n</ADDRESS>";
+    } else { '' }
+}
+
+sub purify_caption {
+    local($_) = @_;
+    local($text) = &recover_image_code($_);
+    $text =~ s/\\protect|ALT\=|%EQNO:\d+//g;
+    $text =~ s/[\\\#\'\"\`]//g;
+    $text;
+}
+
+sub recover_image_code {
+    local($key) = @_;
+    local($text) = $img_params{$key};
+    if (!$text) {
+	if ($text = $id_map{$key}) {
+	    if ($orig_name_map{$text}) {
+		$text = $img_params{$orig_name_map{$text}}
+	    }
+	} elsif ($cached_env_img{$key}) {
+	    $text = $img_params{$cached_env_img{$key}};
+	}
+	if ($text =~ /\#*ALT="([^"]+)"(>|#)/s) { $text = $1 }
+    }
+    $text =~ s/\\protect|%EQNO:\d+//g;
+    $text =~ s/&(gt|lt|amp|quot);/&special_html_inv($1)/eg;
+    $text;
+}
+
+sub encode_title {
+    local($_) = @_;
+    $_ = &encode($_);
+    while (/(<[^<>]*>)/o) {s/$1//g}; # Remove HTML tags
+    s/#[^#]*#//g;               # Remove #-delimited markers
+    $_;
+}
+
+# Encodes the contents of enviroments that are passed to latex. The code
+# is then used as key to a hash table pointing to the URL of the resulting
+# picture.
+sub encode {
+    local($_) = @_;
+    # Remove invocation-specific stuff
+    1 while(s/\\(begin|end)\s*(($O|$OP)\d+($C|$CP))?|{?tex2html_(wrap|nowrap|deferred|)(_\w+)?}?(\2)?//go);
+    $_ = &revert_to_raw_tex($_);
+    s/\\protect//g;		# remove redundant \protect macros
+    #$_ = pack("u*", $_);	# uuencode
+    s/\\\$/dollar/g;		# replace funnies, may cause problems in a hash key
+    s/\//slash/g;		# replace funnies, may cause problems in a hash key
+    s/\$|\/|\\//g;		# remove funnies, may cause problems in a hash key
+    s/\s*|\n//g;		# Remove spaces  and newlines
+    s/^(.{80}).*(.{80})$/$1$2/;		# truncate to avoid DBM problems
+    $_;
+}
+
+
+##################### Hypertext Section Links ########################
+sub post_process {
+    # Put hyperlinks between sections, add HTML headers and addresses,
+    # do cross references and citations.
+    # Uses the %section_info array created in sub translate.
+    # Binds the global variables
+    # $PREVIOUS, $PREVIOUS_TITLE
+    # $NEXT, $NEXT_TITLE
+    # $UP, $UP_TITLE
+    # $CONTENTS, $CONTENTS_TITLE 
+    # $INDEX, $INDEX_TITLE
+    # $NEXT_GROUP, $NEXT_GROUP_TITLE
+    # $PREVIOUS_GROUP, $PREVIOUS_GROUP_TITLE
+    # Converting to and from lists and strings is very inefficient.
+    # Maybe proper lists of lists should be used (or wait for Perl5?)
+    # JKR:  Now using top_navigation and bot_navigation instead of navigation
+    local($_, $key, $depth, $file, $title, $header, @link, @old_link,
+	  $top_navigation, $bot_navigation, @keys,
+	  @tmp_keys, $flag, $child_links, $body, $more_links);
+
+    @tmp_keys = @keys = sort numerically keys %section_info;
+    print "\nDoing section links ...";
+    while (@tmp_keys) {
+	$key = shift @tmp_keys;
+	next if ($MULTIPLE_FILES &&!($key =~ /^$THIS_FILE/));
+	print ".";
+	$more_links = "";
+	($depth, $file, $title, $body) = split($delim,$section_info{$key});
+	print STDOUT "\n$key $file $title $body" if ($VERBOSITY > 3);
+	next if ($body =~ /external/);
+	$PREVIOUS = $PREVIOUS_TITLE = $NEXT = $NEXT_TITLE = $UP = $UP_TITLE
+	    = $CONTENTS = $CONTENTS_TITLE = $INDEX = $INDEX_TITLE
+	    = $NEXT_GROUP = $NEXT_GROUP_TITLE
+	    = $PREVIOUS_GROUP = $PREVIOUS_GROUP_TITLE
+	    = $_ = $top_navigation = $bot_navigation = undef;
+	&add_link_tag('previous',$file);
+	@link =  split(' ',$key);
+        ($PREVIOUS, $PREVIOUS_TITLE) =
+	    &add_link($previous_page_visible_mark,$file, at old_link);
+	@old_link = @link;
+	unless ($done{$file}) {
+	    ++$link[$depth];
+#	    if ($MULTIPLE_FILES && !$depth && $multiple_toc ) {
+#	    	local($save_depth) = $link[$depth];
+#	    	$link[$depth] = 1;
+#		($NEXT_GROUP, $NEXT_GROUP_TITLE) =
+#		    &add_link($next_visible_mark, $file, @link);
+#		&add_link_tag('next', $file, @link);
+#		$link[$depth] = $save_depth;
+#	    } else {
+		($NEXT_GROUP, $NEXT_GROUP_TITLE) =
+		    &add_link($next_visible_mark, $file, @link);
+		&add_link_tag('next', $file, @link);
+#	    }
+
+	    $link[$depth]--;$link[$depth]--;
+	    if ($MULTIPLE_FILES && !$depth ) {
+	    } else {
+		($PREVIOUS_GROUP, $PREVIOUS_GROUP_TITLE) =
+		    &add_link($previous_visible_mark, $file, at link);
+		&add_link_tag('previous', $file, at link);
+	    }
+
+	    $link[$depth] = 0;
+	    ($UP, $UP_TITLE) =
+		&add_link($up_visible_mark, $file, @link);
+	    &add_link_tag('up', $file, @link);
+
+	    if ($CONTENTS_IN_NAVIGATION) {
+		($CONTENTS, $CONTENTS_LINK) = 
+		    &add_special_link($contents_visible_mark, $tocfile, $file);
+		&add_link_tag('contents', $file, $delim.$tocfile);
+	    }
+
+	    if ($INDEX_IN_NAVIGATION) {
+		($INDEX, $INDEX_LINK) = 
+		    &add_special_link($index_visible_mark, $idxfile, $file);
+		&add_link_tag('index', $file, $delim.$idxfile,);
+	    }
+
+	    @link = split(' ',$tmp_keys[0]);
+	    # the required `next' link may be several sub-sections along
+	    local($nextdepth,$nextfile,$nextkey,$nexttitle,$nextbody)=
+	        ($depth,$file,$key,'','');
+	    $nextkey = shift @tmp_keys;
+	    ($nextdepth, $nextfile,$nexttitle,$nextbody) = split($delim,$section_info{$nextkey});
+	    if (($nextdepth<$MAX_SPLIT_DEPTH)&&(!($nextbody=~/external/))) {
+		($NEXT, $NEXT_TITLE) =
+		    &add_link($next_page_visible_mark, $file, @link);
+		&add_link_tag('next', $file, @link);
+	    } else {
+		($NEXT, $NEXT_TITLE) = ('','');
+		$nextfile = $file;
+	    }
+	    if ((!$NEXT || $NEXT =~ /next_page_inactive_visible_mark/)&&(@tmp_keys)) {
+		# the required `next' link may be several sub-sections along
+		while ((@tmp_keys)&&(($MAX_SPLIT_DEPTH < $nextdepth+1)||($nextfile eq $file))) {
+		    $nextkey = shift @tmp_keys;
+		    ($nextdepth, $nextfile,$nexttitle,$nextbody) = split($delim,$section_info{$nextkey});
+		    if ($nextbody =~ /external/) {
+			$nextfile = $file;
+			next;
+		    };
+		    print ",";
+		    print STDOUT "\n $nextkey" if ($VERBOSITY > 3);
+		}
+		@link = split(' ',$nextkey);
+		if (($nextkey)&&($nextdepth<$MAX_SPLIT_DEPTH)) {
+		    ($NEXT, $NEXT_TITLE) =
+			&add_link($next_page_visible_mark, $file, @link);
+		    &add_link_tag('next', $file, @link);
+		} else {
+		    ($NEXT, $NEXT_TITLE) = ($NEXT_GROUP, $NEXT_GROUP_TITLE);
+		    $NEXT =~ s/next_page_(inactive_)?visible_mark/next_page_$1visible_mark/;
+		    ($PREVIOUS, $PREVIOUS_TITLE) = ($PREVIOUS_GROUP, $PREVIOUS_GROUP_TITLE);
+		    $PREVIOUS =~ s/previous_(inactive_)?visible_mark/previous_page_$1visible_mark/;
+		}
+	    }
+	    unshift (@tmp_keys,$nextkey) if ($nextkey);
+#
+	    $top_navigation = (defined(&top_navigation_panel) ?
+			       &top_navigation_panel : &navigation_panel)
+		unless $NO_NAVIGATION;
+	    $bot_navigation = (defined(&bot_navigation_panel) ?
+			       &bot_navigation_panel : &navigation_panel)
+		unless $NO_NAVIGATION;
+	    local($end_navigation) = "\n<!--End of Navigation Panel-->\n";
+	    if ($USING_STYLES) {
+		$top_navigation = "\n".'<DIV CLASS="navigation">' . $top_navigation
+			if $top_navigation;
+		$bot_navigation = "\n".'<DIV CLASS="navigation">' . $bot_navigation
+			if $bot_navigation;
+		$end_navigation = '</DIV>' . $end_navigation;
+		$env_style{'navigation'} = " ";
+	    }
+
+	    $header = &make_head_and_body($title, $body);
+	    $header = join('', $header, $top_navigation, $end_navigation) if ($top_navigation);
+
+	    local($this_file) = $file;
+	    if ($MULTIPLE_FILES && $ROOTED) {
+		if ($this_file =~ /\Q$dd\E([^$dd$dd]+)$/) { $this_file = $1 }
+	    }
+	    &slurp_input($this_file);
+	    open(OUTFILE, ">$this_file")
+                || die "\nError: Cannot write file '$this_file': $!\n";
+
+	    if (($INDEX) && ($SHORT_INDEX) && ($SEGMENT eq 1)) {
+		&make_index_segment($title,$file); }
+
+	    local($child_star,$child_links);
+	    local($CURRENT_FILE) = $this_file; # ensure $CURRENT_FILE is set correctly
+	    if (/$childlinks_on_mark\#(\d)\#/) { $child_star = $1 }
+	    $child_links = &add_child_links('',$file, $depth, $child_star,$key, @keys)
+		unless (/$childlinks_null_mark\#(\d)\#/);
+	    if (($child_links)&&(!/$childlinks_mark/)&&($MAX_SPLIT_DEPTH > 1)) {
+		if ($depth < $MAX_SPLIT_DEPTH -1) {
+		    $_ = join('', $header, $_, &child_line(), $childlinks_mark, "\#0\#" );
+		} else {
+		    $_ = join('', $header, "\n$childlinks_mark\#0\#", &upper_child_line(), $_ );
+		}
+	    } else {
+		$_ = join('', $header, $_ );
+	    }
+	    $flag = (($BOTTOM_NAVIGATION || &auto_navigation) && $bot_navigation);
+	    $_ .= $bot_navigation . $end_navigation if ($flag &&($bot_navigation));
+	    $_ .= &child_line() unless $flag;
+	    print STDOUT "\n *** replace markers *** " if ($VERBOSITY > 1);
+	    &replace_markers;
+	    print STDOUT "\n *** post-post-process *** " if ($VERBOSITY > 1);
+	    &post_post_process if (defined &post_post_process);
+	    &adjust_encoding;
+	    print OUTFILE $_;
+	    print OUTFILE &make_address;
+	    close OUTFILE;
+	    $done{$file}++;
+	}
+    }
+    &post_process_footnotes if ($footfile);
+}
+
+sub adjust_encoding {
+    &convert_to_utf8($_) if ($USE_UTF);
+    &lowercase_tags($_) if $LOWER_CASE_TAGS;
+}
+
+sub post_replace_markers {
+    # MRO: replaced $* with /m
+    # clean up starts and ends of  P, BR and DIV tags
+    s/(<\/?(P|BR|DIV)>)\s*(\w)/$1\n$3/gom unless ($file eq $citefile);
+    s/([^\s])(<(BR|DIV))/$1\n$2/gom unless ($file eq $citefile);
+    local($keep,$after);
+
+    # anchor images when otherwise there is an invisible-anchor
+#    s/(<A[^>]*>)\&\#160;<\/A>\s?(<(P|DIV)[^>]*>)\s*(<IMG[^>]*>)\s*(<\/(P|DIV)>)/
+    s/(<A[^>]*>)($anchor_mark|$anchor_invisible_mark)<\/A>\s?(<(P|DIV)[^>]*>)\s*(<IMG[^>]*>)\s*(<\/(P|DIV)>)/
+	do{ $keep="$3$1$5<\/A>";
+	    $after = $6;
+	    join('',$keep, &after_punct_break($after), $after);
+	} /egom;
+
+    # absorb named anchor (e.g. from index-entry) into preceding or following anchor
+#    s/(<A NAME=\"[^\"]+\")>\ <\/A>\s*\b?<A( HREF=\"[^\"]+\">)/$1$2/gom;
+#    s/(<A HREF=\"[^\"]+\")(>\s*\b?([^<]+|<([^>\/]+|\/[^>A]+)>\s*)*<\/A>)\s*\b?<A( NAME=\"[^\"]+\")>\ <\/A>/$1$5$2/gom;
+
+    # clean up empty table cells
+    s/(<TD[^>]*>)\s*(<\/TD>)/<TD>$2/gom;
+
+    # clean up list items (only desirable in the bibliography ?)
+    # s/\n<P>(<DT[^>]*>)/\n<P><\/P>\n$1/gom;
+
+    # remove blank lines and comment-markers
+#    s/\n\n/\n/g;  # no, cause this kills intended ones in verbatims
+    s/$comment_mark(\d+\n?)?//gm;
+    s/\"/"/gm;  # replace  "  entities
+
+    # italic \LaTeX looks bad
+    s:<(I|EM)>(($Laname|$AmSname)?$TeXname)</\1>:$2:gm;
+}
+
+sub lowercase_tags {
+    # MRO: modified to use $_[0]
+    # local(*stream) = @_;
+    my ($tags,$attribs);
+    $_[0] =~ s!<(/?\w+)( [^>]*)?>!
+	$tags = $1; $attribs = $2;
+	$attribs =~ s/ ([\w\d-]+)(=| |$)/' '.lc($1).$2/eg;
+	join('', '<', lc($tags) , $attribs , '>')!eg;
+}
+
+sub after_punct_break {
+    # MRO: modified to use $_[0]
+    # local(*stream) = @_;
+#    $stream =~ s/^([ \t]*)([,;\.\)\!\"\'\?])[ \t]*(\n)?/(($2)? "$2" : "$1")."\n"/em;
+#    $stream;
+    $_[0] =~ s/^([ \t]*)([,;\.\)\!\"\'\?\>]|\>)[ \t]*(\n)?//em;
+    ($2 ? $2 : $1)."\n";
+}
+
+sub make_index_segment {
+    local($title,$file)= @_ ;
+#JCL(jcl-tcl)
+#    s/<[^>]*>//g;
+#
+    $index_segment{$PREFIX} = "$title";
+    if (!($ref_files{"segment"."$PREFIX"} eq "$file")) {
+	$ref_files{"segment"."$PREFIX"} = "$file";
+	$changed = 1
+    }
+    $SEGMENT = 2;
+}
+
+
+sub add_link {
+    # Returns a pair (iconic link, textual link)
+    local($icon, $current_file, @link) = @_;
+    local($dummy, $file, $title, $lbody) = split($delim,$section_info{join(' ', at link)});
+    if ($lbody =~ /external/) { return ('','') };
+
+#    local($dummy, $file, $title) = split($delim,$toc_section_info{join(' ', at link)});
+
+    if ($MULTIPLE_FILES && $ROOTED && $file) {
+        if (!($DESTDIR =~ /\Q$FIXEDDIR\E[$dd$dd]?$/)) { $file = "..$dd$file" }
+    }
+#    if ($title && ($file ne $current_file || $icon ne $up_visible_mark)) {
+    if ($title && ($file ne $current_file)) {
+	#RRM: allow user-customisation of the link-text; thanks Dan Young
+	if (defined &custom_link_hook ) {
+	    $title = &custom_link_hook($title,$toc_section_info{join(' ', at link)});
+	} else {
+            $title = &purify($title);
+	    $title = &get_first_words($title, $WORDS_IN_NAVIGATION_PANEL_TITLES);
+	}
+	return ("\n".&make_href($file, $icon), &make_href($file, "$title"))
+    }
+#    elsif ($icon eq $up_visible_mark && $file eq $current_file && $EXTERNAL_UP_LINK) {
+    elsif ($icon eq $up_visible_mark && $EXTERNAL_UP_LINK) {
+ 	return ("\n".&make_href($EXTERNAL_UP_LINK, $icon),
+		&make_href($EXTERNAL_UP_LINK, "$EXTERNAL_UP_TITLE"))
+    }
+    elsif (($icon eq $previous_visible_mark || $icon eq $previous_page_visible_mark)
+    	&& $EXTERNAL_PREV_LINK && $EXTERNAL_PREV_TITLE) {
+	return ("\n".&make_href($EXTERNAL_PREV_LINK, $icon),
+		&make_href($EXTERNAL_PREV_LINK, "$EXTERNAL_PREV_TITLE"))
+    }
+    elsif (($icon eq $next_visible_mark ||  $icon eq $next_page_visible_mark)
+    	&& $EXTERNAL_DOWN_LINK && $EXTERNAL_DOWN_TITLE) {
+	return ("\n".&make_href($EXTERNAL_DOWN_LINK, $icon),
+		&make_href($EXTERNAL_DOWN_LINK, "$EXTERNAL_DOWN_TITLE"))
+    }
+    (&inactive_img($icon), "");
+}
+
+sub add_special_link { &add_real_special_link(@_) }
+sub add_real_special_link {
+    local($icon, $file, $current_file) = @_;
+    local($text);
+    if ($icon eq $contents_visible_mark) { $text = $toc_title }
+    elsif ($icon eq $index_visible_mark) { $text = $idx_title }
+    elsif ($icon eq $biblio_visible_mark) { $text = $bib_title }
+    (($file && ($file ne $current_file)) ? 
+    	("\n" . &make_href($file, $icon), 
+    	    ($text ? " ". &make_href($file, $text) : undef))
+    	: ( undef, undef ))
+}
+
+#RRM: add <LINK ...> tag to the HTML head.
+#     suggested by Marcus Hennecke
+#
+sub add_link_tag {
+    local($rel, $currentfile, @link ) = @_;
+#    local($dummy, $file, $title) = split($delim,$toc_section_info{join(' ', at link)});
+    local($dummy, $file, $title) = split($delim,$section_info{join(' ', at link)});
+    ($dummy, $file, $title) = split($delim,$toc_section_info{join(' ', at link)})
+	unless ($title);
+
+    if ($MULTIPLE_FILES && $ROOTED && $file) {
+        if (!($DESTDIR =~ /\Q$FIXEDDIR\E[$dd$dd]?$/)) { $file = "..$dd$file" }
+    }
+    if ($file && !($file eq $currentfile) && (!$NO_NAVIGATION)) {
+	#RRM: allow user-customisation of the REL attribute
+	if (defined &custom_REL_hook ) {
+	    $rel = &custom_REL_hook($rel,$toc_section_info{join(' ', at link)});
+	}
+        $more_links .= "\n<LINK REL=\"$rel\" HREF=\"$file\">";
+    }
+}
+
+sub remove_markers {
+# modifies $_
+    s/$lof_mark//go;
+    s/$lot_mark//go;
+    &remove_bbl_marks;
+    s/$toc_mark//go;
+    s/$idx_mark//go;
+    &remove_cross_ref_marks;
+    &remove_external_ref_marks;
+    &remove_cite_marks;
+    &remove_file_marks;
+# sensitive markers
+    &remove_image_marks;
+    &remove_icon_marks;
+    &remove_verbatim_marks;
+    &remove_verb_marks;
+    &remove_child_marks;
+# uncaught markers
+    s/$percent_mark/%/go;
+    s/$ampersand_mark/\&/go;
+    s/$comment_mark\s*(\d+\n?)?//sgo;
+    s/$caption_mark//go;
+    s/<tex2html[^>]*>//g;
+    s/$OP\d+\$CP//g;
+    $_;
+}
+
+sub replace_markers {
+    &find_quote_ligatures;
+    &replace_general_markers;
+    &text_cleanup;
+    # Must NOT clean the ~'s out of the navigation icons (in panel or text),
+    # and must not interfere with verbatim-like environments
+    &replace_sensitive_markers;
+    &replace_init_file_mark if (/$init_file_mark/);
+    &replace_file_marks;
+    &post_replace_markers;
+}
+
+sub replace_general_markers {
+    if (defined &replace_infopage_hook) {&replace_infopage_hook if (/$info_page_mark/);}
+    else { &replace_infopage if (/$info_page_mark/); }
+    if (defined &add_idx_hook) {&add_idx_hook if (/$idx_mark/);}
+    else {&add_idx if (/$idx_mark/);}
+
+    if ($segment_figure_captions) {
+#	s/$lof_mark/<UL>$segment_figure_captions<\/UL>/o
+#   } else { s/$lof_mark/<UL>$figure_captions<\/UL>/o }
+	s/$lof_mark/$segment_figure_captions/o
+    } else { s/$lof_mark/$figure_captions/o }
+    if ($segment_table_captions) {
+#	s/$lot_mark/<UL>$segment_table_captions<\/UL>/o
+#   } else { s/$lot_mark/<UL>$table_captions<\/UL>/o }
+	s/$lot_mark/$segment_table_captions/o
+    } else { s/$lot_mark/$table_captions/o }
+    &replace_morelinks();
+    if (defined &replace_citations_hook) {&replace_citations_hook if /$bbl_mark/;}
+    else {&replace_bbl_marks if /$bbl_mark/;}
+    if (defined &add_toc_hook) {&add_toc_hook if (/$toc_mark/);}
+    else {&add_toc if (/$toc_mark/);}
+    if (defined &add_childs_hook) {&add_childs_hook if (/$childlinks_on_mark/);}
+    else {&add_childlinks if (/$childlinks_on_mark/);}
+    &remove_child_marks;
+
+    if (defined &replace_cross_references_hook) {&replace_cross_references_hook;}
+    else {&replace_cross_ref_marks if /$cross_ref_mark||$cross_ref_visible_mark/;}
+    if (defined &replace_external_references_hook) {&replace_external_references_hook;}
+    else {&replace_external_ref_marks if /$external_ref_mark/;}
+    if (defined &replace_cite_references_hook) {&replace_cite_references_hook;}
+    else { &replace_cite_marks if /$cite_mark/; }
+    if (defined &replace_user_references) {
+ 	&replace_user_references if /$user_ref_mark/; }
+}
+
+sub replace_sensitive_markers {
+    if (defined &replace_images_hook) {&replace_images_hook;}
+    else {&replace_image_marks if /$image_mark/;}
+    if (defined &replace_icons_hook) {&replace_icons_hook;}
+    else {&replace_icon_marks if /$icon_mark_rx/;}
+    if (defined &replace_verbatim_hook) {&replace_verbatim_hook;}
+    else {&replace_verbatim_marks if /$verbatim_mark/;}
+    if (defined &replace_verb_hook) {&replace_verb_hook;}
+    else {&replace_verb_marks if /$verb_mark|$verbstar_mark/;}
+    s/;SPMdollar;/\$/g; s/;SPMtilde;/\~/g; s/;SPMpct;/\%/g;
+    s/;SPM/\&/go;
+    s/$percent_mark/%/go;
+    s/$ampersand_mark/\&/go;
+    #JKR: Turn encoded ~ back to normal
+    s/~/~/go;
+}
+
+sub find_quote_ligatures {
+    my $ent;
+
+# guillemets, governed by $NO_FRENCH_QUOTES
+    do {
+	$ent = &iso_map('laquo', "", 1);
+	if ($NO_UTF && !$USE_UTF && $ent=~/\&\#(\d+);/) {
+	    $ent='' if ($1 > 255);
+	}
+	s/((\&|;SPM)lt;){2}/$ent/ogs if $ent;
+	$ent = &iso_map('raquo', "", 1) if ($ent);
+	s/((\&|;SPM)gt;){2}/$ent/ogs if $ent;
+	# single guillemot chars cannot be easily implemented this way
+	# finding an approp regexp is work for the future
+    } unless ($NO_FRENCH_QUOTES);
+
+    $ent = &iso_map("gg", "", 1);
+    s/;SPMgg;/($ent ? $ent : '>>')/eg unless ($USE_NAMED_ENTITIES);
+    $ent = &iso_map("ll", "", 1);
+    s/;SPMll;/($ent ? $ent : '<<')/eg unless ($USE_NAMED_ENTITIES);
+
+    my $ldquo, $rdquo;
+# "curly" quotes, governed by  $USE_CURLY_QUOTES.
+    do {
+	$ldquo = &iso_map("ldquo", "", 1);
+	if ($NO_UTF && !$USE_UTF && $ldquo =~ /\&\#(\d+);/) {
+	    $ldquo = '' if ($1 > 255);
+	}
+	s/``/$ldquo/ogs if ($ldquo);
+	$rdquo = &iso_map("rdquo", "", 1) if ($ldquo);
+	s/''/$rdquo/ogs if ($rdquo);
+	
+	# single curly quotes cannot be easily implemented this way
+	# finding an approp regexp is work for the future
+    } if ($USE_CURLY_QUOTES);
+
+# "german" quotes, governed by  $NO_GERMAN_QUOTES.
+    do {
+	$ent = &iso_map('bdquo', "", 1);
+	if ($NO_UTF && !$USE_UTF && $ent =~ /\&\#(\d+);/) {
+	    $ent = '' if ($1 > 255);
+	}
+	s/,,/$ent/eg if $ent;
+
+	# closing upper quotes are not properly displayed in browsers
+	s/($ent[\w\s\&\#;']+)$ldquo/$1``/og
+		if ($USE_CURLY_QUOTES && $ldquo && $ent);
+    } unless ($NO_GERMAN_QUOTES);
+}
+
+sub add_childlinks {
+    local($before, $after, $star);
+    while (/$childlinks_on_mark\#(\d)\#/) {
+	$star = $1;
+	$before = $`;
+	$after = $';
+	$before =~ s/\n\s*$//;
+	$_ = join('', $before, "\n", $child_links, $after);
+    }
+}
+
+sub replace_infopage {
+    local($INFO)=1 if !(defined $INFO);
+    if ($INFO == 1) {
+    	local($title);
+	if ((defined &do_cmd_infopagename)||$new_command{'infopagename'}) {
+	    local($br_id)=++$global{'max_id'};
+	    $title = &translate_environments("$O$br_id$C\\infopagename$O$br_id$C");
+	} else { $title = $info_title }
+	    if ($MAX_SPLIT_DEPTH <= $section_commands{$outermost_level}) {
+	        $_ =~ s/(<HR[^>]*>\s*)?$info_title_mark/
+		    ($1? $1 : "\n<HR>")."\n<H2>$title<\/H2>"/eog;
+	    } else {
+	        $_ =~ s/$info_title_mark/"\n<H2>$title<\/H2>"/eog;
+	    }
+    }
+    while (/$info_page_mark/o) {
+	$_ = join('', $`, &do_cmd_textohtmlinfopage, $');
+    }
+}
+
+sub replace_init_file_mark {
+    local($init_file, $init_contents, $info_line)=($INIT_FILE,'','');
+    if (-f $init_file) {
+    } elsif (-f "$orig_cwd$dd$init_file") {
+	$init_file = $orig_cwd.$dd.$init_file;
+    } else {
+	s/$init_file_mark//g;
+	return();
+    }
+    if(open(INIT, "<$init_file")) {
+        foreach $info_line (<INIT>) {
+	    $info_line =~ s/[<>"&]/'&'.$html_special_entities{$&}.';'/eg;
+	    $init_contents .= $info_line;
+	}
+        close INIT;
+    } else {
+        print "\nError: Cannot read '$init_file': $!\n";
+    }
+    s/$init_file_mark/\n<BLOCKQUOTE><PRE>\n$init_contents\n<\/PRE><\/BLOCKQUOTE>\n/g;
+}
+
+sub replace_morelinks {
+    $_ =~ s/$more_links_mark/$more_links/e;
+}
+
+# This code is extremely inefficient. At least the subtrees should be
+# filtered according to $MAX_LINK_DEPTH before going into the
+# inner loops.
+# RRM: revamped parts, for $TOC_STARS, fixing some errors.
+#
+sub add_child_links { &add_real_child_links(@_) }
+sub add_real_child_links {
+    local($exclude, $base_file, $depth, $star, $current_key, @keys) = @_;
+    local $min_depth = $section_commands{$outermost_level} - 1;
+    return ('') if ((!$exclude)&&(!$LEAF_LINKS)&&($depth >= $MAX_SPLIT_DEPTH));
+    if ((!$depth)&&($outermost_level)) { $depth = $min_depth }
+
+    local($_, $child_rx, @subtree, $next, %open, @roottree);
+    local($first, $what, $pre, $change_key, $list_class);
+    $childlinks_start = "<!--Table of Child-Links-->";
+    $childlinks_end = "<!--End of Table of Child-Links-->\n";
+    $child_rx = $current_key;
+    $child_rx =~ s/( 0)*$//;	# Remove trailing 0's
+    if ((!$exclude)&&($depth < $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH -1 )
+#	    &&($depth >= $MAX_SPLIT_DEPTH-1)) {
+	    &&($depth > $min_depth)) {
+	if ((defined &do_cmd_childlinksname)||$new_command{'childlinksname'}) {
+	    local($br_id)=++$global{'max_id'};
+	    $what = &translate_environments("$O$br_id$C\\childlinksname$O$br_id$C");
+	} else {
+	    $what = "<strong>$child_name</strong>";
+	}
+	$list_class = ' CLASS="ChildLinks"' if ($USING_STYLES);
+	$first = "$childlinks_start\n<A NAME=\"CHILD_LINKS\">$what<\/A>\n";
+    } elsif ($exclude) {
+	# remove any surrounding braces
+	$exclude =~ s/^($O|$OP)\d+($C|$CP)|($O|$OP)\d+($C|$CP)$//g;
+	# Table-of-Contents
+	$list_class = ' CLASS="TofC"' if ($USING_STYLES);
+	$childlinks_start = "\n<!--Table of Contents-->\n";
+	$childlinks_end = "<!--End of Table of Contents-->";
+	$first = "$childlinks_start";
+    } else {
+	$list_class = ' CLASS="ChildLinks"' if ($USING_STYLES);
+	$first = "$childlinks_start\n"
+	    . ($star ? '':"<A NAME=\"CHILD_LINKS\">$anchor_mark<\/A>\n");
+    }
+    my $startlist, $endlist;
+    $startlist = "<UL$list_class>" unless $CHILD_NOLIST;
+    $endlist = '</UL>' unless $CHILD_NOLIST;
+    my $alt_item = '<BR> <BR>'."\n";
+    my $outer_item = ($CHILD_NOLIST ? $alt_item : '<LI>');
+    my $inner_item = '<LI>';
+    my $inner_end = '</UL><BR>';
+
+    # collect the relevant keys...
+    foreach $next (@keys) {
+	if ($MULTIPLE_FILES && $exclude) {
+	    # ...all but with this document as the root
+	    if ($next =~ /^$THIS_FILE /) {
+#		# make current document the root
+#	    	$change_key = '0 '.$';
+		push(@roottree,$next);
+		print "\n$next : m-root" if ($VERBOSITY > 3);
+	    } else {
+		push(@subtree,$next);
+		print "\n$next : m-sub" if ($VERBOSITY > 3);
+	    }
+	} elsif (($next =~ /^$child_rx /)&&($next ne $current_key)) {
+	# ...which start as $current_key
+	    push(@subtree,$next);
+	    print "\n$next : sub $child_rx" if ($VERBOSITY > 3);
+	} else {
+	    print "\n$next : out $current_key" if ($VERBOSITY > 3);
+	}
+    }
+    if (@subtree) { @subtree = sort numerically @subtree; }
+    if (@roottree) {
+    	@roottree = sort numerically @roottree;
+    	@subtree = ( @roottree, @subtree );
+    }
+    # @subtree now contains the subtree rooted at the current node
+
+    local($countUL); #counter to ensure correct tag matching
+    my $root_file, $href;
+    if (@subtree) {
+	local($next_depth, $file, $title, $sec_title, $star, $ldepth,$this_file, $prev_file);
+	$ldepth = $depth;
+	$prev_file = $base_file;
+#	@subtree = sort numerically @subtree;
+	foreach $next (@subtree) {
+	    $title = '';
+	    if ($exclude) {
+		# making TOC
+		($next_depth, $file, $sec_title) =
+			split($delim,$section_info{$next});
+		($next_depth, $file, $title, $star) =
+			split($delim,$toc_section_info{$next});
+		# use the %section_info  title, in case there are images
+		$title = $sec_title if ($sec_title =~ /image_mark>\#/);
+	    } else {
+		# making mini-TOC i.e. the child-links tables
+		$star = '';
+		($next_depth, $file, $title) =
+			split($delim,$section_info{$next});
+	    }
+	    $root_file = $file unless $root_file;
+	    if ($root_file && $root_file =~ /_mn\./) { $root_file=$` };
+	    # remove any surrounding braces
+	    $title =~ s/^($O|$OP)\d+($C|$CP)|($O|$OP)\d+($C|$CP)$//g;
+	    next if ($exclude && $title =~ /^$exclude$/);
+	    if (!$title) {
+		($next_depth, $file, $title, $star) =
+			split($delim,$toc_section_info{$next});
+	    }
+	    $this_file = $file;
+	    $title = "\n".$title if !($title =~/^\n/);
+	    next if ( $exclude &&(				# doing Table-of-Contents
+		( $TOC_DEPTH &&($next_depth > $TOC_DEPTH))	# and  too deep
+		||($star && !$TOC_STARS ) ));			# or no starred sections 
+	    $file = "" if (!$MAX_SPLIT_DEPTH); # Martin Wilck
+	    next if ($exclude && !$MULTIPLE_FILES &&($title =~ /^\s*$exclude\s*$/));
+	    next if (!$exclude && $next_depth > $MAX_LINK_DEPTH + $depth);
+	    print "\n$next :" if ($VERBOSITY > 3);
+	    if ($this_file =~ /^(\Q$prev_file\E|\Q$base_file\E)$/) {
+		$file .= join('', "#SECTION", split(' ', $next));
+	    } else { $prev_file = $file }
+
+	    if (!$next_depth && $MULTIPLE_FILES) { ++$next_depth }
+	    local($num_open) = (split('/',%open))[0];
+	    if ((($next_depth > $ldepth)||$first)
+		&& ((split('/',%open))[0] < $MAX_LINK_DEPTH + $depth )
+		) {
+		# start a new <UL> list
+		if ($first) {
+		    $_ = "$first\n$startlist\n"; $countUL++;
+		    local $i = 1;
+		    while ($i <= $ldepth) {
+			$open{$i}=0; $i++
+		    }
+		    $first = '';	# include NAME tag first time only
+		    while ($i < $next_depth) {
+			$open{$i}=1; $i++; 
+			$_ .= ($countUL >1 ? $inner_item : $outer_item)."<UL>\n";
+			$countUL++;
+		    }
+		} else {
+		    $_ .= "<UL>\n"; $countUL++;
+		}
+		$ldepth = $next_depth;
+		$open{$ldepth}++; 
+		# append item to this list
+		print " yes " if ($VERBOSITY > 3);
+		if (defined &add_frame_child_links) {
+		    $href = &make_href($file,$title);
+		    if ($href =~ s/($root_file)_mn/$1_ct/) {
+			$href =~ s/(target=")main(")/$1contents$2/i;
+		    };
+		    $_ .= ($countUL >1 ? $inner_item : $outer_item)
+			. $href . "\n";
+		} else {
+		    $_ .= ($countUL >1 ? $inner_item : $outer_item)
+			. &make_href($file,$title) . "\n";
+		}
+	    }
+	    elsif (($next_depth)&&($next_depth <= $ldepth)
+		&&((split('/',%open))[0] <= $MAX_LINK_DEPTH + $depth )
+		) {
+		# append item to existing <UL> list
+		while (($next_depth < $ldepth) && %open ) {
+		# ...closing-off any nested <UL> lists
+		    if ($open{$ldepth}) {
+			if (!(defined $open{$next_depth}))  {
+			    $open{$next_depth}++;
+			} else {
+			    $_ .= ($countUL==2 ? $inner_end : '</UL>')."\n";
+			    $countUL--;
+			}
+			delete $open{$ldepth};
+		    };
+		    $ldepth--;
+		}
+		$ldepth = $next_depth;
+		print " yes" if ($VERBOSITY > 3);
+		if (defined &add_frame_child_links) {
+		    $href = &make_href($file,$title);
+		    if ($href =~ s/($root_file)_mn/$1_ct/) {
+			$href =~ s/(target=")main(")/$1contents$2/i;
+		    };
+		    $_ .= ($countUL >1 ? $inner_item : $outer_item)
+			. $href . "\n";
+		} else {
+		    $_ .= ($countUL >1 ? $inner_item : $outer_item)
+			. &make_href($file,$title) . "\n";
+		}
+	    } else {
+		# ignore items that are deeper than $MAX_LINK_DEPTH
+		print " no" if ($VERBOSITY > 3);
+	    }
+	}
+
+	if (%open) {
+	# close-off any remaining <UL> lists
+	    $countUL-- if $CHILD_NOLIST;
+	    local $cnt = (split('/',%open))[0];
+	    local $i = $cnt;
+		while ($i > $depth) { 
+		    if ($open{$i}) {
+			$_ .= '</UL>' if $countUL;
+			$countUL--;
+			delete $open{$i};
+		    }
+		$i--;
+	    }
+	}
+    }
+    # just in case the count is wrong
+    $countUL-- if ($CHILD_NOLIST && $countUL > 0);
+    $countUL = '' if ($countUL < 0);
+    while ($countUL) { $_ .= '</UL>'; $countUL-- }
+    ($_ ? join('', $_, "\n$childlinks_end") : '');
+}
+
+sub child_line {($CHILDLINE) ? "$CHILDLINE" : "<BR>\n<HR>";}
+sub upper_child_line { "<HR>\n"; }
+
+sub adjust_root_keys {
+    return() unless ($MULTIPLE_FILES && $ROOTED);
+    local($next,$change_key,$current_rx);
+    local(@keys) = (keys %toc_section_info);
+    
+    local($current_key) = join(' ', at curr_sec_id);
+    $current_key =~ /^(\d+ )/;
+    $current_rx = $1;
+    return() unless $current_rx;
+
+    # alter the keys which start as $current_key
+    foreach $next (@keys) {
+	if ($next =~ /^$current_rx/) {
+	    # make current document the root
+	    $change_key = '0 '.$';
+	    $toc_section_info{$change_key} = $toc_section_info{$next};
+	    $section_info{$change_key} = $section_info{$next};
+#	    if (!($next eq $current_key)) {
+#		$toc_section_info{$next} = $section_info{$next} = '';
+#	    }
+	}
+    }
+}
+
+sub top_page {
+    local($file, @navigation_panel) = @_;
+    # It is the top page if there is a link to itself
+    join('', @navigation_panel) =~ /$file/;
+}
+
+# Sets global variable $AUX_FILE
+sub process_aux_file {
+    local(@exts) = ('aux');
+    push(@exts, 'lof') if (/\\listoffigures/s);
+    push(@exts, 'lot') if (/\\listoftables/s);
+    local($_, $status);		# To protect caller from &process_ext_file
+    $AUX_FILE = 1;
+    foreach $auxfile (@exts) {
+	$status = &process_ext_file($auxfile);
+	if ($auxfile eq "aux" && ! $status) {
+	    print "\nCannot open $FILE.aux $!\n";
+	    &write_warnings("\nThe $FILE.aux file was not found," .
+			    " so sections will not be numbered \nand cross-references "
+			    . "will be shown as icons.\n");
+	}
+    }
+    $AUX_FILE = 0;
+}
+
+sub do_cmd_htmlurl {
+    local($_) = @_;
+    local($url);
+    $url = &missing_braces unless (
+	(s/$next_pair_pr_rx/$br_id=$1;$url=$2;''/e)
+	||(s/$next_pair_rx/$br_id=$1;$url=$2;''/e));
+    $url =~ s/\\(html)?url\s*($O|$OP)([^<]*)\2/$3/;
+    $url =~ s/\\?~/;SPMtilde;/og;
+    join('','<TT>', &make_href($url,$url), '</TT>', $_);
+}
+sub do_cmd_url { &do_cmd_htmlurl(@_) }
+
+sub make_href { &make_real_href(@_) }
+sub make_real_href {
+    local($link, $text) = @_;
+    $href_name++;
+    my $htarget = '';
+    $htarget = ' target="'.$target.'"'
+	if (($target)&&($HTML_VERSION > 3.2));
+    #HWS: Nested anchors not allowed.
+    $text =~ s/<A .*><\/A>//go;
+    #JKR: ~ is handled different - ~ is turned to ~ later.
+    #$link =~ s/~/$percent_mark . "7E"/geo;
+    if ($text eq $link) { $text =~ s/~/~/g; }
+    $link =~ s/~/~/g;
+    # catch \url or \htmlurl
+    $link =~ s/\\(html)?url\s*(($O|$OP)\d+($C|$CP))([^<]*)\2/$5/;
+    $link =~ s:(<TT>)?<A [^>]*>([^<]*)</A>(</TT>)?(([^<]*)|$):$2$4:;
+    # this should not be here; else TOC, List of Figs, etc. fail:
+    # $link =~ s/^\Q$CURRENT_FILE\E(\#)/$1/ unless ($SEGMENT||$SEGMENTED);
+    $text = &simplify($text);
+    "<A NAME=\"tex2html$href_name\"$htarget\n  HREF=\"$link\">$text</A>";
+}
+
+sub make_href_noexpand { # clean
+    my ($link, $name, $text) = @_;
+    do {$name = "tex2html". $href_name++} unless $name;
+    #HWS: Nested anchors not allowed.
+    $text =~ s/<A .*><\/A>//go;
+    #JKR: ~ is handled different - ~ is turned to ~ later.
+    #$link =~ s/~/$percent_mark . "7E"/geo;
+    if ($text eq $link) { $text =~ s/~/~/g; }
+    $link =~ s/~/~/g;
+    # catch \url or \htmlurl
+    $link =~ s/\\(html)?url\s*(($O|$OP)\d+($C|$CP))([^<]*)\2/$5/;
+    $link =~ s:(<TT>)?<A [^>]*>([^<]*)</A>(</TT>)?(([^<]*)|$):$2$4:;
+    "<A NAME=\"$name\"\n HREF=\"$link\">$text</A>";
+}
+
+sub make_named_href {
+    local($name, $link, $text) = @_;
+    $text =~ s/<A .*><\/A>//go;
+    $text = &simplify($text);
+    if ($text eq $link) { $text =~ s/~/~/g; }
+    $link =~ s/~/~/g;
+    # catch \url or \htmlurl
+    $link =~ s/\\(html)?url\s*(($O|$OP)\d+($C|$CP))([^<]*)\2/$5/;
+    $link =~ s:(<TT>)?<A [^>]*>([^<]*)</A>(</TT>)?(([^<]*)|$):$2$4:;
+    if (!($name)) {"<A\n HREF=\"$link\">$text</A>";}
+    elsif ($text =~ /^\w/) {"<A NAME=\"$name\"\n HREF=\"$link\">$text</A>";}
+    else {"<A NAME=\"$name\"\n HREF=\"$link\">$text</A>";}
+}
+
+sub make_section_heading {
+    local($text, $level, $anchors) = @_;
+    local($elevel) = $level; $elevel =~ s/^(\w+)\s.*$/$1/;
+    local($section_tag) = join('', @curr_sec_id);
+    local($align,$pre_anchors);
+
+    # separate any invisible anchors or alignment, if this has not already been done
+    if (!($anchors)){ ($anchors,$text) = &extract_anchors($text) }
+    else { 
+	$anchors =~ s/(ALIGN=\"\w*\")/$align = " $1";''/e;
+	$align = '' if ($HTML_VERSION < 2.2);
+	$anchors = &translate_commands($anchors) if ($anchors =~ /\\/);
+    }
+
+    # strip off remains of bracketings
+    $text =~ s/$OP\d+$CP//g;
+    if (!($text)) {
+	# anchor to a single `.' only
+	$text = "<A NAME=\"SECTION$section_tag\">.</A>$anchors\n";
+    } elsif ($anchors) {
+#	# put anchors immediately after, except if title is too long
+#	if ((length($text)<60 )&&(!($align)||($align =~/left/))) {
+#	    $text = "<A NAME=\"SECTION$section_tag\">$text</A>\n" . $anchors;
+	# ...put anchors preceding the title, on a separate when left-aligned
+#	} else {
+	    $text = "<A NAME=\"SECTION$section_tag\">$anchor_invisible_mark</A>$anchors"
+		. (!($align)||($align =~ /left/i ) ? "<BR>" : "") . "\n". $text;
+#	}
+    } elsif (!($text =~ /<A[^\w]/io)) {
+	# no embedded anchors, so anchor it all
+	$text = "<A NAME=\"SECTION$section_tag\">\n" . $text . "</A>";
+    } else {
+	# there are embedded anchors; these cannot be nested
+	local ($tmp) = $text;
+	$tmp =~ s/<//o ;	# find 1st <
+	if ($`) {		# anchor text before the first < 
+#	    $text = "<A NAME=\"SECTION$section_tag\">\n" . $` . "</A>\n<" . $';
+	    $text = "<A NAME=\"SECTION$section_tag\">\n" . $` . "</A>";
+	    $pre_anchors = "<" . $';
+	    if ($pre_anchors =~ /^(<A NAME=\"[^\"]+>${anchor_invisible_mark}<\/A>\s*)+$/) {
+		$pre_anchors .= "\n"
+	    } else { $text .= $pre_anchors; $pre_anchors = '' }
+	} else {
+	    # $text starts with a tag
+	    local($after,$tmp) = ($','');
+	    if ( $after =~ /^A[^\w]/i ) {	
+		# it is an anchor already, so need a separate line
+		$text = "<A NAME=\"SECTION$section_tag\">$anchor_invisible_mark</A><BR>\n$text";
+	    } else {
+		# Is it a tag enclosing the anchor ?
+		$after =~ s/^(\w)*[\s|>]/$tmp = $1;''/eo;
+		if ($after =~ /<A.*<\/$tmp>/) {
+		    # it encloses an anchor, so use anchor_mark + break
+		    $text = "<A NAME=\"SECTION$section_tag\">$anchor_invisible_mark</A><BR>\n$text";
+		} else {
+		    # take up to the anchor
+		    $text =~ s/^(.*)<A([^\w])/"<A NAME=\"SECTION$section_tag\">$1<A$2"/oe;
+		}
+	    }
+	}
+    }
+    "$pre_anchors\n<$level$align>$text\n<\/$elevel>";
+}
+
+sub do_cmd_captionstar { &process_cmd_caption(1, @_) }
+sub do_cmd_caption { &process_cmd_caption('', @_) }
+sub process_cmd_caption {
+    local($noLOTentry, $_) = @_;
+    local($text,$opt,$br_id, $contents);
+    local($opt) = &get_next_optional_argument;
+    $text = &missing_braces unless (
+	(s/$next_pair_pr_rx/$br_id=$1;$text=$2;''/e)
+	||(s/$next_pair_rx/$br_id=$1;$text=$2;''/e));
+
+    # put it in $contents, so &extract_captions can find it
+    local($contents) = join('','\caption', ($opt ? "[$opt]" : '')
+	   , "$O$br_id$C" , $text , "$O$br_id$C");
+
+    # $cap_env is set by the surrounding figure/table
+    &extract_captions($cap_env);
+    $contents.$_;
+}
+
+sub extract_captions {
+    # Uses and modifies $contents and $cap_anchors, defined in translate_environments
+    # and modifies $figure_captions, $table_captions, $before and $after
+    # MRO: no effect! local($env,*cap_width) = @_;
+    local($env) = @_;
+    local(%captions, %optional_captions, $key, $caption, $optional_caption,
+	  $item, $type, $list, $extra_list, $number, @tmp, $br_id, $_);
+    # associate the br_id of the caption with the argument of the caption
+    $contents =~ s/$caption_rx(\n)?/do {
+	$key = $9; $caption = $10; $optional_caption = $3;
+	$key = &filter_caption_key($key) if (defined &filter_caption_key);
+	$optional_captions{$key} = $optional_caption||$caption;
+	$captions{$key} = $10; ''}/ego;
+#	$captions{$9} = $10; $caption_mark }/ego;
+    $key = $caption = $optional_caption = '';
+
+    #catch any  \captionwidth  settings that may remain
+    $contents =~ s/$caption_width_rx(\n)?/&translate_commands($&);''/eo;
+    
+#    $after = join("","<P>",$after) if ($&);
+#    $before .= "</P>" if ($&);
+    #JKR: Replaced "Figure" and "Table" with variables (see latex2html.config too).
+    if ($env eq 'figure') {
+	if ((defined &do_cmd_figurename)||$new_command{'figurename'}){
+	    $br_id = ++$global{'max_id'};
+	    $type = &translate_environments("$O$br_id$C\\figurename$O$br_id$C")
+		unless ($noLOFentry);
+	} else { $type = $fig_name }
+	$list = "\$figure_captions";
+#	$extra_list = "\$segment_figure_captions" if ($figure_table_captions);
+	$extra_list = "\$segment_figure_captions" if ($segment_figure_captions);
+    }
+    elsif ($env =~ /table/) {
+	if ((defined &do_cmd_tablename)||$new_command{'tablename'}) {
+	    $br_id = ++$global{'max_id'};
+	    $type = &translate_environments("$O$br_id$C\\tablename$O$br_id$C")
+		unless ($noLOTentry);
+	} else { $type = $tab_name }
+	$list = "\$table_captions";
+	$extra_list = "\$segment_table_captions" if ($segment_table_captions);
+    }
+
+#    $captions = "";
+    $cap_anchors = "";
+    local($this);
+    foreach $key (sort {$a <=> $b;} keys %captions){ # Sort numerically
+	$this = $captions{$key};
+	$this =~ s/\\label\s*($O\d+$C)[^<]+\1//g; # remove \label commands
+       	local($br_id) = ++$global{'max_id'};
+	local($open_tags_R) = []; # locally, initially no style
+	$caption = &translate_commands(
+	     &translate_environments("$O$br_id$C$this$O$br_id$C"));
+
+	# same again for the optional caption
+	$this = $optional_captions{$key};
+	$this =~ s/\\label\s*($O\d+$C)[^<]+\1//g; # remove \label commands
+	local($open_tags_R) = []; local($br_id) = ++$global{'max_id'};
+	$this = &translate_environments("$O$br_id$C$this$O$br_id$C");
+	$optional_caption = &translate_commands($this);
+
+	$cap_anchors .= "<A NAME=\"$key\">$anchor_mark</A>";
+	$_ = $optional_caption || $caption;
+
+
+	# split at embedded anchor or citation marker
+	local($pre_anchor,$post_anchor) = ('','');
+	if (/\s*(<A\W|\#[^#]*\#<tex2html_cite_[^>]*>)/){
+	    $pre_anchor = "$`";
+	    $post_anchor = "$&$'";
+	    $pre_anchor = $anchor_invisible_mark
+		unless (($pre_anchor)||($SHOW_SECTION_NUMBERS));
+	} else {
+	    $pre_anchor = "$_";
+	}
+
+#JCL(jcl-tcl)
+##	&text_cleanup;
+##	$_ = &encode_title($_);
+##	s/ //g;            # HWS - LaTeX changes ~ in its .aux files
+#	$_ = &sanitize($_);
+##
+#	$_ = &revert_to_raw_tex($_);
+
+	#replace image-markers by the image params
+	s/$image_mark\#([^\#]+)\#/&purify_caption($1)/e;
+
+	local($checking_caption, $cap_key) = (1, $_);
+	$cap_key = &simplify($cap_key);
+	$cap_key = &sanitize($cap_key);
+	@tmp = split(/$;/, eval ("\$encoded_$env" . "_number{\$cap_key}"));
+	$number = shift(@tmp);
+	$number = "" if ($number eq "-1");
+
+	if (!$number) {
+	    $cap_key = &revert_to_raw_tex($cap_key);
+	    @tmp = split(/$;/
+	       , eval ("\$encoded_$env" . "_number{\$cap_key}"));
+	    $number = shift(@tmp);
+	    $number = "" if ($number eq "-1");
+	}
+
+	#resolve any embedded cross-references first
+	$checking_caption = '';
+	$_ = &simplify($_);
+	$_ = &sanitize($_);
+
+
+#	@tmp = split(/$;/, eval ("\$encoded_$env" . "_number{\$_}"));
+#	$number = shift(@tmp);
+#	$number = "" if ($number eq "-1");
+
+	&write_warnings(qq|\nNo number for "$_"|) if (! $number);
+	eval("\$encoded_$env" . "_number{\$_} = join(\$;, \@tmp)");
+
+	$item = join( '', ($SHOW_SECTION_NUMBERS ? $number."\. " : '')
+	    , &make_href("$CURRENT_FILE#$key", $pre_anchor)
+	    , $post_anchor);
+	undef $_;
+	undef @tmp;
+
+	$captions = join("", ($captions ? $captions."\n<BR>\n" : '')
+		, "<STRONG>$type" , ($number ? " $number:" : ":")
+		, "</STRONG>\n$caption" , (($captions) ? "\n" : "" ));
+
+	do {
+	    eval "$extra_list .= \"\n<LI>\" .\$item" if ($extra_list);
+	    eval "$list .= \"\n<LI>\" .\$item" }
+		 unless ( $noLOTentry || $noLOFentry);
+#	eval("print \"\nCAPTIONS:\".$extra_list.\n\"");
+    }
+}
+
+
+# This processes \label commands found in environments that will
+# be handed over to Latex. Sets the table %symbolic_labels
+sub do_labels {
+    local($context,$new_context) = @_;
+    local($label);
+    # MRO: replaced $* by /m
+    $context =~ s/\s*$labels_rx/do {
+	$label = &do_labels_helper($2);
+	$new_context = &anchor_label($label,$CURRENT_FILE,$new_context);""}/geom;
+    $new_context;
+}
+
+sub extract_labels {
+    local($_) = @_;
+    local($label,$anchors);
+    # MRO: replaced $* by /m
+    while (s/[ \t]*$labels_rx//om) {
+        $label = &do_labels_helper($2);
+        $anchors .= &anchor_label($label,$CURRENT_FILE,'');
+    }
+    ($_, $anchors);
+}
+
+# This should be done inside the substitution but it doesn't work ...
+sub do_labels_helper {
+    local($_) = @_;
+    s/$label_rx/_/g;  # replace non-alphanumeric characters
+    $symbolic_labels{$_} = $latex_labels{$_}; # May be empty;
+    $_;
+}
+
+sub convert_to_description_list {
+    # MRO: modified to use $_[1]
+    # local($which, *list) = @_;
+    my $which = $_[0];
+    $_[1] =~ s!(</A>\s*)<[OU]L([^>]*)>!$1<DD><DL$2>!ig;
+    $_[1] =~ s!<(/?)[OU]L([^>]*)>!$1? "<$1DL$2>":"<DL$2>"!eig;
+    $_[1] =~ s!(</?)LI>!$1D$which>!ig;
+#    $_[1] =~ s/^\s*<DD>//;
+}
+
+sub add_toc { &add_real_toc(@_) }
+sub add_real_toc {
+    local($temp1, $temp2);
+    print "\nDoing table of contents ...";
+    local(@keys) = keys %toc_section_info;
+    @keys = sort numerically @keys;
+    $temp1 = $MAX_LINK_DEPTH; $temp2 = $MAX_SPLIT_DEPTH;
+    $MAX_SPLIT_DEPTH = $MAX_LINK_DEPTH = 1000;
+    #JKR: Here was a "Contents" - replaced it with $toc_title
+    local($base_key) = $keys[0];
+    if ($MULTIPLE_FILES) {
+    	$base_key = $THIS_FILE;
+    }
+    local($title);
+    if ((defined &do_cmd_contentsname)||$new_command{'contentsname'}) {
+	local($br_id)=++$global{'max_id'};
+	$title = &translate_environments("$O$br_id$C\\contentsname$O$br_id$C");
+    } else { $title = $toc_title }
+    local($toc,$on_first_page) = ('','');
+    $on_first_page = $CURRENT_FILE
+	unless ($MAX_SPLIT_DEPTH && $MAX_SPLIT_DEPTH <1000);
+    $toc = &add_child_links($title,$on_first_page,'',1,$keys[0], at keys);
+    &convert_to_description_list('T',$toc) if ($use_description_list);
+    s/$toc_mark/$toc/;
+    $MAX_LINK_DEPTH = $temp1; $MAX_SPLIT_DEPTH = $temp2;
+}
+
+# Assign ref value, but postpone naming the label
+sub make_half_href {
+    local($link) = $_[0];
+    $href_name++;
+    "<A NAME=\"tex2html$href_name\"\n HREF=\"$link\">";
+}
+
+
+# Redefined in makeidx.perl
+sub add_idx {
+    local($sidx_style, $eidx_style) =('<STRONG>','</STRONG>');
+    if ($INDEX_STYLES) {
+	if ($INDEX_STYLES =~/,/) {
+	local(@styles) = split(/\s*,\s*/,$INDEX_STYLES);
+	    $sidx_style = join('','<', join('><', at styles) ,'>');
+	    $eidx_style = join('','</', join('></',reverse(@styles)) ,'>');
+	} else {
+	    $sidx_style = join('','<', $INDEX_STYLES,'>');
+	    $eidx_style = join('','</', $INDEX_STYLES,'>');
+	}
+    }
+    &add_real_idx(@_)
+}
+sub add_real_idx {
+    print "\nDoing the index ...";
+    local($key, $str, @keys, $index, $level, $count,
+	  @previous, @current);
+    @keys = keys %index;
+    @keys = sort keysort  @keys;
+    $level = 0;
+    foreach $key (@keys) {
+	@current = split(/!/, $key);
+	$count = 0;
+	while ($current[$count] eq $previous[$count]) {
+	    $count++;
+	}
+	while ($count > $level) {
+	    $index .= "\n<DL COMPACT>";
+	    $level++;
+	}
+	while ($count < $level) {
+	    $index .= "\n</DL>";
+	    $level--;
+	}
+	foreach $term (@current[$count .. $#current-1]) {
+	    # need to "step in" a little
+#	    $index .= "<DT>" . $term . "\n<DL COMPACT>";
+	    $index .= "\n<DT>$sidx_style" . $term . "$eidx_style\n<DD><DL COMPACT>";
+	    $level++;
+	}
+	$str = $current[$#current];
+	$str =~ s/\#\#\#\d+$//o; # Remove the unique id's
+	$index .= $index{$key} .
+	    # If it's the same string don't start a new line
+	    (&index_key_eq(join('', at current), join('', at previous)) ?
+	     ", $sidx_style" . $cross_ref_visible_mark . "$eidx_style</A>\n" :
+	     "<DT>$sidx_style" . $str . "$eidx_style</A>\n");
+	@previous = @current;
+    }
+    while ($count < $level) {
+	$index .= "\n</DL>";
+	$level--;
+    }
+    $index = '<DD>'.$index unless ($index =~ /^\s*<D(T|D)>/);
+
+    $index =~ s/(<A [^>]*>)(<D(T|D)>)/$2$1/g;
+    
+#    s/$idx_mark/<DL COMPACT>$index<\/DL>/o;
+    s/$idx_mark/$preindex\n<DL COMPACT>\n$index<\/DL>\n/o;
+}
+
+sub keysort {
+    local($x, $y) = ($a,$b);
+    $x = &clean_key($x);
+    $y = &clean_key($y);
+#    "\L$x" cmp "\L$y";  # changed sort-rules, by M Ernst.
+    # Put alphabetic characters after symbols; already downcased
+    $x =~ s/^([a-z])/~~~$1/;
+    $y =~ s/^([a-z])/~~~$1/;
+    $x cmp $y;
+}
+
+sub index_key_eq {
+    local($a,$b) = @_;
+    $a = &clean_key($a);
+    $b = &clean_key($b);
+    $a eq $b;
+}
+
+sub clean_key {
+    local ($_) = @_;
+    tr/A-Z/a-z/;
+    s/\s+/ /g;		# squeeze white space and newlines into space
+    s/ (\W)/$1/g;	# make foo( ), foo () and foo(), or <TT>foo</TT>
+    ;			# and <TT>foo </TT> to be equal
+    s/$O\d+$C//go;	# Get rid of bracket id's
+    s/$OP\d+$CP//go;	# Get rid of processed bracket id's
+    s/\#\#\#\d+$//o;	# Remove the unique id
+    $_;
+}
+
+
+sub make_footnotes {
+    # Uses $footnotes defined in translate and set in do_cmd_footnote
+    # Also uses $footfile
+    local($_) = "\n<DL>$footnotes\n<\/DL>";
+    $footnotes = ""; # else they get used
+    local($title);
+    if ((defined &do_cmd_footnotename)||$new_command{'footnotename'}) {
+	local($br_id)=++$global{'max_id'};
+	$title = &translate_environments("$O$br_id$C\\footnotename$O$br_id$C");
+    } else {
+	$foot_title = "Footnotes" unless $foot_title;
+	$title = $foot_title;
+    }
+    print "\nDoing footnotes ...";
+#JCL(jcl-tcl)
+# If the footnotes go into a separate file: see &make_file.
+    if ($footfile) {
+	$toc_sec_title = $title;
+	&make_file($footfile, $title, $FOOT_COLOR); # Modifies $_;
+	$_ = "";
+    } else {
+	$footnotes = ""; # else they get re-used
+	$_ = join ('', '<BR><HR><H4>', $title, '</H4>', $_ );
+    }
+    $_;
+}
+
+sub post_process_footnotes {
+    &slurp_input($footfile);
+    open(OUT, ">$footfile") || die "Cannot write file '$footfile': $!\n";
+    &replace_markers;
+    &post_post_process if (defined &post_post_process);
+    &adjust_encoding;
+    print OUT $_;
+    close OUT;
+}
+
+sub make_file {
+    # Uses and modifies $_ defined in the caller
+    local($filename, $title, $layout) = @_;
+    $layout = $BODYTEXT unless $layout;
+    $_ = join('',&make_head_and_body($title,$layout), $_
+	, (($filename =~ /^\Q$footfile\E$/) ? '' : &make_address )
+	, (($filename =~ /^\Q$footfile\E$/) ? "\n</BODY>\n</HTML>\n" : '')
+	);
+    &replace_markers unless ($filename eq $footfile); 
+
+    unless(open(FILE,">$filename")) {
+        print "\nError: Cannot write '$filename': $!\n";
+        return;
+    }
+    print FILE $_;
+    close(FILE);
+}
+
+sub add_to_body {
+    local($attrib, $value) = @_;
+    local($body) = $BODYTEXT;
+    if ($body =~ s/\Q$attrib\E\s*=\s*"[^"]*"/$attrib="$value"/) {
+    } else {
+	$body .= " $attrib=\"$value\""; $body =~ s/\s{2,}/ /g;
+    }
+    $BODYTEXT = $body if $body;
+}
+
+sub replace_verbatim_marks {
+    # Modifies $_
+    my($tmp);
+    s/$math_verbatim_rx/&make_comment('MATH', $verbatim{$1})/eg;
+    s/$mathend_verbatim_rx/&make_comment('MATHEND', '')/eg;
+#    s/$verbatim_mark(verbatim\*?)(\d+)#/<PRE>\n$verbatim{$2}\n<\/PRE>/go;
+##    s/$verbatim_mark(\w*[vV]erbatim\*?)(\d+)#/\n$verbatim{$2}\n/go;
+    s!$verbatim_mark(\w*[vV]erbatim\*?|tex2html_code)(\d+)#\n?!$tmp=$verbatim{$2};
+	$tmp.(($tmp =~/\n\s*$/s)? '':"\n")!eg;
+#	"\n".$tmp.(($tmp =~/\n\s*$/s)? '':"\n")!eg;
+#    s/$verbatim_mark(rawhtml)(\d+)#/$verbatim{$2}/eg; # Raw HTML
+    s/$verbatim_mark(imagesonly)(\d+)#//eg; # imagesonly is *not* replaced
+    # Raw HTML, but replacements may have protected characters
+    s/$verbatim_mark(rawhtml)(\d+)#/&unprotect_raw_html($verbatim{$2})/eg;
+    s/$verbatim_mark$keepcomments_rx(\d+)#/$verbatim{$2}/ego; # Raw TeX
+    s/$unfinished_mark$keepcomments_rx(\d+)#/$verbatim{$2}/ego; # Raw TeX
+}
+
+# TeX's special characters may have been escaped with a '\'; remove it.
+sub unprotect_raw_html {
+    local($raw) = @_;
+    $raw =~ s/\\($latex_specials_rx|~|\^|@)/$1/g;
+    $raw;
+}
+
+# remove file-markers; special packages may redefine &replace_file_marks
+sub remove_file_marks {
+    s/<(DD|LI)>\n?($file_mark|$endfile_mark)\#.*\#\n<\/\1>(\n|(<))/$4/gm;
+    s/($file_mark|$endfile_mark)\#.*\#(\n|(<))/$3/gm;
+}
+sub replace_file_marks { &remove_file_marks }
+
+sub remove_verbatim_marks {
+    # Modifies $_
+    s/($math_verbatim_rx|$mathend_verbatim_rx)//go;
+#    s/$verbatim_mark(verbatim\*?)(\d+)#//go;
+    s/$verbatim_mark(\w*[Vv]erbatim\w*\*?)(\d+)#//go;
+    s/$verbatim_mark(rawhtml|imagesonly)(\d+)#//go;
+    s/$verbatim_mark$keepcomments_rx(\d+)#//go;
+    s/$unfinished_mark$keepcomments_rx(\d+)#//go;
+}
+
+sub replace_verb_marks {
+    # Modifies $_
+    s/(?:$verb_mark|$verbstar_mark)(\d+)$verb_mark/
+	$code = $verb{$1};
+	$code = &replace_comments($code) if ($code =~ m:$comment_mark:);
+	"<code>$code<\/code>"/ego;
+}
+
+sub replace_comments{
+    local($_) = @_;
+    $_ =~ s/$comment_mark(\d+)\n?/$verbatim{$1}/go;
+    $_ =~ s/$comment_mark\d*\n/%\n/go;
+    $_;
+}
+
+sub remove_verb_marks {
+    # Modifies $_
+    s/($verb_mark|$verbstar_mark)(\d+)$verb_mark//go;
+}
+
+# This is used by revert_to_raw_tex
+sub revert_verbatim_marks {
+    # Modifies $_
+#    s/$verbatim_mark(verbatim)(\d+)#/\\begin{verbatim}$verbatim{$2}\\end{verbatim}\n/go;
+    s/$verbatim_mark(\w*[Vv]erbatim)(\d+)#/\\begin{$1}\n$verbatim{$2}\\end{$1}\n/go;
+    s/$verbatim_mark(rawhtml)(\d+)#/\\begin{rawhtml}\n$verbatim{$2}\\end{rawhtml}\n/go;
+    s/$verbatim_mark(imagesonly|tex2html_code)(\d+)#\n?/$verbatim{$2}/go;
+    s/$verbatim_mark$image_env_rx(\d+)#/\\begin{$1}\n$verbatim{$2}\\end{$1}\n/go;
+    s/($math_verbatim_rx|$mathend_verbatim_rx)//go;
+}
+
+sub revert_verb_marks {
+    # Modifies $_
+    s/$verbstar_mark(\d+)$verb_mark/\\verb*$verb_delim{$1}$verb{$1}$verb_delim{$1}/go;
+    s/$verb_mark(\d+)$verb_mark/\\verb$verb_delim{$1}$verb{$1}$verb_delim{$1}/go;
+}
+
+sub replace_cross_ref_marks {
+    # Modifies $_
+    local($label,$id,$ref_label,$ref_mark,$after,$name);
+    local($invis) = "<tex2html_anchor_invisible_mark></A>";
+#    s/$cross_ref_mark#([^#]+)#([^>]+)>$cross_ref_mark/
+    s/$cross_ref_mark#([^#]+)#([^>]+)>$cross_ref_mark<\/A>(\s*<A( NAME=\"\d+)\">$invis)?/
+	do {($label,$id) = ($1,$2); $name = $4;
+	    $ref_label = $external_labels{$label} unless
+		($ref_label = $ref_files{$label});
+	    print "\nXLINK<: $label : $id :$name " if ($VERBOSITY > 3);
+	    $ref_label = '' if ($ref_label eq $CURRENT_FILE);
+	    $ref_mark = &get_ref_mark($label,$id);
+	    &extend_ref if ($name); $name = '';
+	    print "\nXLINK: $label : $ref_label : $ref_mark " if ($VERBOSITY > 3);
+	    '"' . "$ref_label#$label" . "\">" . $ref_mark . "<\/A>"
+	}/geo;
+
+    # This is for pagerefs which cannot have symbolic labels ??? 
+#    s/$cross_ref_mark#(\w+)#\w+>/
+    s/$cross_ref_mark#([^#]+)#[^>]+>/
+	do {$label = $1;
+	    $ref_label = $external_labels{$label} unless
+		($ref_label = $ref_files{$label});
+	    $ref_label = '' if ($ref_label eq $CURRENT_FILE);
+	    print "\nXLINKP: $label : $ref_label" if ($VERBOSITY > 3);
+	    '"' . "$ref_files{$label}#$label" . "\">"
+	}/geo;
+}
+
+#RRM: this simply absorbs the name from the invisible anchor following, 
+#     when the anchor itself is not already named.
+sub extend_ref {
+    if ($ref_label !=~ /NAME=/) { $label .= "\"\n".$name  }
+}
+
+sub remove_cross_ref_marks {
+    # Modifies $_
+#    s/$cross_ref_mark#(\w+)#(\w+)>$cross_ref_mark/
+    s/$cross_ref_mark#([^#]+)#([^>]+)>$cross_ref_mark/
+	print "\nLOST XREF: $1 : $2" if ($VERBOSITY > 3);''/ego;
+#    s/$cross_ref_mark#(\w+)#\w+>//go;
+    s/$cross_ref_mark#([^#]+)#[^#>]+>//go;
+}
+
+sub replace_external_ref_marks {
+    # Modifies $_
+    local($label, $link);
+#    s/$external_ref_mark#(\w+)#(\w+)>$external_ref_mark/
+    s/$external_ref_mark#([^#]+)#([^>]+)>$external_ref_mark/
+	do {($label,$id) = ($1,$2); 
+	    $link = $external_labels{$label};
+	    print "\nLINK: $label : $link" if ($VERBOSITY > 3);
+	    '"'. "$link#$label" . "\">\n"
+	       . &get_ref_mark("userdefined$label",$id)
+	}
+    /geo;
+}
+
+sub remove_external_ref_marks {
+    # Modifies $_
+#    s/$external_ref_mark#(\w+)#(\w+)>$external_ref_mark/
+    s/$external_ref_mark#([^#]+)#([^>]+)>$external_ref_mark/
+	print "\nLOST LINK: $1 : $2" if ($VERBOSITY > 3);''/ego;
+}
+
+sub get_ref_mark {
+    local($label,$id) = @_;
+    ( ( $SHOW_SECTION_NUMBERS && $symbolic_labels{"$label$id"}) ||
+     $latex_labels{"userdefined$label$id"} ||
+     $symbolic_labels{"$label$id"} ||
+     $latex_labels{$label} ||
+     $external_latex_labels{$label} ||
+     $cross_ref_visible_mark );
+}
+
+sub replace_bbl_marks {
+    # Modifies $_
+    s/$bbl_mark#([^#]+)#/$citations{$1}/go;
+}
+
+sub remove_bbl_marks {
+    # Modifies $_
+    s/$bbl_mark#([^#]+)#//go;
+}
+
+sub replace_image_marks {
+    # Modifies $_
+    s/$image_mark#([^#]+)#([\.,;:\)\]])?(\001)?([ \t]*\n?)(\001)?/
+	"$id_map{$1}$2$4"/ego;
+#	"$id_map{$1}$2".(($4)?"\n":'')/ego;
+}
+
+sub remove_image_marks {
+    # Modifies $_
+    s/$image_mark#([^#]+)#//go;
+}
+
+sub replace_icon_marks {
+    # Modifies $_
+    if ($HTML_VERSION < 2.2 ) {
+	local($icon);
+	s/$icon_mark_rx/$icon = &img_tag($1);
+	    $icon =~ s| BORDER="?\d+"?||;$icon/ego;
+    } else {
+	s/$icon_mark_rx/&img_tag($1)/ego;
+    }
+}
+
+sub remove_icon_marks {
+    # Modifies $_
+    s/$icon_mark_rx//go;
+}
+
+sub replace_cite_marks {
+    local($key,$label,$text,$file);
+    # Modifies $_
+    # Uses $citefile set by the thebibliography environment
+    local($citefile) = $citefile;
+    $citefile =~ s/\#.*$//;
+    
+    s/#([^#]+)#$cite_mark#([^#]+)#((($OP\d+$CP)|[^#])*)#$cite_mark#/
+	$text = $3; $label= $1; $file='';
+	$text = $cite_info{$1} unless $text;
+	if ($checking_caption){
+	    "$label"
+	} elsif ($citefiles{$2}){
+	    $file = $citefiles{$2}; $file =~ s:\#.*$::;
+	    &make_named_href('', "$file#$label","$text");
+	} elsif ($PREAMBLE) {
+	    $text || "\#!$1!\#" ;
+	} elsif ($simplifying) {
+	    $text
+	} else {
+	     &write_warnings("\nno reference for citation: $1");
+	     "\#!$1!\#"
+	}/sge ;
+    #
+    #RRM: Associate the cite_key with  $citefile , for use by other segments.
+    if ($citefile) {
+	local($cite_key, $cite_ref);
+	while (($cite_key, $cite_ref) = each %cite_info) {
+	    if ($ref_files{'cite_'."$cite_key"} ne $citefile) {
+		$ref_files{'cite_'."$cite_key"} = $citefile;
+		$changed = 1; }
+	}
+    }
+}
+
+sub remove_cite_marks {
+    # Modifies $_
+    s/#([^#]+)#$cite_mark#([^#]+)#([^#]*)#$cite_mark#//go;
+}
+
+sub remove_anchors {
+# modifies $_
+    s/<A[^>]*>//g;
+    s/<\/A>//g;
+}
+
+
+# We need two matching keys to determine section/figure/etc. numbers.
+# The "keys" are the name of the section/figure/etc. and its
+# equivalent in the .aux file (also carrying the number we desire).
+# But both keys might have been translated slightly different,
+# depending on the usage of math, labels, special characters such
+# as umlauts, or simply spacing!
+#
+# This routine tries to squeeze the HTML translated keys such
+# that they match (hopefully very often). -- JCL
+#
+sub sanitize {
+    local($_,$mode) = @_;
+    &remove_markers;
+    &remove_anchors;
+    &text_cleanup;
+    s/(\&|;SPM)nbsp;//g;            # HWS - LaTeX changes ~ in its .aux files
+    #strip unwanted HTML constructs
+    s/<\/?(P|BR|H)[^>]*>//g;
+    s/\s+//g; #collapse white space
+    $_;
+}
+
+# This one removes any HTML markup, so that pure
+# plain text remains. (perhaps with <SUP>/<SUB> tags)
+# As the result will be part of the HTML file, it will be
+# &text_cleanup'd later together with its context.
+#
+sub purify {
+    local($_,$strict) = @_;
+    &remove_markers;
+    #strip unwanted HTML constructs
+#    s/<[^>]*>/ /g;
+    s/<(\/?SU[BP])>/>$1>/g unless ($strict);  # keep sup/subscripts ...
+    s/<[^>]*>//g;                             # remove all other tags
+    s/>(\/?SU[BP])>/<$1>/g unless ($strict);  # ...reinsert them
+    s/^\s+|\001//g; s/\s\s+/ /g;              #collapse white space
+    $_;
+}
+
+# This one is not as strict as &sanitize.
+# It is chosen to strip section names etc. a bit from
+# constructs so that it better fits a table of contents,
+# label files, etc.
+# As the result will be part of the HTML file, it will be
+# &text_cleanup'd later together with its context.
+#
+sub simplify {
+    local($_) = @_;
+    local($simplifying) = 1;
+    s/$tex2html_envs_rx//g;
+    if (/\\/) {
+	local($USING_STYLES) = 0;
+	$_ = &translate_commands($_);
+	undef $USING_STYLES;
+    }
+    &replace_external_ref_marks if /$external_ref_mark/;
+    &replace_cross_ref_marks if /$cross_ref_mark||$cross_ref_visible_mark/;
+    &replace_cite_marks if /$cite_mark/;
+    # strip unwanted HTML constructs
+#    s/<\/?H[^>]*>/ /g;
+    s/<\/?(H)[^>]*>//g;
+    s/<\#\d+\#>//g;
+    s/^\s+//;
+    $_;
+}
+
+#RRM: This extracts $anchor_mark portions from a given chunk of text,
+#     so they can be positioned separately by the calling subroutine.
+# added for v97.2: 
+#  search within the immediately following text also; so that 
+#  \index and \label after section-headings work as expected.
+#
+sub extract_anchors {
+    local($search_text, $start_only) = @_; 
+    local($anchors) = '';
+    local($untranslated_anchors) = '';
+
+    do {
+	while ($search_text =~ s/<A[^>]*>($anchor_mark|$anchor_invisible_mark)<\/A>//) {
+	    $anchors .= $&;
+	}
+    } unless ($start_only);
+    
+    $search_text =~ s/\s*(\\protect)?\\(label|index|markright|markboth\s*(($O|$OP)\d+($C|$CP))[^<]*\3)\s*(($O|$OP)\d+($C|$CP))[^<]*\6/
+	$anchors .= $&;''/eg unless ($start_only);
+
+    while ( s/^\s*<A[^>]*>($anchor_mark|$anchor_invisible_mark)<\/A>//m) {
+	$untranslated_anchors .= $&;
+    }
+    while ( s/^\s*(\\protect)?\\(label|index|markright|markboth\s*(($O|$OP)\d+($C|$CP))[^<]*\3)\s*(($O|$OP)\d+($C|$CP))[^<]*\6//) {
+	$untranslated_anchors .= $&;
+    }
+    if ($TITLE||$start_only) {
+	$anchors .= &translate_commands($untranslated_anchors);
+	$untranslated_anchors = '';
+    }
+    ($anchors.$untranslated_anchors,$search_text); 
+}
+
+# This routine must be called once on the text only,
+# else it will "eat up" sensitive constructs.
+sub text_cleanup {
+    # MRO: replaced $* with /m
+    s/(\s*\n){3,}/\n\n/gom;	# Replace consecutive blank lines with one
+    s/<(\/?)P>\s*(\w)/<$1P>\n$2/gom;      # clean up paragraph starts and ends
+    s/$O\d+$C//go;		# Get rid of bracket id's
+    s/$OP\d+$CP//go;		# Get rid of processed bracket id's
+    s/(<!)?--?(>)?/(length($1) || length($2)) ? "$1--$2" : "-"/ge;
+    # Spacing commands
+    s/\\( |$)/ /go;
+    #JKR: There should be no more comments in the source now.
+    #s/([^\\]?)%/$1/go;        # Remove the comment character
+    # Cannot treat \, as a command because , is a delimiter ...
+    s/\\,/ /go;
+    # Replace tilde's with non-breaking spaces
+    s/ *~/ /g;
+
+    ### DANGEROUS ?? ###
+    # remove redundant (not <P></P>) empty tags, incl. with attributes
+    s/\n?<([^PD >][^>]*)>\s*<\/\1>//g;
+    s/\n?<([^PD >][^>]*)>\s*<\/\1>//g;
+    # remove redundant empty tags (not </P><P> or <TD> or <TH>)
+    s/<\/(TT|[^PTH][A-Z]+)><\1>//g;
+    s/<([^PD ]+)(\s[^>]*)?>\n*<\/\1>//g;
+
+    
+#JCL(jcl-hex)
+# Replace ^^ special chars (according to p.47 of the TeX book)
+# Useful when coming from the .aux file (german umlauts, etc.)
+    s/\^\^([^0-9a-f])/chr((64+ord($1))&127)/ge;
+    s/\^\^([0-9a-f][0-9a-f])/chr(hex($1))/ge;
+}
+
+# This is useful for getting words from a title which are not cluttered
+# with tex2html markers or HTML constructs
+sub extract_pure_text {
+    local($mode) = @_;
+    &text_cleanup;		# Remove marking brackets
+#
+# HWS <hswan at perc.Arco.com>:  Conditionally doing the following
+#     permits equations in section headings.
+#
+    if ($mode eq "strict") {
+	s/$image_mark#[^#]*#//g;	# Remove image marker
+	s/$bbl_mark#[^#]*#//g;		# Remove citations marker
+        s/<tex2html_percent_mark>/%/g;  # BMcM: Retain % signs...
+        s/<tex2html_ampersand_mark>/\&/g;
+	s/tex2html[\w\d]*//g; 	# Remove other markers
+	}
+
+#
+# HWS <hswan at perc.Arco.com>:  Replace next statement with the following two
+#    to permit symbolic links and images to appear in section headings.
+
+#   s/<[^>]*>//go;			# Remove HTML constructs
+    s/$OP[^#]*$CP//go;			# Remove <# * #> constructs
+    s/<\s*>//go;			# Remove embedded whitespace
+}
+
+############################ Misc ####################################
+
+# MRO: Print standardized header
+sub banner {
+    print <<"EOF";
+This is LaTeX2HTML Version $TEX2HTMLVERSION
+by Nikos Drakos, Computer Based Learning Unit, University of Leeds.
+
+EOF
+}
+
+# MRO: Extract usage information from POD
+sub usage {
+    my $start  = 0;
+    my $usage  = 'Usage: ';
+    my $indent = '';
+
+    print (@_, "\n") if @_;
+
+    my $perldoc = "/usr/bin${dd}perldoc";
+    my $script = $SCRIPT || $0;
+    open(PIPE, "$perldoc -t $script |")
+        || die "Fatal: can't open pipe: $!";
+    while (<PIPE>) {
+        if (/^\s*$/) {
+            next;
+        } elsif (/^SYNOPSIS/) {
+            $start = 1;
+        } elsif (/^\w/) {
+            $start = 0;
+        } elsif ($start == 1) {
+            ($indent) = /^(\s*)/;
+            s/^$indent/$usage/;
+            $usage =~ s/./ /g;
+            $start = 2;
+            print $_;
+        } elsif ($start == 2) {
+            s/^$indent/$usage/;
+            print $_;
+        }
+    }
+    close PIPE;
+    1;
+}
+
+# The bibliographic references, the appendices, the lists of figures and tables
+# etc. must appear in the contents table at the same level as the outermost
+# sectioning command. This subroutine finds what is the outermost level and
+# sets the above to the same level;
+sub set_depth_levels {
+    # Sets $outermost_level
+    local($level);
+    # scan the document body, not the preamble, for use of sectioning commands
+    my ($contents) = $_;
+    if ($contents =~ /\\begin\s*((?:$O|$OP)\d+(?:$C|$CP))document\1|\\startdocument/s) {
+	$contents = $';
+    }
+    #RRM:  do not alter user-set value for  $MAX_SPLIT_DEPTH
+    foreach $level ("part", "chapter", "section", "subsection",
+		    "subsubsection", "paragraph") {
+	last if (($outermost_level) = $contents =~ /\\($level)$delimiter_rx/);
+	last if (($outermost_level) = $contents =~ /\\endsegment\s*\[\s*($level)\s*\]/s);
+	if ($contents =~ /\\segment\s*($O\d+$C)[^<]+\1\s*($O\d+$C)\s*($level)\s*\2/s)
+		{ $outermost_level = $3; last };
+    }
+    $level = ($outermost_level ? $section_commands{$outermost_level} :
+	      do {$outermost_level = 'section'; 3;});
+
+    #RRM:  but calculate value for $MAX_SPLIT_DEPTH when a $REL_DEPTH was given
+    if ($REL_DEPTH && $MAX_SPLIT_DEPTH) { 
+	$MAX_SPLIT_DEPTH = $level + $MAX_SPLIT_DEPTH;
+    } elsif (!($MAX_SPLIT_DEPTH)) { $MAX_SPLIT_DEPTH = 1 };
+
+    %unnumbered_section_commands = (
+          'tableofcontents', $level
+	, 'listoffigures', $level
+	, 'listoftables', $level
+	, 'bibliography', $level
+	, 'textohtmlindex', $level
+        , %unnumbered_section_commands
+        );
+
+    %section_commands = ( 
+	  %unnumbered_section_commands
+        , %section_commands
+        );
+}
+
+# Now ignores accents which cannot be translated to ISO-LATIN-1 characters
+# Also replaces ?' and !' ....
+sub replace_strange_accents { 
+    &real_replace_strange_accents(@_); # if ($CHARSET =~ /8859[_\-]1$/);
+}
+sub real_replace_strange_accents {
+    # Modifies $_;
+    s/\?`/&iso_map("iquest", "")/geo;
+    s/!`/&iso_map("iexcl", "")/geo;
+    s/\\\^\\i /&iso_map("icirc", "")/geo;
+    my ($charset) = "${CHARSET}_character_map_inv";
+    $charset =~ s/-/_/g;
+    # convert upper 8-bit characters
+    if (defined %$charset &&($CHARSET =~ /8859[_\-]1$/)) {
+	s/([\200-\377])/
+	    $tmp = $$charset{'&#'.ord($1).';'};
+	    &mark_string($tmp) if ($tmp =~ m!\{!);
+	    &translate_commands($tmp)
+	/egos
+    }
+};
+
+# Creates a new directory or reuses old, perhaps after deleting its contents
+sub new_dir {
+    local($this_dir,$mode) = @_;
+    local(@files)=();
+    $this_dir = '.' unless $this_dir;
+    $this_dir =~ s/[$dd$dd]+$//o;
+    local($print_dir) = $this_dir.$dd;
+    (!$mode && mkdir($this_dir, 0755)) ||
+	do {
+	    print "\nCannot create directory $print_dir: $!" unless ($mode);
+	    if ($REUSE) {
+		print ", reusing it.\n" unless ($mode);
+		&reuse($this_dir,$print_dir);
+	    } else {
+	    	print "\n" unless ($mode);
+		while (! ($answer =~ /^[dqr]$/)) {
+		    if ($mode) {
+			$answer = $mode;
+		    } else { 
+		        print "(r) Reuse the images in the old directory OR\n"
+			    . (($this_dir eq '.') ?
+		"(d) *** DELETE *** the images in $print_dir  OR\n"
+		: "(d) *** DELETE *** THE CONTENTS OF $print_dir  OR\n" )
+			    . "(q) Quit ?\n:";
+		        $answer = scalar(<STDIN>);
+		    };
+		    if ($answer =~ /^d$/) {
+                        @files = ();
+			if(opendir(DIR,$this_dir)) {
+			    @files = readdir DIR;
+			    closedir DIR;
+                        } else {
+                            print "\nError: Cannot read dir '$this_dir': $!\n";
+                        }
+			foreach (@files) {
+			    next if /^\.+$/;
+			    if (-d "$this_dir$dd$_") {
+				&new_dir("$this_dir$dd$_",'d');
+			    } elsif ($this_dir eq '.') {
+				L2hos->Unlink($_) if (/\.(pl|gif|png)$/) 
+			    } else {
+				L2hos->Unlink("$this_dir$dd$_"); 
+			    };
+			}
+			return(1) if ($this_dir eq '.');
+			if($mode) {
+			  rmdir($this_dir);
+			  rmdir($print_dir);
+                        }
+			if (!$mode) { &new_dir($this_dir,'r')};
+			return(1);
+		    } elsif ($answer =~ /^q$/) {
+			die "Bye!\n";
+		    } elsif ($answer =~ /^r$/) {
+			&reuse($this_dir,$print_dir);
+			return(1);
+		    } else {print "Please answer r d or q!\n";};
+		}
+	    };
+	};
+    1;
+}
+
+sub reuse {
+    local($this_dir,$print_dir) = @_;
+    $print_dir = $this_dir.$dd unless ($print_dir);
+    if (-f "$this_dir$dd${PREFIX}images.pl") {
+	print STDOUT "Reusing directory $print_dir:\n";
+	local($key);
+	require("$this_dir$dd${PREFIX}images.pl");
+    }
+}
+
+
+# JCL(jcl-del) - use $CD rather than a space as delimiter.
+# The commands might take white space, or not, depending on
+# their definition. Eg. \relax takes white space, because it's a
+# letter command, but \/ won't.
+# TeX seems to have an internal separator: If \x is " x",
+# and \y is "y", then \expandafter\y \x expands to "y x", TeX
+# hasn't gobbled the space, meaning that spaces are gobbled once
+# when the \y token is consumed, but then never again after \y.
+#
+# The actions below ensure to insert exactly one space after
+# the command name.	# what happens to  `\ '  ?
+# The substition is done twice to handle \one\delimits\another
+# cases.
+# The internal shortcut $CD is then turned into the single
+# space we desire.
+#
+sub tokenize {
+    # Modifies $_;
+    local($rx) = @_;
+    # $rx must be specially constructed, see &make_new_cmd_rx.
+    if (length($rx)) {
+	# $1: non-letter cmd, or $2: letter cmd
+	s/$rx/\\$1$2$CD$4/g;
+	s/$rx/\\$1$2$CD$4/g;
+	s/$CD+/ /g;	# puts space after each command name
+    }
+}
+
+# When part of the input text contains special perl characters and the text
+# is to be used as a pattern then these specials must be escaped.
+sub escape_rx_chars {
+    my($rx) = @_; # must use a copy of the string
+    $rx =~ s:([\\(){}[\]\^\$*+?.|]):\\$1:g; $rx; }
+
+# Does not do much but may need it later ...
+# The document environment has to be removed because it spans
+# more than one sections (the translator can only deal with
+# environments wholly contained with sections).
+
+# (Does a little more now ... the end of the preamble is now marked
+# with an internally-generated command which causes all output
+# erroneously generated from unrecognized commands in the preamble
+# to vanish --- rst).
+
+sub remove_document_env {
+#    s/\\begin$match_br_rx[d]ocument$match_br_rx/\\latextohtmlditchpreceding /o;
+    if (/\\begin\s*${match_br_rx}document$match_br_rx/) { 
+        s/\\begin\s*$match_br_rx[d]ocument$match_br_rx/\\latextohtmlditchpreceding /
+    }
+#   s/\\end$match_br_rx[d]ocument$match_br_rx(.|\n)*//o;
+    if (/\\end\s*${match_br_rx}document$match_br_rx/) { $_ = $` }
+}
+
+# And here's the code to handle the marker ...
+
+sub do_cmd_latextohtmlditchpreceding {
+    local($_) = @_;
+    $ref_before = '';
+    $_;
+}
+
+print "\n"; # flushes a cache? This helps, for some unknown reason!!
+
+sub do_AtBeginDocument{
+    local($_) = @_;
+    eval $AtBeginDocument_hook;
+    $_;
+}
+
+sub cleanup {
+    local($explicit) = @_;
+    return unless $explicit || !$DEBUG;
+
+    if (opendir(DIR, '.')) {
+	while (defined($_ = readdir(DIR))) {
+	    L2hos->Unlink($_)
+		if /\.ppm$/ || /^${PREFIX}images\.dvi$/ || /^(TMP[-._]|$$\_(image)?)/;
+	}
+	closedir (DIR);
+    }
+
+    L2hos->Unlink("WARNINGS") if ($explicit &&(-f "WARNINGS"));
+
+    if ($TMPDIR && opendir(DIR, $TMPDIR)) {
+	local(@files) = grep(!/^\.\.?$/,readdir(DIR));
+	local($busy);
+	foreach (@files) {
+	    $busy .= $_." " unless (L2hos->Unlink("$TMPDIR$dd$_"));
+	}
+	closedir (DIR);
+	if ($busy) {
+	    print "\n\nFiles: $busy  are still in use.\n\n" if ($DEBUG);
+	} else {
+	    &write_warnings("\n\n Couldn't remove $TMPDIR : $!")
+		unless (rmdir $TMPDIR);
+	}
+    }
+    if (opendir(DIR, $TMP_)) {
+	local(@files) = grep(!/^\.\.?$/,readdir(DIR));
+	$busy = '';
+	foreach (@files) {
+	    $busy .= "$_ " unless (L2hos->Unlink("$TMP_$dd$_"));
+	}
+	closedir (DIR);
+	local($full_dir) = L2hos->Make_directory_absolute($TMP_);
+	if ($busy) {
+	    print "\n\nFiles: $busy in $full_dir are still in use.\n\n"
+	        if ($DEBUG);
+	} else {
+	    &write_warnings("\n\nCouldn't remove directory '$full_dir': $!")
+		unless (rmdir $full_dir);
+	}
+    }
+}
+
+sub handler {
+    print "\nLaTeX2HTML shutting down.\n";
+    kill ('INT', $child_pid) if ($child_pid);
+    &close_dbm_database;
+    &cleanup();
+    exit(-1);
+}
+
+# Given a filename or a directory it returns the file and the full pathname
+# relative to the current directory.
+sub get_full_path {
+    local($file) = @_;
+    local($path,$dir);
+    if (-d $file) {	# $file is a directory
+	$path = L2hos->Make_directory_absolute($file);
+	$file = '';
+
+# JCL(jcl-dir)
+    } elsif ($file =~ s|\Q$dd\E([^$dd$dd]*)$||o ) {
+	$path = $file;
+	$file = $1;
+	$path = L2hos->Make_directory_absolute($path);
+
+#RRM: check within $TEXINPUTS directories
+    } elsif (!($TEXINPUTS =~ /^\.$envkey$/)) {
+	#check along directories in the $TEXINPUTS variable
+	foreach $dir (split(/$envkey/,$TEXINPUTS)) {
+	    $dir =~ s/[$dd$dd]$//o;
+	    if (-f $dir.$dd.$file) {
+		$path = L2hos->Make_directory_absolute($dir);
+		last;
+	    }
+	}
+    } else {
+	$path = L2hos->Cwd();
+    }
+    ($path, $file);
+}
+
+
+# Given a directory name in either relative or absolute form, returns
+# the absolute form.
+# Note: The argument *must* be a directory name.
+# The whole function has been moved to override.pm
+
+
+
+# Given a relative filename from the directory in which the original
+# latex document lives, it tries to expand it to the full pathname.
+sub fulltexpath {
+    # Uses $texfilepath defined in sub driver
+    local($file) = @_;
+    $file =~ s/\s//g;
+    $file = "$texfilepath$dd$file"
+      unless (L2hos->is_absolute_path($file));
+    $file;
+}
+
+#RRM  Extended to allow customised filenames, set $CUSTOM_TITLES
+#     or long title from the section-name, set $LONG_TITLES
+#
+sub make_name {
+    local($sec_name, $packed_curr_sec_id) = @_;
+    local($title,$making_name,$saved) = ('',1,'');
+    if ($LONG_TITLES) {
+	$saved = $_;
+	&process_command($sections_rx, $_) if /^$sections_rx/;
+	$title = &make_long_title($TITLE)
+	    unless ((! $TITLE) || ($TITLE eq $default_title));
+	$_ = $saved;
+    } elsif ($CUSTOM_TITLES) {
+	$saved = $_;
+	&process_command($sections_rx, $_) if /^$sections_rx/;
+	$title = &custom_title_hook($TITLE)
+	    unless ((! $TITLE) || ($TITLE eq $default_title));
+	$_ = $saved;
+    }
+    if ($title) {
+	#ensure no more than 32 characters, including .html extension
+	$title =~ s/^(.{1,27}).*$/$1/;
+    	++$OUT_NODE;
+	join("", ${PREFIX}, $title, $EXTN);
+    } else {
+    # Remove 0's from the end of $packed_curr_sec_id
+	$packed_curr_sec_id =~ s/(_0)*$//;
+	$packed_curr_sec_id =~ s/^\d+$//o; # Top level file
+	join("",($packed_curr_sec_id ? 
+	    "${PREFIX}$NODE_NAME". ++$OUT_NODE : $sec_name), $EXTN);
+    }
+}
+
+#RRM: redefine this subroutine, to create customised file-names
+#     based upon the actual section title.
+#     The default is empty, so reverts to:  node1, node2, ...
+#
+sub custom_title_hook {
+    local($_)= @_;
+    "";
+}
+
+
+sub make_long_title {
+    local($_)= @_;
+    local($num_words) = $LONG_TITLES;
+    #RRM:  scan twice for short words, due to the $4 overlap
+    #      Cannot use \b , else words break at accented letters
+    $_ =~ s/(^|\s)\s*($GENERIC_WORDS)(\'|(\s))/$4/ig;
+    $_ =~ s/(^|\s)\s*($GENERIC_WORDS)(\'|(\s))/$4/ig;
+    #remove leading numbering, unless that's all there is.
+    local($sec_num);
+    if (!(/^\d+(\.\d*)*\s*$/)&&(s/^\s*(\d+(\.\d*)*)\s*/$sec_num=$1;''/e))
+	{ $num_words-- };
+    &remove_markers; s/<[^>]*>//g; #remove tags
+    #revert entities, etc. to TeX-form...
+    s/([\200-\377])/"\&#".ord($1).";"/eg;
+    $_ = &revert_to_raw_tex($_);
+
+    # get $LONG_TITLES number of words from what remains
+    $_ = &get_first_words($_, $num_words) if ($num_words);
+    # ...and cleanup accents, spaces and punctuation
+    $_ = join('', ($SHOW_SECTION_NUMBERS ? $sec_num : ''), $_);
+    s/\\\W\{?|\}//g; s/\s/_/g; s/\W/_/g; s/__+/_/g; s/_+$//;
+    $_;
+}
+
+
+sub make_first_key {
+    local($_);
+    $_ = ('0 ' x keys %section_commands);
+    s/^0/$THIS_FILE/ if ($MULTIPLE_FILES);  
+    chop;
+    $_;
+}
+
+# This copies the preamble into the variable $preamble.
+# It also sets the LaTeX font size, if $FONT_SIZE is set.
+sub add_preamble_head {
+    $preamble = join("\n", $preamble, @preamble);
+    $preamble = &revert_to_raw_tex($preamble);
+    $preamble = join ("\n", &revert_to_raw_tex(/$preamble_rx/o),
+				$preamble);
+    local($savedRS) = $/; undef $/;
+    # MRO: replaced $* with /m
+    $preamble =~ /(\\document(style|class))\s*(\[[^]]*\])?\s*\{/sm;
+    local($before,$after) = ($`.$1, '{'.$');
+    $/ = $savedRS;
+    local ($options) = $3;
+    if ($FONT_SIZE) {
+	$options =~ s/(1\dpt)\b//;
+	$options =~ s/(\[|\])//g;
+	$options = "[$FONT_SIZE".($options ? ",$options" : '').']';
+	$preamble = join('', $before, $options, $after );
+	&write_mydb_simple("preamble", $preamble);
+	@preamble = split(/\n/, $preamble);
+	$LATEX_FONT_SIZE = $FONT_SIZE;
+    }
+    if (($options =~ /(1\dpt)\b/)&&(!$LATEX_FONT_SIZE)) {
+	$LATEX_FONT_SIZE = $1;
+    }
+    #RRM: need to know the font-size before the .aux file is read
+    $LATEX_FONT_SIZE = '10pt' unless ($LATEX_FONT_SIZE);
+}
+
+# It is necessary to filter some parts of the document back to raw
+# tex before passing them to latex for processing.
+sub revert_to_raw_tex {
+    local($_) = @_;
+    local($character_map) = "";
+    if ( $CHARSET && $HTML_VERSION ge "2.1" ) {
+	$character_map = $CHARSET;
+	$character_map =~ tr/-/_/; }
+    while (s/$O\s*\d+\s*$C/\{/o) { s/$&/\}/;}
+    while (s/$O\s*\d+\s*$C/\{/o) { s/$&/\}/;} #repeat this.
+    # The same for processed markers ...
+    while ( s/$OP\s*\d+\s*$CP/\{/o ) { s/$&/\}/; }
+    while ( s/$OP\s*\d+\s*$CP/\{/o ) { s/$&/\}/;} #repeat this.
+
+    s/<BR>/\\\\/g; # restores the \\ from \parbox's
+
+    # revert any math-entities
+    s/\&\w+#(\w+);/\\$1/g;
+    s/\&limits;/\\limits/g;
+    s/\\underscore/\\_/g;
+    s/\\circflex/\\^/g;
+    s/\\space/\\ /g;
+    s/;SPMthinsp;/\\,/g;
+    s/;SPMnegsp;/\\!/g;
+    s/;SPMsp;/\\:/g;
+    s/;SPMthicksp;/\\;/g;
+    s/;SPMgg;/\\gg /g;
+    s/;SPMll;/\\ll /g;
+    s/;SPMquot;/"/g;
+
+    # revert any super/sub-scripts
+    s/<SUP>/\^\{/g;
+    s/<SUB>/\_\{/g;
+    s/<\/SU(B|P)>/\}/g;
+
+
+#    #revert common character entities  ??
+#    s/\/\\/g;
+
+#    # revert special marks
+#    s/$percent_mark/\\%/go;
+##    s/$comment_mark(\d+)\n/%$comments{$1}\n/go;
+    local($tmp,$tmp2);
+#    s/$comment_mark(\d+)\n/$tmp=$verbatim{$1};chomp($tmp);$tmp."\n"/ego;
+    s/$comment_mark(\d+)(\n|$|(\$))/$tmp=$verbatim{$1};$tmp2 = $3;
+        ($tmp=~m!^\%!s ? '':'%').$tmp.(($tmp=~ m!\n\s*$!s)?'':"\n").$tmp2/sego;
+    s/${verbatim_mark}tex2html_code(\d+)\#/$verbatim{$1}/go;
+    s/^($file_mark|$endfile_mark).*\#\n//gmo;
+    s/$comment_mark(\d*)\s*\n/%\n/go;
+    s/$dol_mark/\$/go;
+    s/$caption_mark//go;
+
+    # From &pre_process.
+    # MRO: replaced $* with /m
+    s/\\\\[ \t]*(\n)?/\\\\$1/gm;
+
+    # revert any array-cell delimiters
+    s/$array_col_mark/\&/g;
+    s/$array_row_mark/\\\\/g;
+    s/$array_text_mark/\\text/g;
+    s/$array_mbox_mark/\\mbox/g;
+
+    # Replace any verbatim and image markers ...
+    &revert_verbatim_marks;
+    &revert_verb_marks;
+
+
+#    &replace_image_marks;
+    s/$image_mark\#([^\#]+)\#/&recover_image_code($1)/eg;
+
+    # remove artificial environments and commands
+
+    s/(\n*)\\(begin|end)(($O|$OP)\d+($C|$CP))tex2html_b(egin)?group\3\n?/
+	($1? "\n":'')."\\".($6? $2:(($2 =~ m|end|)? 'e':'b'))."group\n"
+    /gem;
+    s/\\(begin|end)(\{|(($O|$OP)\d+($C|$CP|\})))(tex2html|verbatim)_code(\}|\3)\n?//gm;
+
+    #take care not to concatenate \<cmd> with following letters
+    local($tmp);
+    s/(\\\w+)?$tex2html_wrap_rx([^\\\n])?/$tmp=$2;
+        ((($tmp eq 'end')&&($1)&&!($5)&&($6))? "$1 $6":"$1$5$6")/egs;
+    undef $tmp;
+    s/\s*\\newedcommand\s*{/"%\n\\providecommand{\\"/gem;
+    s/\\newedcommand\s*{/\\providecommand{\\/gom;
+#    s/(\n*)\\renewedcommand{/($1? "\n":'')."\\renewcommand{\\"/geo;
+    s/\s*\\providedcommand\s*{/"%\n\\providecommand{\\"/gem;
+#    s/\\providedcommand{/\\providecommand{\\/go;
+    s/\\renewedenvironment\s*/\\renewenvironment/gom;
+    s/\\newedboolean\s*{/\\newboolean{/gom;
+    s/\\newedcounter\s*{/\\newcounter{/gom;
+    s/\\newedtheorem\s*{/\\newtheorem{/gom;
+    s/\\xystar/\\xy\*/gom; # the * has a special meaning in Xy-pic
+
+    #fix-up the star'd environment names
+    s/(\\(begin|end)(($O|$OP)\d+($C|$CP))[^<]*)star\3/$1\*$3/gm;
+    s/(\\(begin|end)\{[^\}]*)star\}/$1\*\}/gm;
+    s/\\(begin|end)\{[^\}]*begin(group)\}/\\$1$2/gm;
+    s/\\(b|e)(egin|end)\{[^\}]*b(group)\}/\\$1$3/gm;
+
+    s/(\\(\w+)TeX)/($language_translations{$2}? "\\selectlanguage{$2}": $1)/egom;
+
+    if ($PREPROCESS_IMAGES) {
+      while (/$pre_processor_env_rx/m) {
+	$done .= $`; $pre_env = $5; $which =$1; $_ = $';
+        if (($which =~ /begin/)&&($pre_env =~ /indica/)) {
+	    ($indic, $dum) = &get_next_optional_argument;
+	    $done .= "\#$indic";
+        } elsif (($which =~ /begin/)&&($pre_env =~ /itrans/)) {
+	    ($indic, $dum) = &get_next_optional_argument;
+	    $done .= "\#$indic";
+        } elsif (($which =~ /end/)&&($pre_env =~ /indica/)) {
+	    $done .= '\#NIL';
+        } elsif (($which =~ /end/)&&($pre_env =~ /itrans/)) {
+	    $done .= "\#end$indic";
+	} elsif ($which =~ /begin/) {
+	    $done .= (($which =~ /end/)? $end_preprocessor{$pre_env}
+		          : $begin_preprocessor{$pre_env} )
+	}
+	$_ = $done . $_;
+      }
+    }
+    s/\\ITRANSinfo\{(\w+)\}\{([^}]*)\}/\#$1=$2/gm if $itrans_loaded;
+
+    s/\n{3,}/\n\n/gm; # remove multiple (3+) new-lines 
+    s/^\n+$//gs; # ...especially if that is all there is!
+    if ($PREAMBLE) {
+	s/$comment_mark(\d+\n?)?//g;
+#	$preamble =~ s/\\par\n?/\n/g;
+	s/\\par\b/\n/g;
+	s/^\s*$//g; #remove blank lines in the preamble
+    };
+
+    s/($html_specials_inv_rx)/$html_specials_inv{$1}/geo;
+    # revert entities to TeX code, except if in {rawhtml} environments
+    if (!($env =~ /rawhtml/)) {
+        s/$character_entity_rx/( $character_map ?
+	  eval "\$${character_map}_character_map_inv\{\"$1\"\}" :
+	    $iso_8859_1_character_map_inv{$1} ||
+	      $iso_10646_character_map_inv{$1})/geo;
+        s/$named_entity_rx/( $character_map ? 
+	  eval "\$${character_map}_character_map_inv\{\$${character_map}_character_map{'$1'}}" :
+	    $iso_8859_1_character_map_inv{$iso_8859_1_character_map{$1}} ||
+	      $iso_10646_character_map_inv{$iso_10646_character_map{$1}})/geo;
+
+    } else {
+        #RRM: check for invalid named entities in {rawhtml} environments
+	s/($named_entity_rx)/&write_warnings(
+	    "An unknown named entity ($1) appears in the source text.") unless (
+		 $character_map && eval 
+	  "\$${character_map}_character_map_inv\{\$${character_map}_character_map{'$2'}}");
+		     ";SPM$2;"/ego;
+    }
+
+    #RRM: check for numbered character entity out-of-range
+    if ($HTML_VERSION < 4.0) {
+	s/$character_entity_rx/&write_warnings(
+	    "An invalid character entity ($1) appears in the source text.")
+	     if ($2 > 255);
+	$1/ego; }
+
+    #RRM: check for invalid named entities outside {rawhtml} environments
+    # --- these should have been caught already, but check again
+    s/$named_entity_rx/&write_warnings(
+	    "An unknown named entity ($1) appears in the source text.") unless (
+	$character_map && eval 
+	  "\$${character_map}_character_map_inv\{\$${character_map}_character_map{'$1'}}");
+		     $1/ego;
+
+    &revert_to_raw_tex_hook if (defined &revert_to_raw_tex_hook);
+    $_;
+}
+
+sub next_wrapper {
+    local($dollar) = @_;
+    local($_,$id);
+    $wrap_toggle = (($wrap_toggle eq 'end') ? 'begin' : 'end');
+    $id = ++$global{'max_id'};
+    $_ = "\\$wrap_toggle$O$id$C"."tex2html_wrap$O$id$C";
+    $_ = (($wrap_toggle eq 'end') ? $dollar.$_ : $_.$dollar);
+    $_;
+}
+
+sub make_wrapper {
+    &make_any_wrapper($_[0], '', "tex2html_wrap");
+}
+
+sub make_nowrapper {
+    &make_any_wrapper($_[0], 1, "tex2html_nowrap");
+}
+
+sub make_inline_wrapper {
+    &make_any_wrapper($_[0], '', "tex2html_wrap_inline");
+}
+
+sub make_deferred_wrapper {
+    &make_any_wrapper($_[0], 1, "tex2html_deferred");
+}
+
+sub make_nomath_wrapper {
+    &make_any_wrapper($_[0], '', "tex2html_nomath_inline");
+}
+
+sub make_any_wrapper {
+    local($toggle,$break,$kind) = @_;
+    local($max_id) = ++$global{'max_id'};
+    '\\'. (($toggle) ? 'begin' : 'end')
+	. "$O$max_id$C"."$kind$O$max_id$C"
+	. (($toggle || !$break) ? '' : '');
+}
+
+sub get_last_word {
+    # Returns the last word in multi-line strings
+    local($_) = @_;
+    local ($word,$lastbit,$which);
+#JCL(jcl-tcl)
+# also remove anchors and other awkward HTML markup
+#    &extract_pure_text("strict");
+##    $_ = &purify($_);  ## No. what if it is a verbatim string or image?
+#
+#    while (/\s(\S+)\s*$/g) { $word = $lastbit = $1;}
+
+    if (!$_ && (defined $keep)) {
+	# inside mathematics !
+	$_ = $keep . $pre ;
+    }
+    if (!$_ && $ref_before) { $_ = $ref_before; }
+    elsif (!$_) {
+	# get it from last thing before the current environment
+	$which = $#processedE;
+	$_ = $processedE[$which];
+    }
+
+    while (/((($O|$OP)\d+($C|$CP))[.\n]*\2|\s(\S+))\s*$/g)
+	{ $word = $lastbit = $1 }
+    if (($lastbit =~ s/\$\s*$//)||(defined $keep)) {
+	local($br_idA) = ++$global{'max_id'};
+	local($br_idB) = ++$global{'max_id'};
+	$lastbit = join('', "\\begin $O$br_idA${C}tex2html_wrap_inline$O$br_idA$C\$"
+		, $lastbit, "\$\\end $O$br_idB${C}tex2html_wrap_inline$O$br_idB$C");
+	$lastbit = &translate_environments($lastbit);
+	$lastbit = &translate_commands($lastbit);
+	return ($lastbit);
+    }
+    if ($lastbit =~ s/($O|$OP)\d+($C|$CP)//g) { return ($lastbit); }
+    elsif ($lastbit eq '') { return ($_) }
+
+    local($pre_bit);
+    if ($lastbit =~/>([^>]*)$/) { 
+	$word = $1; $pre_bit = $`.'>';
+	if ($pre_bit =~ /($verb_mark|$verbstar_mark)$/) {
+	    $word = $lastbit;
+	} elsif ($pre_bit =~ /<\w+_mark>$/) {
+	    $word = $& . $word;
+	} elsif (!($word)) {
+	    if ($lastbit =~ s/<([^\/][^>]*)>$//o)
+	        { $word=$1; $pre_bit = $`; }
+	    elsif ($lastbit =~ s/>([^<]*)<\/[^>]*>//o)
+	        { $word=$1; $pre_bit = $`.'>' }
+	    else { $word = ";SPMnbsp;"; }
+	}
+#	if ($pre_bit =~ /<\w+_mark>$/) { $word = $& . $word }
+     } else { $word = $lastbit };
+    $word;
+}
+
+#JCL(jcl-tcl)
+# changed completely
+#
+# We take the first real words specified by $min from the string.
+# Allow for simple HTML constructs like <I>...</I> (but not <H*>
+# or <P*> and the like), math, or images to remain in the result,
+# not counting as words.
+# Take care that eg. <I>...</I> grouping tags are not broken.
+# This is achieved by lifting the markup, removing superfluous
+# words, re-inserting the markup, and throw empty markup away.
+# In later versions images could be modified such that they become
+# thumbnail sized.
+#
+# rawhtml or verbatim environments might introduce lots of awkward
+# stuff, but yet we leave the according tex2html markers in.
+#
+sub get_first_words {
+    local($_, $min) = @_;
+    local($words,$i);
+    local($id,%markup);
+    #no limit if $min is negative
+    $min = 1000 if ($min < 0);
+
+    &remove_anchors;
+    #strip unwanted HTML constructs
+    s/<\/?(P|BR|H)[^>]*>/ /g;
+    #remove leading white space and \001 characters
+    s/^\s+|\001//g;
+    #lift html markup, numbered for recovery
+    s/(<[^>]*>(#[^#]*#)?)/$markup{++$id}=$1; "\000$id\000"/ge;
+
+    foreach (split /\s+|\-{3,}/) {
+        # count words (incl. HTML markup as part of the word)
+        ++$i; 
+#	$words .= $_ . " " if (/\000/ || ($i <= $min));
+	$words .= $_ . " " if ($i <= $min);
+    }
+    $_ = $words;
+    chop;
+
+    #re-insert markup
+    s/\000(\d+)\000/$markup{$1}/g;
+    # remove empty markup
+    # it's normalized, because generated by LaTeX2HTML only
+    s/<([A-Z]+)[^>]*>\s*<\/\1>\s*//g;
+    $_;
+}
+
+sub replace_word {
+    # Replaces the LAST occurrence of $old with $new in $str;
+    local($str, $old, $new) = @_;
+    substr($str,rindex($str,$old),length($old)) = $new;
+    $str;
+}
+
+# Returns the recognised sectioning commands as a string of alternatives
+# for use in regular expressions;
+sub get_current_sections {
+    local($_, $key);
+    foreach $key (keys %section_commands) {
+	if ($key =~ /star/) {
+	    $_ = $key . "|" . $_}
+	else {
+	    $_ .= "$key" . '[*]?|';
+	}
+    }
+    chop;			# Remove the last "|".
+    $_;
+}
+
+sub numerically {
+    local(@x) = split(' ',$a);
+    local(@y) = split(' ',$b);
+    local($i, $result);
+    for($i=0;$i<$#x;$i++) {
+       last if ($result = ($x[$i] <=> $y[$i]));
+    }
+    $result
+}
+
+# Assumes that the files to be sorted are of the form
+# <NAME><NUMBER>
+sub file_sort {
+    local($i,$j) = ($a,$b);
+    $i =~ s/^[^\d]*(\d+)$/$1/;
+    $j =~ s/^[^\d]*(\d+)$/$1/;
+    $i <=> $j
+}
+
+# If a normalized command name exists, return it.
+sub normalize {
+    # MRO: modified to use $_[1]
+    # local($cmd,*after) = @_;
+    my $cmd =$_[0];
+    my $ncmd;
+    # Escaped special LaTeX characters
+    if ($cmd =~ /^($latex_specials_rx)/) {
+#	$cmd =~ s/&(.*)$/&$1/o;
+	$cmd =~ s/&(.*)$/$ampersand_mark$1/o;
+        $cmd =~ s/%/$percent_mark/o;
+	$_[1] = join('', $cmd, $_[1]);
+	$cmd = ""}
+    elsif ($ncmd = $normalize{$cmd}) {
+	$ncmd;
+    }
+    else {
+ 	$cmd =~ s/[*]$/star/;
+ 	$cmd =~ s/\@/_at_/g;
+	$cmd;
+    }
+}
+
+sub normalize_sections {
+    my $dummy = '';
+    # MRO: s/$sections_rx/'\\' . &normalize($1.$2,*after) . $4/ge;
+    s/$sections_rx/'\\' . &normalize($1.$2,$dummy) . $4/ge;
+}
+
+sub embed_image {
+    my ($url,$name,$external,$altst,$thumbnail,$map,$align,
+	$usemap,$exscale,$exstr) = @_;
+    my $imgID = '';
+    my $urlimg = $url;
+    my $ismap = $map ? " ISMAP" : '';
+    print "\nembedding $url for $name, with $altst\n" if ($VERBOSITY > 1);
+
+    if (! ($NO_IMAGES || $PS_IMAGES)) {
+	# for over-scaled GIFs with pre-determined sizes	# RRM 11-9-96
+        my $size;
+	if (($width{$name})&&(($exscale)||($EXTRA_IMAGE_SCALE))) {
+	    $exscale = $EXTRA_IMAGE_SCALE unless ($exscale);
+	    if ($name =~ /inline|indisplay|entity|equation|math|eqn|makeimage/){
+		($size, $imgID) = &get_image_size($url, $exscale);
+	    } else {
+		($size, $imgID) = &get_image_size($url,'');
+	    }
+	} else {
+	    ($size,$imgID) = &get_image_size($url,'');
+	}
+	$image_size{$url} = $size 
+	    unless ((! $size) || ($size eq "WIDTH=\"0\" HEIGHT=\"0\""));
+	$url = &find_unique($url);
+    }
+
+    $urlimg = $url;
+    $urlimg =~ s/\.$IMAGE_TYPE$/.html/ if ($map);
+    if ($exstr =~ s/align\s*=\s*(\"?)(\w+)\1($|\s|,)//io) { $align = $2; }
+    my $usersize = '';
+    if ($exstr =~ s/width\s*=\s*(\"?)([^\s,]+)\1($|\s|,)//io) {
+	my ($pxs,$len) = &convert_length($2);
+	$usersize = " WIDTH=\"$pxs\"";
+    }
+    if ($exstr =~ s/height\s*=\s*(\"?)([^\s,]+)\1($|\s|,)//io) { 
+	my ($pxs,$len) = &convert_length($2);
+	$usersize .= " HEIGHT=\"$pxs\"";
+    }
+
+    my $border = '';
+    $border = "\" BORDER=\"0"
+	unless (($HTML_VERSION < 2.2 )||($exstr =~ /BORDER/i));
+
+    my $aalign;
+    if (($name =~ /figure|table|displaymath\d+|eqnarraystar/)&&(!$align)) {
+    } elsif ($name =~ /displaymath_/) {
+	$aalign = "MIDDLE".$border;
+    } elsif (($name =~ /(equation|eqnarray)($|\d)/)&&(!$align)) {
+	if ($HTML_VERSION >= 3.2) {
+	    $aalign =  ($EQN_TAGS eq "L") ? "RIGHT" : "LEFT";
+	}
+    } elsif ($name =~ /inline|display|entity|xy|diagram/ && $depth{$name} != 0) {
+	$aalign = "MIDDLE".$border;
+    } elsif ($name =~ /inpar/m) {
+	$aalign = "TOP".$border;
+    } else {  $aalign = "BOTTOM".$border }
+
+    $aalign = "\U$align" if $align;
+    my $ausemp = $usemap ? "\UUSEMAP=$usemap" : '';
+
+    #append any extra valid options 
+    $ismap .= &parse_keyvalues ($exstr, ("IMG")) if ($exstr);
+
+    $altst = '' if ($ismap =~ /(^|\s+)ALT\s*=/);
+    if ($altst) {
+	if ($altst =~ /\s*ALT="?([^\"]+)"?\s*/io) { $altst=$1 }
+	$altst =~ s/[<>"&]/'&'.$html_special_entities{$&}.';'/eg;
+	$altst = "\n ALT=\"$altst\"";
+    }
+
+    my ($extern_image_mark,$imagesize);
+    if ($thumbnail) {
+	print "\nmaking thumbnail" if ($VERBOSITY > 1);
+	if (($image_size{$thumbnail}) = &get_image_size($thumbnail,'')) {
+	    $thumbnail = &find_unique($thumbnail);
+	    $imagesize = " ".$image_size{$thumbnail};
+	    if ($HTML_VERSION < 2.2 ) {
+		# put the WIDTH/HEIGHT information into the ALT string
+		# first removing the quotes
+		my ($noquotes) = $imagesize;
+		$noquotes =~ s/\"//g;
+		$altst =~ s/"$/\% $noquotes "/m;
+		$imagesize = '';
+	    }
+	    $extern_image_mark = join('',"<IMG"
+		, "\n$imagesize" 
+		, (($aalign) ? " ALIGN=\"$aalign\"" : '')
+		, ("$aalign$imagesize" ? "\n" : '' )
+		, " SRC=\"$thumbnail\"$altst>");
+	}
+	$extern_image_mark =~ s/\s?BORDER="?\d+"?//
+            unless ($exstr =~ /BORDER/i);
+    } else { 
+        # MRO: dubious (&extern_image_mark takes only one arg)
+        $extern_image_mark = &extern_image_mark($IMAGE_TYPE,$altst);
+    }
+
+    my ($anch1,$anch2) = ('','');
+    my $result;
+    if ($external || $thumbnail || $EXTERNAL_IMAGES) {
+	if ( $extern_image_mark ) {
+	    $result = &make_href_noexpand($urlimg, $name , $extern_image_mark);
+	    &save_image_map($url, $urlimg, $map, $name, $altst, $ausemp) if $map;
+	}
+    } else {
+	if ($map) {
+	    $anch1 = "<A HREF=\"$map\">";
+	    $anch2 = "</A>";
+	}
+#	if ($aalign eq "CENTER") {
+#	    if ($HTML_VERSION eq "2.0") {
+#	        $anch1 .= "\n<P ALIGN=\"CENTER\">";
+#	        $anch2 .= "</P>";
+#	    } else {
+#	        $anch1 .= "\n<DIV ALIGN=\"CENTER\">";
+#	        $anch2 .= "</DIV>";
+#	    }
+#	}
+
+	$imagesize = $image_size{$url};
+	$imagesize = $usersize if (($usersize)&&($HTML_VERSION > 2.1 ));
+	if ($HTML_VERSION < 2.2 ) {
+	    # put the WIDTH/HEIGHT information into the ALT string
+	    # first removing the quotes
+	    my ($noquotes) = $imagesize;
+	    $noquotes =~ s/\"//g;
+	    $altst =~ s/"$/\% $noquotes "/m;
+	}
+
+	# include a stylesheet entry for each included image
+	if ($USING_STYLES && $SCALABLE_IMAGES &&(!$imgID)) {
+	    if ($url =~ /($dd|^)([^$dd$dd]+)\.$IMAGE_TYPE$/) {
+		my $img_name = $2;
+		$imgID = $img_name . ($img_name =~ /img/ ? '' : $IMAGE_TYPE);
+		$img_style{"$imgID"} = ' ' unless $img_style{"$imgID"};
+		$imgID = join('', ' CLASS="', $imgID, '"') if $imgID;
+	    }
+	}
+
+	### MEH Add width and height to IMG
+	### Patched by <hswan at perc.Arco.com>:  Fixed \htmladdimg 
+	if ( $imagesize || $name eq "external image" || $NO_IMAGES || $PS_IMAGES) {
+	    $imagesize = '' if ($HTML_VERSION < 2.2 );
+	    if ($border =~ s/^"//) { $border .= '"' };
+	    $result = join(''
+		   , "<IMG$imgID"
+		   , "\n", ($imagesize ? " $imagesize" : '')
+		   , (($aalign)? " ALIGN=\"$aalign\"" : $border)
+		   , $ismap );
+	    if ($ausemp) { $result .= " $ausemp" }
+	    $result .= "\n" unless (($result =~ /\n *$/m)|| !$imagesize);
+	    $result .= " SRC=\"$url\"";
+	    if ($altst) { $result .= $altst }
+	    $result .= ">";
+	}
+    }
+    join('',$anch1, $result, $anch2);
+}
+
+# MRO: added PNG support
+sub get_image_size { # clean
+    my ($imagefile, $scale) = @_;
+
+    $scale = '' if ($scale == 1);
+    my ($imgID,$size) = ('','');
+    if (open(IMAGE, "<$imagefile")) {
+        my ($buffer,$magic,$dummy,$width,$height) = ('','','',0,0);
+	binmode(IMAGE); # not harmful un UNIX
+        if ($IMAGE_TYPE =~ /gif/) {
+	    read(IMAGE,$buffer,10);
+	    ($magic,$width,$height) = unpack('a6vv',$buffer);
+            # is this image sane?
+	    unless($magic =~ /^GIF8[79]a$/ && ($width * $height) > 0) {
+                $width = $height = 0;
+	    }
+        }
+        elsif ($IMAGE_TYPE =~ /png/) {
+            read(IMAGE,$buffer,24);
+	    ($magic,$dummy,$width,$height) = unpack('a4a12NN',$buffer);
+	    unless($magic eq "\x89PNG" && ($width * $height) > 0) {
+                $width = $height = 0;
+            }
+	}
+	close(IMAGE);
+
+	# adjust for non-trivial $scale factor.
+        my ($img_w,$img_h) = ($width,$height);
+	if ($scale && ($width * $height) > 0) {
+            $img_w = int($width / $scale + .5);
+            $img_h = int($height / $scale + .5);
+	}
+	$size = qq{WIDTH="$img_w" HEIGHT="$img_h"};
+
+	# allow height/width to be stored in the stylesheet
+	my ($img_name,$imgID);
+	if ($SCALABLE_IMAGES && $USING_STYLES) {
+	    if ($imagefile =~ /(^|[$dd$dd])([^$dd$dd]+)\.(\Q$IMAGE_TYPE\E|old)$/o) {
+		$img_name = $2;
+		$imgID = $img_name . ($img_name =~ /img/ ? '' : $IMAGE_TYPE);
+	    }
+	    if ($imgID) {
+		$width = $width/$LATEX_FONT_SIZE/$MATH_SCALE_FACTOR;
+		$height = 1.8 * $height/$LATEX_FONT_SIZE/$MATH_SCALE_FACTOR;
+		# How wide is an em in the most likely browser font ?
+		if ($scale) {
+		# How high is an ex in the most likely browser font ?
+		    $width = $width/$scale; $height = $height/$scale;
+		}
+		$width = int(100*$width + .5)/100;
+		$height = int(100*$height + .5)/100;
+		$img_style{$imgID} = qq(width:${width}em ; height:${height}ex );
+		#join('','width:',$width,'em ; height:',$height,'ex ');
+		$imgID = qq{ CLASS="$imgID"};
+	    }
+	}
+    }
+    ($size, $imgID);
+}
+
+sub find_unique { # clean
+    my ($image1) = @_;
+    local($/) = undef; # slurp in complete files
+
+    my $imagedata;
+    if(open(IMG1,"<$image1")) {
+	binmode(IMG1); # needed with .png under DOS
+        $imagedata = <IMG1>;
+        close(IMG1);
+    } else {
+        print "\nError: Cannot read '$image1': $!\n"
+	    unless ($image1 =~ /^\s*$HTTP_start/i);
+        return $image1;
+    }
+
+    my ($image2,$result);
+    foreach $image2 (keys(%image_size)) {
+	if ( $image1 ne $image2 &&
+	    $image_size{$image1} eq $image_size{$image2} ) {
+	    if(open(IMG2,$image2)) {
+		binmode(IMG2); # needed with .png under DOS
+	        $result = ($imagedata eq <IMG2>);
+	        close(IMG2);
+            } else {
+                print "\nWarning: Cannot read '$image2': $!\n"
+		    unless ($image2 =~ /^\s*$HTTP_start/i);
+            }
+#
+#  If we've found a match, rename the new image to a temporary one.
+#  Then try to link the new name to the old image.
+#  If the link fails, restore the temporary image.
+#
+	    if ( $result ) {
+		my $tmp = "temporary.$IMAGE_TYPE";
+		L2hos->Unlink($tmp);
+		L2hos->Rename($image1, $tmp);
+		if (L2hos->Link($image2, $image1)) {
+                    L2hos->Unlink($tmp);
+                } else {
+                    L2hos->Rename($tmp, $image1);
+                }
+		return $image1;
+	    }
+	}
+    }
+    $image1;
+}
+
+sub save_image_map { # clean
+    my ($url, $urlimg, $map, $name, $altst, $ausemp) = @_;
+    unless(open(IMAGE_MAP, ">$urlimg")) {
+        print "\nError: Cannot write '$urlimg': $!\n";
+        return;
+    }
+    ### HWS  Pass server map unchanged from user
+    print IMAGE_MAP "<HTML>\n<BODY>\n<A HREF=\"$map\">\n";
+    print IMAGE_MAP "<IMG\n SRC=\"$url\" ISMAP $ausemp $altst> </A>";
+    print IMAGE_MAP "</BODY>\n</HTML>\n";
+    close IMAGE_MAP;
+}
+
+#  Subroutine used mainly to rename an old image file about to recycled.
+#  But for active image maps, we must edit the auxiliary HTML file to point
+#     to the newly renames image.
+sub rename_html {
+    local ($from, $to) = @_;
+    local ($from_prefix, $to_prefix, $suffix);
+    ($from_prefix, $suffix) = split(/\./, $from);
+    ($to_prefix, $suffix) = split(/\./, $to);
+    if ($EXTN =~ /$suffix$/) {
+	if (open(FROM, "<$from") && open(HTMP, ">HTML_tmp")) {
+	    while (<FROM>) {
+		s/$from_prefix\.$IMAGE_TYPE/$to_prefix.$IMAGE_TYPE/g;
+		print HTMP;
+	    }
+	    close (FROM);
+	    close (HTMP);
+	    L2hos->Rename ("HTML_tmp", $to);
+	    L2hos->Unlink($from) unless ($from eq $to);
+	}
+	else {
+	    &write_warnings("File $from is missing!\n");
+	}
+    }
+    L2hos->Rename("$from_prefix.old", "$to_prefix.$IMAGE_TYPE");
+    $to;
+}
+
+sub save_captions_in_file {
+    local ($type, $_) = @_;
+    if ($_) {
+	s/^\n//om;
+	&replace_markers;
+	&add_dir_to_href if ($DESTDIR);
+	if(open(CAPTIONS, ">${PREFIX}$type.pl")) {
+	    print CAPTIONS $_;
+	    close (CAPTIONS);
+        } else {
+            print "\nError: Cannot write '${PREFIX}$type.pl': $!\n";
+        }
+    }
+}
+
+sub add_dir_to_href {
+    $_ =~ s/'/\\'/g;
+    $_ =~ s/(<LI><A )(NAME\=\"tex2html\d+\")?\s*(HREF=\")/$1$3\'.\$dir.\'/og;
+    $_ = join('', "\'", $_, "\'\n");
+}
+
+sub save_array_in_file {
+    local ($type, $array_name, $append, %array) = @_;
+    local ($uutxt,$file,$prefix,$suffix,$done_file,$depth,$title);
+    $prefix = $suffix = "";
+    my $filespec = ($append ? '>>' : '>') . "${PREFIX}$type.pl";
+    $prefix = q("$URL/" . )
+	if ($type eq "labels") && !($array_name eq "external\_latex\_labels");
+    $suffix = " unless (\$$array_name\{\$key\})"
+	if (($type =~ /(sections|contents)/)||($array_name eq "printable\_key"));
+    if ((%array)||($type eq "labels")) {
+	print "\nSAVE_ARRAY:$array_name in FILE: ${PREFIX}$type.pl"
+	    if ($VERBOSITY > 1);
+	unless(open(FILE,$filespec)) {
+            print "\nError: Cannot write '${PREFIX}$type.pl': $!\n";
+            return;
+        }
+	if (($array_name eq "sub\_index") || ($array_name eq "printable\_key")) {
+	    print FILE "\n# LaTeX2HTML $TEX2HTMLVERSION\n";
+	    print FILE "# Printable index-keys from $array_name array.\n\n";
+	} elsif ($array_name eq "index\_labels") {
+	    print FILE "\n# LaTeX2HTML $TEX2HTMLVERSION\n";
+	    print FILE "# labels from $array_name array.\n\n";
+	} elsif ($array_name eq "index\_segment") {
+	    print FILE "\n# LaTeX2HTML $TEX2HTMLVERSION\n";
+	    print FILE "# segment identifier from $array_name array.\n\n";
+	} elsif ($array_name eq "external\_latex\_labels") {
+	    print FILE "\n# LaTeX2HTML $TEX2HTMLVERSION\n";
+	    print FILE "# labels from $array_name array.\n\n";
+	} else {
+	    print FILE "# LaTeX2HTML $TEX2HTMLVERSION\n";
+	    print FILE "# Associate $type original text with physical files.\n\n";
+	}
+	while (($uutxt,$file) = each %array) {
+	    $uutxt =~ s|/|\\/|g;
+	    $uutxt =~ s|\\\\/|\\/|g;
+
+	    if (!($array_name =~/images/)&&($file =~ /</)) {
+		do { local $_ = $file;
+		     &replace_markers;
+		     $file = $_; undef $_;
+		     $file =~ s/(\G|[^q])[\\\|]\|/$1\\Vert/sg;
+		     $file =~ s/(\G|[^q])\|/$1\\vert/sg;
+		};
+	    }
+
+	    local ($nosave); 	
+	    if ($MULTIPLE_FILES && $ROOTED && 
+	    	    $type =~ /(sections|contents)/) {
+		#RRM: save from $THIS_FILE only
+	    	if ( $uutxt =~ /^$THIS_FILE /) {
+		    #RRM: save from $THIS_FILE only
+	    	    $nosave = ''
+	    	} else { $nosave = 1 }
+	    } else {
+		#RRM: suppress info from other segments
+	        $nosave = $noresave{$uutxt}; 
+	    }
+
+	    if (!$nosave && ($file ne ''))  {
+		print FILE "\n\$key = q/$uutxt/;\n";
+
+		$file =~ s/\|/\\\|/g; # RRM:  escape any occurrences of |
+		$file =~ s/\\\\\|/\\\|/g; # unless already escaped as \|
+		$file =~ s|\\\\|\\\\\\\\|g;
+		$file =~ s/(SRC=")($HTTP_start)?/$1.($2 ? '' :"|.\"\$dir\".q|").$2/seg;
+#
+#
+# added code for  $dir  with segmented docs;  RRM  15/3/96
+#
+		if ($type eq "contents") {
+		    ($depth, $done_file) = split($delim, $file, 2 );
+		    next if ($depth > $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH);
+		    print FILE 
+    "\$$array_name\{\$key\} = '$depth$delim'.\"\$dir\".q|$done_file|$suffix; \n";
+
+		} elsif ($type eq "sections") {
+		    ($depth, $done_file) = split($delim, $file, 2 );
+		    next if ($depth > $MAX_SPLIT_DEPTH + $MAX_LINK_DEPTH);
+		    print FILE 
+    "\$$array_name\{\$key\} = '$depth$delim'.\"\$dir\".q|$done_file|$suffix; \n";
+
+		} elsif ($type eq "internals") {
+		    print FILE 
+    "\$$array_name\{\$key\} = \"\$dir\".q|$file|$suffix; \n";
+
+		} elsif ($array_name eq "sub_index") {
+		    print FILE
+    "\$$array_name\{\$key\} .= q|$file|$suffix; \n";
+
+		} elsif ($array_name eq "index") {
+		    local($tmp_file) = '';
+		    ($depth, $done_file) = split('HREF=\"', $file, 2 );
+		    if ($done_file) {
+			while ($done_file) {
+			    $depth =~ s/\s*$/ / if ($depth);
+			    $tmp_file .= "q|${depth}HREF=\"|.\"\$dir\".";
+			    ($depth, $done_file) = split('HREF=\"', $done_file, 2 );
+			}
+			print FILE
+    "\$$array_name\{\$key\} .= ${tmp_file}q|$depth|$suffix; \n";
+
+		    } else {
+			print FILE
+    "\$$array_name\{\$key\} .= q|$file|$suffix; \n";
+		    }
+		} elsif ($array_name eq "printable_key") {
+		    print FILE
+    "\$$array_name\{\$key\} = q|$file|$suffix; \n";
+
+		} else {
+		    print FILE
+    "\$$array_name\{\$key\} = ${prefix}q|$file|$suffix; \n";
+		}
+
+		if ($type =~ /(figure|table|images)/) {} else {
+		    print FILE "\$noresave\{\$key\} = \"\$nosave\";\n";
+		}
+
+		if ($type eq "sections") {
+		    ($depth, $done_file, $title) = split($delim, $file);
+		    print FILE "\$done\{\"\$\{dir\}$done_file\"\} = 1;\n";
+		}
+	    }
+	}
+	print FILE "\n1;\n\n"  unless  ( $array_name =~ /index/ );
+	close (FILE);
+    } else {
+	print "\nSAVE_FILE:$array_name: ${PREFIX}$type.pl  EMPTY " if ($VERBOSITY > 1);
+    }
+}
+
+# returns true if $AUTO_NAVIGATION is on and there are more words in $_
+# than $WORDS_IN_PAGE
+sub auto_navigation {
+    # Uses $_;
+    local(@tmp) = split(/\W*\s+\W*/, $_);
+    ($AUTO_NAVIGATION && ( (scalar @tmp) > $WORDS_IN_PAGE));
+}
+
+# Returns true if $f1 is newer than $f2
+sub newer {
+    ($f1,$f2) = @_;
+    local(@f1s) = stat($f1);
+    local(@f2s) = stat($f2);
+    ($f1s[9] > $f2s[9]);
+};
+
+sub iso_map {
+    local($char, $kind, $quiet) = @_;
+    my($character_map,$enc);
+    local ($this);
+
+    if ( $CHARSET && $HTML_VERSION ge "2.1" ) {
+	# see if it is a character in the charset
+	$character_map = ((($charset =~ /utf/)&&!$NO_UTF)?
+			  'iso_10646' : $CHARSET );
+	$character_map =~ tr/-/_/;
+	eval "\$enc = \$${character_map}_character_map\{\"$char$kind\"\}";
+	print "\n no support for $CHARSET: $@ " if ($@);
+    }
+    if ($USE_ENTITY_NAMES && $enc) { return(";SPM$char$kind;") }
+
+    if ($enc) {
+	$enc =~ /^\&\#(\d{3});$/;
+	# maybe convert it to an 8-bit character
+	if ($NO_UTF && !$USE_UTF && ($1<=255)) { $enc = chr($1) }
+#	elsif (!$USE_UTF &&($1>127)&&($1<160)) { $enc = chr($1) }
+	elsif ($character_map !~ /^iso_(8859_1|10646)/) {
+	# get its latin1 or unicode entity encoding
+	    $enc = $iso_8859_1_character_map{"$char$kind"}
+	        ||$iso_8859_1A_character_map{"$char$kind"}
+	        ||$iso_10646_character_map{"$char$kind"}
+	}
+     } else {
+	# get its latin1 or unicode entity encoding, if available
+	$enc = $iso_8859_1_character_map{"$char$kind"}
+	    ||$iso_8859_1A_character_map{"$char$kind"}
+	    ||$iso_10646_character_map{"$char$kind"};
+    }
+
+    if ($enc) {
+	$ISOLATIN_CHARS = 1; $enc;
+    } elsif (!$image_made{"$char$kind"}) {
+	print "\ncouldn't convert character $char$kind into available encodings"
+	    if (!quiet &&($VERBOSITY > 1));
+	&write_warnings(
+	    "couldn't convert character $char$kind into available encodings"
+	    . ($ACCENT_IMAGES ? ', using image' : '')) unless ($quiet);
+	$image_made{"$char$kind"} = 1;
+	'';
+    } else {''}
+}
+
+sub titles_language {
+    local($_) = @_;
+    local($lang) = $_ . "_titles";
+    if (defined(&$lang)) { &$lang }
+    else {
+	&english_titles;
+	&write_warnings(
+	    "\nThere is currently no support for the $tmp language." .
+	    "\nSee the file $CONFIG_FILE for examples on how to add it\n\n");
+    }
+}
+
+sub translate_titles {
+    $toc_title = &translate_commands($toc_title) if ($toc_title =~ /\\/);
+    $lof_title = &translate_commands($lof_title) if ($lof_title =~ /\\/);
+    $lot_title = &translate_commands($lot_title) if ($lot_title =~ /\\/);
+    $idx_title = &translate_commands($idx_title) if ($idx_title =~ /\\/);
+    $ref_title = &translate_commands($ref_title) if ($ref_title =~ /\\/);
+    $bib_title = &translate_commands($bib_title) if ($bib_title =~ /\\/);
+    $abs_title = &translate_commands($abs_title) if ($abs_title =~ /\\/);
+    $app_title = &translate_commands($app_title) if ($app_title =~ /\\/);
+    $pre_title = &translate_commands($pre_title) if ($pre_title =~ /\\/);
+    $foot_title = &translate_commands($foot_title) if ($foot_title =~ /\\/);
+    $fig_name = &translate_commands($fig_name) if ($fig_name =~ /\\/);
+    $tab_name = &translate_commands($tab_name) if ($tab_name =~ /\\/);
+    $prf_name = &translate_commands($prf_name) if ($prf_name =~ /\\/);
+    $page_name = &translate_commands($page_name) if ($page_name =~ /\\/);
+    $child_name = &translate_commands($child_name) if ($child_name =~ /\\/);
+    $info_title = &translate_commands($info_title) if ($info_title =~ /\\/);
+    $part_name = &translate_commands($part_name) if ($part_name =~ /\\/);
+    $chapter_name = &translate_commands($chapter_name)
+	if ($chapter_name =~ /\\/);
+    $section_name = &translate_commands($section_name)
+	if ($section_name =~ /\\/);
+    $subsection_name = &translate_commands($subsection_name)
+	if ($subsection_name =~ /\\/);
+    $subsubsection_name = &translate_commands($subsubsection_name)
+	if ($subsubsection_name =~ /\\/);
+    $paragraph_name = &translate_commands($paragraph_name)
+	if ($paragraph_name =~ /\\/);
+    $see_name = &translate_commands($see_name) if ($see_name =~ /\\/);
+    $also_name = &translate_commands($also_name) if ($also_name =~ /\\/);
+    $next_name = &translate_commands($next_name) if ($next_name =~ /\\/);
+    $prev_name = &translate_commands($prev_name) if ($prev_name =~ /\\/);
+    $up_name = &translate_commands($up_name) if ($up_name =~ /\\/);
+    $group_name = &translate_commands($group_name) if ($group_name =~ /\\/);
+    $encl_name = &translate_commands($encl_name) if ($encl_name =~ /\\/);
+    $headto_name = &translate_commands($headto_name) if ($headto_name =~ /\\/);
+    $cc_name = &translate_commands($cc_name) if ($cc_name =~ /\\/);
+    $default_title = &translate_commands($default_title)
+	if ($default_title =~ /\\/);
+}
+####################### Code Generation Subroutines ############################
+# This takes a string of commands followed by optional or compulsory
+# argument markers and generates a subroutine for each command that will
+# ignore the command and its arguments.
+# The commands are separated by newlines and have the format:
+##      <cmd_name>#{}# []# {}# [] etc.
+# {} marks a compulsory argument and [] an  optional one.
+sub ignore_commands {
+    local($_) = @_;
+    foreach (/.*\n?/g) {
+	s/\n//g;
+	# For each line
+	local($cmd, @args) = split('\s*#\s*',$_);
+	next unless $cmd;
+	$cmd =~ s/ //;
+	++$ignore{$cmd};
+	local ($body, $code, $thisone) = ("", "");
+	
+	# alter the pattern here to debug particular commands
+	$thisone = 1 if ($cmd =~ /let/);
+
+	if (@args) {
+	    print "\n$cmd: ".scalar(@args)." arguments" if ($thisone);
+	    # Replace the argument markers with appropriate patterns
+	    foreach $arg (@args) {
+		print "\nARG: $arg" if ($thisone);
+		if ($arg =~ /\{\}/) {
+		    $body .= 'local($cmd) = '."\"$cmd\"".";\n";
+		    $body .= '$args .= &missing_braces'."\n ".'unless (';
+		    $body .= '(s/$next_pair_pr_rx/$args .= $2;\'\'/eo)'."\n";
+		    $body .= '  ||(s/$next_pair_rx/$args .= $2;\'\'/eo));'."\n";
+		    print "\nAFTER:$'" if (($thisone)&&($'));
+		    $body .= $' if ($');
+		} elsif ($arg =~ /\[\]/) {
+		    $body .= '($dummy, $pat) = &get_next_optional_argument;'
+			. '$args .= $pat;'."\n";
+		    print "\nAFTER:$'" if (($thisone)&&($'));
+		    $body .= $' if ($');
+		} elsif ($arg =~ /^\s*\\/) {		    
+		    $body .= '($dummy, $pat) = &get_next_tex_cmd;'
+			. '$args .= $pat;'."\n";
+		    print "\nAFTER:$'" if (($thisone)&&($'));
+		    $body .= $' if ($');
+		} elsif ($arg =~ /<<\s*([^>]*)[\b\s]*>>/) {
+		    local($endcmd, $after) = ($1,$');
+		    $after =~ s/(^\s*|\s*$)//g;
+		    $endcmd = &escape_rx_chars($endcmd);
+		    $body .= 'if (/'.$endcmd.'/o) { $args .= $`; $_ = $\' };'."\n";
+		    print "\nAFTER:$after" if (($thisone)&&($after));
+		    $body .= "$after" if ($after);
+		} else {
+		    print "\nAFTER:$'" if (($thisone)&&($arg));
+		    $body .= $arg ;
+		}
+	    }
+	    # Generate a new subroutine
+#	    $code = "sub do_cmd_$cmd {\n".'local($_) = @_;'. join('', at args) .'$_}';
+	    $code = "sub do_cmd_$cmd {\n"
+		. 'local($_,$ot) = @_; '
+		. 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R; '
+		. 'local($args); '
+		. "\n" . $body . (($body)? ";\n" : '')
+		. (($thisone)? "print \"\\n$cmd:\".\$args.\"\\n\";\n" : '')
+		. (($arg)? $arg : '$_') . "}";
+	    print STDOUT "\n$code\n" if ($thisone); # for error-checking
+	    eval ($code); # unless ($thisone);
+	    print STDERR "\n\n*** sub do_cmd_$cmd failed: $@\n" if ($@);
+	} else {
+	    $code = "sub do_cmd_$cmd {\n".'$_[0]}';
+	    print "\n$code\n" if ($thisone); # for error-checking
+	    eval ($code); # unless ($thisone);
+	    print STDERR "\n\n*** sub do_cmd_$cmd failed: $@\n" if ($@);
+        }
+    }
+}
+
+
+sub ignore_numeric_argument {
+    # Chop this off
+    #RRM: 2001/11/8: beware of taking too much, when  <num> <num> 
+    local($num) = '(^|width|height|plus|minus)\s*[+-]?[\d\.]+(cm|em|ex|in|pc|pt|mm)?\s*';
+    do { s/^\s*=?\s*//so; s/^($num)*//so } unless (/^(\s*\<\<\d+\>\>|$)/);
+}
+
+sub get_numeric_argument {
+    my ($num_rx,$num) = ('','');
+    # Collect the numeric part
+    #RRM: 2001/11/8: beware of taking too much, when  <num> <num> 
+    $num_rx = '(^|width|height|plus|minus)\s*[+-]?[\d\.]+(cm|em|ex|in|pc|pt|mm)?\s*';
+    do { s/^\s*=?\s*//so; s/($num_rx)*/$num=$&;''/soe } unless (/^(\s*\<\<\d+\>\>|$)/);
+    $num;
+}
+
+sub process_in_latex_helper {
+    local($ctr,$val,$cmd) = @_;
+    ($ASCII_MODE ? "[$cmd]" : 
+	&process_in_latex("\\setcounter{$ctr}{$val}\\$cmd"))
+}
+
+sub do_cmd_catcode {
+    local($_) = @_;
+    s/^\s*[^=]+(=?\s*\d+\s|\\active)\s?//;
+    $_;
+}
+
+sub do_cmd_string {
+    local($_) = @_;
+    local($tok);
+    s/^\s*(\\([a-zA-Z]+|.)|[&;]\w+;(#\w+;)?|.)/$tok=$1;''/e;
+    if ($2) {$tok = "\\$2"};
+    "$tok".$_
+}
+
+sub do_cmd_boldmath {
+    local($_) = @_;
+    $BOLD_MATH = 1;
+    $_;
+}
+
+sub do_cmd_unboldmath {
+    local($_) = @_;
+    $BOLD_MATH = 0;
+    $_;
+}
+
+sub do_cmd_lq {
+    local($_) = @_ ;
+    local($lquote);
+    # check for double quotes
+    if (s/^\s*\\lq(\b|$|[^A-Za-z])/$1/) {
+	$lquote = ((($HTML_VERSION < 4)&&!($charset =~ /utf/)) ? '``'
+		: &do_leftquotes($_));
+    } else {
+	$lquote = ((($HTML_VERSION < 4)&&!($charset =~ /utf/)) ? '`'
+		: &do_leftquote($_));
+    }
+    $lquote . $_;
+}
+
+sub do_leftquote {
+    # MRO: use $_[0] : local(*_) = @_;
+    local($quote,$lquo) = ('',($HTML_VERSION<5)? '‘' : ';SPMlsquo;');
+    # select whole quotation, if \lq matches \rq
+    if ($_[0] =~ /^(.*)((\\rq\\rq|'')*)(\\rq)/) {
+	$quote = $1.$2; $_[0] = $';
+	local($rquo) = &do_rightquote();
+	&process_quote($lquo,$quote,$rquo);
+    } else { $lquo; }
+}
+
+sub do_leftquotes {
+    # MRO: use $_[0] : local(*_) = @_;
+    local($quote,$lquo) = ('',($HTML_VERSION<5)? '“' : ';SPMldquo;');
+    # select whole quotation, if \lq\lq matches \rq\rq or ''
+    if ($_[0] =~ /^(.*)(\\rq\\rq|'')/) {
+	$quote = $1; $_[0] = $';
+	local($rquo) = &do_rightquotes();
+	&process_quote($lquo,$quote,$rquo);
+    } else { $lquo; }
+}
+
+# RRM: By default this just concatenates the strings; e.g. ` <quote> '
+# This can be overridden in a html-version file
+sub process_quote { join ('', @_) }
+
+sub do_cmd_rq {
+    local($_) = @_ ;
+    local($rquote);
+    if ($_ =~ s/^\s*\\rq\b//) {
+	$rquote = ((($HTML_VERSION < 4)&&!($charset =~ /utf/)) ? "''"
+		: &do_rightquotes());
+    } else { 
+	$rquote = ((($HTML_VERSION < 4)&&!($charset =~ /utf/)) ? "'"
+		: &do_rightquote());
+    }
+    $rquote . $_;
+}
+
+sub do_rightquote { (($HTML_VERSION < 5)? '’' : ';SPMrsquo;') }
+sub do_rightquotes { (($HTML_VERSION < 5)? '”' : ';SPMrdquo;') }
+
+sub do_cmd_parbox {
+    local($_) = @_;
+    local($args, $contents, $dum, $pat);
+    $* = 1;			# Multiline matching ON
+    ($dum,$pat) = &get_next_optional_argument; # discard this
+    ($dum,$pat) = &get_next_optional_argument; # discard this
+    ($dum,$pat) = &get_next_optional_argument; # discard this
+    $args .= $pat if ($pat);
+    $pat = &missing_braces unless (
+	(s/$next_pair_pr_rx/$pat=$2;''/eo)
+	||(s/$next_pair_rx/$pat=$2;''/eo));
+    $args .= "{".$`.$pat."}";
+    $contents = &missing_braces unless (
+	(s/$next_pair_pr_rx/$contents=$2;''/eo)
+	||(s/$next_pair_rx/$contents=$2;''/eo));
+    $* = 0;			# Multiline matching OFF
+    $args .= "{".$`.$contents."}";
+    if ($NO_PARBOX_IMAGES) {
+	$contents = join ('', &do_cmd_par(), $contents, '</P>' );
+    } else {
+	$contents = &process_math_in_latex('','text',0,"\\parbox$args")
+	    if ($contents);
+    }
+    $contents . $_;
+}
+
+
+sub do_cmd_mbox {
+    local($_) = @_;
+    local($text,$after)=('','');
+    $text = &missing_braces unless (
+	(s/$next_pair_pr_rx/$text = $2;''/eo)
+	||(s/$next_pair_rx/$text = $2;''/eo));
+    $after = $_;
+
+    # incomplete macro replacement
+    if ($text =~ /(^|[^\\<])#\d/) { return($after) }
+
+    if ($text =~ /(tex2html_wrap_inline|\$$OP(\d+)$CP$OP\2$CP\$|\$$O(\d+)$C$O\2$C\$)/) {
+	if ($text =~ 
+	    /$image_mark#([^#]+)#([\.,;:\)\]])?(\001)?([ \t]*\n?)(\001)?/) {
+	    local($mbefore, $mtext, $mafter) = ($`, $&, $');
+	    $mbefore = &translate_commands($mbefore) if ($mbefore =~ /\\/);
+	    $mafter = &translate_commands($mafter) if ($mafter =~ /\\/);
+	    join('', $mbefore, $mtext, $mafter, $after);
+	} else {
+	    join ('', &process_math_in_latex('','','',"\\hbox{$text}"), $after )
+	}
+    } else {
+	$text = &translate_environments($text);
+	$text = &translate_commands($text);
+	join('', $text, $after);
+    }
+}
+
+
+
+# *Generates* subroutines to handle each of the declarations
+# like \em, \quote etc., in case they appear with the begin-end
+# syntax.
+sub generate_declaration_subs {
+    local($key, $val, $pre, $post, $code );
+    print "\n *** processing declarations ***\n";
+    while ( ($key, $val) = each %declarations) {
+	if ($val) {
+	    ($pre,$post) = ('','');
+	    $val =~ m|</.*$|;
+	    do {$pre = $`; $post = $& } unless ($` =~ /^<>/);
+	    $pre =~ s/"/\\"/g; $post =~ s/"/\\"/g;
+	    $code = "sub do_env_$key {"
+#		. 'local($_) = @_;' . "\n"
+#		. 'push(@$open_tags_R, $key);'. "\n"
+#		. '$_ = &translate_environments($_);'. "\n"
+#		. '$_ = &translate_commands($_);'. "\n"
+#		. "join('',\"$pre\",\"\\n\"," .'$_' .",\"$post\");\n};";
+		. '&declared_env('.$key.', at _)};';
+	    eval $code;
+	    if ($@) {print "\n *** $key ".  $@ };
+	}
+    }
+}
+
+# *Generates* subroutines to handle each of the sectioning commands.
+sub generate_sectioning_subs {
+    local($key, $val, $cmd, $body);
+    while ( ($key, $val) = each %standard_section_headings) {
+	$numbered_section{$key} = 0;
+	eval "sub do_cmd_$key {"
+	    . 'local($after,$ot) = @_;'
+	    . 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'
+            . '&reset_dependents('. $key . ');'
+            . '&do_cmd_section_helper('.$val.','.$key.');}';
+	print STDERR "\n*** sub do_cmd_$key failed:\n$@\n" if ($@);
+	# Now define the *-form of the same commands. The difference is that the
+	# $key is not passed as an argument.
+	eval "sub do_cmd_$key" . "star {"
+	    . 'local($after,$ot) = @_;'
+	    . 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'
+	    . '&do_cmd_section_helper(' . $val . ');}';
+	print STDERR "\n*** sub do_cmd_${key}star failed:\n$@\n" if ($@);
+	# Now define the macro  \the$key  
+	&process_commands_wrap_deferred("the$key \# {}\n");
+###	local($_) = "<<1>>$key<<1>>";
+	$body = "<<1>>$key<<1>>";
+	&make_unique($body);
+	$cmd = "the$key";
+	eval "sub do_cmd_$cmd {"
+	    . 'local($after,$ot) = @_;'
+	    . 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'
+	    . '&do_cmd_arabic(' . "\"$body\"" . ").\$after;};";
+	print STDERR "\n*** sub do_cmd_$cmd failed:\n$@\n" if ($@);
+	$raw_arg_cmds{$cmd} = 1;
+    }
+    &addto_dependents('chapter','section');
+    &addto_dependents('section','subsection');
+    &addto_dependents('subsection','subsubsection');
+    &addto_dependents('subsubsection','paragraph');
+    &addto_dependents('paragraph','subparagraph');
+}
+
+sub addto_dependents {
+    local($ctr, $dep) = @_;
+    local($tmp, $depends);
+    if ($depends = $depends_on{$dep}) {
+	&remove_dependency($depends, $dep) }
+    $depends_on{$dep} = $ctr;
+
+    $tmp = $dependent{$ctr};
+    if ($tmp) { 
+	$dependent{$ctr} = join($delim, $tmp, $dep);
+    } else { $dependent{$ctr} = $dep }
+}
+
+sub remove_dependency {
+    local($ctr, $dep) = @_;
+    local(@tmp, $tmp, $dtmp);
+    print "\nremoving dependency of counter {$dep} from {$ctr}\n";
+    foreach $dtmp (split($delim, $dependent{$ctr})) {
+	push(@tmp, $dtmp) unless ($dtmp =~ /$dep/);
+    }
+    $dependent{$ctr} = join($delim, @tmp);
+}
+
+
+# Uses $after which is defined in the caller (the caller is a generated subroutine)
+# Also uses @curr_sec_id
+#
+#JCL(jcl-tcl) (changed almost everything)
+#
+sub do_cmd_section_helper {
+    local($H,$key) = @_;
+    local($section_number, $titletext, $title_key, @tmp, $align, $dummy);
+    local($anchors,$pre,$run_title,$_) = ('', "\n", '', $after);
+    local($open_tags_R) = [];
+
+    # if we have a $key the current section is not of the *-form, so we need
+    # to update the counters.
+    &do_cmd_stepcounter("${O}0$C$key${O}0$C")
+#	if ($key && !$making_name);
+#	if ($key && !($unnumbered_section_commands{$key}) && !$making_name);
+	if ($key && !($unnumbered_section_commands{$key}));
+#   $latex_body .= "\\stepcounter{$key}\n" if $key;
+#   &reset_dependents($key) if ($dependent{$key});
+
+    local($br_id);
+#    if ($USING_STYLES) {
+#	$txt_style{"H$H.$key"} = " " unless $txt_style{"H$H.$key"}; 
+#	$H .= " CLASS=\"$key\"; 
+#    };
+
+    local ($align, $dummy)=&get_next_optional_argument;
+    if (($align =~/^(left|right|center)$/i)&&($HTML_VERSION > 2.0)) {
+        $align = "ALIGN=\"$1\"";
+    } elsif ($align) {
+	# data was meant to be a running-head !
+	$br_id = ++$global{'max_id'};
+	$run_title = &translate_environments("$O$br_id$C$align$O$br_id$C");
+	$run_title = &translate_commands($run_title) if ($run_title =~ /\\/);
+	$run_title =~ s/($O|$OP)\d+($C|$CP)//g;
+	$align = '';
+    } else {
+    }
+    $titletext = &missing_braces 
+	unless s/$next_pair_rx/$titletext=$2;''/eo;
+    $br_id = ++$global{'max_id'};
+    $titletext = &translate_environments("$O$br_id$C$titletext$O$br_id$C");
+
+    $title_key = $run_title || $titletext;
+    $title_key =~ s/$image_mark\#([^\#]+)\#(\\space)?/&purify_caption($1)/e;
+    # This should reduce to the same information as contained in the .aux file.
+    $title_key = &sanitize(&simplify($title_key));
+
+    # RRM: collect all anchors from \label and \index commands
+    ($anchors,$titletext) = &extract_anchors($titletext);
+    local($saved_title) = $titletext;
+    do {
+        # to ensure a style ID is not saved and re-used in (mini-)TOCs
+	local($USING_STYLES) = 0;
+	$titletext = &translate_environments($titletext);
+	$titletext = &translate_commands($titletext) 
+	    if ($titletext =~/\\/);
+    };
+    # but the style ID can be used for the title on the HTML page
+    if (!($titletext eq $saved_title)) {
+	$saved_title = &translate_environments($saved_title);
+	$saved_title = &translate_commands($saved_title) 
+	    if ($saved_title =~/\\/);
+	$saved_title = &simplify($saved_title);
+    }
+    local($closures) = &close_all_tags();
+    $saved_title .= $closures;
+    $title_text .= $closures;
+
+    # This is the LaTeX section number read from the $FILE.aux file
+    @tmp = split(/$;/,$encoded_section_number{$title_key});
+    $section_number = shift(@tmp);
+    $section_number = "" if ($section_number eq "-1");
+    $encoded_section_number{$title_key} = join($;, @tmp)
+#	unless (defined $title);
+	unless ($title);
+
+    # need to check also &{wrap_cmd_... also, if \renewcommand has been used; 
+    # thanks Bruce Miller
+    local($thehead,$whead) = ("do_cmd_the$key","wrap_cmd_the$key");
+#    $thehead = ((defined &$thehead)? 
+#	&translate_commands("\\the$key") : '');
+    $thehead = ((defined &$thehead)||(defined &$whead)
+	? &translate_commands("\\the$key") : '');
+    $thehead .= $SECNUM_PUNCT
+	if ($SECNUM_PUNCT &&($thehead)&& !($thehead =~ /\./));
+    $section_number = $thehead if (($thehead)&&($SHOW_SECTION_NUMBERS));
+
+    #JKR: Don't prepend whitespace 
+    if ($section_number) {
+	$titletext = "$section_number " . $titletext;
+	$saved_title = "$section_number " . $saved_title;
+	$run_title = "$section_number " . $run_title if $run_title;
+    }
+
+#    $toc_sec_title = $titletext;
+#    $toc_sec_title = &purify($titletext);
+    $toc_sec_title = &simplify($titletext);
+    $titletext = &simplify($titletext);
+#    $TITLE = &purify($titletext);
+    local($after) = $_;
+    do {
+	local($_) = $titletext; &remove_anchors; 
+	if ($run_title) {
+	    $TITLE = $run_title;
+	} elsif ($_) {
+	    $TITLE = $_
+	} else { $TITLE = '.' };
+    };
+    $global{$key}-- if ($key && $making_name);
+    return ($TITLE) if (defined $title);
+
+    #RRM: no preceding \n when this is the first section-head on the page.
+    if (! $key || $key < $MAX_SPLIT_DEPTH) { $pre = '' };
+    if ( defined &make_pre_title) {
+	$pre = &make_pre_title($saved_title, $H);
+    }
+
+    undef $open_tags_R;
+    $open_tags_R = [ @save_open_tags ];
+    
+    join('', $pre, &make_section_heading($saved_title, $H, $align.$anchors)
+	, $open_all, $_);
+}
+
+sub do_cmd_documentclass {
+    local($_) = @_;
+    local ($docclass)=('');
+    local ($cloptions,$dum)=&get_next_optional_argument;
+    $docclass = &missing_braces unless (
+	(s/$next_pair_pr_rx/$docclass = $2;''/eo)
+	||(s/$next_pair_rx/$docclass = $2;''/eo));
+    local($rest) = $';
+    &do_require_package($docclass);
+    if (! $styles_loaded{$docclass}) {
+	&no_implementation("document class",$docclass);
+    } else {
+	if($cloptions =~ /\S+/) { # are there any options?
+	    &do_package_options($docclass,$cloptions);
+	}
+    }
+    $rest;
+}
+sub do_cmd_documentstyle { &do_cmd_documentclass($_[0]); }
+
+sub do_cmd_usepackage {
+    local($_) = @_;
+    # RRM:  allow lists of packages and options
+    local ($package, $packages)=('','');
+    local ($options,$dum)=&get_next_optional_argument;
+    $packages = &missing_braces unless (
+	(s/$next_pair_pr_rx/$packages = $2;''/eo)
+	||(s/$next_pair_rx/$packages = $2;''/eo));
+    local($rest) = $_;
+    # MRO: The files should have already been loaded by
+    #      TMP_styles, but we better make it sure.
+    foreach $package (split (',',$packages)) {	# allow multiple packages
+	$package =~ s/\s|\%|$comment_mark\d*//g; # remove whitespace 
+	$package =~ s/\W/_/g; # replace non-alphanumerics
+	&do_require_package($package);
+	if (! $styles_loaded{$package}) {
+	    &no_implementation("package",$package);
+	} else {
+	    if($options =~ /\S+/) { # are there any options?
+		&do_package_options($package,$options);
+	    }
+	}
+    }
+    $rest;
+}
+
+
+sub no_implementation {
+    local($what,$which)= @_;
+    print STDERR "\nWarning: No implementation found for $what: $which";
+}
+
+sub do_cmd_RequirePackage {
+    local($_)= @_;
+    local($file);
+    local($options,$dum)=&get_next_optional_argument;
+    $file = &missing_braces unless (
+	(s/$next_pair_pr_rx/$file = $2;''/eo)
+	||(s/$next_pair_rx/$file = $2;''/eo));
+    local($rest) = $_;
+    $file =~ s/^[\s\t\n]*//o;
+    $file =~ s/[\s\t\n]*$//o;
+    # load the package, unless that has already been done
+    &do_require_package($file) unless ($styles_loaded{$file});
+    # process any options
+    if (! $styles_loaded{$file}) {
+	    &no_implementation("style",$file);
+    } else {
+	# process any options
+	&do_package_options($file,$options) if ($options);
+    }
+    $_ = $rest;
+    # ignore trailing optional argument
+    local($date,$dum)=&get_next_optional_argument;
+    $_;
+}
+
+sub do_cmd_PassOptionsToPackage {
+    local($_) = @_;
+    local($options,$file);
+    $options = &missing_braces unless (
+        (s/$next_pair_pr_rx/$options = $2;''/eo)
+        ||(s/$next_pair_rx/$options = $2;''/eo));
+    $file = &missing_braces unless (
+        (s/$next_pair_pr_rx/$file = $2;''/eo)
+        ||(s/$next_pair_rx/$file = $2;''/eo));
+    $passedOptions{$file} = $options;
+    $_;
+}
+sub do_cmd_PassOptionsToClass{ &do_cmd_PassOptionsToPackage(@_)}
+
+sub do_package_options {
+    local($package,$options)=@_;
+    local($option);
+    if ($passedOptions{$package}) { $options = $passedOptions{$package}.'.'.$options };
+    foreach $option (split (',',$options)) {
+        $option =~ s/^[\s\t\n]*//o;
+        $option =~ s/[\s\t\n]*$//o;
+	$option =~ s/\W/_/g; # replace non-alphanumerics
+	next unless ($option);
+        if (!($styles_loaded{$package."_$option"})) {
+            &do_require_packageoption($package."_$option");
+            if (!($styles_loaded{$package."_$option"})) {
+		&no_implementation("option","\`$option\' for \`$package\' package\n");
+	    }
+	}
+    }
+    $rest;
+}
+
+sub do_class_options {
+    local($class,$options)=@_;
+    local($option);
+    if ($passedOptions{$class}) { $options = $passedOptions{$class}.'.'.$options };
+    foreach $option (split (',',$options)) {
+        $option =~ s/^[\s\t\n]*//o;
+        $option =~ s/[\s\t\n]*$//o;
+	$option =~ s/\W/_/g; # replace non-alphanumerics
+	next unless ($option);
+        &do_require_package($option);
+        if (!($styles_loaded{$class."_$option"})) {
+            &do_require_packageoption($class."_$option");
+            if (!($styles_loaded{$class."_$option"})) {
+		&no_implementation("option","\`$option\' for document-class \`$class\'\n");
+	    }
+	}
+    }
+    $rest;
+}
+
+sub do_require_package {
+    local($file)= @_;
+    local($dir);
+    #RRM: make common ps/eps-packages use  epsfig.perl
+    $file = 'epsfig' if ($file =~ /^(psfig|epsf)$/);
+
+    if ($file =~ /^graphicx$/) {
+	# work-around the CVS repository bug: use graphixx , not graphicx
+	foreach $dir (split(/$envkey/,$LATEX2HTMLSTYLES)) {
+	    if (-f "$dir${dd}graphixx.perl") {
+		$file = 'graphixx';
+		last;
+	    }
+	}
+    }
+
+    
+    if (! $styles_loaded{$file}) {
+	# look for a file named ${file}.perl
+	# MRO: use $texfilepath instead of `..'
+	if ((-f "$texfilepath$dd${file}.perl") && ! $styles_loaded{$file}){
+	    print STDOUT "\nPackage: loading $texfilepath$dd${file}.perl";
+	    require("$texfilepath$dd${file}.perl");
+	    $styles_loaded{$file} = 1;
+	} else {
+	    foreach $dir (split(/$envkey/,$LATEX2HTMLSTYLES)) {
+		if ((-f "$dir$dd${file}.perl") && ! $styles_loaded{$file}){
+		    print STDOUT "\nPackage: loading $dir$dd${file}.perl";
+		    require("$dir$dd${file}.perl");
+	    	    $styles_loaded{$file} = 1;
+		    last;
+		}
+	    }
+	}
+    }
+}
+
+sub do_require_extension {
+    local($file)= @_;
+    local($dir);
+
+    if (! $styles_loaded{$file}) {
+	# look for a file named ${file}.pl
+	# MRO: use $texfilepath instead of `..'
+	if (-f "$texfilepath$dd${file}.pl") {
+	    print STDOUT "\nExtension: loading $texfilepath$dd${file}.pl";
+	    require("$texfilepath$dd${file}.pl");
+	    ++$styles_loaded{$file};
+	    $NO_UTF = 1 if (($file =~ /latin/)&&($charset =~/utf/));
+	} else {
+	    foreach $dir (split(/$envkey/,$LATEX2HTMLVERSIONS)) {
+		if (-f "$dir$dd${file}.pl"){
+		    print STDOUT "\nExtension: loading $dir$dd${file}.pl";
+		    require("$dir$dd${file}.pl");
+		    ++$styles_loaded{$file};
+		    $NO_UTF = 1 if (($file =~ /latin/)&&($charset =~/utf/));
+		    last;
+		}
+	    }
+	}
+    } else {
+	if (($file =~ /latin|hebrew/)&&($charset =~/utf|10646/)
+			&& $loading_extensions) {
+	    $NO_UTF = 1;
+	    $USE_UTF = 0;
+	    print STDOUT "\n\n ...producing $CHARSET output\n";
+	    $charset = $CHARSET;
+	} 
+    }
+}
+
+sub do_require_packageoption {
+    local($option)= @_;
+    local($do_option);
+    # first look for a file named ${option}.perl
+    &do_require_package($option) unless ($styles_loaded{$option});
+    # next look for a subroutine named  do_$option
+    $do_option = "do_$option";
+    if (!($styles_loaded{$option}) && defined(&$do_option)) {
+	&$do_option();
+	$styles_loaded{$option} = 1;
+    }
+}
+
+############################ Environments ################################
+
+# This is a dummy environment used to synchronise the expansion
+# of order-sensitive macros.
+sub do_env_tex2html_deferred {
+    local($_) = @_;
+    local($tex2html_deferred) = 1;
+    $_ = &process_command($single_cmd_rx,$_);
+}
+
+# catch wrapped commands that need not have been
+sub do_env_tex2html_nomath_inline {
+    local($_) = @_;
+    s/^\s+|\s+$//gs;
+    my($cmd) = $_;
+    if ($cmd=~s/^\\([a-zA-Z]+)//s) { $cmd = $1 };
+    return (&translate_commands($_)) if ($raw_arg_cmds{$cmd}<1);
+    &process_undefined_environment($env, $id, $_);
+}
+
+# The following list environment subroutines still do not handle
+# correctly the case where the list counters are modified (e.g. \alph{enumi})
+# and the cases where user defined bullets are mixed with the default ones.
+# e.g. \begin{enumerate} \item[(1)] one \item two \end{enumerate} will
+# not produce the same bullets as in the dvi output.
+sub do_env_itemize {
+    local($_) = @_;
+    $itemize_level++;
+    #RRM - catch nested lists
+    &protect_useritems($_);
+    $_ = &translate_environments($_);
+
+    local($bullet,$bulletx)=(' ','');
+    SWITCH: {
+	if ($itemize_level==1) { $bulletx = "\\bullet"; last SWITCH; }
+	if ($itemize_level==2) { $bulletx = "\\mathbf{\\circ}"; last SWITCH; }
+	if ($itemize_level==3) { $bulletx = "\\mathbf{\\ast}"; last SWITCH; }
+    }
+    $itemize_level--;
+
+    if (/\s*$item_description_rx/) {
+	# Contains user defined optional labels
+	$bulletx = &do_cmd_mbox("${O}1$C\$$bulletx\$${O}1$C") if $bulletx;
+	&do_env_description($_, " COMPACT", $bullet.$bulletx)
+    } else { &list_helper($_,'UL'); }
+}
+
+sub do_env_enumerate {
+    local($_) = @_;
+# Reiner Miericke provided the main code; integrated by RRM: 14/1/97
+# works currently only with 'enumerate' and derived environments
+# explicit styled labels are computed for each \item
+# ultimately the environment is done as:  &do_env_description($_, " COMPACT")
+    ++$enum_level;
+    local(%enum) = %enum;		# to allow local changes
+# Reiner: \begin{enumerate}[<standard_label>]
+    local($standard_label) = "";
+    local(@label_fields);
+    local($label_func, $preitems, $enum_type);
+    local($rlevel) = &froman($enum_level); # e.g. 3 => iii
+
+    # \begin{enumerate}[$standard_label]
+    if (s/^$standard_label_rx//s) {		# multiline on/off ?
+	# standard label should be used later to modify
+	# entries in %enum
+	$standard_label = $1;		# save the standard label
+#	s/^$standard_label_rx//;	# and cut it off
+	$standard_label =~ s/([\\\[\]\(\)])/\\$1/g; # protect special chars
+
+	# Search for [aAiI1] which is not between a pair of { }
+	# Other cases like "\theenumi" are not handled
+	@label_fields = $standard_label =~ /$enum_label_rx/;
+	if (($standard_label =~ /^[aAiI1]$/)&&(not(/item\s*\[/))) {
+	    $enum_type = ' TYPE="'.$standard_label.'"';
+	    $standard_label = '';
+	} else {
+	    $label_func = $enum_label_funcs{$label_fields[$#label_fields-1]} . 
+		"(\'enum" . $rlevel . "\')";
+	    $enum{'theenum' . $rlevel} = "\&$label_func";
+#	local($thislabel) = "\&$label_func";
+#	do { local($_) = $thislabel; &make_unique($_);
+#	     $enum{'theenum' . $rlevel} = $_; };
+	    $standard_label = 
+		"\"$label_fields[0]\" . eval(\$enum{\"theenum$rlevel\"})"
+		. ".\"$label_fields[$#label_fields]\"";
+	    $enum{'labelenum' . $rlevel} = $standard_label;
+	}
+    }  elsif (s/^((.|\n)+?)\\item/$preitems=$1;"\\item"/es) {
+	my $pre_preitems; local($cmd); $label_part;
+	my $num_styles = join('|', values %enum_label_funcs );
+	while ($preitems =~
+	    /\s*\\renew(ed)?command\s*(($O|$OP)\d+($C|$CP))\\?((label|the)enum(\w+))\s*\2/) {
+	    # this catches one  \renewcommand{\labelenum}{....} 
+	    $pre_preitems .= $`; $preitems = $'; $cmd = $5;
+	    &missing_braces unless (
+	        ($preitems=~s/$next_pair_pr_rx\s*/$label_part=$2;''/oe)
+	        ||($preitems=~s/$next_pair_rx\s*/$label_part=$2;''/oe));
+	    $cmd =~ s/^label/the/;
+	    $label_part=~s/\\($num_styles)\s*(($O|$OP)\d+($C|$CP))(\w+)\2/".\&$1\(\'$5\'\)."/g;
+	    $label_part = '"'.$label_part.'"';
+	    $enum{$cmd} = $label_part;
+        }
+	$standard_label = 
+	    "\"$label_fields[0]\" . eval(\$enum{\"theenum$rlevel\"})"
+	    . ".\"$label_fields[$#label_fields]\"" if ($cmd);
+	$_ = $pre_preitems . $preitems . $_ if ($pre_preitems||$preitems);
+    } else {
+	@enum_default_type = ('A', '1', 'a', 'i', 'A') unless (@enum_default_type);
+	$enum_type = $enum_level%4;
+	$enum_type = ' Type="'. at enum_default_type[$enum_type].'"';
+    }
+
+    # enclose contents of user-defined labels within a group,
+    # in case of style-change commands, which could bleed outside the label.
+    &protect_useritems($_);
+    $_ = &translate_environments($_);	#catch nested lists
+
+    local($enum_result);
+    if (($standard_label)||(/\\item\[/)) {
+	# split it into items
+	@items = split(/\\item\b/,$_);
+	# save anything (non-blank) before the items actually start
+	$preitems = shift(@items);
+	$preitems =~ s/^\s*$//;
+	local($enum_label);
+	# prepend each item with an item label: \item => \item[<label>]
+	foreach $item (@items) {
+#	  unless ( $item =~ /^\s*$/ ) { # first line may be empty
+	    $enum{"enum" . $rlevel}++;	# increase enumi
+	    $enum_label = eval("$enum{'labelenum' . $rlevel}");
+	    # insert a label, removing preceding space, BUT...
+	    # do NOT handle items with existing labels
+	    $item =~ s/^\s*//;
+	    if ($item =~ s/^\s*\[([^]]*)\]//) {
+		$enum{"enum" . $rlevel}--;
+		$enum_label = "$1";
+		local($processed) = ($enum_label =~/$OP/);
+		$enum_label = join('',($processed ? "<#0#>" : "<<0>>")
+		    ,$enum_label ,($processed ? "<#0#>" : "<<0>>"))
+			if ($enum_label =~ /\\/);
+		if ($processed) { &make_unique_p($enum_label) }
+		elsif ($enum_label =~ /$O/) { &make_unique($enum_label) };
+		$item = "[${enum_label}]".$item;
+	    } else { 
+		local($processed) = ($enum_label =~/$OP/);
+		$enum_label = join('',($processed ? "<#0#>" : "<<0>>")
+		    ,$enum_label ,($processed ? "<#0#>" : "<<0>>"))
+			if ($enum_label =~ /\\/);
+		if ($processed) { &make_unique_p($enum_label) }
+		elsif ($enum_label =~ /$O/) { &make_unique($enum_label) };
+		$item = "[$enum_label\]$item";
+		$enum_label =~ s/\.$//;
+	    }
+	    if ($standard_label) {
+	        $item =~ s/(\\labelitem$rlevel|$standard_label)/$enum_label/g
+	    } else {
+	        $item =~ s/(\\labelitem$rlevel)/$enum_label/g
+	    }
+	};
+	$_ = join("\\item ", $preitems, @items);
+
+	# Original, but $enum_result
+	$enum_result = &do_env_description($_, " COMPACT");
+    } else {
+	$enum_result = &list_helper($_, "OL$enum_type", '', '');
+    }
+
+    #clean-up and revert the $enum_level
+    $enum{"enum" . $rlevel} = 0;
+    $enum{"enum" . &froman($enum_level)} = 0;
+    --$enum_level;
+    $enum_result;
+}
+
+sub do_env_list {
+    local ($_) = @_;
+    local ($list_type,$labels,$lengths) = ('UL','','');
+
+    $labels = &missing_braces unless	 ( # get the label specifier
+	(s/$next_pair_pr_rx/$labels=$2;''/e)
+	||(s/$next_pair_rx/$labels=$2;''/e));
+
+    $lengths = &missing_braces unless ( # get the length declarations
+	(s/$next_pair_pr_rx/$lengths=$2;''/e)
+	||(s/$next_pair_rx/$lengths=$2;''/e));
+    # switch to enumerated style if they include a \usecounter.
+    $list_type = 'OL' if $lengths =~ /\\usecounter/;
+
+    /\\item\b/; local($preitems) = $`;
+	$_ =~ s/^\Q$preamble//s if ($preitems);
+    $preitems =~s/^\s*|\s*$//g;
+    if ($preitems) {
+	$preitems = &translate_environments($preitems);
+	$preitems = &translate_commands($preitems) if ($preitems =~ /\\/);
+#	&write_warnings("\nDiscarding: $preitems before 1st item in list")
+#	    if ($preitems);
+    }
+
+    #RRM - catch nested lists
+    #RRM unfortunately any uses of the \\usecounter  within \item s
+    #    may be broken --- sigh.
+    &protect_useritems($_);
+    $_ = &translate_environments($_);
+
+    if (($list_type =~ /OL/)&&($labels)) {
+	local($br_ida,$br_idb,$label,$aft);
+	$br_ida = ++$global{'max_id'};
+	$lengths =~ s/\\usecounter((($O|$OP)\d+($C|$CP))[^<]+\2)/
+		&make_nowrapper(1)."\\stepcounter$1".&make_nowrapper(0)/e;
+	$labels = "$O$br_ida$C$lengths$O$br_ida$C".$labels;
+
+#	s/\\item\b\s*([^\[])/do {
+#		$label = $labels; $aft = $1;
+#		$br_id = ++$global{'max_id'};
+#		$label = &translate_environments(
+#			"$O$br_id$C$label$O$br_id$C");
+#		join('',"\\item\[" , $label, "\]$aft" );
+#	    }/eg;
+#	$labels ='';
+    }
+
+    if (($labels)||(/\\item\[/)) {
+	$_ = &list_helper($_, 'DL', $labels, $lengths)
+    } else {
+	$_ = &list_helper($_, $list_type, '', $lengths)
+    }
+    $_;
+}
+
+sub do_env_trivlist {
+    local($_) = @_;
+    local($compact,$item_sep,$pre_items) = ' COMPACT';
+    &protect_useritems($_);
+
+    # assume no styles initially for this list
+    local($close_tags,$reopens) = &close_all_tags();
+    local($open_tags_R) = [];
+    local(@save_open_tags) = ();
+
+    # include \label anchors from [...] items
+    s/$item_description_rx\s*($labels_rx8)?\s*/
+	(($9)? "<A NAME=\"$9\">$1<\/A>" : $1 ) ."\n"/eg;
+    # remove unwanted space before \item s
+    s/[ \t]*\\item\b/\\item/g;
+    
+    local($this_item,$br_id) = ('','');
+    local($this_sitem,$this_eitem) = ("\n<P>","</P>\n",'');
+
+    # assume no sub-lists, else...  why use {trivlist} ?
+    # extract up to the 1st \item
+    local(@items) = split(/\\item\b/, $_);
+    $pre_items = shift @items;
+    $_ = '';
+    while (@items) {
+	$br_id = ++$global{'max_id'};
+	$this_item = shift @items;
+	$this_item = &translate_environments(
+	     "$O$br_id$C".$pre_items.$this_item."$O$br_id$C" );
+	if ($this_item =~ /\\/) {
+	    $this_item = &translate_commands($this_item);
+	    $_ .= join('' , $this_sitem 
+		       , $this_item
+		       # , $this_eitem
+		       )
+	} else { $_ .= $this_sitem . $this_item }
+    }
+	
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_);
+
+    join('' , $close_tags , $_ , $reopens);
+
+}
+
+# enclose the contents of any user-defined labels within a group,
+# else any style-change commands may bleed outside the label.
+sub protect_useritems {
+    # MRO: use $_[0] instead: local(*_) = @_;
+    local($preitems, $thisitem);
+    $_[0] =~ s/^$par_rx\s*//s; # discard any \par before 1st item
+
+    # locate \item with optional argument 
+    local($saveRS) = $/; undef $/;
+    local(@preitems);
+    # allow one level of nested []
+    # MRO: Caution! We have a double-wildcarded RX here, this may cause
+    # trouble. Should be re-coded.
+    $_[0] =~ s/\\item[\s\r]*(\b(\[(([^\[\]]|\[[^]]*\])*)\])?|[^a-zA-Z\s])/
+	$thisitem = " $1";
+	if ($2) {
+	    $br_id = ++$global{'max_id'};
+	    $thisitem = '['.$O.$br_id.$C.$3.$O.$br_id.$C.']';
+	};
+	"\\item".$thisitem
+    /egm;
+
+    $/ = $saveRS;
+    $_[0] = join(@preitems, $_[0]);
+}
+
+sub do_env_description {
+    local($_, $compact, $bullet) = @_;
+    #RRM - catch nested lists
+    &protect_useritems($_);
+    $_ = &translate_environments($_) unless ($bullet);
+
+    # MRO: replaced $* with /m
+    $compact = "" unless $compact;
+    if ($compact) {		# itemize/enumerate with optional labels
+	s/\n?$item_description_rx\s*($labels_rx8)?\s*/"\n<\/DD>\n<DT>". 
+	    (($9)? "<A NAME=\"$9\">$1<\/A>" : $1 ) ."<\/DT>\n<DD>"/egm;
+    } else {
+	s/\n?$item_description_rx\s*($labels_rx8)?\s*/"\n<\/DD>\n<DT>". 
+	    (($9)? "<A NAME=\"$9\"><STRONG>$1<\/STRONG><\/A>" 
+	     : "<STRONG>$1<\/STRONG>") ."<\/DT>\n<DD>"/egm;
+    }
+    # and just in case the description is empty ...
+#JCL(jcl-del) - $delimiter_rx -> ^$letters
+    s/\n?\\item\b\s*([^$letters\\]|)\s*/\n<\/DD>\n<DT>$bullet<\/DT>\n<DD>$1/gm;
+    s/^\s+//m;
+
+    $_ = '<DD>'.$_ unless ($_ =~ s/^\s*<\/D(T|D)>\n?//s);
+    $_ =~ s/\n$//s;
+    "<DL$compact>\n$_\n</DD>\n</DL>";
+}
+
+sub list_helper {
+    local($_, $tag, $labels, $lengths) = @_;
+    local($item_sep,$pre_items,$compact,$etag,$ctag);
+    $ctag = $tag; $ctag =~ s/^(.*)\s.*$/$1/;
+
+    # assume no styles initially for this list
+    local($close_tags,$reopens) = &close_all_tags();
+    local($open_tags_R) = [];
+    local(@save_open_tags) = ();
+
+#    #RRM: cannot have anything before the first <LI>
+#    local($savedRS) = $/; $/='';
+#    $_ =~ /\\item[\b\r]/s;
+#    if ($`) { 
+#	$preitems = $`; $_ = $&.$';
+#	$preitems =~ s/<P( [^>]*)?>//g;
+#	$close_tags .= "\n".$preitems if $preitems;
+#    }
+#    $/ = $savedRS; 
+#
+
+    $* = 1;			# Multiline matching ON
+    if (($tag =~ /DL/)&&$labels) {
+	local($label,$aft,$br_id);
+	s/\\item\b[\s\r]*([^\[])/do {
+		$label = $labels; $aft = $1;
+		$br_id = ++$global{'max_id'};
+		$label = &translate_environments(
+			"$O$br_id$C$label$O$br_id$C");
+		join('',"\\item\[" , $label, "\]$aft" );
+	    }/eg;
+    }
+    $* = 0;			# Multiline matching OFF
+
+    # This deals with \item[xxx] ...
+    if ($tag =~ /DL/) {
+	$compact = ' COMPACT';
+	# include \label anchors in the <DT> part
+	# and  $pre_item  tags in the <DD> part:
+	if ($labels && $lengths) { 
+	    $item_sep = "\n</DD>\n<DT>";
+	} else {
+	    $item_sep = ($labels ? "<DT>$labels\n" : '') ."</DT>\n<DD>";
+	}
+	$etag = "\n</DD>";
+	s/$item_description_rx[\r\s]*($labels_rx8)?[\r\s]*/"<DT>" .
+	    (($9)? "<A NAME=\"$9\">$1<\/A>" : $1 ) ."\n<DD>"/egm;
+    } else {
+	$item_sep = "\n</LI>\n<LI>";
+	$etag = "\n</LI>";
+    }
+
+    # remove unwanted space before \item s
+    s/[ \t]*\\item\b/\\item/gm;
+
+    #JCL(jcl-del) - $delimiter_rx -> ^$letters
+    s/\n?\\item\b[\r\s]*/$item_sep/egm;
+
+    #RRM: cannot have anything before the first <LI>
+    local($savedRS) = $/; $/='';
+    $_ =~ /\Q$item_sep\E|<DT>|<LI>/s;
+    #RRM: ...try putting it before the list-open tag
+    if ($`) { 
+	$preitems = $`; $_ = $&.$';
+	$preitems =~ s/<P( [^>]*)?>//gm;
+	$close_tags .= "\n".$preitems if $preitems;
+    }
+    $_ =~ s/^\s*<\/[^>]+>\s*//s;
+
+    # remove \n from end of the last item
+    $_ =~ s/\n$//s;
+    $/ = $savedRS;
+
+    join('' , $close_tags , "\n<$tag$compact>\n" 
+	 , $_ , "$etag\n</$ctag>" , $reopens);
+}
+
+
+# RRM:  A figure environment generates a picture UNLESS it contains a 
+# {makeimage} sub-environment; in which case it creates a <DIV>
+# inside which the contents are interpreted as much as is possible.
+# When there are captions, this modifies $before .
+sub do_env_figure {
+    local($_) = @_;
+    local($halign, $anchors) = ('CENTER','');
+    local ($border, $attribs );
+    local($cap_width) = $cap_width;
+    my ($opt, $dummy) = &get_next_optional_argument;
+
+    my $abovedisplay_space = $ABOVE_DISPLAY_SPACE||"<P></P>\n";
+    my $belowdisplay_space = $BELOW_DISPLAY_SPACE||"<P></P>\n";
+
+    ($_,$anchors) = &extract_labels($_); # extract labels
+    # Try to establish the alignment
+    if (/^(\[[^\]]*])?\s*\\begin\s*<<\d*>>(\w*)<<\d*>>|\\(\w*)line/) {
+	$halign = $2.$3;
+	if ($halign =~ /right/i)  { $halign = 'RIGHT' }
+	elsif ($halign =~ /left/i) { $halign = 'LEFT' }
+	elsif ($halign =~ /center/i) { $halign = 'CENTER' }
+	else { $halign = 'CENTER' }
+    }
+
+    # allow caption-alignment to be variable
+    local($cap_align);
+    if ($FIGURE_CAPTION_ALIGN =~ /^(TOP|BOTTOM|LEFT|RIGHT)/i) {
+	$cap_align = join('', ' ALIGN="', $&, $','"')};  
+
+    local($cap_env, $captions,$has_minipage) = ('figure','');
+    if ((/\\begin\s*($O\d+$C)\s*(makeimage|minipage)\s*\1|\\docode/)||
+	(/\\includegraphics/&&(!/$htmlborder_rx|$htmlborder_pr_rx|\\htmlimage/))){
+	$has_minipage = ($2 =~ /minipage/sg );
+	$_ = &translate_environments($_);
+	if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	do { local($contents) = $_;
+	    &extract_captions($cap_env); $_ = $contents;
+	} if (/\\caption/);
+	$_ = &translate_commands($_);
+	while ($_ =~ s/(^\s*<BR>\s*|\s*<BR>\s*$)//sg){}; # remove unneeded breaks
+    } else {
+	do { local($contents) = $_;
+	    # MRO: no effect: &extract_captions($cap_env, *cap_width); $_ = $contents;
+	    &extract_captions($cap_env); $_ = $contents;
+	} if (/\\caption/);
+	# Generate picture of the whole environment
+	if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	$_ = &process_undefined_environment($env, $id, $_);
+	$_ = &post_latex_do_env_figure($_);
+	$_ =~ s/\s*<BR>\s*$//g;
+    }
+
+    if ($captions) {
+        # MRO: replaced $* with /m
+        $captions =~ s/^\n//m;
+        $captions =~ s/\n$//m;
+    }
+    s/$caption_mark//g;
+
+    local($close_tags) = &close_all_tags;
+    $_ .= $close_tags;
+
+    # place all the pieces inside a TABLE, if available
+    if ($HTML_VERSION > 2.1) {
+	if ($captions) {
+	    local($pxs,$len) = &convert_length($cap_width,$MATH_SCALE_FACTOR)
+		if $cap_width;
+	    local($table) = "<TABLE$env_id"; # WIDTH="65%"';
+	    $table .= " WIDTH=\"$pxs\"" if ($pxs);
+	    if ($border) { $table .= " BORDER=\"$border\"" } # no checking !!
+	    $table .= ">";
+	    s/^\s*|\s*$//g;
+	    join (''
+		    , $above_display_space
+		    , "\n<DIV", ($halign ? " ALIGN=\"$halign\"" :'')
+		    , '>', $anchors , $cap_anchors
+		    , "\n$table\n<CAPTION", $cap_align, '>'
+		    , $captions , "</CAPTION>\n<TR><TD>"
+		    , ($cap_width ? '</TD><TD>' : '')
+		    , $_ , '</TD>'
+		    , ($cap_width ? '<TD></TD>' : '')
+		    , "</TR>\n</TABLE>\n</DIV>\n"
+		    , $below_display_space
+	    )
+	} elsif ($halign) {
+	    if ($border||($attributes)||$env_id) {
+		&make_table( $border, $attribs, $anchors, '', $halign, $_ );
+	    } else {
+		join (''
+			, $above_display_space
+			, "\n<DIV ALIGN=\"$halign\">\n"
+			, ($anchors ? "\n<P>$anchors</P>" : '')
+			, $_
+			, "\n</DIV>"
+			, $below_display_space
+		)
+	    }
+	} else {
+	    if ($border||($attributes)||$env_id) {
+		join (''
+			, $above_display_space
+			, "\n<DIV", ($halign ? " ALIGN=\"$halign\"":'')
+			, '>'
+			, &make_table( $border, $attribs, $anchors, '', $halign, $_ )
+			, "\n</DIV><BR"
+			, (($HTML_VERSION > 3.1)? " CLEAR=\"ALL\"" :'')
+			, '>'
+			, $below_display_space
+		);
+	    } else {  
+		join (''
+			, $above_display_space
+			, "\n<DIV", ($halign ? " ALIGN=\"$halign\"":'')
+			, ">$anchors\n" , $_ , "\n</DIV><BR"
+			, (($HTML_VERSION > 3.1)? " CLEAR=\"ALL\"" :'')
+			, '>'
+			, $below_display_space
+		);
+	    }
+	}
+    } else {
+	# MRO: replaced $* with /m
+        s/^\n//m;
+        s/\n$//m;
+	if ($captions) {
+	    join('', "\n<BR>\n", (($anchors) ? "$anchors" : '')
+		, "$cap_anchors\n$captions\n<BR>" 
+		, "\n<P", ($halign ? " ALIGN=\"$halign\"":'')
+		, '>', $_ , "\n</P>");
+	} elsif ($halign) {
+	    join ('', "<BR>\n$anchors", $_ , "\n<BR>" )
+	} else {
+	    join('', "<BR>\n<P", ($halign ? " ALIGN=\"$halign\"":'')
+		, ">$anchors\n" , $_ , "\n</P><BR>");
+	}
+    }
+}
+
+sub do_env_figurestar { &do_env_figure(@_) }
+
+sub do_env_table {
+    local($_) = @_;
+    local($halign, $anchors) = ('','');
+    local ( $border, $attribs );
+    &get_next_optional_argument;
+
+    # Try to establish the alignment 
+    if (/^(\[[^\]]*])?\s*\\begin\s*<<\d*>>(\w*)<<\d*>>|\\(\w*)line/) {
+	$halign = $2.$3;
+	if ($halign =~ /right/i)  { $halign = 'RIGHT' }
+	elsif ($halign =~ /left/i) { $halign = 'LEFT' }
+	elsif ($halign =~ /center/i) { $halign = 'CENTER' }
+	else { $halign = '' }
+    }
+
+    local($cap_env, $captions) = ('table','');
+
+    # allow caption-alignment to be variable
+    local($cap_align);
+    if ($TABLE_CAPTION_ALIGN =~ /^(TOP|BOTTOM|LEFT|RIGHT)/i) {
+	$cap_align = join('', ' ALIGN="', $&, $','"')};  
+
+    if ((/\\(begin|end)\s*($O\d+$C)\s*makeimage\s*\2/)||
+	    ($HTML_VERSION > 2.0 && (
+	        /\\begin\s*($O\d+$C)\s*((super)?tabular|longtable)\s*\1/))) {
+	$_ = &translate_environments($_);
+	($_,$anchors) = &extract_labels($_); # extract labels
+	do { local($contents) = $_;
+	    &extract_captions($cap_env); $_ = $contents;
+	} if (/\\caption/);
+	if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	$_ = &translate_commands($_);
+	while ($_ =~ s/(^\s*<BR>\s*|\s*<BR>\s*$)//g){};
+    } else {
+	# Make an image of the whole environment.
+	($_,$anchors) = &extract_labels($_); # extract labels
+	do { local($contents) = $_;
+	    &extract_captions($cap_env); $_ = $contents;
+	} if (/\\caption/);
+	if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+	$_ = &process_undefined_environment($env, $id, $_);
+	$_ = &post_latex_do_env_table($_);
+	$_ =~ s/\s*<BR>\s*$//g;
+    }
+
+    if ($captions) {
+        # MRO: replaced $* with /m
+        $captions =~ s/^\n//m;
+        $captions =~ s/\n$//m;
+    }
+    s/$caption_mark//g;
+
+    local($close_tags) = &close_all_tags;
+    $_ .= $close_tags;
+
+    #  when $captions remain place all the pieces inside a TABLE, if available
+    if ($HTML_VERSION > 2.1) {
+	if ($captions) {
+	    $halign = 'CENTER' unless $halign;
+	    local($table) = '<TABLE';
+	    if ($border) { $table .= " BORDER=\"$border\"" } # no checking !!
+	    $table .= ">";
+	    join ('', "<BR><P></P>\n<DIV$env_id ALIGN=\"$halign\">"
+		, "$anchors$cap_anchors\n$table\n<CAPTION", $cap_align, '>'
+		, $captions , "</CAPTION>\n<TR><TD>"
+		, $_ , "</TD></TR>\n</TABLE>\n</DIV><P></P><BR>" )
+	} elsif ($halign) {
+	    if ($halign) {
+		# MRO: replaced $* with /m
+		s/^\s*(<(P|DIV)$env_id ALIGN=\"\w+[^>]+>)/$1$anchors/m
+                    if ($anchors);
+		join('', "<BR>", $_, "\n<BR>" )
+	    } else {
+		join ('', "<BR>\n$anchors", $_ , "\n<BR>" )
+	    }
+        } else {
+            join ('', "<BR><P></P>\n<DIV$env_id ALIGN=\"CENTER\">$anchors\n", $_ , "\n</DIV><BR>" )
+        }
+    } else {
+        # MRO: replaced $* with /m
+        s/^\n//m;
+        s/\n$//m;
+        if ($captions) {
+            join('', "<BR>\n", (($anchors) ? "$anchors" : ''), "$cap_anchors\n$captions\n<BR>"
+                , "\n<P ALIGN=\"$halign\">", $_, "\n</P><BR>");
+        } elsif ($halign) {
+            join ('', "<BR><P></P>\n$anchors", $_ , "\n<P></P>" )
+        } else {
+            join('', "<BR>\n<P ALIGN=\"CENTER\">$anchors\n", $_, "\n</P><BR>");
+        }
+    }
+}
+
+sub do_env_tablestar { &do_env_table(@_) }
+
+# RRM:  A makeimage environment generates a picture of its entire contents, 
+#  UNLESS it is empty.
+#
+sub do_env_makeimage {
+    local($_) = @_;
+    local($attribs, $border);
+    s/^\s*//;
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    if (/^((\\begin\s*(($O|$OP)\d+($C|$CP))tex2html_deferred\3)?\\par(\\end(($O|$OP)\d+($C|$CP))tex2html_deferred\7)?\%?\s*\n)+$/s) { return("\n<BR>\n") }
+    if (/^(\s\%?\n)+$/s) { return() }
+    $_ = &process_undefined_environment($env, $id, $_);
+    if (($border||($attributes))&&($HTML_VERSION > 2.1 ))
+	{ $_ = &make_table( $border, $attribs, '', '', '', $_ ) }
+    $_ . ((!$_=~/^\s*$/)? "\n<BR>\n" :'');
+}
+
+sub do_env_abstract { &make_abstract($_[0]) }
+
+sub do_env_minipage {
+    local($_) = @_;
+    &get_next_optional_argument;
+    local($width);
+    $width = &missing_braces unless (
+    	(s/$next_pair_pr_rx/$width=$2;''/e)
+    	||(s/$next_pair_rx/$width=$2;''/e));
+    local($pxs,$len) = &convert_length($width,$MATH_SCALE_FACTOR) if $width;
+    $width = " WIDTH=\"$pxs\"";
+    
+    local ( %mpfootnotes, $mpfootnotes ) unless ($MINIPAGE);
+    local ( $border, $attribs, $footfile);
+    $global{'mpfootnote'} = 0 unless ($MINIPAGE);
+    $MINIPAGE++;
+    print "\n *** doing minipage *** " if ($VERBOSITY > 1);
+    local($open_tags_R) = [ @$open_tags_R ];
+    local($close_tags,$reopens) = &close_all_tags();
+    local(@save_open_tags) = @$open_tags_R;
+   
+    local($minipage_caption) if $cap_env;
+    if ($cap_env &&($HTML_VERSION>2.1)) {
+	do {
+	    local($captions);
+	    local($contents) = $_;
+	    &extract_captions($cap_env) if ($_ =~ /\\caption/m);
+	    $minipage_caption = $captions;
+	    $_ = $contents;
+	    undef $contents; undef $captions;
+	};
+    }
+
+    if (s/^\s*$htmlborder_rx//so) {
+	$attribs = $2; $border = (($4)? "$4" : 1)
+    } elsif (s/^\s*$htmlborder_pr_rx//so) {
+	$attribs = $2; $border = (($4)? "$4" : 1)
+    }
+    if (/^\s*\\/) {
+	local($tmp) = ++$global{'max_id'};
+	$_ = $O.$tmp.$C.$_.$O.$tmp.$C
+    }
+    $_ = &translate_environments($_);
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    $_ = &translate_commands($_);
+    $MINIPAGE--; $MINIPAGE='' if ($MINIPAGE==0);
+
+    $_ .= &balance_tags();
+    $attribs .= $width unless ($attribs =~ /WIDTH/i);
+#    if (($border||$attribs)&&$MINIPAGE&&($HTML_VERSION>2.1)) { 
+    if (($border||$attribs||$env_id)&&$MINIPAGE&&($HTML_VERSION>2.1)) { 
+	$_ = &make_table( $border, $attribs, '', '', '', $_ );
+    } elsif ($MINIPAGE) { 
+	$_ = join ('', '<BR><HR>', $_ , '<BR><HR><BR>' );
+    } elsif (($border||($attribs)||$minipage_caption)&&($HTML_VERSION > 2.1 )) {
+	$mpfootnotes = '<DL>'.$mpfootnotes.'</DL>' if $mpfootnotes;
+	$_ = &make_table( $border, $attribs, '', $mpfootnotes, '', $_ );
+	$_ = join('','<BR><HR'
+		, (($HTML_VERSION > 3.0)? ' WIDTH="50\%" ALIGN="CENTER"' : '')
+		, '>', $_ , '<BR><HR'
+		, (($HTML_VERSION > 3.0)? ' WIDTH="50\%" ALIGN="CENTER"' : '')
+		, '><BR>') unless ($border||$attribs||$mpfootnotes);
+    } else {
+	$global{'mpfootnote'} = 0;
+	if ($mpfootnotes) {
+	    $mpfootnotes = '<DD>'.$mpfootnotes unless ($mpfootnotes =~ /^\s*<D(T|D)>/);
+	    $_ = join('','<BR><HR>', $_ , '<BR><HR'
+		, (($HTML_VERSION > 3.0)? ' WIDTH="200" ALIGN="LEFT"' : '')
+		, '><DL>', $mpfootnotes , '</DL><HR><BR'
+		, (($HTML_VERSION > 3.0)? ' CLEAR="all"' : '')
+		, '>' );
+	} else {
+	    $_ = join ('', '<BR><HR><P></P>', $_ , '<BR><HR><BR>' );
+	}
+    }
+    join('', $close_tags, $_, $reopens);
+}
+
+if (($HTML_VERSION > 2.1)&&($HTML_VERSION < 4.0)) {
+    $TABLE_attribs = ",ALIGN,";
+    $TABLE__ALIGN = ",left,right,center,";
+    $TABLE_attribs_rx_list = ",CELLPADDING,BORDER,WIDTH,CELLSPACING,";
+    $TABLE__WIDTH_rx = "\^\\d+%?";
+    $TABLE__BORDER_rx = $TABLE__CELLSPACING_rx = $TABLE__CELLPADDING_rx = "\^\\d+";
+}
+
+sub make_table {
+    local($border, $attribs, $anchors, $extra_cell, $halign, $_) = @_;
+    local($table,$caption,$div,$end,$Tattribs);
+    $caption = join('',"<CAPTION$cap_align>"
+	, $minipage_caption
+	,'</CAPTION>') if ($minipage_caption);
+    $end = "</TD></TR>\n</TABLE>";
+    $table = join('', "<TABLE$env_id"
+	, ((($caption)&&!($attribs =~/WIDTH/i)) ? " WIDTH=\"100\%\"" : '')
+	, ((($border)&&!($attribs =~/BORDER/i)) ? " BORDER=\"$border\"" : '')
+	);
+    if ($attribs) {
+	if (!($attribs =~ /=/)) {
+	    $Tattribs = &parse_valuesonly($attribs,"TABLE");
+	} else {
+	    $Tattribs = &parse_keyvalues($attribs,"TABLE");
+	}
+	$table .= " $Tattribs" if ($Tattribs);
+    }
+    print STDOUT "\nTABLE: $table>" if ($VERBOSITY >2 );
+    $table .= ">".$caption."\n<TR><TD>";
+    if ($extra_cell) {
+	local($sep) = "</TD></TR>\n<TR ALIGN=\"LEFT\">\n<TD>";
+	join ('', $div, $anchors, $table, $_ , $sep, $extra_cell, $end );
+    } else {
+	join ('', $div, $anchors, $table, $_ , $end );
+    }
+}
+
+sub do_cmd_etalchar {
+    local($_) = @_;
+    my $etalchar;
+    $etalchar = &missing_braces unless (
+	(s/$next_pair_pr_rx/$etalchar = $2;''/eo)
+	||(s/$next_pair_rx/$etalchar = $2;''/eo));
+    $etalchar = &translate_commands($etalchar) if ($etalchar =~ /\\/);
+    if ($HTML_VERSION < 3.0) {
+	$etalchar = &process_in_latex("\$^\{$etalchar\}\$");
+    } else {
+	$etalchar = '<SUP>'.$etalchar.'</SUP>';
+    }
+    $etalchar . $_
+}
+
+sub do_env_thebibliography {
+    # Sets $citefile and $citations defined in translate
+    local($_) = @_;
+    $bibitem_counter = 0;
+    $citefile = $CURRENT_FILE;
+    $citefiles{$bbl_nr} = $citefile;
+    local($dummy,$title);
+    $dummy = &missing_braces unless (
+	(s/$next_pair_pr_rx/$dummy=$2;''/e)
+	||(s/$next_pair_rx/$dummy=$2;''/e));
+    # MRO: replaced $* with /m
+    s/^\s*$//gm; # Remove empty lines (otherwise will have paragraphs!)
+    s/^\s*//m;
+
+    # Replace non-breaking spaces, particularly in author names.
+#    s/([^\\])~/$1 /g; # Replace non-breaking spaces.
+
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_);
+
+    # RRM: collect all anchors from initial \label and \index commands
+    local($anchors) = &extract_anchors('',1);
+    $_ = '<DD>'.$_ unless ($_ =~ /^\s*<D(T|D)>/);
+    $citations = join('',"<DL COMPACT>", $_, "</DL>");
+    $citations{$bbl_nr} = $citations;
+    local($br_id);
+    if ((defined &do_cmd_bibname)||$new_command{'bibname'}) {
+	$br_id=++$global{'max_id'};
+	$title = &translate_environments("$O$br_id$C\\bibname$O$br_id$C");
+    } else { $title = $bib_title }
+    if (! $title ) {
+	if ((defined &do_cmd_refname)||$new_command{'refname'}) {
+	    $br_id=++$global{'max_id'};
+	    $title = &translate_environments("$O$br_id$C\\refname$O$br_id$C");
+	} else { $title = $ref_name }
+    }
+    local($closures,$reopens) = &preserve_open_tags();
+    $toc_sec_title = $title ;
+    local $bib_head = $section_headings{'bibliography'};
+    $_ = join('', $closures
+	    , &make_section_heading($title, $bib_head, $anchors)
+	    , "$bbl_mark#$bbl_nr#" , $reopens );
+    $bbl_nr++ if $bbl_cnt > 1;
+    $_ =~ s/;SPMnbsp;/ /g;  # replace non-breaking spaces with real ones
+    $_;
+}
+
+# IGNORE - We construct our own index
+sub do_env_theindex { "" }
+
+# This is defined in html.sty
+sub do_env_comment { "" }
+
+
+sub do_env_equation{
+    local($_)=@_;  
+    local($attribs, $border, $no_num);
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    if (/\\nonumber/) {
+	$no_num = 1;
+	$_ = &process_undefined_environment($env,$id,$_);
+    } else {
+	$latex_body .= join('', "\n\\setcounter{equation}{"
+			, $global{'eqn_number'}, "}\n");
+
+	#include equation-number into the key, with HTML 2.0
+#	$_ = join("\n", "%EQNO:".$global{'eqn_number'}, $_)
+	$_ .= "%EQNO:".$global{'eqn_number'}."\n" if ($HTML_VERSION < 2.2);
+
+	$_ = &process_undefined_environment($env,$id,$_);
+	$global{'eqn_number'}++;
+	local($save) = $_;
+	$_ = join('', $save, &post_latex_do_env_equation($eqno_prefix));
+    }
+    if (($border||($attribs))&&($HTML_VERSION > 2.1 )) { 
+	join('',"<BR>\n<DIV$env_id ALIGN=\"CENTER\">\n"
+	    , &make_table( $border, $attribs, '', '', '', $_ )
+	    , "\n<BR CLEAR=\"ALL\">");
+    } elsif ($HTML_VERSION < 2.2 ) { 
+	join('', "\n<P>", $_ , "\n<BR></P>" )
+    } elsif ($HTML_VERSION > 2.1 ) { 
+	join('', "\n<P ALIGN="
+	    , ((!$no_num &&($EQN_TAGS =~ /L/))?
+		'"LEFT"':($no_num ?'"CENTER"':'"RIGHT"'))
+	    , '>', $_ , "\n<BR></P>" )
+    } else { $_ }
+}
+
+sub do_env_eqnarray{
+    local($_)=@_;
+    local($attribs, $border, $no_num);
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    local($contents) = $_;
+#    $_ = join("\n", "%EQNO:".$global{'eqn_number'}, $_)
+#	if ($HTML_VERSION < 3.2);  #include equation-number into the key.
+    $_ .= "%EQNO:".$global{'eqn_number'}."\n" if ($HTML_VERSION < 2.2);
+    $_ = &process_undefined_environment($env,$id,$_);
+    $_ .= &post_latex_do_env_eqnarray($eqno_prefix,$contents);
+    if (($border||($attribs))&&($HTML_VERSION > 2.1 )) { 
+	join('',"<BR>\n<DIV ALIGN=\"CENTER\">\n"
+            , &make_table( $border, $attribs, '', '', '', $_ )
+	    , "\n<BR CLEAR=\"ALL\">");
+    } elsif ($HTML_VERSION < 2.2 ) { 
+	join('', "\n<P>", $_ , "\n<BR></P>" )
+    } elsif ($HTML_VERSION > 3.1 ) { 
+	join('',"<BR>\n<DIV ALIGN=\"CENTER\">\n", $_ 
+	     , "\n</DIV><BR CLEAR=\"ALL\">" );
+    } else {
+	join('', "\n<P ALIGN="
+	     , (($EQN_TAGS =~ /L/)? '"LEFT"' : '"RIGHT"')
+	     , '>' , $_ , "\n<BR></P>" )
+    }
+}
+
+#RRM: these are needed with later versions, when {eqnarray}
+#  environments are split into <TABLE> cells.
+
+sub protect_array_envs {
+    local($_) = @_;
+    local($cnt, $arraybit, $thisbit, $which) = (0,'','','');
+    # MRO: replaced $* with /m
+    while (/\\(begin|end)\s*(<(<|#)\d+(#|>)>)($sub_array_env_rx)(\*|star)?\2/m ) {
+        $thisbit = $` . $&; $_ = $'; $which = $1;
+        do {
+            # mark rows/columns in nested arrays
+            $thisbit =~ s/;SPMamp;/$array_col_mark/g;
+            $thisbit =~ s/\\\\/$array_row_mark/g;
+            $thisbit =~ s/\\text/$array_text_mark/g;
+            $thisbit =~ s/\\mbox/$array_mbox_mark/g;
+        } if ($cnt > 0);
+        $arraybit .= $thisbit;
+        if ($which =~ /begin/) {$cnt++} else {$cnt--};
+    }
+    $_ = $arraybit . $_;
+
+    local($presub,$thisstack) = '';
+    for (;;) {
+      # find \\s needing protection within \substack commands
+      # a while-loop is simpler syntax, but uses longer strings
+      if ( /(\\substack\s*(<(<|#)\d+(#|>)>)(.|\n)*)\\\\((.|\n)*\2)/m ) {
+        $presub .= $`; $thisstack =$1.${array_row_mark}.$6; $_ = $';
+        # convert all \\s in the \substack
+        $thisstack =~ s/\\\\/${array_row_mark}/og;
+        $presub .= $thisstack;
+        } else { last }
+    }
+    $_ = $presub . $_ if ($presub);
+    $_;
+}
+
+sub revert_array_envs {
+    local($array_contents) = @_;
+    $array_contents =~ s/$array_col_mark/$html_specials{'&'}/go;
+    $array_contents =~ s/$array_row_mark/\\\\/go;
+    $array_contents =~ s/$array_text_mark/\\text/go;
+    $array_contents =~ s/$array_mbox_mark/\\mbox/go;
+    $array_contents;
+}
+
+
+
+sub do_env_tabbing {
+    local($_) = @_;
+    local($attribs, $border);
+    if (s/$htmlborder_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    elsif (s/$htmlborder_pr_rx//o) { $attribs = $2; $border = (($4)? "$4" : 1) }
+    $_ = &tabbing_helper($_);
+    if (/$image_mark/) {
+	local($tab_warning) = 
+	   "*** Images are not strictly valid within HTML <pre> tags\n"
+	   . "Please change your use of {tabbing} to a {tabular} environment.\n\n";
+	   &write_warnings("\n".$tab_warning);
+	   print "\n\n **** invalid tabbing environment ***\n";
+	   print $tab_warning;
+    }
+    if (($border||($attribs))&&($HTML_VERSION > 2.1 )) { 
+	join('',"<BR>\n<DIV$env_id ALIGN=\"CENTER\">\n"
+            , &make_table( $border, $attribs, '', '', '', $_ )
+	    , "\n</DIV><BR CLEAR=\"ALL\">");
+    } else { $_ }
+}
+
+sub tabbing_helper {
+    local($_) = @_;
+    s/\\=\s*//go;  # cannot alter the tab-stops
+    s/\t/ /g;      # convert any tabs to spaces
+    # MRO: replaced $* with /m
+    s/(^|\n)[^\n]*\\kill *\n/\n/gm;
+    s/( )? *\n/$1/gm; # retain at most 1 space for a \n
+    # replace \\ by \n ... , ignoring any trailing space
+#    s/\\\\ */\n/gm;
+    # ...but make sure successive \\ do not generate a <P> tag
+#    s/\n( *)?\n/\n \n/gm;
+    s/\\\>//go;
+    s/(^| *([^\\]))\\[>]/$2\t\t/go;
+    s/([^\\])\\>/$1\t\t/go;
+    s/\n$//; s/^\n//;           # strip off leading/trailing \n
+    local($inside_tabbing) = 1;
+    $_ = &translate_commands(&translate_environments($_));
+    "<PRE><TT>\n$_\n</TT></PRE>";
+}
+
+################# Post Processing Latex Generated Images ################
+
+# A subroutine of the form post_latex_do_env_<ENV> can be used to
+# format images that have come back from latex
+
+# Do nothing (avoid the paragraph breaks)
+sub post_latex_do_env_figure { $_[0] }
+sub post_latex_do_env_figurestar { &post_latex_do_env_figure(@_) }
+
+sub post_latex_do_env_table { $_[0] }
+sub post_latex_do_env_tablestar { &post_latex_do_env_table(@_) }
+
+sub post_latex_do_env_equation {
+    local($prefix) = @_;
+    $global{'eqn_number'}+=1;
+    # include equation number at the side of the image -- HTML 3.2
+    if ($HTML_VERSION >= 3.2){
+	join('',"<P ALIGN=\"" , (($EQN_TAGS eq "L") ? "left" : "right")
+		, "\">$EQNO_START" , $prefix 
+		, &translate_commands('\theequation')
+		, "$EQNO_END</P>\n<BR CLEAR=\"all\">" );
+    # </P> creates unwanted space in some browsers, but others need it.
+    } else { "" }
+}
+
+sub do_cmd_theequation {
+    if ($USING_STYLES) {
+	$txt_style{'eqn-number'} = " " unless ($txt_style{'eqn-number'});
+	join('', "<SPAN CLASS=\"eqn-number\">"
+		,&get_counter_value('eqn_number'),"</SPAN>", $_[0]);
+    } else { join('',&get_counter_value('eqn_number'), $_[0]); }
+}
+
+sub post_latex_do_env_eqnarray {
+    local($prefix,$body) = @_;
+    local($num_string,$line, at lines) = '';
+    local($side) = (($EQN_TAGS eq "L") ? "\"left\"" : "\"right\"" );
+    # MRO: replaced $* with /m
+    @lines = split(/\\\\\\\\/m, $body);
+    $line = pop(@lines);
+    if (!($line=~/^\s*$/)&&!($line =~/\\nonumber/)) {
+	$global{'eqn_number'}++;
+	$num_string .= join('', "<BR><BR>\n" , $EQNO_START , $prefix
+	    , &translate_commands('\theequation')
+	    , $EQNO_END);
+    }
+    foreach $line (@lines) {
+	next if ($line=~/^\s*$/);
+	$num_string .= "\n<BR>". (($MATH_SCALE_FACTOR > 1.3)? '<BR>' : '')
+	                . "<BR CLEAR=$side>";
+	if (!($line =~/\\(nonumber|(no)?tag)/)) {
+	    $global{'eqn_number'}+=1;
+	    $num_string .= join('', $EQNO_START , $prefix
+		, &translate_commands('\theequation')
+		, $EQNO_END);
+	 }
+    }
+    # include equation numbers at the side of the image -- HTML 3.2
+    if ($HTML_VERSION >= 3.2){
+	"<P ALIGN=\"" . (($EQN_TAGS eq "L") ? "left" : "right")
+	    . "\">" . (($DISP_SCALE_FACTOR >= 1.2 ) ? '<BIG>' : '')
+	    . ${num_string}
+	    . (($DISP_SCALE_FACTOR >= 1.2 ) ? '</BIG>' : '')
+	    . "</P>\n<BR CLEAR=\"all\">"
+    # </P> creates unwanted space in some browsers, but others need it.
+    } else { "" };
+}
+
+sub post_latex_do_env_eqnarraystar {
+    local($_) = @_;
+    if (($HTML_VERSION >= 3.2)&&(!$NO_SIMPLE_MATH)){
+	join('', "<BR>\n<DIV ALIGN=\"CENTER\">\n"
+	    , $_ , "\n<BR CLEAR=\"ALL\">\n<P>");
+    } elsif (($HTML_VERSION >= 2.2)&&(!$NO_SIMPLE_MATH)) {
+	join('', "\n<BR><P ALIGN=\"CENTER\">\n", $_ , "\n<BR></P>\n<P>");
+    } else {
+	join('', "\n<BR><P>\n", $_ , "\n<BR></P>\n<P>");
+    }
+}
+
+############################ Grouping ###################################
+
+sub do_cmd_begingroup { $latex_body .= "\n\\begingroup\n"; $_[0] }
+sub do_cmd_endgroup { $latex_body .= "\\endgroup\n\n"; $_[0] }
+sub do_cmd_bgroup { $latex_body .= "\n\\bgroup\n"; $_[0] }
+sub do_cmd_egroup { $latex_body .= "\\egroup\n\n"; $_[0] }
+
+sub do_env_tex2html_begingroup {
+    local($_) = @_;
+    $latex_body .= "\\begingroup ";
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_);
+    $latex_body .= "\\endgroup\n";
+    $_;
+}
+
+sub do_env_tex2html_bgroup {
+    local($_) = @_;
+    $latex_body .= "\\bgroup ";
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_);
+    $latex_body .= "\\egroup\n";
+    $_;
+}
+
+
+############################ Commands ###################################
+
+# Capitalizes what follows the \sc declaration
+# *** POTENTIAL ERROR ****
+# (This is NOT the correct meaning of \sc in the cases when it
+# is followed by another declaration (e.g. \em).
+# The scope of \sc should be limited to the next occurence of a
+# declaration.
+#sub do_cmd_sc {
+#    local($_) = @_;
+#    local(@words) = split(" ");
+# Capitalize the words which are not commands and do not contain any markers
+#   grep (do {tr/a-z/A-Z/ unless /(^\\)|(tex2html)/}, @words);
+#    grep (do {s/([a-z]+)/<small>\U$1\E<\/small>/g unless /(^\\)|(tex2html)/}, @words);
+#    join(" ", @words);
+#}
+sub do_cmd_sc { &process_smallcaps(@_) }
+sub do_cmd_scshape { &do_cmd_sc(@_) }
+
+# This is supposed to put the font back into roman.
+# Since there is no HTML equivalent for reverting
+# to roman we keep track of the open font tags in
+# the current context and close them.
+# *** POTENTIAL ERROR ****#
+# This will produce incorrect results in the exceptional
+# case where \rm is followed by another context
+# containing font tags of the type we are trying to close
+# e.g. {a \bf b \rm c {\bf d} e} will produce
+#       a <b> b </b> c   <b> d   e</b>
+# i.e. it should move closing tags from the end
+sub do_cmd_rm { # clean
+    my ($str, $ot) = @_;
+    $ot = $open_tags_R unless(defined $ot);
+    return("<\#rm\#>".$str) if ($inside_tabular);
+
+    my ($size,$color,$tags);
+    while (@$ot) {
+	my $next = pop (@$ot);
+	print STDOUT "\n</$next>" if $VERBOSITY > 2;
+	if ($next =~ /$sizechange_rx/) {
+	    $size = $next unless ($size);
+	}
+#	if ($next =~ /$colorchange_rx/) {
+#	    $color = $next unless ($color);
+#	}
+	$declarations{$next} =~ m|</.*$|;
+	$tags .= $& unless ($` =~ /^<>/);
+    }
+    if ($size) {
+	$declarations{$size} =~ m|</.*$|;
+	$tags .= $` unless ($` =~ /^<>/);
+	push (@$ot,$size);
+	print STDOUT "\n<$size>" if $VERBOSITY > 2;
+    }
+    $tags.$str;
+}
+
+sub do_cmd_rmfamily{ &do_cmd_rm(@_) }
+
+sub do_cmd_textrm { 
+    local($_) = @_;
+    local($text,$br_id)=('','0');
+    $text = &missing_braces unless (
+	(s/$next_pair_pr_rx/$text=$2;$br_id=$1;''/eo)
+	||(s/$next_pair_rx/$text=$2;$br_id=$1;''/eo));
+    join ('' ,
+	  &translate_environments("$O$br_id$C\\rm $text$O$br_id$C")
+	  , $_ );
+}
+
+sub do_cmd_emph { 
+    local($_) = @_;
+    local($ifstyle,$join_tags) = ('',join(',',@$open_tags_R));
+    $join_tags =~ s/(^|,)(text)?(it|rm|normalfont)/$if_style=$3;''/eg; 
+    if ($if_style =~ /it/) {
+	($ifstyle,$join_tags) = ('',join(',',@$open_tags_R));
+	$join_tags =~ s/(^|,)(text)?(bf|rm|normalfont)/$if_style=$3;''/eg; 
+	if ($if_style =~ /bf/) { &do_cmd_textrm(@_) }
+	else { &do_cmd_textbf(@_) }
+    } else { &do_cmd_textit(@_) }
+}
+
+#RRM: These cope with declared commands for which one cannot
+#     simply open a HTML single tag.
+#     The do_cmd_... gets found before the $declaration .
+
+sub do_cmd_upshape{&declared_env('upshape',$_[0],$tex2html_deferred)}
+sub do_cmd_mdseries{&declared_env('mdseries',$_[0],$tex2html_deferred)}
+sub do_cmd_normalfont{&declared_env('normalfont',$_[0],$tex2html_deferred)}
+
+
+# This is supposed to put the font back into normalsize.
+# Since there is no HTML equivalent for reverting
+# to normalsize we keep track of the open size tags in
+# the current context and close them.
+sub do_cmd_normalsize { # clean
+    my ($str, $ot) = @_;
+    $ot = $open_tags_R unless(defined $ot);
+
+    my ($font,$fontwt,$closures,$reopens, at tags);
+
+    while (@$ot) {
+	my $next = pop @$ot;
+	$declarations{$next} =~ m|</.*$|;
+	my ($pre,$post) = ($`,$&);
+	if ($post =~ /$block_close_rx|$all_close_rx/ ) {
+	    push (@$ot, $next);
+	    last;
+	}
+	$closures .= $post unless ($pre =~ /^<>/);
+	print STDOUT "\n</$next>" if $VERBOSITY > 2;
+
+	if ($next =~ /$fontchange_rx/) {
+	    $font = $next unless ($font);
+	} elsif ($next =~ /$fontweight_rx/) {
+	    $fontwt = $next unless ($fontwt);
+	} elsif ($next =~ /$sizechange_rx/) {
+	    # discard it
+	} else {
+	    unshift (@tags, $next);
+	    print STDOUT "\n<<$next>" if $VERBOSITY > 2;
+	    $reopens .= $pre unless ($pre =~ /^<>/);
+	}
+    }
+    push (@$ot, @tags);
+    if ($font) {
+	$declarations{$font} =~ m|</.*$|;
+	$reopens .= $` unless ($` =~ /^<>/);
+	push (@$ot,$font);
+	print STDOUT "\n<$font>" if $VERBOSITY > 2;
+    }
+    if ($fontwt) {
+	$declarations{$fontwt} =~ m|</.*$|;
+	$reopens .= $` unless ($` =~ /^<>/);
+	push (@$ot,$fontwt);
+	print STDOUT "\n<$fontwt>" if $VERBOSITY > 2;
+    }
+    join('', $closures, $reopens, $str);
+}
+
+
+
+#JCL(jcl-tcl)
+# changed everything
+#
+sub do_cmd_title {
+    local($_) = @_;
+    &get_next_optional_argument;
+    local($making_title,$next) = (1,'');
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $2;''/eo)
+	||(s/$next_pair_rx/$next = $2;''/eo));
+    $t_title = &translate_environments($next);
+    $t_title = &translate_commands($t_title);
+#    $toc_sec_title = &simplify(&translate_commands($next));
+    $toc_sec_title = &purify(&translate_commands($next));
+    $TITLE = (($toc_sec_title)? $toc_sec_title : $default_title)
+	unless ($TITLE && !($TITLE =~ /^($default_title|\Q$FILE\E)$/));
+#    $TITLE = &purify($TITLE);
+
+    #RRM: remove superscripts inserted due to \thanks
+    $TITLE =~ s/<A[^>]*><SUP>\d+<\/SUP><\/A>/$1/g;
+    $_;
+}
+
+sub do_cmd_author {
+    local($_) = @_;
+    &get_next_optional_argument;
+    my $next;
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $2;''/seo)
+	||(s/$next_pair_rx/$next = $2;''/seo));
+    local($after) = $_;
+    if ($next =~ /\\and/) {
+	my @author_list = split(/\s*\\and\s*/, $next);
+	my $t_author, $t_affil, $t_address;
+	foreach (@author_list) {
+	    $t_author = &translate_environments($_);
+	    $t_author =~ s/\s+/ /g;
+	    $t_author = &simplify(&translate_commands($t_author));
+	    ($t_author,$t_affil,$t_address) = split (/\s*<BR>s*/, $t_author);
+	    push @authors, $t_author;
+	    push @affils, $t_affil;
+	    push @addresses, $t_address;
+	}
+    } else {
+	$_ = &translate_environments($next);
+	$next = &translate_commands($_);
+	($t_author) = &simplify($next);
+	($t_author,$t_affil,$t_address) = split (/\s*<BR>s*/, $t_author);
+	push @authors, $t_author;
+	push @affils, $t_affil if $t_affil;
+	push @addresses, $t_address if $t_address;
+    }
+    $after;
+}
+
+sub do_cmd_address {
+    local($_) = @_;
+    &get_next_optional_argument;
+    local($next);
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $&;''/eo)
+	||(s/$next_pair_rx/$next = $&;''/eo));
+    ($t_address) = &simplify(&translate_commands($next));
+    push @addresses, $t_address;
+    $_;
+}
+
+sub do_cmd_institute {
+    local($_) = @_;
+    &get_next_optional_argument;
+    local($next);
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $&;''/eo)
+	||(s/$next_pair_rx/$next = $&;''/eo));
+    ($t_institute) = &simplify(&translate_commands($next));
+    push @affils, $t_institute;
+    $_;
+}
+
+sub do_cmd_dedicatory {
+    local($_) = @_;
+    &get_next_optional_argument;
+    local($next);
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $&;''/eo)
+	||(s/$next_pair_rx/$next = $&;''/eo));
+    ($t_affil) = &simplify(&translate_commands($next));
+    push @affils, $t_affil;
+    $_;
+}
+
+sub do_cmd_email {
+    local($_) = @_;
+    local($next,$target)=('','notarget');
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $2;''/eo)
+	||(s/$next_pair_rx/$next = $2;''/eo));
+    local($mail) = &translate_commands($next);
+    ($t_email) = &make_href("mailto:$mail","$mail");
+    push @emails, $t_email;
+    $_;
+}
+
+sub do_cmd_authorURL {
+    local($_) = @_;
+    local($next);
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $2;''/eo)
+	||(s/$next_pair_rx/$next = $2;''/eo));
+    ($t_authorURL) =  &translate_commands($next);
+    push @authorURLs, $t_authorURL;
+    $_;
+}
+
+sub do_cmd_date {
+    local($_) = @_;
+    local($next);
+    $next = &missing_braces unless (
+	(s/$next_pair_pr_rx/$next = $&;''/eo)
+	||(s/$next_pair_rx/$next = $&;''/eo));
+    ($t_date) = &translate_commands($next);
+    $_;
+}
+
+sub make_multipleauthors_title {
+    local($alignc, $alignl) = (@_);
+    local($t_author,$t_affil,$t_institute,$t_date,$t_address,$t_email,$t_authorURL)
+	= ('','','','','','','');
+    local ($t_title,$auth_cnt) = ('',0);
+    if ($MULTIPLE_AUTHOR_TABLE) {
+	$t_title = '<TABLE' .($USING_STYLES? ' CLASS="author_info_table"' : '')
+		.' WIDTH="90%" ALIGN="CENTER" CELLSPACING=15>'
+		."\n<TR VALIGN=\"top\">";
+    }
+    foreach $t_author (@authors) {
+	$t_affil = shift @affils;
+	$t_institute = ''; # shift @institutes;
+	$t_address = shift @addresses;
+	$t_email = shift @emails;
+	$t_authorURL = shift @authorURLs;
+	if ($MULTIPLE_AUTHOR_TABLE) {
+	    if ($auth_cnt == $MAX_AUTHOR_COLS) {
+		$t_title .= join("\n", '</TR><TR>', '');
+		$auth_cnt -= $MAX_AUTHOR_COLS;
+	    }
+	    $t_title .= join("\n"
+		, '<TD>'
+		, &make_singleauthor_title($alignc, $alignl ,$t_author
+		    , $t_affil,$t_institute,$t_date,$t_address,$t_email,$t_authorURL)
+		, '</TD>' );
+	    ++$auth_cnt;
+	} else {
+	    $t_title .= &make_singleauthor_title($alignc, $alignl ,$t_author
+		, $t_affil,$t_institute,$t_date,$t_address,$t_email,$t_authorURL);
+	}
+    }
+    if ($MULTIPLE_AUTHOR_TABLE) {
+	$t_title .= "\n</TR></TABLE>\n";
+    }
+    $t_title;
+}
+
+sub do_cmd_maketitle {
+    local($_) = @_;
+    local($the_title) = '';
+    local($alignc, $alignl);
+    if ($HTML_VERSION > 2.1) {
+	$alignc = " ALIGN=\"CENTER\""; 
+	$alignl = " ALIGN=\"LEFT\""; 
+	$alignl = $alignc if ($MULTIPLE_AUTHOR_TABLE);
+    }
+    if ($t_title) {
+	$the_title .= "<H1$alignc>$t_title</H1>";
+    } else { &write_warnings("\nThis document has no title."); }
+    if (($#authors >= 1)||$MULTIPLE_AUTHOR_TABLE) {
+	$the_title .= &make_multipleauthors_title($alignc,$alignl);
+	if ($t_date&&!($t_date=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	    $the_title .= "\n<P$alignc><STRONG>$t_date</STRONG></P>";}
+    } else {
+	$the_title .= &make_singleauthor_title($alignc,$alignl ,$t_author
+	    , $t_affil,$t_institute,$t_date,$t_address,$t_email,$t_authorURL);
+    }
+    $the_title . $_ ;
+}
+
+sub make_singleauthor_title {
+    local($alignc, $alignl , $t_author
+	, $t_affil,$t_institute,$t_date,$t_address,$t_email,$t_authorURL) = (@_);
+    my $t_title = '';
+    my ($s_author_info, $e_author_info) = ('<DIV','</DIV>');
+    $s_author_info .= ($USING_STYLES ? ' CLASS="author_info"' : '').'>';
+
+    if ($t_author) {
+	if ($t_authorURL) {
+	    local($href) = &translate_commands($t_authorURL);
+	    $href = &make_named_href('author'
+			, $href, "<STRONG>${t_author}</STRONG>");
+	    $t_title .= "\n<P$alignc>$href</P>";
+	} else {
+	    $t_title .= "\n<P$alignc><STRONG>$t_author</STRONG></P>";
+	}
+    } else { &write_warnings("\nThere is no author for this document."); }
+
+    if ($t_institute&&!($t_institute=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	$t_title .= "\n<P$alignc><SMALL>$t_institute</SMALL></P>";}
+    if ($t_affil&&!($t_affil=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	$t_title .= "\n<P$alignc><I>$t_affil</I></P>";}
+    if ($t_date&&!($t_date=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	$t_title .= "\n<P$alignc><STRONG>$t_date</STRONG></P>";}
+    if ($t_address&&!($t_address=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	$t_title .= "\n<P$alignl><SMALL>$t_address</SMALL></P>";
+    }  # else { $t_title .= "\n<P$alignl>"}
+    if ($t_email&&!($t_email=~/^\s*(($O|$OP)\d+($C|$CP))\s*\1\s*$/)) {
+	$t_title .= "\n<P$alignl><SMALL>$t_email</SMALL></P>";
+    }  # else { $t_title .= "</P>" }
+    join("\n", $s_author_info, $t_title, $e_author_info);
+}
+
+sub do_cmd_abstract {
+    local($_) = @_;
+    local($abstract);
+    $abstract = &missing_braces unless (
+	(s/$next_pair_pr_rx/$abstract = $&;''/eo)
+	||(s/$next_pair_rx/$abstract = $&;''/eo));
+    join('', &make_abstract($abstract), $_);
+}
+
+sub make_abstract {
+    local($_) = @_;
+    # HWS  Removed emphasis (hard to read)	   
+    $_ = &translate_environments($_);
+    $_ = &translate_commands($_);
+    local($title);
+    if ((defined &do_cmd_abstractname)||$new_command{'abstractname'}) {
+	local($br_id)=++$global{'max_id'};
+	$title = &translate_environments("$O$br_id$C\\abstractname$O$br_id$C");
+    } else { $title = $abs_title }
+    local($env_id) = " CLASS=\"ABSTRACT\"" if ($USING_STYLES);
+    join('',"\n<H3>", $title, ":</H3>\n"
+	, (($HTML_VERSION > 3)? "<DIV$env_id>" : "<P>"), $_ 
+	, (($HTML_VERSION > 3)? "</DIV>" : "</P>"), "\n<P>");
+}
+
+sub set_default_language {
+    # MRO: local($lang,*_) = @_;
+    my $lang = shift;
+    push(@language_stack, $default_language);
+    $default_language = $lang;
+    $_[0] .= '\popHtmlLanguage';
+}
+
+sub do_cmd_popHtmlLanguage {
+    $default_language = pop(@language_stack);
+    $_[0];
+}
+
+sub do_cmd_today {
+    local($lang);
+    if ($PREAMBLE) {
+	$lang = $TITLES_LANGUAGE || $default_language ;
+    } else {
+	$lang = $current_language || $default_language ;
+    }
+    local($today) = $lang . '_today';
+    if (defined &$today) { join('', eval "&$today()", $_[0]) }
+    else { join('', &default_today(), $_[0]) }
+}
+
+sub default_today {
+    #JKR: Make it more similar to LaTeX
+    ## AYS: moved french-case to styles/french.perl
+    my $today = &get_date();
+
+    $today =~ s|(\d+)/0?(\d+)/|$Month[$1] $2, |;
+    join('',$today,$_[0]);
+}
+
+sub do_cmd_textbackslash { join('','\', $_[0]);}
+sub do_cmd_textbar { join('','|', $_[0]);}
+sub do_cmd_textless { join('',';SPMlt;', $_[0]);}
+sub do_cmd_textgreater { join('',';SPMgt;', $_[0]);}
+sub do_cmd_textasciicircum { join('','^', $_[0]);}
+sub do_cmd_textasciitilde { join('','~', $_[0]);}
+sub do_cmd_textquoteleft { join('','`', $_[0]);}
+sub do_cmd_textquoteright { join('',''', $_[0]);}
+
+sub do_cmd_textcompwordmark { join('','', $_[0]);}
+sub do_cmd_texttrademark { join('','<SUP><SMALL>TM</SMALL></SUP>', $_[0]);}
+
+sub do_cmd_textsubscript   { &make_text_supsubscript('SUB',$_[0]);} 
+sub do_cmd_textsuperscript { &make_text_supsubscript('SUP',$_[0]);}
+
+sub make_text_supsubscript { 
+    local ($supsub, $_) = (@_);
+    my $arg = '';
+    $arg = &missing_braces unless (
+	(s/$next_pair_pr_rx/$arg = $&;''/eo)
+	||(s/$next_pair_rx/$arg = $&;''/eo));
+    $arg = &translate_commands($arg) if ($arg =~ m!\\!);
+    join('', "<$supsub>", $arg, "</$supsub>", $_);
+}
+
+sub do_cmd_textcircled { 
+    local ($_) = (@_);
+    my $arg = '';
+    $arg = &missing_braces unless (
+	(s/$next_pair_pr_rx/$arg = $&;''/eo)
+	||(s/$next_pair_rx/$arg = $&;''/eo));
+    my $after = $_;
+    join('', &process_undefined_environment("tex2html_nomath_inline"
+	   , ++$global{'max_id'}
+	   , "\\vbox{\\kern3pt\\textcircled{$arg}}" )
+	, $after );
+}
+
+# these can be overridded in charset (.pl) extension files:
+sub do_cmd_textemdash { join('','---', $_[0]);}
+sub do_cmd_textendash { join('','--', $_[0]);}
+#sub do_cmd_exclamdown { join('','', $_[0]);}
+#sub do_cmd_questiondown { join('','', $_[0]);}
+sub do_cmd_textquotedblleft { join('',"``", $_[0]);}
+sub do_cmd_textquotedblright { join('',"''", $_[0]);}
+sub do_cmd_textbullet { join('','*', $_[0]);}
+sub do_cmd_textvisiblespace { join('','_', $_[0]);}
+
+sub do_cmd_ldots {
+    join('',(($math_mode&&$USE_ENTITY_NAMES) ? ";SPMldots;" : "..."),$_[0]);
+}
+
+sub do_cmd_dots {
+    join('',(($math_mode&&$USE_ENTITY_NAMES) ? ";SPMldots;" : "..."),$_[0]);
+}
+
+sub do_cmd_hrule {
+    local($_) = @_;
+    &ignore_numeric_argument;
+    #JKR: No need for <BR>
+    local($pre,$post) = &minimize_open_tags('<HR>');
+    join('',$pre,$_);
+}
+
+#sub do_cmd_hrulefill {
+#    "<HR ALIGN=\"right\">\n<BR CLEAR=\"right\">";
+#}
+
+sub do_cmd_linebreak {
+    local($num,$dum) = &get_next_optional_argument;
+    if (($num)&&($num<4)) { return $_[0] }
+    join('',"<BR>", $_[0]);
+}
+
+sub do_cmd_pagebreak {
+    local($_) = @_;
+    local($num,$dum) = &get_next_optional_argument;
+    if (($num)&&($num<4)) { return($_) }
+    elsif (/^ *\n *\n/) {
+	local($after) = $';
+	local($pre,$post) = &minimize_open_tags("<BR>\n<P>");
+	join('',$pre, $')
+    } else { $_ }
+}
+
+
+sub do_cmd_newline { join('',"<BR>", $_[0]); }
+# this allows for forced newlines in tables, etc.
+sub do_cmd_endgraf { join('',"<BR>", $_[0]); }
+
+sub do_cmd_space { join(''," ",$_[0]); }
+sub do_cmd_enspace { join('',"\ ",$_[0]); }
+sub do_cmd_quad { join('',"\ "x4,$_[0]); }
+sub do_cmd_qquad { join('',"\ "x8,$_[0]); }
+
+sub do_cmd_par {
+    local ($_) = @_;
+    my ($pre,$post) = &preserve_open_tags();
+    my ($spar, $lcode) = ("\n<P", '');
+    if (($USING_STYLES) &&(!($default_language eq $TITLES_LANGUAGE))) {
+	$lcode = &get_current_language();
+	$spar .= $lcode if $lcode;
+    }
+    join('', $pre, $spar, ">\n",$post,$_);
+}
+
+sub do_cmd_medskip {
+    local ($_) = @_;
+    local($pre,$post) = &preserve_open_tags();
+    join('',$pre,"\n<P><BR>\n",$post,$_);
+}
+
+sub do_cmd_smallskip {
+    local ($_) = @_;
+    local($pre,$post) = &preserve_open_tags();
+    join('',$pre,"\n<P></P>\n",$post,$_);
+}
+
+sub do_cmd_bigskip {
+    local ($_) = @_;
+    local($pre,$post) = &preserve_open_tags();
+    join('',$pre,"\n<P><P><BR>\n",$post,$_);
+}
+
+# MEH: Where does the slash command come from?
+# sub do_cmd_slash {
+#    join('',"/",$_[0]);
+#}
+sub do_cmd_esc_slash { $_[0]; }
+sub do_cmd_esc_hash { "\#". $_[0]; }
+sub do_cmd_esc_dollar { "\$". $_[0]; }
+sub do_cmd__at_ { $_[0]; }
+sub do_cmd_lbrace { "\{". $_[0]; }
+sub do_cmd_rbrace { "\}". $_[0]; }
+sub do_cmd_Vert { "||". $_[0]; }
+sub do_cmd_backslash { "\\". $_[0]; }
+
+#RRM: for subscripts outside math-mode
+# e.g. in Chemical formulae
+sub do_cmd__sub {
+    local($_) = @_;
+    local($next);
+    $next = &missing_braces unless (
+        (s/$next_pair_pr_rx/$next = $2;''/e)
+        ||(s/$next_pair_rx/$next = $2;''/e));
+    join('',"<SUB>",$next,"</SUB>",$_);   
+}
+
+#JCL(jcl-del) - the next two ones must only have local effect.
+# Yet, we don't have a mechanism to revert such changes after
+# a group has closed.
+#
+sub do_cmd_makeatletter {
+    $letters =~ s/@//;
+    $letters .= '@';
+    &make_letter_sensitive_rx;
+    $_[0];
+}
+
+sub do_cmd_makeatother {
+    $letters =~ s/@//;
+    &make_letter_sensitive_rx;
+    $_[0];
+}
+
+
+################## Commands to be processed by Latex #################
+#
+# The following commands are passed to Latex for processing.
+# They cannot be processed at the same time as normal commands
+# because their arguments must be left untouched by the translator.
+# (Normally the arguments of a command are translated before the
+# command itself).
+#
+# In fact, it's worse:  it is not correct to process these
+# commands after we process environments, because some of them
+# (for instance, \parbox) may contain unknown or wrapped
+# environments.  If math mode occurs in a parbox, the
+# translate_environments routine should *not* process it, lest
+# we encounter the lossage outlined above.
+#
+# On the other hand, it is not correct to process these commands
+# *before* we process environments, or figures containing
+# parboxes, etc., will be mishandled.
+#
+# RRM: (added for V97.1) 
+#  \parbox now uses the  _wrap_deferred  mechanism, and has a  do_cmd_parbox
+#  subroutine defined. This means that environments where parboxes are
+#  common (.g. within table cells), can detect the \parbox command and
+#  adjust the processing accordingly.
+#
+# So, the only way to handle these commands is to wrap them up
+# in null environments, as for math mode, and let translate_environments
+# (which can handle nesting) figure out which is the outermost.
+#
+# Incidentally, we might as well make these things easier to configure...
+
+sub process_commands_in_tex {
+    local($_) = @_;
+    local($arg,$tmp);
+    foreach (/.*\n?/g) {
+	chop;
+	# For each line
+	local($cmd, @args) = split('#',$_);
+	next unless $cmd;
+	$cmd =~ s/ //g;
+
+	# skip if a proper implementation already exists
+	$tmp = "do_cmd_$cmd";
+	next if (defined &$tmp);
+
+	# Build routine body ...
+	local ($body, $code, $thisone) = ("", "");
+
+	# alter the pattern here to debug particular commands
+#	$thisone = 1 if ($cmd =~ /mathbb/);
+
+	print "\n$cmd: ".scalar(@args)." arguments" if ($thisone);
+	foreach $arg (@args) {
+	    print "\nARG: $arg" if ($thisone);
+	    print "\nARG: $next_pair_rx" if ($thisone);
+	    if ($arg =~ /\{\}/) {
+# RRM: the $` is surely wrong, allowing no error-checking.
+# Use <<...>> for specific patterns
+#		$body .= '$args .= "$`$&" if s/$next_pair_rx//o;'."\n"; 
+		$body .= '$args .= join("","{", &missing_braces, "}") unless ('."\n";
+		$body .= '  (s/$next_pair_pr_rx/$args.=$`.$&;""/es)'."\n";
+		$body .= '  ||(s/$next_pair_rx/$args.=$`.$&;""/es));'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$body .= $' if ($');
+	    } elsif ($arg =~ /\[\]/) {
+		$body .= '($dummy, $pat) = &get_next_optional_argument;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$body .= $' if ($');
+	    } elsif ($arg =~ /^\s*\\/) {		    
+		$body .= '($dummy, $pat) = &get_next_tex_cmd;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$body .= $' if ($');
+	    } elsif ($arg =~ /<<\s*/) {
+		$arg = $';
+		if ($arg =~ /\s*>>/) {
+                    # MRO: replaced $* with /m
+		    $body .= '$args .= "$`$&" if (/\\'.$`.'/m);' . "\n"
+#		    $body .= '$args .= "$`$&" if (/\\\\'.$`.'/);' . "\n"
+			. "\$_ = \$\';\n";
+		    print "\nAFTER:$'" if (($thisone)&&($'));
+		    $body .= $' if ($');
+		} else { $body .= $arg ; }
+	    } else {
+	        print "\nAFTER:$'" if (($thisone)&&($arg));
+		$body .= $arg ;
+	    }
+	}
+
+	# Generate a new subroutine
+	local($padding) = " ";
+	$padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+	$code = "sub wrap_cmd_$cmd {" . "\n"
+	    . 'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";' . "\n"
+	    . $body
+	    . (($thisone)? "print STDERR \"\\n$cmd:\".\$args.\"\\n\";\n" : '')
+	    . '(&make_wrapper(1).$cmd'
+	    . ($padding ? '"'.$padding.'"' : '')
+	    . '.$args.&make_wrapper(0), $_)}'
+	    . "\n";
+	print "\nWRAP_CMD: $code " if ($thisone); # for debugging
+	eval $code; # unless ($thisone);
+	print STDERR "\n*** sub wrap_cmd_$cmd  failed: $@" if ($@);
+
+	# And make sure the main loop will catch it ...
+#	$raw_arg_cmds{$cmd} = 1;
+	++$raw_arg_cmds{$cmd};
+    }
+}
+
+sub process_commands_nowrap_in_tex {
+    local($_) = @_;
+    local($arg);
+    foreach (/.*\n?/g) {
+	chop;
+	local($cmd, @args) = split('#',$_);
+	next unless $cmd;
+	$cmd =~ s/ //g;
+	# Build routine body ...
+	local ($bodyA, $codeA, $bodyB, $codeB, $thisone) = ("", "", "", "");
+
+	# alter the pattern here to debug particular commands
+#	$thisone = 1 if ($cmd =~ /epsf/);
+
+	print "\n$cmd: ".scalar(@args)." arguments" if ($thisone);
+	foreach $arg (@args) {
+	    print "\nARG: $arg" if ($thisone);
+	    if ($arg =~ /\{\}/) {
+#		$bodyA .= '$args .= "$`"."$&" if (s/$any_next_pair_rx//);'."\n";
+		$bodyA .= 'if (s/$next_pair_rx//s){$args.="$`"."$&"; $_='."\$'};\n";
+		$bodyB .= '$args .= &missing_braces'."\n unless (";
+		$bodyB .= '(s/$any_next_pair_pr_rx/$args.=$`.$&;\'\'/eo)'."\n";
+		$bodyB .= '  ||(s/$any_next_pair_rx/$args.=$`.$&;\'\'/eo));'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+#		$bodyA .= $'.";\n" if ($');
+		$bodyB .= $'.";\n" if ($');
+	    } elsif ($arg =~ /\[\]/) {
+		$bodyA .= '($dummy, $pat) = &get_next_optional_argument;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+#		$bodyA .= $'.";\n" if ($');
+		$bodyB .= $'.";\n" if ($');
+	    } elsif ($arg =~ /^\s*\\/) {		    
+		$bodyA .= '($dummy, $pat) = &get_next_tex_cmd;'
+		    . '$args .= $pat;'."\n";
+		$bodyB .= '($dummy, $pat) = &get_next_tex_cmd;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$bodyA .= $'.";\n" if ($');
+		$bodyB .= $'.";\n" if ($');
+	    } elsif ($arg =~ /<<\s*/) {
+		$arg = $';
+		if ($arg =~ /\s*>>/) {
+                    # MRO: replaced $* with /m
+		    $bodyA .= '$args .= "$`$&" if (/\\'.$`.'/m);' . "\n"
+#		    $bodyA .= '$args .= $`.$& if (/\\\\'.$`.'/);' . "\n"
+			. "\$_ = \$\';\n";
+		    $bodyB .= '$args .= "$`$&" if (/\\'.$`.'/m);' . "\n"
+			. "\$_ = \$\';\n";
+		    print "\nAFTER:$'" if (($thisone)&&($'));
+#		    $bodyA .= $'.";\n" if ($');
+		    $bodyB .= $'.";\n" if ($');
+		} else { 
+		    print "\nAFTER:$arg" if (($thisone)&&($arg));
+#		    $bodyA .= $arg.";\n" if ($arg);
+		    $bodyB .= $arg.";\n" if ($arg);
+		}
+	    } else { 
+		print "\nAFTER:$arg" if (($thisone)&&($arg));
+		$bodyA .= '$args .= '.$arg.";\n" if ($');
+		$bodyB .= $arg.";\n" if ($'); 
+	    }
+	}
+	local($padding) = " ";
+	$padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+	# Generate 2 new subroutines
+	$codeA = "sub wrap_cmd_$cmd {" . "\n"
+	    .'local($cmd, $_) = @_; local($args, $dummy, $pat) = "";'."\n"
+	    . $bodyA
+	    . (($thisone)? "print \"\\nwrap $cmd:\\n\".\$args.\"\\n\";\n" : '')
+	    . '(&make_nowrapper(1)."\n".$cmd.'."\"$padding\""
+	    . '.$args.&make_nowrapper(0)," ".$_)}'
+	    ."\n";
+	print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging
+	eval $codeA;
+	print STDERR "\n\n*** sub wrap_cmd_$cmd  failed: $@\n" if ($@);
+	$codeB = "do_cmd_$cmd";
+	do {
+	    $bodyB = '"";' if !($bodyB);
+	    $codeB = "sub do_cmd_$cmd {" . "\n"
+		. 'local($_,$ot) = @_;'."\n"
+		. 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'."\n"
+		. 'local($cmd,$args,$dummy,$pat)=("'.$cmd.'","","","");'."\n"
+		. $bodyB
+		. (($thisone)? "print \"\\ndo $cmd:\".\$args.\"\\n\";\n" : '')
+#		. '$latex_body.="\\n".&revert_to_raw_tex("'."\\\\$cmd$padding".'$args")."\\n\\n";'
+		. "\$_;}\n";
+	    print STDOUT "\nDO_CMD: $codeB " if ($thisone); # for debugging
+	    eval $codeB;
+	    print STDERR "\n\n*** sub do_cmd_$cmd  failed: $@\n" if ($@);
+	} unless (defined &$codeB );
+
+	# And make sure the main loop will catch it ...
+#	$raw_arg_cmds{$cmd} = 1;
+	++$raw_arg_cmds{$cmd};
+    }
+}
+
+sub process_commands_wrap_deferred {
+    local($_) = @_;
+    local($arg,$thisone);
+    foreach (/.*\n?/g) {
+	chop;
+	local($cmd, @args) = split('#',$_);
+	next unless $cmd;
+	$cmd =~ s/ //g;
+	# Build routine body ...
+	local ($bodyA, $codeA, $bodyB, $codeB, $after, $thisone);
+
+	# alter the pattern here to debug particular commands
+#	$thisone = 1 if ($cmd =~ /selectlanguage/);
+
+	print "\n$cmd: ".scalar(@args)." arguments" if ($thisone);
+	foreach $arg (@args) {
+	    print "\nARG: $arg" if ($thisone);
+	    if ($arg =~ /\{\}/) {
+#		$bodyA .= '$args .= "$`$&" if (s/$any_next_pair_rx//o);';
+		$bodyA .= '$args .= "$`$&" if (s/$next_pair_rx//so);';
+		$after = $';
+		print "\nAFTER:$'" if (($thisone)&&($'));
+	    } elsif ($arg =~ /\[\]/) {
+		$bodyA .= '($dummy, $pat) = &get_next_optional_argument;' .
+		    "\n". '$args .= $pat;';
+		$after = $';
+		print "\nAFTER:$'" if (($thisone)&&($'));
+	    } elsif ($arg =~ /^\s*\\/) {		    
+		$bodyA .= '($dummy, $pat) = &get_next_tex_cmd;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$bodyA .= $'.";\n" if ($');
+	    } elsif (/<<\s*([^>]*)[\b\s]*>>/) {
+		local($endcmd, $afterthis) = ($1,$');
+		$afterthis =~ s/(^\s*|\s*$)//g;
+		$endcmd =~ s/\\/\\\\/g;
+		$bodyA .= "\n". 'if (/'.$endcmd.'/) { $args .= $`.$& ; $_ = $\' };';
+		$after .= $afterthis if ($afterthis);
+		print "\nAFTER:$'" if (($thisone)&&($'));
+	    } else { 
+		print "\nAFTER:$arg" if (($thisone)&&($arg));
+                $bodyB .= $arg.";\n" ; $after = ''
+            }
+	    $after =~ s/(^\s*|\s*$)//g if ($after);
+	    $bodyB .= $after . ";" if ($after);
+	    $bodyA .= "\$args .= ".$after . ";" if ($after);
+	}
+	local($padding) = " ";
+	$padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+	# Generate 2 new subroutines
+	$codeA = "sub wrap_cmd_$cmd {" . "\n"
+	    .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'."\n"
+	    . $bodyA #. ($bodyA ? "\n" : '')
+	    . (($thisone)? ";print \"\\nwrap $cmd:\".\$args.\"\\n\";\n" : '')
+	    .'(&make_deferred_wrapper(1).$cmd.'.$padding
+		.'$args.&make_deferred_wrapper(0),$_)}'
+	    ."\n";
+	print STDERR "\nWRAP_CMD: $codeA " if ($thisone); # for debugging
+	eval $codeA;
+	print STDERR "\n\n*** sub wrap_cmd_$cmd  failed: $@\n" if ($@);
+
+	#RRM: currently these commands only go to LaTeX or access counters.
+	#   They could be implemented more generally, as below with  do_dcmd_$cmd
+	#   requiring replacement to be performed before evaluation.
+	$codeB = "sub do_dcmd_$cmd {" . "\n"
+	    .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'."\n"
+	    . $bodyA . "\n" 
+            . (($thisone)? ";print \"\\ndo_def $cmd:\".\$args.\"\\n\";\n" : '')
+            . $bodyB . "}" . "\n";
+	print "\nDEF_CMD: $codeB " if ($thisone); # for debugging
+	local($tmp) = "do_cmd_$cmd";
+	eval $codeB unless (defined &$tmp);
+	print STDERR "\n\n*** sub do_dcmd_$cmd  failed: $@\n" if ($@);
+
+	# And make sure the main loop will catch it ...
+#	$raw_arg_cmds{$cmd} = 1;
+	++$raw_arg_cmds{$cmd};
+    }
+}
+
+sub process_commands_inline_in_tex {
+    local($_) = @_;
+    foreach (/.*\n?/g) {
+	chop;
+	local($cmd, @args) = split('#',$_);
+	next unless $cmd;
+	$cmd =~ s/ //g;
+	# Build routine body ...
+	local ($body, $code, $thisone) = ("", "");
+
+	# uncomment and alter the pattern here to debug particular commands
+#	$thisone = 1 if ($cmd =~ /L/);
+
+	print "\n$cmd: ".scalar(@args)." arguments" if ($thisone);
+	foreach (@args) {
+	    print "\nARG: $_" if ($thisone);
+	    if (/\{\}/) {
+#		$body .= '$args .= $`.$& if (/$any_next_pair_rx/);' . "\n"
+#		    . "\$_ = \$\';\n";
+		$body .= '$args .= $`.$& if (s/$next_pair_rx//s);' . "\n"
+	    } elsif (/\[\]/) {
+		$body .= 'local($dummy, $pat) = &get_next_optional_argument;' .
+		    "\n". '$args .= $pat;';
+	    } elsif ($arg =~ /^\s*\\/) {		    
+		$body .= '($dummy, $pat) = &get_next_tex_cmd;'
+		    . '$args .= $pat;'."\n";
+		print "\nAFTER:$'" if (($thisone)&&($'));
+		$body .= $'.";\n" if ($');
+	    } elsif (/<<\s*/) {
+		$_ = $';
+		if (/\s*>>/) {
+                    # MRO: replaced $* with /m
+		    $body .= '$args .= "$`$&" if (/\\'.$`.'/m);' . "\n"
+			. "\$_ = \$\';\n"
+		} else { $body .= $_.";\n" ; }
+	    } else { $body .= $_.";\n" ; }
+	}
+	local($padding) = " ";
+	$padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/));
+	# Generate a new subroutine
+	my $itype = ($cmd =~ /^f.*box$/ ? 'inline' : 'nomath');
+	$code = "sub wrap_cmd_$cmd {" . "\n"
+	    .'local($cmd, $_) = @_; local ($args) = "";' . "\n"
+	    . $body . "\n"
+            . (($thisone)? ";print \"\\ndo $cmd:\".\$args.\"\\n\";\n" : '')
+	    .'(&make_'.$itype.'_wrapper(1).$cmd.$padding.$args.'
+	    . '&make_'.$itype.'_wrapper(0),$_)}'
+	    ."\n";
+	print "\nWRAP_CMD:$raw_arg_cmds{$cmd}: $code "
+		if ($thisone); # for debugging
+	eval $code;
+	print STDERR "\n\n*** sub wrap_cmd_$cmd  failed: $@\n" if ($@);
+	# And make sure the main loop will catch it ...
+#	$raw_arg_cmds{$cmd} = 1;
+	++$raw_arg_cmds{$cmd};
+    }
+}
+
+
+# Invoked before actual translation; wraps these commands in
+# tex2html_wrap environments, so that they are properly passed to
+# TeX in &translate_environments ...
+# JCL(jcl-del) - new usage of $raw_arg_cmd_rx
+sub wrap_raw_arg_cmds {
+    local ($processed_text, $cmd, $wrapper, $wrap, $after);
+    print "\nwrapping raw arg commands " if ($VERBOSITY>1);
+    local($seg, $par_wrap, $teststar, @processed);
+#   local(@segments) = split(/\\par\b/,$_);
+#   foreach (@segments) {
+#      $par_wrap = join('',&make_deferred_wrapper(1), "\\par"
+#			, &make_deferred_wrapper(0));
+#     push(@processed, $par_wrap ) if ($seg); ++$seg;
+    if (%renew_command) {
+	local($key);
+	foreach $key (keys %renew_command) {
+	    $raw_arg_cmds{$key} = 1;
+	    $raw_arg_cmd_rx =~ s/^(\(\)\\\\\()/$1$key\|/;
+	}
+    }
+    print "\n" if (/$raw_arg_cmd_rx/);
+
+    # MRO: replaced $* with /m
+    while (/$raw_arg_cmd_rx/m) {
+	local($star);
+	push (@processed, $`); print "\@";
+	$after = $';
+	#JCL(jcl-del) - status of starred raw arg cmds yet unclear
+	($cmd, $star) = ($1.$2,$4);
+	if ($star eq '*') { $star = 'star';}
+	else { $after = $star.$after; $star = ''; }
+	$wrapper = "wrap_cmd_$cmd"; $teststar = $wrapper.'star';
+	if ($star && defined &$teststar) { $wrapper = $teststar; $star = '*'; }
+        # MRO: make {\bf**} work
+	elsif($star) { $after = '*'.$after; $star = '' }
+	print "\nWRAPPED: $cmd as $wrapper" if ($VERBOSITY > 5);
+
+	# ensure that the result is separated from following words...
+	my $padding = ($after =~ /^[a-zA-Z]/s)? ($cmd =~ /\W$/ ? '':' '):'';
+
+	if ($raw_arg_cmds{$cmd} && defined &$wrapper) {
+            $* = 1;
+	    ($wrap, $_) = &$wrapper("\\$cmd$star", $padding . $after);
+            $* = 0;
+	    # ...but don't leave an unwanted space at the beginning
+	    $_ =~ s/^ //s if($padding && $wrap !~ /\w$/m
+	    	&& (length($_) == length($after)+1) );
+	    push (@processed, $wrap);
+	} elsif ($raw_arg_cmds{$cmd}) {
+	    print STDERR "\n*** $wrapper not defined, cannot wrap \\$cmd";
+	    &write_warnings("\n*** $wrapper not defined, cannot wrap \\$cmd ");
+	    push (@processed, "\\$cmd$padding");
+	    $_ = $after;
+	} else {
+	    push (@processed, "\\$cmd$padding");
+	    $_ = $after;
+	}
+        last unless ($after =~ /\\/);
+    }
+
+    # recombine the pieces
+    $_ = join('', at processed, $_);
+}
+
+#########################################################################
+
+# To make a table of contents, list of figures and list of tables commands
+# create a link to corresponding files which do not yet exist.
+# The binding of the file variable in each case acts as a flag
+# for creating the actual file at the end, after all the information
+# has been gathered.
+
+sub do_cmd_tableofcontents { &do_real_tableofcontents(@_) }
+sub do_real_tableofcontents {
+#    local($_) = @_;
+    if ((defined &do_cmd_contentsname)||$new_command{'contentsname'}) {
+	local($br_id)=++$global{'max_id'};
+	$TITLE = &translate_environments("$O$br_id$C\\contentsname$O$br_id$C");
+    } else { $TITLE = $toc_title }
+    $toc_sec_title = $TITLE;
+    $tocfile = $CURRENT_FILE;  # sets  $tocfile  this globally
+    local $toc_head = $section_headings{'tableofcontents'};
+    if ($toc_style) {
+	$toc_head .= " CLASS=\"$toc_style\"";
+	$env_style{"$toc_head.$toc_style"} = " "
+	    unless ($env_style{"$toc_head.$toc_style"});
+    }
+    local($closures,$reopens) = &preserve_open_tags();
+    join('', "<BR>\n", $closures
+	, &make_section_heading($TITLE, $toc_head), $toc_mark
+	, $reopens, @_[0]);
+}
+sub do_cmd_listoffigures {
+    local($_) = @_;
+    local($list_type) = ($SHOW_SECTION_NUMBERS ? 'UL' : 'OL' );
+    if ((defined &do_cmd_listfigurename)||$new_command{'listfigurename'}) {
+	local($br_id)=++$global{'max_id'};
+	$TITLE = &translate_environments("$O$br_id$C\\listfigurename$O$br_id$C");
+    } else { $TITLE = $lof_title }
+    $toc_sec_title = $TITLE;
+    $loffile = $CURRENT_FILE;  # sets  $loffile  this globally
+    local $lof_head = $section_headings{'listoffigures'};
+    local($closures,$reopens) = &preserve_open_tags();
+    join('', "<BR>\n", $closures
+	 , &make_section_heading($TITLE, $lof_head)
+	 , "<$list_type>", $lof_mark, "</$list_type>"
+	 , $reopens, $_);
+}
+sub do_cmd_listoftables {
+    local($_) = @_;
+    local($list_type) = ($SHOW_SECTION_NUMBERS ? 'UL' : 'OL' );
+    if ((defined &do_cmd_listtablename)||$new_command{'listtablename'}) {
+	local($br_id)=++$global{'max_id'};
+	$TITLE = &translate_environments("$O$br_id$C\\listtablename$O$br_id$C");
+    } else { $TITLE = $lot_title }
+    $toc_sec_title = $TITLE;
+    $lotfile = $CURRENT_FILE;  # sets  $lotfile  this globally
+    local $lot_head = $section_headings{'listoftables'};
+    local($closures,$reopens) = &preserve_open_tags();
+    join('', "<BR>\n", $closures
+	 , &make_section_heading($TITLE, $lot_head)
+	 , "<$list_type>", $lot_mark, "</$list_type>"
+	 , $reopens, $_);
+}
+
+# Indicator for where to put the CHILD_LINKS table.
+sub do_cmd_tableofchildlinks {
+    local($_) = @_;
+    local($thismark) = $childlinks_mark;
+    local($option,$dum) = &get_next_optional_argument;
+    $thismark = &check_childlinks_option($option) if ($option);
+    local($pre,$post) = &minimize_open_tags("$thismark\#0\#");
+    join('', "<BR>", $pre, $_);
+}
+
+# leave out the preceding <BR>
+sub do_cmd_tableofchildlinksstar {
+    local($_) = @_;
+    local($thismark) = $childlinks_mark;
+    local($option,$dum) = &get_next_optional_argument;
+    $thismark = &check_childlinks_option($option) if ($option);
+    local($pre,$post) = &minimize_open_tags("$thismark\#1\#");
+    join('', $pre, $_);
+}
+
+sub check_childlinks_option {
+    local($option) = @_;
+    if ($option =~ /none/i) {
+	$childlinks_mark = $childlinks_null_mark;
+	$childlinks_null_mark }
+    elsif ($option =~ /off/i) { $childlinks_null_mark }
+    elsif ($option =~ /all/i) {
+	$childlinks_mark = $childlinks_on_mark;
+	$childlinks_on_mark }
+    elsif ($option =~ /on/i) { $childlinks_on_mark }
+}
+
+sub remove_child_marks {
+    # Modifies $_
+    s/($childlinks_on_mark|$childlinks_null_mark)\#\d\#//go;
+}
+
+
+sub do_cmd_htmlinfo {
+    local($_) = @_;
+    local($option,$dum) = &get_next_optional_argument;
+    if ($option =~ /^(off|none)/i) { $INFO = 0; return ($_) }
+    local($pre,$post) = &minimize_open_tags($info_title_mark.$info_page_mark);
+    join('', "<BR>", $pre, $_);
+}
+sub do_cmd_htmlinfostar {
+    local($_) = @_;
+    local($option,$dum) = &get_next_optional_argument;
+    if ($option =~ /^(off|none)/i) { $INFO = 0; return ($_) }
+    local($pre,$post) = &minimize_open_tags($info_page_mark);
+    join('', $pre, $_);
+}
+
+# $idx_mark will be replaced with the real index at the end
+sub do_cmd_textohtmlindex {
+    local($_) = @_;
+    if ((defined &do_cmd_indexname )||$new_command{'indexname'}) {
+	local($br_id)=++$global{'max_id'};
+	$TITLE = &translate_environments("$O$br_id$C\\indexname$O$br_id$C");
+    } else { $TITLE = $idx_title }
+    $toc_sec_title = $TITLE;
+    $idxfile = $CURRENT_FILE;
+    if (%index_labels) { &make_index_labels(); }
+    if (($SHORT_INDEX) && (%index_segment)) { &make_preindex(); }
+    else { $preindex = ''; }
+    local $idx_head = $section_headings{'textohtmlindex'};
+    local($heading) = join(''
+	, &make_section_heading($TITLE, $idx_head)
+	, $idx_mark );
+    local($pre,$post) = &minimize_open_tags($heading);
+    join('',"<BR>\n" , $pre, $_);
+}
+
+#RRM: added 17 May 1996
+# allows labels within the printable key of index-entries,
+# when using  makeidx.perl
+sub make_index_labels {
+    local($key, @keys);
+    @keys = keys %index_labels;
+    foreach $key (@keys) {
+	if (($ref_files{$key}) && !($ref_files{$key} eq "$idxfile")) {
+	    local($tmp) = $ref_files{$key};
+	    &write_warnings("\nmultiple label $key , target in $idxfile masks $tmp ");
+	}
+	$ref_files{$key} .= "$idxfile";
+    }
+}
+#RRM: added 17 May 1996
+# constructs a legend for the SHORT_INDEX, with segments
+# when using  makeidx.perl
+sub make_preindex { &make_real_preindex }
+sub make_real_preindex {
+    local($key, @keys, $head, $body);
+    $head = "<HR>\n<H4>Legend:</H4>\n<DL COMPACT>";
+    @keys = keys %index_segment;
+    foreach $key (@keys) {
+	local($tmp) = "segment$key";
+	$tmp = $ref_files{$tmp};
+	$body .= "\n<DT>$key<DD>".&make_named_href('',$tmp,$index_segment{$key});
+#	$body .= "\n<DT>$key<DD>".&make_named_href('',
+#		$tmp."\#CHILD\_LINKS",$index_segment{$key})
+#	             unless ($CHILD_STAR);
+    }
+    $preindex = join('', $head, $body, "\n</DL>") if ($body);
+}
+
+sub do_cmd_printindex { &do_real_printindex(@_); }
+sub do_real_printindex {
+    local($_) = @_;
+    local($which) = &get_next_optional_argument;
+    $idx_name = $index_names{$which}
+	if ($which && $index_names{$which});
+    @_;
+}
+
+sub do_cmd_newindex {
+    local($_) = @_;
+    local($dum,$key,$title);
+    $key = &missing_braces unless (
+	(s/$next_pair_pr_rx/$key=$2;''/eo)
+	||(s/$next_pair_rx/$key=$2;''/eo));
+    $dum = &missing_braces unless (
+	(s/$next_pair_pr_rx/$dum=$2;''/eo)
+	||(s/$next_pair_rx/$dum=$2;''/eo));
+    $dum = &missing_braces unless (
+	(s/$next_pair_pr_rx/$dum=$2;''/eo)
+	||(s/$next_pair_rx/$dum=$2;''/eo));
+    $title = &missing_braces unless (
+	(s/$next_pair_pr_rx/$title=$2;''/eo)
+	||(s/$next_pair_rx/$title=$2;''/eo));
+    $index_names{$key} = $title if ($key && $title);
+    @_;
+}
+
+# FOOTNOTES , also within Mini-page environments
+# allow easy way to override and inherit; e.g. for frames 
+
+sub do_cmd_footnotestar { &do_real_cmd_footnote(@_) }
+sub do_cmd_footnote { &do_real_cmd_footnote(@_) }
+sub do_real_cmd_footnote {
+    local($_) = @_;
+    local($cnt,$marker,$smark,$emark)=('', $footnote_mark);
+    local($mark,$dum) = &get_next_optional_argument;
+    local($anchor_name);
+
+    $footfile = "${PREFIX}$FOOT_FILENAME$EXTN"
+	unless ($footfile||$MINIPAGE||$NO_FOOTNODE);
+
+    if ($mark) { 
+	$cnt = $mark;
+	if ($MINIPAGE) { $global{'mpfootnote'} = $cnt }
+	else { $global{'footnote'} = $cnt }
+    } else {
+	$cnt = (($MINIPAGE)? ++$global{'mpfootnote'} : ++$global{'footnote'});
+    }
+    local($br_id, $footnote)=(++$global{'max_id'},'');
+    $footnote = &missing_braces unless (
+        (s/$next_pair_pr_rx/${br_id}=$1; $footnote=$2;''/eo)
+	||(s/$next_pair_rx/${br_id}=$1; $footnote=$2;''/eo));
+    $br_id = "mp".$br_id if ($MINIPAGE);
+    $marker = &get_footnote_mark($MINIPAGE);
+    local($last_word) = &get_last_word();
+    local($href) = &make_href("$footfile#foot$br_id",$marker);
+    if ($href =~ /NAME="([^"]*)"/) { $anchor_name=$1 }
+    $last_word .= $marker unless ($anchor_name);
+    &process_footnote($footnote,$cnt,$br_id,$last_word,$mark
+	      ,($MINIPAGE? $marker : '')
+	      ,($MINIPAGE? '' : "$marker:$anchor_name") );
+    # this may not work if there is a <BASE> tag and !($file) !!! #
+#   join('',&make_href("$file#foot$br_id",$marker),$_);
+    $href . $_ 
+}
+
+sub process_image_footnote {
+    # MRO: modified to use $_[0]
+    # local(*math) = @_;
+    local($in_image, $keep, $pre, $this_anchor, $out, $foot_counters_recorded, @foot_anchors) = (1,'','');
+    local($image_contents) = $_[0];
+    $image_contents =~ s/\\(begin|end)(($O|$OP)\d+($C|$CP))tex2html_\w+\2//go;
+    $image_contents =~ s!(\\footnote(mark\b\s*(\[[^\]]*\])?|\s*(\[[^\]]*\])?\s*(($O|$OP)\d+($C|$CP))(.*)\5))!
+	$keep = $`; $out = '\footnotemark '.$3.$4;
+        #MRO: $*=1; local($saveRS) = $/; $/='';
+	if ($8) {
+	    $this_anchor = &do_cmd_footnote($2);
+	} else {
+	    $this_anchor = &do_cmd_footnotemark($3);
+	}
+        #MRO: $*=0; $/ = $saveRS;
+	$foot_counters_recorded = 1;
+	push(@foot_anchors, $this_anchor);
+	$out!oesg;
+    $_[0] = $image_contents;
+    @foot_anchors;
+}
+
+sub do_cmd_thanks { &do_cmd_footnote(@_); }
+
+sub get_footnote_mark {
+    local($mini) = @_;
+    return($footnote_mark) if ($HTML_VERSION < 3.0 );
+    local($cmd,$tmp, at tmp,$marker);
+    $cmd = "the". (($mini)? 'mp' : '') . "footnote";
+    if ($new_command{$cmd}) {
+	$tmp = "do_cmd_$cmd";
+	@tmp = split (':!:', $new_command{$cmd});
+	pop @tmp; $tmp = pop @tmp;
+	if ($tmp =~ /$O/) {
+###	    local($_) = &translate_commands($tmp);
+	    $marker = &translate_commands(&translate_environments($tmp));
+	    &make_unique($marker);
+###	    $marker = $_;
+	} else { $marker = &translate_commands(&translate_environments($tmp)); }
+    } elsif ($mini) {
+    	$marker = &translate_commands('\thempfootnote');
+    } elsif ((defined &do_cmd_thefootnote)||$new_command{'thefootnote'}) { 
+	local($br_id)=++$global{'max_id'};
+	$marker = &translate_environments("$O$br_id$C\\thefootnote$O$br_id$C");
+    } else { $marker = $footnote_mark; }
+    join('','<SUP>',$marker,'</SUP>');
+}
+
+sub make_numbered_footnotes {
+    eval "sub do_cmd_thefootnote {\&numbered_footnotes}" }
+sub numbered_footnotes { &do_cmd_arabic('<<0>>footnote<<0>>');}
+
+# default numbering style for minipage notes
+sub do_cmd_thempfootnote { &do_cmd_arabic('<<0>>mpfootnote<<0>>'); }
+
+sub do_cmd_footnotemark { &do_real_cmd_footnotemark(@_) }
+sub do_real_cmd_footnotemark {
+    local($_) = @_;
+    local($br_id, $footnote,$marker,$mpnote,$tmp,$smark,$emark);
+    # Don't use ()'s for the optional argument!
+    local($mark,$dum) = &get_next_optional_argument;
+    local ($cnt,$text_known) = ('','');
+    if ($mark) {
+	$cnt = (($mark =~ /\\/)? &translate_commands($mark) : $mark);
+	if (($MINIPAGE)&&($mpfootnotes{$cnt})) {
+	    $mpnote = 1;
+	    $br_id  = $mpfootnotes{$cnt};
+	    $text_known = 1;
+	} else {
+	    $global{'footnote'} = $cnt;
+	    local($tmp) = $footnotes{$cnt};
+	    if ($tmp) {
+		$br_id  = $tmp;
+		$text_known = 1;
+	    } else { $footnotes{$cnt} = $br_id }
+	}
+    } else {
+	$cnt = ++$global{'footnote'};
+	$text_known = 1 if ($footnotes{$cnt});
+    }
+    if ($text_known) {
+	$br_id = ($MINIPAGE ? $mpfootnotes{$cnt} : $footnotes{$cnt});
+	$marker = &get_footnote_mark($mpnote);
+	return (join('', &make_href("$footfile#foot$br_id",$marker),$_));
+    }
+    
+    local($last_word) = &get_last_word() unless ($mpnote);
+
+    # Try to find a  \footnotetext  further on.
+    do {
+	if (s/\\footnotetext\s*\[\s*$cnt\s*]*\]\s*$any_next_pair_pr_rx//o) {
+	    ($br_id, $footnote) = ($2, $3);  
+	} else { 
+	    $br_id = "fnm$cnt";
+	    $footnotes{$cnt} = $br_id;
+	}
+    } unless ($br_id);
+
+    $marker = &get_footnote_mark($mpnote);
+    $last_word .= $marker unless ($marker =~ /$footnote_mark/ );
+    if ($footnote) {
+	# found a  \footnotetext  further on
+	&process_footnote($footnote,$cnt,$br_id,$last_word,$mark);
+	join('',&make_named_href("foot$br_id","$footfile#$br_id",$marker),$_);
+    } elsif ($br_id =~ /fnm/) {
+	# no  \footnotetext  yet, so make the entry in $footnotes
+	&process_footnote('',$cnt,$br_id,$last_word,$mark);
+	# this may not work if there is a <BASE> tag and !($footfile) !!! #
+	join('',&make_named_href("foot$br_id","$footfile#$br_id",$marker),$_);
+    } elsif ($br_id) {
+	# \footnotetext  already processed
+	if ($mpnote) {
+	    $mpfootnotes =~ s/(=\"$br_id\">...)(<\/A>)/$1$last_word$3/
+		if ($last_word);
+	    # this may not work if there is a <BASE> tag !!! #
+	    join('',&make_named_href("foot$br_id","#$br_id",$marker),$_);
+	} else {
+	    $footnotes =~ s/(=\"$br_id\">...)(<\/A>)/$1$last_word$3/;
+	    # this may not work if there is a <BASE> tag and !($footfile) !!! #
+	    join(''
+		,&make_named_href("foot$br_id","$footfile#$br_id",$marker),$_);
+	}
+    } else { 
+	print "\nCannot find \\footnotetext for \\footnotemark $cnt";
+	# this may not work if there is a <BASE> tag and !($footfile) !!! #
+	join('',&make_named_href("foot$br_id","$footfile",$marker),$_);
+    }
+}
+
+# Under normal circumstances this is never executed. Any commands \footnotetext
+# should have been processed when the corresponding \footnotemark was
+# encountered. It is possible however that when processing pieces of text
+# out of context (e.g. \footnotemarks in figure and table captions)
+# the pair of commands gets separated. Until this is fixed properly,
+# this command just puts the footnote in the footnote file in the hope
+# that its context will be obvious ....
+sub do_cmd_footnotetext {
+    local($_) = @_;
+    local($mark,$dum) = &get_next_optional_argument;
+    local($br_id, $footnote, $prev, $key)=(1,'','','');
+    $footnote = &missing_braces unless (
+	(s/$next_pair_pr_rx/($br_id,$footnote)=($1,$2);''/eo)
+	||(s/$next_pair_rx/($br_id,$footnote)=($1,$2);''/eo));
+
+    $mark = $global{'footnote'} unless $mark;
+    $prev = $footnotes{$mark};
+    if ($prev) {
+	$prev = ($MINIPAGE ? 'mp' : '') . $prev;
+	# first prepare the footnote-text
+	$footnote = &translate_environments("${OP}$br_id$CP$footnote${OP}$br_id$CP")
+            if ($footnote);
+	$footnote = &translate_commands($footnote) if ($footnote =~ /\\/);
+
+	# now merge it onto the Footnotes page
+	$footnotes =~ s/(=\"$prev\">\.\.\.)(.*<\/A>)(<\/DT>\n<DD>)\n/
+		$1.'<html_this_mark>'.$3.$footnote/e;
+	local($this_mark) = $2;
+	$this_mark =~ s|(<SUP>)(?:<#\d+#>)?(\d+)(?:<#\d+#>)?(<\/SUP>)(<\/A>)$|
+		"$4<A\n HREF=\"$CURRENT_FILE\#foot$prev\">$1$2$3$4"|e;
+	$footnotes =~ s/<html_this_mark>/$this_mark/;
+    } else {
+	&process_footnote($footnote,$mark,$br_id,'','') if $footnote;
+    }
+    $_;
+}
+
+
+sub process_footnote {
+    # Uses $before
+    # Sets $footfile defined in translate
+    # Modifies $footnotes defined in translate
+    local($footnote, $cnt, $br_id, $last_word, $mark, $mini, $same_page) = @_;
+    local($target) = $target;
+
+    # first prepare the footnote-text
+    local($br_idd, $fcnt); $br_id =~ /\D*(\d+)/; $br_idd = $1;
+    $footnote = &translate_environments("$O$br_idd$C$footnote$O$br_idd$C")
+	if ($footnote);
+    $footnote = &translate_commands($footnote) if ($footnote =~ /\\/);
+
+    local($space,$sfoot_style,$efoot_style) = ("\n",'','');
+    if ((!$NO_FOOTNODE)&&(!$mini)&&(!$target)) {
+	$footfile = "${PREFIX}$FOOT_FILENAME$EXTN";
+	$space = ".\n" x 30;
+	$space = "\n<PRE>$space</PRE>";
+    } elsif ($target) {
+	$target = $frame_body_name
+	    if (($frame_body_name)&&($target eq $frame_foot_name));
+	$sfoot_style = '<SMALL>';
+	$efoot_style = '</SMALL>';
+    }
+
+    if ($mark) {
+	if ($mini) {
+	    $cnt = $mpfootnotes{$mark};
+	    if ($in_image) {
+		$fcnt = $global{'mpfootnote'}; --$fcnt if $fcnt;
+		$latex_body .= '\setcounter{mpfootnote}{'.($fcnt||"0")."}\n"
+		    unless ($foot_counters_recorded);
+	    }
+	} else {
+	    $cnt = $footnotes{$mark};
+	    if ($in_image) {
+		$fcnt = $global{'footnote'}; --$fcnt if $fcnt;
+		$latex_body .= '\setcounter{footnote}{'.($fcnt||"0")."}\n"
+		    unless ($foot_counters_recorded);
+	    }
+	}
+	if ($cnt) { 
+	    &write_warnings("\nredefined target for footnote $mark" )
+		unless ( $cnt eq $br_id )
+	}
+	if ($mini) { $mpfootnotes{$mark} = "$br_id" }
+	elsif ($br_id =~ /fnm\d+/) {
+	    $mark = "$footnotes{$cnt}";
+	    $footnotes{$cnt} = "$br_id";
+#	    $footnotes .= "\n<DT>$sfoot_style<A NAME=\"foot$br_id\">..."
+	    $footnotes .= "\n<DT>$sfoot_style<A NAME=\"$br_id\">..."
+		. $last_word . "</A>$efoot_style</DT>\n<DD>\n"
+		. $space . "\n</DD>";
+	    return;
+	} else { $footnotes{$mark} = "$br_id" }
+    } else {
+	if ($mini) {
+	    $mpfootnotes{$cnt} = "$br_id";
+	    if ($in_image) {
+		$fcnt = $global{'mpfootnote'}; --$fcnt if $fcnt;
+		$latex_body .= '\setcounter{mpfootnote}{'.($fcnt||"0")."}\n"
+		    unless ($foot_counters_recorded);
+	    }
+	} else {
+	    $footnotes{$cnt} = "$br_id";
+	    if ($in_image) {
+		$fcnt = $global{'footnote'}; --$fcnt if $fcnt;
+		$latex_body .= '\setcounter{footnote}{'.($fcnt||"0")."}\n"
+		    unless ($foot_counters_recorded);
+	    }
+	}
+    }
+
+    # catch a \footnotemark *after* the \footnotetext
+    if ((!$footnote)&&($last_word)&&(!$mini)) {
+#	$footnotes .= "\n<DT>$sfoot_style<A NAME=\"foot$br_id\">..."
+	$footnotes .= "\n<DT>$sfoot_style<A NAME=\"$br_id\">..."
+	    . $last_word
+	    . "</A>$efoot_style</DT>\n<DD>\n" . $space . "\n</DD>";
+
+    } elsif ($mini) {
+	if ($HTML_VERSION < 3.0) { $mini .= "." }
+	$mpfootnotes .= "\n<DD>$sfoot_style<A NAME=\"foot$br_id\">$mini</A> " .
+	    $footnote . $efoot_style . "\n</DD>\n";
+    } elsif ($same_page) {
+	local($link,$text);
+	$same_page =~ s/:/$text=$`;$link=$';''/e;
+	$same_page = &make_named_href("","$CURRENT_FILE\#$link",$text) if($link);
+	$footnotes .= "\n<DT>$sfoot_style<A NAME=\"foot$br_id\">...$last_word</A>"
+	    . $same_page . $efoot_style . "</DT>\n<DD>" . $sfoot_style
+	    . $footnote . $efoot_style . "\n". $space . "\n</DD>";
+    } else {
+	$footnotes .= "\n<DT>$sfoot_style<A NAME=\"foot$br_id\">...$last_word</A>"
+		. $efoot_style . "</DT>\n<DD>" . $sfoot_style
+		. $footnote . "$efoot_style\n" . $space . "\n</DD>";
+    }
+}
+
+
+sub do_cmd_appendix {
+    $latex_body .= "\\appendix\n";
+    if ($section_commands{$outermost_level} == 3) {
+	$global{'section'} = 0;
+	&reset_dependents('section');
+	eval "sub do_cmd_thesection{ &do_cmd_the_appendix(3,\@_) }";
+    } else {
+	$global{'chapter'} = 0;
+	&reset_dependents('chapter');
+	eval "sub do_cmd_thechapter{ &do_cmd_the_appendix(2,\@_) }";
+    }
+    $_[0];
+}
+
+sub do_cmd_the_appendix {
+    local($val,$level) = (0,$_[0]);
+    if ($level == 3) { $val=$global{'section'} }
+    elsif ($level == 2) { $val=$global{'chapter'} }
+    join('', &fAlph($val), '.', $_[1]);
+}
+
+sub do_cmd_appendixname { $app_title . $_[0] }
+sub do_cmd_abstractname { $abs_title . $_[0] }
+sub do_cmd_keywordsname { $key_title . $_[0] }
+sub do_cmd_subjclassname { $sbj_title . $_[0] }
+sub do_cmd_indexname { $idx_title . $_[0] }
+sub do_cmd_contentsname { $toc_title . $_[0] }
+sub do_cmd_datename { $date_name . $_[0] }
+sub do_cmd_refname { $ref_title . $_[0] }
+sub do_cmd_bibname { $bib_title . $_[0] }
+sub do_cmd_figurename { $fig_name . $_[0] }
+sub do_cmd_listfigurename { $lof_title . $_[0] }
+sub do_cmd_tablename { $tab_name . $_[0] }
+sub do_cmd_listtablename { $lot_title . $_[0] }
+sub do_cmd_partname { $part_name . $_[0] }
+sub do_cmd_chaptername { $chapter_name . $_[0] }
+sub do_cmd_sectionname { $section_name . $_[0] }
+sub do_cmd_subsectionname { $subsection_name . $_[0] }
+sub do_cmd_subsubsectionname { $subsubsection_name . $_[0] }
+sub do_cmd_paragraphname { $paragraph_name . $_[0] }
+sub do_cmd_thmname { $thm_title . $_[0] }
+sub do_cmd_proofname { $prf_name . $_[0] }
+sub do_cmd_footnotename { $foot_title . $_[0] }
+sub do_cmd_childlinksname { '<STRONG>'.$child_name.'</STRONG>'. $_[0] }
+sub do_cmd_infopagename { $info_title . $_[0] }
+
+
+sub do_cmd_ref {
+    local($_) = @_;
+    &process_ref($cross_ref_mark,$cross_ref_mark);
+}
+
+sub do_cmd_eqref {
+    local($_) = @_;
+    join('','(',&process_ref($cross_ref_mark,$cross_ref_mark,'',')'));
+}
+
+sub do_cmd_pageref {
+    local($_) = @_;
+    &process_ref($cross_ref_mark,$cross_ref_visible_mark);
+}
+
+# This is used by external style files ...
+sub process_ref {
+    local($ref_mark, $visible_mark, $use_label, $after_label) = @_;
+    $use_label = &balance_inner_tags($use_label) 
+	if $use_label =~ (/<\/([A-Z]+)>($math_verbatim_rx.*)<\1>/);
+    $use_label = &translate_environments($use_label);
+    $use_label = &simplify(&translate_commands($use_label))
+	if ($use_label =~ /\\/ );
+    local($label,$id);
+    local($pretag) = &get_next_optional_argument;
+    $pretag = &translate_commands($pretag) if ($pretag =~ /\\/);    
+    $label = &missing_braces unless (
+	(s/$next_pair_pr_rx/($id, $label) = ($1, $2);''/eo)
+	||(s/$next_pair_rx/($id, $label) = ($1, $2);''/eo));
+    if ($label) {
+	$label =~ s/<[^>]*>//go ; #RRM: Remove any HTML tags
+	$label =~ s/$label_rx/_/g;	# replace non alphanumeric characters
+
+	$symbolic_labels{"$pretag$label$id"} = $use_label if ($use_label);
+	if (($symbolic_labels{$pretag.$label})&&!($use_label)) {
+	    $use_label = $symbolic_labels{$pretag.$label}
+	}
+#	if (!($use_label eq $label)) {
+#	    $symbolic_labels{"$label$id"} = $use_label;
+#	};
+     	# if $use_label is empty then $label is used as the cross_ref_mark
+	# elseif $use_label is a string then $use_label is used
+        # else the usual mark will be used
+	$use_label = ( (!$use_label && $label) || $use_label);
+
+	print "\nLINK: $ref_mark\#$label\#$id  :$use_label:" if ($VERBOSITY > 3);
+	# The quotes around the HREF are inserted later
+	join('',"<A HREF=$ref_mark#$label#$id>$visible_mark<\/A>",$after_label, $_);
+    }
+    else {
+	print "Cannot find label argument after <$last_word>\n" if $last_word;
+	$after_label . $_;
+    }
+}
+
+#RRM:  This removes unbalanced tags, due to closures for math inside 
+#      the label-text for an <A> anchor.
+sub balance_inner_tags {
+    local($text) = @_;
+    return($text) unless ($text =~ /<\/([A-Z]+)>(\s*$math_verbatim_rx.*)(<\1( [^>]*)?>)/);
+    local($beforeT,$afterT,$tag,$math_verb,$stag) = ($`,$',$1,$2,$3);
+    if (!($beforeT =~ /<$tag>/)) { 
+	$text = join('', $beforeT, $math_verb, $afterT);
+	return (&balance_inner_tags($text));
+    }
+    local(@pieces) = split (/<$tag>/, $beforeT );
+    $beforeT = shift (@pieces);
+    local($cnt,$this) = (0,'');
+    while (@pieces) {
+	$this = shift @pieces;
+	$cnt++;
+	$beforeT .= "<$tag>".$this;
+	$cnt = $cnt - ($this =~ /<\/$tag>/g);
+    }
+    if ($cnt) { 
+	$beforeT .= "<\/$tag>" . $math_verb . $stag;
+	$text = $beforeT . $afterT;
+    } else {
+	$beforeT .= $math_verb;
+	$text = join('', $beforeT, $math_verb, $afterT);
+	return (&balance_inner_tags($text));
+    }
+    $text;
+}
+
+# Uses $CURRENT_FILE defined in translate
+sub do_cmd_label {
+    local($_) = @_;
+    local($label);
+    $label = &missing_braces unless (
+	(s/$next_pair_pr_rx\n?/$label = $2;''/eo)
+	||(s/$next_pair_rx\n?/$label = $2;''/eo));
+    &anchor_label($label,$CURRENT_FILE,$_);
+}
+
+# This subroutine is also used to process labels in undefined environments
+sub anchor_label { &real_anchor_label(@_) }
+sub real_anchor_label {
+    # Modifies entries in %ref_files defined in translate
+    local($label,$filename,$context) = @_;
+    $label =~ s/<[^>]*>//go;	#RRM: Remove any HTML tags
+    $label =~ s/$label_rx/_/g;	# replace non alphanumeric characters
+    # Associate the label with the current file
+    if ($ref_files{$label} ne $filename) {
+	$ref_files{$label} = $filename;
+	$noresave{$label} = 0; $changed = 1; }
+    print "<LABEL: $label>" if ($VERBOSITY > 3);
+    join('',"<A NAME=\"$label\">$anchor_mark</A>",$context);
+}
+
+sub do_cmd_cite {
+    local($_) = @_;
+    &process_cite('','');
+}
+
+
+# This just creates a link from a label (yet to be determined) to the
+# cite_key in the citation file.
+sub process_cite { &process_real_cite(@_) }
+sub process_real_cite {
+    local($mode,$text) = @_;
+    my $has_text = (($text)? 1 : 0);
+#    local($target) = 'contents';print "\nCITE:$text";
+    # process the text from \htmlcite or \hypercite
+    if ($has_text) {
+	$text = &balance_inner_tags($text) 
+	    if $use_label =~ (/<\/([A-Z]+)>($math_verbatim_rx.*)<\1>/);
+	$text = &translate_environments($text);
+	$text = &simplify(&translate_commands($text))
+	    if ($use_label =~ /\\/ );
+    }
+
+    my $label, $cite_key, $pretag, @cite_keys;
+    local($optional_text,$dummy) =  &get_next_optional_argument;
+    if ($mode =~ /external/) {
+#	$target = '';
+	$pretag = $optional_text; $optional_text = '';
+	$pretag = &translate_commands($pretag) if ($pretag =~ /\\/);
+    } else {
+	$optional_text = ", $optional_text" if $optional_text;
+    }
+    s/^\s*\\space//o;		# Hack - \space is inserted in .aux
+    s/$next_pair_pr_rx//o||s/$next_pair_rx//o;
+    if (!($cite_key = $2)) {
+	print "\n *** Cannot find citation argument\n";
+	return ($_);
+    }
+    @cite_keys = (split(/,/,$cite_key));
+    my ($citations, $join) = ('',',');
+    $join  = '' if ($text);
+    foreach $cite_key (@cite_keys) {
+	$cite_key =~ s/(^\s+|\s+$)//g;
+	$cite_key =~ s/(^\s+|\s+$)//g;
+    # RRM:  if the URL and printable-key are known already, then use them...
+	$cite_key =~ s/$label_rx/_/g;
+	$label = $cite_key;
+	if ($mode eq "nocite") {
+	    # nothing more to do, no citations
+	} elsif ( ($SEGMENT) && ($cite_info{$cite_key})
+		&& ($ref_files{"cite_$cite_key"}) ) {
+	    $join  = "," unless ($text);
+	    $text = $cite_info{$cite_key} unless ($text);
+	    $citations .= join('', $join
+		, &make_named_href($label,$ref_files{'cite_'."$cite_key"},$text));
+	} elsif (($mode eq "external")&&($external_labels{$pretag."cite_$cite_key"})) {
+	    $join  = "," unless ($text);
+	    $text = $cross_ref_visible_mark unless ($text);
+	    $citations .= join('', $join
+		, &make_named_href($label
+		    , $external_labels{$pretag.'cite_'."$cite_key"}."\#$label"
+		    , $text)
+		);
+	} elsif ($mode eq 'external') {
+	    $join  = "," unless ($text);
+	    &write_warnings("\nExternal reference missing for citation: $pretag$cite_key");
+	    $citations .= "$text$join#!$pretag$cite_key!#";
+        } else {
+	    $join  = "," unless ($text);
+	    #Replace the key...
+	    $citations .= "$join#$cite_key#$cite_mark#$bbl_nr#$text#$cite_mark#";
+        }
+	$text = '';
+    }
+    $citations =~ s/^\s*,\s*//;
+    if ($has_text) { join('', $citations,  $optional_text, $_) }
+    else { join('', "[", $citations,  $optional_text, "]", $_) }
+}
+
+sub do_cmd_index { &do_real_index(@_) }
+sub do_real_index {
+    local($_) = @_;
+    local($br_id, $str);
+    local($idx_option) = &get_next_optional_argument;
+    $str = &missing_braces unless (
+	(s/$next_pair_pr_rx/($br_id, $str) = ($1, $2);''/eo)
+	||(s/$next_pair_rx/($br_id, $str) = ($1, $2);''/eo));
+    join('',&make_index_entry($br_id,$str),$_);
+}
+sub do_cmd_indexstar { &do_cmd_index(@_) }
+
+# RRM: \bibcite supplies info via the .aux file; necessary with segmented docs.
+sub do_cmd_bibcite {
+    local($_) = @_;
+    local($br_id, $cite_key,$print_key);
+    $cite_key = &missing_braces unless (
+	(s/$next_pair_pr_rx/($br_id, $cite_key) = ($1, $2);''/eo)
+	||(s/$next_pair_rx/($br_id, $cite_key) = ($1, $2);''/eo));
+    $print_key = &missing_braces unless (
+	(s/$next_pair_pr_rx/($br_id, $print_key) = ($1, $2);''/eo)
+	||(s/$next_pair_rx/($br_id, $print_key) = ($1, $2);''/eo));
+    $cite_key =~ s/$label_rx/_/g;
+    $cite_info{$cite_key} = $print_key;
+    $_;
+}
+
+# This command will only be encountered inside a thebibliography environment.
+sub do_cmd_bibitem { &do_real_bibitem($CURRENT_FILE, @_) }
+sub do_real_bibitem {
+    local($thisfile, $_) = @_;
+    # The square brackets may contain the label to be printed
+    local($label, $dummy) = &get_next_optional_argument;
+    # Support for the "named" bibliography style
+    if ($label) {
+ 	$label =~ s/\\protect//g;
+ 	$label = &translate_commands($label) if ($label =~ /\\/);
+    }
+    local($cite_key);
+    $cite_key = &missing_braces unless (
+	( s/$next_pair_pr_rx/$cite_key=$2;''/e )
+	||( s/$next_pair_rx/$cite_key=$2;''/e ));
+
+    $cite_key =~ s/$label_rx/_/g;
+    $label = $cite_info{$cite_key} unless $label; # read from .aux file
+    $label = ++$bibitem_counter unless $label; # Numerical labels
+
+    if ($cite_key) {
+	# Associate the cite_key with the printed label.
+	# The printed label will be substituted back into the document later.
+	$cite_info{$cite_key} = &translate_commands($label);
+	if (!($ref_files{'cite_'."$cite_key"} eq $thisfile)) {
+	    $ref_files{'cite_'."$cite_key"} = $thisfile;
+	    $changed = 1; }
+
+        #RRM: apply any special styles, as defined below
+	$label = &bibitem_style($label) if (defined &bibitem_style);
+	# Create an anchor around the citation
+	join('',"<P></P><DT><A NAME=\"$cite_key\">$label</A>\n<DD>", $_);
+
+    } else {
+	print "Cannot find bibitem labels: $label\n";
+
+	#RRM: apply any special styles, as defined below
+	$label = &bibitem_style($label) if (defined &bibitem_style);
+	join('',"<P></P><DT>$label\n<DD>", $_); # AFEB added this line
+    }
+}
+
+#RRM: override this with a personal style, defined in  .latex2html-init
+#sub bibitem_style { join('','<STRONG>',$_[0],'</STRONG>') }
+sub bibitem_style {
+    return ($_[0]) unless $BIBITEM_STYLE;
+    local($text) = join(''
+	,"${O}0$C",$BIBITEM_STYLE,"${O}1$C", @_, "${O}1$C","${O}0$C");
+    $text = &translate_environments($text);
+    &translate_commands($text);
+}
+
+sub do_cmd_newblock {
+    "<BR>".$_[0]
+}
+
+# This just reads in the $FILE.bbl file if it is available and appends
+# it to the items that are still to be processed.
+# The $FILE.bbl should contain a thebibliography environment which will
+# cause its contents to be processed later in the appropriate way.
+# (Note that it might be possible for both the \bibliography command and
+# the thebibliography environment to be present as the former may have been
+# added by the translator as a sectioning command. In this case (both present)
+# the $citefile would have already been set by the thebibliography environment)
+
+sub do_cmd_bibliography { &do_real_bibliography($CURRENT_FILE, @_) }
+sub do_real_bibliography {
+    local($thisfile, $after) = @_;
+    if ((defined &do_cmd_bibname)||$new_command{'bibname'}) {
+	local($br_id)=++$global{'max_id'};
+	$TITLE = &translate_environments("$O$br_id$C\\bibname$O$br_id$C");
+    } else { $TITLE = $bib_title }
+    $toc_sec_title = $TITLE;
+    return($_[0]) if ($making_name);
+    local($bibfile);
+    $bibfile = &missing_braces unless (
+	($after =~ s/$next_pair_rx/$bibfile=$2;''/eo)||
+	($after =~ s/$next_pair_rx_rx/$bibfile=$2;''/eo));
+
+    do {
+	unless ($citefile) {
+	    $citefile = $thisfile;
+	    if (&process_ext_file("bbl")) { # *** BINDS $_ as a side effect ***
+		$after = join('',$_,$after);}
+	    else {
+		print "\nCannot open $FILE.bbl $!\n";
+		&write_warnings("\nThe bibliography file was not found.");
+		$after = join('',"\n<H2>No References!</H2>", $after);
+	    }
+	}
+    print "\n";
+    } if $bibfile;
+    $after;
+}
+
+# allow for customised info-pages, for different languages
+sub do_cmd_textohtmlinfopage {
+    local($_) = @_;
+    local($linfo) = $TITLES_LANGUAGE . '_infopage';
+    if (defined &$linfo) { eval "&$linfo"; }
+    else { &default_textohtmlinfopage }
+}
+
+sub default_textohtmlinfopage {
+    local($_) = @_;
+    local($argv) = $argv;
+    if (-f "../$argv") { $argv = &make_href ("../$argv", $argv, ); }
+    $_ = ($INFO && $INFO =~ /^\d+$/
+      ? join('', $close_all
+	, "<STRONG>$t_title</STRONG><P>\nThis document was generated using the\n"
+	, "<A HREF=\"$TEX2HTMLADDRESS\"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A>"
+	, " translator Version $TEX2HTMLVERSION\n"
+	, "<P>Copyright © 1993, 1994, 1995, 1996,\n"
+	, "<A HREF=\"$AUTHORADDRESS\">Nikos Drakos</A>, \n"
+	, "Computer Based Learning Unit, University of Leeds.\n"
+	, "<BR>Copyright © 1997, 1998, 1999,\n"
+	, "<A HREF=\"$AUTHORADDRESS2\">Ross Moore</A>, \n"
+	, "Mathematics Department, Macquarie University, Sydney.\n"
+	, "<P>The command line arguments were: <BR>\n "
+	, "<STRONG>latex2html</STRONG> <TT>$argv</TT>\n"
+	, (($SHOW_INIT_FILE && ($INIT_FILE ne ''))?
+	   "\n<P>with initialization from: <TT>$INIT_FILE</TT>\n$init_file_mark\n" :'')
+	, "<P>The translation was initiated by $address_data[0] on $address_data[1]"
+	, $open_all, $_)
+      : join('', $close_all, "$INFO\n", $open_all, $_));
+    $_;
+}
+
+
+# Try to translate LaTeX vertical space in a number of <BR>'s.
+# Eg. 1cm results in one + two extra <BR>'s.
+# To help the browser rendering is quite ugly, but why not.
+#
+sub get_vspace {
+    local($_) = @_;
+    local($vh) = 0;
+
+    return("<BR>") if /-/;
+
+    $vh = int($1 * $vspace_12pt{$2} + 0.5)
+	if (/([0-9.]+)\s*([a-z]+)/);
+    join('',"<BR>","\n<BR>" x $vh);
+}
+
+sub do_cmd_vskip {
+    local($_) = @_;
+    &ignore_numeric_argument;
+    join('',&get_vspace($1),$_);
+}
+
+sub do_cmd_break {
+    local($_) = @_;
+    join('',"<BR>",$_);
+}
+
+sub do_cmd_vspace {
+    local($_) = @_;
+    local($how_much);
+    $how_much = &missing_braces unless (
+	(s/$next_pair_pr_rx/$how_much = $2;''/e)
+	||(s/$next_pair_rx/$how_much = $2;''/e));
+    join('',&get_vspace($how_much),$_);
+}
+
+sub do_cmd_vspacestar {
+    &do_cmd_vspace;
+}
+
+sub do_cmd_d_backslash {
+    local($_) = @_;
+
+    # Eat space from &pre_process.
+    # We could also modifiy $single_cmd_rx and %normalize, but why not here.
+    s/^ \*?//;
+    local($spc,$dum)=&get_next_optional_argument;
+    # If the [...] occurs on the next line, then it is *not* an argument to \\ .
+    # MRO: replaced $* with /m
+    if ($dum =~ /\n/m) { 
+	$spc = $`;
+        $spc =~ s/\s//gm;
+        $_ = $'.$_ 
+    }
+    join('',(($spc)? &get_vspace($spc): "\n<BR>"),$_);
+}
+
+
+################## Commands used in the $FILE.aux file #######################
+
+sub do_cmd_jobname { $FILE . $_[0] }
+
+# This is used in $FILE.aux
+sub do_cmd_newlabel {
+    local($_) = @_;
+    local($label,$val,$tmp);
+    $label = &missing_braces unless (
+	(s/$next_pair_pr_rx/$label = $2;''/eo)
+	||(s/$next_pair_rx/$label = $2;''/eo));
+    $tmp = &missing_braces unless (
+	(s/$next_pair_pr_rx/$tmp=$2;''/eo)
+	||(s/$next_pair_rx/$tmp=$2;''/eo));
+    $val = &missing_braces unless (
+	($tmp =~ s/$next_pair_pr_rx/$val=$2;''/eo)
+	||($tmp =~ s/$next_pair_rx/$val=$2;''/eo));
+    $val =~ s/(^\s+|\s+$)//gs;
+    $label =~ s/$label_rx/_/g;	# Replace non alphanumeric characters
+    $latex_labels{$label} = $val;
+    &do_labels_helper($label);
+    $_;
+}
+sub do_cmd_oldnewlabel { &do_cmd_newlabel(@_) }
+
+#
+# Sets %encoded_(section|figure|table)_number, which maps encoded
+# section titles to LaTeX numbers
+# .= \$number . \"$;\"";
+sub do_cmd_oldcontentsline { &do_cmd_contentsline(@_) }
+sub do_cmd_contentsline {
+    local($_) = @_;
+    local($arg,$after,$title,$number,$hash,$stype,$page);
+    # The form of the expression is:
+    # \contentsline{SECTION} {... {SECTION_NUMBER} TITLE}{PAGE}
+    $stype = &missing_braces unless (
+        (s/$next_pair_pr_rx/$stype = $2;''/e)
+        ||(s/$next_pair_rx/$stype = $2;''/e));
+    $arg = &missing_braces unless (
+        (s/$next_pair_pr_rx/$arg = $2;''/e)
+        ||(s/$next_pair_rx/$arg = $2;''/e));
+    $page = &missing_braces unless (
+        (s/$next_pair_pr_rx/$page = $2;''/e)
+        ||(s/$next_pair_rx/$page = $2;''/e));
+
+#    s/$any_next_pair_pr_rx/$stype = $2;''/eo; # Chop off {SECTION}
+#    s/$any_next_pair_pr_rx/$arg   = $2;''/eo; # Get {... {SECTION_NUMBER} TITLE}
+#    s/$any_next_pair_pr_rx/$page  = $2;''/eo; # Get page number
+    $hash = $stype if (($stype =~ /^(figure|table)$/)||($SHOW_SECTION_NUMBERS));
+    $hash =~ s/(sub)*(section|chapter|part)/section/;
+    $after = $_;
+    if ($hash) {
+	if ($arg =~ /^$OP/) {
+	    $number = &missing_braces unless (
+		($arg =~ s/$next_pair_pr_rx/$number = $2;''/eo)
+		||($arg =~ s/$next_pair_rx/$number = $2;''/eo));
+	}	
+	if ($stype eq "part") {
+ 	    while ($arg =~ s/$next_pair_pr_rx//o) {};
+  	    $number =~ tr/a-z/A-Z/;
+   	    $number = "Part $number:"}
+	# This cause problem when picking figure numbers...
+	# while ($tmp =~ s/$next_pair_pr_rx//o) {};
+	$number = -1 unless $number;
+#JCL(jcl-tcl)
+##	$_ = $arg;
+#	$title = &sanitize($arg);
+##	&text_cleanup;
+##	$title = &encode_title($_);
+##
+	#remove surrounding brace-numbering
+	$arg =~ s/^($O|$OP)\d+($C|$CP)|($O|$OP)\d+($C|$CP)$//g;
+	$arg =~ s/\\footnote(mark|text)?//g;
+	# \caption arguments should have had environments translated already
+	$arg = &translate_environments($arg) if ($arg =~ /\\begin/);
+	#replace image-markers by the image params
+	$arg =~ s/$image_mark\#([^\#]+)\#/&purify_caption($1)/e;
+
+	#RRM: resolve any embedded cross-references first
+	local($checking_caption) = 1;
+	$title = &simplify($arg);
+	$title = &sanitize($title);
+	$checking_caption = '';
+	eval "\$encoded_${hash}_number{\$title} .= \$number . \"$;\"";
+    }
+    $after;
+}
+
+#
+#  Before normalizing this was \@input.  Used in .aux files.
+#
+sub do_cmd__at_input {
+    local ($_) = @_;
+    local ($file, $after);
+    $file = &missing_braces unless (
+	(s/$next_pair_pr_rx/$file=$2;''/eo)
+	||(s/$next_pair_rx/$file=$2;''/eo));
+    local($prefix, $suffix) = split(/\./, $file);
+    $after = $_;
+    local($EXTERNAL_FILE) = $prefix;
+    &process_ext_file($suffix);
+    $after;
+}
+
+
+########################### Counter Commands #################################
+# Removes the definition from the input string, adds to the preamble
+# and stores the body in %new_counter;
+sub get_body_newcounter {
+#    local(*_) = @_;
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    local($within,$ctr,$cmd,$tmp,$body,$pat);
+    local($new_ctr) = 'counter';
+    ($ctr,$pat) = &get_next(1);	# Get counter name
+    &write_warnings ("\n*** LaTeX Error: backslash found in counter-name: $ctr")
+	if ($pat =~ s/\\//);
+    $ctr =~ s/^\s*\\//; 
+    $new_ctr .= $pat;
+
+    ($within,$pat) = &get_next(0);	# Get optional within, currently ignored
+    &addto_dependents($within,$ctr);
+    $new_ctr .= $pat;
+    do {
+###	local($_) = "\\arabic<<1>>$ctr<<1>>";
+	$body = "\\arabic<<1>>$ctr<<1>>";
+	&make_unique($body);
+	$cmd = "the$ctr";
+	$tmp = "do_cmd_$cmd";
+	$new_command{$cmd} = join(':!:',0,$body,'}') unless (defined &$tmp);
+	    &write_mydb("new_command", $cmd, $new_command{$cmd});
+	undef $body;
+    };
+    &do_body_newcounter($ctr);
+
+    $$after_R = $_;
+    if (!$PREAMBLE) {
+	my $new_cmd = join(''
+	    , "counter{$ctr}", ($within ? "[$within]" : '') );
+	&add_to_preamble('counter','\\new'.$new_cmd);
+	return ();
+    }
+    'newed'.$new_ctr;
+}
+
+sub do_body_newcounter {
+    local($ctr) = @_;
+    $latex_body .= &revert_to_raw_tex("\\newcounter{$ctr}\n")
+	unless ($preamble =~ /\\new(counter|theorem){$ctr}/);
+    $global{$ctr} = 0;
+    &process_commands_wrap_deferred("the$ctr ");
+    $_;
+}
+
+
+#RRM: This doesn't work properly yet.
+#     The new booleans need to be stored for use in all partitions.
+#     \if... \else  \fi  is not yet implemented.
+
+sub get_body_newboolean {
+#    local(*_) = @_;
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    my $bool;
+    $bool = &missing_braces unless (
+	(s/$next_pair_pr_rx/$bool=$2;''/e)
+	||(s/$next_pair_rx/$bool=$2;''/e));
+    $bool =  &process_body_newif('',$bool);
+    $$after_R = $_;
+    'newed'.$bool;
+}
+
+sub get_body_newif {
+#    local(*_) = @_;
+    local($after_R) = @_;
+    local($_) = $$after_R;
+    local($bool);
+    if (!(s/^\s*\\if([a-zA-Z]+)//)) {
+	$$after_R = $_;
+	return();
+    }
+    $bool = $1;
+    $$after_R = $_;
+    join('','newed', &process_body_newif('', $bool));
+}
+
+
+sub process_body_newif {
+    local($texif, $bool) = @_;
+    local($body,$ifbool,$cmd,$tmp,$pat);
+   
+#    ($bool,$pat) = &get_next(1);	# Get boolean name
+
+#    # change the brace-type around the command-name
+#    $pat =~ s/$O/$OP/; $pat =~ s/$C/$CP/; $new_cmd .= $pat;
+
+    $ifbool = "if".$bool;
+    $global{$ifbool} = 0;
+
+    do {
+	$body = "\$global{'$ifbool'} = 1;";
+	$cmd = $bool."true";
+	$code = "sub do_cmd_$cmd { ".$body." \$_[0];}";
+	eval $code;
+	print STDERR "\n*** sub do_cmd_$cmd failed:\n$@\n" if ($@);
+	$raw_arg_cmds{$cmd} = 1;
+
+	$body = "\$global{$ifbool} = 0;";
+	$cmd = $bool."false";
+	$code = "sub do_cmd_$cmd { ".$body." \$_[0];}";
+	eval $code;
+	print STDERR "\n*** sub do_cmd_$cmd failed:\n$@\n" if ($@);
+	$raw_arg_cmds{$cmd} = 1;
+
+	undef $body;
+    };
+    &process_commands_wrap_deferred("${bool}true\n${bool}false\nif$bool\n");
+
+#    $latex_body .= &revert_to_raw_tex("\\newif\\$ifbool\n")
+#	unless ($preamble =~ /\\newif\s*\\$ifbool/);
+
+    if (!$PREAMBLE) {
+	local($new_cmd) = "boolean{\\$bool}";
+	&add_to_preamble ('newif', "\\new$new_cmd" );
+	return ();
+    }
+    local($br_id) = ++$global{'max_id'};
+    'boolean'."$O$br_id$C$bool$O$br_id$C";
+}
+
+
+sub do_cmd_value {
+    local($_) = @_;
+    local($ctr,$val);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_pr_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_rx/$ctr = $2;''/eo));
+    $val = &get_counter_value($ctr);
+    if ($val) { $val.$_ }
+    else { join(''," 0",$_) }
+}
+
+sub do_cmd_boolean {
+    local($_) = @_;
+    local($bool,$val);
+    $bool = &missing_braces
+	unless ((s/$next_pair_pr_rx/$bool = $2;''/eo)
+	      ||(s/$next_pair_rx/$bool = $2;''/eo));
+    $val = &get_boolean_value($bool);
+    if ($val) { $val.$_ }
+    else { "0".$_ }
+}
+
+sub get_counter_value {
+    local($ctr) = @_;
+    local($val,$index);
+    $ctr = 'eqn_number' if ($ctr eq "equation");
+    $index = $section_commands{$ctr};
+
+    if (defined $global{$ctr}) { $val= $global{$ctr}; }
+    elsif (($SEGMENT)&&($index)) { 
+	$val = $segment_sec_id[$index]
+#    if ($index) { 
+#	if ($SEGMENT) { $val = $segment_sec_id[$index] }
+#	else { $val = $curr_sec_id[$index] }
+    } else {
+	&write_warnings ("\ncounter $ctr not defined");
+	$val= 0;
+    }
+    print "\nVAL:$ctr: $val " if ($VERBOSITY > 3);
+    $val;
+}
+
+sub get_boolean_value {
+    local($bool) = @_;
+    local($val,$index);
+    if (defined $global{$bool}) { $val= $global{$bool} }
+    else {
+	&write_warnings ("boolean $bool not defined\n");
+	$val="0";
+    }
+    print "\nBOOL:$bool: $val " if ($VERBOSITY > 3);
+    $val;
+}
+
+sub do_cmd_addtocounter {
+    local($_) = @_;
+    local($ctr,$num,$index);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$ctr = $2;''/eo));
+    $num = &missing_braces
+	unless ((s/$next_pair_rx/$num = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$num = $2;''/eo));
+
+    $num = &translate_commands($num) if ($num =~ /\\/);
+    if ($num !~ /^\s*(\+|-)?\d+\s*$/) {
+        print STDERR "\n*** cannot set counter $ctr to $num ***\n";
+        return($_);
+    }
+
+    $latex_body .= &revert_to_raw_tex("\\addtocounter{$ctr}{$num}\n");
+    $index = $section_commands{$ctr};
+
+    if (defined $global{$ctr}) { $global{$ctr} += $num }
+    elsif ($index) { 
+	if ($SEGMENT) { $segment_sec_id[$index] += $num }
+	else { $curr_sec_id[$index] += $num }
+	$global{$ctr} += $num;
+    } elsif ($ctr eq "equation") {
+	$global{'eqn_number'} += $num
+    } else { $global{$ctr} += $num };
+    print "\nADD:$ctr:+$num= ". $global{$ctr}." " if ($VERBOSITY > 3);
+#    &reset_dependents($ctr) if ($dependent{$ctr});
+    $_;
+}
+
+sub do_cmd_setcounter {
+    local($_) = @_;
+    local($ctr,$num,$index,$sctr);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$ctr = $2;''/eo));
+    $num = &missing_braces
+	unless ((s/$next_pair_rx/$num = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$num = $2;''/eo));
+
+    $num = &translate_commands($num) if ($num =~ /\\/);
+    if ($num !~ /^\s*(\+|-)?\d+\s*$/) {
+	print STDERR "\n*** cannot set counter $ctr to $num ***\n";
+	return($_);
+    }
+    if ($ctr =~ /^l/) {
+	$sctr = $';
+	$ctr = $sctr if $section_commands{$sctr};
+    }
+    if (! $AUX_FILE && !($ctr =~ /page/ )) {
+	$latex_body .= &revert_to_raw_tex("\\setcounter{$ctr}{$num}\n");
+	$index = $section_commands{$ctr};
+	if ($index) { 
+	    if ($curr_sec_id[$index] <= $num ) {
+		$curr_sec_id[$index] = $num
+	    } else {
+		print "\nignoring \\setcounter{$ctr}{$num} currently at ",$curr_sec_id[$index] ;
+		&write_warnings(join('',"\n\\setcounter{$ctr}{$num} ignored,"
+			," cannot reduce from ",$curr_sec_id[$index]));
+	    }
+	    $global{$ctr} = $num;
+	} elsif ($ctr eq "equation") {$global{'eqn_number'} = $num }
+	else { $global{$ctr} = $num };
+    }
+    print "\nSET:$ctr: = $num" if ($VERBOSITY > 3);
+#    &reset_dependents($ctr) if ($dependent{$ctr});
+    $_;
+}
+
+sub do_cmd_setlength {
+    local($_) = @_;
+    local($dimen,$value,$index,$sctr);
+    $dimen = &missing_braces
+	unless ((s/$next_pair_rx/$dimen = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$dimen = $2;''/eo));
+    $value = &missing_braces
+	unless ((s/$next_pair_rx/$value = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$value = $2;''/eo));
+
+    # recognise specific length-parameters
+    if ($dimen =~ /captionwidth/) {
+	local($pxs,$len) = &convert_length($value, $MATH_SCALE_FACTOR);
+	$cap_width = $pxs if ($pxs &&($dimen =~ /captionwidth/));
+    }
+    if ((! $AUX_FILE)&&(! $PREAMBLE)) {
+	$latex_body .= &revert_to_raw_tex("\\setlength{$dimen}{$value}\n");
+	print "\nSETLENGTH:$dimen = $value" if ($VERBOSITY > 3);
+    }
+    $_;
+}
+
+sub do_cmd_setboolean {
+    local($_) = @_;
+    local($bool,$val);
+    $bool = &missing_braces
+	unless ((s/$next_pair_rx/$bool = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$bool = $2;''/eo));
+    $val = &missing_braces
+	unless ((s/$next_pair_rx/$val = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$val = $2;''/eo));
+    if (! $AUX_FILE) {
+	$latex_body .= &revert_to_raw_tex("\\setboolean{$bool}{$val}\n");
+	$global{"if$bool"} = (($val = ~/true/) ? 1 : 0);
+	print "\nSETBOOL:$bool = $val" if ($VERBOSITY > 3);
+    }
+    $_;
+}
+
+sub do_cmd_endsegment {
+    local($_) = @_;
+    local($ctr,$dum) = &get_next_optional_argument;
+    local($index,$steps) = ('',1);
+#    $steps = &missing_braces unless (
+#	(s/$next_pair_pr_rx/$steps = $2;''/e)
+#	||(s/$next_pair_rx/$steps = $2;''/e));
+    $index = $section_commands{$ctr} if $ctr;
+#    if ($index) { $curr_sec_id[$index] += $steps }
+#    if ($index) { ($after_segment,$after_seg_num) = ($index,$steps) }
+    if ($index) { ($after_segment,$after_seg_num) = ($index,1) }
+    $_;
+}
+
+sub do_cmd_stepcounter {
+    local($_) = @_;
+    local($ctr,$index);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$ctr = $2;''/eo));
+    if (! $AUX_FILE) {
+	$latex_body .= &revert_to_raw_tex("\\stepcounter{$ctr}\n");
+	$index = $section_commands{$ctr};
+	if ($index) {
+#	    if ($SEGMENT) { $segment_sec_id[$index] += 1 }
+#	    else { $curr_sec_id[$index] += 1 }
+	    $global{$ctr} += 1;
+	} elsif ($ctr eq "equation") { $global{'eqn_number'} += 1 }
+	else { $global{$ctr} += 1 };
+    }
+    print "\nSTP:$ctr:+1" if ($VERBOSITY > 3);
+    &reset_dependents($ctr) if ($dependent{$ctr});
+    $_;
+}
+
+#RRM:   dependent counters are stored as a comma-separated list
+#       in the %dependent hash.
+sub reset_dependents {
+    local($ctr) = @_;
+    local($dep,$subdep,%dependents);
+    @dependents = (split($delim, $dependent{$ctr}));
+    print "\n" if (($VERBOSITY > 3)&&(@dependents));
+    while (@dependents) {
+	$dep = pop(@dependents);
+	print "RESET $dep to 0\n" if ($VERBOSITY > 3);
+	if ($global{$dep}) { $global{$dep} = 0 }
+	elsif ($dep =~ /equation/) { $global{'eqn_number'} = 0 }
+	if ($dependent{$dep}) {
+	    push(@dependents,split($delim,$dependent{$dep}));
+	}
+    }
+}
+
+sub do_cmd_numberwithin {
+    local($_) = @_;
+    local($ctr,$within);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$ctr = $2;''/eo));
+    $within = &missing_braces
+	unless ((s/$next_pair_rx/$within = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$within = $2;''/eo));
+
+    # record the counter dependency
+    &addto_dependents($within,$ctr) if ($within);
+    local($newsub) = "sub do_cmd_the$ctr {"
+	. "\$global{'max_id'}++;\n"
+#        . "local(\$super)=\&do_cmd_the$within();\n"
+	. "local(\$super)=\&translate_commands('\\the$within');\n"
+	. "\$super .= '.' unless (\$super =~/\\.\$/);\n"
+	. "\$super .\&do_cmd_value('<<'.\$global{'max_id'}.'>>"
+	. $ctr . "<<'.\$global{'max_id'}.'>>')}\n";
+    eval $newsub;
+    print " *** sub do_cmd_the$ctr unchanged *** $@ " if ($@);
+    $_;
+}
+
+sub do_cmd_refstepcounter {
+    local($_) = @_;
+    local($ctr);
+    $ctr = &missing_braces
+	unless ((s/$next_pair_rx/$ctr = $2;''/eo)
+	      ||(s/$next_pair_pr_rx/$ctr = $2;''/eo));
+    if (! $AUX_FILE) {
+	$latex_body .= &revert_to_raw_tex("\\refstepcounter{$ctr}\n");
+	$index = $section_commands{$ctr};
+	if (defined $global{$ctr}) { $global{$ctr} += 1 }
+	elsif ($index) {
+	    if ($SEGMENT) { $segment_sec_id[$index] += 1 }
+	    else { $curr_sec_id[$index] += 1 }
+	} elsif ($ctr eq "equation") { $global{'eqn_number'} += 1 }
+	else { $global{$ctr} += 1 };
+    }
+    print "\nSTP: $ctr : +1" if ($VERBOSITY > 3);
+    &reset_dependents($ctr) if ($dependent{$ctr});
+    $_;
+}
+
+sub read_counter_value {
+    local($_) = @_;
+    local($ctr,$br_id,$val);
+    $ctr = &missing_braces
+        unless ((s/$next_pair_pr_rx/$br_id = $1; $ctr = $2;''/eo)
+              ||(s/$next_pair_rx/$br_id = $1; $ctr = $2;''/eo));
+    $val = &get_counter_value($ctr);
+    ($ctr, $val, $br_id, $_)
+}
+
+sub styled_number_text {
+    local($num_style, $val, $txtID) = @_;
+    if ($USING_STYLES) {
+        $txt_style{$num_style} = " " unless ($txt_style{$num_style});
+        join('',"<SPAN CLASS=\"$num_style\">", $val, "</SPAN>", $_);
+    } else { $val.$_ }
+}
+
+sub do_cmd_arabic {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    $val = ($val ? &farabic($val) : "0");
+    &styled_number_text('arabic', $val, $id);
+}
+    
+sub do_cmd_roman {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    if ($val < 0 ) { $val = join('',"-",&froman(-$val)); }
+    elsif ($val) { $val = &froman($val) }
+    else { $val = "0"; }
+    &styled_number_text('roman', $val, $id);
+}
+
+sub do_cmd_Roman {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    if ($val < 0 ) { $val = join('',"-",&fRoman(-$val)); }
+    elsif ($val) { $val = &fRoman($val) }
+    else { $val = "0"; }
+    &styled_number_text('Roman', $val, $id);
+}
+
+sub do_cmd_alph {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    if ($val < 0 ) { $val = join('',"-",&falph(-$val)); }
+    elsif ($val) { $val = &falph($val) }
+    else { $val = "0"; }
+    &styled_number_text('alph', $val, $id);
+}
+
+sub do_cmd_Alph {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    if ($val < 0 ) { $val = join('',"-",&fAlph(-$val)); }
+    elsif ($val) { $val = &fAlph($val) }
+    else { $val = "0"; }
+    &styled_number_text('Alph', $val, $id);
+}
+
+
+sub do_cmd_fnsymbol {
+    local($ctr, $val, $id, $_) = &read_counter_value($_[0]);
+    $val = &process_in_latex_helper($ctr, $val, "fnsymbol{$ctr}");
+    &styled_number_text('Alph', $val, $id);
+}
+
+
+
+# This is a general command for getting counter values;
+# e.g. for section-numbers.
+
+sub do_cmd_thecounter {
+    local($_) = @_;
+    # Uses $counter bound by the caller
+    local($val) = &get_counter_value($counter);
+    $val = &process_in_latex_helper($counter,$val,"the$counter");
+    &styled_number_text($counter, $val, '');
+#   join('',&process_in_latex_helper($counter,$val,"the$counter"),$_[0]);
+}
+
+
+################# Special Naming Macros ##################################
+
+sub do_cmd_LaTeX {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'LaTeX'} = ' ' unless ($env_style{'LaTeX'});
+	$env_style{'logo-LaTeX'} = ' ' unless ($env_style{'logo-LaTeX'});
+	join('',"<SPAN CLASS=\"logo,LaTeX\">",$Laname, $TeXname,"</SPAN>",$_);
+    } else { join('',$Laname, $TeXname, $_); }
+}
+
+sub do_cmd_LaTeXe {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'LaTeX2e'} = ' ' unless ($env_style{'LaTeX2e'});
+	$env_style{'logo-LaTeX2e'} = ' ' unless ($env_style{'logo-LaTeX2e'});
+	join('',"<SPAN CLASS=\"logo,LaTeX2e\">"
+		,$Laname, $TeXname,'2<SUB>e</SUB>',"</SPAN>",$_);
+    } else { join('',$Laname,$TeXname
+		,(($HTML_VERSION >= 3.0)? '2<SUB>e</SUB>':'2e'),$_);
+    }
+}
+
+sub do_cmd_latextohtml {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'LaTeX2HTML'} = ' ' unless ($env_style{'LaTeX2HTML'});
+	$env_style{'logo-LaTeX2HTML'} = ' ' unless ($env_style{'logo-LaTeX2HTML'});
+	join('',"<SPAN CLASS=\"logo,LaTeX2HTML\">"
+		,$Laname, $TeXname,"2<TT>HTML</TT>","</SPAN>",$_);
+    } else { join('',$Laname,$TeXname,"2<TT>HTML</TT>",$_);}
+}
+
+sub do_cmd_TeX {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'logo-TeX'} = ' ' unless ($env_style{'logo-TeX'});
+	join('',"<SPAN CLASS=\"logo-TeX\">",$TeXname,"</SPAN>",$_);
+    } else { join('',$TeXname, $_);}
+}
+
+sub do_cmd_MF {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'logo-Metafont'} = ' ' unless ($env_style{'logo-Metafont'});
+	join('',"<SPAN CLASS=\"logo-Metafont\">",$MFname,"</SPAN>",$_);
+    } else { join('', $MFname, $_);}
+}
+
+sub do_cmd_Xy {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'logo-Xy-pic'} = ' ' unless ($env_style{'logo-Xy-pic'});
+	join('',"<SPAN CLASS=\"logo-Xy-pic\">",$Xyname,"</SPAN>",$_);
+    } else { join('',$Xyname, $_);}
+}
+
+sub do_cmd_AmS {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'logo-AMS'} = ' ' unless ($env_style{'logo-AMS'});
+	join('',"<SPAN CLASS=\"logo-AMS\">",$AmSname,"</SPAN>",$_);
+    } else { join('',$AmSname, $_);}
+}
+
+sub do_cmd_AmSTeX {
+    local($_) = @_;
+    if ($USING_STYLES) {
+	$env_style{'logo-AMS'} = ' ' unless ($env_style{'logo-AMS'});
+	join('',"<SPAN CLASS=\"logo-AMS\">",$AmSname,"-$TeXname","</SPAN>",$_);
+    } else { join('',$AmSname, "-", $TeXname, $_);}
+}
+
+sub do_cmd_char {
+    local($_) = @_;
+# some special characters are already turned into l2h internal
+# representation.
+# Get its represention from the table and use it like as regexp form.
+    local($spmquot) = &escape_rx_chars($html_specials{'"'});
+# Get all internal special char representations as implied during
+# preprocessing.
+    local($spmrx) = join("\000",values %html_specials);
+# escape regexp special chars (not really necessary yet, but why not)
+    $spmrx = &escape_rx_chars($spmrx); #~ s:([\\(){}[\]\^\$*+?.|]):\\$1:g;
+    $spmrx =~ s/\000/|/g;
+    $spmrx = "(.)" unless $spmrx =~ s/(.+)/($1|.)/;
+
+    s/^[ \t]*(\d{1,3})[ \t]*/&#$1;/ &&
+	return($_);
+
+    s/^[ \t]*\'(\d{1,3})[ \t]*/"&#".oct($1).";"/e &&
+	return($_);
+
+    s/^[ \t]*$spmquot(\d{1,2})[ \t]*/"&#".hex($1).";"/e &&
+	return($_);
+
+# This is a kludge to work together with german.perl. Brrr.
+    s/^[ \t]*\'\'(\d{1,2})[ \t]*/"&#".hex($1).";"/e &&
+	return($_);
+# If l2h's special char marker represents more than one character,
+# it's already in the &#xxx; form. Else convert the single character
+# into &#xxx; with the ord() command.
+    s/^[ \t]*\`\\?$spmrx[ \t]*/
+	(length($html_specials_inv{$1}) > 1 ?
+	 $html_specials_inv{$1} : "&#".ord($html_specials_inv{$1}||$1).";")/e &&
+	     return($_);
+    &write_warnings(join('',
+			 "Could not find character number in \\char",
+			 (/\n/ ? $` : $_), " etc.\n"));
+    $_;
+}
+
+
+sub do_cmd_symbol {
+    local($_) = @_;
+    local($char);
+    $char = &missing_braces
+	unless ((s/$next_pair_pr_rx/$char = $2;''/eo)
+		||(s/$next_pair_rx/$char = $2;''/eo));
+    join('',&do_cmd_char($char),$_);
+}
+
+################# Accent and Special Symbols ##################################
+
+# Generate code for the accents handling commands that are never
+# applied to i or j.
+# MEH: Now all accents are safe for dotless i or j
+# MEH: Math accents supported as well
+sub generate_accent_commands {
+    local($accent,$accent_cmd);
+    local(%accents) = ("c", "cedil", "pc", "cedil", "d", "bdot", "b", "b",
+		       "tilde", "tilde", "dot", "dot", "bar", "macr",
+		       "hat", "circ", "u", "breve", "v", "caron",
+		       "H", "dblac", "t", "t", "grave", "grave",
+		       "acute", "acute", "ddot", "uml", "check", "caron",
+		       "breve", "breve", "vec", "vec",
+		       "k", "ogon", "r", "ring");
+    foreach $accent (keys(%accents))  {
+	$accent_cmd = "sub do_cmd_$accent {" . 'local($_) = @_;'  .
+	    "&accent_safe_for_ij('$accents{$accent}','$accent');" . '$_}';
+	eval $accent_cmd;
+	$accent_cmd = "do_cmd_$accent";
+	print STDERR "\n*** sub do_cmd_$accent failed:\nPERL: $@\n" if ($@);
+    }
+}
+
+# These handle accents, taking care of the dotless i's and j's that
+# may follow (even though accented j's are not part of any alphabet
+# that I know).
+#
+# Note that many forms of accents over dotless i's and j's are
+# handled:
+#   "\^\i rest"
+#   "\^\i
+#    rest"
+#   "\^{\i}rest"
+#   "\^\i{}rest"
+# They all produce "îrest".
+# MEH: now also handles
+#   "\^{}rest"
+#   "\^,rest"
+# and many more
+
+sub accent_safe_for_ij {
+    local($type,$acc_cmd) = @_;
+    local($arg, $first_char,$ij_cmd);
+    #print STDOUT "\nACCENT: $type <$_>\n" ;
+    s/^[ \t]*\n?[ \t]*(\S)/$1/;	# Remove whitespace
+    if (s/^\\([ij])([^a-zA-Z]|$)/$2/) {
+	# Accent of this form: "\^\i rest" or "\^\i{}rest"
+	($arg) =  $1; $ij_cmd = "\\$1";
+	s/^[ \t]+//o;		# Get rid of whitespaces after \i
+	if (substr($_, 0, 2) =~ /[\n\r][^\n\r]/) {
+	    $_ = substr($_, 1); # Get rid of 1 newline after \i
+	}
+    } else {
+	# Accent of this form: "\^{\i}rest" or not an accent on i nor j
+	($arg) =  &get_next_pair_or_char_pr;
+    }
+    $arg =~ s/([^\s\\<])/$first_char = $1; ''/eo;
+#   print STDOUT "\nACCENT1 type:$type arg:|${arg}| first_char: |$first_char| $ij_cmd 
+#	, $ACCENT_IMAGES\n";
+
+    local($aafter) = $_;
+    local($iso) = &iso_map($first_char,$type); 
+    if ($iso) { $_ = join('', $iso, $arg, $aafter) }
+    elsif ((!($ACCENT_IMAGES))&&(!($ij_cmd))) {
+	local($err_string) = 
+	    "\nNo available accent for $first_char$type , using just \"$first_char$arg\"";
+	print $err_string if ($DEBUG||$VERBOSITY > 1);
+	&write_warnings("\n ...set \$ACCENT_IMAGES  to get an image ");
+	$_ = join('', $first_char, $arg, $aafter) }
+    else { 
+	print ", making image of accent: $first_char$type " if ($VERBOSITY > 1);
+	$_ = join('', &mbox_accent($acc_cmd, $first_char, $ij_cmd) , $arg, $aafter)
+    }
+}
+
+sub mbox_accent {
+    local($type, $char, $ij_cmd) = @_;
+    if (length($type) > 1 ) {
+	if ($text_accent{$type}) {
+	    $type = $text_accent{$type};
+	} elsif ($type =~ /^(math)?accent/) {
+	} else {
+	    print "\n unrecognised accent $type for `$char' ";
+	    return $char;
+	}
+    }
+    local(@styles);
+    local($cmd,$style,$bstyle,$estyle) = ('','','','');
+    local(@styles) = split(',',$ACCENT_IMAGES);
+    foreach $style (@styles) {
+	$style =~ s/(^\s*\\|\s*)//g; 
+	$cmd = "do_cmd_$style";
+	if (defined &$cmd) { 
+	    $bstyle .= "\\$style\{" ;
+	    $estyle .= "\}";
+	} else {
+	    &write_warnings("\nunrecognized style \\$style for accented characters");
+	}
+    }
+    if (!($bstyle)) {
+	$bstyle = "\{";
+	$estyle = "\}";
+    } elsif ($bstyle =~ /textit|itshape/) {
+	$bstyle = '\raise.5pt\hbox{' . $bstyle ;	
+	$estyle .= "\}";
+    }
+    $char = $ij_cmd if ($ij_cmd);
+    print STDOUT "\nACCENT: $type, $char" if ($VERBOSITY > 2);
+    local($afterkern); # serifs extend too far on some letters...
+    $afterkern = "\\kern.05em" if (($char =~ /m|n/)||($type=~/[Hv]/));
+    # ...or the accent is wider than the letter, so pad it out a bit
+    $afterkern = "\\kern.15em" if ($char =~ /i|l/); #||($type=~/v/));
+
+    &process_undefined_environment("tex2html_accent_inline"
+        , ++$global{'max_id'}, "${bstyle}\\${type}\{$char\\/\}$estyle$afterkern");
+}
+
+# MEH: Actually tries to find a dotless i or j
+sub do_cmd_i { join('',&iso_map('i', 'nodot') || 'i', $_[0]) }
+sub do_cmd_j { join('',&iso_map('j', 'nodot') || 'j', $_[0]) }
+
+sub do_cmd_accent {
+    local($_) = @_;
+    local($number);
+    if (s/\s*(\d+)\s*//o) {$number = $1}
+    elsif (s/\s*&SMPquot;(\d)(\d)\s*//o) { $number = $1*16 + $2 }
+    elsif (s/\s*\'(\d)(\d)(\d)\s*//o) { $number = $1*64 + $2*8 + $3 }
+    else { s/\s*(\W\w+)([\s\W])/$2/o;  $number = $1 }
+    local($type) = $accent_type{uc($number)};
+    #print STDOUT "\ndo_cmd_accent: $number ($type) |$_|\n";
+    if (! $type) {
+	&write_warnings("Accent number $number is unknown.\n");
+	return $_;
+    }
+    &accent_safe_for_ij($type , 'accent$number' );
+    $_;
+}
+
+sub do_cmd_ae { join('', &iso_map("ae", "lig"), $_[0]);}
+sub do_cmd_AE { join('', &iso_map("AE", "lig"), $_[0]);}
+sub do_cmd_aa { join('', &iso_map("a", "ring"), $_[0]);}
+sub do_cmd_AA { join('', &iso_map("A", "ring"), $_[0]);}
+sub do_cmd_o { join('', &iso_map("o", "slash"), $_[0]);}
+sub do_cmd_O { join('', &iso_map("O", "slash"), $_[0]);}
+sub do_cmd_ss { join('', &iso_map("sz", "lig"), $_[0]);}
+sub do_cmd_DH { join('', &iso_map("ETH", ""), $_[0]);}
+sub do_cmd_dh { join('', &iso_map("eth", ""), $_[0]);}
+sub do_cmd_TH { join('', &iso_map("THORN", ""), $_[0]);}
+sub do_cmd_th { join('', &iso_map("thorn", ""), $_[0]);}
+
+sub do_cmd_pounds { join('', &iso_map("pounds", ""), $_[0]);}
+sub do_cmd_S { join('', &iso_map("S", ""), $_[0]);}
+sub do_cmd_copyright { join('', &iso_map("copyright", ""), $_[0]);}
+sub do_cmd_P { join('', &iso_map("P", ""), $_[0]);}
+
+
+sub brackets { ($OP, $CP);}
+
+sub get_date {
+    local($format,$order) = @_;
+    local(@lt) = localtime;
+    local($d,$m,$y) = @lt[3,4,5];
+    if ($format =~ /ISO/) {
+	sprintf("%4d-%02d-%02d", 1900+$y, $m+1, $d);
+    } elsif ($format) {
+	if ($order) { eval "sprintf(".$format.",".$order.")"; }
+	else { sprintf($format, $d, $m+1, 1900+$y); }
+    } else { sprintf("%d/%d/%d", $m+1, $d, 1900+$y); }
+}
+
+sub address_data {
+    local($user, $date, $_);
+    local($format,$order) = @_;
+    # Get author, (email address) and current date.
+    ($user = L2hos->fullname()) =~ s/,.*//;
+    ($user, &get_date($format,$order));
+}
+
+
+#################################### LaTeX2e ##################################
+
+sub missing_braces {
+#    local($cmd) = @_;
+    local($next, $revert, $thisline);
+    local($this_cmd) = $cmd;
+    $this_cmd =~ s/^\\// unless ($cmd eq "\\");
+    &write_warnings("\n? brace missing for \\$this_cmd");
+    if (/^[\s%]*([^\n]*)\n/ ) {
+	$thisline = &revert_to_raw_tex($1)
+    } else { 
+	$thisline = &revert_to_raw_tex($_); 
+    }
+    print "\n\n*** no brace for \\$this_cmd , before:\n$thisline";
+    s/^\s*//;
+    if ($_ =~ s/$next_token_rx//) { $next = $& };
+    $next =~ s/$comment_mark(\d+\n?)?//g;
+#    $next = &translate_commands($next) if ($next =~ /^\\/);
+    if ($next =~ /^\\(\W|\d|[a-zA-z]*\b)/) {
+	$revert = $next = "\\".$1;
+    } elsif ($next =~ /\W/) {
+	$revert = &revert_to_raw_tex($next);
+    } else { $revert = $next };
+    print "\n*** using \"$revert\" as the argument instead; is this correct?  ***\n\n";
+    $next;
+}
+
+#RRM:
+#     &styled_text_chunk  provides an interface for pieces of styled text,
+# within a single paragraph. The visual markup can be obtained through either
+# 1. link to a stylesheet (CSS)
+# 2. direct markup placed into the output
+# 3. calling another function to process the text
+# 
+# parameters (in order):
+#  $def_tag   : markup tag to be used, unless $USING_STYLES or no $property given,
+#		attributes can be included, only 1st word is used for closing-tag;
+#  $prefix    : prefix for the Unique ID identifier, defaults to 'txt'
+#           OR  contains  CLASS= identifier  when $property is empty(see below);
+#  $type      : general type of the style-sheet information
+#  $class     : specific type of the style-sheet information
+#  $property  : value to be set, applicable to the $type & $class
+#  $alt_proc  : name of procedure to use, if $USING_STYLES == 0, and no $def_tag
+#  $_         : current data-stream
+#  $open_tags_R : current open-tags (not used in this procedure)
+
+sub styled_text_chunk {
+    local($def_tag, $prefix, $type, $class, $property, $alt_proc, $_,
+        $ot) = @_;
+    local($open_tags_R) = defined $ot ? $ot : $open_tags_R;
+    local($text, $env_id, $def_end);
+    local($span_tag) = 'SPAN';
+    $text = &missing_braces
+        unless ((s/$next_pair_pr_rx/$text = $2; $env_id = $1;''/eo)
+	    || (s/$next_pair_rx/$text = $2; $env_id = $1;''/eo));
+    $text = &balance_inner_tags($text);
+
+    #start from no open tags
+    local(@save_open_tags) = ();
+    local($open_tags_R) = [];
+
+#    local($decl); 
+#    if ($prefix =~ /CLASS="(\w+)"/ ) {
+#	$decl=$1;
+#	push (@$open_tags_R, $decl);
+#    }
+#    push (@$open_tags_R, $color_env) if $color_env;
+    if (!$inside_math) {
+	$text = &translate_environments($text);
+	$text = &translate_commands($text) if ($text =~ /\\/);
+	$text .= &balance_tags;
+    }
+    
+    if (($USING_STYLES)&&($env_id =~ /^\d+$/)&&($property)) { 
+	$prefix = 'txt' unless ($prefix);
+	$env_id = $prefix.$env_id;
+	$styleID{$env_id} = join('',"$type", ($class ? "-$class" : '')
+				 ,": ", $property,"; ");
+	return(join('',"<$span_tag ID=\"$env_id\">",$text,"<\/$span_tag>", $_));
+    }
+
+    if (($USING_STYLES)&&($prefix =~ /($span_tag )?CLASS=\"(\w+)\"/o)) {
+	local($span_class) = $2;
+	$def_tag = (($1)? $1 : $span_tag." ");
+	$txt_style{$span_class} = "$type: $class "
+	    unless ($txt_style{$span_class});
+	return(join('',"<$def_tag CLASS=\"$span_class\">"
+		, $text,"<\/$span_tag>", $_));
+    }
+
+    if (($def_tag) && (!$USING_STYLES)) {
+	$def_tag =~ s/^($span_tag)?CLASS=\"(\w+)\"$// ;
+    }
+
+    if ($def_tag =~ /^(\w+)/) {
+	$def_end = $1;
+	return(join('',"<$def_tag>",$text,"<\/$def_end>", $_));
+    }
+
+    return (join('', eval ("&$alt_proc(\$text)") , $_)) if (defined "&$alt_proc");
+
+    &write_warnings(
+	"\ncannot honour request for $type-$class:$property style at br$env_id");
+    join('', $text, $_);
+}
+
+sub multi_styled_text_chunk {
+    local($def_tag, $prefix, $type, $class, $property, $_, $ot) = @_;
+    local($open_tags_R) = defined $ot ? $ot : $open_tags_R;
+    $prefix = 'txt' unless ($prefix);
+    my(@def_tags) = split(',',$def_tag);
+    my(@types) = split(',',$type);
+    my(@classes) = split(',',$class);
+    my(@properties) = split(',',$property);
+    $text = &missing_braces
+        unless ((s/$next_pair_pr_rx/$text = $2; $env_id = $1;''/eo)
+	    || (s/$next_pair_rx/$text = $2; $env_id = $1;''/eo));
+    if (($USING_STYLES)&&($env_id =~ /^\d+$/)&&($property)) { 
+        # $1 contains the bracket-id
+	$env_id = $prefix.$env_id;
+	while (@properties) {
+	    $class = shift @classes;
+	    $property = shift @properties;
+	    $styleID{$env_id} .= join(''
+		, shift @types,
+		, ($class ? "-".$class : '')
+		, ($property ? " : $property" : ''), " ; ");
+	    $styleID{$env_id} .= "\n\t\t  " if (@properties);
+	}
+    }
+    join('',"<SPAN ID=\"$env_id\">",$text,"<\/SPAN>", $_);
+}
+
+#RRM: 
+#   This one takes care of commands with argument that really should be
+#   environments; e.g.  \centerline, \rightline, etc.
+#   Note that styles are inherited also from the existing @$open_tags_R.
+#
+sub styled_text_block {
+    local($def_tag, $attrib, $value, $class, $_, $ot) = @_;
+    local($open_tags_R) = defined $ot ? $ot : $open_tags_R;
+    local($text, $env_id, $attribs);
+    if ($attribs =~ /,/ ) {
+        local(@attribs) = split(',',$attrib);
+	local(@values) = split(',',$value);
+	while (@attribs) { 
+            $attribs .= join('', " " , shift @attribs 
+	        ,"=\"" , shift @values, "\"") }
+    } elsif($value) { 
+        $attribs = join(''," ",$attrib,"=\"",$value,"\"")
+    } else { $attribs = " " . $attrib }
+
+    local(@save_open_tags) = @$open_tags_R;
+    local($closures) = &close_all_tags();
+    local($reopens)=&balance_tags();
+    $text = &missing_braces
+        unless ((s/$next_pair_pr_rx/$text = $2; $env_id = $1;''/eo)
+	    || (s/$next_pair_rx/$text = $2; $env_id = $1;''/eo));
+    if (($USING_STYLES)&&($env_id =~ /^\d+$/)) {
+	$env_id = ++$global{'max_id'};
+	$env_id = "par".$env_id;
+	$styleID{$env_id} = " ";
+	$env_style{$class} = " " if (($class)&&!($env_style{$class}));
+	$class = " CLASS=\"$class\"" if ($class);
+	$env_id = " ID=\"$env_id\"";
+    } else { $class = ''; $env_id = '' };
+
+    $text = &translate_environments($text);
+    $text = &translate_commands($text);
+
+    local($closuresA)=&close_all_tags();
+    local($reopensA) = &balance_tags();
+    $text =~ s/^\n?/\n/o; 
+    join('', $closures
+        , "<$def_tag$class$env_id$attribs>"
+        , $reopens, $text, $closuresA
+        , "</$def_tag>\n", $reopensA,  $_);
+}
+
+
+# this gives a separate ID for each instance
+#sub do_cmd_textbf { &styled_text_chunk('B','','font','weight'
+#		    ,'bold', '', @_); }
+#
+# this uses a single CLASS for all instances
+sub do_cmd_textbf { &styled_text_chunk('B','CLASS="textbf"'
+		    ,'font-weight','bold', '', '', @_); }
+
+
+# this gives a separate ID for each instance
+sub do_cmd_texttt { &styled_text_chunk('TT','','font','','', '', @_); }
+
+# this uses a single CLASS for all instances
+#sub do_cmd_textit { &styled_text_chunk('TT','CLASS="textit"'
+#		    ,'font-family','monospace', '', '', @_); }
+#
+# this gives a separate ID for each instance
+#sub do_cmd_textit { &styled_text_chunk('I','','font','style'
+#		    ,'italic', '', @_); }
+#
+# this uses a single CLASS for all instances
+sub do_cmd_textit { &styled_text_chunk('I','CLASS="textit"'
+		    ,'font-style','italic', '', '', @_); }
+
+
+
+# this gives a separate ID for each instance
+#sub do_cmd_textsl { &styled_text_chunk('I','','font','style'
+#		    ,'oblique', '', @_); }
+#
+# this uses a single CLASS for all instances
+#sub do_cmd_textsl { &styled_text_chunk('I','CLASS="textsl"'
+#		    ,'font-style','oblique', '', '', @_); }
+#
+# ... NS4 implements Italic, not oblique
+sub do_cmd_textsl { &styled_text_chunk('I','CLASS="textsl"'
+		    ,'font-style','italic', '', '', @_); }
+
+
+# this gives a separate ID for each instance
+#sub do_cmd_textsf { &styled_text_chunk('I','','font','family'
+#		    ,'sans-serif', '', @_); }
+#
+# this uses a single CLASS for all instances
+#sub do_cmd_textsf { &styled_text_chunk('I','CLASS="textsf"'
+#		    ,'font-family','sans-serif', '', '', @_); }
+#
+# ... NS4 doesn't implement sans-serif
+sub do_cmd_textsf { &styled_text_chunk('I','CLASS="textsf"'
+		    ,'font-style','italic', '', '', @_); }
+
+
+#sub do_cmd_textsc {
+#    local($_) = @_;
+#    local($text, $next, $scstr, $before, $special);
+#    $text = &missing_braces
+#        unless ((s/$next_pair_pr_rx/$text = $2;''/eo)
+#	    || (s/$next_pair_rx/$text = $2;''/eo));
+#    join('', &process_smallcaps($text), $_);
+#}
+
+sub lowercase_entity {
+    local($char) = @_;
+    local($exent);
+    if ($exent = $low_entities{$char}) { "\&#$exent;" }
+    elsif ($exent = $extra_small_caps{$char}) { $exent }
+    else { "\&#$char;" }
+}
+
+sub process_smallcaps {
+    local($text) = @_;
+    local($next, $scstr, $scbef, $special, $char);
+    # is this enough for \sc and \scshape ?
+    $text = &translate_environments($text);
+
+    # MRO: replaced $* with /m
+    while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;|<[^>]+>)+/m ) {
+	$scbef = $`; $special = $&; $text = $';
+	while ( $scbef =~ /(&#\d+;|[a-z$sclower])+[a-z\W\d$sclower]*/m) {
+	    $scstr .= $`; $scbef = $';
+	    $next = $&; 
+	    $next =~ s/&#(\d+);/&lowercase_entity($1)/egm;
+	    eval "\$next =~ $scextra" if ($scextra);
+	    eval "\$next =~ tr/a-z$sclower/A-Z$scupper/";
+	    $scstr .= "<SMALL>" . $next ."<\/SMALL>";
+	}
+	$scstr .= $scbef . $special;
+    }
+    if ($text) {
+	while ( $text =~ /(&#\d+;|[a-z$sclower])+[a-z\W\d$sclower]*/m) {
+	    $scstr .= $`; $text = $';
+	    $next = $&;
+	    $next =~ s/&#(\d+);/&lowercase_entity($1)/egm;
+	    eval "\$next =~ $scextra" if ($scextra);
+	    eval "\$next =~ tr/a-z$sclower/A-Z$scupper/";
+	    $scstr .= "<SMALL>" . $next ."<\/SMALL>";
+	}
+	$scstr .= $text;
+    }
+    $scstr;
+}
+
+# this gives a separate ID for each instance
+#sub do_cmd_textsc { &styled_text_chunk('','','font','variant'
+#		    ,'small-caps', 'process_smallcaps', @_); }
+#
+# this uses a single CLASS for all instances
+#sub do_cmd_textsc { &styled_text_chunk('', 'CLASS="textsc"'
+#		    ,'font-variant','small-caps','', 'process_smallcaps', @_); }
+#
+# ...but NS 4.03 doesn't implement  small-caps !!!
+sub do_cmd_textsc { &styled_text_chunk('',''
+		    ,'font-variant','small-caps','', 'process_smallcaps', @_); }
+
+
+#sub do_cmd_emph { &styled_text_chunk('EM','em','font','variant','','', @_); }
+
+
+# this gives a separate ID for each instance
+#sub do_cmd_underline { &styled_text_chunk('U','','text','decoration','underline','', @_); }
+
+# this uses a single CLASS for all instances
+sub do_cmd_underline { &styled_text_chunk('U','CLASS="underline"'
+		       ,'text-decoration','underline','','', @_); }
+sub do_cmd_underbar { &do_cmd_underline(@_) }
+
+
+# this gives a separate ID for each instance
+#sub do_cmd_strikeout { &styled_text_chunk('STRIKE',''
+#		       ,'text','decoration','line-through','', @_); }
+
+# this uses a single CLASS for all instances
+sub do_cmd_strikeout { &styled_text_chunk('STRIKE','CLASS="strikeout"',
+		       'text-decoration','line-through','','', @_); }
+
+
+sub do_cmd_uppercase {
+    local($_) = @_;
+    local($text,$next,$done,$special,$after);
+    $text = &missing_braces unless (
+	    (s/$next_pair_pr_rx/$text = $2;''/eo)
+	    ||(s/$next_pair_rx/$text = $2;''/eo));
+    $after = $_;
+    while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;)/ ) {
+	$next = $`;
+	$special = $&;
+	$text = $';
+	$next =~ tr /a-z/A-Z/ if ($next);
+	$done .= $next . $special;
+    }
+    $text =~ tr /a-z/A-Z/ if ($text);
+    $done .= $text;
+    $done = &convert_iso_latin_chars($done) if ($done);
+    join('',$done,$after);
+}
+
+sub do_cmd_lowercase {
+    local($_) = @_;
+    local($text,$next,$done,$special,$after);
+    $text = &missing_braces
+        unless ((s/$next_pair_pr_rx/$text = $2;''/seo)
+	    || (s/$next_pair_rx/$text = $2;''/seo));
+    $after = $_;
+    while ($text =~ /(\\[a-zA-Z]+|[&;]SPM\w+;)/ ) {
+	$next = $`;
+	$special = $&;
+	$text = $';
+	$next =~ tr /A-Z/a-z/ if ($next);
+	$done .= $next . $special;
+    }
+    $text =~ tr /A-Z/a-z/ if ($text);
+    $done .= $text;
+    $done = &convert_iso_latin_chars($done) if ($done);
+    join('',$done,$after);
+}
+
+sub do_cmd_MakeUppercase { &do_cmd_uppercase(@_) }
+sub do_cmd_MakeLowercase { &do_cmd_lowercase(@_) }
+
+
+
+sub do_cmd_ensuremath {
+    local($_) = @_;
+    local ($id, $value);
+    $value = &missing_braces unless (
+	(s/$next_pair_pr_rx/$value=$2;''/eo)
+	||(s/$next_pair_rx/$value=$2;''/eo));
+    join('', &simple_math_env($value), $');
+}
+
+#
+#  This is mainly for \special{header=PostScript_Prologue},
+#	and \graphicspath{path} which occur OUTSIDE of an environment
+#	passed to TeX.  \special's INSIDE such environments are, of
+#	course, left alone.
+
+sub do_cmd_special {
+    local($_) = @_;
+    local ($id, $value);
+    $value = &missing_braces unless (
+	(s/$next_pair_pr_rx/$value=$2;''/eo)
+	||(s/$next_pair_rx/$value=$2;''/eo));
+    local($special_cmd) = &revert_to_raw_tex($value);
+    &add_to_preamble($cmd,"\\$cmd\{$special_cmd\}");
+    $_;
+}
+
+
+########################## Input and Include commands #########################
+
+sub do_cmd_input {
+    local($_) = @_;
+    local($file,$output);
+    (s/\s*(.*)\s*\n/$file =$1;''/s) unless (
+	(s/$next_pair_pr_rx/$file=$2;''/eo)
+	||(s/$next_pair_rx/$file=$2;''/eo));
+    local($after) = $_;
+    $file = &revert_to_raw_tex("\\input{$file}\n") if $file;
+    if ($PREAMBLE) { &add_to_preamble('include',$file)}
+    elsif (!($file=~/^\s*$/)) {
+	$output = &process_undefined_environment('center'
+		, ++$global{'max_id'},"\\vbox{$file}");
+    }
+    $output.$after;
+}
+
+sub do_cmd_include {
+    local($_) = @_;
+    local($file,$output);
+    $file = &missing_braces unless (
+	(s/$next_pair_pr_rx/$file=$2;''/eo)
+	||(s/$next_pair_rx/$file=$2;''/eo));
+    local($after) = $_;
+    $file = &revert_to_raw_tex("\\include{$file}\n") if $file;
+    if ($PREAMBLE) { &add_to_preamble('include',$file)}
+    else {
+	$output = &process_undefined_environment('figure'
+		, ++$global{'max_id'},"\\vbox{$file}");
+    }
+    $output.$after;
+}
+
+########################## Messages #########################
+
+sub do_cmd_message {
+    local($_) = @_;
+    local($message);
+    $message = &missing_braces unless (
+	(s/$next_pair_pr_rx/$message=$2;''/eo)
+	||(s/$next_pair_rx/$message=$2;''/eo));
+    local($after) = $_;
+    $message = &translate_commands($message);
+    $message =~ s/$comment_mark(\d+)//og;
+    print STDOUT "\n*** $message ***\n";
+    $after;
+}
+
+sub do_cmd_typeout {
+    print STDOUT "\n";
+    local($_) = &do_cmd_message(@_);
+    print STDOUT "\n";
+    $_;
+}
+
+sub do_cmd_expandafter {
+    local($_) = @_;
+    print "\nEXPANDAFTER: " if ($VERBOSITY >3);
+    return($_) unless (s/^\s*(\\\w+)\s*\\//o);
+    print " delaying $1 " if ($VERBOSITY >3);
+    local($delay,$cmd) = ($1,'');
+    s/^(\w+|\W)/$cmd=$1;''/eo;
+    local($nextcmd) = "do_cmd_$cmd";
+    if (defined &$nextcmd) { $_ = &$nextcmd($_) }
+    elsif ($new_command{$cmd}) { 
+        local($argn, $body, $opt) = split(/:!:/, $new_command{$cmd});
+	do { ### local($_) = $body;
+	    &make_unique($body);
+	} if ($body =~ /$O/);
+	if ($argn) {
+	    do {
+		local($before) = '';
+		local($after) = "\\$cmd ".$_;
+		$after = &substitute_newcmd;   # may change $after
+                $after =~ s/\\\@#\@\@/\\/o unless ($after);
+            };
+	} else { $_ = $body . $_; }
+    } else { print "\nUNKNOWN COMMAND: $cmd "; }
+
+    # now put the delayed function back for processing
+    join('',$delay, " ", $_);
+}
+
+sub do_cmd_tracingall {
+    print "\nTRACING:\n$ref_contents\n$after\n";
+    $VERBOSITY = 8; ""; }
+
+sub do_cmd_htmltracenv { &do_cmd_htmltracing }
+
+sub do_cmd_htmltracing {
+    local($_) = @_;
+    local($value);
+    $value = &missing_braces
+        unless ((s/$next_pair_rx/$value = $2;''/eo)
+	    ||(s/$next_pair_pr_rx/$value = $2;''/eo));
+    if ($value =~ /^\s*(\d+)\s*$/) { 
+	$VERBOSITY = $1;
+	if ($VERBOSITY) { 
+	    print "\n\n *** setting trace-level to $VERBOSITY ***\n";
+	} else {
+	    print "\n\n *** cancelling all tracing ***\n\n";
+	}
+    } else {
+	&write_warnings("argument to \\htmltracing must be a number");
+     }
+    $_ ;
+}
+
+
+############################ Initialization ####################################
+
+sub initialise {
+    ############################ Global variables ###############################
+    $PREAMBLE = 2;		# 1 while translating preamble, 0 while translating body 
+    $NESTING_LEVEL = undef;	#counter for TeX group nesting level
+    $OUT_NODE = 0;		# Used in making filenames of HTML nodes unique
+    $eqno_prefix = '';		# default prefix on equation numbers
+    ($O , $C, $OP, $CP) = ('<<' , '>>', '<#', '#>'); # Open/Close Markers
+    $href_name = 0;		# Used in the HREF NAME= field
+    $wrap_toggle = 'end';
+    $delim = '%:%';		# Delimits items of sectioning information
+				# stored in a string
+
+    $LATEX2HTML_META = '<META NAME="Generator" CONTENT="LaTeX2HTML v'.$TEX2HTMLV_SHORT.'">'
+	. "\n<META HTTP-EQUIV=\"Content-Style-Type\" CONTENT=\"text/css\">"
+	      unless ($LATEX2HTML_META);
+
+    $TeXname = (($HTML_VERSION ge "3.0")? "T<SMALL>E</SMALL>X" : "TeX");
+    $Laname = (($HTML_VERSION ge "3.0")? "L<SUP><SMALL>A</SMALL></SUP>" : "La");
+    $MFname = (($HTML_VERSION ge "3.0")? "M<SMALL>ETAFONT</SMALL>" : "Metafont");
+    $Xyname = (($HTML_VERSION ge "3.0")? "X<SUB><BIG>Y</BIG></SUB>" : "Xy");
+    $AmSname = (($HTML_VERSION ge "3.0")? "A<SUB><BIG>M</BIG></SUB>S" : "AmS");
+
+    $EQN_TAGS = "R" unless ($EQN_TAGS);
+    $EQNO_START = "(";
+    $EQNO_END   = ")";
+
+    $AtBeginDocument_hook  = "\$AtBeginDocument_hook\=\'\'; "
+	unless $AtBeginDocument_hook;
+    $cross_ref_mark = '<tex2html_cr_mark>';
+    $external_ref_mark = '<tex2html_ext_cr_mark>';
+    $cite_mark = '<tex2html_cite_mark>';
+    $hash_mark = '<tex2html_hash_mark>';
+    $protected_hash = '<tex2html_protected_hash>';
+    $param_mark = '<tex2html_param_mark>';
+    $bbl_mark = '<tex2html_bbl_mark>';
+    $toc_mark = '<tex2html_toc_mark>';
+    $lof_mark = '<tex2html_lof_mark>';
+    $lot_mark = '<tex2html_lot_mark>';
+    $info_page_mark = '<tex2html_info_page_mark>';
+    $info_title_mark = '<tex2html_info_title_mark>';
+    $init_file_mark = '<tex2html_init_file_mark>';
+    $childlinks_on_mark = '<tex2html_childlinks_mark>';
+    $childlinks_null_mark = '<tex2html_childlinks_null_mark>';
+    $childlinks_mark = $childlinks_on_mark;
+    $more_links_mark = '<tex2html_morelinks_mark>';
+    $idx_mark = '<tex2html_idx_mark>';
+    $verbatim_mark = '<tex2html_verbatim_mark>';
+    $unfinished_mark = '<tex2html_unfinished_mark>';
+    $verb_mark = '<tex2html_verb_mark>';
+    $verbstar_mark = '<tex2html_verbstar_mark>';
+    $image_mark = '<tex2html_image_mark>';
+    $mydb_mark =  '<tex2html_mydb_mark>';
+    $percent_mark = '<tex2html_percent_mark>';
+    $ampersand_mark = '<tex2html_ampersand_mark>';
+    $dol_mark = '<tex2html_lone_dollar>';
+    $comment_mark = '<tex2html_comment_mark>';
+    $caption_mark = '<tex2html_caption_mark>';
+    $array_col_mark = '<tex2html_col_mark>';
+    $array_row_mark = '<tex2html_row_mark>';
+    $array_text_mark = '<tex2html_text_mark>';
+    $array_mbox_mark = '<tex2html_mbox_mark>';
+
+    $bibitem_counter = 0;
+    $undef_mark = '<tex2html_undef_mark>';
+    $file_mark = '<tex2html_file>';
+    $endfile_mark = '<tex2html_endfile>';
+
+    # This defines textual markers for all the icons
+    # e.g. $up_visible_mark = '<tex2html_up_visible_mark>';
+    # They will be replaced with the real icons at the very end.
+    foreach $icon (keys %icons) {eval "\$$icon = '<tex2html_$icon>'"};
+
+    # Make sure $HTML_VERSION is in the right range and in the right format.
+#    $HTML_VERSION =~ /[\d.]*/;
+#    $HTML_VERSION = 0.0 + $&;
+#    $HTML_VERSION = 2 if ( $HTML_VERSION < 2 );
+#    $HTML_VERSION = 9 if ( $HTML_VERSION > 9 );
+#    $HTML_VERSION = sprintf("%3.1f",$HTML_VERSION);
+
+    &banner();
+    print "Revised and extended by:"
+	. "\n Marcus Hennecke, Ross Moore, Herb Swan and others\n";
+
+    # Collect HTML options and figure out HTML version
+    $HTML_OPTIONS = '' unless ($HTML_OPTIONS);
+    $HTML_VERSION =~ s/^html|\s+//g;
+    local(@HTML_VERSION) = split(/,/, $HTML_VERSION);
+    foreach ( @HTML_VERSION ) {
+	if (/^[\d\.]+$/) {
+	    # Make sure $HTML_VERSION is in the right range and in the right format.
+	    $HTML_VERSION = 0.0 + $_;
+	    $HTML_VERSION = 2 if ( $HTML_VERSION < 2 );
+	    $HTML_VERSION = 9 if ( $HTML_VERSION > 9 );
+	    $HTML_VERSION = sprintf("%3.1f",$HTML_VERSION);
+	} else {
+	    $HTML_OPTIONS .= "$_,";
+	}
+    }
+    $HTML_OPTIONS =~ s/\W$//;  # remove any trailing punctuation
+
+    print "...producing markup for HTML version $HTML_VERSION  ";
+    print ($HTML_OPTIONS ? "with $HTML_OPTIONS extensions\n\n\n" : "\n\n\n");
+
+    # load the character defs for latin-1, but don't set the charset yet
+    &do_require_extension('latin1');
+    $charset = $CHARSET = $PREV_CHARSET = '';
+
+    if ($HTML_VERSION =~ /(2.0|3.0|3.2|4.0|4.1)/) {
+	# Require the version specific file 
+	do { $_ = "$LATEX2HTMLVERSIONS${dd}html$1.pl";
+	     if (!(-f $_)) {  s/(\d).(\d.pl)$/$1_$2/ };
+	     if (!(-f $_)) {  s/(\d)_(\d.pl)$/$1-$2/ };
+	     require $_ || die "\n*** Could not load $_ ***\n";
+	     print "\nHTML version: loading $_\n";
+	} unless ($HTML_VERSION =~ /2.0/);
+	$DOCTYPE = "-//".(($HTML_VERSION eq "2.0")? "IETF" : "W3C")
+	    . "//DTD HTML $HTML_VERSION"
+	    .(($HTML_VERSION eq "3.2")? " Final" : "")
+	    .(($HTML_VERSION eq "4.0")? " Transitional" : "");
+
+	if ($HTML_OPTIONS) {
+	    local($ext);
+	    local($loading_extensions) = 1;
+	    # Require the option specific files 
+	    @HTML_VERSION = split(/,/, $HTML_OPTIONS);
+	    foreach $ext ( @HTML_VERSION ) {
+		&do_require_extension($ext);
+#		do {
+#		    print "\nLoading $LATEX2HTMLVERSIONS$dd$ext.pl";
+#		    require "$LATEX2HTMLVERSIONS$dd$ext.pl";
+#		} if (-f "$LATEX2HTMLVERSIONS$dd$ext.pl");
+	    }
+	    undef $loading_extensions;
+	}
+    } else {
+	print "\n You specified an invalid version: $HTML_VERSION\n"
+	    . "In future please request extensions by name:\n"
+	    . "  i18n  table  math  frame  latin1  unicode  etc.\n";
+
+    # Require all necessary version specific files
+	foreach ( sort <$LATEX2HTMLVERSIONS${dd}html[1-9].[0-9].pl> ) {
+	    last if ( $_ gt "$LATEX2HTMLVERSIONS${dd}html$HTML_VERSION.pl" );
+	    do { print "\nloading $_" if ($DEBUG);
+		 require $_; } unless (
+		($NO_SIMPLE_MATH)&&($_ eq "$LATEX2HTMLVERSIONS${dd}html3.1.pl"));
+	};
+	$STRICT_HTML = 0;
+    }
+
+    # packages automatically implemented, or clearly irrelevant
+    %styles_loaded = 
+     ( 'theorem' , 1 , 'enumerate', 1 , 'a4paper' , 1 , 'b5paper' , 1
+     , '10pt' , 1 , '11pt' , 1 , '12pt' , 1
+     , %styles_loaded );
+
+
+    %declarations =
+    ('em' , '<EM></EM>',
+     'it' , '<I></I>',
+     'bf' , '<B></B>',
+     'tt' , '<TT></TT>',
+     'sl' , '<I></I>',		# Oops!
+     'sf' , '<I></I>',		# Oops!
+     'rm' ,  '<></>',
+     'rmfamily'   ,'<></>',     # see $fontchange_rx
+     'normalfont' ,'<></>',     # see $fontweight_rx and $fontchange_rx
+     'mdseries'   ,'<></>',     # see $fontweight_rx
+     'upshape'    ,'<></>',     # see $fontchange_rx
+     'itshape' ,  '<I></I>',
+     'bfseries' , '<B></B>',
+     'ttfamily' , '<TT></TT>',
+     'slshape' ,  '<I></I>',	# Oops!
+     'sffamily' , '<I></I>',	# Oops!
+##     'scshape' ,  '<I></I>',	# Oops!
+#     'boldmath' , '<B></B>',
+#     'quote', '<BLOCKQUOTE></BLOCKQUOTE>',
+#     'quotation', '<BLOCKQUOTE></BLOCKQUOTE>',
+     %declarations	# Just in case someone extends it in the init file
+     );
+
+
+%declarations = (
+     'tiny', '<FONT SIZE="-2"></FONT>',
+     'Tiny', '<FONT SIZE="-2"></FONT>',
+     'scriptsize', '<FONT SIZE="-2"></FONT>',
+     'small', '<FONT SIZE="-1"></FONT>',
+     'Small', '<FONT SIZE="-1"></FONT>',
+     'SMALL', '<FONT SIZE="-1"></FONT>',
+     'smaller', '<SMALL></SMALL>',
+     'footnotesize', '<FONT SIZE="-1"></FONT>',
+     'larger', '<BIG></BIG>',
+     'large', '<FONT SIZE="+1"></FONT>',
+     'Large', '<FONT SIZE="+2"></FONT>',
+     'LARGE', '<FONT SIZE="+2"></FONT>',
+     'huge', '<FONT SIZE="+3"></FONT>',
+     'Huge', '<FONT SIZE="+4"></FONT>',
+#     'centering', '<DIV ALIGN="CENTER"></DIV>',
+#     'center', '<DIV ALIGN="CENTER"></DIV>',
+#     'flushleft', '<DIV ALIGN="LEFT"></DIV>',
+#     'raggedright', '<DIV ALIGN="LEFT"></DIV>',
+#     'flushright', '<DIV ALIGN="RIGHT"></DIV>',
+#     'raggedleft', '<DIV ALIGN="RIGHT"></DIV>',
+     %declarations
+    ) if ($HTML_VERSION > 2.0 );
+
+#  no alignment in HTML 2.0
+#%declarations = (
+#     'centering', '<P ALIGN="CENTER"></P>',
+#     'center', '<P ALIGN="CENTER"></P>',
+#     'flushleft', '<P ALIGN="LEFT"></P>',
+#     'raggedright', '<P ALIGN="LEFT"></P>',
+#     'flushright', '<P ALIGN="RIGHT"></P>',
+#     'raggedleft', '<P ALIGN="RIGHT"></P>',
+
+%declarations = (
+#     'centering', '<P></P>',
+     'center', '<P></P>',
+     'flushleft', '<P></P>',
+     'raggedright', '<P></P>',
+     'flushright', '<P></P>',
+     'raggedleft', '<P></P>',
+     'quote', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'quotation', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'verse', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'preform', '<PRE></PRE>',
+     'unord', '<UL></UL>',
+     'ord', '<OL></OL>',
+     'desc', '<DL></DL>',
+     'list', '',
+     'par', '<P></P>'
+    ) if ($HTML_VERSION == 2.0 );
+
+    &generate_declaration_subs;	# Generate code to handle declarations
+
+    # ...but these block-level divisions must be handled differently...
+%declarations = (
+     'quote', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'quotation', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'verse', '<BLOCKQUOTE></BLOCKQUOTE>',
+     'preform', '<PRE></PRE>',
+     'unord', '<UL></UL>',
+     'ord', '<OL></OL>',
+     'desc', '<DL></DL>',
+#     'list', '<DIV></DIV>',
+     'par', '<P></P>',
+     'samepage', '',
+#     'centering', '<DIV ALIGN="CENTER"></DIV>',
+     'center', '<DIV ALIGN="CENTER"></DIV>',
+     'flushleft', '<DIV ALIGN="LEFT"></DIV>',
+     'raggedright', '<DIV ALIGN="LEFT"></DIV>',
+     'flushright', '<DIV ALIGN="RIGHT"></DIV>',
+     'raggedleft', '<DIV ALIGN="RIGHT"></DIV>',
+     %declarations
+    ) if ($HTML_VERSION > 2.0 );
+
+
+    %section_commands =
+	('partstar' , '1' , 'chapterstar', '2', 'sectionstar', '3'
+	, 'subsectionstar', '4', 'subsubsectionstar', '5', 'paragraphstar'
+	, '6', 'subparagraphstar', '7'
+	, 'part' , '1' , 'chapter', '2', 'section', '3','subsection', '4'
+	, 'subsubsection', '5', 'paragraph', '6', 'subparagraph', '7'
+	, 'slidehead', '3', %section_commands);
+    # The tableofcontents, listoffigures, listoftables, bibliography and
+    # textohtmlindex are set after determining what is the outermost level
+    # in sub set_depth_levels. Appendix is implemented as a command.
+
+    %standard_section_headings =
+	('part' , 'H1' , 'chapter' , 'H1', 'section', 'H1', 'subsection', 'H2'
+	, 'subsubsection', 'H3', 'paragraph', 'H4', 'subparagraph', 'H5'
+	, %standard_section_headings );
+
+    # Generates code to handle sectioning commands
+    # for those sections which take an argument.
+    &generate_sectioning_subs;
+
+    %section_headings =
+	('partstar' , 'H1' , 'chapterstar' , 'H1', 'sectionstar', 'H1'
+	, 'subsectionstar', 'H2', 'subsubsectionstar', 'H3', 'paragraphstar'
+	, 'H4', 'subparagraphstar', 'H5', %section_headings);
+
+    # These need their own custom code but are treated as sectioning commands
+    %section_headings =
+	('tableofcontents', 'H2', 'listoffigures', 'H2', 'listoftables', 'H2'
+	, 'bibliography', 'H2', 'textohtmlindex', 'H2'
+	, %standard_section_headings
+	, %section_headings);
+
+    &generate_accent_commands;	# Code to handle accent commands
+
+    # These are replaced as soon as the text is read in.
+    %html_specials = (  '<', ';SPMlt;'
+		,  '>', ';SPMgt;'
+		,  '&', ';SPMamp;'
+#		,  '``', '\lq\lq '  # probably not a good idea
+#		,  "''", '\rq\rq ',  # probably not a good idea
+		,  '"', ';SPMquot;'
+		);
+
+    %html_specials = ( %html_specials
+		, '``', ';SPMldquo;', "''", ';SPMrdquo;'
+		) if ($HTML_VERSION >= 5 );
+
+    # This mapping is needed in sub revert_to_raw_tex
+    # before passing stuff to latex for processing.
+    %html_specials_inv = (
+    		 ';SPMlt;' ,'<'
+		, ';SPMgt;','>'
+		, ';SPMamp;','&'
+		, ';SPMquot;','"'
+		, ';SPMldquo;','``'
+		, ';SPMrdquo;',"''"
+		, ';SPMdollar;', '$'	# for alltt
+		, ';SPMpct;', '%'
+		, ';SPMtilde;', '~'
+		);
+
+    # normalsize vertical dimension factors for 12pt (1.0 <=> <BR>)
+    %vspace_12pt = ('ex', 1.0, 'em', 1.0, 'pt', 0.1, 'pc', 1.0,
+	'in', 6.0, 'bp', 0.1, 'cm', 2.3, 'mm', 0.2, 'dd', 0.1,
+	'cc', 1.0, 'sp', 0.0);
+
+    # For some commands such as \\, \, etc it is not possible to define
+    # perl subroutines because perl does not allow some non-ascii characters
+    # in subroutine names. So we define a table and a subroutine to relate
+    # such commands to ascii names.
+    %normalize = ('\\', 'd_backslash'
+		  , '/', 'esc_slash', "`", 'grave'
+		  , "'", 'acute', "^", 'hat', '"', 'ddot'
+		  , '~', 'tilde', '.', 'dot', '=', 'bar'
+		  , '{', 'lbrace' , '}', 'rbrace', '|', 'Vert'
+		  , '#', 'esc_hash', '$', 'esc_dollar'
+                 );
+
+    %text_accent = (  'cedil','c', 'bdot','d', 'b','b' , 'tilde','~'
+                    , 'circ' ,'^', 'hat','^', 'check','v' , 'caron','v'
+                    , 'acute','\'' , 'grave','`' , 'dot','.' , 'breve','u'
+                    , 'ddot','"' , 'uml','"' , 'bar','=','macr','='
+                    , 'dblacc','H' , 't','t' , 'ogon','k' , 'ring','r'
+                  );
+
+    # %languages_translations holds for each known language the
+    # appropriate translation function. The function is called in
+    # slurp_input.
+    # The translation functions subtitute LaTeX macros
+    # with ISO-LATIN-1 character references
+    %language_translations = (
+	   'english',	'english_translation'
+	 , 'USenglish',	'english_translation'
+	 , 'original',	'english_translation'
+	 , 'german',	'german_translation'
+	 , 'austrian',	'german_translation'
+	 , 'finnish',	'finnish_translation'
+	 , 'french',	'french_translation'
+	 , 'spanish',	'spanish_translation'
+	 , 'swedish',	'swedish_translation'
+	 , 'turkish',	'turkish_translation'
+	);
+
+# Reiner: 
+#    $standard_label_rx = 
+#	"\\s*[[]\\s*(((\$any_next_pair_rx4)|([[][^]]*[]])|[^]])*)[]]";
+#    $enum_label_rx = "^((({[^{}]*})|([^{}]))*)([aAiI1])(.*)";
+#    $enum_level = 0;	# level for enumerate (1-4, i-iv)
+    %enum = ( 
+		'enumi',	0,			# counter for level 1
+		'enumii',	0,			# counter for level 2
+		'enumiii',	0,
+		'enumiv',	0,
+		'theenumi',	"&arabic('enumi')",	# eval($enum{"theenumi"})
+		'theenumii',	"&alph('enumii')",
+		'theenumiii',	"&roman('enumiii')",
+		'theenumiv',	"&Alph('enumiv')",
+			# e.g. eval("$enum{'labelenumi'}")
+		'labelenumi',	'eval($enum{"theenumi"}) . "."', 
+		'labelenumii',	'"(" . eval($enum{"theenumii"}) . ")"',	
+		'labelenumiii',	'eval($enum{"theenumiii"}) . "."',
+		'labelenumiv',	'eval($enum{"theenumiv"}) . "."'
+		);
+
+    %RomanI = ( '1',"I",'2',"II",'3',"III",'4',"IV"
+		    ,'5',"V",'6',"VI",'7',"VII", '8',"VIII",'9',"IX");
+    %RomanX = ( '1',"X",'2',"XX",'3',"XXX",'4',"XL"
+		    ,'5',"L",'6',"LX",'7',"LXX", '8',"LXXX",'9',"XC");
+    %RomanC = ( '1',"C",'2',"CC",'3',"CCC",'4',"CD"
+		    ,'5',"D",'6',"DC",'7',"DCC", '8',"DCCC",'9',"CM");
+    %RomanM = ( '1',"M",'2',"MM",'3',"MMM",'4',"MH"
+		    ,'5',"H",'6',"HM",'7',"HMM",'8',"HMMM");
+
+    %enum_label_funcs = ( 
+	"a", "alph", "A", "Alph", "i", "roman", "I", "Roman", "1", "arabic" );
+
+sub farabic{
+    local($_)=@_;
+    $_;
+}
+sub arabic{
+    local($_)=@_;
+    eval($enum{$_});
+}
+
+sub falph{
+    local($num)=@_;
+#    chr($num+64);
+    substr(" abcdefghijklmnopqrstuvwxyz",$num,1)
+}
+sub alph{
+    local($num)=@_;
+    &falph(eval($enum{$num}));
+}
+sub fAlph{
+    local($num)=@_;
+#    chr($num+32);
+    substr(" ABCDEFGHIJKLMNOPQRSTUVWXYZ",$num,1)
+}
+sub Alph{
+    local($num)=@_;
+    &falph(eval($enum{$num}));
+}
+
+sub Roman{
+    local($num)=@_;
+    &fRoman(eval($enum{$num}));
+}
+sub fRoman{
+    local($num)=@_;
+    local($RmI)= $num%10; ($RmI) = (($RmI) ? $RomanI{"$RmI"} : '' );
+    $num = $num/10; local($RmX)= $num%10; ($RmX) = (($RmX) ? $RomanX{"$RmX"} : '' );
+    $num = $num/10; local($RmC)= $num%10; ($RmC) = (($RmC) ? $RomanC{"$RmC"} : '' );
+    $num = $num/10; local($RmM)= $num%10; ($RmM) = (($RmM) ? $RomanM{"$RmM"} : '' );
+    "$RmM" . "$RmC" . "$RmX" . "$RmI";
+}
+sub froman{
+    local($_)=@_;
+    $_ = &fRoman($_);
+    $_ =~ tr/A-Z/a-z/;
+    $_;
+}
+sub roman{
+    local($num)=@_;
+    &froman(eval($enum{$num}));
+}
+
+
+    %unitscale = ("in",72,"pt",72.27/72,"pc",12,"mm",72/25.4,"cm",72/2.54
+		  ,"\\hsize",100,"\\vsize",100
+		  ,"\\textwidth",100,"\\textheight",100
+		  ,"\\pagewidth",100,"\\linewidth",100
+		  );
+    %units = ("in","in","pt","pt","pc","pi","mm","mm","cm","cm"
+	      ,"\\hsize","%","\\vsize","%","\\textwidth","%","\\textheight","%");
+
+sub convert_length { # clean
+    my ($this,$scale) = @_;
+    $scale = 1 unless $scale;
+    my ($pxs,$len,$full);
+    if ( $this =~ /([\d.]*)\s*(in|pt|pc|mm|cm|\\[hv]size|\\\w+(width|height))?/ ) {
+	$len = ($1 ? $1 : 1); $full = $2;
+	if ($full &&($full =~ /\\([hv]size|\w+(width|height))/)) { $scale = 1;};
+	$pxs = (($full) ? int($len * $unitscale{$full}*$scale + 0.5)
+		 : int($len*$scale + .5) );
+	if ( $full =~ /\\([hv]size|\w+(width|height))/) { $pxs .= '%';};
+    };
+    ($pxs,$len);
+}
+ 
+
+
+
+    # Inclusion in this list will cause a command or an environment to be ignored.
+    # This is suitable for commands without arguments and for environments.
+    # If however a do_env|cmd_<env|cmd> exists then it will be used.
+    %ignore = ('sloppypar', 1,  'document', 1, 'newblock', 1,
+	       ',', 1,  '@', 1, ' ', 1,  '-', 1,
+               'sloppy', 1,
+	       'hyphen', 1, 'titlepage', 1, 'htmlonly', 1,
+	       'flushleft', 1, 'flushright', 1, 'slide', 1,
+	       'tiny', 1, 'Tiny', 1, 'scriptsize', 1, 'footnotesize', 1,
+	       'small', 1, 'normalsize', 1, 'large', 1, 'Large', 1,
+	       'LARGE', 1, 'huge', 1, 'Huge', 1,
+	       %ignore);
+
+    # Specify commands with arguments that should be ignored.
+    # Arbitrary code can be placed between the arguments
+    # to be executed while processing the command.
+    #
+# Note that some commands MAY HAVE ARGUMENTS WHICH SHOULD BE LEFT AS TEXT
+    # EVEN THOUGH THE COMMAND IS IGNORED (e.g. hbox, center, etc)
+
+&ignore_commands( <<_IGNORED_CMDS_);
+NeedsTeXFormat # {} # []
+ProvidesClass # {} # []
+ProvidesFile # {} # []
+ProvidesPackage # {} # []
+abovedisplayskip # &ignore_numeric_argument
+abovedisplayshortskip # &ignore_numeric_argument
+addcontentsline # {} # {} # {}
+addtocontents # {} # {}
+addvspace # {} # &ignore_numeric_argument
+and
+and # \$_ = join(''," - ",\$_)
+backmatter
+baselineskip # &ignore_numeric_argument
+belowdisplayskip # &ignore_numeric_argument
+belowdisplayshortskip # &ignore_numeric_argument
+bibdata
+bibliographystyle # {}
+bibstyle # {}
+bigskipamount # &ignore_numeric_argument
+smallskipamount # &ignore_numeric_argument
+medskipamount # &ignore_numeric_argument
+center
+citation # {}
+citeauthoryear
+clearpage
+cline # {}
+#documentclass # [] # {}
+#documentstyle # [] # {}
+#end # {}
+enlargethispage # {}
+evensidemargin # &ignore_numeric_argument
+filecontents
+filbreak
+fil
+fill
+flushbottom
+fontsize # {} # {}
+footheight # &ignore_numeric_argument
+footskip  # &ignore_numeric_argument
+frontmatter
+fussy
+global
+goodbreak
+hbox
+headheight # &ignore_numeric_argument
+headsep # &ignore_numeric_argument
+hfil
+hfill
+hfuzz # &ignore_numeric_argument
+hline
+hspace # {} # \$_ = join(''," ",\$_)
+hspacestar # {} # \$_ = join(''," ",\$_)
+html
+ifcase
+ignorespaces
+indent
+itemindent # &ignore_numeric_argument
+itemsep # &ignore_numeric_argument
+labelsep # &ignore_numeric_argument
+labelwidth # &ignore_numeric_argument
+leavevmode
+leftmargin # &ignore_numeric_argument
+listparindent # &ignore_numeric_argument
+lower # &ignore_numeric_argument
+long
+mainmatter
+makebox # [] # []
+makeindex
+marginpar # {}
+marginparsep # &ignore_numeric_argument
+marginparwidth # &ignore_numeric_argument
+markboth # {} # {}
+markright # {}
+mathord
+mathbin
+mathindent # &ignore_numeric_argument
+mathrel
+mathop
+mathtt
+#mdseries
+newpage
+#newedboolean # {}
+#newedcommand # {} # [] # [] # {}
+#newedcounter # {} # []
+#newedenvironment # {} # [] # [] # {} # {}
+#newedtheorem # {} # [] # {} # []
+#providedcommand # {} # [] # [] # {}
+#renewedcommand # {} # [] # [] # {}
+#renewedenvironment # {} # [] # [] # {} # {}
+nobreakspace # \$_ = join('',";SPMnbsp;",\$_)
+nonbreakingspace # \$_ = join('',";SPMnbsp;",\$_)
+noalign
+nobreak
+nocite # {}
+noindent
+nolinebreak# []
+nopagebreak #[]
+normalmarginpar
+numberline
+oddsidemargin # &ignore_numeric_argument
+omit
+onecolumn
+outer
+pagenumbering #{}
+pagestyle # {}
+parindent # &ignore_numeric_argument
+parsep # &ignore_numeric_argument
+parskip # &ignore_numeric_argument
+partopsep # &ignore_numeric_argument
+penalty # &ignore_numeric_argument
+phantom # {}
+protect
+raggedright
+raggedbottom
+raise # &ignore_numeric_argument
+raisebox # {} # [] # []
+relax
+reversemarginpar
+rightmargin # &ignore_numeric_argument
+#rmfamily
+rule # [] # {} # {}
+samepage
+selectfont
+startdocument # \$SEGMENT=1;\$SEGMENTED=1; \$_
+strut
+suppressfloats # []
+textheight # &ignore_numeric_argument
+textwidth # &ignore_numeric_argument
+textnormal
+#textrm
+textup
+theorempreskipamount # &ignore_numeric_argument
+theorempostskipamount # &ignore_numeric_argument
+thispagestyle # {}
+topmargin # &ignore_numeric_argument
+topsep # &ignore_numeric_argument
+topskip # &ignore_numeric_argument
+twocolumn
+unskip
+#upshape
+vfil
+vfill
+vfilll
+vline
+_IGNORED_CMDS_
+
+    # Commands which need to be passed, ALONG WITH THEIR ARGUMENTS, to TeX.
+    # Note that this means that the arguments should *not* be translated,
+    # This is handled by wrapping the commands in the dummy tex2html_wrap
+    # environment before translation begins ...
+
+    # Also it can be used to specify environments which may be defined
+    # using do_env_* but whose contents will be passed to LaTeX and
+    # therefore should not be translated.
+    # Note that this code squeezes spaces out of the args of psfig;
+
+
+    # Images are cropped to the minimum bounding-box for these...
+
+&process_commands_in_tex (<<_RAW_ARG_CMDS_);
+psfig # {} # \$args =~ s/ //g;
+usebox # {}
+framebox # [] # [] # {}
+_RAW_ARG_CMDS_
+
+    # ... but these are set in a box to measure height/depth 
+    # so that white space can be preserved in the images.
+
+&process_commands_inline_in_tex (<<_RAW_ARG_CMDS_);
+#etalchar # {} \$args =~ s/(.*)/\$\^\{\$1\}\\\$/o; 
+fbox # {}
+#frac # [] # {} # {}
+dag
+ddag
+l
+L
+oe
+OE
+textexclamdown
+textquestiondown
+textregistered
+textperiodcentered
+#textcircled # {}
+#raisebox # {} # [] # [] # {}
+_RAW_ARG_CMDS_
+
+
+
+# These are handled by wrapping the commands in the dummy tex2html_nowrap
+# environment before translation begins. This environment will be
+# stripped off later, when the commands are put into  images.tex  ...
+
+&process_commands_nowrap_in_tex (<<_RAW_ARG_NOWRAP_CMDS_);
+#begingroup
+#endgroup
+#bgroup
+#egroup
+errorstopmode
+nonstopmode
+scrollmode
+batchmode
+psfigurepath # {}
+pssilent
+psdraft
+psfull
+thinlines
+thicklines
+linethickness # {}
+hyphenation # {}
+hyphenchar # \\ # &get_numeric_argument
+hyphenpenalty # &get_numeric_argument
+#let # \\ # <<\\(\\W|\\w+)>>
+newedboolean # {}
+newedcommand # {} # [] # [] # {}
+newedcounter # {} # []
+newedenvironment # {} # [] # [] # {} # {}
+newedtheorem # {} # [] # {} # []
+#providedcommand # {} # [] # [] # {}
+#renewedcommand # {} # [] # [] # {}
+#renewedenvironment # {} # [] # [] # {} # {}
+DeclareMathAlphabet # {} # {} # {} # {} # {}
+SetMathAlphabet # {} # {} # {} # {} # {} # {}
+DeclareMathSizes # {} # {} # {} # {}
+DeclareMathVersion # {}
+DeclareSymbolFont # {} # {} # {} # {} # {}
+DeclareSymbolFontAlphabet # {} # {}
+DeclareMathSymbol # {} # {} # {} # {}
+SetSymbolFont # {} # {} # {} # {} # {} # {}
+DeclareFontShape # {} # {} # {} # {} # {} # {}
+DeclareFontFamily # {} # {} # {}
+DeclareFontEncoding # {} # {} # {}
+DeclareFontSubstitution # {} # {} # {} # {}
+mathversion # {}
+#newfont # {} # {}
+#normalfont
+#rmfamily
+#mdseries
+newlength # {}
+setlength # {} # {}
+addtolength # {} # {}
+settowidth # {}# {}
+settoheight # {} # {}
+settodepth # {} # {}
+newsavebox # {}
+savebox # {} # [] # {}
+sbox # {} # {}
+setbox # {}
+TagsOnLeft  # \$EQN_TAGS = \"L\" if \$PREAMBLE;
+TagsOnRight # \$EQN_TAGS = \"R\" if \$PREAMBLE;
+_RAW_ARG_NOWRAP_CMDS_
+
+
+&process_commands_wrap_deferred (<<_RAW_ARG_DEFERRED_CMDS_);
+alph # {}
+Alph # {}
+arabic # {}
+author # [] # {}
+boldmath
+unboldmath
+captionstar # [] # {}
+caption # [] # {}
+#endsegment # []
+#segment # [] # {} # {} # {}
+fnsymbol # {}
+footnote # [] # {}
+footnotemark # []
+footnotetext # [] # {}
+#thanks # {}
+roman # {}
+Roman # {}
+#mbox # {}
+parbox # [] # [] # [] # {} # {}
+#selectlanguage # [] # {}
+setcounter # {} # {}
+addtocounter # {} # {}
+stepcounter # {}
+refstepcounter # {}
+value # {}
+par
+hrule # &ignore_numeric_argument
+linebreak # []
+pagebreak # []
+newfont # {} # {}
+smallskip
+medskip
+bigskip
+centering
+raggedright
+raggedleft
+itshape
+#textit # {}
+upshape
+slshape
+#scshape
+rmfamily
+sffamily
+ttfamily
+mdseries
+bfseries
+#textbf # {}
+em
+normalfont
+it
+rm
+sl
+bf
+tt
+sf
+Tiny
+tiny
+scriptsize
+footnotesize
+small
+Small
+SMALL
+normalsize
+large
+Large
+LARGE
+huge
+Huge
+lowercase # {}
+uppercase # {}
+MakeLowercase # {}
+MakeUppercase # {}
+htmlinfo # []
+htmlinfostar # []
+tableofchildlinks # []
+tableofchildlinksstar # []
+tableofcontents
+listoffigures
+listoftables
+thepart
+thepage
+thechapter
+thesection
+thesubsection
+thesubsubsection
+theparagraph
+thesubparagraph
+theequation
+htmltracenv # {}
+HTMLsetenv # [] # {} # {}
+#newedboolean # {}
+#newedcounter # {} # []
+#newedcommand # {} # [] # [] # {}
+#newedtheorem # {} # [] # {} # []
+#newedenvironment # {} # [] # [] # {} # {}
+providedcommand # {} # [] # [] # {}
+renewedcommand # {} # [] # [] # {}
+renewedenvironment # {} # [] # [] # {} # {}
+url # {}
+htmlurl # {}
+latextohtml
+TeX
+LaTeX
+LaTeXe
+LaTeXiii
+Xy
+MF
+AmS
+AmSTeX
+textcircled # {}
+_RAW_ARG_DEFERRED_CMDS_
+
+
+#rrm
+# implement the XBit-Hack for Apache servers, to handle
+# Server-Side Includes (SSIs) with .html filename extension
+#
+sub check_htaccess {
+    my $access_file = '.htaccess';
+    my $has_access = '';
+    local $_;
+    print "\nChecking for .htaccess  file";
+    if (-f $access_file) {
+	print STDOUT " ... found";
+	open(HTACCESS, "<$access_file");
+	while (<HTACCESS>) {
+	    if (/^\s*XBitHack\s*on\s*$/) {
+		print STDOUT " with XBitHack on";
+		$has_access =1; last;
+	    };
+	}
+	print STDOUT "\n";
+	close HTACCESS;
+	return() if $has_access;
+	open (HTACCESS, ">>$access_file");
+	&write_warnings("appended to .htaccess in $DESTDIR");
+    } else {
+	open (HTACCESS, ">$access_file");
+	chmod 0644, $access_file;
+	&write_warnings("created .htaccess file in $DESTDIR");
+    }
+    print HTACCESS "\nXBitHack on\n";
+    close HTACCESS;
+}
+
+# This maps the HTML mnemonic names for the ISO-LATIN-1 character references
+# to their numeric values. When converting latex specials characters to
+# ISO-LATIN-1 equivalents I use the numeric values because this makes any
+# conversion back to latex (using revert_raw_tex) more reliable (in case
+# the text contains "&mnemonic_name"). Errors may occur if an environment
+# passed to latex (e.g. a table) contains the numeric values of character
+# references.
+
+# RRM: removed this portion; load from  latin1.pl instead
+#&do_require_extension('latin1');
+
+sub make_isolatin1_rx {
+    local($list) = &escape_rx_chars(join($CD,(values %iso_8859_1_character_map_inv)));
+    $list =~ s/$CD/|/g;
+    $isolatin1_rx = "($list)";
+}
+
+
+    ################### Frequently used regular expressions ###################
+    # $1 : preamble
+
+    $preamble_rx = "(^[\\s\\S]*)(\\\\begin\\s*$O\\d+$C\\s*document\\s*$O\\d+$C|\\\\startdocument)";
+
+    # \d (number) should sometimes also be a delimiter but this causes
+    # problems with command names  that are allowed to contain numbers (eg tex2html)
+    # \d is a delimiter with commands which take numeric arguments?
+    # JCL: I can't see that. \tex2html is also no valid LaTeX (or TeX).
+    # It is parsed \tex 2html, and \tex may take 2html as argument, but this
+    # is invalid LaTeX. \d must be treated as delimiter.
+
+# JCL(jcl-del) - Characters to be treated as letters, everything else
+# is a delimiter.
+    # internal LaTeX command separator, shouldn't be equal to $;
+    $CD = "\001";
+    &make_cmd_spc_rx; # determines space to follow a letter command
+#old    $delimiters = '\'\\s[\\]\\\\<>(=).,#;:~\/!-';
+    $letters = 'a-zA-Z';
+    $delimiter_rx = "([^$letters])";
+#
+
+    # liberalized environment names (white space, optional arg, interpunctuation signs etc.)
+    # $1 : br_id, $2 : <environment>
+    $begin_env_rx="(\\\\protect)?\\\\begin\\s*(\\[([^\\]]*)])?$O(\\d+)$C\\s*([^'[\\]\\\\#~]+)\\s*$O\\4$C";
+    $begin_env_pr_rx="(\\\\protect)?\\\\begin\\s*(\\[([^\\]]*)])?$OP(\\d+)$CP\\s*([^'[\\]\\\\#~]+)\\s*$OP\\4$CP";
+
+    $mbox_rx = "\\\\mbox\\s*";
+
+    $match_br_rx = "\\s*$O\\d+$C\\s*";
+
+    $opt_arg_rx = "\\s*\\[([^\\]]*)\\]\\s*";	# Cannot handle nested []s!
+    $optional_arg_rx = "^\\s*\\[([^]]*)\\]";	# Cannot handle nested []s!
+
+    $block_close_rx = "^<\\/(DIV|P|BLOCKQUOTE)>\$";
+    $all_close_rx = "^<\\/(BODY|PRE|OL|UL|DL|FORM|ADDRESS)>\$";
+
+    # Matches a pair of matching brackets
+    # $1 : br_id
+    # $2 : contents
+    $next_pair_rx = "^[\\s%]*$O(\\d+)$C([\\s\\S]*)$O\\1$C($comment_mark\\d*\\n?)?";
+
+    # will comments be a problem after these ???
+    $any_next_pair_rx = "$O(\\d+)$C([\\s\\S]*)$O\\1$C";
+    $any_next_pair_rx4 = "$O(\\d+)$C([\\s\\S]*)$O\\4$C";
+    $any_next_pair_pr_rx4 = "$OP(\\d+)$CP([\\s\\S]*)$OP\\4$CP";
+    $any_next_pair_rx5 = "$O(\\d+)$C([\\s\\S]*)$O\\5$C";
+    $any_next_pair_rx6 = "$O(\\d+)$C([\\s\\S]*)$O\\6$C";
+
+    # used for labels in {enumerate} environments
+    $standard_label_rx = 
+	"\\s*[[]\\s*((($any_next_pair_rx4)|([[][^]]*[]])|[^]])*)[]]";
+    $enum_label_rx = "^((({[^{}]*})|([^{}]))*)([aAiI1])(.*)";
+    $enum_level = 0;	# level for enumerate (1-4, i-iv)
+
+
+    # Matches the \ensuremath command
+    $enspair = "\\\\ensuremath\\s*" . $any_next_pair_rx;
+#    $enspair = "\\\\ensuremath\\s*$O(\\d+)$C([\\s\\S]*[\\\\\$&]+[\\s\\S]*)$O\\1$C";
+
+    # Matches math comments, from  math.pl
+    $math_verbatim_rx = "$verbatim_mark#math(\\d+)#";
+    $mathend_verbatim_rx = "$verbatim_mark#mathend([^#]*)#";
+
+    # Matches math array environments
+    $array_env_rx = "array|cases|\\w*matrix";
+
+    # initially empty; has a value in HTML 3.2 and 4.0
+    $math_class = '' unless ($math_class);
+    $eqno_class = '' unless ($eqno_class);
+
+    # Matches to end-of-line and subsequent spaces
+    $EOL = "[ \\t]*\\n?";
+
+    # Matches wrapped \par command
+    $par_rx = "\\n?\\\\begin(($O|$OP)\\d+($C|$CP))tex2html_deferred\\1\\\\par\\s\*"
+        . "\\\\end(($O|$OP)\\d+($C|$CP))tex2html_deferred\\4\\n?";
+
+    # $1 : br_id
+    $begin_cmd_rx = "$O(\\d+)$C";
+
+    # $1 : image filename prefix
+    $img_rx = "(\\w*T?img\\d+)";
+
+    # $1 : largest argument number
+    $tex_def_arg_rx = "^[#0-9]*#([0-9])($O|$OP)";
+
+    #   only some non-alphanumerics are allowed in labels,  Why?
+    $label_rx = "[^\\w\.\\\-\\\+\\\:]";
+
+#JCL(jcl-del) - new face, see also &do_cmd_makeatletter et.al.
+#    $cmd_delims = q|-#,.~/\'`^"=\$%&_{}@|; # Commands which are also delimiters!
+#    $single_cmd_atletter_rx = "\\\\([a-zA-Z\\\@]+\\*?|[$cmd_delims]|\\\\)";
+#    $single_cmd_atother_rx = "\\\\([a-zA-Z]+\\*?|[$cmd_delims]|\\\\)";
+    # $1 : declaration or command or newline (\\)
+    &make_single_cmd_rx;
+#
+
+    # $1 : description in a list environment
+    $item_description_rx =
+#	"\\\\item\\s*[[]\\s*((($any_next_pair_rx4)|([[][^]]*[]])|[^]])*)[]]";
+	"\\\\item\\s*[[]\\s*((($any_next_pair_pr_rx4)|([[][^]]*[]])|[^]])*)[]]";
+
+    $fontchange_rx = 'rm|em|it|sl|sf|tt|sc|upshape|normalfont';
+    $fontweight_rx = 'bf|mdseries|normalfont';
+    $colorchange_rx = "(text)?color\\s*(\#\\w{6})?";
+    $sizechange_rx = 'tiny|Tiny|scriptsize|footnotesize|small|Small|SMALL' .
+	'|normalsize|large|Large|LARGE|huge|Huge';
+
+#    $image_switch_rx = "makeimage";
+    $image_switch_rx = "makeimage|scshape|sc";
+    $env_switch_rx = "writetolatex";
+    $raw_arg_cmds{'font'} = 1;
+
+    # Matches the \caption command
+    # $1 : br_id
+    # $2 : contents
+     $caption_suffixes = "lof|lot";
+#    $caption_rx = "\\\\caption\\s*([[]\\s*((($any_next_pair_rx5)|([[][^]]*[]])|[^]])*)[]])?$O(\\d+)$C([\\s\\S]*)$O\\8$C$EOL";
+
+    $caption_rx = "\\\\(top|bottom|table)?caption\\s*\\\*?\\s*([[]\\s*((($any_next_pair_rx6)|([[][^]]*[]])|[^]])*)[]])?$O(\\d+)$C([\\s\\S]*)$O\\9$C$EOL";
+    $caption_width_rx = "\\\\setlength\\s*(($O|$OP)\\d+($C|$CP))\\\\captionwidth\\1\\s*(($O|$OP)\\d+($C|$CP))([^>]*)\\4";
+
+    # Matches the \htmlimage command
+    # $1 : br_id
+    # $2 : contents
+    $htmlimage_rx = "\\\\htmlimage\\s*$O(\\d+)$C([\\s\\S]*)$O\\1$C$EOL";
+    $htmlimage_pr_rx = "\\\\htmlimage\\s*$OP(\\d+)$CP([\\s\\S]*)$OP\\1$CP$EOL";
+
+    # Matches the \htmlborder command
+    # $1 : optional argument...
+    # $2 : ...contents  i.e. extra attributes
+    # $3 : br_id
+    # $4 : contents i.e. width
+    $htmlborder_rx = "\\\\htmlborder\\s*(\\[([^]]*)\\])?\\s*$O(\\d+)$C(\\d*)$O\\3$C$EOL";
+    $htmlborder_pr_rx = "\\\\htmlborder\\s*(\\[([^]]*)\\])?\\s*$OP(\\d+)$CP(\\d*)$OP\\3$CP$EOL";
+
+    # Matches a pair of matching brackets
+    # USING PROCESSED DELIMITERS;
+    # (the delimiters are processed during command translation)
+    # $1 : br_id
+    # $2 : contents
+#    $next_pair_pr_rx = "^[\\s%]*$OP(\\d+)$CP([\\s\\S]*)$OP\\1$CP";
+    $next_pair_pr_rx = "^[\\s%]*$OP(\\d+)$CP([\\s\\S]*)$OP\\1$CP($comment_mark\\d*\\n?)?";
+    $any_next_pair_pr_rx = "$OP(\\d+)$CP([\\s\\S]*)$OP\\1$CP($comment_mark\\d*\\n?)?";
+    $next_token_rx = "^[\\s%]*(\\\\[A-Za-z]+|\\\\[^a-zA-Z]|.)";
+
+    $HTTP_start = 'http:';
+
+    # This will be used to recognise escaped special characters as such
+    # and not as commands
+    $latex_specials_rx = '[\$]|&|%|#|{|}|_';
+    $html_escape_chars = '<>&';
+
+    # This is used in sub revert_to_raw_tex before handing text to be processed
+    # by latex.
+    $html_specials_inv_rx = join("|", keys %html_specials_inv);
+
+    # These are used for direct replacements in/from  ALT=... strings
+    %html_special_entities = ('<','lt','>','gt','"','quot','&','amp');
+    %html_spec_entities_inv = ('lt','<','gt','>','quot','"','amp','&');
+
+    # This is also used in sub revert_to_raw_tex
+    $character_entity_rx = '(&#(\d+);)';
+    $named_entity_rx = '&(\w+);';
+
+    #commands for altering theorem-styles
+    $theorem_cmd_rx = 'theorem(style|(header|body)font)';
+
+
+    # Matches a \begin or \end {tex2html_wrap}. Also used by revert_to_raw_tex
+    $tex2html_wrap_rx = '\\\\(begin|end)\\s*\{\\s*(tex2html_(wrap|nowrap|deferred|nomath|preform|\\w*_inline)[_a-z]*|makeimage)\\s*\}'."($EOL)";
+    $tex2html_deferred_rx = '\\\\(begin|end)(<<\\d+>>)tex2html_deferred\\2';
+    $tex2html_deferred_rx2 = '\\\\(begin|end)(<<\\d+>>)tex2html_deferred\\4';
+    $tex2html_envs_rx = "\\\\(begin|end)\\s*(($O|$OP)\\d+($C|$CP))\\s*(tex2html_(wrap|nowrap|deferred|nomath|preform|\w+_inline)[_a-z]*||makeimage)\\s*\\2";
+
+    # The first empty parenthese pair is for non-letter commands.
+    # $2: meta command, $4: delimiter (may be empty)  ignore the *-version distinction
+#    $meta_cmd_rx = "()\\\\(providecommand|renewcommand|renewenvironment|newcommand|newenvironment|newtheorem|newcounter|newboolean|newif|let)(([^$letters$cmd_spc])|$cmd_spcs_rx)";
+    $meta_cmd_rx = "()\\\\(providecommand|renewcommand|renewenvironment|newcommand|newenvironment|newtheorem|newcounter|newboolean|newif|DeclareRobustCommand|DeclareMathOperator\\*?)\\\*?(([^$letters$cmd_spc])|$cmd_spcs_rx)";
+
+    &make_counters_rx;
+
+    # Matches a label command and its argument
+    $labels_rx = "\\\\label\\s*$O(\\d+)$C([\\s\\S]*)$O\\1$C$EOL";
+    $labels_rx8 = "\\\\label\\s*$O(\\d+)$C([\\s\\S]*)$O\\8$C$EOL";
+
+    # Matches environments that should not be touched during the translation
+#   $verbatim_env_rx = "\\s*{(verbatim|rawhtml|LVerbatim)[*]?}";
+    $verbatim_env_rx = "\\s*(\\w*[Vv]erbatim|rawhtml|imagesonly|tex2html_code)[*]?";
+    $image_env_rx = "\\s*(picture|xy|diagram)[*]?";
+    $keepcomments_rx = "\\s*(picture|makeimage|xy|diagram)[*]?";
+
+    # names of different math environment types
+    $display_env_rx = "displaymath|makeimage|eqnarray|equation";
+    $inline_env_rx = "inline|indisplay|entity|xy|diagram";
+    $sub_array_env_rx = "array|(small|\\w)\?matrix|tabular|cases";
+
+    # Matches environments needing pre-processing for images
+    $pre_processor_env_rx = "\\\\(begin|end)\\s*(($O|$OP|\{)\\d+($C|$CP|\}))pre_(\\w+)\\2";
+
+    # Matches icon markers
+    $icon_mark_rx = "<tex2html_(" . join("|", keys %icons) . ")>";
+
+    $start_time = time;
+    print STDOUT join(" ", "Starting at", $start_time, "seconds\n")
+        if ($TIMING||$DEBUG||($VERBOSITY>2));
+
+}	# end of &initialise
+
+# Frequently used regular expressions with arguments
+sub make_end_env_rx {
+    local($env) = @_;
+    $env = &escape_rx_chars($env);
+    "\\\\end\\s*$O(\\d+)$C\\s*$env\\s*$O\\1$C".$EOL;
+}
+
+sub make_begin_end_env_rx {
+    local($env) = @_;
+    $env = &escape_rx_chars($env);
+    "\\\\(begin|end)\\s*$O(\\d+)$C\\s*$env\\s*$O\\3$C(\\s*\$)?";
+}
+
+sub make_end_cmd_rx {
+    local($br_id) = @_;
+    "$O$br_id$C";
+}
+
+#JCL(jcl-del) - see also &tokenize.
+# Arrange commands into a regexp for tokenisation.
+# Any letter command will gobble spaces, but avoids to match
+# on ensuing letters (\foo won't match on \foox).
+# Any non-letter command retains spaces and matches always
+# by itself (\| matches \|... regardless of ...).
+#
+# This all is a huge kludge. The commands names should stay fix,
+# regardless of changing catcodes. If we have \makeatletter,
+# and LaTeX2HTML marks \@foo, then \@foo will be expanded
+# properly before \makeatother, but does weird things on \@foo
+# after \makeatother (\@foo in LaTeX is then \@ and foo, which
+# isn't recognized as such).
+# The reason is that the text to match the command \@foo
+# in LaTeX mustn't be \@foo at all, because any text in LaTeX
+# is also attributed with the category codes.
+#
+# But at least we have proper parsing of letter and non-letter
+# commands as long as catcoding won't upset LaTeX2HTML too much.
+#
+sub make_new_cmd_rx {
+    return("") if $#_ < 0; # empty regexp if list is empty!
+
+    # We have a subtle treatment of ambivalent commands like
+    # \@foo in situations depicted above!
+    # Get every command that contains no letters ...
+    local($nonlettercmds) =
+	&escape_rx_chars(join($CD, grep(!/[$letters]/, at _)));
+    # and every command that contains a letter
+    local($lettercmds) =
+	&escape_rx_chars(join($CD, grep(/[$letters]/, at _)));
+
+    if (%renew_command) {
+	local($renew);
+	foreach $renew (keys %renew_command) {
+	    $lettercmds =~ s/(^|$CD)$renew//; }
+        $lettercmds =~ s/^$CD$//;
+    }
+
+    # replace the temporary $CD delimiter (this enables eg. \| command)
+    $nonlettercmds =~ s/$CD/|/g;
+    $lettercmds =~ s/$CD/|/g;
+
+    # In case we have no non-letter commands, insert empty parentheses
+    # to align match strings.
+    #
+    $nonlettercmds =~ s/^\||\|$//g;
+    $lettercmds =~ s/^\||\|$//g;
+    local($rx) = (length($nonlettercmds) ? "\\\\($nonlettercmds)" : "");
+    if (length($lettercmds)) {
+	$rx .= ( length($rx) ? "|" : "()" );
+	$rx .= "\\\\($lettercmds)(([^$letters$cmd_spc])|$cmd_spcs_rx|\$)";
+    }
+    # $1: non-letter cmd, $2: letter cmd, $4: delimiter
+    # Eg. \\(\@|...|\+)|\\(abc|...|xyz)(([^a-zA-Z \t])|[ \t]+)
+    # $1 and $2 are guaranteed to alternate, $4 may be empty.
+    $rx;
+}
+
+# Build a simple regexp to use after tokenisation for
+# faster translation.
+sub make_new_cmd_no_delim_rx {
+    return("") if $#_ < 0; # empty regexp if list is empty!
+    # Get every command that contains no letters ...
+    local($_) = &escape_rx_chars(join($CD, @_));
+    s/$CD/|/g;
+
+    join('',"\\\\(",$_,")");
+}
+
+
+#JCL(jcl-del) - new face: w/o arg (was 'begin' only), escapes env names
+sub make_new_env_rx {
+    local($envs) = &escape_rx_chars(join($CD, keys %new_environment));
+    $envs =~ s/$CD/|/g;
+    length($envs) ? "\\\\begin\\s*$O(\\d+)$C\\s*($envs)\\s*$O\\1$C\\s*" : "";
+}
+
+sub make_new_end_env_rx {
+    local($envs) = &escape_rx_chars(join($CD, keys %new_environment));
+    $envs =~ s/$CD/|/g;
+    length($envs) ? "\\\\end\\s*$O(\\d+)$C\\s*($envs)\\s*$O\\1$C\\s*" : "";
+}
+
+#JCL(jcl-del) - $delimiter_rx -> ^$letters
+# don't care for $cmd_spc_rx; space after sectioning commands
+# is unlikely and I don't want to try too much new things
+#
+sub make_sections_rx {
+    local($section_alts) = &get_current_sections;
+    # $section_alts includes the *-forms of sectioning commands
+    $sections_rx = "()\\\\($section_alts)(([^$letters$cmd_spc])|$cmd_spcs_rx|\$)";
+#    $sections_rx = "()\\\\($section_alts)([^$letters])";
+}
+
+sub make_order_sensitive_rx {
+    local(@theorem_alts, $theorem_alts);
+    @theorem_alts = ($preamble =~ /\\newtheorem\s*{([^\s}]+)}/og);
+    $theorem_alts = join('|', at theorem_alts);
+#
+#  HWS: Added kludge to require counters to be more than 2 characters long
+#	in order to be flagged as order-sensitive.  This will permit equations
+#	with \theta to remain order-insensitive.  Also permit \alpha and
+#	the eqnarray* environment to remain order-insensitive.
+#
+    $order_sensitive_rx =
+#        "(equation|eqnarray[^*]|\\\\caption|\\\\ref|\\\\the[a-z]{2,2}[a-z]|\\\\stepcounter" .
+        "(\\\\caption|\\\\ref|\\\\the[a-z]{2,2}[a-z]|\\\\stepcounter" .
+        "|\\\\arabic|\\\\roman|\\\\Roman|\\\\alph[^a]|\\\\Alph|\\\\fnsymbol)";
+    $order_sensitive_rx =~ s/\)/|$theorem_alts)/ if $theorem_alts;
+}
+
+sub make_language_rx {
+    local($language_alts) = join("|", keys %language_translations);
+#    $setlanguage_rx = "\\\\se(lec)?tlanguage\\s*{\\\\?($language_alts)}";
+    $setlanguage_rx = "\\\\setlanguage\\s*{\\\\?($language_alts)}";
+    $language_rx = "\\\\($language_alts)TeX";
+    $case_change_rx = "(\\\\(expandafter|noexpand)\s*)?\\\\((Make)?([Uu]pp|[Ll]ow)ercase)\s*";
+}
+
+sub addto_languages {
+    local($lang) = @_;
+    local($trans) = "main'".$lang.'_translation';
+    if (defined &$trans) {
+	$language_translations {$lang} = $lang.'_translation';
+    }
+}
+
+# JCL(jcl-del) - new rexexp type
+sub make_raw_arg_cmd_rx {
+    # $1 or $2 : commands to be processed in latex (with arguments untouched)
+    # $4 : delimiter
+    $raw_arg_cmd_rx = &make_new_cmd_rx(keys %raw_arg_cmds);
+    $raw_arg_cmd_rx;
+}
+
+# There are probably more.
+# Interferences not checked out yet, thus in makeat... only.
+sub make_letter_sensitive_rx {
+    $delimiter_rx = "([^$letters])";
+    &make_sections_rx;
+    &make_single_cmd_rx;
+    &make_counters_rx;
+}
+
+#JCL(jcl-del) - this could eat one optional newline, too.
+# But this might result in large lines... anyway, it *should* be
+# handled. A possible solution would be to convert adjacent newlines
+# into \par's in preprocessing.
+sub make_cmd_spc_rx {
+    $cmd_spc = " \\t";
+    $cmd_spc_rx = "[ \\t]*"; # zero or more
+    $cmd_spcs_rx = "[ \\t]+"; # one or more
+}
+
+sub make_single_cmd_rx {
+    $single_cmd_rx = "\\\\([^$letters])|\\\\([$letters]+\\*?)(([^$letters$cmd_spc])|$cmd_spcs_rx|\n|\$)";
+}
+
+sub make_counters_rx {
+    # Matches counter commands - these are caught early and are appended to the
+    # file that is passed to latex.
+#JCL(jcl-del) - $delimiter_rx -> ^$letters
+    $counters_rx = "()\\\\(newcounter|addtocounter|setcounter|refstepcounter|stepcounter|arabic|roman|Roman|alph|Alph|fnsymbol)(([^$letters$cmd_spc])|$cmd_spcs_rx|\$)";
+}
+
+
+# Creates an anchor for its argument and saves the information in
+# the array %index;
+# In the index the word will use the beginning of the title of
+# the current section (instead of the usual pagenumber).
+# The argument to the \index command is IGNORED (as in latex)
+sub make_index_entry { &make_real_index_entry(@_) }
+sub make_real_index_entry {
+    local($br_id,$str) = @_;
+    local($this_file) = $CURRENT_FILE;
+    $TITLE = $saved_title if (($saved_title)&&(!($TITLE)||($TITLE eq $default_title)));
+    # Save the reference
+    $str = "$str###" . ++$global{'max_id'}; # Make unique
+    $index{$str} .= &make_half_href($this_file."#$br_id");
+    "<A NAME=\"$br_id\">$anchor_invisible_mark<\/A>";
+}
+
+sub image_message { # clean
+    print <<"EOF";
+
+To resolve the image conversion problems please consult
+the "Troubleshooting" section of your local User Manual
+or read it online at
+   http://www-texdev.ics.mq.edu.au/l2h/docs/manual/
+
+EOF
+}
+
+sub image_cache_message { # clean
+   print <<"EOF";
+
+If you are having problems displaying the correct images with Mosaic,
+try selecting "Flush Image Cache" from "Options" in the menu-bar
+and then reload the HTML file.
+EOF
+}
+
+__DATA__
+
+# start of POD documentation
+
+=head1 NAME
+
+latex2html - Translate LaTeX files to HTML (HyperText Markup Language)
+
+=head1 SYNOPSIS
+
+B<latex2html> S<[ B<-help> | B<-h> ]> S<[ B<-version> | B<-V> ]>
+
+B<latex2html> S<[ B<-split> I<num> ]>
+S<[ B<-link> I<num> ]>
+S<[ B<-toc_depth> I<num> ]>
+S<[ B<->(B<no>)B<toc_stars> ]>
+S<[ B<->(B<no>)B<short_extn> ]>
+S<[ B<-iso_language> I<lang> ]>
+S<[ B<->(B<no>)B<validate> ]>
+S<[ B<->(B<no>)B<latex> ]>
+S<[ B<->(B<no>)B<djgpp> ]>
+S<[ B<->(B<no>)B<fork> ]>
+S<[ B<->(B<no>)B<external_images> ]>
+S<[ B<->(B<no>)B<ascii_mode> ]>
+S<[ B<->(B<no>)B<lcase_tags> ]>
+S<[ B<->(B<no>)B<ps_images> ]>
+S<[ B<-font_size> I<size> ]>
+S<[ B<->(B<no>)B<tex_defs> ]>
+S<[ B<->(B<no>)B<navigation> ]>
+S<[ B<->(B<no>)B<top_navigation> ]>
+S<[ B<->(B<no>)B<buttom_navigation> ]>
+S<[ B<->(B<no>)B<auto_navigation> ]>
+S<[ B<->(B<no>)B<index_in_navigation> ]>
+S<[ B<->(B<no>)B<contents_in_navigation> ]>
+S<[ B<->(B<no>)B<next_page_in_navigation> ]>
+S<[ B<->(B<no>)B<previous_page_in_navigation> ]>
+S<[ B<->(B<no>)B<footnode> ]>
+S<[ B<->(B<no>)B<numbered_footnotes> ]>
+S<[ B<-prefix> I<output_filename_prefix> ]>
+S<[ B<->(B<no>)B<auto_prefix> ]>
+S<[ B<-long_titles> I<num> ]>
+S<[ B<->(B<no>)B<custom_titles> ]>
+S<[ B<-title>|B<-t> I<top_page_title> ]>
+S<[ B<->(B<no>)B<rooted> ]>
+S<[ B<-rootdir> I<output_directory> ]>
+S<[ B<-dir> I<output_directory> ]>
+S<[ B<-mkdir> ]>
+S<[ B<-address> I<author_address> | B<-noaddress> ]>
+S<[ B<->(B<no>)B<subdir> ]>
+S<[ B<-info> I<0> | I<1> | I<string> ]>
+S<[ B<->(B<no>)B<auto_link> ]>
+S<[ B<-reuse> I<num> | B<-noreuse> ]>
+S<[ B<->(B<no>)B<antialias_text> ]>
+S<[ B<->(B<no>)B<antialias> ]>
+S<[ B<->(B<no>)B<transparent> ]>
+S<[ B<->(B<no>)B<white> ]>
+S<[ B<->(B<no>)B<discard> ]>
+S<[ B<-image_type> I<type> ]>
+S<[ B<->(B<no>)B<images> ]>
+S<[ B<-accent_images> I<type> | B<-noaccent_images> ]>
+S<[ B<-style> I<style> ]>
+S<[ B<->(B<no>)B<parbox_images> ]>
+S<[ B<->(B<no>)B<math> ]>
+S<[ B<->(B<no>)B<math_parsing> ]>
+S<[ B<->(B<no>)B<latin> ]>
+S<[ B<->(B<no>)B<entities> ]>
+S<[ B<->(B<no>)B<local_icons> ]>
+S<[ B<->(B<no>)B<scalable_fonts> ]>
+S<[ B<->(B<no>)B<images_only> ]>
+S<[ B<->(B<no>)B<show_section_numbers> ]>
+S<[ B<->(B<no>)B<show_init> ]>
+S<[ B<-init_file> I<Perl_file> ]>
+S<[ B<-up_url> I<up_URL> ]>
+S<[ B<-up_title> I<up_title> ]>
+S<[ B<-down_url> I<down_URL> ]>
+S<[ B<-down_title> I<down_title> ]>
+S<[ B<-prev_url> I<prev_URL> ]>
+S<[ B<-prev_title> I<prev_title> ]>
+S<[ B<-index> I<index_URL> ]>
+S<[ B<-biblio> I<biblio_URL> ]>
+S<[ B<-contents> I<toc_URL> ]>
+S<[ B<-external_file> I<external_aux_file> ]>
+S<[ B<->(B<no>)B<short_index> ]>
+S<[ B<->(B<no>)B<unsegment> ]>
+S<[ B<->(B<no>)B<debug> ]>
+S<[ B<-tmp> I<path> ]>
+S<[ B<->(B<no>)B<ldump> ]>
+S<[ B<->(B<no>)B<timing> ]>
+S<[ B<-verbosity> I<num> ]>
+S<[ B<-html_version> I<num> ]>
+S<[ B<->(B<no>)B<strict> ]>
+I<file.tex> S<[ I<file2.tex> ... ]>
+
+=head1 DESCRIPTION
+
+I<LaTeX2HTML> is a Perl program that translates LaTeX source files into
+HTML. For each source file given as an argument the translator will create
+a directory containing the corresponding HTML files.
+
+=head1 OPTIONS
+
+Many options can be specified in a true/false manner. This is indicated by
+I<(no)>, e.g. to enable passing unknown environments to LaTeX, say "-latex",
+to disable the feature say "-nolatex" or "-no_latex" (portability mode).
+
+=over 4
+
+=item B<-help> | B<-h>
+
+Print this online manual and exit.
+
+=item B<-version> | B<-V>
+
+Print the LaTeX2HTML release and version information and exit.
+
+=item B<-split> I<num>
+
+Stop making separate files at this depth (say "-split 0" for one huge HTML
+file).
+
+=item B<-link> I<num>
+
+Stop showing child nodes at this depth.
+
+=item B<-toc_depth> I<num>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<toc_stars>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<short_extn>
+
+If this is set all HTML file will have extension C<.htm> instead of
+C<.html>. This is helpful when shipping the document to PC systems.
+
+=item B<-iso_language> I<lang>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<validate>
+
+When this is set true, the HTML validator specified in F<l2hconf.pm>
+will run.
+
+=item B<->(B<no>)B<latex>
+
+Pass unknown environments to LaTeX. This is the default.
+
+=item B<->(B<no>)B<djgpp>
+
+Specify this switch if you are running DJGPP on DOS and need to avoid
+running out of filehandles.
+
+=item B<->(B<no>)B<fork>
+
+Enable/disable forking. The default is reasonable for this platform.
+
+=item B<->(B<no>)B<external_images>
+
+If set, leave the images outside the document.
+
+=item B<->(B<no>)B<ascii_mode>
+
+This is different from B<-noimages>.
+If this is set, B<LaTeX2HTML> will show textual tags rather than
+images, both in navigation panel and text (Eg. C<[Up]> instead the up
+icon).
+You could use this feature to create simple text from your
+document, eg. with 'Save as... Text' from B<Netscape> or with
+B<lynx -dump>.
+
+=item B<->(B<no>)B<lcase_tags>
+
+writes out HTML tag names using lowercase letters, rather than uppercase.
+
+=item B<->(B<no>)B<ps_images>
+
+If set, use links to external postscript images rather than inlined bitmaps.
+
+=item B<-font_size> I<size>
+
+To set the point size of LaTeX-generated GIF files, specify the desired
+value (i.e., C<10pt>, C<11pt>, C<12pt>, etc.).
+The default is to use the point size of the original LaTeX document.
+This value will be magnified by I<$FIGURE_SCALE_FACTOR> and
+I<$MATH_SCALE_FACTOR> defined in F<l2hconf.pm>.
+
+=item B<->(B<no>)B<tex_defs>
+
+Enable interpretation of raw TeX commands (default).
+Note: There are many variations of C<\def> that B<LaTeX2HTML> cannot process
+correctly!
+
+=item B<->(B<no>)B<navigation>
+
+Put a navigation panel at the top of each page (default).
+
+=item B<->(B<no>)B<top_navigation>
+
+Enables navigation links at the top of each page (default).
+
+=item B<->(B<no>)B<buttom_navigation>
+
+Enables navigation links at the buttom of each page.
+
+=item B<->(B<no>)B<auto_navigation>
+
+Put navigation links at the top of each page. If the page exceeds
+I<$WORDS_IN_PAGE> number of words then put one at the bottom of the page.
+
+=item B<->(B<no>)B<index_in_navigation>
+
+Put a link to the index page in the navigation panel.
+
+=item B<->(B<no>)B<contents_in_navigation>
+
+Put a link to the table of contents in the navigation panel.
+
+=item B<->(B<no>)B<next_page_in_navigation>
+
+Put a link to the next logical page in the navigation panel.
+
+=item B<->(B<no>)B<previous_page_in_navigation>
+
+Put a link to the previous logical page in the navigation panel.
+
+=item B<->(B<no>)B<footnode>
+
+Puts all footnotes onto a separate HTML page, called F<footnode.html>,
+rather than at the bottom of the page where they are referenced.
+
+=item B<->(B<no>)B<numbered_footnotes>
+
+If true, you will get every footnote applied with a subsequent number, else
+with a generic hyperlink icon.
+
+=item B<-prefix> I<output_filename_prefix>
+
+Set the output file prefix, prepended to all C<.html>, C<.gif> and C<.pl>
+files. See also B<-auto_prefix>.
+
+=item B<->(B<no>)B<auto_prefix>
+
+Set this to automatically insert the equivalent of B<-prefix >C<basename->",
+where "basename" is the base name of the file being translated.
+
+=item B<-long_titles> I<num>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<custom_titles>
+
+MISSING_DESCRIPTION
+
+=item B<-title>|B<-t> I<top_page_title>
+
+The title (displayed in the browser's title bar) the document shall get.
+
+=item B<->(B<no>)B<rooted>
+
+MISSING_DESCRIPTION
+
+=item B<-rootdir> I<output_directory>
+
+MISSING_DESCRIPTION
+
+=item B<-dir> I<output_directory>
+
+Put the result in this directory instead of parallel to the LaTeX file,
+provided the directory exists, or B<-mkdir> is specified.
+
+=item B<-mkdir>
+
+Allow directory specified with B<-dir> to be created if necessary.
+
+=item B<-address> I<author_address> | B<-noaddress>
+
+Supply your own string if you don't like the default 
+"E<lt>NameE<gt> E<lt>DateE<gt>". B<-noaddress> suppresses the
+generation of an address footer.
+
+=item B<->(B<no>)B<subdir>
+
+If set (default), B<LaTeX2HTML> creates (or reuses) another file directory.
+When false, the generated HTML files will be placed in the current
+directory.
+
+=item B<-info> I<0> | I<1> | I<string>
+
+=item B<-noinfo>
+
+If 0 is specified (or B<-noinfo> is used), do not generate an I<"About this
+document..."> section. If 1 is specified (default), the standard info page is
+generated. If a custom string is given, it is used as the info page.
+
+=item B<->(B<no>)B<auto_link>
+
+MISSING_DESCRIPTION
+
+=item B<-reuse> I<num> | B<-noreuse>
+
+If false, do not reuse or recycle identical images generated in previous
+runs. If the html subdirectory already exists, start the interactive session.
+If I<num> is nonzero, do recycle them and switch off the interactive session.
+If 1, only recycle images generated from previous runs.
+If 2, recycle images from the current and previous runs (default).
+
+=item B<->(B<no>)B<antialias_text>
+
+Use anti-aliasing in the generation of images of typeset material;
+e.g. mathematics and text, e.g. in tables and {makeimage} environments.
+
+=item B<->(B<no>)B<antialias>
+
+Use anti-aliasing in the generation of images of figures. This usually
+results in "sharper" bitmap images.
+
+=item B<->(B<no>)B<transparent>
+
+If this is set to false then any inlined images generated from "figure" 
+environments will NOT be transparent.
+
+=item B<->(B<no>)B<white>
+
+This sets the background of generated images to white for anti-aliasing.
+
+=item B<->(B<no>)B<discard>
+
+if true, the PostScript file created for each generated image
+is discarded immediately after its image has been rendered and saved in the
+required graphics format. This can lead to significant savings in disk-space,
+when there are a lot of images, since otherwise these files are not discarded 
+until the end of all processing.
+
+=item B<-image_type> I<type>
+
+Specify the type of bitmap images to be generated. Depending on your setup,
+B<LaTeX2HTML> can generate B<gif> or B<png> images. Note: Gif images have
+certain legal restrictions, as their generation involves an algorithm
+patented by Unisys.
+
+=item B<->(B<no>)B<images>
+
+If false, B<LaTeX2HTML> will not attempt to produce any inlined images.
+The missing images can be generated "off-line" by restarting B<LaTeX2HTML>
+with B<-images_only>.
+
+=item B<-accent_images> I<type> | B<-noaccent_images>
+
+MISSING_DESCRIPTION
+
+=item B<-style> I<style>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<parbox_images>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<math>
+
+By default the special MATH extensions are not used
+since they do not conform with the HTML 3.2 standard.
+
+=item B<->(B<no>)B<math_parsing>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<latin>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<entities>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<local_icons>
+
+Set this if you want to copy the navigation icons to each document directory
+so that the document directory is self-contained and can be dropped into
+another server tree without further actions.
+
+=item B<->(B<no>)B<scalable_fonts>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<images_only>
+
+When true, B<LaTeX2HTML> will only try to convert the inlined images in the
+file F<images.tex> which should have been generated automatically during
+previous runs. This is very useful for correcting "bad LaTeX" in this file.
+
+=item B<->(B<no>)B<show_section_numbers>
+
+When this is set true, the section numbers are shown. The section numbers
+should then match those that would have been produced by LaTeX.
+The correct section numbers are obtained from the $FILE.aux file generated 
+by LaTeX.
+Hiding the section numbers encourages use of particular sections 
+as standalone documents. In this case the cross reference to a section 
+is shown using the default symbol rather than the section number.
+
+=item B<->(B<no>)B<show_init>
+
+MISSING_DESCRIPTION
+
+=item B<-init_file> I<Perl_file>
+
+MISSING_DESCRIPTION
+
+=item B<-up_url> I<up_URL>, B<-up_title> I<up_title>
+
+=item B<-down_url> I<down_URL>, B<-down_title> I<down_title>
+
+=item B<-prev_url> I<prev_URL>, B<-prev_title> I<prev_title>
+
+=item B<-index> I<index_URL>,
+
+=item B<-contents> I<toc_URL>
+
+=item B<-biblio> I<biblio_URL>
+
+If both of the listed two options are set then the "Up" ("Previous" etc.)
+button of the navigation panel in the first node/page of a converted
+document will point to I<up_URL> etc. I<up_title> should be set
+to some text which describes this external link.
+Similarly you might use these options to link external documents
+to your navigation panel.
+
+=item B<-external_file> I<external_aux_file>
+
+MISSING_DESCRIPTION
+
+=item B<->(B<no>)B<short_index>
+
+If this is set then B<makeidx.perl> will construct codified names
+for the text of index references.
+
+=item B<->(B<no>)B<unsegment>
+
+Use this to translate a segmented document as if it were not
+segmented.
+
+=item B<->(B<no>)B<debug>
+
+If this is set then intermediate files are left for later inspection and
+a lot of diagnostic output is produced. This output may be useful when
+searching for problems and/or submitting bug reports to the developers.
+Temporary files include F<$$_images.tex> and F<$$_images.log> created during
+image conversion. Caution: Intermediate files can be I<enormous>!
+
+=item B<-tmp> I<path>
+
+Path for temporary files. This should be a local, fast filesystem because it is heavily used during image generation. The default is set in F<l2hconf.pm>.
+
+=item B<->(B<no>)B<ldump>
+
+This will cause LaTeX2HTML to produce a LaTeX dump of images.tex which is read
+in on subsequent runs and speeds up startup time of LaTeX on the images.tex
+translation. This actually consumes additional time on the first run, but pays
+off on subsequent runs. The dump file will need about 1 Meg of disk space.
+
+=item B<->(B<no>)B<timing>
+
+MISSING_DESCRIPTION
+
+=item B<-verbosity> I<num>
+
+The amount of message information printed to the screen during processing
+by B<LaTeX2HTML> is controlled by this setting.
+By increasing this value, more information is displayed.
+Here is the type of extra information that is shown at each level:
+
+  0   no extra information
+  1   section types and titles
+  2   environment
+  3   command names
+  4   links, labels and internal sectioning codes
+
+=item B<-html_version> I<list>
+
+Which HTML version should be generated. Currently available are:
+C<2.0>, C<3.0>, C<3.2>, C<4.0>. Some additional options that may be
+added are: C<math> (parse mathematics), C<i18n> (?), 
+C<table> (generate tables), C<frame> (generate frames),
+C<latin1>...C<latin9> (use ISO-Latin-x encoding),
+C<unicode> (generate unicode characters). Separate the options with ',',
+e.g. C<4.0,math,frame>.
+
+=item B<->(B<no>)B<strict>
+
+MISSING_DESCRIPTION
+
+=back
+
+=head1 FILES
+
+=over 4
+
+=item F<$LATEX2HTMLPLATDIR/l2hconf.pm>
+
+This file holds the global defaults and configuration settings for
+B<LaTeX2HTML>.
+
+=item F<$HOME/.latex2html-init>
+
+=item F<./.latex2html-init>
+
+These files may contain settings that override the global defaults, just
+like specifying command line switches.
+
+=back
+
+=head1 ENVIRONMENT
+
+=over 4
+
+=item LATEX2HTMLDIR
+
+Path where LaTeX2HTML library files are found. On this installation
+LATEX2HTMLDIR is F</usr/share/latex2html>
+
+=item PERL5LIB
+
+Set by the B<latex2html> program to find perl modules.
+
+=item L2HCONFIG
+
+An alternative configuration filename. The standard configuration file
+is F<$LATEX2HTMLPLATDIR/l2hconf.pm>. You may specify a sole filename (searched
+for in F<$LATEX2HTMLPLATDIR> (and F<$PERL5LIB>) or a complete path.
+
+=item L2HINIT_NAME
+
+The standard user-specific configuration filename is F<.latex2html-init>.
+This environment variable will override this name.
+
+=item HOME
+
+Evaluated if the system does not know about "home" directories (like
+DOS, WinXX, OS/2, ...) to determine the path to F<$L2HINIT_NAME>.
+
+=item TEXE_DONT_INCLUDE, TEXE_DO_INCLUDE
+
+Used internally for communication with B<texexpand>.
+
+=item TEXINPUTS
+
+Used to find TeX includes of all sorts.
+
+=back
+
+=head1 PROBLEMS
+
+For information on various problems and remedies see the WWW online
+documentation or the documents available in the distribution.
+An online bug reporting form and various archives are available at
+F<http://www.latex2html.org/>
+
+There is a mailing list for discussing B<LaTeX2HTML>: C<latex2html at tug.org>
+
+=head1 AUTHOR
+
+Nikos Drakos,  Computer Based Learning Unit, University of Leeds
+E<lt>nikos at cbl.leeds.ac.ukE<gt>. Several people have contributed
+suggestions, ideas, solutions, support and encouragement.
+
+The B<pstoimg> script was written by Marek Rouchal 
+E<lt>marek at saftsack.fs.uni-bayreuth.deE<gt>
+as a generalisation of the B<pstogif> utility to allow graphic formats
+other than GIF to be created. Various options and enhancements have
+been added by Ross Moore.
+Some of the code is based upon the pstoppm.ps postscript program 
+originally written by Phillip Conrad (Perfect Byte, Inc.)
+and modified by L. Peter Deutsch (Aladdin Enterprises).
+
+=head1 SEE ALSO
+
+See the WWW online documentation or the F<$LATEX2HTMLDIR/doc/manual.ps>
+file for more detailed information and examples.
+
+L<pstoing>, L<texexpand>
+
+=cut
+
diff --git a/gosa-core/contrib/make-gosa-package b/gosa-core/contrib/make-gosa-package
new file mode 100755
index 0000000..6b86636
--- /dev/null
+++ b/gosa-core/contrib/make-gosa-package
@@ -0,0 +1,422 @@
+#!/bin/bash
+# This code is part of GOsa (http://www.gosa-project.org)
+# Copyright (C) 2008 GONICUS GmbH
+#
+# ID: $$Id: make-gosa-package 15693 2010-02-24 11:42:05Z janw $$
+#
+# 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+# Define defaults
+RELEASE_REASON="GOsa svn snapshot"
+BRANCH="trunk"
+SECTION="web"
+SI_SECTION="utils"
+TARGET_RELEASE="etch"
+MAKE_PLUGINS=""
+MAKE_GOTO=""
+GOTO=""
+PBUILDER=""
+NOT_RELEASED="heimdal dak dfs glpi apache2"
+GOTO_NOT_RELEASED="apache-directory-studio goto-cd libresourcepool-net-ldap-perl-1.002 libresourcepool-perl-1.0104 openproj ptc syslinux konch ldm openssh-4.3p2" 
+DEBIAN_PKG="remove"
+NO_SVN="use"
+EXTRACT=`pwd`
+
+usage() {
+	cat <<-EOF
+	GOsa Debian package build tool. Build snapshots from selected SVN locations or local directories.
+	Usage: ${0##*/} [options]
+	
+	Options:
+	  -b|--branch       Branch to export [$BRANCH]
+	  -p|--plugins      Comma seperate list of plugins to build. Leave empty to build all.
+	  -e|--experimental Build not released plugins (for testers and developers only)
+	  -r|--release      Debian release to build for [$TARGET_RELEASE]
+	  -c|--changelog    Debian changelog entry [$RELEASE_REASON]
+	  -s|--section      Debian section to place GOsa in [$SECTION]
+	  -i|--si-section   Debian section to place GOsa-SI in [$SI_SECTION]
+	  -d|--debian-pkg   Don't clear up debian packages for plugins (for developers only)
+	  -n|--no-svn       Don't extract gosa from svn (when internet connectivity is not present)
+	  -x|--extract-dir  Directory where the checkout is for no-svn
+	  -g|--build-goto   Build the goto2 packages
+	  -l|--use-pbuilder Use pbuilder to build the packages
+	  -h|--help         this help
+
+	EOF
+	exit 1
+}
+
+for cmd in dh-make-gosa debchange dpkg-buildpackage dpkg-source svn; do
+  if ! which $cmd >/dev/null; then
+  	echo "Error: cannot find '$cmd' command in path!";
+  	exit 1
+  fi
+done
+
+# Import command line parameters
+PARMS=`getopt -o e::d::b:r:s:c:i:p:n:x:g::l::,h --long branch:,changelog:,plugins:,section:,si-section:,release:,help -n "${0##*/}" -- "$@"`
+eval set -- "$PARMS"
+
+while true; do
+        case "$1" in
+                -b|--branch)
+			BRANCH=$2; shift 2 ;;
+                -r|--release)
+			TARGET_RELEASE=$2; shift 2 ;;
+                -c|--changelog)
+			RELEASE_REASON=$2; shift 2 ;;
+                -p|--plugins)
+			MAKE_PLUGINS=$(echo $2 | tr ',' ' '); shift 2 ;;
+		-e|--experimental)
+			NOT_RELEASED=""; shift 2;;
+                -s|--section)
+			SECTION=$2; shift 2 ;;
+                -i|--si-section)
+			SI_SECTION=$2; shift 2 ;;
+                -d|--debian-pkg)
+                        DEBIAN_PKG=""; shift 2 ;;
+                -n|--no-svn)
+                        NO_SVN=""; shift 2;;
+                -x|--extract-dir)
+                        EXTRACT=$2; shift 2;;
+                -g|--build-goto)
+                        GOTO="use"; shift 2;;
+                -l|--use-pbuilder)
+                        PBUILDER="use"; shift 2;;
+                -h|--help)
+			usage ;;
+                --)
+			shift; break ;;
+                *)
+			echo "getopt error" ;;
+        esac
+done
+
+if [ "$NO_SVN" = "use" ]
+then
+	echo "Loading svn information for gosa '${BRANCH}'..."
+	svn co -N https://oss.gonicus.de/repositories/gosa/${BRANCH} gosa-info/ > /dev/null
+	BRANCH_REV=$(LANG=C svn info gosa-info | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p')
+	rm -rf gosa-info
+
+	if [ "$GOTO" = "use" ]
+	        then
+	        echo "Loading svn information for goto '${BRANCH}'..."
+	        svn co -N https://oss.gonicus.de/repositories/goto/${BRANCH} goto-info/ > /dev/null
+	        GOTO_BRANCH_REV=$(LANG=C svn info goto-info | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p')
+	        rm -rf goto-info
+	fi
+else
+        echo "Loading svn information for gosa '${BRANCH}' from local checkout ..."
+	BRANCH_REV=$(LANG=C svn info $EXTRACT/gosa-core | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p')
+
+	if [ "$GOTO" = "use" ]
+	then
+		echo "Loading svn information for goto '${BRANCH}' from local checkout ..."
+        	GOTO_BRANCH_REV=$(LANG=C svn info $EXTRACT/goto | sed -n -e 's/^Last Changed Rev: \([0-9]*\).*$/\1/p')
+	fi
+fi
+
+if [ "$NO_SVN" = "use" ]
+then
+	# Load current revision from logs
+	VERSION=$(svn cat -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-core/debian/changelog \
+		| head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+	if [ "$BRANCH" == "trunk" ]; then
+		GOSA_VER="${VERSION}+svn${BRANCH_REV}"
+
+	        if [ "$GOTO" = "use" ]
+        	then
+			GOTO_VER="+svn${GOTO_BRANCH_REV}"
+		fi
+	else
+		GOSA_VER="${VERSION}"
+
+                if [ "$GOTO" = "use" ]
+                then
+                        GOTO_VER=""
+                fi
+
+	fi
+
+else
+        # Load current revision from logs
+	VERSION=$(cat $EXTRACT/gosa-core/debian/changelog | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+
+        if [ "$BRANCH" == "trunk" ]; then
+                GOSA_VER="${VERSION}+svn${BRANCH_REV}"
+        else
+                GOSA_VER="${VERSION}"
+        fi
+	echo $GOSA_VER
+fi
+
+GOSA_DIR="gosa-${GOSA_VER}"
+
+ORIG_FILE="gosa_${GOSA_VER}.orig.tar.gz"
+
+if [ "$NO_SVN" = "use" ]
+then
+	# Export from svn...
+	BNAME=$(basename $BRANCH)
+	[ -d "gosa-${BNAME}" ] && rm -rf gosa-$BNAME
+	echo "Exporting current GOsa (rev: ${BRANCH_REV}) from '${BRANCH}'..."
+	svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-core gosa-${BNAME} > /dev/null
+	svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-si gosa-si-${BNAME} > /dev/null
+	svn export -r "${BRANCH_REV}" https://oss.gonicus.de/repositories/gosa/${BRANCH}/gosa-plugins gosa-plugins-${BNAME} > /dev/null
+
+        if [ "$GOTO" = "use" ]
+        then
+		echo "Exporting current GOto (rev: ${GOTO_BRANCH_REV}) from '${BRANCH}'..."
+        	svn export -r "${GOTO_BRANCH_REV}" https://oss.gonicus.de/repositories/goto/${BRANCH}/ goto-${BNAME} > /dev/null
+	fi
+else
+        # Export from local checkout...
+        echo "Exporting current GOsa (rev: ${BRANCH_REV}) from localcheckout '${BRANCH}'..."
+	BNAME=$(basename $BRANCH)
+	cp -r gosa-core gosa-${GOSA_VER}
+	mv gosa-si gosa-si-${GOSA_VER}
+	mv gosa-plugins gosa-plugins-${BNAME}
+
+        if [ "$GOTO" = "use" ]
+        then
+		echo "Exporting current GOto (rev: ${GOTO_BRANCH_REV}) from localcheckout '${BRANCH}'..."
+        	BNAME=$(basename $BRANCH)
+		mv goto goto-${BNAME}
+	fi
+fi
+
+if [ "$NO_SVN" = "use" ]
+then
+        VERSION=$(cat "gosa-${BNAME}/debian/changelog" | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+fi
+
+GOSA_DIR="gosa-${GOSA_VER}"
+GOSA_SI_DIR="gosa-si-${GOSA_VER}"
+GOTO_DIR="goto-${BNAME}"
+
+if [ "$NO_SVN" = "use" ]
+then
+	if [ "$BNAME" != "$GOSA_VER" ]
+	then
+		rm -rf "gosa-${GOSA_VER}"
+	fi
+fi
+
+if [ "$NO_SVN" = "use" ]
+then
+	if [ "$BNAME" != "$GOSA_VER" ]
+	then
+		mv "gosa-${BNAME}" "gosa-${GOSA_VER}"
+		mv "gosa-si-${BNAME}" "gosa-si-${GOSA_VER}"
+	fi
+fi
+
+echo "cleaning svn entries from sources"
+find ${GOSA_DIR} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1
+find ${GOSA_SI_DIR} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1
+find gosa-plugins-${BNAME} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1
+
+if [ "$GOTO" = "use" ]
+then
+	find goto-${BNAME} -type d -name ".svn" -exec rm -rf {} \; >/dev/null 2>&1
+fi
+
+echo "Creating original sources 'gosa-${GOSA_VER}'..."
+tar -c --exclude "${GOSA_DIR}"/debian -f "gosa_${GOSA_VER}.orig.tar" "${GOSA_DIR}"
+tar -c --exclude "${GOSA_SI_DIR}"/debian -f "gosa-si_${GOSA_VER}.orig.tar" "${GOSA_SI_DIR}"
+
+echo "Compressing sources..."
+gzip -f -9 "gosa_${GOSA_VER}.orig.tar"
+gzip -f -9 "gosa-si_${GOSA_VER}.orig.tar"
+
+export OVERRIDE_VERSION="$GOSA_VER"
+if [ -z "$MAKE_PLUGINS" ]; then
+	MAKE_PLUGINS=$(ls -1 gosa-plugins-${BNAME}/*/plugin.dsc | sed 's/^.*\/\([^\/]*\)\/plugin.dsc$/\1/')
+	for i in $NOT_RELEASED; do
+		MAKE_PLUGINS=$(echo -n $MAKE_PLUGINS | sed "s/$i//")
+	done
+fi
+
+if [ "TARGET_RELEASE" == "etch" ]; then
+  NOBREAKS="--no-break"
+fi
+
+for plugin in $MAKE_PLUGINS; do
+
+	GOSA_PLUG_DIR="gosa-plugin-$plugin-${GOSA_VER}"
+
+	echo "gosa plugin dir" $GOSA_PLUG_DIR
+
+	mv "gosa-plugins-${BNAME}/$plugin" .
+
+	echo "Debianizing plugin $plugin"
+	yes | dh-make-gosa $NOBREAKS --section $SECTION $plugin
+	rm -rf "$plugin"
+
+	echo "Packing original sources 'gosa-plugin-$plugin-${GOSA_VER}'..."
+	tar -c --exclude "gosa-plugin-${plugin}-${GOSA_VER}/debian" -f "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar" "${GOSA_PLUG_DIR}"
+
+	echo "Compressing sources..."
+	gzip -f -9 "gosa-plugin-${plugin}_${GOSA_VER}.orig.tar"
+done
+
+rm -rf gosa-plugins-${BNAME}
+
+if [ "$GOTO" = "use" ]
+then
+        MAKE_GOTO=$(ls -1 goto-${BNAME}/)
+
+        for i in $GOTO_NOT_RELEASED; do
+                MAKE_GOTO=$(echo -n $MAKE_GOTO | sed "s/$i//")
+        done
+
+        for goto in $MAKE_GOTO; do
+
+                mv "goto-${BNAME}/$goto" .
+
+                echo "Packing original sources '$goto'..."
+                GOTO_VERSION=$(cat $goto/debian/changelog | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+
+                if [ "$GOTO_VER" = "" ]
+                then
+			tar -c --exclude "$goto/debian" -f "${goto}_${GOTO_VERSION}.orig.tar" $goto
+                        echo "Compressing sources..."
+                        gzip -f -9 "${goto}_${GOTO_VERSION}.orig.tar"
+                else
+			tar -c --exclude "$goto/debian" -f "${goto}_${GOTO_VERSION}${GOTO_VER}.orig.tar" $goto
+
+			echo "Compressing svn sources..."
+			gzip -f -9 "${goto}_${GOTO_VERSION}${GOTO_VER}.orig.tar"
+
+			echo "Adapting version in $goto"
+			(cd "$goto"; echo | debchange -v "${GOTO_VERSION}${GOTO_VER}-1${TARGET_RELEASE}1" -D "$TARGET_RELEASE" "$RELEASE_REASON")
+		fi
+
+        done
+
+        rm -rf goto-${BNAME}
+fi
+
+echo "Deploying patches..."
+for patch in $(find patches -type f | grep -v .svn); do
+
+	if echo $patch | grep -q gosa-plugin; then
+		plugin=$(echo $patch | sed 's/^.*gosa-plugin-\([^-]*\).*$/\1/g')
+		echo "* gosa-plugin-$plugin patch: $patch"
+		[ -d "gosa-plugin-${plugin}-${GOSA_VER}/debian/patches" ] || mkdir -p "gosa-plugin-${plugin}-${GOSA_VER}/debian/patches"
+		cp "$patch" gosa-plugin-${plugin}-${GOSA_VER}/debian/patches
+	else
+		echo "* gosa-core patch: $patch"
+		[ -d "${GOSA_DIR}/debian/patches" ] && mkdir -p "${GOSA_DIR}/debian/patches"
+		cp "$patch" ${GOSA_DIR}/debian/patches
+	fi
+done
+
+# Put section in GOsa_DIR
+sed -i "s#^Section: web#Section: $SECTION#g" ${GOSA_DIR}/debian/control
+sed -i "s#^Section: utils#Section: $SI_SECTION#g" ${GOSA_SI_DIR}/debian/control
+
+for plugin in $MAKE_PLUGINS; do
+	GOSA_PLUGIN_DIRS="$GOSA_PLUGIN_DIRS gosa-plugin-$plugin-${GOSA_VER}"
+done
+
+if [ "$GOTO" = "use" ]
+then
+	for goto in $MAKE_GOTO; do
+        	GOTO_DIRS="$GOTO_DIRS $goto"
+	done
+fi
+
+for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
+	echo "Adapting version in $dir"
+	if [ "$TARGET_RELEASE" == "unstable" ]; then
+		(cd "$dir"; echo | debchange -v "${GOSA_VER}" "$RELEASE_REASON" >/dev/null 2>&1)
+	else
+		(cd "$dir"; echo | debchange -v "${GOSA_VER}-1${TARGET_RELEASE}1" -D "$TARGET_RELEASE" "$RELEASE_REASON" >/dev/null 2>&1)
+	fi
+	[ -d $dir/debian/patches ] || continue
+	echo "Creating patch list for $dir"
+	ls -1 $dir/debian/patches | grep -v 00list | sed 's%^.*/%%g' > $dir/debian/patches/00list
+done
+
+# Update revision
+sed -i "s/^\$svn_revision = .*$/\$svn_revision = '\$Revision: $BRANCH_REV \$';/g" $GOSA_DIR/include/functions.inc
+
+if [ "$1" = "-s" ]
+then
+	echo "Creating debian sources..."
+	for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
+		dpkg-source -b "$dir"
+	done
+
+        if [ "$GOTO" = "use" ]
+        then
+	        echo "Creating GOto sources..."
+        	for dir in $GOTO_DIRS; do
+                	dpkg-source -b "$dir"
+        	done
+	fi
+else
+	echo "Creating debian packages..."
+
+	for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
+	if [ "$PBUILDER" = "use" ]
+	then
+		echo "using pbuilder to build gosa gosa-si gosa-plugins"
+		(cd "$dir"; pdebuild --debbuildopts -sa; debsign)
+	else
+		(cd "$dir"; dpkg-buildpackage -k$DEBSIGN_KEYID -rfakeroot -sa)
+	fi
+	done
+
+        if [ "$GOTO" = "use" ]
+        then
+	        echo "Creating GOto debian packages..."
+        	for dir in $GOTO_DIRS; do
+	        if [ "$PBUILDER" = "use" ]
+        	then
+			echo "using pbuilder to build goto debian packages"
+                	(cd "$dir"; pdebuild --debbuildopts -sa; debsign -k$DEBSIGN_KEYID)
+		else
+                	(cd "$dir"; dpkg-buildpackage -k$DEBSIGN_KEYID -rfakeroot -sa)
+		fi
+	        done
+	fi
+fi
+
+echo "Removing gosa snapshot..."
+if [ -z "$DEBIAN_PKG" ]
+then
+	if [ "$NO_SVN" = "use" ]
+	then
+		for dir in $GOSA_DIR; do
+        	rm -rf "$dir"
+		done
+	fi
+else
+	for dir in $GOSA_DIR $GOSA_SI_DIR $GOSA_PLUGIN_DIRS; do
+	rm -rf "$dir"
+	done
+
+        if [ "$GOTO" = "use" ]
+        then
+	        for dir in $GOTO_DIRs; do
+        	rm -rf "$dir"
+        	done
+	fi
+fi
+
+
diff --git a/gosa-core/contrib/openldap/gofax.ldif b/gosa-core/contrib/openldap/gofax.ldif
new file mode 100644
index 0000000..727a3b7
--- /dev/null
+++ b/gosa-core/contrib/openldap/gofax.ldif
@@ -0,0 +1,59 @@
+dn: cn={9}gofax
+objectClass: olcSchemaConfig
+cn: {9}gofax
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.7.1 NAME 'goFaxDeliveryMode' DES
+ C 'goFax delivery mode is defined here' EQUALITY caseExactIA5Match SUBSTR cas
+ eExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.7.2 NAME 'goFaxPrinter' DESC 'de
+ fines which printer is used to print a fax' EQUALITY caseExactIA5Match SUBSTR
+  caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALU
+ E )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.7.3 NAME 'goFaxDivertNumber' DES
+ C 'for fax diversion services' SYNTAX 1.3.6.1.4.1.1466.115.121.1.22 SINGLE-VA
+ LUE )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.7.4 NAME 'goFaxLanguage' DESC 'p
+ referred language for the users goFax entry' EQUALITY caseExactIA5Match SUBST
+ R caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VAL
+ UE )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.7.5 NAME 'goFaxFormat' DESC 'def
+ ines the fileformat for mailattachments' EQUALITY caseExactIA5Match SUBSTR ca
+ seExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.7.6 NAME 'goFaxRBlocklist' DESC 
+ 'defines faxnumbers the user is not allowed to get fax from' EQUALITY caseExa
+ ctIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.7.8 NAME 'goFaxSBlocklist' DESC 
+ 'defines faxnumbers the user is not allowed to fax to' EQUALITY caseExactIA5M
+ atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.7.7 NAME 'goFaxRBlockgroups' DES
+ C 'defines groups of receive blocklists the user belongs to' EQUALITY caseExa
+ ctIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121
+ .1.26 )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.7.9 NAME 'goFaxSBlockgroups' DES
+ C 'defines groups of sender blocklists the user belongs to' EQUALITY caseExac
+ tIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.26 )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.7.10 NAME 'goFaxIsEnabled' DESC 
+ 'This account is enabled or not' EQUALITY caseExactIA5Match SUBSTR caseExactI
+ A5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.7.11 NAME 'facsimileAlternateTe
+ lephoneNumber' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstrings
+ Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.1.11 NAME 'goFaxAccount' DESC 'go
+ Fax Account objectclass (v1.0.4)' SUP top AUXILIARY MUST ( goFaxDeliveryMode 
+ $ facsimileTelephoneNumber $ uid $ goFaxIsEnabled ) MAY ( goFaxPrinter $ goFa
+ xDivertNumber $ goFaxLanguage $ goFaxFormat $ goFaxRBlocklist $ goFaxRBlockgr
+ oups $ goFaxSBlocklist $ goFaxSBlockgroups $ mail $ facsimileAlternateTelepho
+ neNumber ) )
+olcObjectClasses: {1}( 1.3.6.1.4.1.10098.1.2.1.12 NAME 'goFaxSBlock' DESC 'goF
+ ax send blocklist groups (v1.0.4)' STRUCTURAL MUST cn MAY ( goFaxSBlocklist $
+  description ) )
+olcObjectClasses: {2}( 1.3.6.1.4.1.10098.1.2.1.13 NAME 'goFaxRBlock' DESC 'goF
+ ax receive blocklist groups (v1.0.4)' STRUCTURAL MUST cn MAY ( goFaxRBlocklis
+ t $ description ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbaf77bc-f065-102e-9609-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/gofax.schema b/gosa-core/contrib/openldap/gofax.schema
new file mode 100644
index 0000000..b949016
--- /dev/null
+++ b/gosa-core/contrib/openldap/gofax.schema
@@ -0,0 +1,95 @@
+## 
+## Gonicus Attribute and Objectclass Definitions for GOfax
+##
+## Version: 030403
+##
+##	Maintained by:	Lars Scheiter (scheiter at GONICUS.de)
+##
+
+# Attributes 
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.1 NAME 'goFaxDeliveryMode'
+	DESC 'goFax delivery mode is defined here'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.2 NAME 'goFaxPrinter'
+	DESC 'defines which printer is used to print a fax'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.3 NAME 'goFaxDivertNumber'
+	DESC 'for fax diversion services'
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.22
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.4 NAME 'goFaxLanguage'
+	DESC 'preferred language for the users goFax entry'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.5 NAME 'goFaxFormat'
+	DESC 'defines the fileformat for mailattachments'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.6 NAME 'goFaxRBlocklist'
+	DESC 'defines faxnumbers the user is not allowed to get fax from'
+	EQUALITY caseExactIA5Match 
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.8 NAME 'goFaxSBlocklist'
+	DESC 'defines faxnumbers the user is not allowed to fax to'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.7 NAME 'goFaxRBlockgroups'
+	DESC 'defines groups of receive blocklists the user belongs to'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.9 NAME 'goFaxSBlockgroups'
+	DESC 'defines groups of sender blocklists the user belongs to'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.10 NAME 'goFaxIsEnabled'
+	DESC 'This account is enabled or not'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.7.11 NAME 'facsimileAlternateTelephoneNumber'
+	EQUALITY telephoneNumberMatch
+    SUBSTR telephoneNumberSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
+
+# objectclass 
+objectclass (1.3.6.1.4.1.10098.1.2.1.11 NAME 'goFaxAccount' SUP top AUXILIARY
+	DESC 'goFax Account objectclass (v1.0.4)'
+	MUST ( goFaxDeliveryMode $ facsimileTelephoneNumber $ uid $ goFaxIsEnabled )
+	MAY ( goFaxPrinter $ goFaxDivertNumber $ goFaxLanguage $ goFaxFormat $ goFaxRBlocklist $ 
+	      goFaxRBlockgroups $ goFaxSBlocklist $ goFaxSBlockgroups $ mail $
+	      facsimileAlternateTelephoneNumber ))
+
+objectclass (1.3.6.1.4.1.10098.1.2.1.12 NAME 'goFaxSBlock'
+	DESC 'goFax send blocklist groups (v1.0.4)'
+	MUST ( cn )
+	MAY ( goFaxSBlocklist $ description ))
+
+objectclass (1.3.6.1.4.1.10098.1.2.1.13 NAME 'goFaxRBlock'
+	DESC 'goFax receive blocklist groups (v1.0.4)'
+	MUST ( cn )
+	MAY ( goFaxRBlocklist $ description ))
+
diff --git a/gosa-core/contrib/openldap/gofon.ldif b/gosa-core/contrib/openldap/gofon.ldif
new file mode 100644
index 0000000..88741c9
--- /dev/null
+++ b/gosa-core/contrib/openldap/gofon.ldif
@@ -0,0 +1,198 @@
+dn: cn={8}gofon
+objectClass: olcSchemaConfig
+cn: {8}gofon
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.13.1 NAME 'goFonDeliveryMode' DE
+ SC 'GOFon delivery mode is defined here' EQUALITY caseExactIA5Match SUBSTR ca
+ seExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.13.2 NAME 'goFonForwarding' DESC
+  'defines which phone numbers get the next call' EQUALITY caseExactIA5Match S
+ UBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.13.3 NAME 'goFonFormat' DESC 'de
+ fines voicemail delivery format' EQUALITY caseExactIA5Match SUBSTR caseExactI
+ A5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.13.4 NAME 'goFonHardware' DESC '
+ defines voicemail delivery format' EQUALITY caseExactIA5Match SUBSTR caseExac
+ tIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.13.5 NAME 'goFonPIN' DESC 'defin
+ es voicemail delivery format' EQUALITY caseExactIA5Match SUBSTR caseExactIA5S
+ ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.13.6 NAME 'goFonType' DESC 'sets
+  the sip.conf type parameter' EQUALITY caseExactIA5Match SUBSTR caseExactIA5S
+ ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.13.7 NAME 'goFonDmtfMode' DESC '
+ sets the sip.conf dmtfmode parameter' EQUALITY caseExactIA5Match SUBSTR caseE
+ xactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.13.8 NAME 'goFonHost' DESC 'sets
+  the sip.conf host parameter' EQUALITY caseExactIA5Match SUBSTR caseExactIA5S
+ ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.13.9 NAME 'goFonDefaultIP' DESC 
+ 'sets the sip.conf defaultip parameter' EQUALITY caseExactIA5Match SUBSTR cas
+ eExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.13.10 NAME 'goFonQualify' DESC '
+ sets the sip.conf qualify parameter' EQUALITY caseExactIA5Match SUBSTR caseEx
+ actIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.13.11 NAME 'goFonAuth' DESC 'se
+ ts the sip.conf auth parameter' EQUALITY caseExactMatch SUBSTR caseExactSubst
+ ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} SINGLE-VALUE )
+olcAttributeTypes: {11}( 1.3.6.1.4.1.10098.1.1.13.12 NAME 'goFonSecret' DESC '
+ sets the sip.conf secret parameter' EQUALITY caseExactIA5Match SUBSTR caseExa
+ ctIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {12}( 1.3.6.1.4.1.10098.1.1.13.13 NAME 'goFonInkeys' DESC '
+ sets the sip.conf inkeys parameter' EQUALITY caseExactIA5Match SUBSTR caseExa
+ ctIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {13}( 1.3.6.1.4.1.10098.1.1.13.14 NAME 'goFonOutkey' DESC '
+ sets the sip.conf outkey parameter' EQUALITY caseExactIA5Match SUBSTR caseExa
+ ctIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {14}( 1.3.6.1.4.1.10098.1.1.13.15 NAME 'goFonTrunk' DESC 's
+ ets the sip.conf trunk parameter' EQUALITY caseExactIA5Match SUBSTR caseExact
+ IA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {15}( 1.3.6.1.4.1.10098.1.1.13.16 NAME 'goFonAccountCode' D
+ ESC 'sets the sip.conf accountcode parameter' EQUALITY caseExactIA5Match SUBS
+ TR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VA
+ LUE )
+olcAttributeTypes: {16}( 1.3.6.1.4.1.10098.1.1.13.17 NAME 'goFonMSN' DESC 'set
+ s the sip.conf msn parameter' EQUALITY telephoneNumberMatch SUBSTR telephoneN
+ umberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} SINGLE-VALUE )
+olcAttributeTypes: {17}( 1.3.6.1.4.1.10098.1.1.13.18 NAME 'goFonPermit' DESC '
+ sets the sip.conf permit parameter' EQUALITY caseExactIA5Match SUBSTR caseExa
+ ctIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {18}( 1.3.6.1.4.1.10098.1.1.13.19 NAME 'goFonDeny' DESC 'se
+ ts the sip.conf deny parameter' EQUALITY caseExactIA5Match SUBSTR caseExactIA
+ 5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {19}( 1.3.6.1.4.1.10098.1.1.13.20 NAME 'goFonMacroVisible' 
+ DESC 'Triggers if the macro is visible for users' EQUALITY caseExactIA5Match 
+ SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {20}( 1.3.6.1.4.1.10098.1.1.13.21 NAME 'goFonMacroContent' 
+ DESC 'Holds the macro' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substrin
+ gsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {21}( 1.3.6.1.4.1.10098.1.1.13.22 NAME 'goFonMacroParameter
+ ' DESC 'Holds the macro parameter definitions' EQUALITY caseExactIA5Match SUB
+ STR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {22}( 1.3.6.1.4.1.10098.1.1.13.23 NAME 'goFonMacro' DESC 'H
+ olds the macro parameter definitions' EQUALITY caseExactMatch SUBSTR caseExac
+ tSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {23}( 1.3.6.1.4.1.10098.1.1.13.24 NAME 'goFonTimeOut' DESC 
+ 'Holds the queue goFonTimeOut definitions' EQUALITY integerMatch SYNTAX 1.3.6
+ .1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {24}( 1.3.6.1.4.1.10098.1.1.13.25 NAME 'goFonMaxLen' DESC '
+ Holds the queue goFonMaxLen definitions' EQUALITY integerMatch SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {25}( 1.3.6.1.4.1.10098.1.1.13.26 NAME 'goFonAnnounceFreque
+ ncy' DESC 'Holds the queue goFonAnnounceFrequency definitions' EQUALITY integ
+ erMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {26}( 1.3.6.1.4.1.10098.1.1.13.27 NAME 'goFonDialOption' DE
+ SC 'Holds the queue goFonDialOption definitions' EQUALITY caseExactMatch SUBS
+ TR caseExactSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-V
+ ALUE )
+olcAttributeTypes: {27}( 1.3.6.1.4.1.10098.1.1.13.28 NAME 'goFonMusiconHold' D
+ ESC 'Holds the queue goFonMusiconHold definitions' EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SING
+ LE-VALUE )
+olcAttributeTypes: {28}( 1.3.6.1.4.1.10098.1.1.13.29 NAME 'goFonWelcomeMusic' 
+ DESC 'Holds the queue goFonWelcomeMusic definitions' EQUALITY caseExactIA5Mat
+ ch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SI
+ NGLE-VALUE )
+olcAttributeTypes: {29}( 1.3.6.1.4.1.10098.1.1.13.30 NAME 'goFonQueueReportHol
+ d' DESC 'Holds the queue goFonQueueReportHold definitions' EQUALITY caseExact
+ IA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
+ .26 SINGLE-VALUE )
+olcAttributeTypes: {30}( 1.3.6.1.4.1.10098.1.1.13.31 NAME 'goFonQueueYouAreNex
+ t' DESC 'Holds the queue goFonQueueYouAreNext definitions' EQUALITY caseExact
+ IA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
+ .26 SINGLE-VALUE )
+olcAttributeTypes: {31}( 1.3.6.1.4.1.10098.1.1.13.32 NAME 'goFonQueueThereAre'
+  DESC 'Holds the queue goFonQueueThereAre definitions' EQUALITY caseExactIA5M
+ atch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ SINGLE-VALUE )
+olcAttributeTypes: {32}( 1.3.6.1.4.1.10098.1.1.13.33 NAME 'goFonQueueCallsWait
+ ing' DESC 'Holds the queue goFonQueueCallsWaiting definitions' EQUALITY caseE
+ xactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.1
+ 21.1.26 SINGLE-VALUE )
+olcAttributeTypes: {33}( 1.3.6.1.4.1.10098.1.1.13.34 NAME 'goFonQueueThankYou'
+  DESC 'Holds the queue goFonQueueThankYou definitions' EQUALITY caseExactIA5M
+ atch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ SINGLE-VALUE )
+olcAttributeTypes: {34}( 1.3.6.1.4.1.10098.1.1.13.35 NAME 'goFonQueueMinutes' 
+ DESC 'Holds the queue goFonQueueMinutes definitions' EQUALITY caseExactIA5Mat
+ ch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SI
+ NGLE-VALUE )
+olcAttributeTypes: {35}( 1.3.6.1.4.1.10098.1.1.13.36 NAME 'goFonQueueSeconds' 
+ DESC 'Holds the queue goFonQueueSeconds definitions' EQUALITY caseExactIA5Mat
+ ch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SI
+ NGLE-VALUE )
+olcAttributeTypes: {36}( 1.3.6.1.4.1.10098.1.1.13.37 NAME 'goFonQueueLanguage'
+  DESC 'Holds the queue goFonLanguage definitions' EQUALITY caseExactIA5Match 
+ SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {37}( 1.3.6.1.4.1.10098.1.1.13.38 NAME 'goFonQueueStrategy'
+  DESC 'Holds the queue goFonStrategy definitions' EQUALITY caseExactIA5Match 
+ SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {38}( 1.3.6.1.4.1.10098.1.1.13.39 NAME 'goFonQueueAnnounceH
+ oldtime' DESC 'Holds the queue goFonAnnounceHoldtime definitions' EQUALITY ca
+ seExactMatch SUBSTR caseExactSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.15{4} SINGLE-VALUE )
+olcAttributeTypes: {39}( 1.3.6.1.4.1.10098.1.1.13.40 NAME 'goFonQueueAnnounce'
+  DESC 'Holds the queue goFonAnnounce definitions' EQUALITY caseExactIA5Match 
+ SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {40}( 1.3.6.1.4.1.10098.1.1.13.41 NAME 'goFonQueueRetry' DE
+ SC 'Holds the queue goFonRetry definitions' EQUALITY integerMatch SYNTAX 1.3.
+ 6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {41}( 1.3.6.1.4.1.10098.1.1.13.42 NAME 'goFonQueueLessThan'
+  DESC 'Holds the queue goFonQueueLessThan definitions' EQUALITY caseExactIA5M
+ atch SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ SINGLE-VALUE )
+olcAttributeTypes: {42}( 1.3.6.1.4.1.10098.1.1.13.43 NAME 'goFonConferenceOpti
+ on' DESC 'Holds the queue goFonConferenceOptions definitions' EQUALITY caseEx
+ actMatch SUBSTR caseExactSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+ {16} SINGLE-VALUE )
+olcAttributeTypes: {43}( 1.3.6.1.4.1.10098.1.1.13.44 NAME 'goFonConferenceTime
+ Out' DESC 'Holds the queue goFonConferenceTimeOut definitions' EQUALITY integ
+ erMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {44}( 1.3.6.1.4.1.10098.1.1.13.45 NAME 'goFonConferenceOwne
+ r' DESC 'Holds the queue goFonConferenceOwner definitions' EQUALITY caseIgnor
+ eMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
+ 256} SINGLE-VALUE )
+olcAttributeTypes: {45}( 1.3.6.1.4.1.10098.1.1.13.46 NAME 'goFonVoicemailPIN' 
+ DESC 'defines voicemail delivery format' EQUALITY caseExactIA5Match SUBSTR ca
+ seExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {46}( 1.3.6.1.4.1.10098.1.1.13.47 NAME 'goFonHomeServer' DE
+ SC 'defines voicemail delivery format' EQUALITY caseExactMatch SUBSTR caseExa
+ ctSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.3.11 NAME 'goFonAccount' DESC 'GO
+ Fon Account objectclass (v1.0)' SUP top AUXILIARY MUST ( goFonDeliveryMode $ 
+ telephoneNumber $ uid ) MAY ( goFonFormat $ goFonForwarding $ goFonHardware $
+  goFonPIN $ goFonVoicemailPIN $ goFonMacro $ goFonHomeServer ) )
+olcObjectClasses: {1}( 1.3.6.1.4.1.10098.1.2.3.12 NAME 'goFonHardware' DESC 'd
+ efines a telephone (v1.0)' SUP top STRUCTURAL MUST ( cn $ macAddress $ ipHost
+ Number ) MAY ( description $ goFonType $ goFonDmtfMode $ goFonHost $ goFonDef
+ aultIP $ goFonQualify $ goFonAuth $ goFonSecret $ goFonInkeys $ goFonOutkey $
+  goFonTrunk $ goFonAccountCode $ goFonMSN $ goFonPermit $ goFonDeny ) )
+olcObjectClasses: {2}( 1.3.6.1.4.1.10098.1.2.3.13 NAME 'goFonPickupGroup' DESC
+  'Additive for posixGroups (v1.0)' SUP top AUXILIARY MUST ( cn $ gidNumber ) 
+ )
+olcObjectClasses: {3}( 1.3.6.1.4.1.10098.1.2.3.14 NAME 'goFonMacro' DESC 'Macr
+ o definitions for asterisk machines (v1.0)' SUP top STRUCTURAL MUST cn MAY ( 
+ goFonMacroVisible $ displayName $ goFonMacroContent $ description $ goFonMacr
+ oParameter ) )
+olcObjectClasses: {4}( 1.3.6.1.4.1.10098.1.2.3.15 NAME 'goFonQueue' DESC 'Queu
+ e definitions for asterisk machines (v1.0)' SUP top AUXILIARY MUST cn MAY ( g
+ oFonTimeOut $ goFonMaxLen $ goFonAnnounceFrequency $ goFonDialOption $ goFonM
+ usiconHold $ goFonWelcomeMusic $ goFonQueueReportHold $ goFonQueueYouAreNext 
+ $ goFonQueueThereAre $ goFonQueueCallsWaiting $ goFonQueueThankYou $ goFonQue
+ ueMinutes $ goFonQueueSeconds $ telephoneNumber $ goFonQueueLanguage $ goFonQ
+ ueueStrategy $ goFonQueueAnnounceHoldtime $ goFonQueueAnnounce $ goFonQueueRe
+ try $ goFonQueueLessThan $ goFonHomeServer ) )
+olcObjectClasses: {5}( 1.3.6.1.4.1.10098.1.2.3.16 NAME 'goFonConference' DESC 
+ 'Conference definitions for asterisk machines (v1.0)' SUP top STRUCTURAL MUST
+  cn MAY ( description $ goFonConferenceOption $ goFonConferenceTimeout $ goFo
+ nPIN $ goFonConferenceOwner $ telephoneNumber $ goFonHomeServer ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbaf6ede-f065-102e-9608-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/gofon.schema b/gosa-core/contrib/openldap/gofon.schema
new file mode 100644
index 0000000..b16a7fe
--- /dev/null
+++ b/gosa-core/contrib/openldap/gofon.schema
@@ -0,0 +1,324 @@
+## 
+## Gonicus Attribute and Objectclass Definitions for GOfon
+##
+##	Maintained by:	Cajus Pollmeier <pollmeier at gonicus.de>
+##
+
+# Attributes 
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.1 NAME 'goFonDeliveryMode'
+	DESC 'GOFon delivery mode is defined here'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.2 NAME 'goFonForwarding'
+	DESC 'defines which phone numbers get the next call'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.3 NAME 'goFonFormat'
+	DESC 'defines voicemail delivery format'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.4 NAME 'goFonHardware'
+	DESC 'defines voicemail delivery format'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.5 NAME 'goFonPIN'
+	DESC 'defines voicemail delivery format'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.6 NAME 'goFonType'
+	DESC 'sets the sip.conf type parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.7 NAME 'goFonDmtfMode'
+	DESC 'sets the sip.conf dmtfmode parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.8 NAME 'goFonHost'
+	DESC 'sets the sip.conf host parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.9 NAME 'goFonDefaultIP'
+	DESC 'sets the sip.conf defaultip parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.10 NAME 'goFonQualify'
+	DESC 'sets the sip.conf qualify parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.11 NAME 'goFonAuth'
+	DESC 'sets the sip.conf auth parameter'
+	EQUALITY caseExactMatch
+	SUBSTR caseExactSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.12 NAME 'goFonSecret'
+	DESC 'sets the sip.conf secret parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.13 NAME 'goFonInkeys'
+	DESC 'sets the sip.conf inkeys parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.14 NAME 'goFonOutkey'
+	DESC 'sets the sip.conf outkey parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.15 NAME 'goFonTrunk'
+	DESC 'sets the sip.conf trunk parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.16 NAME 'goFonAccountCode'
+	DESC 'sets the sip.conf accountcode parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.17 NAME 'goFonMSN'
+	DESC 'sets the sip.conf msn parameter'
+	EQUALITY telephoneNumberMatch
+	SUBSTR telephoneNumberSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.18 NAME 'goFonPermit'
+	DESC 'sets the sip.conf permit parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.19 NAME 'goFonDeny'
+	DESC 'sets the sip.conf deny parameter'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.20 NAME 'goFonMacroVisible'
+	DESC 'Triggers if the macro is visible for users'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.21 NAME 'goFonMacroContent'
+	DESC 'Holds the macro'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.22 NAME 'goFonMacroParameter'
+	DESC 'Holds the macro parameter definitions'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.23 NAME 'goFonMacro'
+    DESC 'Holds the macro parameter definitions'
+    EQUALITY caseExactMatch
+    SUBSTR caseExactSubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.24 NAME 'goFonTimeOut'
+    DESC 'Holds the queue goFonTimeOut definitions'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.25 NAME 'goFonMaxLen'
+    DESC 'Holds the queue goFonMaxLen definitions'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.26 NAME 'goFonAnnounceFrequency'
+    DESC 'Holds the queue goFonAnnounceFrequency definitions'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.27 NAME 'goFonDialOption'
+    DESC 'Holds the queue goFonDialOption definitions'
+    EQUALITY caseExactMatch
+    SUBSTR caseExactSubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.28 NAME 'goFonMusiconHold'
+    DESC 'Holds the queue goFonMusiconHold definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.29 NAME 'goFonWelcomeMusic'
+    DESC 'Holds the queue goFonWelcomeMusic definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.30 NAME 'goFonQueueReportHold'
+    DESC 'Holds the queue goFonQueueReportHold definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.31 NAME 'goFonQueueYouAreNext'
+    DESC 'Holds the queue goFonQueueYouAreNext definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.32 NAME 'goFonQueueThereAre'
+    DESC 'Holds the queue goFonQueueThereAre definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.33 NAME 'goFonQueueCallsWaiting'
+    DESC 'Holds the queue goFonQueueCallsWaiting definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.34 NAME 'goFonQueueThankYou'
+    DESC 'Holds the queue goFonQueueThankYou definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.35 NAME 'goFonQueueMinutes'
+    DESC 'Holds the queue goFonQueueMinutes definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.36 NAME 'goFonQueueSeconds'
+    DESC 'Holds the queue goFonQueueSeconds definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.37 NAME 'goFonQueueLanguage'
+    DESC 'Holds the queue goFonLanguage definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.38 NAME 'goFonQueueStrategy'
+    DESC 'Holds the queue goFonStrategy definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.39 NAME 'goFonQueueAnnounceHoldtime'
+    DESC 'Holds the queue goFonAnnounceHoldtime definitions'
+    EQUALITY caseExactMatch
+    SUBSTR caseExactSubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.40 NAME 'goFonQueueAnnounce'
+    DESC 'Holds the queue goFonAnnounce definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.41 NAME 'goFonQueueRetry'
+    DESC 'Holds the queue goFonRetry definitions'
+	EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.42 NAME 'goFonQueueLessThan'
+    DESC 'Holds the queue goFonQueueLessThan definitions'
+    EQUALITY caseExactIA5Match
+    SUBSTR caseExactIA5SubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.43 NAME 'goFonConferenceOption'
+    DESC 'Holds the queue goFonConferenceOptions definitions'
+    EQUALITY caseExactMatch
+    SUBSTR caseExactSubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.44 NAME 'goFonConferenceTimeOut'
+    DESC 'Holds the queue goFonConferenceTimeOut definitions'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.45 NAME 'goFonConferenceOwner'
+    DESC 'Holds the queue goFonConferenceOwner definitions'
+	EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.46 NAME 'goFonVoicemailPIN'
+	DESC 'defines voicemail delivery format'
+	EQUALITY caseExactIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.13.47 NAME 'goFonHomeServer'
+	DESC 'defines voicemail delivery format'
+	EQUALITY caseExactMatch
+	SUBSTR caseExactSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+# objectclass 
+objectclass (1.3.6.1.4.1.10098.1.2.3.11 NAME 'goFonAccount' SUP top AUXILIARY
+	DESC 'GOFon Account objectclass (v1.0)'
+	MUST ( goFonDeliveryMode $ telephoneNumber $ uid )
+	MAY ( goFonFormat $ goFonForwarding $ goFonHardware $ goFonPIN $ goFonVoicemailPIN $ goFonMacro $ goFonHomeServer ))
+
+objectclass (1.3.6.1.4.1.10098.1.2.3.12 NAME 'goFonHardware' SUP top STRUCTURAL
+	DESC 'defines a telephone (v1.0)'
+	MUST ( cn $ macAddress $ ipHostNumber )
+	MAY (description $ goFonType $ goFonDmtfMode $ goFonHost $ goFonDefaultIP $
+		 goFonQualify $ goFonAuth $ goFonSecret $ goFonInkeys $ goFonOutkey $
+		 goFonTrunk $ goFonAccountCode $ goFonMSN $ goFonPermit $ goFonDeny ) )
+
+objectclass (1.3.6.1.4.1.10098.1.2.3.13 NAME 'goFonPickupGroup' SUP top AUXILIARY
+	DESC 'Additive for posixGroups (v1.0)'
+	MUST ( cn $ gidNumber ) )
+
+objectclass (1.3.6.1.4.1.10098.1.2.3.14 NAME 'goFonMacro' SUP top STRUCTURAL
+	DESC 'Macro definitions for asterisk machines (v1.0)'
+	MUST ( cn ) 
+	MAY ( goFonMacroVisible $ displayName $ goFonMacroContent $ description $
+		  goFonMacroParameter ))
+
+objectclass (1.3.6.1.4.1.10098.1.2.3.15 NAME 'goFonQueue' SUP top AUXILIARY
+	DESC 'Queue definitions for asterisk machines (v1.0)'
+	MUST ( cn ) 
+	MAY ( goFonTimeOut $ goFonMaxLen $ goFonAnnounceFrequency $ goFonDialOption $
+		  goFonMusiconHold $ goFonWelcomeMusic $ goFonQueueReportHold $
+		  goFonQueueYouAreNext $ goFonQueueThereAre $ goFonQueueCallsWaiting $
+		  goFonQueueThankYou $ goFonQueueMinutes $ goFonQueueSeconds $ telephoneNumber $
+		  goFonQueueLanguage $ goFonQueueStrategy $ goFonQueueAnnounceHoldtime $ goFonQueueAnnounce $
+		  goFonQueueRetry $ goFonQueueLessThan $ goFonHomeServer ))
+
+objectclass (1.3.6.1.4.1.10098.1.2.3.16 NAME 'goFonConference' SUP top STRUCTURAL
+	DESC 'Conference definitions for asterisk machines (v1.0)'
+	MUST ( cn ) 
+	MAY ( description $ goFonConferenceOption $ goFonConferenceTimeout $ goFonPIN $
+		  goFonConferenceOwner $ telephoneNumber $ goFonHomeServer))
+
diff --git a/gosa-core/contrib/openldap/gosa-samba3.ldif b/gosa-core/contrib/openldap/gosa-samba3.ldif
new file mode 100644
index 0000000..d7987b0
--- /dev/null
+++ b/gosa-core/contrib/openldap/gosa-samba3.ldif
@@ -0,0 +1,247 @@
+dn: cn={12}gosa-samba3
+objectClass: olcSchemaConfig
+cn: {12}gosa-samba3
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.12.1 NAME 'gosaSubtreeACL' DESC 
+ 'GOsa acl entry' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.12.2 NAME 'gosaUser' DESC 'GOsa 
+ user' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.
+ 1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.12.3 NAME 'gosaObject' DESC 'GOs
+ a object' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.
+ 3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.12.4 NAME 'gosaMailServer' DESC 
+ 'Specify users main mail server' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnor
+ eIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.12.5 NAME 'gosaMailQuota' DESC '
+ GOsa quota definitions' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Subst
+ ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.12.6 NAME 'gosaMailAlternateAddr
+ ess' DESC 'Additional mail addresses where the user is reachable' EQUALITY ca
+ seIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.
+ 115.121.1.26 )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.12.7 NAME 'gosaMailForwardingAdd
+ ress' DESC 'Addresses where to forward mail to' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.12.8 NAME 'gosaMailMaxSize' DESC
+  'Block mails bigger than this value' EQUALITY caseIgnoreIA5Match SUBSTR case
+ IgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.12.9 NAME 'gosaSpamSortLevel' DE
+ SC 'Spamassassins hits' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Subst
+ ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.12.10 NAME 'gosaSpamMailbox' DES
+ C 'Where to put spam' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Substri
+ ngsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.12.11 NAME 'gosaVacationMessage
+ ' DESC 'Text to display in case of vacation' EQUALITY caseIgnoreMatch SUBSTR 
+ caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {11}( 1.3.6.1.4.1.10098.1.1.12.12 NAME 'gosaMailDeliveryMod
+ e' DESC 'What to do with mails' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnore
+ IA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {12}( 1.3.6.1.4.1.10098.1.1.12.13 NAME 'gosaDefaultPrinter'
+  DESC 'Defines a default printer a user owns' EQUALITY caseIgnoreIA5Match SUB
+ STR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-
+ VALUE )
+olcAttributeTypes: {13}( 1.3.6.1.4.1.10098.1.1.12.14 NAME 'gosaDefaultLanguage
+ ' DESC 'Defines the default language for a user' EQUALITY caseIgnoreIA5Match 
+ SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SING
+ LE-VALUE )
+olcAttributeTypes: {14}( 1.3.6.1.4.1.10098.1.1.12.15 NAME 'gosaHostACL' DESC '
+ Defines the places where users can login' EQUALITY caseIgnoreIA5Match SUBSTR 
+ caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {15}( 1.3.6.1.4.1.10098.1.1.12.16 NAME 'gosaService' DESC '
+ Defines services a certain host can provide' EQUALITY caseIgnoreIA5Match SUBS
+ TR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {16}( 1.3.6.1.4.1.10098.1.1.12.17 NAME 'gosaProxyID' DESC '
+ Defines the proxy user id used, needed for some filters' EQUALITY caseIgnoreI
+ A5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
+ .26 )
+olcAttributeTypes: {17}( 1.3.6.1.4.1.10098.1.1.12.18 NAME 'gosaProxyAcctFlags'
+  DESC 'Proxy Account Flags' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5S
+ ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
+olcAttributeTypes: {18}( 1.3.6.1.4.1.10098.1.1.12.19 NAME 'gosaProxyWorkingSta
+ rt' DESC 'Specifies the beginning of work in minutes, relative to 00:00' EQUA
+ LITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.
+ 1.1466.115.121.1.26 )
+olcAttributeTypes: {19}( 1.3.6.1.4.1.10098.1.1.12.20 NAME 'gosaProxyWorkingSto
+ p' DESC 'Specifies the end of work in minutes, relative to 00:00' EQUALITY ca
+ seIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.
+ 115.121.1.26 )
+olcAttributeTypes: {20}( 1.3.6.1.4.1.10098.1.1.12.21 NAME 'gosaApplicationName
+ ' DESC 'Specifies the name of an application to be shown up on users desktop'
+  EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1
+ .1466.115.121.1.15 )
+olcAttributeTypes: {21}( 1.3.6.1.4.1.10098.1.1.12.22 NAME 'gosaApplicationExec
+ ute' DESC 'Specifies the executable path of an application' EQUALITY caseIgno
+ reMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  )
+olcAttributeTypes: {22}( 1.3.6.1.4.1.10098.1.1.12.23 NAME 'gosaApplicationFlag
+ s' DESC 'Specifies the application flags G(roup only), D(esktop), M(enu)' EQU
+ ALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4
+ .1.1466.115.121.1.26 )
+olcAttributeTypes: {23}( 1.3.6.1.4.1.10098.1.1.12.31 NAME 'gosaApplicationCate
+ gory' DESC 'Store application parameters' EQUALITY caseIgnoreMatch SUBSTR cas
+ eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {24}( 1.3.6.1.4.1.10098.1.1.12.24 NAME 'gosaApplicationIcon
+ ' DESC 'Keeps the application icon in png format' SYNTAX 1.3.6.1.4.1.1466.115
+ .121.1.28 )
+olcAttributeTypes: {25}( 1.3.6.1.4.1.10098.1.1.12.25 NAME 'gosaSharedFolderTar
+ get' DESC 'Keeps the target of cyrus shared folders' EQUALITY caseIgnoreIA5Ma
+ tch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ )
+olcAttributeTypes: {26}( 1.3.6.1.4.1.10098.1.1.12.26 NAME 'gosaMemberApplicati
+ on' DESC 'Like memberUid, just for applications' EQUALITY caseIgnoreMatch SUB
+ STR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {27}( 1.3.6.1.4.1.10098.1.1.12.27 NAME 'gosaApplicationPara
+ meter' DESC 'Store application parameters' EQUALITY caseIgnoreMatch SUBSTR ca
+ seIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {28}( 1.3.6.1.4.1.10098.1.1.12.28 NAME 'gosaProxyQuota' DES
+ C 'Specifies the amount of data a user may surf in a defined period of time' 
+ EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.
+ 1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {29}( 1.3.6.1.4.1.10098.1.1.12.29 NAME 'gosaProxyQuotaPerio
+ d' DESC 'Specifies period of time where the counter is been reseted' EQUALITY
+  caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.14
+ 66.115.121.1.26 )
+olcAttributeTypes: {30}( 1.3.6.1.4.1.10098.1.1.12.30 NAME 'gosaGroupObjects' D
+ ESC 'Takes a list of all object types that are in a gosaGroupOfNames' EQUALIT
+ Y caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {31}( 1.3.6.1.4.1.10098.1.1.12.32 NAME 'gosaApplicationMime
+ Type' DESC 'Takes a list of relevant mime-type|priority settings' EQUALITY ca
+ seIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.
+ 115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {32}( 1.3.6.1.4.1.10098.1.1.12.33 NAME 'gosaUnitTag' DESC '
+ Takes a list of relevant mime-type|priority settings' EQUALITY caseIgnoreIA5M
+ atch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+olcAttributeTypes: {33}( 1.3.6.1.4.1.10098.1.1.12.34 NAME 'gosaAclTemplate' DE
+ SC 'Takes ACL entries for gosaRoles' EQUALITY caseIgnoreIA5Match SUBSTR caseI
+ gnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {34}( 1.3.6.1.4.1.10098.1.1.12.35 NAME 'gosaAclEntry' DESC 
+ 'Takes ACL entries for gosaRoles' EQUALITY caseIgnoreIA5Match SUBSTR caseIgno
+ reIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {35}( 1.3.6.1.4.1.10098.1.1.12.36 NAME 'gosaSnapshotType' D
+ ESC 'Takes either undo or snapshot' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4
+ .1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {36}( 1.3.6.1.4.1.10098.1.1.12.37 NAME 'gosaSnapshotTimesta
+ mp' DESC 'Unix timestamp of snapshot' EQUALITY caseIgnoreMatch SUBSTR caseIgn
+ oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {37}( 1.3.6.1.4.1.10098.1.1.12.38 NAME 'gosaSnapshotDN' DES
+ C 'Original DN of saved object' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSub
+ stringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {38}( 1.3.6.1.4.1.10098.1.1.12.39 NAME 'gosaSnapshotData' D
+ ESC 'Original DN of saved object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-
+ VALUE )
+olcAttributeTypes: {39}( 1.3.6.1.4.1.10098.1.1.12.40 NAME 'gosaSetting' DESC '
+ Original DN of saved object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {40}( 1.3.6.1.4.1.10098.1.1.12.41 NAME 'gosaVacationStart' 
+ DESC 'Timestamp for enabling current vacation message' SYNTAX 1.3.6.1.4.1.146
+ 6.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {41}( 1.3.6.1.4.1.10098.1.1.12.42 NAME 'gosaVacationStop' D
+ ESC 'Timestamp for switching off current vacation message' SYNTAX 1.3.6.1.4.1
+ .1466.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {42}( 1.3.6.1.4.1.10098.1.1.12.43 NAME 'gosaApplicationPrio
+ rity' DESC 'Keeps the application icon in png format' SYNTAX 1.3.6.1.4.1.1466
+ .115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {43}( 1.3.6.1.4.1.10098.1.1.12.44 NAME 'gotoLastSystemLogin
+ ' DESC 'Timestamp for a Users last System Login' SYNTAX 1.3.6.1.4.1.1466.115.
+ 121.1.15 )
+olcAttributeTypes: {44}( 1.3.6.1.4.1.10098.1.1.12.45 NAME 'gotoLastSystem' DES
+ C 'The DN of the System where the Login was performed' EQUALITY distinguished
+ NameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
+olcAttributeTypes: {45}( 1.3.6.1.4.1.10098.1.1.12.46 NAME 'gosaLoginRestrictio
+ n' DESC 'Multivalue attribute to carry a number of allowed ips/subnets' SUP n
+ ame )
+olcAttributeTypes: {46}( 1.3.6.1.4.1.10098.1.1.6.2 NAME 'academicTitle' DESC '
+ Field to represent the academic title' EQUALITY caseIgnoreMatch SUBSTR caseIg
+ noreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {47}( 1.3.6.1.4.1.15305.2.1 NAME ( 'gender' 'sex' ) DESC 'G
+ ender: M for male, F for female' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4
+ .1.1466.115.121.1.26{1} SINGLE-VALUE )
+olcAttributeTypes: {48}( 1.3.6.1.4.1.15305.2.2 NAME ( 'dateOfBirth' 'dob' ) DE
+ SC 'Date of birth in ISO 8601 format' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.15{10} SINGLE-VALUE )
+olcAttributeTypes: {49}( 1.3.6.1.4.1.19414.2.1.651 NAME 'acl' EQUALITY caseIgn
+ oreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.1
+ 21.1.26{256} )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.1.19.1 NAME 'gosaObject' DESC 'Cl
+ ass for GOsa settings (v2.6.1)' SUP top AUXILIARY MUST gosaSubtreeACL )
+olcObjectClasses: {1}( 1.3.6.1.4.1.10098.1.2.1.19.2 NAME 'gosaLockEntry' DESC 
+ 'Class for GOsa locking (v2.6.1)' SUP top STRUCTURAL MUST ( gosaUser $ gosaOb
+ ject $ cn ) )
+olcObjectClasses: {2}( 1.3.6.1.4.1.10098.1.2.1.19.3 NAME 'gosaCacheEntry' DESC
+  'Class for GOsa caching (v2.6.1)' SUP top STRUCTURAL MUST cn MAY gosaUser )
+olcObjectClasses: {3}( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' DESC
+  'Class to mark Departments for GOsa (v2.6.1)' SUP top AUXILIARY MUST ( ou $ 
+ description ) MAY manager )
+olcObjectClasses: {4}( 1.3.6.1.4.1.10098.1.2.1.19.5 NAME 'gosaMailAccount' DES
+ C 'Class to mark MailAccounts for GOsa (v2.6.1)' SUP top AUXILIARY MUST ( mai
+ l $ gosaMailServer $ gosaMailDeliveryMode ) MAY ( gosaMailQuota $ gosaMailAlt
+ ernateAddress $ gosaMailForwardingAddress $ gosaMailMaxSize $ gosaSpamSortLev
+ el $ gosaSpamMailbox $ gosaVacationMessage $ gosaVacationStart $ gosaVacation
+ Stop $ gosaSharedFolderTarget $ acl ) )
+olcObjectClasses: {5}( 1.3.6.1.4.1.10098.1.2.1.19.6 NAME 'gosaAccount' DESC 'C
+ lass for GOsa Accounts (v2.6.6)' SUP top AUXILIARY MUST uid MAY ( sambaLMPass
+ word $ sambaNTPassword $ sambaPwdLastSet $ gosaDefaultPrinter $ gosaDefaultLa
+ nguage $ academicTitle $ personalTitle $ gosaHostACL $ dateOfBirth $ sambaBad
+ PasswordCount $ sambaBadPasswordTime $ gender $ gotoLastSystemLogin $ gotoLas
+ tSystem $ gosaLoginRestriction ) )
+olcObjectClasses: {6}( 1.3.6.1.4.1.10098.1.2.1.19.7 NAME 'gosaHost' DESC 'Clas
+ s for GOsa Hosts (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( description $ gosa
+ Service ) )
+olcObjectClasses: {7}( 1.3.6.1.4.1.10098.1.2.1.19.8 NAME 'gosaProxyAccount' DE
+ SC 'Class for GOsa Proxy settings (v2.6.1)' SUP top AUXILIARY MUST gosaProxyA
+ cctFlags MAY ( gosaProxyID $ gosaProxyWorkingStart $ gosaProxyWorkingStop $ g
+ osaProxyQuota $ gosaProxyQuotaPeriod ) )
+olcObjectClasses: {8}( 1.3.6.1.4.1.10098.1.2.1.19.9 NAME 'gosaApplication' DES
+ C 'Class for GOsa applications (v2.6.1)' SUP top STRUCTURAL MUST ( cn $ gosaA
+ pplicationExecute ) MAY ( gosaApplicationName $ gosaApplicationIcon $ gosaApp
+ licationFlags $ gosaApplicationMimeType $ gosaApplicationParameter $ gotoLogo
+ nScript $ description $ gosaApplicationCategory ) )
+olcObjectClasses: {9}( 1.3.6.1.4.1.10098.1.2.1.19.10 NAME 'gosaApplicationGrou
+ p' DESC 'Class for GOsa application groups (v2.6.1)' SUP top AUXILIARY MUST c
+ n MAY ( gosaMemberApplication $ gosaApplicationParameter ) )
+olcObjectClasses: {10}( 1.3.6.1.4.1.10098.1.2.1.19.11 NAME 'gosaUserTemplate' 
+ DESC 'Class for GOsa User Templates (v2.6.1)' SUP top AUXILIARY MUST cn )
+olcObjectClasses: {11}( 1.3.6.1.4.1.10098.1.2.1.19.12 NAME 'gosaGroupOfNames' 
+ DESC 'GOsa object grouping (v2.6.1)' SUP top STRUCTURAL MUST ( cn $ gosaGroup
+ Objects ) MAY ( member $ description ) )
+olcObjectClasses: {12}( 1.3.6.1.4.1.10098.1.2.1.19.13 NAME 'gosaWebdavAccount'
+  DESC 'GOsa webdav enabling account (v2.6.1)' SUP top AUXILIARY MUST ( cn $ u
+ id ) )
+olcObjectClasses: {13}( 1.3.6.1.4.1.10098.1.2.1.19.14 NAME 'gosaIntranetAccoun
+ t' DESC 'GOsa Inatrent enabling account (v2.6.1)' SUP top AUXILIARY MUST ( cn
+  $ uid ) MAY gosaDefaultLanguage )
+olcObjectClasses: {14}( 1.3.6.1.4.1.10098.1.2.1.19.15 NAME 'gosaAdministrative
+ Unit' DESC 'Marker for administrational units (v2.6.1)' SUP top AUXILIARY MUS
+ T gosaUnitTag )
+olcObjectClasses: {15}( 1.3.6.1.4.1.10098.1.2.1.19.16 NAME 'gosaAdministrative
+ UnitTag' DESC 'Marker for objects below administrational units (v2.6.1)' SUP 
+ top AUXILIARY MUST gosaUnitTag )
+olcObjectClasses: {16}( 1.3.6.1.4.1.10098.1.2.1.19.17 NAME 'gosaRole' DESC 'AC
+ L container to define roles (v2.6.1)' SUP top STRUCTURAL MUST ( gosaAclTempla
+ te $ cn ) MAY description )
+olcObjectClasses: {17}( 1.3.6.1.4.1.10098.1.2.1.19.18 NAME 'gosaAcl' DESC 'ACL
+  container to define single ACLs (v2.6.1)' SUP top AUXILIARY MUST gosaAclEntr
+ y )
+olcObjectClasses: {18}( 1.3.6.1.4.1.10098.1.2.1.19.19 NAME 'gosaSnapshotObject
+ ' DESC 'Container object for undo and snapshot data (v2.6.1)' SUP top STRUCTU
+ RAL MUST ( gosaSnapshotType $ gosaSnapshotTimestamp $ gosaSnapshotDN $ gosaSn
+ apshotData ) MAY description )
+olcObjectClasses: {19}( 1.3.6.1.4.1.10098.1.2.1.19.20 NAME 'gosaConfig' DESC '
+ Settings for gosa. Replaces parts of the gosa.conf. (v2.6)' SUP top STRUCTURA
+ L MAY gosaSetting )
+olcObjectClasses: {20}( 1.3.6.1.4.1.10098.1.2.1.43 NAME 'gotoSubmenuEntry' DES
+ C 'GOto - contains environment settings (v2.6)' SUP top STRUCTURAL MUST cn MA
+ Y ( gosaApplicationIcon $ gosaApplicationPriority ) )
+olcObjectClasses: {21}( 1.3.6.1.4.1.10098.1.2.1.44 NAME 'gotoMenuEntry' DESC '
+ GOto - defines a menu entry (v2.6)' SUP top STRUCTURAL MUST cn MAY ( gosaAppl
+ icationParameter $ gosaApplicationPriority ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbafd50e-f065-102e-960c-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/gosa-samba3.schema b/gosa-core/contrib/openldap/gosa-samba3.schema
new file mode 100644
index 0000000..a8b1de3
--- /dev/null
+++ b/gosa-core/contrib/openldap/gosa-samba3.schema
@@ -0,0 +1,410 @@
+##
+## Needed attributes for GOsa (GONICUS System Administrator)
+##
+## Version 030303
+##
+## Maintainer:	Cajus Pollmeier (pollmeier at GONICUS.de)
+##
+
+
+# Attributes
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.1 NAME 'gosaSubtreeACL'
+        DESC 'GOsa acl entry'
+	EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.2 NAME 'gosaUser'
+        DESC 'GOsa user'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.3 NAME 'gosaObject'
+        DESC 'GOsa object'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.4 NAME 'gosaMailServer'
+        DESC 'Specify users main mail server'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.5 NAME 'gosaMailQuota'
+        DESC 'GOsa quota definitions'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.6 NAME 'gosaMailAlternateAddress'
+        DESC 'Additional mail addresses where the user is reachable'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.7 NAME 'gosaMailForwardingAddress'
+        DESC 'Addresses where to forward mail to'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.8 NAME 'gosaMailMaxSize'
+        DESC 'Block mails bigger than this value'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.9 NAME 'gosaSpamSortLevel'
+        DESC 'Spamassassins hits'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.10 NAME 'gosaSpamMailbox'
+        DESC 'Where to put spam'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.11 NAME 'gosaVacationMessage'
+        DESC 'Text to display in case of vacation'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.12 NAME 'gosaMailDeliveryMode'
+        DESC 'What to do with mails'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.13 NAME 'gosaDefaultPrinter'
+        DESC 'Defines a default printer a user owns'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.14 NAME 'gosaDefaultLanguage'
+        DESC 'Defines the default language for a user'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.15 NAME 'gosaHostACL'
+        DESC 'Defines the places where users can login'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.16 NAME 'gosaService'
+        DESC 'Defines services a certain host can provide'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.17 NAME 'gosaProxyID'
+        DESC 'Defines the proxy user id used, needed for some filters'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.18 NAME 'gosaProxyAcctFlags'
+        DESC 'Proxy Account Flags'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.19 NAME 'gosaProxyWorkingStart'
+        DESC 'Specifies the beginning of work in minutes, relative to 00:00'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.20 NAME 'gosaProxyWorkingStop'
+        DESC 'Specifies the end of work in minutes, relative to 00:00'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.21 NAME 'gosaApplicationName'
+        DESC 'Specifies the name of an application to be shown up on users desktop'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.22 NAME 'gosaApplicationExecute'
+        DESC 'Specifies the executable path of an application'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.23 NAME 'gosaApplicationFlags'
+        DESC 'Specifies the application flags G(roup only), D(esktop), M(enu)'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.31 NAME 'gosaApplicationCategory'
+	DESC 'Store application parameters'
+	EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.24 NAME 'gosaApplicationIcon'
+        DESC 'Keeps the application icon in png format'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.28)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.25 NAME 'gosaSharedFolderTarget'
+        DESC 'Keeps the target of cyrus shared folders'
+        EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.26 NAME 'gosaMemberApplication'
+        DESC 'Like memberUid, just for applications'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.27 NAME 'gosaApplicationParameter'
+        DESC 'Store application parameters'
+	EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.28 NAME 'gosaProxyQuota'
+        DESC 'Specifies the amount of data a user may surf in a defined period of time'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.29 NAME 'gosaProxyQuotaPeriod'
+        DESC 'Specifies period of time where the counter is been reseted'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.30 NAME 'gosaGroupObjects'
+        DESC 'Takes a list of all object types that are in a gosaGroupOfNames'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.32 NAME 'gosaApplicationMimeType'
+	DESC 'Takes a list of relevant mime-type|priority settings'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.33 NAME 'gosaUnitTag'
+        DESC 'Takes a list of relevant mime-type|priority settings'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.34 NAME 'gosaAclTemplate'
+        DESC 'Takes ACL entries for gosaRoles'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.35 NAME 'gosaAclEntry'
+        DESC 'Takes ACL entries for gosaRoles'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.36 NAME 'gosaSnapshotType'
+        DESC 'Takes either undo or snapshot'
+        EQUALITY caseIgnoreMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.37 NAME 'gosaSnapshotTimestamp'
+        DESC 'Unix timestamp of snapshot'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.38 NAME 'gosaSnapshotDN'
+        DESC 'Original DN of saved object'
+        EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.39 NAME 'gosaSnapshotData'
+        DESC 'Original DN of saved object'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.40 NAME 'gosaSetting'
+        DESC 'Original DN of saved object'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.41 NAME 'gosaVacationStart'
+        DESC 'Timestamp for enabling current vacation message'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.42 NAME 'gosaVacationStop'
+        DESC 'Timestamp for switching off current vacation message'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.43 NAME 'gosaApplicationPriority'
+        DESC 'Keeps the application icon in png format'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.44 NAME 'gotoLastSystemLogin'
+        DESC 'Timestamp for a Users last System Login'
+        SYNTAX  1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.45 NAME 'gotoLastSystem'
+        EQUALITY distinguishedNameMatch
+        DESC 'The DN of the System where the Login was performed'
+        SYNTAX  1.3.6.1.4.1.1466.115.121.1.12)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.12.46 NAME 'gosaLoginRestriction'
+        DESC 'Multivalue attribute to carry a number of allowed ips/subnets'
+        SUP name)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.6.2 NAME 'academicTitle'
+        DESC 'Field to represent the academic title'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.15305.2.1 NAME ( 'gender' 'sex' )
+        DESC    'Gender: M for male, F for female'
+        EQUALITY caseIgnoreIA5Match
+        SYNTAX  1.3.6.1.4.1.1466.115.121.1.26{1}
+        SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.15305.2.2 NAME ( 'dateOfBirth' 'dob' )
+        DESC    'Date of birth in ISO 8601 format'
+        EQUALITY caseIgnoreMatch
+        SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{10}
+        SINGLE-VALUE )
+
+# cyrus imapd access control list
+# acls work with users and groups
+attributetype ( 1.3.6.1.4.1.19414.2.1.651
+		NAME 'acl'
+  		EQUALITY caseIgnoreIA5Match
+		SUBSTR caseIgnoreIA5SubstringsMatch
+	    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
+
+# Classes
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.1 NAME 'gosaObject' SUP top AUXILIARY
+        DESC 'Class for GOsa settings (v2.6.1)'
+        MUST ( gosaSubtreeACL ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.2 NAME 'gosaLockEntry' SUP top STRUCTURAL
+        DESC 'Class for GOsa locking (v2.6.1)'
+        MUST ( gosaUser $ gosaObject $ cn ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.3 NAME 'gosaCacheEntry' SUP top STRUCTURAL
+        DESC 'Class for GOsa caching (v2.6.1)'
+	MAY  ( gosaUser )
+	MUST ( cn ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY
+        DESC 'Class to mark Departments for GOsa (v2.6.1)'
+	MUST  ( ou $ description )
+	MAY   ( manager ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.5 NAME 'gosaMailAccount' SUP top AUXILIARY
+        DESC 'Class to mark MailAccounts for GOsa (v2.6.1)'
+	MUST ( mail $ gosaMailServer $ gosaMailDeliveryMode)
+	MAY  ( gosaMailQuota $ gosaMailAlternateAddress $ gosaMailForwardingAddress $
+	       gosaMailMaxSize $ gosaSpamSortLevel $ gosaSpamMailbox $
+	       gosaVacationMessage $ gosaVacationStart $ gosaVacationStop $ gosaSharedFolderTarget $ acl))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.6 NAME 'gosaAccount' SUP top AUXILIARY
+        DESC 'Class for GOsa Accounts (v2.6.6)'
+	MUST ( uid )
+        MAY ( sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $ gosaDefaultPrinter $
+	      gosaDefaultLanguage $ academicTitle $ personalTitle $ gosaHostACL $ dateOfBirth $
+		    sambaBadPasswordCount $ sambaBadPasswordTime $ gender $ 
+        gotoLastSystemLogin $ gotoLastSystem $ gosaLoginRestriction ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.7 NAME 'gosaHost' SUP top AUXILIARY
+        DESC 'Class for GOsa Hosts (v2.6.1)'
+        MUST ( cn )
+        MAY ( description $ gosaService ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.8 NAME 'gosaProxyAccount' SUP top AUXILIARY
+        DESC 'Class for GOsa Proxy settings (v2.6.1)'
+        MUST ( gosaProxyAcctFlags )
+        MAY ( gosaProxyID $ gosaProxyWorkingStart $ gosaProxyWorkingStop $ gosaProxyQuota $
+              gosaProxyQuotaPeriod ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.9 NAME 'gosaApplication' SUP top STRUCTURAL
+        DESC 'Class for GOsa applications (v2.6.1)'
+        MUST ( cn $ gosaApplicationExecute )
+        MAY ( gosaApplicationName $ gosaApplicationIcon $ gosaApplicationFlags $ gosaApplicationMimeType $
+              gosaApplicationParameter $ gotoLogonScript $ description $ gosaApplicationCategory ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.10 NAME 'gosaApplicationGroup' SUP top AUXILIARY
+        DESC 'Class for GOsa application groups (v2.6.1)'
+        MUST ( cn )
+        MAY ( gosaMemberApplication $ gosaApplicationParameter ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.11 NAME 'gosaUserTemplate' SUP top AUXILIARY
+        DESC 'Class for GOsa User Templates (v2.6.1)'
+        MUST ( cn ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.12 NAME 'gosaGroupOfNames'
+        DESC 'GOsa object grouping (v2.6.1)'
+		SUP top STRUCTURAL
+		MUST ( cn $ gosaGroupObjects ) MAY ( member $ description ) )
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.13 NAME 'gosaWebdavAccount'
+        DESC 'GOsa webdav enabling account (v2.6.1)'
+        SUP top AUXILIARY
+        MUST ( cn $ uid ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.14 NAME 'gosaIntranetAccount'
+		DESC 'GOsa Inatrent enabling account (v2.6.1)'
+		SUP top AUXILIARY
+		MUST ( cn $ uid )
+		MAY ( gosaDefaultLanguage ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.15 NAME 'gosaAdministrativeUnit'
+       DESC 'Marker for administrational units (v2.6.1)'
+           SUP top AUXILIARY
+       MUST ( gosaUnitTag ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.16 NAME 'gosaAdministrativeUnitTag'
+       DESC 'Marker for objects below administrational units (v2.6.1)'
+           SUP top AUXILIARY
+       MUST ( gosaUnitTag ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.17 NAME 'gosaRole'
+       DESC 'ACL container to define roles (v2.6.1)' SUP top STRUCTURAL
+       MUST ( gosaAclTemplate $ cn )
+       MAY  ( description ) )
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.18 NAME 'gosaAcl'
+       DESC 'ACL container to define single ACLs (v2.6.1)' SUP top AUXILIARY
+       MUST ( gosaAclEntry  ))
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.19 NAME 'gosaSnapshotObject'
+       DESC 'Container object for undo and snapshot data (v2.6.1)' SUP top STRUCTURAL
+       MUST ( gosaSnapshotType $ gosaSnapshotTimestamp $ gosaSnapshotDN $ gosaSnapshotData )
+       MAY  ( description ) )
+
+objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.20 NAME 'gosaConfig'
+       DESC 'Settings for gosa. Replaces parts of the gosa.conf. (v2.6)' SUP top STRUCTURAL
+       MAY  ( gosaSetting ) )
+
+# GOto submenu entries
+objectclass (1.3.6.1.4.1.10098.1.2.1.43 NAME 'gotoSubmenuEntry'
+        DESC 'GOto - contains environment settings (v2.6)' SUP top STRUCTURAL
+        MUST ( cn )
+        MAY ( gosaApplicationIcon $ gosaApplicationPriority ) )
+
+# GOto menu entries
+objectclass (1.3.6.1.4.1.10098.1.2.1.44 NAME 'gotoMenuEntry'
+        DESC 'GOto - defines a menu entry (v2.6)' SUP top STRUCTURAL
+        MUST ( cn )
+        MAY ( gosaApplicationParameter $ gosaApplicationPriority ) )
+
diff --git a/gosa-core/contrib/openldap/goserver.ldif b/gosa-core/contrib/openldap/goserver.ldif
new file mode 100644
index 0000000..de704d6
--- /dev/null
+++ b/gosa-core/contrib/openldap/goserver.ldif
@@ -0,0 +1,309 @@
+dn: cn={11}goserver
+objectClass: olcSchemaConfig
+cn: {11}goserver
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.9.1 NAME 'goXdmcpIsEnabled' DESC
+  'Indicates if the server is enabled for XDMCP queries' EQUALITY caseExactIA5
+ Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.9.2 NAME 'goFontPath' DESC 'Font
+ server Entry' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.9.4 NAME 'goExportEntry' DESC 'P
+ rovides an export entry' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.
+ 121.1.15 )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.9.9 NAME 'goSyslogSection' DESC 
+ 'What sections wants the server for its syslog service? i.e. *.*' EQUALITY ca
+ seExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.9.10 NAME 'goTimeSource' DESC 'L
+ ist of time sources' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.1
+ 21.1.26 )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.9.11 NAME 'goSpoolPath' DESC 'Pr
+ ovides a spool path for printing services' EQUALITY caseExactIA5Match SYNTAX 
+ 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.9.12 NAME 'goLdapBase' DESC 'Bas
+ e to use for this LDAP server' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.146
+ 6.115.121.1.15 SINGLE-VALUE )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.9.13 NAME 'goImapName' DESC 'Nam
+ e of IMAP server appearing in GOsa' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.9.14 NAME 'goImapConnect' DESC '
+ PHP connect string for IMAP server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.9.15 NAME 'goImapAdmin' DESC 'IM
+ AP admin account' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.26 SINGLE-VALUE )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.9.16 NAME 'goImapPassword' DESC
+  'IMAP admin password' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115
+ .121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {11}( 1.3.6.1.4.1.10098.1.1.9.17 NAME 'goImapSieveServer' D
+ ESC 'Cyrus sieve server address or name' EQUALITY caseExactIA5Match SYNTAX 1.
+ 3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {12}( 1.3.6.1.4.1.10098.1.1.9.18 NAME 'goImapSievePort' DES
+ C 'Cyrus sieve server port' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.146
+ 6.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {13}( 1.3.6.1.4.1.10098.1.1.9.19 NAME 'goKrbRealm' DESC 'De
+ fault Kerberos realm to use for this server' EQUALITY caseExactIA5Match SYNTA
+ X 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {14}( 1.3.6.1.4.1.10098.1.1.9.20 NAME 'goKrbAdmin' DESC 'Ad
+ min principal for kerberos server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.
+ 4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {15}( 1.3.6.1.4.1.10098.1.1.9.21 NAME 'goKrbPassword' DESC 
+ 'Admin password for kerberos server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.
+ 1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {16}( 1.3.6.1.4.1.10098.1.1.9.22 NAME 'goFaxAdmin' DESC 'Ad
+ min principal for fax server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {17}( 1.3.6.1.4.1.10098.1.1.9.23 NAME 'goFaxPassword' DESC 
+ 'Admin password for fax server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1
+ .1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {18}( 1.3.6.1.4.1.10098.1.1.9.83 NAME 'gosaLogDB' DESC 'GOs
+ a logging DB name' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121
+ .1.26 SINGLE-VALUE )
+olcAttributeTypes: {19}( 1.3.6.1.4.1.10098.1.1.9.24 NAME 'goLogAdmin' DESC 'Ad
+ min principal for log server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {20}( 1.3.6.1.4.1.10098.1.1.9.25 NAME 'goLogPassword' DESC 
+ 'Admin password for log server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1
+ .1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {21}( 1.3.6.1.4.1.10098.1.1.9.26 NAME 'goFonAdmin' DESC 'Ad
+ min principal for fon server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {22}( 1.3.6.1.4.1.10098.1.1.9.27 NAME 'goFonPassword' DESC 
+ 'Admin password for fon server' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1
+ .1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {23}( 1.3.6.1.4.1.10098.1.1.9.28 NAME 'goFonAreaCode' DESC 
+ 'Store area code' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.26 SINGLE-VALUE )
+olcAttributeTypes: {24}( 1.3.6.1.4.1.10098.1.1.9.29 NAME 'goFonCountryCode' DE
+ SC 'Store country code' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.11
+ 5.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {25}( 1.3.6.1.4.1.10098.1.1.9.30 NAME 'goGlpiAdmin' DESC 'A
+ dmin principal for glpi database server' EQUALITY caseExactIA5Match SYNTAX 1.
+ 3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {26}( 1.3.6.1.4.1.10098.1.1.9.31 NAME 'goGlpiPassword' DESC
+  'Admin password for glpi database server' EQUALITY caseExactIA5Match SYNTAX 
+ 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {27}( 1.3.6.1.4.1.10098.1.1.9.32 NAME 'goGlpiDatabase' DESC
+  'Database name for glpi extension' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {28}( 1.3.6.1.4.1.10098.1.1.9.33 NAME 'goTerminalServerStat
+ us' DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Mat
+ ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {29}( 1.3.6.1.4.1.10098.1.1.9.34 NAME 'goNfsServerStatus' D
+ ESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {30}( 1.3.6.1.4.1.10098.1.1.9.35 NAME 'goNtpServerStatus' D
+ ESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {31}( 1.3.6.1.4.1.10098.1.1.9.36 NAME 'goSyslogServerStatus
+ ' DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {32}( 1.3.6.1.4.1.10098.1.1.9.37 NAME 'goLdapServerStatus' 
+ DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match S
+ YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {33}( 1.3.6.1.4.1.10098.1.1.9.38 NAME 'goImapServerStatus' 
+ DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match S
+ YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {34}( 1.3.6.1.4.1.10098.1.1.9.39 NAME 'goKrbServerStatus' D
+ ESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {35}( 1.3.6.1.4.1.10098.1.1.9.40 NAME 'goFaxServerStatus' D
+ ESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {36}( 1.3.6.1.4.1.10098.1.1.9.41 NAME 'goLogDBServerStatus'
+  DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match 
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {37}( 1.3.6.1.4.1.10098.1.1.9.42 NAME 'goFonServerStatus' D
+ ESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match SY
+ NTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {38}( 1.3.6.1.4.1.10098.1.1.9.43 NAME 'goShareServerStatus'
+  DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match 
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {39}( 1.3.6.1.4.1.10098.1.1.9.44 NAME 'goMailServerStatus' 
+ DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match S
+ YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {40}( 1.3.6.1.4.1.10098.1.1.9.45 NAME 'goGlpiServerStatus' 
+ DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match S
+ YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {41}( 1.3.6.1.4.1.10098.1.1.9.46 NAME 'postfixHeaderSizeLim
+ it' DESC 'Keep postfix header-size-limit variable' EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {42}( 1.3.6.1.4.1.10098.1.1.9.47 NAME 'postfixMailboxSizeLi
+ mit' DESC 'Keep postfix mailbox-size-limit variable' EQUALITY caseExactIA5Mat
+ ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {43}( 1.3.6.1.4.1.10098.1.1.9.48 NAME 'postfixMessageSizeLi
+ mit' DESC 'Keep postfix message-size-limit variable' EQUALITY caseExactIA5Mat
+ ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {44}( 1.3.6.1.4.1.10098.1.1.9.49 NAME 'postfixMyDestination
+ s' DESC 'Keep postfix mydestinations variable' EQUALITY caseExactIA5Match SYN
+ TAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {45}( 1.3.6.1.4.1.10098.1.1.9.50 NAME 'postfixMyDomain' DES
+ C 'Keep postfix mydomain variable' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.
+ 4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {46}( 1.3.6.1.4.1.10098.1.1.9.51 NAME 'postfixMyHostname' D
+ ESC 'Keep postfix myhostname variable' EQUALITY caseExactIA5Match SYNTAX 1.3.
+ 6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {47}( 1.3.6.1.4.1.10098.1.1.9.52 NAME 'postfixMyNetworks' D
+ ESC 'Keep postfix mynetworks variable' EQUALITY caseExactIA5Match SYNTAX 1.3.
+ 6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {48}( 1.3.6.1.4.1.10098.1.1.9.53 NAME 'postfixRelayhost' DE
+ SC 'Keep postfix relayhost variable' EQUALITY caseExactIA5Match SYNTAX 1.3.6.
+ 1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {49}( 1.3.6.1.4.1.10098.1.1.9.54 NAME 'postfixTransportTabl
+ e' DESC 'Keep postfix transport tables' EQUALITY caseExactIA5Match SYNTAX 1.3
+ .6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {50}( 1.3.6.1.4.1.10098.1.1.9.55 NAME 'postfixSenderRestric
+ tions' DESC 'Keep postfix sender restrictions' EQUALITY caseExactIA5Match SYN
+ TAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {51}( 1.3.6.1.4.1.10098.1.1.9.56 NAME 'postfixRecipientRest
+ rictions' DESC 'Keep postfix transport tables' EQUALITY caseExactIA5Match SYN
+ TAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {52}( 1.3.6.1.4.1.10098.1.1.9.57 NAME 'cyrusImap' DESC 'Sta
+ rt IMAP service? true/false' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.14
+ 66.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {53}( 1.3.6.1.4.1.10098.1.1.9.58 NAME 'cyrusImapSSL' DESC '
+ Start IMAP SSL service? true/false' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {54}( 1.3.6.1.4.1.10098.1.1.9.59 NAME 'cyrusPop3' DESC 'Sta
+ rt POP3 service? true/false' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.14
+ 66.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {55}( 1.3.6.1.4.1.10098.1.1.9.60 NAME 'cyrusPop3SSL' DESC '
+ Start POP3 SSL service? true/false' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {56}( 1.3.6.1.4.1.10098.1.1.9.61 NAME 'goCupsServerStatus' 
+ DESC 'Server status container - on / off / fail' EQUALITY caseExactIA5Match S
+ YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {57}( 1.3.6.1.4.1.10098.1.1.9.62 NAME 'saRewriteHeader' DES
+ C 'Text to place in front of mail subjects' EQUALITY caseExactIA5Match SYNTAX
+  1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {58}( 1.3.6.1.4.1.10098.1.1.9.63 NAME 'saTrustedNetworks' D
+ ESC 'List of trusted networks' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.
+ 1466.115.121.1.26 )
+olcAttributeTypes: {59}( 1.3.6.1.4.1.10098.1.1.9.64 NAME 'saRequiredScore' DES
+ C 'Required score to tag a mail as SPAM' EQUALITY integerMatch SYNTAX 1.3.6.1
+ .4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {60}( 1.3.6.1.4.1.10098.1.1.9.65 NAME 'saFlags' DESC 'Flags
+  for spamassassin' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121
+ .1.26 )
+olcAttributeTypes: {61}( 1.3.6.1.4.1.10098.1.1.9.66 NAME 'saRule' DESC 'Base64
+  encoded rule text for spamassassin' EQUALITY caseExactIA5Match SYNTAX 1.3.6.
+ 1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {62}( 1.3.6.1.4.1.10098.1.1.9.67 NAME 'saStatus' DESC 'Serv
+ er status container - on / off / fail' EQUALITY caseExactIA5Match SYNTAX 1.3.
+ 6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {63}( 1.3.6.1.4.1.10098.1.1.9.68 NAME 'avMaxThreads' DESC '
+ Number of AV scanning threads' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.
+ 115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {64}( 1.3.6.1.4.1.10098.1.1.9.69 NAME 'avMaxDirectoryRecurs
+ ions' DESC 'Number of recursions done with directories' EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {65}( 1.3.6.1.4.1.10098.1.1.9.70 NAME 'avUser' DESC 'Userna
+ me to run with' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {66}( 1.3.6.1.4.1.10098.1.1.9.71 NAME 'avFlags' DESC 'Speci
+ al flags for the scan engine' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {67}( 1.3.6.1.4.1.10098.1.1.9.72 NAME 'avArchiveMaxFileSize
+ ' DESC 'Maximum archive file size' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1
+ 466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {68}( 1.3.6.1.4.1.10098.1.1.9.73 NAME 'avArchiveMaxRecursio
+ n' DESC 'Maximum number of archive nestings' EQUALITY integerMatch SYNTAX 1.3
+ .6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {69}( 1.3.6.1.4.1.10098.1.1.9.74 NAME 'avArchiveMaxCompress
+ ionRatio' DESC 'Maximum compression ratio' EQUALITY integerMatch SYNTAX 1.3.6
+ .1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+olcAttributeTypes: {70}( 1.3.6.1.4.1.10098.1.1.9.75 NAME 'avDatabaseMirror' DE
+ SC 'Where to find updates' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466
+ .115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {71}( 1.3.6.1.4.1.10098.1.1.9.76 NAME 'avHttpProxyURL' DESC
+  'How to get the updates' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.
+ 115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {72}( 1.3.6.1.4.1.10098.1.1.9.77 NAME 'avStatus' DESC 'Serv
+ er status container - on / off / fail' EQUALITY caseExactIA5Match SYNTAX 1.3.
+ 6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {73}( 1.3.6.1.4.1.10098.1.1.9.78 NAME 'avChecksPerDay' DESC
+  'Update checks per day' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.12
+ 1.1.27 SINGLE-VALUE )
+olcAttributeTypes: {74}( 1.3.6.1.4.1.10098.1.1.9.79 NAME 'goLogDB' DESC 'Name 
+ of logging DB' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.2
+ 6 SINGLE-VALUE )
+olcAttributeTypes: {75}( 1.3.6.1.4.1.10098.1.1.9.80 NAME 'goLogDBUser' DESC 'A
+ uth user for logging DB' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.1
+ 15.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {76}( 1.3.6.1.4.1.10098.1.1.9.81 NAME 'goLogDBPassword' DES
+ C 'Password for logging DB user' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.
+ 1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {77}( 1.3.6.1.4.1.10098.1.1.9.82 NAME 'gotoSessionType' DES
+ C 'Supported type for a terminal server' EQUALITY caseExactIA5Match SYNTAX 1.
+ 3.6.1.4.1.1466.115.121.1.26 )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.1.16 NAME 'goTerminalServer' DESC
+  'Terminal server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goXdmcp
+ IsEnabled ) MAY ( description $ goTerminalServerStatus $ gotoSessionType ) )
+olcObjectClasses: {1}( 1.3.6.1.4.1.10098.1.2.1.19 NAME 'goNfsServer' DESC 'NFS
+  server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( goExportEntry $
+  description $ goNfsServerStatus ) )
+olcObjectClasses: {2}( 1.3.6.1.4.1.10098.1.2.1.20 NAME 'goNtpServer' DESC 'Tim
+ e server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( goTimeSource $
+  description $ goNtpServerStatus ) )
+olcObjectClasses: {3}( 1.3.6.1.4.1.10098.1.2.1.21 NAME 'goSyslogServer' DESC '
+ Syslog server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( goSyslogS
+ ection $ description $ goSyslogServerStatus ) )
+olcObjectClasses: {4}( 1.3.6.1.4.1.10098.1.2.1.22 NAME 'goLdapServer' DESC 'LD
+ AP server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( goLdapBase $ 
+ description $ goLdapServerStatus ) )
+olcObjectClasses: {5}( 1.3.6.1.4.1.10098.1.2.1.23 NAME 'goCupsServer' DESC 'CU
+ PS server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( description $
+  goCupsServerStatus ) )
+olcObjectClasses: {6}( 1.3.6.1.4.1.10098.1.2.1.24 NAME 'goImapServer' DESC 'IM
+ AP server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goImapName $ go
+ ImapConnect $ goImapAdmin $ goImapPassword ) MAY ( goImapSieveServer $ goImap
+ SievePort $ description $ goImapServerStatus $ cyrusImap $ cyrusImapSSL $ cyr
+ usPop3 $ cyrusPop3SSL ) )
+olcObjectClasses: {7}( 1.3.6.1.4.1.10098.1.2.1.25 NAME 'goKrbServer' DESC 'Ker
+ beros server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goKrbRealm )
+  MAY ( description $ goKrbServerStatus ) )
+olcObjectClasses: {8}( 1.3.6.1.4.1.10098.1.2.1.26 NAME 'goFaxServer' DESC 'Fax
+  server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goFaxAdmin $ goFa
+ xPassword ) MAY ( description $ goFaxServerStatus ) )
+olcObjectClasses: {9}( 1.3.6.1.4.1.10098.1.2.1.27 NAME 'goServer' DESC 'Server
+  description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( description $ macAddre
+ ss $ ipHostNumber ) )
+olcObjectClasses: {10}( 1.3.6.1.4.1.10098.1.2.1.28 NAME 'goLogDBServer' DESC '
+ Log DB server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ gosaLogDB $
+  goLogAdmin $ goLogPassword ) MAY goLogDBServerStatus )
+olcObjectClasses: {11}( 1.3.6.1.4.1.10098.1.2.1.29 NAME 'goFonServer' DESC 'Fo
+ n server description (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goFonAdmin $ goF
+ onPassword $ goFonAreaCode $ goFonCountryCode ) MAY ( description $ goFonServ
+ erStatus ) )
+olcObjectClasses: {12}( 1.3.6.1.4.1.10098.1.2.1.33 NAME 'goShareServer' DESC '
+ Share server description (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( descriptio
+ n $ goExportEntry $ goShareServerStatus ) )
+olcObjectClasses: {13}( 1.3.6.1.4.1.10098.1.2.1.36 NAME 'goMailServer' DESC 'M
+ ail server definition (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( description $
+  goMailServerStatus $ postfixHeaderSizeLimit $ postfixMailboxSizeLimit $ post
+ fixMessageSizeLimit $ postfixMydestinations $ postfixMydomain $ postfixMyhost
+ name $ postfixMynetworks $ postfixRelayhost $ postfixTransportTable $ postfix
+ SenderRestrictions $ postfixRecipientRestrictions ) )
+olcObjectClasses: {14}( 1.3.6.1.4.1.10098.1.2.1.37 NAME 'goGlpiServer' DESC 'G
+ lpi server definition (v2.6.1)' SUP top AUXILIARY MUST ( cn $ goGlpiAdmin $ g
+ oGlpiDatabase ) MAY ( description $ goGlpiPassword $ goGlpiServerStatus ) )
+olcObjectClasses: {15}( 1.3.6.1.4.1.10098.1.2.1.38 NAME 'goSpamServer' DESC 'S
+ pam server definition (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( saRewriteHead
+ er $ saTrustedNetworks $ saRequiredScore $ saFlags $ saRule $ saStatus ) )
+olcObjectClasses: {16}( 1.3.6.1.4.1.10098.1.2.1.39 NAME 'goVirusServer' DESC '
+ Virus server definition (v2.6.1)' SUP top AUXILIARY MUST cn MAY ( avMaxThread
+ s $ avMaxDirectoryRecursions $ avUser $ avFlags $ avArchiveMaxFileSize $ avAr
+ chiveMaxRecursion $ avArchiveMaxCompressionRatio $ avDatabaseMirror $ avCheck
+ sPerDay $ avHttpProxyURL $ avStatus ) )
+olcObjectClasses: {17}( 1.3.6.1.4.1.10098.1.2.1.40 NAME 'gosaLogServer' DESC '
+ GOsa log server (v2.6)' SUP top AUXILIARY MUST ( cn $ goLogDB $ goLogDBUser $
+  goLogDBPassword ) )
+olcObjectClasses: {18}( 1.3.6.1.4.1.10098.1.2.1.41 NAME 'goEnvironmentServer' 
+ DESC 'Environment server definition (v2.6)' SUP top AUXILIARY MUST cn MAY got
+ oKioskProfile )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbafbaec-f065-102e-960b-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/goserver.schema b/gosa-core/contrib/openldap/goserver.schema
new file mode 100644
index 0000000..34d5b02
--- /dev/null
+++ b/gosa-core/contrib/openldap/goserver.schema
@@ -0,0 +1,594 @@
+## 
+##
+## goserver.schema - Needed by the GONICUS System Administator
+##
+## Version 030403
+##
+##
+## Maintainer:		Lars Scheiter 	(scheiter at GONICUS.de)
+##			Cajus Pollmeier	(pollmeier at GONICUS.de)
+##
+##
+
+
+# Attributes for the Gonicus Terminal Server Class
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.1 NAME 'goXdmcpIsEnabled'
+	DESC 'Indicates if the server is enabled for XDMCP queries'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.2 NAME 'goFontPath'
+	DESC 'Fontserver Entry'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Attributes for common Gonicus Server Class
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.4 NAME 'goExportEntry'
+	DESC 'Provides an export entry'
+	EQUALITY caseExactMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.9 NAME 'goSyslogSection'
+	DESC 'What sections wants the server for its syslog service? i.e. *.*'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.10 NAME 'goTimeSource'
+	DESC 'List of time sources'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.11 NAME 'goSpoolPath'
+	DESC 'Provides a spool path for printing services'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.12 NAME 'goLdapBase'
+	DESC 'Base to use for this LDAP server'
+	EQUALITY caseExactMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.13 NAME 'goImapName'
+	DESC 'Name of IMAP server appearing in GOsa'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.14 NAME 'goImapConnect'
+	DESC 'PHP connect string for IMAP server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.15 NAME 'goImapAdmin'
+	DESC 'IMAP admin account'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.16 NAME 'goImapPassword'
+	DESC 'IMAP admin password'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.17 NAME 'goImapSieveServer'
+	DESC 'Cyrus sieve server address or name'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.18 NAME 'goImapSievePort'
+	DESC 'Cyrus sieve server port'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.19 NAME 'goKrbRealm'
+	DESC 'Default Kerberos realm to use for this server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.20 NAME 'goKrbAdmin'
+	DESC 'Admin principal for kerberos server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.21 NAME 'goKrbPassword'
+	DESC 'Admin password for kerberos server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.22 NAME 'goFaxAdmin'
+	DESC 'Admin principal for fax server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.23 NAME 'goFaxPassword'
+	DESC 'Admin password for fax server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.83 NAME 'gosaLogDB'
+	DESC 'GOsa logging DB name'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.24 NAME 'goLogAdmin'
+	DESC 'Admin principal for log server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.25 NAME 'goLogPassword'
+	DESC 'Admin password for log server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.26 NAME 'goFonAdmin'
+        DESC 'Admin principal for fon server'
+        EQUALITY caseExactIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.27 NAME 'goFonPassword'
+        DESC 'Admin password for fon server'
+        EQUALITY caseExactIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.28 NAME 'goFonAreaCode'
+        DESC 'Store area code'
+        EQUALITY caseExactIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.29 NAME 'goFonCountryCode'
+        DESC 'Store country code'
+        EQUALITY caseExactIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.30 NAME 'goGlpiAdmin'
+	DESC 'Admin principal for glpi database server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.31 NAME 'goGlpiPassword'
+	DESC 'Admin password for glpi database server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.32 NAME 'goGlpiDatabase'
+	DESC 'Database name for glpi extension'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.33 NAME 'goTerminalServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.34 NAME 'goNfsServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.35 NAME 'goNtpServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.36 NAME 'goSyslogServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.37 NAME 'goLdapServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.38 NAME 'goImapServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.39 NAME 'goKrbServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.40 NAME 'goFaxServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.41 NAME 'goLogDBServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.42 NAME 'goFonServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.43 NAME 'goShareServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.44 NAME 'goMailServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.45 NAME 'goGlpiServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.46 NAME 'postfixHeaderSizeLimit'
+	DESC 'Keep postfix header-size-limit variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.47 NAME 'postfixMailboxSizeLimit'
+	DESC 'Keep postfix mailbox-size-limit variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.48 NAME 'postfixMessageSizeLimit'
+	DESC 'Keep postfix message-size-limit variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.49 NAME 'postfixMyDestinations'
+	DESC 'Keep postfix mydestinations variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.50 NAME 'postfixMyDomain'
+	DESC 'Keep postfix mydomain variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.51 NAME 'postfixMyHostname'
+	DESC 'Keep postfix myhostname variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.52 NAME 'postfixMyNetworks'
+	DESC 'Keep postfix mynetworks variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.53 NAME 'postfixRelayhost'
+	DESC 'Keep postfix relayhost variable'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.54 NAME 'postfixTransportTable'
+	DESC 'Keep postfix transport tables'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.55 NAME 'postfixSenderRestrictions'
+	DESC 'Keep postfix sender restrictions'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.56 NAME 'postfixRecipientRestrictions'
+	DESC 'Keep postfix transport tables'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.57 NAME 'cyrusImap'
+	DESC 'Start IMAP service? true/false'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.58 NAME 'cyrusImapSSL'
+	DESC 'Start IMAP SSL service? true/false'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.59 NAME 'cyrusPop3'
+	DESC 'Start POP3 service? true/false'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.60 NAME 'cyrusPop3SSL'
+	DESC 'Start POP3 SSL service? true/false'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.61 NAME 'goCupsServerStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.62 NAME 'saRewriteHeader'
+	DESC 'Text to place in front of mail subjects'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.63 NAME 'saTrustedNetworks'
+	DESC 'List of trusted networks'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.64 NAME 'saRequiredScore'
+	DESC 'Required score to tag a mail as SPAM'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+#saFlags   B:    Enable use of bayes filtering
+#          b:    Enable bayes auto learning
+#          C:    Enable RBL checks
+#          R:    Enable use of Razor
+#          D:    Enable use of DDC
+#          P:    Enable use of Pyzor
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.65 NAME 'saFlags'
+	DESC 'Flags for spamassassin'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.66 NAME 'saRule'
+	DESC 'Base64 encoded rule text for spamassassin'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.67 NAME 'saStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.68 NAME 'avMaxThreads'
+	DESC 'Number of AV scanning threads'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.69 NAME 'avMaxDirectoryRecursions'
+	DESC 'Number of recursions done with directories'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.70 NAME 'avUser'
+	DESC 'Username to run with'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# avFlags         D       Debug
+#                 S       Scan Mail
+#                 A       Scan Archive
+#                 E       Archive block encrypted
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.71 NAME 'avFlags'
+	DESC 'Special flags for the scan engine'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.72 NAME 'avArchiveMaxFileSize'
+	DESC 'Maximum archive file size'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.73 NAME 'avArchiveMaxRecursion'
+	DESC 'Maximum number of archive nestings'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.74 NAME 'avArchiveMaxCompressionRatio'
+	DESC 'Maximum compression ratio'
+	EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.75 NAME 'avDatabaseMirror'
+	DESC 'Where to find updates'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.76 NAME 'avHttpProxyURL'
+	DESC 'How to get the updates'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.77 NAME 'avStatus'
+	DESC 'Server status container - on / off / fail'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.78 NAME 'avChecksPerDay'
+        DESC 'Update checks per day'
+        EQUALITY integerMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.79 NAME 'goLogDB'
+	DESC 'Name of logging DB'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.80 NAME 'goLogDBUser'
+	DESC 'Auth user for logging DB'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.81 NAME 'goLogDBPassword'
+	DESC 'Password for logging DB user'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.9.82 NAME 'gotoSessionType'
+	DESC 'Supported type for a terminal server'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+
+##
+##		Objectclasses
+##
+
+# Terminal Server description 
+objectclass (1.3.6.1.4.1.10098.1.2.1.16 NAME 'goTerminalServer' SUP top AUXILIARY
+	DESC 'Terminal server description (v2.6.1)'
+	MUST ( cn $ goXdmcpIsEnabled )
+	MAY  ( description $ goTerminalServerStatus $ gotoSessionType ))
+
+# NFS Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.19 NAME 'goNfsServer' SUP top AUXILIARY
+	DESC 'NFS server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( goExportEntry $ description $ goNfsServerStatus ))
+
+# Time Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.20 NAME 'goNtpServer' SUP top AUXILIARY
+	DESC 'Time server description (v2.6.1)'
+	MUST ( cn )
+        MAY  ( goTimeSource $ description $ goNtpServerStatus ))
+
+# Syslog Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.21 NAME 'goSyslogServer' SUP top AUXILIARY
+	DESC 'Syslog server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( goSyslogSection $ description $ goSyslogServerStatus ))
+
+# LDAP Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.22 NAME 'goLdapServer' SUP top AUXILIARY
+	DESC 'LDAP server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( goLdapBase $ description $ goLdapServerStatus ))
+
+# CUPS Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.23 NAME 'goCupsServer' SUP top AUXILIARY
+	DESC 'CUPS server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( description $ goCupsServerStatus ))
+
+# IMAP Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.24 NAME 'goImapServer' SUP top AUXILIARY
+	DESC 'IMAP server description (v2.6.1)'
+	MUST ( cn $ goImapName $ goImapConnect $ goImapAdmin $ goImapPassword )
+	MAY  ( goImapSieveServer $ goImapSievePort $ description $ goImapServerStatus $
+	       cyrusImap $ cyrusImapSSL $ cyrusPop3 $ cyrusPop3SSL ))
+
+# Kerberos Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.25 NAME 'goKrbServer' SUP top AUXILIARY
+	DESC 'Kerberos server description (v2.6.1)'
+	MUST ( cn $ goKrbRealm )
+	MAY  ( description $ goKrbServerStatus ))
+
+# Fax Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.26 NAME 'goFaxServer' SUP top AUXILIARY
+	DESC 'Fax server description (v2.6.1)'
+	MUST ( cn $ goFaxAdmin $ goFaxPassword )
+	MAY  ( description $ goFaxServerStatus ))
+
+# Common server class
+objectclass (1.3.6.1.4.1.10098.1.2.1.27 NAME 'goServer' SUP top AUXILIARY
+	DESC 'Server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( description $ macAddress $ ipHostNumber ))
+
+# LogDB Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.28 NAME 'goLogDBServer' SUP top AUXILIARY
+	DESC 'Log DB server description (v2.6.1)'
+	MUST ( cn $ gosaLogDB $ goLogAdmin $ goLogPassword )
+	MAY  ( goLogDBServerStatus ))
+
+# Fon Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.29 NAME 'goFonServer' SUP top AUXILIARY
+        DESC 'Fon server description (v2.6.1)'
+        MUST ( cn $ goFonAdmin $ goFonPassword $ goFonAreaCode $ goFonCountryCode )
+        MAY  ( description $ goFonServerStatus ))
+
+# Share Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.33 NAME 'goShareServer' SUP top AUXILIARY
+	DESC 'Share server description (v2.6.1)'
+	MUST ( cn )
+	MAY  ( description $ goExportEntry $ goShareServerStatus ))
+
+# Mail Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.36 NAME 'goMailServer' SUP top AUXILIARY
+	DESC 'Mail server definition (v2.6.1)'
+	MUST ( cn )
+	MAY  ( description $ goMailServerStatus $ postfixHeaderSizeLimit $
+	       postfixMailboxSizeLimit $ postfixMessageSizeLimit $
+	       postfixMydestinations $ postfixMydomain $ postfixMyhostname $
+	       postfixMynetworks $ postfixRelayhost $ postfixTransportTable $
+	       postfixSenderRestrictions $ postfixRecipientRestrictions ) )
+
+# Glpi Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.37 NAME 'goGlpiServer' SUP top AUXILIARY
+	DESC 'Glpi server definition (v2.6.1)'
+	MUST ( cn $ goGlpiAdmin $ goGlpiDatabase)
+	MAY  ( description $ goGlpiPassword $ goGlpiServerStatus ) )
+
+# Spamassassin definitions
+objectclass (1.3.6.1.4.1.10098.1.2.1.38 NAME 'goSpamServer' SUP top AUXILIARY
+	DESC 'Spam server definition (v2.6.1)'
+	MUST ( cn )
+	MAY  ( saRewriteHeader $ saTrustedNetworks $ saRequiredScore $ saFlags $
+	       saRule $ saStatus ) )
+
+# Clamav definitions
+objectclass (1.3.6.1.4.1.10098.1.2.1.39 NAME 'goVirusServer' SUP top AUXILIARY
+	DESC 'Virus server definition (v2.6.1)'
+	MUST ( cn )
+	MAY  ( avMaxThreads $ avMaxDirectoryRecursions $ avUser $ avFlags $
+               avArchiveMaxFileSize $ avArchiveMaxRecursion $ avArchiveMaxCompressionRatio $
+               avDatabaseMirror $ avChecksPerDay $ avHttpProxyURL $ avStatus) )
+
+# LogDB Server description
+objectclass (1.3.6.1.4.1.10098.1.2.1.40 NAME 'gosaLogServer' SUP top AUXILIARY
+	DESC 'GOsa log server (v2.6)'
+	MUST ( cn $ goLogDB $ goLogDBUser $ goLogDBPassword ))
+
+# Environment Server
+objectclass (1.3.6.1.4.1.10098.1.2.1.41 NAME 'goEnvironmentServer' SUP top AUXILIARY
+	DESC 'Environment server definition (v2.6)'
+	MUST ( cn )
+	MAY  ( gotoKioskProfile ) )
+
diff --git a/gosa-core/contrib/openldap/gosystem.ldif b/gosa-core/contrib/openldap/gosystem.ldif
new file mode 100644
index 0000000..fcd6bdc
--- /dev/null
+++ b/gosa-core/contrib/openldap/gosystem.ldif
@@ -0,0 +1,199 @@
+dn: cn={5}gosystem
+objectClass: olcSchemaConfig
+cn: {5}gosystem
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.1.1 NAME 'gotoSyslogServer' DESC
+  'GOto - Gonicus Terminal Concept, value syslogServer.' EQUALITY caseIgnoreIA
+ 5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.1.2 NAME 'gotoNtpServer' DESC 'G
+ Oto - Gonicus Terminal Concept, value ntpServer.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.1.3 NAME 'gotoSwapServer' DESC '
+ GOto - Gonicus Terminal Concept, value swapServer.' EQUALITY caseIgnoreIA5Mat
+ ch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 S
+ INGLE-VALUE )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.1.4 NAME 'gotoLpdServer' DESC 'G
+ Oto - Gonicus Terminal Concept, value lpdServer.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN
+ GLE-VALUE )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.1.5 NAME 'gotoFontPath' DESC 'GO
+ to - Gonicus Terminal Concept, value fontPath.' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.1.6 NAME 'gotoFilesystem' DESC '
+ GOto - Gonicus Terminal Concept, value filesystem.' EQUALITY caseIgnoreIA5Mat
+ ch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.1.7 NAME 'gotoFloppyEnable' DESC
+  'GOto - Gonicus Terminal Concept, value floppyEnable.' EQUALITY caseIgnoreIA
+ 5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.1.8 NAME 'gotoCdromEnable' DESC 
+ 'GOto - Gonicus Terminal Concept, value cdromEnable.' EQUALITY caseIgnoreIA5M
+ atch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.1.9 NAME 'gotoLpdEnable' DESC 'G
+ Oto - Gonicus Terminal Concept, value lpdEnable.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.1.10 NAME 'gotoScannerEnable' DE
+ SC 'GOto - Gonicus Terminal Concept, value scannerEnable.' EQUALITY caseIgnor
+ eIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121
+ .1.26 SINGLE-VALUE )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.1.11 NAME 'gotoScannerClients' 
+ DESC 'GOto - Gonicus Terminal Concept, value scannerClients.' EQUALITY caseIg
+ noreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.
+ 121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {11}( 1.3.6.1.4.1.10098.1.1.1.14 NAME 'gotoRootPasswd' DESC
+  'GOto - Gonicus Terminal Concept, value rootPasswd.' EQUALITY caseIgnoreIA5M
+ atch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+olcAttributeTypes: {12}( 1.3.6.1.4.1.10098.1.1.1.15 NAME 'gotoXdmcpServer' DES
+ C 'GOto - Gonicus Terminal Concept, value xdmcpServer.' EQUALITY caseIgnoreIA
+ 5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {13}( 1.3.6.1.4.1.10098.1.1.1.16 NAME 'gotoXMethod' DESC 'G
+ Oto - Gonicus Terminal Concept, value xMethod.' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {14}( 1.3.6.1.4.1.10098.1.1.1.17 NAME 'gotoXMonitor' DESC '
+ GOto - Gonicus Terminal Concept, value xMonitor.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN
+ GLE-VALUE )
+olcAttributeTypes: {15}( 1.3.6.1.4.1.10098.1.1.1.18 NAME 'gotoXHsync' DESC 'GO
+ to - Gonicus Terminal Concept, value xHsync.' EQUALITY caseIgnoreIA5Match SUB
+ STR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-
+ VALUE )
+olcAttributeTypes: {16}( 1.3.6.1.4.1.10098.1.1.1.19 NAME 'gotoXVsync' DESC 'GO
+ to - Gonicus Terminal Concept, value xVsync.' EQUALITY caseIgnoreIA5Match SUB
+ STR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-
+ VALUE )
+olcAttributeTypes: {17}( 1.3.6.1.4.1.10098.1.1.1.20 NAME 'gotoXResolution' DES
+ C 'GOto - Gonicus Terminal Concept, value xResolution.' EQUALITY caseIgnoreIA
+ 5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {18}( 1.3.6.1.4.1.10098.1.1.1.21 NAME 'gotoXColordepth' DES
+ C 'GOto - Gonicus Terminal Concept, value xColordepth.' EQUALITY caseIgnoreIA
+ 5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
+ 26 SINGLE-VALUE )
+olcAttributeTypes: {19}( 1.3.6.1.4.1.10098.1.1.1.22 NAME 'gotoXMouseport' DESC
+  'GOto - Gonicus Terminal Concept, value xMouseport.' EQUALITY caseIgnoreIA5M
+ atch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+olcAttributeTypes: {20}( 1.3.6.1.4.1.10098.1.1.1.23 NAME 'gotoXMouseButtons' D
+ ESC 'GOto - Gonicus Terminal Concept, value xMouseButtons.' EQUALITY caseIgno
+ reIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.12
+ 1.1.26 SINGLE-VALUE )
+olcAttributeTypes: {21}( 1.3.6.1.4.1.10098.1.1.1.24 NAME 'gotoMode' DESC 'GOto
+  - Gonicus Terminal Concept, Terminal is active.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN
+ GLE-VALUE )
+olcAttributeTypes: {22}( 1.3.6.1.4.1.10098.1.1.1.25 NAME 'gotoXKbModel' DESC '
+ GOto - Gonicus Terminal Concept, value xKbmodel.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN
+ GLE-VALUE )
+olcAttributeTypes: {23}( 1.3.6.1.4.1.10098.1.1.1.26 NAME 'gotoXKbLayout' DESC 
+ 'GOto - Gonicus Terminal Concept, value xKblayout.' EQUALITY caseIgnoreIA5Mat
+ ch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 S
+ INGLE-VALUE )
+olcAttributeTypes: {24}( 1.3.6.1.4.1.10098.1.1.1.27 NAME 'gotoXKbVariant' DESC
+  'GOto - Gonicus Terminal Concept, value xKbvariant.' EQUALITY caseIgnoreIA5M
+ atch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+olcAttributeTypes: {25}( 1.3.6.1.4.1.10098.1.1.1.28 NAME 'gotoXDriver' DESC 'G
+ Oto - Gonicus Terminal Concept, value xDriver.' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGL
+ E-VALUE )
+olcAttributeTypes: {26}( 1.3.6.1.4.1.10098.1.1.1.29 NAME 'gotoSndModule' DESC 
+ 'GOto - Gonicus Terminal Concept, value sndModules.' EQUALITY caseIgnoreIA5Ma
+ tch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ SINGLE-VALUE )
+olcAttributeTypes: {27}( 1.3.6.1.4.1.10098.1.1.1.30 NAME 'gotoLastUser' DESC '
+ GOto - Gonicus Terminal Concept, value lastUser.' EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN
+ GLE-VALUE )
+olcAttributeTypes: {28}( 1.3.6.1.4.1.10098.1.1.1.31 NAME 'gotoAutoFs' DESC 'GO
+ to - Gonicus Terminal Concept, value autofs.' EQUALITY caseIgnoreIA5Match SUB
+ STR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {29}( 1.3.6.1.4.1.10098.1.1.1.32 NAME 'gotoModules' DESC 'G
+ Oto - Gonicus Terminal Concept, value modules.' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {30}( 1.3.6.1.4.1.10098.1.1.1.33 NAME 'gotoAdaptPath' DESC 
+ 'GOto - Gonicus Terminal Concept, value adaptpath.' EQUALITY caseIgnoreIA5Mat
+ ch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {31}( 1.3.6.1.4.1.10098.1.1.1.34 NAME 'gotoXMouseType' DESC
+  'Hardware definitions, value Maustyp' EQUALITY caseIgnoreIA5Match SUBSTR cas
+ eIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {32}( 1.3.6.1.4.1.10098.1.1.1.35 NAME 'gotoKernelParameters
+ ' DESC 'Kernel boot parameters' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnore
+ IA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {33}( 1.3.6.1.4.1.10098.1.1.1.36 NAME 'gotoBootKernel' DESC
+  'Kernel boot parameters' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Sub
+ stringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {34}( 1.3.6.1.4.1.10098.1.1.1.37 NAME 'gotoTerminalPath' DE
+ SC 'Kernel boot parameters' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5S
+ ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {35}( 1.3.6.1.4.1.10098.1.1.1.38 NAME 'gotoLdapServer' DESC
+  'Kernel boot parameters' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring
+ sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {36}( 1.3.6.1.4.1.10098.1.1.1.39 NAME 'gotoScannerBackend' 
+ DESC 'GOto - Gonicus Terminal Concept, value scannerBackend.' EQUALITY caseIg
+ noreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.
+ 121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {37}( 1.3.6.1.4.1.10098.1.1.1.40 NAME 'gotoScannerModel' DE
+ SC 'GOto - Gonicus Terminal Concept, value scannerModel.' EQUALITY caseIgnore
+ IA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
+ 1.26 SINGLE-VALUE )
+olcAttributeTypes: {38}( 1.3.6.1.4.1.10098.1.1.2.1 NAME 'ghCpuType' DESC 'Hard
+ ware definitions, value cpuType' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnor
+ eIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {39}( 1.3.6.1.4.1.10098.1.1.2.2 NAME 'ghMemSize' DESC 'Hard
+ ware definitions, value memSize' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnor
+ eIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {40}( 1.3.6.1.4.1.10098.1.1.2.3 NAME 'ghUsbSupport' DESC 'H
+ ardware definitions, value usbSupport' EQUALITY caseIgnoreIA5Match SUBSTR cas
+ eIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {41}( 1.3.6.1.4.1.10098.1.1.2.4 NAME 'ghIdeDev' DESC 'Hardw
+ are definitions, value ideDev' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreI
+ A5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {42}( 1.3.6.1.4.1.10098.1.1.2.5 NAME 'ghScsiDev' DESC 'Hard
+ ware definitions, value scsiDev' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnor
+ eIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {43}( 1.3.6.1.4.1.10098.1.1.2.7 NAME 'ghSoundAdapter' DESC 
+ 'Hardware definitions, value soundAdapter' EQUALITY caseIgnoreIA5Match SUBSTR
+  caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VAL
+ UE )
+olcAttributeTypes: {44}( 1.3.6.1.4.1.10098.1.1.2.8 NAME 'ghNetNic' DESC 'Hardw
+ are definitions, value Network Device' EQUALITY caseIgnoreIA5Match SUBSTR cas
+ eIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {45}( 1.3.6.1.4.1.10098.1.1.2.9 NAME 'ghGfxAdapter' DESC 'H
+ ardware definitions, value Grafikkarte' EQUALITY caseIgnoreIA5Match SUBSTR ca
+ seIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE 
+ )
+olcAttributeTypes: {46}( 1.3.6.1.4.1.10098.1.1.2.10 NAME 'ghInventoryNumber' D
+ ESC 'Unique number for inclusion in an inventory' EQUALITY caseIgnoreIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {47}( 1.3.6.1.4.1.10098.1.1.2.11 NAME 'gotoSysStatus' DESC 
+ 'Keeps current system status - info shown in GOsa' EQUALITY caseIgnoreIA5Matc
+ h SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {48}( 1.3.6.1.4.1.10098.1.1.2.12 NAME 'gotoHardwareChecksum
+ ' DESC 'GOto - quick way to see if something has changed' EQUALITY caseIgnore
+ IA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.1.3 NAME 'GOhard' DESC 'Gonicus H
+ ardware definitions, objectclass (v2.6.1)' SUP top STRUCTURAL MUST cn MAY ( g
+ hGfxAdapter $ ghNetNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $ macAddress $
+  ghUsbSupport $ ghMemSize $ ghCpuType $ ghInventoryNumber $ gotoSyslogServer 
+ $ gotoNtpServer $ gotoSwapServer $ gotoLpdServer $ gotoFontPath $ gotoFilesys
+ tem $ gotoFloppyEnable $ gotoCdromEnable $ gotoLpdEnable $ gotoScannerEnable 
+ $ gotoScannerClients $ gotoRootPasswd $ gotoXdmcpServer $ gotoXMethod $ gotoS
+ ndModule $ gotoLastUser $ gotoXMonitor $ gotoXHsync $ gotoXVsync $ gotoXResol
+ ution $ gotoXColordepth $ gotoXMouseport $ gotoXMouseButtons $ gotoMode $ got
+ oXKbModel $ gotoXKbLayout $ gotoXKbVariant $ gotoXDriver $ gotoXMouseType $ m
+ acAddress $ gotoAutoFs $ gotoModules $ gotoAdaptPath $ gotoKernelParameters $
+  gotoBootKernel $ gotoTerminalPath $ gotoLdapServer $ gotoScannerModel $ ipHo
+ stNumber $ l $ gotoSysStatus $ description $ gotoHardwareChecksum ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbaf46b6-f065-102e-9605-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/gosystem.schema b/gosa-core/contrib/openldap/gosystem.schema
new file mode 100644
index 0000000..b7ab52e
--- /dev/null
+++ b/gosa-core/contrib/openldap/gosystem.schema
@@ -0,0 +1,350 @@
+##
+## gosystem.schema - Needed by the GONICUS Terminal concept
+##
+
+# Attributes
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.1 NAME 'gotoSyslogServer'
+	DESC 'GOto - Gonicus Terminal Concept, value syslogServer.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.2 NAME 'gotoNtpServer'
+	DESC 'GOto - Gonicus Terminal Concept, value ntpServer.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.3 NAME 'gotoSwapServer'
+	DESC 'GOto - Gonicus Terminal Concept, value swapServer.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.4 NAME 'gotoLpdServer'
+	DESC 'GOto - Gonicus Terminal Concept, value lpdServer.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.5 NAME 'gotoFontPath'
+	DESC 'GOto - Gonicus Terminal Concept, value fontPath.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.6 NAME 'gotoFilesystem'
+	DESC 'GOto - Gonicus Terminal Concept, value filesystem.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.7 NAME 'gotoFloppyEnable'
+	DESC 'GOto - Gonicus Terminal Concept, value floppyEnable.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.8 NAME 'gotoCdromEnable'
+	DESC 'GOto - Gonicus Terminal Concept, value cdromEnable.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.9 NAME 'gotoLpdEnable'
+	DESC 'GOto - Gonicus Terminal Concept, value lpdEnable.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.10 NAME 'gotoScannerEnable'
+	DESC 'GOto - Gonicus Terminal Concept, value scannerEnable.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.11 NAME 'gotoScannerClients'
+	DESC 'GOto - Gonicus Terminal Concept, value scannerClients.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.14 NAME 'gotoRootPasswd'
+	DESC 'GOto - Gonicus Terminal Concept, value rootPasswd.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.15 NAME 'gotoXdmcpServer'
+	DESC 'GOto - Gonicus Terminal Concept, value xdmcpServer.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.16 NAME 'gotoXMethod'
+	DESC 'GOto - Gonicus Terminal Concept, value xMethod.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.17 NAME 'gotoXMonitor'
+	DESC 'GOto - Gonicus Terminal Concept, value xMonitor.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.18 NAME 'gotoXHsync'
+	DESC 'GOto - Gonicus Terminal Concept, value xHsync.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.19 NAME 'gotoXVsync'
+	DESC 'GOto - Gonicus Terminal Concept, value xVsync.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.20 NAME 'gotoXResolution'
+	DESC 'GOto - Gonicus Terminal Concept, value xResolution.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.21 NAME 'gotoXColordepth'
+	DESC 'GOto - Gonicus Terminal Concept, value xColordepth.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.22 NAME 'gotoXMouseport'
+	DESC 'GOto - Gonicus Terminal Concept, value xMouseport.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.23 NAME 'gotoXMouseButtons'
+	DESC 'GOto - Gonicus Terminal Concept, value xMouseButtons.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.24 NAME 'gotoMode'
+	DESC 'GOto - Gonicus Terminal Concept, Terminal is active.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.25 NAME 'gotoXKbModel'
+	DESC 'GOto - Gonicus Terminal Concept, value xKbmodel.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.26 NAME 'gotoXKbLayout'
+	DESC 'GOto - Gonicus Terminal Concept, value xKblayout.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.27 NAME 'gotoXKbVariant'
+	DESC 'GOto - Gonicus Terminal Concept, value xKbvariant.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.28 NAME 'gotoXDriver'
+	DESC 'GOto - Gonicus Terminal Concept, value xDriver.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.29 NAME 'gotoSndModule'
+	DESC 'GOto - Gonicus Terminal Concept, value sndModules.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.30 NAME 'gotoLastUser'
+	DESC 'GOto - Gonicus Terminal Concept, value lastUser.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.31 NAME 'gotoAutoFs'
+	DESC 'GOto - Gonicus Terminal Concept, value autofs.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+	
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.32 NAME 'gotoModules'
+	DESC 'GOto - Gonicus Terminal Concept, value modules.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.33 NAME 'gotoAdaptPath'
+	DESC 'GOto - Gonicus Terminal Concept, value adaptpath.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.34 NAME 'gotoXMouseType'
+        DESC 'Hardware definitions, value Maustyp'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.35 NAME 'gotoKernelParameters'
+        DESC 'Kernel boot parameters'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.36 NAME 'gotoBootKernel'
+        DESC 'Kernel boot parameters'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.37 NAME 'gotoTerminalPath'
+        DESC 'Kernel boot parameters'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.38 NAME 'gotoLdapServer'
+        DESC 'Kernel boot parameters'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.39 NAME 'gotoScannerBackend'
+	DESC 'GOto - Gonicus Terminal Concept, value scannerBackend.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.1.40 NAME 'gotoScannerModel'
+	DESC 'GOto - Gonicus Terminal Concept, value scannerModel.'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.1 NAME 'ghCpuType'
+	DESC 'Hardware definitions, value cpuType'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.2 NAME 'ghMemSize'
+	DESC 'Hardware definitions, value memSize'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.3 NAME 'ghUsbSupport'
+	DESC 'Hardware definitions, value usbSupport'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.4 NAME 'ghIdeDev'
+	DESC 'Hardware definitions, value ideDev'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.5 NAME 'ghScsiDev'
+	DESC 'Hardware definitions, value scsiDev'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.7 NAME 'ghSoundAdapter'
+	DESC 'Hardware definitions, value soundAdapter'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.8 NAME 'ghNetNic'
+	DESC 'Hardware definitions, value Network Device'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.9 NAME 'ghGfxAdapter'
+	DESC 'Hardware definitions, value Grafikkarte'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.10 NAME 'ghInventoryNumber'
+	DESC 'Unique number for inclusion in an inventory'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+	SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.11 NAME 'gotoSysStatus'
+        DESC 'Keeps current system status - info shown in GOsa'
+        EQUALITY caseIgnoreIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+        SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.2.12 NAME 'gotoHardwareChecksum'
+        DESC 'GOto - quick way to see if something has changed'
+        EQUALITY caseIgnoreIA5Match
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# objectclass for Hardware definitions
+objectclass (1.3.6.1.4.1.10098.1.2.1.3 NAME 'GOhard'
+        DESC 'Gonicus Hardware definitions, objectclass (v2.6.1)' SUP top STRUCTURAL
+        MUST ( cn )
+        MAY ( ghGfxAdapter $ ghNetNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $
+              macAddress $ ghUsbSupport $ ghMemSize $ ghCpuType $ ghInventoryNumber $
+              gotoSyslogServer $ gotoNtpServer $ gotoSwapServer $ gotoLpdServer $
+              gotoFontPath $ gotoFilesystem $ gotoFloppyEnable $ gotoCdromEnable $
+              gotoLpdEnable $ gotoScannerEnable $ gotoScannerClients $
+              gotoRootPasswd $ gotoXdmcpServer $ gotoXMethod $ gotoSndModule $
+              gotoLastUser $ gotoXMonitor $ gotoXHsync $ gotoXVsync $ gotoXResolution $
+              gotoXColordepth $ gotoXMouseport $ gotoXMouseButtons $ gotoMode $ gotoXKbModel $
+              gotoXKbLayout $ gotoXKbVariant $ gotoXDriver $ gotoXMouseType $ macAddress $
+              gotoAutoFs $ gotoModules $ gotoAdaptPath $ gotoKernelParameters $ gotoBootKernel $
+              gotoTerminalPath $ gotoLdapServer $ gotoScannerModel $ ipHostNumber $ l $
+	      gotoSysStatus $ description $ gotoHardwareChecksum ) )
+
diff --git a/gosa-core/contrib/openldap/goto-mime.ldif b/gosa-core/contrib/openldap/goto-mime.ldif
new file mode 100644
index 0000000..41423b5
--- /dev/null
+++ b/gosa-core/contrib/openldap/goto-mime.ldif
@@ -0,0 +1,33 @@
+dn: cn={7}goto-mime
+objectClass: olcSchemaConfig
+cn: {7}goto-mime
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.14.1 NAME 'gotoMimeGroup' DESC '
+ IANA defined mime group' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Subs
+ tringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.14.2 NAME 'gotoMimeFilePattern' 
+ DESC 'File extensions for mime types' EQUALITY caseIgnoreIA5Match SUBSTR case
+ IgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.14.3 NAME 'gotoMimeApplication' 
+ DESC 'Assigned application and priority' EQUALITY caseIgnoreIA5Match SUBSTR c
+ aseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.14.4 NAME 'gotoMimeEmbeddedAppli
+ cation' DESC 'Assigned application and priority for embedded applications' EQ
+ UALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.
+ 4.1.1466.115.121.1.26 )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.14.5 NAME 'gotoMimeLeftClickActi
+ on' DESC 'GOto - Gonicus Terminal Concept, PPD data' EQUALITY caseIgnoreIA5Ma
+ tch SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
+ SINGLE-VALUE )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.14.6 NAME 'gotoMimeIcon' DESC 'S
+ pecify the mime icon' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 SINGLE-VALUE )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.4.1 NAME 'gotoMimeType' DESC 'Cla
+ ss to represent global mime types (v2.6.1)' SUP top STRUCTURAL MUST ( cn $ go
+ toMimeFilePattern $ gotoMimeGroup ) MAY ( description $ gotoMimeIcon $ gotoMi
+ meApplication $ gotoMimeEmbeddedApplication $ gotoMimeLeftClickAction ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbaf5462-f065-102e-9607-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/goto-mime.schema b/gosa-core/contrib/openldap/goto-mime.schema
new file mode 100644
index 0000000..a271f3a
--- /dev/null
+++ b/gosa-core/contrib/openldap/goto-mime.schema
@@ -0,0 +1,61 @@
+##
+## goto-mime.schema - Needed by the GONICUS Terminal concept
+##
+## Maintainer:	Cajus Pollmeier	(pollmeier at GONICUS.de)
+##
+
+# Basic list of mime groups:
+#   application audio chemical image inode message model multipart
+#   text video x-conference x-world
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.1 NAME 'gotoMimeGroup'
+        DESC 'IANA defined mime group'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# File extensions without search patterns. i.e. png, jpg, xcf
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.2 NAME 'gotoMimeFilePattern'
+        DESC 'File extensions for mime types'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Coded application and priority seperated by |. i.e. /usr/bin/gimp|1
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.3 NAME 'gotoMimeApplication'
+        DESC 'Assigned application and priority'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Coded application and priority seperated by |.
+# i.e. cn=gimp,ou=apps,dc=gonicus,dc=de|1
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.4 NAME 'gotoMimeEmbeddedApplication'
+        DESC 'Assigned application and priority for embedded applications'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+# Encoded left click action for filebrowsers, etc. This can be either:
+#  I: show in embedded viewer
+#  E: show in external viewer
+#  O: take settings from global mime group
+#  These fields are taken as OR. Additionally you can add a
+#  Q: to ask wether a question should pop up - to save it to
+#     the local disc or not.
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.5 NAME 'gotoMimeLeftClickAction'
+        DESC 'GOto - Gonicus Terminal Concept, PPD data'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+# Save binary png icon here
+attributetype ( 1.3.6.1.4.1.10098.1.1.14.6 NAME 'gotoMimeIcon'
+        DESC 'Specify the mime icon'
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 SINGLE-VALUE)
+
+objectclass (1.3.6.1.4.1.10098.1.2.4.1 NAME 'gotoMimeType'
+        DESC 'Class to represent global mime types (v2.6.1)' SUP top STRUCTURAL
+        MUST ( cn $ gotoMimeFilePattern $ gotoMimeGroup )
+        MAY  ( description $ gotoMimeIcon $ gotoMimeApplication $
+	       gotoMimeEmbeddedApplication $ gotoMimeLeftClickAction ))
+
diff --git a/gosa-core/contrib/openldap/goto.ldif b/gosa-core/contrib/openldap/goto.ldif
new file mode 100644
index 0000000..43838ea
--- /dev/null
+++ b/gosa-core/contrib/openldap/goto.ldif
@@ -0,0 +1,99 @@
+dn: cn={10}goto
+objectClass: olcSchemaConfig
+cn: {10}goto
+olcAttributeTypes: {0}( 1.3.6.1.4.1.10098.1.1.11.6 NAME 'gotoPrinterPPD' DESC 
+ 'GOto - Gonicus Terminal Concept, PPD data' EQUALITY caseIgnoreIA5Match SUBST
+ R caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VA
+ LUE )
+olcAttributeTypes: {1}( 1.3.6.1.4.1.10098.1.1.11.7 NAME 'gotoProfileFlags' DES
+ C 'GOto - Flags for Profile handling - C is for caching' EQUALITY caseIgnoreI
+ A5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1
+ .26 SINGLE-VALUE )
+olcAttributeTypes: {2}( 1.3.6.1.4.1.10098.1.1.11.8 NAME 'gotoProfileServer' DE
+ SC 'GOto - specifies the profile server' EQUALITY caseIgnoreIA5Match SUBSTR c
+ aseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE
+  )
+olcAttributeTypes: {3}( 1.3.6.1.4.1.10098.1.1.11.9 NAME 'gotoShare' DESC 'GOto
+  - specifies a share' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Substri
+ ngsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {4}( 1.3.6.1.4.1.10098.1.1.11.10 NAME 'gotoLogonScript' DES
+ C 'GOto - specifies a LogonScript' EQUALITY caseIgnoreMatch SUBSTR caseIgnore
+ SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+olcAttributeTypes: {5}( 1.3.6.1.4.1.10098.1.1.11.11 NAME 'gotoKioskProfile' DE
+ SC 'GOto - specifies a kiosk profile' EQUALITY caseIgnoreIA5Match SUBSTR case
+ IgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {6}( 1.3.6.1.4.1.10098.1.1.11.12 NAME 'gotoUserPrinter' DES
+ C 'GOto - keeps printers shown for this user' EQUALITY caseIgnoreIA5Match SUB
+ STR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {7}( 1.3.6.1.4.1.10098.1.1.11.13 NAME 'gotoUserAdminPrinter
+ ' DESC 'GOto - keeps printers we are admin for' EQUALITY caseIgnoreIA5Match S
+ UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {8}( 1.3.6.1.4.1.10098.1.1.11.16 NAME 'gotoGroupPrinter' DE
+ SC 'GOto - keeps printers shown for this user' EQUALITY caseIgnoreIA5Match SU
+ BSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {9}( 1.3.6.1.4.1.10098.1.1.11.17 NAME 'gotoGroupAdminPrinte
+ r' DESC 'GOto - keeps printers we are admin for' EQUALITY caseIgnoreIA5Match 
+ SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {10}( 1.3.6.1.4.1.10098.1.1.11.14 NAME 'gotoHotplugDevice' 
+ DESC 'GOto - keeps hotplug devices' EQUALITY caseIgnoreIA5Match SUBSTR caseIg
+ noreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcAttributeTypes: {11}( 1.3.6.1.4.1.10098.1.1.11.15 NAME 'gotoProfileQuota' D
+ ESC 'GOto - save quota for home' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnor
+ eIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {12}( 1.3.6.1.4.1.10098.1.1.11.18 NAME 'gotoHotplugDeviceDN
+ ' DESC 'GOto - points to hotplug devices' EQUALITY distinguishedNameMatch SYN
+ TAX 1.3.6.1.4.1.1466.115.121.1.12 )
+olcObjectClasses: {0}( 1.3.6.1.4.1.10098.1.2.1.1 NAME 'gotoTerminal' DESC 'GOt
+ o - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY MUST cn
+  MAY ( description $ macAddress $ ipHostNumber $ gotoShare $ goFonHardware ) 
+ )
+olcObjectClasses: {1}( 1.3.6.1.4.1.10098.1.2.1.30 NAME 'gotoWorkstation' DESC 
+ 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY MUS
+ T cn MAY ( description $ macAddress $ ipHostNumber $ gotoShare $ goFonHardwar
+ e ) )
+olcObjectClasses: {2}( 1.3.6.1.4.1.10098.1.2.1.31 NAME 'gotoPrinter' DESC 'GOt
+ o - Gonicus Terminal Concept, objectclass (v2.2)' SUP top STRUCTURAL MUST cn 
+ MAY ( labeledURI $ description $ l $ gotoPrinterPPD $ macAddress $ ipHostNumb
+ er $ gotoUserPrinter $ gotoUserAdminPrinter $ gotoGroupPrinter $ gotoGroupAdm
+ inPrinter ) )
+olcObjectClasses: {3}( 1.3.6.1.4.1.10098.1.2.1.32 NAME 'gotoEnvironment' DESC 
+ 'GOto - contains environment settings (v2.2)' SUP top AUXILIARY MAY ( gotoPro
+ fileServer $ gotoProfileFlags $ gotoXResolution $ gotoShare $ gotoLogonScript
+  $ gotoKioskProfile $ gotoHotplugDevice $ gotoProfileQuota $ gotoHotplugDevic
+ eDN ) )
+olcObjectClasses: {4}( 1.3.6.1.4.1.10098.1.2.1.34 NAME 'gotoWorkstationTemplat
+ e' DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXIL
+ IARY MUST cn MAY ( description $ gotoShare $ goFonHardware $ ghGfxAdapter $ g
+ hNetNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $ ghUsbSupport $ ghMemSize $ 
+ ghCpuType $ ghInventoryNumber $ gotoSyslogServer $ gotoNtpServer $ gotoSwapSe
+ rver $ gotoLpdServer $ gotoFontPath $ gotoFilesystem $ gotoFloppyEnable $ got
+ oCdromEnable $ gotoLpdEnable $ gotoScannerEnable $ gotoScannerClients $ gotoR
+ ootPasswd $ gotoXdmcpServer $ gotoXMethod $ gotoSndModule $ gotoLastUser $ go
+ toXMonitor $ gotoXHsync $ gotoXVsync $ gotoXResolution $ gotoXColordepth $ go
+ toXMouseport $ gotoXMouseButtons $ gotoMode $ gotoXKbModel $ gotoXKbLayout $ 
+ gotoXKbVariant $ gotoXDriver $ gotoXMouseType $ macAddress $ gotoAutoFs $ got
+ oModules $ gotoAdaptPath $ gotoKernelParameters $ gotoBootKernel $ gotoTermin
+ alPath $ gotoLdapServer $ gotoScannerModel ) )
+olcObjectClasses: {5}( 1.3.6.1.4.1.10098.1.2.1.35 NAME 'gotoTerminalTemplate' 
+ DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIAR
+ Y MUST cn MAY ( description $ gotoShare $ goFonHardware $ ghGfxAdapter $ ghNe
+ tNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $ ghUsbSupport $ ghMemSize $ ghC
+ puType $ ghInventoryNumber $ gotoSyslogServer $ gotoNtpServer $ gotoSwapServe
+ r $ gotoLpdServer $ gotoFontPath $ gotoFilesystem $ gotoFloppyEnable $ gotoCd
+ romEnable $ gotoLpdEnable $ gotoScannerEnable $ gotoScannerClients $ gotoRoot
+ Passwd $ gotoXdmcpServer $ gotoXMethod $ gotoSndModule $ gotoLastUser $ gotoX
+ Monitor $ gotoXHsync $ gotoXVsync $ gotoXResolution $ gotoXColordepth $ gotoX
+ Mouseport $ gotoXMouseButtons $ gotoMode $ gotoXKbModel $ gotoXKbLayout $ got
+ oXKbVariant $ gotoXDriver $ gotoXMouseType $ macAddress $ gotoAutoFs $ gotoMo
+ dules $ gotoAdaptPath $ gotoKernelParameters $ gotoBootKernel $ gotoTerminalP
+ ath $ gotoLdapServer $ gotoScannerModel ) )
+olcObjectClasses: {6}( 1.3.6.1.4.1.10098.1.2.1.42 NAME 'gotoDevice' DESC 'GOto
+  - contains environment settings (v2.6)' SUP top STRUCTURAL MUST cn MAY ( got
+ oHotplugDevice $ description ) )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbaf8b44-f065-102e-960a-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/goto.schema b/gosa-core/contrib/openldap/goto.schema
new file mode 100644
index 0000000..0e28655
--- /dev/null
+++ b/gosa-core/contrib/openldap/goto.schema
@@ -0,0 +1,154 @@
+## 
+##
+## goto.schema - Needed by the GONICUS Terminal concept
+##
+## Version 030403
+##
+##
+## Maintainer:		Lars Scheiter 	(scheiter at GONICUS.de)
+##			Cajus Pollmeier	(pollmeier at GONICUS.de)
+##
+##
+## Requires: gohard.schema
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.6 NAME 'gotoPrinterPPD'
+        DESC 'GOto - Gonicus Terminal Concept, PPD data'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.7 NAME 'gotoProfileFlags'
+        DESC 'GOto - Flags for Profile handling - C is for caching'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.8 NAME 'gotoProfileServer'
+        DESC 'GOto - specifies the profile server'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.9 NAME 'gotoShare'
+        DESC 'GOto - specifies a share'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.10 NAME 'gotoLogonScript'
+        DESC 'GOto - specifies a LogonScript'
+        EQUALITY caseIgnoreMatch
+        SUBSTR caseIgnoreSubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.11 NAME 'gotoKioskProfile'
+        DESC 'GOto - specifies a kiosk profile'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.12 NAME 'gotoUserPrinter'
+        DESC 'GOto - keeps printers shown for this user'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.13 NAME 'gotoUserAdminPrinter'
+        DESC 'GOto - keeps printers we are admin for'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.16 NAME 'gotoGroupPrinter'
+        DESC 'GOto - keeps printers shown for this user'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.17 NAME 'gotoGroupAdminPrinter'
+        DESC 'GOto - keeps printers we are admin for'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.14 NAME 'gotoHotplugDevice'
+        DESC 'GOto - keeps hotplug devices'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.15 NAME 'gotoProfileQuota'
+        DESC 'GOto - save quota for home'
+        EQUALITY caseIgnoreIA5Match
+        SUBSTR caseIgnoreIA5SubstringsMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.10098.1.1.11.18 NAME 'gotoHotplugDeviceDN'
+        DESC 'GOto - points to hotplug devices'
+	EQUALITY distinguishedNameMatch
+        SYNTAX 1.3.6.1.4.1.1466.115.121.1.12)
+
+objectclass (1.3.6.1.4.1.10098.1.2.1.1 NAME 'gotoTerminal'
+        DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY
+        MUST ( cn )
+        MAY  ( description $ macAddress $ ipHostNumber $ gotoShare $ goFonHardware ))
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.30 NAME 'gotoWorkstation'
+        DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY
+        MUST ( cn )
+        MAY  ( description $ macAddress $ ipHostNumber $ gotoShare $ goFonHardware ))
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.31 NAME 'gotoPrinter'
+	DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.2)' SUP top STRUCTURAL
+	MUST ( cn )
+	MAY ( labeledURI $ description $ l $ gotoPrinterPPD $ macAddress $ ipHostNumber $ gotoUserPrinter $
+		  gotoUserAdminPrinter $ gotoGroupPrinter $ gotoGroupAdminPrinter ) )
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.32 NAME 'gotoEnvironment'
+	DESC 'GOto - contains environment settings (v2.2)' SUP top AUXILIARY
+	MAY ( gotoProfileServer $ gotoProfileFlags $ gotoXResolution $ gotoShare $ gotoLogonScript $
+		  gotoKioskProfile $ gotoHotplugDevice $ gotoProfileQuota $ gotoHotplugDeviceDN ) )
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.34 NAME 'gotoWorkstationTemplate'
+        DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY
+        MUST ( cn )
+        MAY  ( description $ gotoShare $ goFonHardware $
+	       ghGfxAdapter $ ghNetNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $
+	       ghUsbSupport $ ghMemSize $ ghCpuType $ ghInventoryNumber $
+	       gotoSyslogServer $ gotoNtpServer $ gotoSwapServer $ gotoLpdServer $
+	       gotoFontPath $ gotoFilesystem $ gotoFloppyEnable $ gotoCdromEnable $
+	       gotoLpdEnable $ gotoScannerEnable $ gotoScannerClients $
+	       gotoRootPasswd $ gotoXdmcpServer $ gotoXMethod $ gotoSndModule $
+	       gotoLastUser $ gotoXMonitor $ gotoXHsync $ gotoXVsync $ gotoXResolution $
+	       gotoXColordepth $ gotoXMouseport $ gotoXMouseButtons $ gotoMode $ gotoXKbModel $
+	       gotoXKbLayout $ gotoXKbVariant $ gotoXDriver $ gotoXMouseType $ macAddress $
+	       gotoAutoFs $ gotoModules $ gotoAdaptPath $ gotoKernelParameters $ gotoBootKernel $
+	       gotoTerminalPath $ gotoLdapServer $ gotoScannerModel ))
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.35 NAME 'gotoTerminalTemplate'
+        DESC 'GOto - Gonicus Terminal Concept, objectclass (v2.6.1)' SUP top AUXILIARY
+        MUST ( cn )
+        MAY  ( description $ gotoShare $ goFonHardware $
+	       ghGfxAdapter $ ghNetNic $ ghSoundAdapter $ ghIdeDev $ ghScsiDev $
+	       ghUsbSupport $ ghMemSize $ ghCpuType $ ghInventoryNumber $
+	       gotoSyslogServer $ gotoNtpServer $ gotoSwapServer $ gotoLpdServer $
+	       gotoFontPath $ gotoFilesystem $ gotoFloppyEnable $ gotoCdromEnable $
+	       gotoLpdEnable $ gotoScannerEnable $ gotoScannerClients $
+	       gotoRootPasswd $ gotoXdmcpServer $ gotoXMethod $ gotoSndModule $
+	       gotoLastUser $ gotoXMonitor $ gotoXHsync $ gotoXVsync $ gotoXResolution $
+	       gotoXColordepth $ gotoXMouseport $ gotoXMouseButtons $ gotoMode $ gotoXKbModel $
+	       gotoXKbLayout $ gotoXKbVariant $ gotoXDriver $ gotoXMouseType $ macAddress $
+	       gotoAutoFs $ gotoModules $ gotoAdaptPath $ gotoKernelParameters $ gotoBootKernel $
+	       gotoTerminalPath $ gotoLdapServer $ gotoScannerModel ))
+
+# objectclass for the Terminal Conecept
+objectclass (1.3.6.1.4.1.10098.1.2.1.42 NAME 'gotoDevice'
+	DESC 'GOto - contains environment settings (v2.6)' SUP top STRUCTURAL
+	MUST ( cn )
+	MAY ( gotoHotplugDevice $ description ) )
+
diff --git a/gosa-core/contrib/openldap/rfc2307bis.schema b/gosa-core/contrib/openldap/rfc2307bis.schema
new file mode 100644
index 0000000..db34365
--- /dev/null
+++ b/gosa-core/contrib/openldap/rfc2307bis.schema
@@ -0,0 +1,288 @@
+# builtin
+#
+#attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
+#  DESC 'An integer uniquely identifying a user in an administrative domain'
+#  EQUALITY integerMatch
+#  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+#  SINGLE-VALUE )
+
+# builtin
+#
+#attributetype ( 1.3.6.1.1.1.1.1 NAME 'gidNumber'
+#  DESC 'An integer uniquely identifying a group in an
+#        administrative domain'
+#  EQUALITY integerMatch
+#  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+#  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
+  DESC 'The GECOS field; the common name'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory'
+  DESC 'The absolute path to the home directory'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.4 NAME 'loginShell'
+  DESC 'The path to the login shell'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.6 NAME 'shadowMin'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.7 NAME 'shadowMax'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.8 NAME 'shadowWarning'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.9 NAME 'shadowInactive'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.11 NAME 'shadowFlag'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.12 NAME 'memberUid'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple'
+  DESC 'Netgroup triple'
+  EQUALITY caseIgnoreIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.15 NAME 'ipServicePort'
+  DESC 'Service port number'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol'
+  DESC 'Service protocol name'
+  SUP name )
+
+attributetype ( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber'
+  DESC 'IP protocol number'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber'
+  DESC 'ONC RPC number'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+attributetype ( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber'
+  DESC 'IPv4 addresses as a dotted decimal omitting leading
+        zeros or IPv6 addresses as defined in RFC2373'
+  SUP name )
+
+attributetype ( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber'
+  DESC 'IP network as a dotted decimal, eg. 192.168,
+        omitting leading zeros'
+  SUP name
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber'
+  DESC 'IP netmask as a dotted decimal, eg. 255.255.255.0,
+        omitting leading zeros'
+  EQUALITY caseIgnoreIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.22 NAME 'macAddress'
+  DESC 'MAC address in maximal, colon separated hex
+        notation, eg. 00:00:92:90:ee:e2'
+  EQUALITY caseIgnoreIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.23 NAME 'bootParameter'
+  DESC 'rpc.bootparamd parameter'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.24 NAME 'bootFile'
+  DESC 'Boot image name'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.1.1.1.26 NAME 'nisMapName'
+  DESC 'Name of a A generic NIS map'
+  SUP name )
+
+attributetype ( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry'
+  DESC 'A generic NIS entry'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey'
+  DESC 'NIS public key'
+  EQUALITY octetStringMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey'
+  DESC 'NIS secret key'
+  EQUALITY octetStringMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.30 NAME 'nisDomain'
+  DESC 'NIS domain'
+  EQUALITY caseIgnoreIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
+
+attributetype ( 1.3.6.1.1.1.1.31 NAME 'automountMapName'
+  DESC 'automount Map Name'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.32 NAME 'automountKey'
+  DESC 'Automount Key value'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.1.1.1.33 NAME 'automountInformation'
+  DESC 'Automount information'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY
+  DESC 'Abstraction of an account with POSIX attributes'
+  MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
+  MAY ( userPassword $ loginShell $ gecos $
+        description ) )
+
+objectclass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY
+  DESC 'Additional attributes for shadow passwords'
+  MUST uid
+  MAY ( userPassword $ description $
+        shadowLastChange $ shadowMin $ shadowMax $
+        shadowWarning $ shadowInactive $
+        shadowExpire $ shadowFlag ) )
+
+objectclass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' SUP top AUXILIARY
+  DESC 'Abstraction of a group of accounts'
+  MUST gidNumber
+  MAY ( userPassword $ memberUid $
+        description ) )
+
+objectclass ( 1.3.6.1.1.1.2.3 NAME 'ipService' SUP top STRUCTURAL
+  DESC 'Abstraction an Internet Protocol service.
+        Maps an IP port and protocol (such as tcp or udp)
+        to one or more names; the distinguished value of
+        the cn attribute denotes the services canonical
+        name'
+  MUST ( cn $ ipServicePort $ ipServiceProtocol )
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' SUP top STRUCTURAL
+  DESC 'Abstraction of an IP protocol. Maps a protocol number
+        to one or more names. The distinguished value of the cn
+        attribute denotes the protocols canonical name'
+  MUST ( cn $ ipProtocolNumber )
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' SUP top STRUCTURAL
+  DESC 'Abstraction of an Open Network Computing (ONC)
+       [RFC1057] Remote Procedure Call (RPC) binding.
+       This class maps an ONC RPC number to a name.
+       The distinguished value of the cn attribute denotes
+       the RPC services canonical name'
+  MUST ( cn $ oncRpcNumber )
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' SUP top AUXILIARY
+  DESC 'Abstraction of a host, an IP device. The distinguished
+        value of the cn attribute denotes the hosts canonical
+        name. Device SHOULD be used as a structural class'
+  MUST ( cn $ ipHostNumber )
+  MAY ( userPassword $ l $ description $ manager ) )
+
+objectclass ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' SUP top STRUCTURAL
+  DESC 'Abstraction of a network. The distinguished value of
+        the cn attribute denotes the networks canonical name'
+  MUST ipNetworkNumber
+  MAY ( cn $ ipNetmaskNumber $ l $ description $ manager ) )
+
+objectclass ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' SUP top STRUCTURAL
+  DESC 'Abstraction of a netgroup. May refer to other netgroups'
+  MUST cn
+  MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) )
+
+objectclass ( 1.3.6.1.1.1.2.9 NAME 'nisMap' SUP top STRUCTURAL
+  DESC 'A generic abstraction of a NIS map'
+  MUST nisMapName
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.10 NAME 'nisObject' SUP top STRUCTURAL
+  DESC 'An entry in a NIS map'
+  MUST ( cn $ nisMapEntry $ nisMapName )
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' SUP top AUXILIARY
+  DESC 'A device with a MAC address; device SHOULD be
+        used as a structural class'
+  MAY macAddress )
+
+objectclass ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' SUP top AUXILIARY
+  DESC 'A device with boot parameters; device SHOULD be
+        used as a structural class'
+  MAY ( bootFile $ bootParameter ) )
+
+objectclass ( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' SUP top AUXILIARY
+  DESC 'An object with a public and secret key'
+  MUST ( cn $ nisPublicKey $ nisSecretKey )
+  MAY ( uidNumber $ description ) )
+
+objectclass ( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' SUP top AUXILIARY
+  DESC 'Associates a NIS domain with a naming context'
+  MUST nisDomain )
+
+objectclass ( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTURAL
+  MUST ( automountMapName )
+  MAY description )
+
+objectclass ( 1.3.6.1.1.1.2.17 NAME 'automount' SUP top STRUCTURAL
+  DESC 'Automount information'
+  MUST ( automountKey $ automountInformation )
+  MAY description )
+## namedObject is needed for groups without members
+objectclass ( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top
+       STRUCTURAL MAY cn )
+
diff --git a/gosa-core/contrib/openldap/samba.schema b/gosa-core/contrib/openldap/samba.schema
new file mode 100644
index 0000000..f71c344
--- /dev/null
+++ b/gosa-core/contrib/openldap/samba.schema
@@ -0,0 +1,152 @@
+##
+## schema file for OpenLDAP 2.0.x
+## Schema for storing Samba's smbpasswd file in LDAP
+## OIDs are owned by the Samba Team
+##
+## Prerequisite schemas - uid (cosine.schema)
+##                      - displayName (inetorgperson.schema)
+##
+## 1.3.6.1.4.1.7165.2.1.x - attributetypes
+## 1.3.6.1.4.1.7165.2.2.x - objectclasses
+##
+
+##
+## Password hashes
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword'
+	DESC 'LanManager Passwd'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword'
+	DESC 'NT Passwd'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+##
+## Account flags in string format ([UWDX     ])
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags'
+	DESC 'Account Flags'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
+
+## 
+## Password timestamps & policies
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet'
+	DESC 'NT pwdLastSet'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime'
+	DESC 'NT logonTime'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime'
+	DESC 'NT logoffTime'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime'
+	DESC 'NT kickoffTime'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange'
+	DESC 'NT pwdCanChange'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange'
+	DESC 'NT pwdMustChange'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+##
+## string settings
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive'
+	DESC 'NT homeDrive'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath'
+	DESC 'NT scriptPath'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath'
+	DESC 'NT profilePath'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations'
+	DESC 'userWorkstations'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome'
+	DESC 'smbHome'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain'
+	DESC 'Windows NT domain to which the user belongs'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
+
+##
+## user and group RID
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid'
+	DESC 'NT rid'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID'
+	DESC 'NT Group RID'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+##
+## The smbPasswordEntry objectclass has been depreciated in favor of the
+## sambaAccount objectclass
+##
+#objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY
+#        DESC 'Samba smbpasswd entry'
+#        MUST ( uid $ uidNumber )
+#        MAY  ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags ))
+
+#objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL
+#	DESC 'Samba Account'
+#	MUST ( uid $ rid ) 
+#	MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
+#               logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ 
+#               displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
+#               description $ userWorkstations $ primaryGroupID $ domain ))
+
+## The X.500 data model (and therefore LDAPv3) says that each entry can 
+## only have one structural objectclass.  OpenLDAP 2.0 does not enforce 
+## this currently but will in v2.1
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY
+	DESC 'Samba Auxilary Account'
+	MUST ( uid $ rid ) 
+	MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
+               logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ 
+               displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
+               description $ userWorkstations $ primaryGroupID $ domain ))
+
+##
+## Used for Winbind experimentation
+##
+#objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
+#	DESC 'Pool for allocating UNIX uids'
+#	MUST ( uidNumber $ cn ) )
+
+#objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
+#	DESC 'Pool for allocating UNIX gids'
+#	MUST ( gidNumber $ cn ) )
+
diff --git a/gosa-core/contrib/openldap/samba3.schema b/gosa-core/contrib/openldap/samba3.schema
new file mode 100644
index 0000000..8f82ddd
--- /dev/null
+++ b/gosa-core/contrib/openldap/samba3.schema
@@ -0,0 +1,575 @@
+##
+## schema file for OpenLDAP 2.x
+## Schema for storing Samba user accounts and group maps in LDAP
+## OIDs are owned by the Samba Team
+##
+## Prerequisite schemas - uid         (cosine.schema)
+##                      - displayName (inetorgperson.schema)
+##                      - gidNumber   (nis.schema)
+##
+## 1.3.6.1.4.1.7165.2.1.x - attributetypes
+## 1.3.6.1.4.1.7165.2.2.x - objectclasses
+##
+## Printer support
+## 1.3.6.1.4.1.7165.2.3.1.x - attributetypes
+## 1.3.6.1.4.1.7165.2.3.2.x - objectclasses
+##
+## Samba4
+## 1.3.6.1.4.1.7165.4.1.x - attributetypes
+## 1.3.6.1.4.1.7165.4.2.x - objectclasses
+## 1.3.6.1.4.1.7165.4.3.x - LDB/LDAP Controls
+## 1.3.6.1.4.1.7165.4.4.x - LDB/LDAP Extended Operations
+## 1.3.6.1.4.1.7165.4.255.x - mapped OIDs due to conflicts between AD and standards-track
+##
+## ----- READ THIS WHEN ADDING A NEW ATTRIBUTE OR OBJECT CLASS ------
+##
+## Run the 'get_next_oid' bash script in this directory to find the 
+## next available OID for attribute type and object classes.
+##
+##   $ ./get_next_oid
+##   attributetype ( 1.3.6.1.4.1.7165.2.1.XX NAME ....
+##   objectclass ( 1.3.6.1.4.1.7165.2.2.XX NAME ....
+##
+## Also ensure that new entries adhere to the declaration style
+## used throughout this file
+##
+##    <attributetype|objectclass> ( 1.3.6.1.4.1.7165.2.XX.XX NAME ....
+##                               ^ ^                        ^
+##
+## The spaces are required for the get_next_oid script (and for 
+## readability).
+##
+## ------------------------------------------------------------------
+
+# objectIdentifier SambaRoot 1.3.6.1.4.1.7165
+# objectIdentifier Samba3 SambaRoot:2
+# objectIdentifier Samba3Attrib Samba3:1
+# objectIdentifier Samba3ObjectClass Samba3:2
+# objectIdentifier Samba4 SambaRoot:4
+
+########################################################################
+##                            HISTORICAL                              ##
+########################################################################
+
+##
+## Password hashes
+##
+#attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword'
+#	DESC 'LanManager Passwd'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword'
+#	DESC 'NT Passwd'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+##
+## Account flags in string format ([UWDX     ])
+##
+#attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags'
+#	DESC 'Account Flags'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
+
+##
+## Password timestamps & policies
+##
+#attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet'
+#	DESC 'NT pwdLastSet'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime'
+#	DESC 'NT logonTime'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime'
+#	DESC 'NT logoffTime'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime'
+#	DESC 'NT kickoffTime'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange'
+#	DESC 'NT pwdCanChange'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange'
+#	DESC 'NT pwdMustChange'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+##
+## string settings
+##
+#attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive'
+#	DESC 'NT homeDrive'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath'
+#	DESC 'NT scriptPath'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath'
+#	DESC 'NT profilePath'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations'
+#	DESC 'userWorkstations'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome'
+#	DESC 'smbHome'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain'
+#	DESC 'Windows NT domain to which the user belongs'
+#	EQUALITY caseIgnoreIA5Match
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} )
+
+##
+## user and group RID
+##
+#attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid'
+#	DESC 'NT rid'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID'
+#	DESC 'NT Group RID'
+#	EQUALITY integerMatch
+#	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+##
+## The smbPasswordEntry objectclass has been depreciated in favor of the
+## sambaAccount objectclass
+##
+#objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY
+#        DESC 'Samba smbpasswd entry'
+#        MUST ( uid $ uidNumber )
+#        MAY  ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags ))
+
+#objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL
+#	DESC 'Samba Account'
+#	MUST ( uid $ rid )
+#	MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
+#               logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
+#               displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
+#               description $ userWorkstations $ primaryGroupID $ domain ))
+
+#objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY
+#	DESC 'Samba Auxiliary Account'
+#	MUST ( uid $ rid )
+#	MAY  ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
+#              logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
+#              displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
+#              description $ userWorkstations $ primaryGroupID $ domain ))
+
+########################################################################
+##                        END OF HISTORICAL                           ##
+########################################################################
+
+#######################################################################
+##                Attributes used by Samba 3.0 schema                ##
+#######################################################################
+
+##
+## Password hashes
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword'
+	DESC 'LanManager Password'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword'
+	DESC 'MD4 hash of the unicode password'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
+
+##
+## Account flags in string format ([UWDX     ])
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags'
+	DESC 'Account Flags'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE )
+
+##
+## Password timestamps & policies
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.27 NAME 'sambaPwdLastSet'
+	DESC 'Timestamp of the last password update'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.28 NAME 'sambaPwdCanChange'
+	DESC 'Timestamp of when the user is allowed to update the password'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.29 NAME 'sambaPwdMustChange'
+	DESC 'Timestamp of when the password will expire'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.30 NAME 'sambaLogonTime'
+	DESC 'Timestamp of last logon'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.31 NAME 'sambaLogoffTime'
+	DESC 'Timestamp of last logoff'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.32 NAME 'sambaKickoffTime'
+	DESC 'Timestamp of when the user will be logged off automatically'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.48 NAME 'sambaBadPasswordCount'
+	DESC 'Bad password attempt count'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.49 NAME 'sambaBadPasswordTime'
+	DESC 'Time of the last bad password attempt'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.55 NAME 'sambaLogonHours'
+	DESC 'Logon Hours'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{42} SINGLE-VALUE )
+
+##
+## string settings
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.33 NAME 'sambaHomeDrive'
+	DESC 'Driver letter of home directory mapping'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.34 NAME 'sambaLogonScript'
+	DESC 'Logon script path'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.35 NAME 'sambaProfilePath'
+	DESC 'Roaming profile path'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.36 NAME 'sambaUserWorkstations'
+	DESC 'List of user workstations the user is allowed to logon to'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.37 NAME 'sambaHomePath'
+	DESC 'Home directory UNC path'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.38 NAME 'sambaDomainName'
+	DESC 'Windows NT domain to which the user belongs'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.47 NAME 'sambaMungedDial'
+	DESC 'Base64 encoded user parameter string'
+	EQUALITY caseExactMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.54 NAME 'sambaPasswordHistory'
+	DESC 'Concatenated MD5 hashes of the salted NT passwords used on this account'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
+
+##
+## SID, of any type
+##
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID'
+	DESC 'Security ID'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseExactIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
+
+##
+## Primary group SID, compatible with ntSid
+##
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID'
+	DESC 'Primary Group Security ID'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.51 NAME 'sambaSIDList'
+	DESC 'Security ID List'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} )
+
+##
+## group mapping attributes
+##
+attributetype ( 1.3.6.1.4.1.7165.2.1.19 NAME 'sambaGroupType'
+	DESC 'NT Group Type'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+##
+## Store info on the domain
+##
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid'
+	DESC 'Next NT rid to give our for users'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid'
+	DESC 'Next NT rid to give out for groups'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid'
+	DESC 'Next NT rid to give out for anything'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase'
+	DESC 'Base at which the samba RID generation algorithm should operate'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.41 NAME 'sambaShareName'
+	DESC 'Share Name'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.42 NAME 'sambaOptionName'
+	DESC 'Option Name'
+	EQUALITY caseIgnoreMatch
+	SUBSTR caseIgnoreSubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.43 NAME 'sambaBoolOption'
+	DESC 'A boolean option'
+	EQUALITY booleanMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.44 NAME 'sambaIntegerOption'
+	DESC 'An integer option'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.45 NAME 'sambaStringOption'
+	DESC 'A string option'
+	EQUALITY caseExactIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.46 NAME 'sambaStringListOption'
+	DESC 'A string list option'
+	EQUALITY caseIgnoreMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+
+##attributetype ( 1.3.6.1.4.1.7165.2.1.50 NAME 'sambaPrivName' 
+##	SUP name )
+
+##attributetype ( 1.3.6.1.4.1.7165.2.1.52 NAME 'sambaPrivilegeList'
+##	DESC 'Privileges List'
+##	EQUALITY caseIgnoreIA5Match
+##	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} )
+
+attributetype ( 1.3.6.1.4.1.7165.2.1.53 NAME 'sambaTrustFlags'
+	DESC 'Trust Password Flags'
+	EQUALITY caseIgnoreIA5Match
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+# "min password length"
+attributetype ( 1.3.6.1.4.1.7165.2.1.58 NAME 'sambaMinPwdLength'
+	DESC 'Minimal password length (default: 5)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "password history"
+attributetype ( 1.3.6.1.4.1.7165.2.1.59 NAME 'sambaPwdHistoryLength'
+	DESC 'Length of Password History Entries (default: 0 => off)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "user must logon to change password"
+attributetype ( 1.3.6.1.4.1.7165.2.1.60 NAME 'sambaLogonToChgPwd'
+	DESC 'Force Users to logon for password change (default: 0 => off, 2 => on)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "maximum password age"
+attributetype ( 1.3.6.1.4.1.7165.2.1.61 NAME 'sambaMaxPwdAge'
+	DESC 'Maximum password age, in seconds (default: -1 => never expire passwords)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "minimum password age"
+attributetype ( 1.3.6.1.4.1.7165.2.1.62 NAME 'sambaMinPwdAge'
+	DESC 'Minimum password age, in seconds (default: 0 => allow immediate password change)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "lockout duration"
+attributetype ( 1.3.6.1.4.1.7165.2.1.63 NAME 'sambaLockoutDuration'
+	DESC 'Lockout duration in minutes (default: 30, -1 => forever)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "reset count minutes"
+attributetype ( 1.3.6.1.4.1.7165.2.1.64 NAME 'sambaLockoutObservationWindow'
+	DESC 'Reset time after lockout in minutes (default: 30)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "bad lockout attempt"
+attributetype ( 1.3.6.1.4.1.7165.2.1.65 NAME 'sambaLockoutThreshold'
+	DESC 'Lockout users after bad logon attempts (default: 0 => off)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "disconnect time"
+attributetype ( 1.3.6.1.4.1.7165.2.1.66 NAME 'sambaForceLogoff'
+	DESC 'Disconnect Users outside logon hours (default: -1 => off, 0 => on)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+# "refuse machine password change"
+attributetype ( 1.3.6.1.4.1.7165.2.1.67 NAME 'sambaRefuseMachinePwdChange'
+	DESC 'Allow Machine Password changes (default: 0 => off)'
+	EQUALITY integerMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
+
+#
+attributetype ( 1.3.6.1.4.1.7165.2.1.68 NAME 'sambaClearTextPassword'
+	DESC 'Clear text password (used for trusted domain passwords)'
+	EQUALITY octetStringMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
+
+#
+attributetype ( 1.3.6.1.4.1.7165.2.1.69 NAME 'sambaPreviousClearTextPassword'
+	DESC 'Previous clear text password (used for trusted domain passwords)'
+	EQUALITY octetStringMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
+
+
+
+#######################################################################
+##              objectClasses used by Samba 3.0 schema               ##
+#######################################################################
+
+## The X.500 data model (and therefore LDAPv3) says that each entry can
+## only have one structural objectclass.  OpenLDAP 2.0 does not enforce
+## this currently but will in v2.1
+
+##
+## added new objectclass (and OID) for 3.0 to help us deal with backwards
+## compatibility with 2.2 installations (e.g. ldapsam_compat)  --jerry
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY
+	DESC 'Samba 3.0 Auxilary SAM Account'
+	MUST ( uid $ sambaSID )
+	MAY  ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $
+	       sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $
+	       sambaPwdCanChange $ sambaPwdMustChange $ sambaAcctFlags $
+               displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $
+	       sambaProfilePath $ description $ sambaUserWorkstations $
+	       sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $
+	       sambaBadPasswordCount $ sambaBadPasswordTime $
+	       sambaPasswordHistory $ sambaLogonHours))
+
+##
+## Group mapping info
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.4 NAME 'sambaGroupMapping' SUP top AUXILIARY
+	DESC 'Samba Group Mapping'
+	MUST ( gidNumber $ sambaSID $ sambaGroupType )
+	MAY  ( displayName $ description $ sambaSIDList ))
+
+##
+## Trust password for trust relationships (any kind)
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.14 NAME 'sambaTrustPassword' SUP top STRUCTURAL
+	DESC 'Samba Trust Password'
+	MUST ( sambaDomainName $ sambaNTPassword $ sambaTrustFlags )
+	MAY ( sambaSID $ sambaPwdLastSet ))
+
+##
+## Trust password for trusted domains
+## (to be stored beneath the trusting sambaDomain object in the DIT)
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.15 NAME 'sambaTrustedDomainPassword' SUP top STRUCTURAL
+	DESC 'Samba Trusted Domain Password'
+	MUST ( sambaDomainName $ sambaSID $
+	       sambaClearTextPassword $ sambaPwdLastSet )
+	MAY  ( sambaPreviousClearTextPassword ))
+
+##
+## Whole-of-domain info
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL
+	DESC 'Samba Domain Information'
+	MUST ( sambaDomainName $ 
+	       sambaSID ) 
+	MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $
+	      sambaAlgorithmicRidBase $ 
+	      sambaMinPwdLength $ sambaPwdHistoryLength $ sambaLogonToChgPwd $
+	      sambaMaxPwdAge $ sambaMinPwdAge $
+	      sambaLockoutDuration $ sambaLockoutObservationWindow $ sambaLockoutThreshold $
+	      sambaForceLogoff $ sambaRefuseMachinePwdChange ))
+
+##
+## used for idmap_ldap module
+##
+objectclass ( 1.3.6.1.4.1.7165.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY
+        DESC 'Pool for allocating UNIX uids/gids'
+        MUST ( uidNumber $ gidNumber ) )
+
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY
+        DESC 'Mapping from a SID to an ID'
+        MUST ( sambaSID )
+	MAY ( uidNumber $ gidNumber ) )
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL
+	DESC 'Structural Class for a SID'
+	MUST ( sambaSID ) )
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.10 NAME 'sambaConfig' SUP top AUXILIARY
+	DESC 'Samba Configuration Section'
+	MAY ( description ) )
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.11 NAME 'sambaShare' SUP top STRUCTURAL
+	DESC 'Samba Share Section'
+	MUST ( sambaShareName )
+	MAY ( description ) )
+
+objectclass ( 1.3.6.1.4.1.7165.2.2.12 NAME 'sambaConfigOption' SUP top STRUCTURAL
+	DESC 'Samba Configuration Option'
+	MUST ( sambaOptionName )
+	MAY ( sambaBoolOption $ sambaIntegerOption $ sambaStringOption $ 
+	      sambaStringListoption $ description ) )
+
+
+## retired during privilege rewrite
+##objectclass ( 1.3.6.1.4.1.7165.2.2.13 NAME 'sambaPrivilege' SUP top AUXILIARY
+##	DESC 'Samba Privilege'
+##	MUST ( sambaSID )
+##	MAY ( sambaPrivilegeList ) )
diff --git a/gosa-core/contrib/openldap/slapd.conf b/gosa-core/contrib/openldap/slapd.conf
new file mode 100644
index 0000000..82e0719
--- /dev/null
+++ b/gosa-core/contrib/openldap/slapd.conf
@@ -0,0 +1,239 @@
+# This is the main ldapd configuration file. See slapd.conf(5) for more
+# info on the configuration options.
+
+##
+## NOTE: This is an example. You should use the template shipped
+##       with your distribution and adapt it to your needs.
+##
+
+# Schema and objectClass definitions, depending on your
+# LDAP setup
+include		/etc/ldap/schema/core.schema
+include		/etc/ldap/schema/cosine.schema
+include 	/etc/ldap/schema/inetorgperson.schema
+include 	/etc/ldap/schema/openldap.schema
+include		/etc/ldap/schema/nis.schema
+include		/etc/ldap/schema/misc.schema
+
+# These should be present for GOsa.
+include		/etc/ldap/schema/gosa/samba3.schema
+include		/etc/ldap/schema/gosa/gosystem.schema
+include		/etc/ldap/schema/gosa/gofon.schema
+include		/etc/ldap/schema/gosa/gofax.schema
+include		/etc/ldap/schema/gosa/goto.schema
+include		/etc/ldap/schema/gosa/goserver.schema
+include		/etc/ldap/schema/gosa/gosa-samba3.schema
+include		/etc/ldap/schema/gosa/trust.schema
+
+# Security settings
+# Parameters: sasl, ssf, tls, transport, update_sasl, update_ssf,
+#             update_tls, update_transport
+#security 		update_sasl=128,uptate_tls=128
+
+# Require settings
+# Paramters: none, authc, bind, LDAPv3, SASL (strong)
+#require			authc, LDAPv3
+
+# Allow settings
+# Parameters: none, bind_v2, tls_2_anon, bind_anon_cred, bind_anon_dn,
+#             update_anon
+#allow			bind_v2
+
+# Disallow settings
+# Parameters: bind_anon, bind_simple_unprotected, tls_2_anon,
+#             bind_simple, bind_krbv4, tls_authc
+
+# Password hash default value
+# Parameters: {SHA}, {SMD5}, {MD4}, {CRYPT}, {CLEARTEXT}
+password-hash		{CRYPT}
+
+# Search base
+defaultsearchbase	dc=gonicus,dc=de
+
+# Where clients are refered to if no
+# match is found locally
+#referral	ldap://some.other.ldap.server
+
+## TLS setup, needs certificates
+#TLSCipherSuite HIGH:MEDIUM:+SSLv2
+#TLSCertificateFile /etc/ssl/certs/slapd.pem
+#TLSCertificateKeyFile /etc/ssl/certs/slapd.pem
+
+## SASL setup
+#sasl-authz-policy
+#sasl-host	gosa.gonicus.local
+#sasl-realm	GONICUS.LOCAL
+#sasl-regexp	cn=(.*),ou=(.*)	cn=$1,ou=$2,ou=People,dc=gonicus,dc=de
+#sasl-secprops	noanonymous
+
+## Kerberos setup
+#srvtab		/etc/krb5.keytab.ldap
+
+# Where the pid file is put. The init.d script
+# will not stop the server if you change this.
+pidfile		/var/run/slapd/slapd.pid
+
+# List of arguments that were passed to the server
+argsfile	/var/run/slapd/slapd.args
+
+# Read slapd.conf(5) for possible values
+loglevel	1024
+
+# Where the dynamically loaded modules are stored
+modulepath      /usr/lib/ldap
+moduleload      back_hdb
+moduleload      back_monitor
+#moduleload      back_shell
+
+# Some tuning parameters
+#threads		64
+#concurrency		32
+#conn_max_pending	100
+#conn_max_pending_auth	250
+#reverse-lookup		off
+#sizelimit		1000
+#timelimit		30
+#idletimeout		30
+
+# Limits
+#limits	anonymous	size.soft=500 time.soft=5
+#limits user		size=none time.soft=30
+
+# Speed up member add/mod/delete operations
+sortvals member memberUid roleOccupant
+
+access to dn.base=""
+        by * read
+
+access to dn.subtree=cn=Monitor
+        by * read
+
+# Access to schema information
+#access to dn.subtree=""
+#        by * read
+
+# The userPassword/shadow Emtries by default can be
+# changed by the entry owning it if they are authenticated.
+# Others should not be able to see it, except the admin
+# entry below
+access to attrs=userPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange,shadowMax,shadowExpire
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" write
+	by anonymous auth
+	by self write
+	by * none 
+
+# Deny access to imap/fax/kerberos admin passwords stored
+# in ldap tree
+access to attrs=goImapPassword
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" write
+	by * none 
+access to attrs=goKrbPassword
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" write
+	by * none 
+access to attrs=goFaxPassword
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" write
+	by * none 
+
+# Let servers write last user attribute
+access to attrs=gotoLastUser
+	by * write
+
+# Samba passwords by default can be changed
+# by the entry owning it if they are authenticated.
+# Others should not be able to see it, except the
+# admin entry below
+access to attrs=sambaLmPassword,sambaNtPassword
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" write
+	by anonymous auth
+	by self write
+	by * none 
+
+# What trees should be readable, depends on your policy. Either
+# use this entry and specify what should be readable, or leave
+# the access to * => by * read below untouched
+#access to dn="ou=(people|groups)"
+#	by * read
+
+# The admin dn has full write access
+access to *
+	by dn.regex="uid=[^/]+/admin\+(realm=GONICUS.LOCAL)?" =wrscx
+	by * read
+#	by peername="ip=127\.0\.0\.1" read
+#	by * none
+
+#######################################################################
+# database definitions
+#######################################################################
+
+# Monitor backend
+database	monitor
+
+# The backend type, ldbm, is the default standard
+database	hdb
+cachesize 5000
+mode		  0600
+
+# The base of your directory
+suffix		"dc=gonicus,dc=de"
+checkpoint	512 720
+
+# Sample password is "tester", generate a new one using the mkpasswd
+# utility and put the string after {crypt}
+rootdn	"cn=ldapadmin,dc=gonicus,dc=de"
+rootpw  {crypt}OuorOLd3VqvC2
+
+# Indexing
+index   default                                                sub
+index   uid,mail                                               eq
+index   gosaSnapshotDN                                         eq
+index   gosaSnapshotTimestamp                                  eq,sub
+index   gosaMailAlternateAddress,gosaMailForwardingAddress     eq
+index   cn,sn,givenName,ou                                     pres,eq,sub
+index   objectClass                                            pres,eq
+index   uidNumber,gidNumber,memberuid                          eq
+index   roleOccupant                                           eq
+index   gosaSubtreeACL,gosaObject,gosaUser                     pres,eq
+
+# Indexing for Kolab
+#index	alias							eq,sub
+#index	kolabDeleteflag						eq
+#index	kolabHomeServer						eq
+#index  member							pres,eq
+
+# Indexing for Samba 3
+index   sambaSID                                               eq
+index   sambaPrimaryGroupSID                                   eq
+index   sambaDomainName                                        eq
+
+# Indexing for DHCP
+#index  dhcpHWAddress                                          eq
+#index  dhcpClassData                                          eq
+
+# Indexing for DNS
+#index  zoneName                                               eq
+#index  relativeDomainName                                     eq
+
+# Where the database file are physically stored
+directory	"/var/lib/ldap"
+
+# Log modifications and write entryUUID
+lastmod on
+
+
+# Example replication using admin account. This will require taking the
+# out put of this database using slapcat(8C), and then importing that into
+# the replica using slapadd(8C).
+
+# Replication setup
+#replogfile /var/log/ldap-replicalog
+#replica host=ldap-2.gonicus.local
+#	binddn="cn=replicator,dc=gonicus,dc=de" bindmethod=simple credentials=secret
+
+# Dummy database for config replication
+#database        shell
+#suffix          "dc=gonicus,dc=shell"
+#search          /etc/ldap/shell/process.pl
+#add		 /etc/ldap/shell/process.pl
+
+# End of ldapd configuration file
+
diff --git a/gosa-core/contrib/openldap/trust.ldif b/gosa-core/contrib/openldap/trust.ldif
new file mode 100644
index 0000000..292bf46
--- /dev/null
+++ b/gosa-core/contrib/openldap/trust.ldif
@@ -0,0 +1,18 @@
+dn: cn={13}trust
+objectClass: olcSchemaConfig
+cn: {13}trust
+olcAttributeTypes: {0}( 5.3.6.1.1.1.1.0 NAME 'trustModel' DESC 'Access scheme'
+  EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6
+ .1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+olcAttributeTypes: {1}( 5.3.6.1.1.1.1.1 NAME 'accessTo' DESC 'Access to which 
+ servers user is allowed' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Subs
+ tringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+olcObjectClasses: {0}( 5.3.6.1.1.1.2.0 NAME 'trustAccount' DESC 'Sets trust ac
+ counts information' SUP top AUXILIARY MUST trustModel MAY accessTo )
+structuralObjectClass: olcSchemaConfig
+entryUUID: fbafdc48-f065-102e-960d-79233977c302
+creatorsName: cn=config
+createTimestamp: 20100510095600Z
+entryCSN: 20100510095600.855485Z#000000#000#000000
+modifiersName: cn=config
+modifyTimestamp: 20100510095600Z
diff --git a/gosa-core/contrib/openldap/trust.schema b/gosa-core/contrib/openldap/trust.schema
new file mode 100644
index 0000000..6b6fab0
--- /dev/null
+++ b/gosa-core/contrib/openldap/trust.schema
@@ -0,0 +1,21 @@
+# this file goes into /etc/openldap/schema or into your schema directory for your LDAP v3 server
+# make sure you have it, otherwise, Directory administrator will complain when changing user accounts
+# unless you don't do schema checking
+
+attributetype ( 5.3.6.1.1.1.1.0 NAME 'trustModel'
+	DESC 'Access scheme'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( 5.3.6.1.1.1.1.1 NAME 'accessTo'
+	DESC 'Access to which servers user is allowed'
+	EQUALITY caseIgnoreIA5Match
+	SUBSTR caseIgnoreIA5SubstringsMatch
+	SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+objectclass ( 5.3.6.1.1.1.2.0 NAME 'trustAccount' SUP top AUXILIARY
+	DESC 'Sets trust accounts information'
+	MUST ( trustModel )
+	MAY ( accessTo ) )
+
diff --git a/gosa-core/contrib/shells b/gosa-core/contrib/shells
new file mode 100644
index 0000000..e8805ec
--- /dev/null
+++ b/gosa-core/contrib/shells
@@ -0,0 +1,6 @@
+/bin/ash
+/bin/bash
+/bin/csh
+/bin/sh
+/bin/ksh
+/bin/tcsh
diff --git a/gosa-core/debian/NEWS.Debian b/gosa-core/debian/NEWS.Debian
new file mode 100644
index 0000000..4c308dd
--- /dev/null
+++ b/gosa-core/debian/NEWS.Debian
@@ -0,0 +1,20 @@
+The GOsa schema have been moved to a new place, they are now
+in /etc/ldap/schema/gosa.
+
+You have to adapt you slapd.conf accordingly
+
+# These should be present for GOsa.
+include         /etc/ldap/schema/gosa/samba3.schema
+include         /etc/ldap/schema/gosa/gosystem.schema
+include         /etc/ldap/schema/gosa/gofon.schema
+include         /etc/ldap/schema/gosa/gofax.schema
+include         /etc/ldap/schema/gosa/goto.schema
+include         /etc/ldap/schema/gosa/goserver.schema
+include         /etc/ldap/schema/gosa/gosa-samba3.schema
+include         /etc/ldap/schema/gosa/trust.schema
+
+After adapting you can remove the gosa schema in /etc/ldap/schema
+
+Benoit Mortier 01/05/2010
+
+
diff --git a/gosa-core/debian/README.Debian b/gosa-core/debian/README.Debian
new file mode 100644
index 0000000..e172daa
--- /dev/null
+++ b/gosa-core/debian/README.Debian
@@ -0,0 +1,73 @@
+GOsa 2.6 for debian
+-------------------
+
+* Configure GOsa
+
+By default you can point your favorite browser to the GOsa setup by
+using this URL:
+
+http://you.server.address/gosa
+
+Follow the instructions on the screen.
+
+
+* Security related information
+
+GOsa is running as the www-data user. This makes it possible for other
+web applications (well, this is the rule for allmost every web application
+that stores information somewhere around) to read the gosa.conf file, which
+may contain vital information about your LDAP service.
+
+To make it harder to extract these passwords, they get encrypted by a
+master password only readable by the GOsa location.
+
+You can simply migrate old existing passwords by typing:
+
+# a2enmod headers
+# gosa-encrypt-passwords
+# /etc/init.d/apache2 reload
+
+If this is not enough for you (exploitable PHP code may make it possible to
+read the webservers memory), you can simply create another webserver instance
+running as a different user on different port for GOsa exclusively. Or use
+apache2-mpm-itk and assign a different user to a virtual host.
+
+
+* Generic information
+
+Getting GOsa running itself is not very complicated. Problems normally
+arise when integrating it in various services.
+
+To play nice with your LDAP, you need to include the gosa schema files
+into your LDAP configuration. For Debian, you should install the
+gosa-schema package and add at least the following lines to your
+LDAP-servers slapd.conf:
+
+Samba 3:
+include         /etc/ldap/schema/gosa/samba3.schema
+include         /etc/ldap/schema/gosa/trust.schema
+include         /etc/ldap/schema/gosa/gosystem.schema
+include         /etc/ldap/schema/gosa/gofon.schema
+include         /etc/ldap/schema/gosa/goto.schema
+include         /etc/ldap/schema/gosa/gosa-samba3.schema
+include         /etc/ldap/schema/gosa/gofax.schema
+include         /etc/ldap/schema/gosa/goserver.schema
+include         /etc/ldap/schema/gosa/goto-mime.schema
+
+There's no need to have samba services up and running, GOsa only
+uses the NT/LM attributes to pre-generate samba password hashes -
+to allow easy switching of account properties without asking for
+passwords after adding samba accounts.
+
+
+* Smarty PHP errors
+
+There might pop up messages about "Only variables should be passed by
+reference" when using PHP5. I can't do anything about them - these are
+cause by smarty. To get rid of them set your "error_reporting" in the
+php.ini to "E_ALL ^ E_NOTICE". This is a workaround only, wait for the
+debian smarty package to support PHP5 in a propper way.
+
+
+ -- Cajus Pollmeier <cajus at debian.org>  Mon, 07 Apr 2008 11:18:53 +0200
+
diff --git a/gosa-core/debian/changelog b/gosa-core/debian/changelog
new file mode 100644
index 0000000..814ecb9
--- /dev/null
+++ b/gosa-core/debian/changelog
@@ -0,0 +1,60 @@
+gosa (2.6.10-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Wed, 05 May 2010 08:25:05 +0200
+
+gosa (2.6.9-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Mon, 15 Mar 2010 11:28:48 +0100
+
+gosa (2.6.8-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Mon, 15 Feb 2010 14:19:14 +0100
+
+gosa (2.6.7-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Wed, 27 Jan 2010 21:53:12 +0100
+
+gosa (2.6.6-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Mon, 05 Oct 2009 15:03:41 +0200
+
+gosa (2.6.5-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Wed, 25 Feb 2009 13:36:18 +0100
+
+gosa (2.6.4-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Fri, 06 Feb 2009 11:35:38 +0100
+
+gosa (2.6.3-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Thu, 15 Jan 2009 11:43:15 +0100
+
+gosa (2.6.2-1) unstable; urgency=low
+
+  * New upstream release 
+
+ -- Cajus Pollmeier <cajus at debian.org>  Fri, 19 Dec 2008 09:51:32 +0100
+
+gosa (2.6.1-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Cajus Pollmeier <cajus at debian.org>  Mon, 07 Apr 2008 11:18:53 +0200
+
diff --git a/gosa-core/debian/compat b/gosa-core/debian/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/gosa-core/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/gosa-core/debian/control b/gosa-core/debian/control
new file mode 100644
index 0000000..704bc92
--- /dev/null
+++ b/gosa-core/debian/control
@@ -0,0 +1,103 @@
+Source: gosa
+Section: web
+Priority: optional
+Maintainer: GOsa packages maintainers group <gosa-pkg at oss.gonicus.de>
+Uploaders: Cajus Pollmeier <cajus at debian.org>, Benoit Mortier <benoit.mortier at opensides.be>
+Build-Depends: debhelper (>= 5), dpatch
+Build-Depends-Indep: po-debconf
+Standards-Version: 3.8.4
+Homepage: https://oss.gonicus.de/labs/gosa/
+Vcs-Browser: https://oss.gonicus.de/repositories/gosa/trunk
+Vcs-Svn: https://oss.gonicus.de/repositories/gosa/trunk
+DM-Upload-Allowed: yes
+
+Package: gosa
+Architecture: all
+Depends: php5, php5-cli, apache2-mpm-prefork | lighttpd , exim4 | mail-transport-agent, php5-gd, php5-imap, php5-ldap, php5-mcrypt, php5-mysql, php5-imagick | imagemagick (>= 5.4.4.5-1) | graphicsmagick-im-compat, libcrypt-smbhash-perl, smarty, php5-recode, smarty-gettext, smarty-acl-render, gettext, ${misc:Depends}, libapache2-mod-php5 | php5-cgi
+Suggests: gosa-si-server, cyrus21-imapd (>= 2.1.11), postfix-ldap, slapd, gosa-schema, php5-suhosin, php-apc, php-fpdf
+Description: Web Based LDAP Administration Program
+ Provided is access to posix, shadow, samba, proxy, fax, pureftp and
+ kerberos accounts. It is able to manage the postfix/cyrus server
+ combination and can write user adapted sieve scripts.
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-dev
+Architecture: all
+Depends: gosa, php5-cli, latex2html, lyx, ${misc:Depends}
+Description: GOsa development utiles
+ This package contains a couple of tools to generate online
+ help, extract localisations and aid developing.
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-desktop
+Architecture: all
+Depends: konqueror | iceweasel | mozilla | firefox, debconf, ${misc:Depends}
+Description: Desktop integration for GOsa
+ This package includes a menu definition for your desktop
+ environment.
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-schema
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: slapd
+Description: LDAP schema for GOsa
+ This package includes the LDAP schema needed by GOsa.
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-help-en
+Architecture: all
+Depends: gosa, ${misc:Depends}
+Description: English online help for GOsa
+ This package includes the English online documentation for GOsa
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-help-de
+Architecture: all
+Depends: gosa, ${misc:Depends}
+Description: German online help for GOsa
+ This package includes the German online documentation for GOsa
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-help-fr
+Architecture: all
+Depends: gosa, ${misc:Depends}
+Description: French online help for GOsa
+ This package includes the French online documentation for GOsa
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: gosa-help-nl
+Architecture: all
+Depends: gosa, ${misc:Depends}
+Description: Dutch online help for GOsa
+ This package includes the Dutch online documentation for GOsa
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
+Package: smarty-acl-render
+Architecture: all
+Depends: smarty, ${misc:Depends}
+Suggests: gosa
+Description: Provide ACL based rendering for Smarty
+ smarty-acl-render provides acl based rendering support for Smarty,
+ the popular PHP templating engine (http://smarty.php.net/). This
+ module is mainly used by GOsa.
+ .
+ GOsa is a combination of system-administrator and end-user web
+ interface, designed to handle LDAP based setups.
+
diff --git a/gosa-core/debian/copyright b/gosa-core/debian/copyright
new file mode 100644
index 0000000..f96e65a
--- /dev/null
+++ b/gosa-core/debian/copyright
@@ -0,0 +1,31 @@
+This package was debianized by Cajus Pollmeier <cajus at debian.org> on
+Mon, 07 Apr 2008 11:18:53 +0200.
+
+It was downloaded from http://www.gosa-project.org
+
+Copyright: 
+
+    Copyright (C) 2001-2010 Cajus Pollmeier <pollmeier at gonicus.de>
+
+License:
+
+    This package 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 package 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 package; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
+
+The Debian packaging is Copyright (C) 2010, Cajus Pollmeier <cajus at debian.org> and
+is licensed under the GPL, see above.
+
diff --git a/gosa-core/debian/gosa-16.xpm b/gosa-core/debian/gosa-16.xpm
new file mode 100644
index 0000000..d9940d0
--- /dev/null
+++ b/gosa-core/debian/gosa-16.xpm
@@ -0,0 +1,137 @@
+/* XPM */
+static char * gosa_16_xpm[] = {
+"16 16 118 2",
+"  	c None",
+". 	c #B0B1D3",
+"+ 	c #B3B4D3",
+"@ 	c #BEC1DF",
+"# 	c #C6C9E7",
+"$ 	c #CED0EE",
+"% 	c #D4DAF3",
+"& 	c #CCE0FA",
+"* 	c #9ECEFE",
+"= 	c #BBDDFF",
+"- 	c #D1D8FA",
+"; 	c #BEC8EE",
+"> 	c #B1D3F4",
+", 	c #95D4F5",
+"' 	c #75CDF9",
+") 	c #51BEFE",
+"! 	c #3FAEFF",
+"~ 	c #34A0FF",
+"{ 	c #49A0FC",
+"] 	c #B3B0C4",
+"^ 	c #D0D6FA",
+"/ 	c #A6D5F1",
+"( 	c #87E0FF",
+"_ 	c #6BD9FF",
+": 	c #5BCCFF",
+"< 	c #4EBCFF",
+"[ 	c #41AEFF",
+"} 	c #349FFF",
+"| 	c #308AF1",
+"1 	c #BABACE",
+"2 	c #CFD4F4",
+"3 	c #9AC4EA",
+"4 	c #76DCFF",
+"5 	c #63D4FF",
+"6 	c #57C7FF",
+"7 	c #4AB8FF",
+"8 	c #3EAAFF",
+"9 	c #2C93F8",
+"0 	c #1D78EA",
+"a 	c #B3B8D4",
+"b 	c #C2C4E3",
+"c 	c #A4C3ED",
+"d 	c #63D6FF",
+"e 	c #5BCBFF",
+"f 	c #50BFFF",
+"g 	c #44B1FE",
+"h 	c #3198F8",
+"i 	c #2382EF",
+"j 	c #1572EA",
+"k 	c #A3B5E2",
+"l 	c #B5B6D2",
+"m 	c #BAC9F3",
+"n 	c #58C8FE",
+"o 	c #51C0FF",
+"p 	c #40ACFE",
+"q 	c #3096F8",
+"r 	c #2688F4",
+"s 	c #1E7BEF",
+"t 	c #136EEA",
+"u 	c #94B4EE",
+"v 	c #C9CEF2",
+"w 	c #57B4F4",
+"x 	c #3EABFF",
+"y 	c #3098FC",
+"z 	c #288CF8",
+"A 	c #2081F4",
+"B 	c #1875EF",
+"C 	c #0D66EA",
+"D 	c #95B8F4",
+"E 	c #C7CBEE",
+"F 	c #64ACF3",
+"G 	c #2F97FF",
+"H 	c #278CFC",
+"I 	c #2082F8",
+"J 	c #1978F3",
+"K 	c #4288F0",
+"L 	c #A0BFF4",
+"M 	c #C1C2DA",
+"N 	c #ACAED4",
+"O 	c #82ABED",
+"P 	c #238AFF",
+"Q 	c #2282FA",
+"R 	c #659FF5",
+"S 	c #B6C8F2",
+"T 	c #B1B2D0",
+"U 	c #9F9FC6",
+"V 	c #C0CAF3",
+"W 	c #83AEF6",
+"X 	c #BCC4EB",
+"Y 	c #BCC1E8",
+"Z 	c #7C7EB2",
+"` 	c #B7BAE1",
+" .	c #B7B9DE",
+"..	c #DBE0F8",
+"+.	c #D1DAFF",
+"@.	c #9EA4D8",
+"#.	c #A9B2E1",
+"$.	c #B6C0F2",
+"%.	c #9197CF",
+"&.	c #DADBE9",
+"*.	c #EEF1FB",
+"=.	c #BBBDDE",
+"-.	c #C3C6E6",
+";.	c #A5AAD9",
+">.	c #B0B6E3",
+",.	c #B2BBEC",
+"'.	c #888DC6",
+").	c #EDEDF9",
+"!.	c #F0F2FE",
+"~.	c #E8EDFE",
+"{.	c #D8DDF7",
+"].	c #C5CBF0",
+"^.	c #888CBF",
+"/.	c #B6B7D4",
+"(.	c #F2F5FE",
+"_.	c #CBCFEA",
+":.	c #8B8CB9",
+"<.	c #7B7BA8",
+"                    . +         ",
+"          @ # $ % & * =         ",
+"      - ; > , ' ) ! ~ { ]       ",
+"      ^ / ( _ : < [ } | 1       ",
+"      2 3 4 5 6 7 8 9 0 a       ",
+"      b c d e f g h i j k       ",
+"      l m n o p q r s t u       ",
+"        v w x y z A B C D       ",
+"        E F G H I J K L M       ",
+"        N O P Q R S T           ",
+"        U V W X Y Z             ",
+"          `  ...+. at .#.$.%.      ",
+"        &.*.=.-.;.>.,.'.        ",
+"        ).!.~.{.].^.            ",
+"        /.(._.:.                ",
+"          <.                    "};
diff --git a/gosa-core/debian/gosa-apache.conf b/gosa-core/debian/gosa-apache.conf
new file mode 100644
index 0000000..cd38aeb
--- /dev/null
+++ b/gosa-core/debian/gosa-apache.conf
@@ -0,0 +1,28 @@
+# Include GOsa to your web service
+Alias /gosa /usr/share/gosa/html
+
+<IfModule mod_php5.c>
+<Location /gosa>
+    php_admin_flag engine on
+    php_admin_flag register_globals off
+    php_admin_flag allow_call_time_pass_reference off
+    php_admin_flag expose_php off
+    php_admin_flag zend.ze1_compatibility_mode off
+    php_admin_flag register_long_arrays off
+    php_admin_flag magic_quotes_gpc on
+    php_admin_value upload_tmp_dir /var/spool/gosa/
+    php_admin_value session.cookie_lifetime 0
+    include /etc/gosa/gosa.secrets
+</Location>
+</IfModule>
+
+<IfModule mod_fcgid.c>
+   PHP_Fix_Pathinfo_Enable 1
+   <Location /gosa>
+     Options +ExecCGI
+     AddHandler fcgid-script .php
+     FCGIWrapper /var/www/php-fcgi/php-fcgi-starter .php
+     include /etc/gosa/gosa.secrets
+   </Location>
+</IfModule>
+
diff --git a/gosa-core/debian/gosa-desktop.config b/gosa-core/debian/gosa-desktop.config
new file mode 100644
index 0000000..2b251a7
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.config
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+set -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+# What is the URL?
+db_input medium gosa-desktop/url || true
+db_go
+
diff --git a/gosa-core/debian/gosa-desktop.desktop b/gosa-core/debian/gosa-desktop.desktop
new file mode 100644
index 0000000..1ff534e
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+MimeType=text/plain;
+GenericName=GOsa²
+Exec=/usr/bin/gosa
+Icon=gosa
+Path=/usr/bin
+Type=Application
+Terminal=false
+Name=GOsa
+X-KDE-StartupNotify=true
+Categories=Qt;KDE;Utility;System;
diff --git a/gosa-core/debian/gosa-desktop.dirs b/gosa-core/debian/gosa-desktop.dirs
new file mode 100644
index 0000000..d519c52
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.dirs
@@ -0,0 +1,4 @@
+etc/gosa
+usr/bin
+usr/share/pixmaps
+usr/share/applications
diff --git a/gosa-core/debian/gosa-desktop.install b/gosa-core/debian/gosa-desktop.install
new file mode 100644
index 0000000..0be5511
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.install
@@ -0,0 +1,5 @@
+contrib/desktoprc           /etc/gosa
+contrib/gosa                /usr/bin
+debian/gosa.xpm             /usr/share/pixmaps
+debian/gosa-16.xpm          /usr/share/pixmaps
+debian/gosa-desktop.desktop /usr/share/applications
diff --git a/gosa-core/debian/gosa-desktop.manpages b/gosa-core/debian/gosa-desktop.manpages
new file mode 100644
index 0000000..dac6964
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.manpages
@@ -0,0 +1 @@
+contrib/gosa.1
diff --git a/gosa-core/debian/gosa-desktop.menu b/gosa-core/debian/gosa-desktop.menu
new file mode 100644
index 0000000..d47e0d0
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.menu
@@ -0,0 +1,8 @@
+?package(gosa-desktop):\
+	needs="x11"\
+	section="Applications/System/Administration"\
+	hints="KDE"\
+        icon32x32="/usr/share/pixmaps/gosa.xpm"\
+        icon16x16="/usr/share/pixmaps/gosa-16.xpm"\
+	title="GOsa"\
+	command="gosa"
diff --git a/gosa-core/debian/gosa-desktop.postinst b/gosa-core/debian/gosa-desktop.postinst
new file mode 100644
index 0000000..cd8b779
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.postinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+db_get gosa-desktop/url
+if [ -n "$RET" ]; then
+    echo "URL='$RET'" > /etc/gosa/desktoprc
+fi
diff --git a/gosa-core/debian/gosa-desktop.postrm b/gosa-core/debian/gosa-desktop.postrm
new file mode 100644
index 0000000..8c3d081
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.postrm
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = "purge" ]; then
+	rm -f /etc/gosa/desktoprc
+fi
diff --git a/gosa-core/debian/gosa-desktop.templates b/gosa-core/debian/gosa-desktop.templates
new file mode 100644
index 0000000..6a90b6f
--- /dev/null
+++ b/gosa-core/debian/gosa-desktop.templates
@@ -0,0 +1,9 @@
+Template: gosa-desktop/url
+Type: string
+_Description: URL to your GOsa installation:
+ The gosa start script can automatically point your
+ browser to a system wide default location of your
+ GOsa instance.
+ .
+ Enter the URL in order to set this default.
+Default: https://www.gosa-project.org/demo/trunk
diff --git a/gosa-core/debian/gosa-dev.dirs b/gosa-core/debian/gosa-dev.dirs
new file mode 100644
index 0000000..415f082
--- /dev/null
+++ b/gosa-core/debian/gosa-dev.dirs
@@ -0,0 +1 @@
+/usr/bin
diff --git a/gosa-core/debian/gosa-dev.install b/gosa-core/debian/gosa-dev.install
new file mode 100644
index 0000000..1e2645c
--- /dev/null
+++ b/gosa-core/debian/gosa-dev.install
@@ -0,0 +1,3 @@
+update-locale       /usr/bin
+update-pdf-help     /usr/bin
+dh-make-gosa        /usr/bin
diff --git a/gosa-core/debian/gosa-dev.manpages b/gosa-core/debian/gosa-dev.manpages
new file mode 100644
index 0000000..cf07bd0
--- /dev/null
+++ b/gosa-core/debian/gosa-dev.manpages
@@ -0,0 +1,5 @@
+dh-make-gosa.1
+update-locale.1
+update-online-help.1
+update-pdf-help.1
+
diff --git a/gosa-core/debian/gosa-help-de.dirs b/gosa-core/debian/gosa-help-de.dirs
new file mode 100644
index 0000000..a69a587
--- /dev/null
+++ b/gosa-core/debian/gosa-help-de.dirs
@@ -0,0 +1 @@
+usr/share/gosa/doc/core/de
diff --git a/gosa-core/debian/gosa-help-de.install b/gosa-core/debian/gosa-help-de.install
new file mode 100644
index 0000000..fe29d06
--- /dev/null
+++ b/gosa-core/debian/gosa-help-de.install
@@ -0,0 +1 @@
+doc/core/de/html   /usr/share/gosa/doc/core/de
diff --git a/gosa-core/debian/gosa-help-en.dirs b/gosa-core/debian/gosa-help-en.dirs
new file mode 100644
index 0000000..30369bb
--- /dev/null
+++ b/gosa-core/debian/gosa-help-en.dirs
@@ -0,0 +1 @@
+usr/share/gosa/doc/core/en
diff --git a/gosa-core/debian/gosa-help-en.install b/gosa-core/debian/gosa-help-en.install
new file mode 100644
index 0000000..1a90312
--- /dev/null
+++ b/gosa-core/debian/gosa-help-en.install
@@ -0,0 +1 @@
+doc/core/en/html   /usr/share/gosa/doc/core/en
diff --git a/gosa-core/debian/gosa-help-es.dirs b/gosa-core/debian/gosa-help-es.dirs
new file mode 100644
index 0000000..037d7ae
--- /dev/null
+++ b/gosa-core/debian/gosa-help-es.dirs
@@ -0,0 +1 @@
+usr/share/gosa/doc/core/es
diff --git a/gosa-core/debian/gosa-help-es.install b/gosa-core/debian/gosa-help-es.install
new file mode 100644
index 0000000..ddc282d
--- /dev/null
+++ b/gosa-core/debian/gosa-help-es.install
@@ -0,0 +1 @@
+doc/core/es/html   /usr/share/gosa/doc/core/es
diff --git a/gosa-core/debian/gosa-help-fr.dirs b/gosa-core/debian/gosa-help-fr.dirs
new file mode 100644
index 0000000..cd83d4b
--- /dev/null
+++ b/gosa-core/debian/gosa-help-fr.dirs
@@ -0,0 +1 @@
+usr/share/gosa/doc/core/fr
diff --git a/gosa-core/debian/gosa-help-fr.install b/gosa-core/debian/gosa-help-fr.install
new file mode 100644
index 0000000..af2c9f6
--- /dev/null
+++ b/gosa-core/debian/gosa-help-fr.install
@@ -0,0 +1 @@
+doc/core/fr/html   /usr/share/gosa/doc/core/fr
diff --git a/gosa-core/debian/gosa-help-nl.dirs b/gosa-core/debian/gosa-help-nl.dirs
new file mode 100644
index 0000000..e82c70d
--- /dev/null
+++ b/gosa-core/debian/gosa-help-nl.dirs
@@ -0,0 +1 @@
+usr/share/gosa/doc/core/nl
diff --git a/gosa-core/debian/gosa-help-nl.install b/gosa-core/debian/gosa-help-nl.install
new file mode 100644
index 0000000..3614967
--- /dev/null
+++ b/gosa-core/debian/gosa-help-nl.install
@@ -0,0 +1 @@
+doc/core/nl/html   /usr/share/gosa/doc/core/nl
diff --git a/gosa-core/debian/gosa-lighttpd.conf b/gosa-core/debian/gosa-lighttpd.conf
new file mode 100644
index 0000000..858c65b
--- /dev/null
+++ b/gosa-core/debian/gosa-lighttpd.conf
@@ -0,0 +1,29 @@
+# lighttpd configuration for GOsa
+
+# Set alias to http://<host>/gosa/
+alias.url += (
+	"/gosa/" => "/usr/share/gosa/html/"
+)
+
+# Enable FastCGI and set it to handle .php URLs
+# php-cgi is run with the GOsa-required options
+server.modules += ( "mod_fastcgi" )
+
+$HTTP["url"] =~ "^/gosa/" {
+	fastcgi.server = ( ".php" =>
+		((
+			"bin-path" => "/usr/bin/php-cgi -d expose_php=Off -d magic_quotes_gpc=On",
+			"socket" => "/tmp/php.socket",
+			"max-procs" => 2,
+			"idle-timeout" => 20,
+			"bin-environment" => ( 
+				"PHP_FCGI_CHILDREN" => "4",
+				"PHP_FCGI_MAX_REQUESTS" => "10000"
+			),
+			"bin-copy-environment" => (
+				"PATH", "SHELL", "USER"
+			),
+			"broken-scriptfilename" => "enable"
+		))
+	)
+}
diff --git a/gosa-core/debian/gosa-schema.dirs b/gosa-core/debian/gosa-schema.dirs
new file mode 100644
index 0000000..44eb13d
--- /dev/null
+++ b/gosa-core/debian/gosa-schema.dirs
@@ -0,0 +1 @@
+etc/ldap/schema/gosa
diff --git a/gosa-core/debian/gosa-schema.install b/gosa-core/debian/gosa-schema.install
new file mode 100644
index 0000000..88a5e6d
--- /dev/null
+++ b/gosa-core/debian/gosa-schema.install
@@ -0,0 +1,11 @@
+contrib/openldap/gosa-samba3.schema   /etc/ldap/schema/gosa
+contrib/openldap/rfc2307bis.schema    /etc/ldap/schema/gosa
+contrib/openldap/samba3.schema        /etc/ldap/schema/gosa
+contrib/openldap/samba.schema         /etc/ldap/schema/gosa
+contrib/openldap/trust.schema         /etc/ldap/schema/gosa
+contrib/openldap/gofax.schema         /etc/ldap/schema/gosa
+contrib/openldap/goto-mime.schema     /etc/ldap/schema/gosa
+contrib/openldap/gofon.schema         /etc/ldap/schema/gosa
+contrib/openldap/goserver.schema      /etc/ldap/schema/gosa
+contrib/openldap/goto.schema          /etc/ldap/schema/gosa
+contrib/openldap/gosystem.schema      /etc/ldap/schema/gosa
diff --git a/gosa-core/debian/gosa.dirs b/gosa-core/debian/gosa.dirs
new file mode 100644
index 0000000..fc29e29
--- /dev/null
+++ b/gosa-core/debian/gosa.dirs
@@ -0,0 +1,6 @@
+etc/gosa
+usr/sbin
+usr/share/gosa
+usr/share/gosa/bin
+var/spool/gosa
+var/cache/gosa
diff --git a/gosa-core/debian/gosa.docs b/gosa-core/debian/gosa.docs
new file mode 100644
index 0000000..3c12114
--- /dev/null
+++ b/gosa-core/debian/gosa.docs
@@ -0,0 +1,4 @@
+FAQ
+AUTHORS
+README
+README.safemode
diff --git a/gosa-core/debian/gosa.install b/gosa-core/debian/gosa.install
new file mode 100644
index 0000000..f3bc55e
--- /dev/null
+++ b/gosa-core/debian/gosa.install
@@ -0,0 +1,14 @@
+update-gosa			/usr/sbin
+bin/gosa-encrypt-passwords	/usr/sbin
+html				/usr/share/gosa
+ihtml				/usr/share/gosa
+include				/usr/share/gosa
+locale				/usr/share/gosa
+plugins				/usr/share/gosa
+setup				/usr/share/gosa
+debian/gosa-apache.conf		/etc/gosa
+debian/gosa-lighttpd.conf	/etc/gosa
+contrib/shells			/etc/gosa
+contrib/encodings		/etc/gosa
+contrib/openldap/slapd.conf	/usr/share/doc/gosa/slapd.conf-example
+contrib/gosa.conf		/usr/share/doc/gosa
diff --git a/gosa-core/debian/gosa.lintian-overrides b/gosa-core/debian/gosa.lintian-overrides
new file mode 100644
index 0000000..96d11e4
--- /dev/null
+++ b/gosa-core/debian/gosa.lintian-overrides
@@ -0,0 +1,7 @@
+gosa: extra-license-file usr/share/gosa/setup/class_setupStep_License.inc
+gosa: extra-license-file usr/share/gosa/setup/license.txt
+gosa: extra-license-file usr/share/gosa/setup/setup_license.tpl
+gosa: package-contains-empty-directory usr/share/gosa/locale/core/en/LC_MESSAGES/
+gosa: package-contains-empty-directory usr/share/gosa/html/plugins/welcome/
+gosa: package-contains-empty-directory usr/share/gosa/bin/
+gosa: package-contains-empty-directory usr/share/gosa/html/plugins/references/
diff --git a/gosa-core/debian/gosa.manpages b/gosa-core/debian/gosa.manpages
new file mode 100644
index 0000000..742cd4c
--- /dev/null
+++ b/gosa-core/debian/gosa.manpages
@@ -0,0 +1,4 @@
+contrib/gosa.conf.5
+gosa-encrypt-passwords.1
+update-gosa.1
+
diff --git a/gosa-core/debian/gosa.postinst b/gosa-core/debian/gosa.postinst
new file mode 100644
index 0000000..6286d07
--- /dev/null
+++ b/gosa-core/debian/gosa.postinst
@@ -0,0 +1,107 @@
+#!/bin/sh
+# postinst script for gosa
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+  configure)
+      ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+      ;;
+
+  *)
+      echo "postinst called with unknown argument \`$1'" >&2
+      exit 1
+      ;;
+esac
+
+#DEBHELPER#
+
+# Set ID's
+WEBUSER="www-data"
+WEBGROUP="www-data"
+
+# Create empty inclusion file for apache
+if [ ! -f /etc/gosa/gosa.secrets ]; then
+    touch /etc/gosa/gosa.secrets
+    chmod 600 /etc/gosa/gosa.secrets
+fi
+
+if [ -d /etc/apache2/conf.d ]; then
+
+  # Copy GOsa configuration to conf.d directories
+  if [ ! -L /etc/apache2/conf.d/gosa.conf ]; then
+
+    # Remove old instances of this file
+    if [ -f /etc/apache2/conf.d/gosa.conf ]; then
+      echo "Found old gosa apache configuration in /etc/apache2/conf.d - moving it to gosa.conf.orig..."
+      echo "Please check for changes in /etc/gosa/gosa-apache.conf if you modified this file!"
+      mv /etc/apache2/conf.d/gosa.conf /etc/apache2/conf.d/gosa.conf.orig
+    fi
+
+    echo "Making /gosa available in /etc/apache2/conf.d"
+
+    # Add GOsa include file
+    ln -s /etc/gosa/gosa-apache.conf /etc/apache2/conf.d/gosa.conf
+  fi
+  
+  # Add support for RequestHeader
+  a2enmod headers
+
+  # Finally restart servers
+  if [ -x /usr/sbin/invoke-rc.d ]; then
+    invoke-rc.d apache2 reload
+  else
+    /etc/init.d/apache2 reload
+  fi
+fi
+
+if [ -d /etc/lighttpd/conf-available ]; then
+
+  # Copy GOsa configuration to conf-available directories /etc/lighttpd/conf-available
+  if [ ! -L /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf ]; then
+
+    # Remove old instances of this file
+    if [ -f /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf ]; then
+      echo "Found old gosa apache configuration in /etc/lighttpd/conf-enabled - moving it to orig.gosa-lighttpd.conf ..."
+      echo "Please check for changes in /etc/lighttpd/conf-available/orig.99gosa-lighttpd.conf if you modified this file!"
+      mv /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf /etc/lighttpd/conf-available/orig.gosa-lighttpd.conf
+    fi
+
+    echo "Making /gosa available in /etc/lighttpd/conf-enabled/"
+
+    # Add GOsa include file
+    ln -s /etc/gosa/gosa-lighttpd.conf /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf
+  fi
+
+  # Finally restart servers
+  if [ -x /usr/sbin/invoke-rc.d ]; then
+    invoke-rc.d lighttpd reload
+  else
+    /etc/init.d/lighttpd reload
+  fi
+
+fi
+
+# Add links for safe mode
+[ ! -d /usr/share/gosa/bin ] && mkdir -p /usr/share/gosa/bin
+for source in /usr/bin/convert /usr/bin/lpstat; do
+  if [ -e $source ]; then
+    target=/usr/share/gosa/bin/${source##*/}
+    [ ! -L $target ] && ln -sf $source $target
+  fi
+done
+
+# Fix permission in /var/(spool|cache)/gosa
+chown root.$WEBGROUP -R /var/spool/gosa
+chmod 770 -R /var/spool/gosa
+chown root.$WEBGROUP -R /var/cache/gosa
+chmod 770 -R /var/cache/gosa
+
+update-gosa
+
+exit 0
+
diff --git a/gosa-core/debian/gosa.postrm b/gosa-core/debian/gosa.postrm
new file mode 100644
index 0000000..6a4a072
--- /dev/null
+++ b/gosa-core/debian/gosa.postrm
@@ -0,0 +1,55 @@
+#! /bin/sh
+# postrm script for GOsa
+#
+
+set -e
+
+case "$1" in
+  purge|remove)
+
+        # Pure here
+        if [ "$1" = "purge" ] ; then
+          if [ -d /var/spool/gosa ] ; then
+            echo "Removing /var/spool/gosa as requested."
+            rm -Rf /var/spool/gosa
+          fi
+        fi
+
+        if [ -d /etc/apache2/conf.d ]; then
+          # Remove GOsa include
+          [ -L /etc/apache2/conf.d/gosa.conf ] && rm -f /etc/apache2/conf.d/gosa.conf
+
+          # Restart servers
+          if [ -x /usr/sbin/invoke-rc.d ]; then
+            invoke-rc.d apache2 restart
+          else
+            /etc/init.d/apache2 restart
+          fi
+        fi
+
+        if [ -d /etc/lighttpd/conf-available ]; then
+          # Remove GOsa include
+          [ -L /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf ] && rm -f /etc/lighttpd/conf-enabled/99gosa-lighttpd.conf
+
+          # Restart servers
+          if [ -x /usr/sbin/invoke-rc.d ]; then
+            invoke-rc.d lighttpd restart
+          else
+            /etc/init.d/lighttpd restart
+          fi
+        fi
+        
+        ;;
+
+  upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+        ;;
+
+  *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 0
+        ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/gosa-core/debian/gosa.xpm b/gosa-core/debian/gosa.xpm
new file mode 100644
index 0000000..b27a7ae
--- /dev/null
+++ b/gosa-core/debian/gosa.xpm
@@ -0,0 +1,490 @@
+/* XPM */
+static char * gosa_xpm[] = {
+"32 32 455 2",
+"  	c None",
+". 	c #8585A9",
+"+ 	c #9E9EC5",
+"@ 	c #A8A8CF",
+"# 	c #ACADD2",
+"$ 	c #B5B7D9",
+"% 	c #C1C2E2",
+"& 	c #D8DAF2",
+"* 	c #C0C2E2",
+"= 	c #7B7BA6",
+"- 	c #AFAFCE",
+"; 	c #B5B6D6",
+"> 	c #BBBDDE",
+", 	c #C1C3E5",
+"' 	c #CBCDEB",
+") 	c #D8DAF3",
+"! 	c #E7E9FB",
+"~ 	c #EDEFFD",
+"{ 	c #E9EFFE",
+"] 	c #DCECFE",
+"^ 	c #DDEEFF",
+"/ 	c #F6F9FE",
+"( 	c #9696BD",
+"_ 	c #BDBCD6",
+": 	c #C0C1DC",
+"< 	c #BEBFDD",
+"[ 	c #C3C5E4",
+"} 	c #C9CDED",
+"| 	c #D1D7F5",
+"1 	c #D6DCF8",
+"2 	c #DCDEFA",
+"3 	c #DFE0F9",
+"4 	c #DBE2F8",
+"5 	c #D0E0F7",
+"6 	c #BBD9F7",
+"7 	c #9FCFF9",
+"8 	c #6AB8FD",
+"9 	c #4AA7FE",
+"0 	c #4DA6FF",
+"a 	c #CCE6FF",
+"b 	c #ABAAC9",
+"c 	c #C8C8E0",
+"d 	c #D8DBF2",
+"e 	c #CED5F8",
+"f 	c #CCD5FB",
+"g 	c #CBD2F7",
+"h 	c #CAD2F6",
+"i 	c #C8D3F6",
+"j 	c #BCD1F2",
+"k 	c #B1CEED",
+"l 	c #9BCDF0",
+"m 	c #80CBF5",
+"n 	c #5DC3FC",
+"o 	c #4BBAFF",
+"p 	c #40B1FF",
+"q 	c #39AAFF",
+"r 	c #36A3FF",
+"s 	c #319DFF",
+"t 	c #2490FF",
+"u 	c #7DBCFE",
+"v 	c #C7C3D7",
+"w 	c #C9C9DC",
+"x 	c #D5DDFE",
+"y 	c #C9D4FF",
+"z 	c #B4BBE3",
+"A 	c #ADC0E3",
+"B 	c #A2D0EF",
+"C 	c #91D8F7",
+"D 	c #7BD9FA",
+"E 	c #6CD7FC",
+"F 	c #60D1FF",
+"G 	c #58CBFF",
+"H 	c #51C2FF",
+"I 	c #4CBBFF",
+"J 	c #44B2FF",
+"K 	c #3FACFF",
+"L 	c #37A3FF",
+"M 	c #2490FD",
+"N 	c #5FA6F7",
+"O 	c #D6D4E1",
+"P 	c #C4C4DB",
+"Q 	c #D5DDFD",
+"R 	c #C5CDF9",
+"S 	c #A8C1E3",
+"T 	c #A9EAFE",
+"U 	c #92E4FF",
+"V 	c #83DFFF",
+"W 	c #71DBFF",
+"X 	c #67D8FF",
+"Y 	c #5ED0FF",
+"Z 	c #59CAFF",
+"` 	c #51C1FF",
+" .	c #3EABFF",
+"..	c #37A2FF",
+"+.	c #319CFF",
+"@.	c #238BF8",
+"#.	c #4592EF",
+"$.	c #DEDEEA",
+"%.	c #B8B8D2",
+"&.	c #DBDFF8",
+"*.	c #C9D1FC",
+"=.	c #A6C3E6",
+"-.	c #9FE5FE",
+";.	c #8BE1FF",
+">.	c #7DDEFF",
+",.	c #6EDAFF",
+"'.	c #65D6FF",
+").	c #5DCFFF",
+"!.	c #58C8FF",
+"~.	c #50BFFF",
+"{.	c #4AB8FF",
+"].	c #43B0FF",
+"^.	c #3EAAFF",
+"/.	c #36A2FF",
+"(.	c #309CFF",
+"_.	c #2083F2",
+":.	c #3788EC",
+"<.	c #DFE1EF",
+"[.	c #737291",
+"}.	c #D5D6F0",
+"|.	c #CFD8FE",
+"1.	c #A5B5DF",
+"2.	c #8FDAF7",
+"3.	c #80DFFF",
+"4.	c #74DBFF",
+"5.	c #68D8FF",
+"6.	c #62D3FF",
+"7.	c #5BCBFF",
+"8.	c #56C6FF",
+"9.	c #4EBDFF",
+"0.	c #48B6FF",
+"a.	c #41AFFF",
+"b.	c #3CA8FF",
+"c.	c #34A0FF",
+"d.	c #2B91F8",
+"e.	c #1D7AEB",
+"f.	c #247CEB",
+"g.	c #DBE2F5",
+"h.	c #7F7E9F",
+"i.	c #C7C8E6",
+"j.	c #D0D8FB",
+"k.	c #ADB6E2",
+"l.	c #86CDF1",
+"m.	c #76DCFF",
+"n.	c #6CD9FF",
+"o.	c #63D5FF",
+"p.	c #5FD0FF",
+"q.	c #53C2FF",
+"r.	c #4CBAFF",
+"s.	c #46B4FF",
+"t.	c #3AA7FF",
+"u.	c #2F97FA",
+"v.	c #2485F0",
+"w.	c #1D79EB",
+"x.	c #1773E9",
+"y.	c #CFDCF7",
+"z.	c #8988AB",
+"A.	c #B6B6D4",
+"B.	c #CED4F7",
+"C.	c #BDC3EE",
+"D.	c #84C0E9",
+"E.	c #68DAFF",
+"F.	c #64D6FF",
+"G.	c #60D0FF",
+"H.	c #54C4FF",
+"I.	c #50BEFF",
+"J.	c #49B7FF",
+"K.	c #44B1FF",
+"L.	c #3BA7FE",
+"M.	c #3199F9",
+"N.	c #2685F0",
+"O.	c #2280EE",
+"P.	c #1C78EB",
+"Q.	c #0F6DE9",
+"R.	c #A8C7F6",
+"S.	c #A6A4C6",
+"T.	c #A5A4C0",
+"U.	c #D2D6F4",
+"V.	c #C5CCF6",
+"W.	c #8ABDE8",
+"X.	c #62D7FF",
+"Y.	c #5FD1FF",
+"Z.	c #51C0FF",
+"`.	c #45B2FF",
+" +	c #3DA9FD",
+".+	c #3096F7",
+"++	c #298BF3",
+"@+	c #2483F0",
+"#+	c #207EEE",
+"$+	c #1A76EB",
+"%+	c #0E6BE9",
+"&+	c #88B4F4",
+"*+	c #B6B5D5",
+"=+	c #CBCCE6",
+"-+	c #CED5FC",
+";+	c #9DBCEA",
+">+	c #5ACEFF",
+",+	c #55C5FF",
+"'+	c #4BB9FF",
+")+	c #42AFFE",
+"!+	c #369EFA",
+"~+	c #2F94F7",
+"{+	c #2A8DF5",
+"]+	c #2687F3",
+"^+	c #2180F0",
+"/+	c #1D7AEE",
+"(+	c #1773EB",
+"_+	c #106BE9",
+":+	c #609AF0",
+"<+	c #CCCDE6",
+"[+	c #B5B5D4",
+"}+	c #D1D9FE",
+"|+	c #AEBAE7",
+"1+	c #58C3FA",
+"2+	c #3EA9FE",
+"3+	c #359EFC",
+"4+	c #2F96F9",
+"5+	c #2C91F7",
+"6+	c #278AF5",
+"7+	c #2384F3",
+"8+	c #1E7CF0",
+"9+	c #1A77EE",
+"0+	c #1570EB",
+"a+	c #0F69E9",
+"b+	c #4D8DEF",
+"c+	c #D9DDF2",
+"d+	c #A2A1C6",
+"e+	c #CFD6F8",
+"f+	c #BEC0EA",
+"g+	c #61B2EC",
+"h+	c #4BBDFF",
+"i+	c #3DA9FF",
+"j+	c #339CFD",
+"k+	c #3098FB",
+"l+	c #2C91F9",
+"m+	c #288CF7",
+"n+	c #2486F5",
+"o+	c #2080F3",
+"p+	c #1B79F0",
+"q+	c #1774EE",
+"r+	c #126CEB",
+"s+	c #0E66E9",
+"t+	c #3B7FEC",
+"u+	c #E3EBFC",
+"v+	c #9898BD",
+"w+	c #CED3F2",
+"x+	c #CACEF5",
+"y+	c #6AAAE7",
+"z+	c #46B6FF",
+"A+	c #349FFF",
+"B+	c #2F97FD",
+"C+	c #2C93FB",
+"D+	c #288DF9",
+"E+	c #2588F7",
+"F+	c #2182F4",
+"G+	c #1D7CF2",
+"H+	c #1876F0",
+"I+	c #1570EE",
+"J+	c #0E68EB",
+"K+	c #0660E9",
+"L+	c #4D88ED",
+"M+	c #E9F0FD",
+"N+	c #C5C6E8",
+"O+	c #D3DAFE",
+"P+	c #80AFEA",
+"Q+	c #3FACFD",
+"R+	c #339DFF",
+"S+	c #2F97FF",
+"T+	c #2A91FD",
+"U+	c #288DFB",
+"V+	c #2387F9",
+"W+	c #2182F7",
+"X+	c #1D7DF4",
+"Y+	c #1977F2",
+"Z+	c #116EF0",
+"`+	c #176EED",
+" @	c #3E83ED",
+".@	c #7DA9F1",
+"+@	c #EDF0FA",
+"@@	c #E0E0F1",
+"#@	c #B0B0D6",
+"$@	c #D4DAFA",
+"%@	c #95B4EB",
+"&@	c #3DA3F9",
+"*@	c #2E97FF",
+"=@	c #2B92FF",
+"-@	c #268CFD",
+";@	c #2488FB",
+">@	c #2082F9",
+",@	c #1D7EF7",
+"'@	c #1576F5",
+")@	c #1874F1",
+"!@	c #488BEF",
+"~@	c #96B8F3",
+"{@	c #E0E9FB",
+"]@	c #E5E7F8",
+"^@	c #B4B5D6",
+"/@	c #6C6C98",
+"(@	c #9090B6",
+"_@	c #CACFF2",
+":@	c #AEBBEB",
+"<@	c #4498F2",
+"[@	c #288FFF",
+"}@	c #248BFF",
+"|@	c #2185FD",
+"1@	c #1C80FB",
+"2@	c #1D7CF7",
+"3@	c #3284F4",
+"4@	c #70A3F2",
+"5@	c #C5D3F3",
+"6@	c #E7E8F8",
+"7@	c #D4D5EC",
+"8@	c #9797C1",
+"9@	c #5F5F95",
+"0@	c #8181A7",
+"a@	c #BFC3EA",
+"b@	c #BEC6F0",
+"c@	c #5894E8",
+"d@	c #2189FF",
+"e@	c #1E84FF",
+"f@	c #1B7EFC",
+"g@	c #3285F6",
+"h@	c #80AAF1",
+"i@	c #C4D2F7",
+"j@	c #DBE0F8",
+"k@	c #C9CCEB",
+"l@	c #8586B1",
+"m@	c #5F6089",
+"n@	c #B4B5DB",
+"o@	c #D0D7F9",
+"p@	c #94A7E0",
+"q@	c #388AF5",
+"r@	c #4D94F7",
+"s@	c #A6BDF0",
+"t@	c #D4D9F5",
+"u@	c #CFD1EE",
+"v@	c #B9BEE4",
+"w@	c #7C7EB5",
+"x@	c #3A3A5E",
+"y@	c #A09FC9",
+"z@	c #D3DAFB",
+"A@	c #CAD2F8",
+"B@	c #BCC7F2",
+"C@	c #CCD5FA",
+"D@	c #C5C9EC",
+"E@	c #AFB1DB",
+"F@	c #AAAEDD",
+"G@	c #8D91CA",
+"H@	c #9094C7",
+"I@	c #8B8FC7",
+"J@	c #A6A9D8",
+"K@	c #BEC5EE",
+"L@	c #B8BEE7",
+"M@	c #ACAED7",
+"N@	c #C5C7E6",
+"O@	c #DBE1FA",
+"P@	c #D7DFFF",
+"Q@	c #CED8FF",
+"R@	c #9BA0D8",
+"S@	c #A8AFDC",
+"T@	c #ACB5E3",
+"U@	c #ADB6E7",
+"V@	c #B9C2F6",
+"W@	c #9DA4DB",
+"X@	c #767BAE",
+"Y@	c #BFC0E1",
+"Z@	c #B7B9DD",
+"`@	c #9D9ECC",
+" #	c #DBDBEC",
+".#	c #ECF0FF",
+"+#	c #E1E7FF",
+"@#	c #D5DEFF",
+"##	c #CBD5FE",
+"$#	c #969BD4",
+"%#	c #A1A7D7",
+"&#	c #A8B1DF",
+"*#	c #A2ABDC",
+"=#	c #BCC7F7",
+"-#	c #C6D1FF",
+";#	c #BAC4F6",
+">#	c #8387C9",
+",#	c #E6E8F4",
+"'#	c #F2F5FD",
+")#	c #F3F6FE",
+"!#	c #C8C9E2",
+"~#	c #D7DCF6",
+"{#	c #B2B7E4",
+"]#	c #9194CC",
+"^#	c #9296CB",
+"/#	c #ADB4E1",
+"(#	c #B1B9E6",
+"_#	c #BBC5F4",
+":#	c #B7C1F3",
+"<#	c #A0A8E2",
+"[#	c #6668A9",
+"}#	c #474685",
+"|#	c #CBCBDE",
+"1#	c #F5F7FC",
+"2#	c #EBECF8",
+"3#	c #E9ECF9",
+"4#	c #D1D4EE",
+"5#	c #B2B4DA",
+"6#	c #9798CB",
+"7#	c #9EA2D1",
+"8#	c #B4BAE2",
+"9#	c #BDC4EC",
+"0#	c #C2CBF4",
+"a#	c #BDC6F5",
+"b#	c #A1A8E2",
+"c#	c #6668A8",
+"d#	c #48497F",
+"e#	c #E4E5F6",
+"f#	c #F8F9FE",
+"g#	c #EFF1FC",
+"h#	c #EDF0FD",
+"i#	c #EAEEFE",
+"j#	c #E5EAFC",
+"k#	c #C3C8E8",
+"l#	c #D5DAF6",
+"m#	c #DAE1FD",
+"n#	c #D4DCFD",
+"o#	c #BCC3EE",
+"p#	c #989CD4",
+"q#	c #5B5C9C",
+"r#	c #3F3E73",
+"s#	c #DCDCF1",
+"t#	c #FAFBFF",
+"u#	c #F3F6FF",
+"v#	c #EFF2FF",
+"w#	c #EBEFFF",
+"x#	c #E8ECFF",
+"y#	c #E5EBFF",
+"z#	c #E2E8FF",
+"A#	c #C7CCF0",
+"B#	c #9EA1D6",
+"C#	c #61629B",
+"D#	c #444374",
+"E#	c #9F9FC5",
+"F#	c #EEF0F9",
+"G#	c #F4F6FF",
+"H#	c #EFF3FF",
+"I#	c #EDF1FF",
+"J#	c #E1E6F9",
+"K#	c #C3C7EA",
+"L#	c #9293C6",
+"M#	c #5A5996",
+"N#	c #B5B6D7",
+"O#	c #F5F8FE",
+"P#	c #EEF2FC",
+"Q#	c #CACDEA",
+"R#	c #9496C7",
+"S#	c #5F5F92",
+"T#	c #9696C4",
+"U#	c #8585B7",
+"V#	c #585890",
+"                                            .                   ",
+"                                  + @ # $ % & * =               ",
+"                        - ; > , ' ) ! ~ { ] ^ / (               ",
+"              _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b               ",
+"          c d e f g h i j k l m n o p q r s t u v               ",
+"          w x y z A B C D E F G H I J K L s M N O               ",
+"          P Q R S T U V W X Y Z ` o J  ...+. at .#.$.              ",
+"          %.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.            ",
+"            }.|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.            ",
+"            i.j.k.l.m.n.o.p.!.q.r.s.K t.u.v.w.x.y.z.            ",
+"            A.B.C.D.E.F.G.7.H.I.J.K.L.M.N.O.P.Q.R.S.            ",
+"            T.U.V.W.X.Y.7.8.Z.I `. +.+++ at +#+$+%+&+*+            ",
+"              =+-+;+>+Z ,+Z.'+)+!+~+{+]+^+/+(+_+:+<+            ",
+"              [+}+|+1+H.Z.I 2+3+4+5+6+7+8+9+0+a+b+c+            ",
+"              d+e+f+g+h+J.i+j+k+l+m+n+o+p+q+r+s+t+u+            ",
+"              v+w+x+y+z+K A+B+C+D+E+F+G+H+I+J+K+L+M+            ",
+"                N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @. at +@@@            ",
+"                #@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@            ",
+"                (@_@:@<@[@}@|@1 at 2@3 at 4@5 at 6@7 at 8@9@                ",
+"                0 at a@b at c@d at e@f at g@h at i@j at k@l at m@                    ",
+"                  n at o@p at q@r at s@t at u@v at w@x@                        ",
+"                  y at z@A at B@C at D@E at F@b at G@H at I@                      ",
+"                    J at K@L at M@N at O@P at Q@R at S@T at U@V at W@X@              ",
+"                    Y at Z@`@ #.#+#@###$#%#&#*#=#-#;#>#            ",
+"                  ,#'#)#Z@!#.#~#{#]#^#/#(#_#:#<#[#}#            ",
+"                |#1#2#3#4#`@5#6#7#8#9#0#a#b#c#d#                ",
+"                e#f#g#h#i#j#k#l#m#n#o#p#q#r#                    ",
+"                s#t#u#v#w#x#y#z#A#B#C#D#                        ",
+"                E#F#G#H#I#J#K#L#M#                              ",
+"                  N#O#P#Q#R#S#                                  ",
+"                    T#U#V#                                      ",
+"                                                                "};
diff --git a/gosa-core/debian/patches/00list b/gosa-core/debian/patches/00list
new file mode 100644
index 0000000..d2a19ff
--- /dev/null
+++ b/gosa-core/debian/patches/00list
@@ -0,0 +1,5 @@
+01_fix_smarty_location
+02_fix_template_location
+03_fix_class_mapping
+04_fix_locale_location
+04_fix_online_help_location
diff --git a/gosa-core/debian/patches/01_fix_smarty_location.dpatch b/gosa-core/debian/patches/01_fix_smarty_location.dpatch
new file mode 100755
index 0000000..1e543c2
--- /dev/null
+++ b/gosa-core/debian/patches/01_fix_smarty_location.dpatch
@@ -0,0 +1,23 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_fix_smarty_location.dpatch by  <cajus at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Adapt location for debian packaged smarty
+
+ at DPATCH@
+diff -urNad gosa-core~/include/php_setup.inc gosa-core/include/php_setup.inc
+--- gosa-core~/include/php_setup.inc	2008-12-12 13:31:08.000000000 +0100
++++ gosa-core/include/php_setup.inc	2009-02-09 17:25:51.000000000 +0100
+@@ -277,7 +277,11 @@
+ ini_set("include_path",".:$BASE_DIR/include:$BASE_DIR/include/utils/excel");
+ 
+ /* Do smarty setup */
+-require("smarty/Smarty.class.php");
++if (file_exists("/usr/share/php/smarty/Smarty.class.php")){
++	require("/usr/share/php/smarty/Smarty.class.php");
++} else {
++	require("/usr/share/php/smarty/libs/Smarty.class.php");
++}
+ $smarty = new Smarty;
+ $smarty->template_dir = $BASE_DIR.'/ihtml/';
+ $smarty->caching= false;
diff --git a/gosa-core/debian/patches/02_fix_template_location.dpatch b/gosa-core/debian/patches/02_fix_template_location.dpatch
new file mode 100755
index 0000000..5a79730
--- /dev/null
+++ b/gosa-core/debian/patches/02_fix_template_location.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_fix_template_location.dpatch by  <cajus at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix location of configuration template.
+
+ at DPATCH@
+diff -uNr gosa-core/include/functions.inc gosa-core/include/functions.new
+--- gosa-core/include/functions.inc       2009-12-03 11:23:55.000000000 +0100
++++ gosa-core/include/functions.new       2009-12-03 11:26:16.000000000 +0100
+@@ -40,7 +40,7 @@
+ }
+
+ /* Define common locatitions */
+-define ("CONFIG_TEMPLATE_DIR", "../contrib");
++define ("CONFIG_TEMPLATE_DIR", "/usr/share/doc/gosa");
+ define ("TEMP_DIR","/var/cache/gosa/tmp");
+
+ /* Define get_list flags */
+
diff --git a/gosa-core/debian/patches/03_fix_class_mapping.dpatch b/gosa-core/debian/patches/03_fix_class_mapping.dpatch
new file mode 100755
index 0000000..d4ea5b6
--- /dev/null
+++ b/gosa-core/debian/patches/03_fix_class_mapping.dpatch
@@ -0,0 +1,60 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_fix_class_mapping.dpatch by  <cajus at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix location of auto-generated class mapping file
+
+ at DPATCH@
+diff -urNad gosa-2.6.3~/include/class_config.inc gosa-2.6.3/include/class_config.inc
+--- gosa-2.6.3~/include/class_config.inc	2008-12-18 15:13:44.000000000 +0100
++++ gosa-2.6.3/include/class_config.inc	2009-01-15 14:08:54.000000000 +0100
+@@ -76,12 +76,12 @@
+         if we have installed or removed plugins. 
+      */
+     if(session::global_is_set("class_location.inc:timestamp")){
+-      $tmp = stat("../include/class_location.inc");
++      $tmp = stat("/var/cache/gosa/class.cache");
+       if($tmp['mtime'] != session::global_get("class_location.inc:timestamp")){
+         session::global_un_set("plist");
+       }
+     }
+-    $tmp = stat("../include/class_location.inc");
++    $tmp = stat("/var/cache/gosa/class.cache");
+     session::global_set("class_location.inc:timestamp",$tmp['mtime']);
+ 
+ 
+diff -urNad gosa-2.6.3~/include/functions.inc gosa-2.6.3/include/functions.inc
+--- gosa-2.6.3~/include/functions.inc	2009-01-15 14:07:35.000000000 +0100
++++ gosa-2.6.3/include/functions.inc	2009-01-15 14:07:36.000000000 +0100
+@@ -73,7 +73,7 @@
+ $svn_revision = '$Revision: 13322 $';
+ 
+ /* Include required files */
+-require_once("class_location.inc");
++require_once("/var/cache/gosa/class.cache");
+ require_once ("functions_debug.inc");
+ require_once ("accept-to-gettext.inc");
+ 
+diff -urNad gosa-2.6.3~/update-gosa gosa-2.6.3/update-gosa
+--- gosa-2.6.3~/update-gosa	2008-06-10 09:56:22.000000000 +0200
++++ gosa-2.6.3/update-gosa	2009-01-15 14:07:36.000000000 +0100
+@@ -21,7 +21,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
+-define ("GOSA_HOME", dirname(__FILE__));
++define ("GOSA_HOME", "/usr/share/gosa");
+ define ("LOCALE_DIR", GOSA_HOME."/locale");
+ define ("PLUGSTATE_DIR", GOSA_HOME."/state");
+ 
+@@ -122,8 +122,8 @@
+ function rescan_classes()
+ {
+ 	echo "Updating class cache...\n";
+-	$class_mapping= get_classes();
+-	$filename= GOSA_HOME."/include/class_location.inc";
++	$class_mapping= get_classes("/usr/share/gosa");
++	$filename= "/var/cache/gosa/class.cache";
+ 
+ 	/* Sanity checks */
+ 	if (!file_exists($filename) || is_writable($filename)) {
diff --git a/gosa-core/debian/patches/04_fix_locale_location.dpatch b/gosa-core/debian/patches/04_fix_locale_location.dpatch
new file mode 100755
index 0000000..6ed0165
--- /dev/null
+++ b/gosa-core/debian/patches/04_fix_locale_location.dpatch
@@ -0,0 +1,48 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04_fix_locale_location.dpatch by  <cajus at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fixed location of auto-generated locales
+
+ at DPATCH@
+diff -urNad gosa-2.6.0+svn11288~/include/php_setup.inc gosa-2.6.0+svn11288/include/php_setup.inc
+--- gosa-2.6.0+svn11288~/include/php_setup.inc	2008-06-11 15:55:59.000000000 +0200
++++ gosa-2.6.0+svn11288/include/php_setup.inc	2008-06-11 15:56:00.000000000 +0200
+@@ -20,7 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
+-define ("LOCALE_DIR", dirname(dirname(__FILE__))."/locale/compiled");
++define ("LOCALE_DIR", "/var/cache/gosa/locale");
+ 
+ function gosaRaiseError($errno, $errstr, $errfile, $errline)
+ {
+diff -urNad gosa-2.6.0+svn11288~/update-gosa gosa-2.6.0+svn11288/update-gosa
+--- gosa-2.6.0+svn11288~/update-gosa	2008-06-11 15:55:59.000000000 +0200
++++ gosa-2.6.0+svn11288/update-gosa	2008-06-11 16:02:30.000000000 +0200
+@@ -169,20 +169,20 @@
+ 
+ 	/* For each language, merge the target .mo to the compiled directory. */
+ 	foreach ($languages as $language => $po_files){
+-		if (!is_dir(LOCALE_DIR."/compiled/${language}/LC_MESSAGES")){
+-			if (!mkdir (LOCALE_DIR."/compiled/${language}/LC_MESSAGES", 0755, TRUE)){
+-				echo "Failed to create '".LOCALE_DIR."/compiled/${language}/LC_MESSAGES'- aborted";
++		if (!is_dir("/var/cache/gosa/locale/${language}/LC_MESSAGES")){
++			if (!mkdir ("/var/cache/gosa/locale/${language}/LC_MESSAGES", 0755, TRUE)){
++				echo "Failed to create '/var/cache/gosa/locale/${language}/LC_MESSAGES'- aborted";
+ 				exit (3);
+ 			}
+ 		}
+ 
+ 		/* Cat all these po files into one single file */
+-		system ("(cd ".LOCALE_DIR." && msgcat --use-first ".implode(" ", $po_files)." > compiled/${language}/LC_MESSAGES/messages.po)", $val);
++		system ("(cd ".LOCALE_DIR." && msgcat --use-first ".implode(" ", $po_files)." > /var/cache/gosa/locale/${language}/LC_MESSAGES/messages.po)", $val);
+ 		if ($val != 0){
+ 			echo "Merging of message files failed - aborted";
+ 			exit (4);
+ 		}
+-		system ("(cd ".LOCALE_DIR."/compiled/${language}/LC_MESSAGES && msgfmt -o messages.mo messages.po && rm messages.po)", $val);
++		system ("(cd /var/cache/gosa/locale/${language}/LC_MESSAGES && msgfmt -o messages.mo messages.po && rm messages.po)", $val);
+ 		if ($val != 0){
+ 			echo "Compiling of message files failed - aborted";
+ 			exit (5);
diff --git a/gosa-core/debian/patches/04_fix_online_help_location.dpatch b/gosa-core/debian/patches/04_fix_online_help_location.dpatch
new file mode 100755
index 0000000..f4ec71b
--- /dev/null
+++ b/gosa-core/debian/patches/04_fix_online_help_location.dpatch
@@ -0,0 +1,31 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 04_fix_online_help_location.dpatch by  <cajus at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix location of auto-generated online help.
+
+ at DPATCH@
+diff -urNad gosa-core~/html/helpviewer.php gosa-core/html/helpviewer.php
+--- gosa-core~/html/helpviewer.php	2008-04-12 19:58:14.000000000 +0200
++++ gosa-core/html/helpviewer.php	2008-04-14 17:25:10.000000000 +0200
+@@ -110,7 +110,7 @@
+ if(session::is_set('current_class_for_help')){
+ 
+   /* Create new XML parser with the path to the Xml file */
+-  $xml = new parseXml("../doc/guide.xml");
++  $xml = new parseXml("/etc/gosa/guide.xml");
+   
+   /* Generate help array */
+   $str = $xml->parse();
+diff -urNad gosa-core~/update-gosa gosa-core/update-gosa
+--- gosa-core~/update-gosa	2008-04-14 14:59:22.000000000 +0200
++++ gosa-core/update-gosa	2008-04-14 17:24:53.000000000 +0200
+@@ -193,7 +193,7 @@
+ 
+ function rescan_guide()
+ {
+-	$master_guide= "doc/guide.xml";
++	$master_guide= "/etc/gosa/guide.xml";
+ 	echo "Updating Online Help Index...\n";
+ 	$master_guide_content="<?xml version=\"1.0\"?>\n".
+ 		"<!--\n".
diff --git a/gosa-core/debian/po/POTFILES.in b/gosa-core/debian/po/POTFILES.in
new file mode 100644
index 0000000..724a7cf
--- /dev/null
+++ b/gosa-core/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] gosa-desktop.templates
diff --git a/gosa-core/debian/po/cs.po b/gosa-core/debian/po/cs.po
new file mode 100644
index 0000000..bb66999
--- /dev/null
+++ b/gosa-core/debian/po/cs.po
@@ -0,0 +1,39 @@
+# Czech translation for GOsa desktop file installer debconf messages.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Daniel Kavan <kuan at maradan.org>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.16.1-1\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-05-27 17:49+0200\n"
+"Last-Translator: Daniel Kavan <kuan at maradan.org>\n"
+"Language-Team: Czech <debian-l10n-czech at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL k vaší instalaci GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Startovací skript gosa může automaticky nasměrovat váš prohlížeč na celosystémovou "
+"adresu vaší GOsa instance."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Chcete-li dané URL nastavit jako výchozí, zadejte je zde."
diff --git a/gosa-core/debian/po/cz.po b/gosa-core/debian/po/cz.po
new file mode 100644
index 0000000..bb66999
--- /dev/null
+++ b/gosa-core/debian/po/cz.po
@@ -0,0 +1,39 @@
+# Czech translation for GOsa desktop file installer debconf messages.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Daniel Kavan <kuan at maradan.org>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.16.1-1\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-05-27 17:49+0200\n"
+"Last-Translator: Daniel Kavan <kuan at maradan.org>\n"
+"Language-Team: Czech <debian-l10n-czech at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL k vaší instalaci GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Startovací skript gosa může automaticky nasměrovat váš prohlížeč na celosystémovou "
+"adresu vaší GOsa instance."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Chcete-li dané URL nastavit jako výchozí, zadejte je zde."
diff --git a/gosa-core/debian/po/de.po b/gosa-core/debian/po/de.po
new file mode 100644
index 0000000..8ed6c9e
--- /dev/null
+++ b/gosa-core/debian/po/de.po
@@ -0,0 +1,39 @@
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: 2.5.12\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2007-06-27 11:07+0200\n"
+"Last-Translator: Cajus Pollmeier <cajus at debian.org>\n"
+"Language-Team: GERMAN <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL zu Ihrer GOsa-Installation:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Das GOsa Start-Skript kann den Browser automatisch auf ihre systemweite "
+"Standard GOsa-Installation einstellen."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Geben Sie die URL der Standard-Installation an."
diff --git a/gosa-core/debian/po/es.po b/gosa-core/debian/po/es.po
new file mode 100644
index 0000000..8078db9
--- /dev/null
+++ b/gosa-core/debian/po/es.po
@@ -0,0 +1,63 @@
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+#
+# Translation to Spanish
+# Copyright (C) 2007 Rudy Godoy Guillén <rudy at debian.org>
+# This file is distributed under the GNU GPL license.
+#
+# Changes:
+# - Initial translation
+#       Rudy Godoy <rudy at stone-head.org>, 2008
+#
+#
+#  Traductores, si no conoce el formato PO, merece la pena leer la 
+#  documentación de gettext, especialmente las secciones dedicadas a este
+#  formato, por ejemplo ejecutando:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+#   http://www.debian.org/intl/spanish/
+#   especialmente las notas de traducción en
+#   http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+#   /usr/share/doc/po-debconf/README-trans
+#   o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.14\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-03-22 20:07-0500\n"
+"Last-Translator: Rudy Godoy Guillén <rudy at stone-head.org>\n"
+"Language-Team: Debian l10n Spanish team <debian-l10n-spanish at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL de su instalación de GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr "El programa de arranque de gosa puede direccionar automáticamente el navegador web, a nivel de todo su sistema, a una ubicación predeterminada en donde se encuentra su instalación de GOsa."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Introduzca la URL para definirla como predeterminada."
diff --git a/gosa-core/debian/po/eu.po b/gosa-core/debian/po/eu.po
new file mode 100644
index 0000000..2bce06b
--- /dev/null
+++ b/gosa-core/debian/po/eu.po
@@ -0,0 +1,42 @@
+# translation of gosa-eu.po to Euskara
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Piarres Beobide <pi at beobide.net>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa-eu\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-10-15 12:21+0200\n"
+"Last-Translator: Piarres Beobide <pi at beobide.net>\n"
+"Language-Team: Euskara <debian-l10n-basque at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "Zure GOsa instalazioaren URLa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Gosa abiarazte script-ak zure nabigatzailea automatikoki zure GOsa instantziaren "
+"lehenetsiriko kokagunera bidali dezake."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Idatzi lehenespena hau ezartzeko dagokion URLa."
+
diff --git a/gosa-core/debian/po/fi.po b/gosa-core/debian/po/fi.po
new file mode 100644
index 0000000..1bfcf1d
--- /dev/null
+++ b/gosa-core/debian/po/fi.po
@@ -0,0 +1,32 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Esko Arajärvi <edu at iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: FINLAND\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "GOsa-asennuksen URL:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "The gosa start script can automatically point your browser to a system wide default location of your GOsa instance."
+msgstr "gosan käynnistyskomentosarja voi automaattisesti avata selaimeen GOsa-instanssin järjestelmän laajuisen oletussijainnin."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Voit asettaa tämän oletusarvon syöttämällä URLin."
+
diff --git a/gosa-core/debian/po/fr.po b/gosa-core/debian/po/fr.po
new file mode 100644
index 0000000..25fcd0f
--- /dev/null
+++ b/gosa-core/debian/po/fr.po
@@ -0,0 +1,41 @@
+# translation of templates.po to Français
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Benoit Mortier <benoit.mortier at opensides.be>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: templates\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2007-07-16 15:37+0200\n"
+"Last-Translator: Benoit Mortier <benoit.mortier at opensides.be>\n"
+"Language-Team: Français <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL vers votre installation de GOsa"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr "Le script de démarrage permet de configurer votre navigateur pour aller directement à votre GOsa."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Veuillez entrer l'url pour activer cette fonctionnalité."
+
diff --git a/gosa-core/debian/po/it.po b/gosa-core/debian/po/it.po
new file mode 100644
index 0000000..d2bad6e
--- /dev/null
+++ b/gosa-core/debian/po/it.po
@@ -0,0 +1,42 @@
+# ITALIAN TRANSLATION OF GOSA'S.PO-DEBCONF FILE
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Vincenzo Campanella <vinz65 at gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: GOSA\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-11-20 08:55+0100\n"
+"Last-Translator: Vincenzo Campanella <vinz65 at gmail.com>\n"
+"Language-Team: Italian <tp at lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL dell'installazione GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Lo script di avvio di GOsa può indirizzare automaticamente il browser web "
+"alla posizione di sistema predefinita della propria istanza di GOsa."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Inserire l'URL per impostare questa posizione predefinita."
+
diff --git a/gosa-core/debian/po/ja.po b/gosa-core/debian/po/ja.po
new file mode 100644
index 0000000..13b46ba
--- /dev/null
+++ b/gosa-core/debian/po/ja.po
@@ -0,0 +1,38 @@
+# GOsa desktop file installer.
+# Copyright (C) 2007-2009 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Hideki Yamane (Debian-JP) <henrich at debian.or.jp>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.16-4.1\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2009-01-06 06:26+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich at debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "GOsa がインストールされる URL:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"gosa の起動スクリプトは、ブラウザが自動的に GOsa インスタンスのシステム全体での"
+"デフォルトの場所を表示するようにできます。"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "これをデフォルトに設定するには URL を入力してください。"
diff --git a/gosa-core/debian/po/nl.po b/gosa-core/debian/po/nl.po
new file mode 100644
index 0000000..09ac0eb
--- /dev/null
+++ b/gosa-core/debian/po/nl.po
@@ -0,0 +1,36 @@
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2007-10-25 19:19+0100\n"
+"Last-Translator: Bart Cornelis <cobaco at skolelinux.no>\n"
+"Language-Team: debian-l10n-dutch <debian-l10n-dutch at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL naar uw GOsa-installatie:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "The gosa start script can automatically point your browser to a system wide default location of your GOsa instance."
+msgstr "Het gosa-startscript kan uw browser automatisch naar een systeemwijde standaardlocatie van uw GOsa-instantie wijzen."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Om deze standaardwaarde in te stellen dient u hier de URL ervan in te voeren."
+
diff --git a/gosa-core/debian/po/pl.po b/gosa-core/debian/po/pl.po
new file mode 100644
index 0000000..0c54df6
--- /dev/null
+++ b/gosa-core/debian/po/pl.po
@@ -0,0 +1,40 @@
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+#
+# Łukasz Paździora <lukpaz at gmail.com>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.16.1-4\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-11-16 00:15+0100\n"
+"Last-Translator: Łukasz Paździora <lukpaz at gmail.com>\n"
+"Language-Team: Polish <debian-l10n-polish at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL instalacji GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Skrypt startowy gosa może automatycznie wskazać przeglądarce "
+"domyślną lokalizację GOsa."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Proszę podać URL w celu ustawienia go domyślnym."
\ No newline at end of file
diff --git a/gosa-core/debian/po/pt.po b/gosa-core/debian/po/pt.po
new file mode 100644
index 0000000..62883da
--- /dev/null
+++ b/gosa-core/debian/po/pt.po
@@ -0,0 +1,41 @@
+# translation of gosa debconf to Portuguese
+# GOsa desktop file installer.
+# Copyright (C) 2007 Américo Monteiro
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Américo Monteiro <a_monteiro at netcabo.pt>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa 2.5.12-1\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2007-08-01 23:35+0100\n"
+"Last-Translator: Américo Monteiro <a_monteiro at netcabo.pt>\n"
+"Language-Team: Portuguese <traduz at debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL da sua instalação GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"O script de arranque do gosa pode automaticamente apontar o seu navegador Web "
+"para uma localização de omissão da sua instância GOsa para todo o sistema."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Indique o URL para regular isto como omissão."
+
diff --git a/gosa-core/debian/po/ru.po b/gosa-core/debian/po/ru.po
new file mode 100644
index 0000000..2f684cb
--- /dev/null
+++ b/gosa-core/debian/po/ru.po
@@ -0,0 +1,43 @@
+# translation of ru.po to Russian
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Yuri Kozlov <kozlov.y at gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa NEW\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-10-20 20:39+0400\n"
+"Last-Translator: Yuri Kozlov <kozlov.y at gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL установленной GOsa:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"Сценарий запуска gosa может автоматически указать вашему браузеру "
+"общесистемное месторасположение по умолчанию экземпляра GOsa."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Введите URL для настройки этого значения по умолчанию."
+
diff --git a/gosa-core/debian/po/sv.po b/gosa-core/debian/po/sv.po
new file mode 100644
index 0000000..2dd668e
--- /dev/null
+++ b/gosa-core/debian/po/sv.po
@@ -0,0 +1,43 @@
+# translation of gosa_2.5.16.1-3_sv.po to Swedish
+# GOsa desktop file installer.
+# Copyright (C) 2007 Cajus Pollmeier <cajus at debian.org>
+# This file is distributed under the same license as the gosa-desktop package.
+#
+# Cajus Pollmeier <cajus at debian.org>, 2007.
+# Martin Ågren <martin.agren at gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: gosa_2.5.16.1-3_sv\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2007-06-27 10:59+0200\n"
+"PO-Revision-Date: 2008-07-23 20:47+0200\n"
+"Last-Translator: Martin Ågren <martin.agren at gmail.com>\n"
+"Language-Team: Swedish <debian-l10n-swedish at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr "URL till din GOsa-installation:"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+"gosa-startskriptet kan automatiskt peka din webbläsare till en systemtäckande "
+"standardplats för din GOsa-instans."
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr "Ange URL:en för att sätta detta standardvärde."
+
diff --git a/gosa-core/debian/po/templates.pot b/gosa-core/debian/po/templates.pot
new file mode 100644
index 0000000..bd4af9b
--- /dev/null
+++ b/gosa-core/debian/po/templates.pot
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: cajus at debian.org\n"
+"POT-Creation-Date: 2008-12-01 10:40+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "URL to your GOsa installation:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid ""
+"The gosa start script can automatically point your browser to a system wide "
+"default location of your GOsa instance."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../gosa-desktop.templates:1001
+msgid "Enter the URL in order to set this default."
+msgstr ""
diff --git a/gosa-core/debian/rules b/gosa-core/debian/rules
new file mode 100755
index 0000000..cc4af94
--- /dev/null
+++ b/gosa-core/debian/rules
@@ -0,0 +1,86 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# debian/rules file to build GOsa packages.
+#
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	touch configure-stamp
+
+build: patch build-indep
+        #*************************************************
+        #* Building GOsa into a Debian/GNU Linux Package *
+        #*                please stand by                *
+        #*************************************************
+
+
+build-indep: build-indep-stamp
+build-indep-stamp: configure-stamp 
+	touch $@
+
+clean: clean-patched unpatch
+clean-patched:
+	dh_testdir
+	dh_testroot
+	rm -f build-indep-stamp configure-stamp
+
+	dh_clean
+
+unpatch:
+	dpatch deapply-all
+	rm -rf patch-stamp debian/patched
+
+install: install-indep
+install-indep:
+	dh_testdir
+	dh_testroot
+	dh_clean -k -i 
+	dh_installdirs -i
+	dh_install -i --exclude COPYING
+
+binary-common:
+	dh_testdir
+	dh_testroot
+	install -D -m 644 debian/gosa.lintian-overrides debian/gosa/usr/share/lintian/overrides/gosa
+	dh_installchangelogs Changelog
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+	dh_installdebconf	
+	dh_installman
+	rm -rf debian/gosa/usr/share/gosa/include/smarty
+	dh_strip
+	dh_desktop
+	dh_compress
+	# This is an ugly workaround to preserve gosa.conf from beeing compressed. Excluding it
+	# above does not work, because the manual page will match the expression, too.
+	gzip -d debian/gosa/usr/share/doc/gosa/gosa.conf.gz
+	dh_fixperms
+	dh_installdeb
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+patch: patch-stamp
+patch-stamp:
+	dpatch apply-all
+	dpatch cat-all >patch-stamp
+
+binary-indep: build-indep install-indep
+	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+binary: binary-indep
+
+binary-arch:
+.PHONY: build clean binary-indep binary install install-indep configure
diff --git a/gosa-core/debian/smarty-acl-render.dirs b/gosa-core/debian/smarty-acl-render.dirs
new file mode 100644
index 0000000..baad34c
--- /dev/null
+++ b/gosa-core/debian/smarty-acl-render.dirs
@@ -0,0 +1 @@
+usr/share/php/smarty/libs/plugins
diff --git a/gosa-core/debian/smarty-acl-render.install b/gosa-core/debian/smarty-acl-render.install
new file mode 100644
index 0000000..3132482
--- /dev/null
+++ b/gosa-core/debian/smarty-acl-render.install
@@ -0,0 +1,2 @@
+include/smarty/plugins/block.render.php     /usr/share/php/smarty/libs/plugins
+include/smarty/plugins/function.msgPool.php /usr/share/php/smarty/libs/plugins
diff --git a/gosa-core/debian/watch b/gosa-core/debian/watch
new file mode 100644
index 0000000..63c5ddd
--- /dev/null
+++ b/gosa-core/debian/watch
@@ -0,0 +1,3 @@
+version=3
+
+http://oss.gonicus.de/pub/gosa/gosa-(.*)\.tar\.gz
diff --git a/gosa-core/dh-make-gosa b/gosa-core/dh-make-gosa
new file mode 100755
index 0000000..7bc7446
--- /dev/null
+++ b/gosa-core/dh-make-gosa
@@ -0,0 +1,425 @@
+#!/bin/bash
+# This code is part of GOsa (http://www.gosa-project.org)
+# Copyright (C) 2008 GONICUS GmbH
+#
+# ID: $$Id: dh-make-gosa 15665 2010-02-22 11:39:34Z cajus $$
+#
+# 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+usage() {
+  echo "Usage: ${0##*/} [--no-break] [--section section name] [-b|--branch branch] [-e|--email mail] [--depends] plugin-dir|plugin.tar.gz" >&2
+  exit 1
+}
+
+
+remove_empty_docs() {
+	for dir in $(find help); do
+		len=$(echo $dir | wc -c)
+		echo $len $dir
+	done | sort -rn | while read dummy dir; do
+
+		if [ -d $dir ]; then
+			cnt=$(ls -1A $dir | wc -l)
+			if [ $cnt -eq 0 ]; then
+				echo "Removing empty $dir"
+				rm -rf "$dir"
+				sed -i "/$(echo -n $dir | sed 's/\//\\\//g')/d" debian/install
+			fi
+		fi
+
+	done
+}
+
+
+load_dsc() {
+  if [ -r "$1" ]; then
+    PL_NAME=$(sed -n 's/"//g;s/^name\s*=\s*\(.*\)$/\1/p' "$1")
+    PL_VERSION=$(sed -n 's/"//g;s/^version\s*=\s*\(.*\)$/\1/p' "$1")
+    TDEPENDS=$(sed -n 's/"//g;s/^depends\s*=\s*\(.*\)$/\1/p' "$1")
+		TDEPENDS=$(echo $TDEPENDS | tr , " ")
+    for dep in $TDEPENDS; do
+      PL_DEPENDS="gosa-plugin-$dep, $PL_DEPENDS"
+    done
+    TCONFLICTS=$(sed -n 's/"//g;s/^conflicts\s*=\s*\(.*\)$/\1/p' "$1")
+    for dep in $TCONFLICTS; do
+      PL_CONFLICTS="gosa-plugin-$dep, $PL_CONFLICTS"
+    done
+    PL_DESCRIPTION=$(sed -n 's/"//g;s/^description\s*=\s*\(.*\)$/\1/p' "$1")
+    PL_AUTHOR=$(sed -n 's/"//g;s/^author\s*=\s*\([^<]*\).*$/\1/p' "$1")
+    PL_MAIL=$(sed -n 's/"//g;s/^author\s*=[^<].*<\([^>]*\).*$/\1/p' "$1")
+    PL_MAINTAINER=$(sed -n 's/"//g;s/^maintainer\s*=[^<].*<\([^>]*\).*$/\1/p' "$1")
+    PL_HOMEPAGE=$(sed -n 's/"//g;s/^homepage\s*=\s*\(.*\)$/\1/p' "$1")
+  else
+    echo "Error: cannot find description file" >&2
+    exit 1
+  fi
+}
+
+
+TEMP=`getopt -o e:r: --long download,release:,email:,depends:,section: -n 'dh-make-gosa' -- "$@"`
+if [ $? != 0 ] ; then
+  echo "Error: cannot get command line information" >&2
+  exit 1
+fi
+
+eval set -- "$TEMP"
+
+# Load command  line vars
+RELEASE=trunk
+DOWNLOAD=
+DEPENDS=
+NOBREAK=
+SECTION=web
+DEST=
+while true; do
+  case "$1" in
+    -e|--email) DEBMAIL=$2
+                shift 2
+                ;;
+    -r|--release)
+                if [ "$2" != "trunk" ]; then
+                  RELEASE=tags/$2
+                fi
+                shift 2
+                ;;
+    --depends)  DEPENDS="$2"
+                shift 2
+                ;;
+    --section)  SECTION="$2"
+                shift 2
+                ;;
+    --no-break) NOBREAK=1
+                shift 1
+                ;;
+    --dest)     DEST=$2/
+                shift 2
+                ;;
+    --download) DOWNLOAD=yes
+		echo "Download is not implemented yet"
+		exit 1
+                ;;
+    --)         shift
+                break
+                ;;
+    *)          usage
+                ;;
+  esac
+done
+
+[ $# -ne 1 ] && usage
+file=$*
+
+# Three possiblities
+if [ -d "$file" ]; then
+
+  # It's a local directory
+  load_dsc $file/plugin.dsc
+
+  # Setup build environment
+  if [ "$OVERRIDE_VERSION" ]; then
+	  BUILD_PATH=${DEST}gosa-plugin-${PL_NAME}-${OVERRIDE_VERSION}
+  else
+	  BUILD_PATH=${DEST}gosa-plugin-${PL_NAME}-${PL_VERSION}
+  fi
+  if [ -d "$BUILD_PATH" ]; then
+    echo "Error: build path $BUILD_PATH already exists" >&2
+    exit 2
+  fi
+  cp -a "$PL_NAME" "$BUILD_PATH"
+
+elif [ -f "$file" ]; then
+
+  # It's a compressed user contributed file
+  TMPDIR="/tmp/dh-make-gosa-$PPID"
+  if [ -d "/tmp/dh-make-gosa-$PPID"  ]; then
+    echo "Error: directory $TMPDIR exists" >&2
+    exit 4
+  fi
+
+  # Untar
+  mkdir -p "$TMPDIR"
+  tar --extract --directory "$TMPDIR" -fz "$file" >/dev/null 2>&1
+  if [ $? -ne 0 ]; then
+    echo "Error: cannot extract plugin file - invalid file format" >&2
+    exit 5
+  fi
+
+  # It's a local directory
+  load_dsc TMPDIR/*/plugin.dsc
+
+  # Setup build environment
+  BUILD_PATH=${DEST}gosa-plugin-${PL_NAME}-${PL_VERSION}
+  mv "$TMPDIR/*" "$BUILD_PATH"
+
+else
+
+  echo "Error: cannot find plugin $file" >&2
+  exit 5
+
+fi
+
+
+PL_DEPENDS=$(echo $PL_DEPENDS$DEPENDS | sed 's/,\s*$//')
+echo "Debian package summary ========================================"
+echo "Plugin:       $PL_NAME"
+echo "Version:      $PL_VERSION"
+echo "Description:  $PL_DESCRIPTION"
+echo "Depends:      $PL_DEPENDS"
+echo "Conflicts:    $PL_CONFLICTS"
+echo "Author name:  $PL_AUTHOR"
+echo "Author email: $PL_MAIL"
+echo "Maintainer email: $PL_MAINTAINER"
+echo "Homepage:     $PL_HOMEPAGE"
+echo
+read -s -n 1 -p "Do you want to continue? (y/n)" ans; echo
+[ "$ans" != "y" ] && exit 0
+
+cd "$BUILD_PATH"
+
+# Use gosa-plugin skelleton
+echo "Calling dh_make..."
+echo | dh_make -e "$PL_MAINTAINER" -c gpl -s -n -f gosa-plugin-${PL_NAME}-${PL_VERSION}.tar.gz >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+	echo "Failed to call dh_make - aborting!"
+	exit 1
+fi
+
+echo "Apdapting debian descriptive files..."
+
+# Generate install file
+for dir in admin personal addons gofax gofon generic; do
+	[ -d $dir ] && printf "$dir\t\t\t/usr/share/gosa/plugins\n" >> debian/install
+done
+for dir in help/*; do
+	printf "$dir\t\t\t/usr/share/gosa/doc/plugins/$PL_NAME\n" >> debian/install
+done
+for dir in $(ls -1 locale | grep -v "^en$" | grep -v "^messages.po$"); do
+	printf "locale/$dir\t\t\t/usr/share/gosa/locale/plugins/$PL_NAME\n" >> debian/install
+done
+
+# Generate dirs
+echo "usr/share/gosa" > debian/dirs
+
+# If we've a contrib directory include it to the docs
+if [ -d contrib ]; then
+	echo "contrib /usr/share/doc/gosa-plugin-$PL_NAME" >> debian/install
+fi
+if [ -d etc ]; then
+	echo "etc/* /etc/gosa" >> debian/install
+fi
+if [ -d html ]; then
+	for i in html/*; do
+		echo "$i /usr/share/gosa/html/plugins/$PL_NAME" >> debian/install
+	done
+fi
+
+# Fix copyright
+sed -i '/^### OR ###/,/^########/d' debian/copyright
+sed -i '/^#/d;/^.*likewise for another author.*$/d' debian/copyright
+year=$(date +%Y)
+sed -i "s/.Copyright (C) YYYY Name OfAuthor./Copyright \(C) $year $PL_AUTHOR/g" debian/copyright
+sed -i "s/<Copyright (C) YYYY Firtname Lastname>/Copyright \(C) $year $PL_AUTHOR/g" debian/copyright
+sed -i "s/.url:\/\/example.com./http:\/\/www.gosa-project.org/g" debian/copyright
+sed -i "/.put author's name and email here.\
+/d" debian/copyright
+sed -i '/^Upstream/,/^$/d' debian/copyright
+sed -i 's/ C)/ (C)/g' debian/copyright
+sed -i 's/GPL/GPL-2/g' debian/copyright
+sed -i 's/The Debian packaging is/The Debian packaging is Copyright (C)/g' debian/copyright
+
+# Adapt control
+sed -i "s#^Section: unknown#Section: $SECTION#g" debian/control
+sed -i 's/^Architecture: any/Architecture: all/g' debian/control
+sed -i "s#^Homepage: <insert the upstream URL, if relevant>#Homepage: $PL_HOMEPAGE#g" debian/control
+
+if [ "$PL_DEPENDS" ]; then
+	sed -i "s/^Depends: .*$/Depends: gosa, $PL_DEPENDS/g" debian/control
+else
+	sed -i 's/^Depends: .*$/Depends: gosa/g' debian/control
+fi
+if [ "$PL_CONFLICTS" ]; then
+	sed -i "11iConflicts: $PL_CONFLICTS" debian/control
+fi
+if [ -z "$NOBREAK" ]; then
+  sed -i "12iBreaks: gosa (<2.6)" debian/control
+fi
+sed -i 's/^\(Build-Depends: .*\)$/\1, dpatch/g' debian/control
+sed -i 's/^Standards-Version: 3.7.3/Standards-Version: 3.8.3/g' debian/control
+
+sed -i "s/^Description: .*$/Description: $PL_NAME plugin for GOsa/g" debian/control
+sed -i "s/^ <.*$/ %DESCRIPTION%/g" debian/control
+dsc=$(tempfile)
+{
+echo $PL_DESCRIPTION 
+cat <<EOF
+.
+GOsa is a combination of system-administrator and end-user web
+interface, designed to handle LDAP based setups.
+EOF
+}| fmt -suw79 | sed 's/^/ /g' > $dsc
+sed -i "/%DESCRIPTION%/r $dsc" debian/control
+sed -i "/%DESCRIPTION%/d" debian/control
+rm $dsc
+
+# Do we need to generate another package for schema files?
+if ls contrib/*schema &> /dev/null; then
+	echo etc/ldap/schema/gosa > debian/gosa-plugin-${PL_NAME}-schema.dirs
+	ls -1 contrib/*schema | sed 's%$% /etc/ldap/schema/gosa%g' > debian/gosa-plugin-${PL_NAME}-schema.install
+
+	cat <<-EOF >> debian/control
+	
+	Package: gosa-plugin-${PL_NAME}-schema
+	Architecture: all
+	Recommends: slapd
+	Description: LDAP schema for GOsa plugin ${PL_NAME}
+	 This package includes the LDAP schema needed by the GOsa
+	 ${PL_NAME} plugin.
+	 .
+	 GOsa is a combination of system-administrator and end-user web
+	 interface, designed to handle LDAP based setups.
+	EOF
+fi
+
+# Create patch directory
+[ ! -d debian/patches ] && mkdir debian/patches
+
+# Create empty patch list
+cat <<EOF > debian/patches/00list
+This file left intentionnaly blank
+EOF
+
+# Adapt README.debian
+cat <<EOF > debian/README.Debian
+README.Debian for GOsa $PL_NAME plugin $PL_VERSION
+-------------------------------------------
+
+Please read the main GOsa README.Debian file for more information.
+
+----
+$PL_AUTHOR <$PL_MAIL>  Fri 02 Jun 2006 16:23:50 +0200
+EOF
+
+# Adapt README.source
+cat <<EOF > debian/README.source
+/usr/share/doc/dpatch/README.source.gz
+EOF
+
+# Fix README
+sed -i "s/Comments regarding the Package/After installing this plugin you may need to reload apache../g" debian/README
+
+# Fix rules
+cat <<EOF > debian/rules
+#!/usr/bin/make -f
+# -*- makefile -*-
+# GOsa default plugin debhelper file.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+configure: configure-stamp
+configure-stamp:
+	dh_testdir
+	touch configure-stamp
+
+patch: patch-stamp
+patch-stamp:
+	dpatch apply-all
+	dpatch cat-all >patch-stamp
+
+build: patch build-stamp
+
+build-stamp: configure-stamp 
+	dh_testdir
+
+	touch $@
+
+clean: clean-patched unpatch
+clean-patched:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp configure-stamp
+	dh_clean 
+
+unpatch:
+	dpatch deapply-all
+	rm -rf patch-stamp debian/patched
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_installdirs
+
+# Build architecture-independent files here.
+binary-indep: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs 
+	dh_installdocs
+	dh_installexamples
+	dh_install
+	dh_installman
+	dh_strip
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep
+
+binary-arch:
+.PHONY: build clean binary-indep binary install configure
+EOF
+
+# Adapt postinst/postrm
+for file in postinst postrm; do
+sed 's!#DEBHELPER#!#DEBHELPER#\
+\
+# Get apache versions running\
+servers=""\
+for srv in apache apache-ssl apache2; do\
+        if [ -x /usr/sbin/$srv ]; then\
+                servers="$srv $servers"\
+        fi\
+done\
+\
+# Update gosa\
+update-gosa\
+\
+# Finally restart servers\
+for server in $servers; do\
+        if [ -x /usr/sbin/invoke-rc.d ]; then\
+                invoke-rc.d $server restart\
+        else\
+                /etc/init.d/$server restart\
+        fi\
+done\
+\
+!' debian/$file.ex > debian/$file
+done
+
+# Remove examples
+rm debian/*ex debian/*EX >/dev/null 2>&1
+
+# Remove empty docs
+remove_empty_docs
+
+echo "Done."
+
diff --git a/gosa-core/dh-make-gosa.1 b/gosa-core/dh-make-gosa.1
new file mode 100644
index 0000000..e404d1d
--- /dev/null
+++ b/gosa-core/dh-make-gosa.1
@@ -0,0 +1,89 @@
+.TH DH-MAKE-GOSA 1 "2008-04-07" "GOsa v2.6" "Debian"
+.SH NAME
+dh-make-gosa \- Debianizes the source of a given gosa plugin
+.SH SYNOPSIS
+.B dh-make-gosa [OPTION]...
+.B SOURCE
+.SH DESCRIPTION
+.B dh-make-gosa
+takes a directory or tar ball of an existing gosa plugin
+and adds debian information to it. Feel free to use
+.I dpkg-buildpackage
+to generate your own gosa-plugin package from source or
+svn and enable it in the
+.BR gosa.conf (5)
+file to activate it.
+.SH OPTIONS
+.\"[-r|--release release] [--section section] [-e|--email mail] [--depends] plugin-dir|plugin.tar.gz
+
+.IP "-r debian-release, --release debian-release"
+Set the Debian release to
+.B debian-release
+when generating the Debian tree. Default is the
+.I unstable
+release.
+
+.IP "--dest destination-directory"
+Place where
+.B dh-make-gosa
+will place its working data while generating the source directory.
+Defaults to the current directory.
+
+.IP "--section debian-section"
+Set the Debian section to
+.B debian-section
+when generating the Debian tree.  Defaults to the the
+.I web
+section.
+
+.IP "--depends package,package,..."
+Add additional dependencies to the Debian tree which did not get
+listed in the
+.I plugin.dsc
+file. This is a comma separated list of Debian package names.
+
+.IP "-e mail, --email mail"
+Overrides the Debian packager defined inside the
+.I plugin.dsc
+file by the one specified by
+.B mail.
+
+.SH Example usage
+
+.nf
+# Check out a plugin from SVN
+svn co https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/samba /tmp/samba
+
+# Debianize the tree
+cd /tmp
+dh-make-gosa --email cajus at debian.org --release etch --section web samba
+
+# Build debian package
+cd samba
+dpkg-buildpackage \-uc \-us \-rfakeroot
+.fi
+
+To build everything from the subversion repository which is GOsa related, please
+take a look at the contributed
+.B make-gosa-package
+script.
+
+.SH AUTHOR
+Cajus Pollmeier <cajus at debian.org>
+
+.SH BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+.SH LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
diff --git a/gosa-core/doc/admin/en/manual_gosa_en.tex b/gosa-core/doc/admin/en/manual_gosa_en.tex
new file mode 100644
index 0000000..4a9036b
--- /dev/null
+++ b/gosa-core/doc/admin/en/manual_gosa_en.tex
@@ -0,0 +1,72 @@
+\documentclass[a4paper,english,10pt]{book}
+
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[pdftex]{graphicx}
+\usepackage[english]{babel}
+\usepackage{times}
+\usepackage{multirow}
+\usepackage[latex2html,backref,pdftitle={GOsa}]{hyperref}
+\usepackage{html,color}
+\usepackage{latexsym}
+\usepackage{anysize}
+\usepackage{float}
+\usepackage{longtable}
+\usepackage{verbatim}
+
+\author{Alejandro Escanero Blanco}
+\title{System Management with GOsa }
+\date{28-03-05}
+
+\marginsize{3cm}{2cm}{2.5cm}{2.5cm}
+
+
+\begin{document}
+
+\maketitle
+\newpage
+\tableofcontents
+\newpage
+\listoffigures
+\newpage
+\listoftables
+\newpage
+
+\chapter*{Preamble}
+
+\htmladdnormallink{GOsa}{http://gosa.gonicus.de}, was a project created in year 2001 by Cajus Pollmeier \htmladdnormallink{Cajus Pollmeier}{mailto://pollmeier@gonicus.de}
+
+In the 1.0 version GOsa was a an ambitious project, but badly focused. I entred as developer of the project in June of 2003 for the early versions of the branch 1.99.xx.
+The code was remade from scratch, and we created a new modular and extensible version (based on plugins) and optimizing its operations enormously.
+
+The actual version of GOsa (in the date of this document) is 2.3.
+It have the ability to manage a great amount of services like samba2/3, pureftpd, postfix, cyrus-imap, posix, etc.
+It have a small but very active developer group directed by Cajus.
+
+\chapter{Introduction}
+The management of systems can be a really complicated work, too many users with diferents services and access to them.
+
+\section{Copyright and Disclaimer}
+Copyright (c) 2005 Alejandro Escanero Blanco. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
+
+If you have questions, please visit the following url: http://www.gnu.org/licenses/fdl.txt and contact at: \htmladdnormallink{blainett at yahoo.es}{mailto://blainett@yahoo.es}
+
+\include{manual_gosa_en_ldap}
+
+\include{manual_gosa_en_apache}
+
+\chapter{GOsa}
+
+\chapter{The Servers}
+\label{servers}
+\section{Postfix}
+\section{Cyrus-IMAP}
+\section{Samba 2/3}
+\section{Pure-Ftpd}
+\section{Squid}
+\section{Egroupware}
+
+\bibliography{referencias_gosa}
+\bibliographystyle{unsrt}
+
+\end{document}
diff --git a/gosa-core/doc/admin/en/manual_gosa_en_apache.tex b/gosa-core/doc/admin/en/manual_gosa_en_apache.tex
new file mode 100644
index 0000000..aa349f9
--- /dev/null
+++ b/gosa-core/doc/admin/en/manual_gosa_en_apache.tex
@@ -0,0 +1,837 @@
+\chapter{Apache And PHP}
+\section{Apache Introduction}
+
+GOsa is an application written in the PHP programming language.
+
+Although everybody knows what is a Web page, we will review some basic points: 
+
+\begin{description}
+\item[WWW]
+The World Wide Web is the main core of what we know as the Internet, it is a space information where each resource is identified by its URI (Universal Resource Identifier), it defines the protocol necessary to accede to the information, the machine that has it and where it is placed. 
+
+The WWW is the great revolution of our time, is an enormous source of information. And because this all the applications are being Internet oriented. GOsa uses the WWW for a simple reason, distribution of the program, a Internet oriented application that can be used from any place and any time. GOsa does not need to be acceded in the same machine that has it executed, and another thing, each one of the servers whom it controls even can be in different machines and remote places. 
+
+\item[HTTP]
+\htmladdnormallink{HTTP}{http://www.w3.org/Protocols/}\cite{2616} is the acronym of HyperText Transfer Protocol, whose importantest purpose is the publication and reception of "Web pages". 
+
+It is a application level protocol invented for distributed systems of hypermedia information. It has been being used for the WWW from 1990, the current version is HTTP/1.1. 
+
+The practical operation can be reduced to a client whom makes a request and a server whom manages that request makes an answer. 
+
+\item[HTML] 
+If the request of the client and the answer of the server are correct, the answer of the server will contain some type of hypermedia, the most habitual is \htmladdnormallink{HTML}{http://www.w3.org/TR/1998/REC-html40-19980424/} (HyperText Markup Language), a language thought for publication with contents and a easy navigation by them. It is a protocol in constant development, the present version is HTML4.01 and in publication XHTML2.0 
+\end{description}
+
+\htmladdnormallink{APACHE}{http://httpd.apache.org/} is the \htmladdnormallink{most used}{http://news.netcraft.com/archives/web_server_survey.html} server for HTTP , secure, efficient and modular. 
+
+This manual will be centered around this server, since this is the most used and has a opensource license. 
+
+More information about this server is in \htmladdnormallink{http://httpd.apache.org/docs-2.0/}{http://httpd.apache.org/docs-2.0/}
+
+
+\section{PHP Introduction}
+
+PHP (PHP: Hypertext Preprocessor), is an interpreted high level language, specially thought for the design of web pages. The syntax is a mixture of C, Perl and Java. It is embed in HTML pages and is executed by the HTTP server.
+
+PHP is widely extended and has a numerous group of developer, a \htmladdnormallink{extensive documentation}{http://www.php.net/docs.php} and numerous web sites with documentation and examples. 
+
+\newpage
+
+\section{Installation} 
+\subsection{Unloading and Installing Apache} 
+\label{down_apache}
+As in the previous chapter, Apache is practically in all the distributions, although we will see its installation from the sources. We are going to focus on the most advanced versions of apache, the 2.0.XX stables series.
+
+It is recommended install the same packages that are needed for openLDAP\ref{down_ldap}. 
+
+It is possible to be downloaded of: \htmladdnormallink{http://httpd.apache.org/download.cgi}{http://httpd.apache.org/download.cgi}, the version which we are going to download and decompress in/usr/src is the httpd-2.0.XX.tar.gz 
+
+We executed \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/en/configure-apache.sh} with the following options:
+
+\begin{itemize}
+\item[]Generals\\
+\begin{tabular}{|ll|} \hline
+--enable-so & $\rightarrow$ Support of Dynamic Shared Objects (DSO)\\
+--with-program-name=apache2 & \\
+--with-dbm=db42 & $\rightarrow$ Version of Berkeley DB that we are going to use\\
+--with-external-pcre=/usr & \\
+--enable-logio & $\rightarrow$ Input and Output Log\\
+--with-ldap=yes & \\
+--with-ldap-include=/usr/include & \\
+--with-ldap-lib=/usr/lib & \\
+\hline \end{tabular}
+ 
+\item[]suexec Support\\
+\begin{tabular}{|ll|}\hline 
+--with-suexec-caller=www-data & \\
+--with-suexec-bin=/usr/lib/apache2/suexec2 & \\
+--with-suexec-docroot=/var/www & \\
+--with-suexec-userdir=public\_html & \\
+--with-suexec-logfile=/var/log/apache2/suexec.log & \\
+\hline \end{tabular}
+
+\item[]
+\begin{longtable}{|ll|}
+\hline
+\multicolumn{2}{|c|}{\textbf{Modules}}\\
+\hline
+\endfirsthead
+\hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+--enable-userdir=shared & $\rightarrow$ mod\_userdir, module for user directories\\
+--enable-ssl=shared & $\rightarrow$ mod\_ssl, module of secure connectivity SSL\\
+--enable-deflate=shared & $\rightarrow$ mod\_deflate, module to compress the information\\
+--enable-ldap=shared & $\rightarrow$ mod\_ldap\_userdir, module for ldap cache and connections\\
+--enable-auth-ldap=shared & $\rightarrow$ mod\_ldap, module of authentication in ldap\\
+--enable-speling=shared & $\rightarrow$ mod\_speling, module for the correction of failures in URL\\
+--enable-include=shared & $\rightarrow$ mod\_include, module for the inclusion of other configurations \\ 
+--enable-rewrite=shared & $\rightarrow$ mod\_rewrite, allows the URL manipulations \\ 
+--enable-cgid=shared & $\rightarrow$ CGI script\\
+--enable-vhost-alias=shared & $\rightarrow$ module for aliasing of virtual domains \\ 
+--enable-info=shared & $\rightarrow$ Information of the server\\
+--enable-suexec=shared & $\rightarrow$ Change the user and the group of the processes\\
+--enable-unique-id=shared & $\rightarrow$ unique Identifier by request\\
+--enable-usertrack=shared & $\rightarrow$ Track of the user session\\
+--enable-expires=shared & $\rightarrow$ Module for sending of expiration headers\\
+--enable-cern-meta=shared & $\rightarrow$ Files meta type CERN\\
+--enable-mime-magic=shared & $\rightarrow$ Obtain automatically mimetype\\
+--enable-headers=shared & $\rightarrow$ Control HTTP headers\\
+--enable-auth-anon=shared & $\rightarrow$ Access to anonymous users\\
+--enable-proxy=shared & $\rightarrow$ Allow the use of Apache as a proxy\\
+--enable-dav=shared & $\rightarrow$ Able to handle to the WebDav protocol\\
+--enable-dav-fs=shared & $\rightarrow$  Supplier DAV for the file system\\
+--enable-auth-dbm=shared & $\rightarrow$ Authentication based on database DBM\\
+--enable-cgi=shared & $\rightarrow$ Allow CGI scripts\\
+--enable-asis=shared & $\rightarrow$ Types of archives as they are\\
+--enable-imap=shared & $\rightarrow$ Server side image maps\\
+--enable-ext-filter=shared & $\rightarrow$ Module for external filters\\
+--enable-authn-dbm=shared & \\
+--enable-authn-anon=shared & \\
+--enable-authz-dbm=shared & \\
+--enable-auth-digest=shared & $\rightarrow$ Collection of authentications according to RFC2617\\
+--enable-actions=shared & $\rightarrow$ Active actions according to requests\\
+--enable-file-cache=shared & $\rightarrow$ File Cache\\
+--enable-cache=shared & $\rightarrow$ Dynamic Cache of archives\\
+--enable-disk-cache=shared & $\rightarrow$ Disc cache\\
+--enable-mem-cache=shared & $\rightarrow$ Mamory cache\\
+\end{longtable}
+\end{itemize}
+
+Once configured, we must do:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#make \&\& make install\\
+\hline \end{tabular}
+\newpage
+
+\subsection{Installing PHP in Apache} 
+
+Can be downloaded of \htmladdnormallink{http://www.php.net/downloads.php}{http://www.php.net/downloads.php} being the version necessary to the date of this manual for comaptibility with GOsa, the 4.3.XX, since versions 5.0.XX are not supported yet. We will download and decompress in/usr/src. 
+
+In order to be able to compile the necessary modules, we need the developer libraries of servers section \ref{servers}, in addition to same that openLDAP\ref{down_ldap} and the Apache\ref{down_apache}, we will need some library more: 
+
+\begin{itemize}
+\item[libbz2] 
+We can download it of \htmladdnormallink{http://sources.redhat.com/bzip2/}{http://sources.redhat.com/bzip2/} as module of compression BZ2. 
+\item[e2fsprogs]
+For access to the file system, can be downloaded of \htmladdnormallink{http://e2fsprogs.sourceforge.net}{http://e2fsprogs.sourceforge.net}
+\item[expat] 
+Download from \htmladdnormallink{http://expat.sourceforge.net/}{http://expat.sourceforge.net/}, A XML parser. 
+\item[zziplib] 
+Download from \htmladdnormallink{http://zziplib.sourceforge.net/}{http://zziplib.sourceforge.net/}, to access to ZIP archives.
+\item[zlib] 
+Download from \htmladdnormallink{http://www.gzip.org/zlib/}{http://www.gzip.org/zlib/} for GZIP compression. 
+\item[file] 
+Download from \htmladdnormallink{http://www.darwinsys.com/freeware/file.html}{http://www.darwinsys.com/freeware/file.html} to get control of archives. 
+\item[sed] 
+Download from \htmladdnormallink{http://www.gnu.org/software/sed/sed.html}{http://www.gnu.org/software/sed/sed.html}, one of the most powerful tools for text handling.
+\item[libcurl] 
+Powerful tool to handle remote archives, download from \htmladdnormallink{http://curl.haxx.se/}{http://curl.haxx.se/}. 
+\item[gettext] 
+GNU Tool for support of several languages, download from \htmladdnormallink{http://www.gnu.org/software/gettext/gettext.html}{http://www.gnu.org/software/gettext/gettext.html}.
+\item[libgd] 
+For the manipulation and creation of images, download from: \htmladdnormallink{http://www.boutell.com/gd}{/http://www.boutell.com/gd/}.
+\item[libjpeg] 
+Manipulation of JPEG images, download from \htmladdnormallink{http://www.ijg.org/}{http://www.ijg.org/}.
+\item[libpng] 
+Manipulation of PNG images, donwload from \htmladdnormallink{http://www.libpng.org/pub/png/libpng.html}{http://www.libpng.org/pub/png/libpng.html}.
+\item[mcal] 
+Library for access to remote Calendars, download from \htmladdnormallink{http://mcal.chek.com/}{http://mcal.chek.com/}.
+\item[libmysql] 
+Support of most famous database, is essential for php, download from \htmladdnormallink{http://www.mysql.com/}{http://www.mysql.com/} 
+\end{itemize}
+\vspace{1cm}
+
+
+A recommended configuration will be like this: 
+
+
+\begin{itemize}
+\item[]Apache2\\
+\begin{tabular}{|ll|}\hline 
+--prefix=/usr --with-apxs2=/usr/bin/apxs2 & \\
+--with-config-file-path=/etc/php4/apache2 & \\
+\hline \end{tabular}
+
+
+ 
+\item[]Options of compilation\\
+\begin{tabular}{|ll|}\hline
+--enable-memory-limit & \# Compiled with memory limit\\
+--disable-debug & \# To compile without debug symbols\\
+--disable-static & \# Without static libraries\\
+--with-pic & \# To use PIC and nonPIC objects\\
+--with-layout=GNU & \\
+--enable-sysvsem & \# sysvmsg Support\\
+--enable-sysvshm & \# sysvshm Support\\
+--enable-sysvmsg & \# System V shared memory support\\
+--disable-rpath & \# Disable to be able to pass routes to extra librerias to the binary\\
+--without-mm & \# To disable memoty sessions support\\
+\hline \end{tabular}
+
+\item[]Session\\
+\begin{tabular}{|ll|}\hline
+--enable-track-vars & \\
+--enable-trans-sid & \\
+\hline \end{tabular}
+
+\item[]Support\\
+\begin{tabular}{|ll|}\hline
+--enable-sockets & \# sockets support\\
+--with-mime-magic=/usr/share/misc/file/magic.mime & \\
+--with-exec-dir=/usr/lib/php4/libexec & \\
+\hline \end{tabular}
+
+\item[]pear\\
+\begin{tabular}{|ll|}\hline
+--with-pear=/usr/share/php & \# Where we are going to install PEAR\\
+\hline \end{tabular}
+  
+\item[]functions\\
+\begin{tabular}{|ll|}\hline
+--enable-ctype & \# Control of characters functions support\\
+--with-iconv & iconv functions support \\
+--with-bz2 & BZ2 Compression support\\
+--with-regex=php & Type of library of regular expressions\\
+--enable-calendar & Calendar conversion functions\\
+--enable-bcmath & Mathematics of arbitrary precision support\\
+--with-db4 & DBA: Berkeley DB version 4 support \\
+--enable-exif & exif functions support, for JPG and TIFF metadata reading\\
+--enable-ftp & FTP functions support \\
+--with-gettext & Localization support\\
+--enable-mbstring & \\
+--with-pcre-regex=/usr & \\
+--enable-shmop & shared memory functions\\
+--disable-xml --with-expat-dir=/usr & use expat xml instead of which comes with php\\
+--with-xmlrpc & \\
+--with-zlib & \\
+--with-zlib-dir=/usr & \\
+--with-imap=shared,/usr & imap generic support\\
+--with-kerberos=/usr & Imap with Kerberos authentication\\
+--with-imap-ssl & Imap with SSL secure access\\
+--with-openssl=/usr & \\
+--with-zip=/usr & \\
+--enable-dbx & Layer of abstraction with databases\\
+\hline \end{tabular}
+
+\item[]external modules\\
+\begin{tabular}{|ll|}\hline
+--with-curl=shared,/usr & remote Handling of archives\\
+--with-dom=shared,/usr --with-dom-xslt=shared,/usr --with-dom-exslt=shared,/usr & With xmlrpc already integrated\\
+--with-gd=shared,/usr --enable-gd-native-ttf & Images handling support\\
+--with-jpeg-dir=shared,/usr &  GD Support for JPEG\\
+--with-png-dir=shared,/usr & GD Support for png\\
+--with-ldap=shared,/usr & Support for ldap\\
+--with-mcal=shared,/usr & Support of calendars\\
+--with-mhash=shared,/usr & Module for several key generation algorithms\\
+--with-mysql=shared,/usr & Support of Mysql database\\    
+\hline \end{tabular}
+\end{itemize}
+
+Then do:\\
+\#make \&\& make install 
+\newpage
+\section{Apache2 Configuration}
+
+The apache configuration is saved in the directory /etc/apache2 in the following files and directories:
+\begin{itemize}
+\item[]File apache2.conf:\\
+Main configuration of apache2, it have the necesary configuration to run apache.\\
+We don\'t need to edit this file.
+\item[]File ports.conf\\
+What port apache listen, we need two, port 80 for HTTP and port 443 for HTTPS, we will edit the file, and leave like this:\\
+\begin{tabular}{|l|}\hline
+Listen 80,443\\
+\hline \end{tabular}
+\item[]Directory conf.d:\\
+Directory for especial configuration, we don\'t need it.
+\item[]Directories mods-available and mods-enabled:\\
+This directory have all the modules we can use of apache2, to enable a module is neccesary link it to the directory mods-enabled.\\
+\item[]Directories sites-available and sites-enabled:\\
+In sites available we must configure the sites we can use.\\
+For example we are going to create a no secure gosa site gosa, we can use it to redirect the request to the secure server.
+
+Gosa Configuration (sites-available/gosa) can be like this:\\
+\begin{tabular}{|l|}\hline
+\noindent NameVirtual *\\
+<VirtualHost *>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |Redirect /gosa https://gosa.chaosdimension.org/gosa\\
+\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+</VirtualHost>\\
+\hline \end{tabular}
+
+And when is saved, can be enabled making this:\\
+\\
+\begin{tabular}{|l|}\hline
+\#>ln -s /etc/apache2/sites-available/gosa.conf /etc/apache2/sites-enabled/gosa.conf\\
+\hline \end{tabular}
+\\
+\item[]Directory ssl:\\
+Directory for Secure Socket Layer configuration, this will see in the next section.
+\end{itemize}
+\newpage
+\subsection{Security}
+
+The security is one of the most important points when running a apache server, we will need to make a safe environment where not to allow that the users manipulate and accede to code or programs. 
+
+The way to obtain this is using cryptography, in which we secure the communications between clients and servers so that nobody else can accede to the data. This is obtained with cryptography and key exchange.
+
+The other way to secure the system is that if some failure exists in the system or the code, and if a intruder tries to execute code, this person can be disabled, since powerful limitations exist, like not allowing that he executes commands, reads code of others scripts. He cannot modify nothing because he has a user with very limited resources. 
+
+\subsubsection{SSL Certificates}
+
+\noindent There are a great amount of documentation on cryptography and concretely on SSL, a system of encryption with public and private key. \\ 
+\\ 
+\noindent As the package openSSL was already installed from the previous steps, we must create the certificates that we will use in our Web server. \\ 
+\\ 
+\noindent we will save the certificates in/etc/apache2/ssl/gosa.pem \\ 
+\\
+\begin{tabular}{|l|}\hline
+\#>FILE=/ect/apache2/ssl/gosa.pem\\
+\#>export RANDFILE=/dev/random\\
+\#>openssl req -new -x509 -nodes -out \$FILE -keyout /etc/apache2/ssl/apache.pem\\
+\#>chmod 600 \$FILE\\
+\#>ln -sf \$FILE /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < \$FILE`.0\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent With this we have created a certificate that allows SSL access to our pages. \\ 
+\\ 
+\noindent If what we want is a configuration that allows us not only that traffic is codified, but that in addition the client guarantees that he is a valid user, we must force the server to requests a client certification \\ 
+\\ 
+\noindent In this way we will follow a longer procedure, first will be creation of a certification of CA: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\#>CAFILE=/ect/apache2/ssl/gosa.ca\\
+\#>KEY=/etc/apache2/ssl/gosa.key\\
+\#>REQFILE=/etc/apache2/ssl/gosa.req\\
+\#>CERTFILE=/ect/apache2/ssl/gosa.cert\\
+\#>DAYS=365\\
+\#>export RANDFILE=/dev/random\\
+\#>openssl req -x509 -keyout \$CAKEY -out \$CAFILE \$DAYS\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent After several questions we will have a CA, now we make a requirement to the created CA: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\#>openssl req -new -keyout \$REQFILE -out \$REQFILE \$DAYS\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent Sign the new certificate: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\#>openssl ca -policy policy\_anything -out \$CERFILE -infiles \$REQFILE\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent and we created a pkcs12 certidicate to configure the clients: \\
+\\ 
+\begin{tabular}{|l|}\hline
+\#>openssl pkcs12 -export -inkey \$KEY -in \$CERTFILE -out certificado\_cliente.pkcs12\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent This certificate will be installed in the client, and in the the configuration of the Web server in the way explained in the following point, we will have the security that the clients who will accede the server are in a secure machine and its communication will be strictly confidential. \ \ 
+
+\subsubsection{Configuring mod-SSL}
+\noindent The SSL module comes with apache2, this will simplify our work. In order to know if already is enabled: \\
+\\
+\begin{tabular}{|l|}\hline
+\#> if [ -h /etc/apache2/mods-enabled/ssl.load ]; then echo "enabled module";else echo "disabled module"; fi\\
+\hline \end{tabular}
+\vspace{0.4cm}
+
+\noindent To enabled it we will do it following: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\#>ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf\\
+\#>ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent This will enable the module in apache2 and we will be able to use it after restarting the server with: \\
+\\
+\begin{tabular}{|l|}\hline
+\#>/etc/init.d/apache2 restart\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent If we only want a secure configuration, we will make this in /etc/apache2/sites-available, gosa-SSL: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\\
+\verb|    |DocumentRoot /var/www/gosa.chaosdimension.org\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\
+</VirtualHost>\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent For a secure communication in which we verified the certificate of the client: \\
+\begin{tabular}{|l|}\hline
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\\
+\verb|    |DocumentRoot /var/www/gosa.chaosdimension.org\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\      
+\verb|    |<Directory /usr/share/gosa >\\
+\verb|    |\verb|    |SSLVerifyClient require\\
+\verb|    |\verb|    |SSLVerifyDepth 1\\
+\verb|    |</Directory>\\
+</VirtualHost>\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\subsubsection{Configuring suphp}
+\noindent
+Suphp is a module for apache and php that allows to execute processes of php with a different user of which apache uses to execute php pages. 
+
+It consists of two parts, one is a module for apache who "captures" requests of php pages, verifies the user of the file, its group, and sends the information to the other part, that is suid-root executable that sends the information to php4-cgi with the owner of the file as user, then gives back the result to the module of the apache. 
+
+The idea is to lower the damage that would cause a possible failure of the system being exploited, in this way the user enter the system with an nonqualified account, without permissions of execution and possibility to access to another code or programs. 
+
+Suphp can be downloaded of \htmladdnormallink{http://www.suphp.org/Home.html}{http://www.suphp.org/Home.html}, decompressing the package in/usr/src and compiled with the following options:\\
+\\
+\begin{tabular}{|l|}\hline
+\#>./configure --prefix=/usr \textbackslash \\
+\verb|    |--with-apxs=/usr/bin/apxs2 \textbackslash \\
+\verb|    |--with-apache-user=www-data \textbackslash \\
+\verb|    |--with-php=/usr/lib/cgi-bin/php4 \textbackslash \\
+\verb|    |--sbindir=/usr/lib/suphp \textbackslash \\
+\verb|    |--with-logfile=/var/log/suphp/suphp.log \textbackslash \\
+\verb|    |-with-setid-mode \textbackslash \\
+\verb|    |--disable-checkpath \\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent Of course we will need to have compiled in php for cgi, this means returning to compilation of php, but clearing the configuration for apache2 and adding: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\verb|    |--prefix=/usr --enable-force-cgi-redirect --enable-fastcgi \textbackslash\\
+\verb|    |--with-config-file-path=/etc/php4/cgi\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent To configure in apache we will do the same as for SSL, first we verify if is enabled: \\
+\\ 
+\begin{tabular}{|l|}\hline
+\#> if [ -h /etc/apache2/mods-enabled/suphp.load ]; then echo "enabled module";else echo "disabled module"; fi\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent to activate it we will do the following: \\ 
+\\ 
+\begin{tabular}{|l|}\hline
+\#>ln -s /etc/apache2/mods-available/suphp.conf /etc/apache2/mods-enabled/suphp.conf\\
+\#>ln -s /etc/apache2/mods-available/suphp.load /etc/apache2/mods-enabled/suphp.load\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent This will enable the module in apache2 and we will be able to use it after restarting the server with: \ 
+\\ 
+\begin{tabular}{|l|}\hline
+\#>/etc/init.d/apache2 restart\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent The configuration of the secure site with suphp included would be like this: \\ 
+\\
+\begin{tabular}{|l|}\hline
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |DocumentRoot /usr/share/gosa/html\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |suPHP\_Engine on\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\      
+\verb|    |<Directory /usr/share/gosa >\\
+\verb|    |\verb|    |SSLVerifyClient require\\
+\verb|    |\verb|    |SSLVerifyDepth 1\\
+\verb|    |</Directory>\\
+</VirtualHost>\\
+\hline \end{tabular}
+\vspace{0.5cm}
+
+\noindent We must decide which user we are going to use, in this case I am going to create one called "gosa", that will be is used for suphp:\\
+\\
+\begin{tabular}{|l|}\hline
+\verb|    |\#>useradd -d /usr/share/gosa/html gosa\\
+\verb|    |\#>passwd -l gosa\\
+\verb|    |\#>cd /usr/share/gosa\\
+\verb|    |\#>find /usr/share/gosa -name "*.php" -exec chown gosa {} ";"\\
+\verb|    |\#>find /usr/share/gosa -name "*.php" -exec chmod 600 {} ";"\\
+\hline \end{tabular}
+\vspace{0.5cm}
+\newpage
+\section{PHP4 Configuration}
+The configuration for mod\_php will be in the path that we had configured in the compilation of php4. In our case it is/etc/php4/apache2. 
+
+The configuration file we always be named php.ini and we will enable the modules. 
+
+A basic configuration will be like this:\\
+\\
+\begin{center}
+\begin{longtable}{|l|}
+\caption{PHP4 Configuration}\\
+\hline
+\multicolumn{1}{|c|}{\textbf{PHP4 Configuration}}\\
+\hline
+\endfirsthead
+\hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+; Engine \\ 
+\verb|    |engine   = On ; Activates PHP\\
+\verb|    |short\_open\_tag = On ; allows to use <? to simplify <?php\\
+\verb|    |asp\_tags  = Off ; We did not allow to labels style ASP: <\% \%>\\
+\verb|    |precision  = 14 ; Number of significant digits shown in numbers in floating comma\\
+\verb|    |output\_buffering = Off ; Only will be allowed send headers before send the content.\\
+\verb|    |implicit\_flush  = Off ; We did not force to php to that cleans the exit buffer after each block.\\
+\\ 
+; Safe Mode \\ 
+\verb|    |\label{sm} safe\_mode  = Off ; We do not want the safe way\\
+\verb|    |\label{smed} safe\_mode\_exec\_dir = ; Directory where PHP is executed\\
+\verb|    |\label{smid} safe\_mode\_include\_dir = Directory where PHP will search PHP libraries\\
+\verb|    |\label{smaev} safe\_mode\_allowed\_env\_vars = PHP\_     ; Only is allowed to the users\\
+\verb|    |\verb|    |\verb|    |;to create system variables that begin with PHP\_\\
+\verb|    |\label{smpev} safe\_mode\_protected\_env\_vars = LD\_LIBRARY\_PATH  ; List of system variables that\\
+\verb|    |\verb|    |\verb|    |; can not be changed by security reasons.\\
+\verb|    |\label{df} disable\_functions =        ; Functions that will be disabled for security reasons\\
+\verb|    |\label{auf} allow\_url\_fopen = Yes ; We allowed that they open to archives from PHP\\
+\verb|    |\label{ob} open\_basedir = ;\\
+\ \ 
+;   Colors for the way of colored syntax. \ \ 
+\verb|    |highlight.string = \#DD0000\\
+\verb|    |highlight.comment = \#FF8000\\
+\verb|    |highlight.keyword = \#007700\\
+\verb|    |highlight.bg  = \#FFFFFF\\
+\verb|    |highlight.default = \#0000BB\\
+\verb|    |highlight.html  = \#000000\\
+\\
+; Misc\\
+\verb|    |\label{ep}expose\_php = On  ; It indicates in the message of the Web server if it is installed or no.\\
+\\
+; Resource Limits ;\\
+\verb|    |max\_execution\_time = 30     ; Maximum time of execution of script.\\
+\verb|    |memory\_limit = 16M   ; Maximun memory allowed that can consume the script.\\
+\\
+; Error handling and logging ;\\
+\verb|    |error\_reporting = E\_ALL; We indicated that shows all the errors and warnings.\\
+\verb|    |display\_errors = Off ; Does not print in screen.\\
+\verb|    |display\_startup\_errors = Off  ; That does not show the errors of PHP starting.\\
+\verb|    |log\_errors  = On ; That sends the errors to a file.\\
+\verb|    |track\_errors = On ; That \$php\_errormsg keeps the last Error / Warning (boolean)\\
+\verb|    |error\_log = /var/log/php/php4.log ; File that will keep the errors\\
+\verb|    |warn\_plus\_overloading = Off  ; We did not warn if operator + is used with strings\\
+\\
+; Data Handling ;\\
+\verb|    |variables\_order  = "EGPCS" ; This directive describes the order in which\\
+\verb|    |; will be registered the PHP variables (Being G=GET, P=POST, C=Cookie,\\
+\verb|    |;  E = System, S = Own of PHP, all is indicated like EGPCS) \\
+\verb|    |\label{rg} register\_globals = Off  ; We do not want that the EGPCS are registered like globals.\\
+\verb|    |register\_argc\_argv = Off  ; We did not declare ARGV and ARGC for its use in scripts.\\
+\verb|    |post\_max\_size  = 8M  ; Maximum size of sending POST that will accept PHP.\\
+\\
+; Magic quotes\\
+\verb|    |\label{mqq}magic\_quotes\_gpc = On  ; Quotes added fro GPC(GET/POST/Cookie data)\\
+\verb|    |magic\_quotes\_runtime= Off  ; Quotes added for system generated data, \\
+\verb|    |;for example from SQL, exec(), etc.\\
+\verb|    |magic\_quotes\_sybase = Off  ; Use Sybase style added quotes.\\
+\verb|    ;(escape ' with '' instead of \')|\\
+\\
+; PHP default type of file and default codification.\\
+\verb|    |default\_mimetype = "text/html"\\
+\verb|    |default\_charset = "iso-8859-1"\\
+\\
+; Routes and directories ;\\
+\verb|    |\label{ip} include\_path = . ;\\
+\verb|    |doc\_root  =     ; Root of the php pages, better is to leave in blank.\\
+\verb|    |user\_dir  =     ; Where php executes scripts,better is to leave in blank.\\
+\verb|    |;extension\_dir = /usr/lib/php4/apache   ; �Where the modules are?\\
+\verb|    |enable\_dl  = Off    ; Allow or No the dymanic load of modules with the dl() function.\\
+\\
+; Upload files to the server;\\
+\verb|    |file\_uploads = On    ; Allow upload files to the server.\\
+\verb|    |upload\_max\_filesize = 2M      ; Maximum size of the files we are going to upload.\\
+\\
+; Dynamic Extensions ;\\
+\verb|    |extension=gd.so         ; Graphics\\
+\verb|    |extension=mysql.so      ; Mysql\\
+\verb|    |extension=ldap.so       ; Ldap\\
+\verb|    |extension=mhash.so      ; Mhash\\
+\verb|    |extension=imap.so       ; Imap\\
+\verb|    |extension=kadm5.so      ; Kerberos\\
+\verb|    |extension=cups.so       ; Cupsys\\
+\\
+; System Log \\
+\verb|[Syslog]|\\
+\verb|    |define\_syslog\_variables = Off ; We disabled the definition of syslog variables.\\
+\\
+; mail functions\\
+\verb|[mail function]|\\
+\verb|    |;sendmail\_path =      ;In unix system, where is located sendmail (is 'sendmail -t -i' by default)\\
+\\
+; debug\\
+\verb|[Debugger]|\\
+\verb|    |debugger.host = localhost ; Where is the debugger.\\
+\verb|    |debugger.port = 7869    ; The port it is listening.\\
+\verb|    |debugger.enabled = False ; We suppose there is not a debugger.\\
+\\
+; SQL Options\\
+\verb|[SQL]|\\
+\verb|    |sql.safe\_mode = Off    ; SQL safe mode, we will disabled it.\\
+\\
+; Mysql Options\\
+\verb|[MySQL]|\\
+\verb|    |mysql.allow\_persistent = Off ; We will disable the persistent links for security reasons.\\
+\verb|    |mysql.max\_persistent = -1 ; Number of persistent connections, is not used when is disabled.\\
+\verb|    |mysql.max\_links   = -1 ; Maximum number of connections, -1 is without limits.\\
+\verb|    |mysql.default\_port  =  3306; Default port of mysql.\\
+\verb|    |mysql.default\_socket =  ; Socket name that will be used for local mysql connections.\\
+\verb|    |;If is void, will be use the default compilation configuration of PHP.\\
+\verb|    |mysql.default\_host  =  ; No default host configured.\\
+\verb|    |mysql.default\_user  =  ; No default user configured.\\
+\verb|    |mysql.default\_password =  ; No default password configured.\\
+\\
+; session control\\
+\verb|[Session]|\\
+\verb|    |session.save\_handler      = files   ; We saved the session information in files.\\
+\verb|    |\label{ss} session.save\_path         = /var/lib/php4    ; Directory where is going to be saved the session files.\\
+\verb|    |session.use\_cookies       = 1       ; We will use cookies for the session tracking.\\
+\verb|    |session.name              = PHPSESSID   ; Name of the session that will be used in the name of the cookie.\\
+\verb|    |session.auto\_start        = 0       ; We did not initiate session automatically.\\
+\verb|    |session.cookie\_lifetime   = 0       ;  Time of life of a session cookie or 0 if we wait him to closes the navigator.\\
+\verb|    |session.cookie\_path       = /       ; The path for which the cookie is valid.\\
+\verb|    |session.cookie\_domain     =         ; The domain for which the cookie is valid.\\
+\verb|    |session.serialize\_handler = php     ; Used manipulator to serialize the data.\\
+\verb|    |session.gc\_probability    = 1       ; Probability in percentage that the garbage collector activates in each session.\\
+\verb|    |session.gc\_maxlifetime    = 1440    ; After this time in seconds, the saved information\\
+\verb|    |; will be look like garbage for the garbage collector.\\
+\verb|    |session.referer\_check     =         ; Verifies HTTP Referer to invalidate externals URLs containing ids\\
+\verb|    |session.entropy\_length    = 0       ; Number of bytes to be readed of the entropy file.\\
+\verb|    |session.entropy\_file      =         ; The file that will generate the entropy.\\
+\verb|    |session.cache\_limiter     = nocache ; Without session cache.\\
+\verb|    |session.cache\_expire      = 180     ; document expiration time.\\
+\verb|    |session.use\_trans\_sid     = 0       ; To use translate sid if is enabled in compilation time.\\
+\\
+\end{longtable}
+\end{center}
+
+\subsection{Security}
+
+PHP is a powerful scripting language, it allows its users to have enough control over the system and to malicious attackers too many options to reach its objective. 
+
+An system administrator does not have to suppose that a system is completely safe with only having installed security updates, a system that shows code to the outside is not safe, although the result is HTML, it is exposed to attacks of very diverse forms and failures of security not even know. 
+
+Limit to the maximum the access that allows php is then a necessity. 
+
+\subsection{Configuring safe php}
+
+PHP has a mode \htmladdnormallink{safe-mode}{http://www.php.net/manual/en/features.safe-mode.php} that allows a greater security, a recommended configuration for Safe mode is: 
+
+\begin{tabular}{|l|}\hline
+\\
+\verb|    |\ref{mqq} magic\_quotes\_qpc = On\\
+\\
+\verb|    |\ref{auf} allow\_url\_fopen = No\\
+\\
+\verb|    |\ref{rg} register\_globals = Off\\
+\\
+\verb|    |\ref{sm} safe\_mode = On\\
+\\
+\verb|    |\ref{smid} safe\_mode\_include\_dir = "/usr/share/gosa:/var/spool/gosa"\\
+\\
+\verb|    |\ref{smed} safe\_mode\_exec\_dir = "/usr/lib/gosa"\\
+\\
+\verb|    |\ref{smaev} safe\_mode\_allowed\_env\_vars = PHP\_,LANG\\
+\\
+\verb|    |\ref{ob} open\_basedir = "/etc/gosa:/var/spool/gosa:/var/cache/gosa:/usr/share/gosa:/tmp"\\
+\\
+\verb|    |\ref{ip} include\_path = ".:/usr/share/php:/usr/share/gosa:/var/spool/gosa:/usr/share/gosa/safe\_bin"\\
+\\
+\verb|    |\ref{df} disable\_functions = system, shell\_exec, passthru, phpinfo, show\_source\\
+\\
+\hline \end{tabular}
+
+
+In the case we are going to use SuPHP, we must give the following permissions to the directory /var/lib/php4:\\
+
+\begin{tabular}{|l|}\hline
+\#>chmod 1777 /var/lib/php4\\
+\hline \end{tabular}
+
+Since each user who executes PHP kept the session with that user.
+
+\section{Necessary PHP Modules}
+
+In this section are explained the steps to be able to compile and to use the necessary or important modules for GOsa, is recommended to install all the modules, even those that are not necessary. 
+
+\subsection{ldap.so}
+
+NECCESARY MODULE
+
+\indent This module does not need any special configuration to work.
+Only knows a problem: PHP+Apache with cannot be connected with a LDAP server who requests valid Certificate. The communication will be safe, since SSL can be used, but will not be guaranteed. 
+
+\subsection{mysql.so}
+
+OPTIONAL MODULE
+
+\indent This module does not need any special configuration to work. 
+
+\indent Necessary to save the imap - sieve plugin configuration.
+
+\subsection{imap.so}
+
+OPTIONAL MODULE
+
+\indent The installed module when compiling PHP work, but it will have an important deficiency, the function getacl that gives control on the folders, so we will need a patch and steps to compile the module for its use in GOsa. 
+
+We download the patch from \htmladdnormallink{php4-imap-getacl.patch}{ftp://ftp.gonicus.de/gosa/contrib/php4-imap-getacl.patch} and we put it in/usr/src, as we have the sources of PHP in /usr/src, we executed the following command: 
+
+\begin{tabular}{|l|}\hline
+\#>cd /usr/src/php4.3-XXX/extensions/imap\\
+\#>make clear\\
+\#>patch -p1 </usr/src/patch/php4-imap-getacl.patch\\
+\#>phpize\\
+\#>./configure\\
+\#>make\\
+\#>make install\\
+\hline \end{tabular}
+
+This make and install the module correctly. 
+
+\subsection{gd.so}
+
+OPTIONAL MODULE
+
+\indent This module does not need any special configuration to work. 
+
+\indent The module is used for the handling of graphs, also used by the system of smarty templates. 
+
+\subsection{cups}
+
+OPTIONAL MODULE
+
+\indent To use the Cups module for the selection of the printer in Posix, we must download the cups sources from \htmladdnormallink{http://www.cups.org/software.php}{http://www.cups.org/software.php} and decompress en /usr/src, then we executing the next commands:
+\\
+\noindent \begin{tabular}{|l|}\hline
+\#cd /usr/src/cups-1.1.XX/scripting/php\\
+\#phpize\\
+\#./configure\\
+\#make\\
+\#make install\\
+\#echo \verb|"extension=cups.so" >>| /etc/php4/apache2/php.init\\
+\#/etc/init.d/apache2 reload\\
+\hline \end{tabular}
+
+
+\subsection{krb}
+
+OPTIONAL MODULE
+
+\indent This module need to have the MIT Kerberos sources installed, because it can not be compiled with the Heimdal Kerberos sources.
+
+\indent The module will connect with the Kerberos servers to update the keys of the users.
+
+Will download from \htmladdnormallink{PECL}{http://pecl.php.net/kadm5}, and descompress in /usr/src, we must have the MIT Kerberos sources also, descompress in /usr/src, with it will execute this: (changing X.X for the actual version of the programs):\\
+\\
+\noindent \begin{tabular}{|l|}\hline
+\#cd /usr/src/kadm5-0.X.X/scripting/php\\
+\#cp config.m4 config.m4.2\\
+\#sed \verb|s/krb5-1\.2\.4\/src\/include/krb5-1\.X\.X\/src\/lib/| config.m4.2 >config.m4\\
+\#rm -f config.m4.2\\
+\#phpize\\
+\#./configure\\
+\#make\\
+\#make install\\
+\#echo \verb|"extension=kadm5.so" >>| /etc/php4/apache2/php.ini\\
+\#/etc/init.d/apache2 reload\\
+\hline \end{tabular}
+
diff --git a/gosa-core/doc/admin/en/manual_gosa_en_ldap.tex b/gosa-core/doc/admin/en/manual_gosa_en_ldap.tex
new file mode 100644
index 0000000..cc145cc
--- /dev/null
+++ b/gosa-core/doc/admin/en/manual_gosa_en_ldap.tex
@@ -0,0 +1,1059 @@
+\chapter{openLDAP}
+\section{Introduction,What is LDAP?}
+\subsection{Directory Services, X.500}
+
+A directory is a search information specialised database based on attributes.
+
+X.500|ISO 9594\cite{x500}  is a standard of ITU-S(International Telecommunication Union - Telecommunication Standardisation Burean),  previously known like CCITT, to solve the problem of directories. Based on the works made with X.400 (a directory for electronic mail) and the works of ISO (International Standards Organisation) and ECMA (European Computer Manufacturers Association).\\
+
+The X.501|ISO 9594 part 2. define the models, as the information must be organized, the model of user information, the model of administrative information and the directory service, which defines as the information must be distributed between several systems.\\
+
+In X.509|ISO 9594 part 8. the standard of authentication and security used for SSL.\\
+
+X.525|ISO 9594 part 9.  indicates as the replication must be between systems.\\
+
+In X.519|ISO 9594 part 5. the communication protocols are defined, among them the one that have greater importance to us that is DAP - the protocol of access to directories - it defines that operations can be done with the connection: bind, unbind, the objects (entry) and its operation: add, eliminate, modify, search, list, compare, etc.\\
+
+DAP is a protocol to complex to make servers and clients usable for Internet, then a comfortable protocol must be created to handle these directories: LDAP.\\
+
+LDAP (Lightweight Directory Access Protocol) is a protocol thought for update and search of Internet (TCP/IP) oriented directories. \\
+
+The last LDAP version is 3 and it is covered by the RFCs: 2251\cite{2251}, 2252\cite{2252}, 2253\cite{2253}, 2254\cite{2254}, 2255\cite{2255}, 2256\cite{2256} y 3377\cite{3377}.\\
+\newpage
+\subsection{Basic Concepts of LDAP}
+
+\begin{itemize}
+\item[]Entry\\
+An Entry is a collection of attributes identified by its DN (distinguished name). A DN is unique in all the tree and therefore it identifies clearly the entrance to which refers. As example: CN=Alex O=CHAOSDIMENSION C=ES must identify to the object of common name \'Alex\' that is in organization \'CHAOSDIMENSION\' and country is \'ES\' (Spain). A RDN(names distinguished relative) is a part of the DN, in a way that concatenating the RDNs they give as result the DN. Of the previous example [...]
+
+\item[]Object Class\\
+A Object Class is a special attribute (ObjectClass) that defines attributes that are required and allowed in an entry. The values of the Objects Classes are defined in the schema. All the entrances must have a ObjectClass attribute. It isn\'t allowed to add attributes to the entries that aren\'t allowed by definitions of the Objects Classes of the entry.
+
+\item[]Attrib\\
+An Attribute is a type with one or more values associated. It is identified by a OID (object identifier). The attribute type indicates if can have more of a value of this attribute in an entry, the values that can have and how they can be searched.
+
+\item[]Schema\\
+A Schema is a collection of definitions of types of attributes, Objects Classes  and information that the server use to do the searches, to introduce values in an attribute, and to allow operations to add or to modify.
+
+To create a search, we must consider several important parameters:
+\item[]Filter\\
+\begin{list}{}{}
+\item[Base Object]
+Un DN que sera a partir del cual realizaremos la busqueda.
+
+\item[Scope]
+It can have several values.
+\begin{list}{}{}
+\item[base] it will only search in the level base. 
+\item[sub]  it will make a recursive search by all the tree from the level base 
+\item[one] search a level below the level base.
+\end{list}
+
+\item[Size Limit]
+It restricts the number of entries given back as result of a search.
+
+\item[Time Limit]
+It restricts the execution maximum time of a search.
+
+\item[Filter]
+A chain that defines the conditions that must be completed to find an entry.
+
+\end{list}
+
+The filters can be concatenated with ' and', ' or' and ' not' to create more complex filters. For example a filter with base O=CHAOSDIMENSION, C=ES, scope base and filter (CN=Alex) would find the entry CN=Alex , O=CHAOSDIMENSION, C=ES.
+
+\end{itemize}
+\newpage
+\subsection{LDAP Servers}
+
+LDAP is supported by numerous servers being the knownest Directory Active of Microsoft, eDirectory of Novell, Oracle Internet Directory of Oracle, iPlanet Directory Server of SUN and finally but not less important openLDAP.
+
+This manual teach about the use and installation of openLDAP, since this supported by practically all the distributions of linux and their license fulfills the openSource standard. 
+
+For more information about LDAP see LDAP Linux HowTo\cite{llh}, Using LDAP\cite{ul}, openLDAP administrator Guide\cite{oag} and in Spanish the LDAP relative part of the magnify manual Ldap+Samba+Cups+Pykota\cite{lscp}. 
+
+\section{Installation}
+Most distributions have packages of openLDAP. The use apt-get in debian, Urpmi in Mandrake, up2date in redhat or Yast2 in Suse is outside this manual. This manual explain the necessary work for the construction and configuration from the sources.
+
+\subsection{Downloading openLDAP}
+\label{down_ldap}
+Downloading openLDAP 
+
+Although they are not really necessary, there is several packages that have to be installed before openLDAP because we need them.
+
+The first of them is \textbf{openSSL}, it exists in all the distributions and has documentation in is webpage\cite{ssldoc}. 
+
+The sources can be downloaded from \htmladdnormallink{http://www.openssl.org/source/}{http://www.openssl.org/source/}
+
+The second is \textbf{Kerberos Services v5}, which have two implementations, one is \htmladdnormallink{MIT Kerberos V}{http://web.mit.edu/kerberos/www} and the other is \htmladdnormallink{Heimdal Kerberos}{http://www.pdc.kth.se/heimdal}, both have good documentation and are widely supported by all the distributions. 
+
+It could also be interesting to have the \textbf{Cyrus SASL} libraries installed (Simple Cyrus's Authentication and Security Layer) that could be obtained from \htmladdnormallink{http://asg.web.cmu.edu/sasl/}{http://asg.web.cmu.edu/sasl/sasl-library.html}, Cyrus SASL makes use of openSSL and Kerberos/GSSAPI for authentication. 
+
+At last we will need a database for openLDAP, with respect to this manual this will be given through the \htmladdnormallink{\textbf{Sleepycat Software Berkeley DB}}{http://www.sleepycat.com/} libraries, we will need it if we want to use LDBM (Berkeley DB version 3) or BDB (Berkeley DB version 4). Also they exist in the majority of the distributions. 
+
+Once obtained and compiled the necessary libraries we download the \htmladdnormallink{sources of openLDAP}{http://www.openldap.org/software/download/} in /usr/src (for example) and decompressed in that directory (for example with tar -zxvf openldap-2.X.XX.tgz).
+\newpage
+\subsection{Install Options}
+
+The following options are for openLDAP version 2.2.xx that can differ from versions 2.0.XX and 2.1.XX. 
+
+We executed \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/en/configure.sh} with the following options:
+
+\begin{itemize}
+\item[](Directories)\\
+\begin{tabular}{|ll|}\hline
+--prefix=/usr & \\
+--libexecdir='\${prefix}/lib' & \\
+--sysconfdir=/etc & \\
+--localstatedir=/var/run & \\
+--mandir='\${prefix}/share/man' & \\
+--with-subdir=ldap & \\
+\hline \end{tabular}
+
+\item[](Basic Options)\\
+\begin{tabular}{|ll|}\hline
+--enable-syslog & \\
+--enable-proctitle & \\
+--enable-ipv6 & $\rightarrow$Sockets IPv6\\
+--enable-local & $\rightarrow$Sockets Unix\\
+--with-cyrus-sasl & $\rightarrow$Supported authentication Cyrus SASL\\
+--with-threads & $\rightarrow$Support thread of execution\\
+--with-tls & $\rightarrow$Support TLS/SSL\\
+--enable-dynamic & $\rightarrow$Dynamic compilation\\
+\hline \end{tabular}
+
+\item[](Slapd Options)\\
+\begin{tabular}{|ll|}\hline
+--enable-slapd & $\rightarrow$To compile the server in addition to the libraries\\
+--enable-cleartext & $\rightarrow$It allows send clear text passwords\\
+--enable-crypt & $\rightarrow$Send crypther passwords with DES.\\
+--enable-spasswd & $\rightarrow$Verification of passwords through SASL\\
+--enable-modules & $\rightarrow$Support of dynamic modules\\
+--enable-aci & $\rightarrow$Support of ACIs by objects (Experimental)\\
+--enable-rewrite & $\rightarrow$Rewriting of DN in recovery of LDAP\\
+--enable-rlookups & $\rightarrow$Inverse search of the name of the client workstation\\
+--enable-slp & $\rightarrow$SLPv2 support\\
+--enable-wrappers & $\rightarrow$Support TCP wrappers\\
+\hline \end{tabular}
+
+\item[](Support)\\
+\begin{tabular}{|ll|}\hline
+--enable-bdb=yes & $\rightarrow$Berkeley version 4 support\\
+--enable-dnssrv=mod & \\
+--enable-ldap=mod & $\rightarrow$It supports another LDAP server as database\\
+--enable-ldbm=mod & \\
+--with-ldbm-api=berkeley & $\rightarrow$Berkeley version 3 support\\
+--enable-meta=mod & $\rightarrow$Metadirectory support\\
+--enable-monitor=mod & \\
+--enable-null=mod & \\
+--enable-passwd=mod & \\
+--enable-perl=mod & $\rightarrow$Perl scripts support\\
+--enable-shell=mod & $\rightarrow$Shell scripts support\\
+--enable-sql=mod & $\rightarrow$Relational database support\\
+\hline \end{tabular}
+\end{itemize}
+
+Then do:\\
+\#make \&\& make install 
+\newpage
+\section{Configuration}
+\subsection{Basic}
+
+\noindent The configuration of the LDAP server slapd of openLDAP is in /etc/ldap/slapd.conf 
+
+\noindent A \htmladdnormallink{basic configuration}{http://warping.sourceforge.net/gosa/contrib/en/basic_slapd.conf} would be like this: 
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Basic LDAP COnfiguration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Basic LDAP COnfiguration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Basic LDAP COnfiguration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\# Schema and objectClass definitions, basic configuration & \\
+include         /etc/ldap/schema/core.schema & \\
+include         /etc/ldap/schema/cosine.schema & \\
+include         /etc/ldap/schema/inetorgperson.schema & \\
+include         /etc/ldap/schema/openldap.schema & \\
+include         /etc/ldap/schema/nis.schema & \\
+include         /etc/ldap/schema/misc.schema & \\
+ & \\
+\# Force entries to match schemas for their ObjectClasses & \\
+schemacheck             on & \\
+ & \\
+\# Password hash, default crypt type & \\
+\# Puede ser: \{SHA\}, \{MD5\}, \{MD4\}, \{CRYPT\}, \{CLEARTEXT\} & \\
+password-hash           \{CRYPT\} & \\
+ & \\
+\# Default search base & \\
+defaultsearchbase       "dc=CHAOSDIMENSION,dc=ORG" & \\
+ & \\
+\#Used by init scripts to stop and to start the server. & \\
+pidfile         /var/run/slapd.pid & \\
+ & \\
+\# Arguments passed to the server. & \\
+argsfile        /var/run/slapd.args & \\
+ & \\
+\# Level of log information & \\
+loglevel        1024 & \\
+ & \\
+\# Where and which modules load & \\
+modulepath      /usr/lib/ldap & \\
+moduleload      back\_bdb \# Berkeley BD version 4 & \\
+ & \\
+\#definitions of the database & \\
+database        bdb & \\
+ & \\
+\# The base of the directory & \\
+suffix          "dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\# Here is the definition of the administrator of the directory and his key & \\
+\# In this example is " tester"  & \\
+\# The crypt key can be extract with  & \\
+\# makepasswd --crypt --clearfrom file\_with\_user\_name & \\
+ & \\
+rootdn  \verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"|  & \\
+rootpw  \{crypt\}OuorOLd3VqvC2 & \\
+ & \\
+\# here are the attributes that we indexed to make searchs & \\
+index   default                                                sub & \\
+index   uid,mail                                               eq & \\
+index   cn,sn,givenName,ou                                     pres,eq,sub & \\
+index   objectClass                                            pres,eq & \\
+ & \\
+\# Directory where the database is located & \\
+directory       " /var/lib/ldap"  & \\
+ & \\
+\# We say if wished to keep the date of the last modification & \\
+lastmod off & \\
+ & \\
+\#Administrator access & \\
+access to * & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| =wrscx & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| =wrscx & \\
+        by * read & \\
+\end{longtable}
+\end{center}
+
+\newpage
+\subsection{GOsa Specifications}
+
+GOsa adds several schemas for the control of certain services and characteristics of users. \\
+
+The necessary schemas for GOsa are in the package, in the contrib section, they need to be copied in /etc/ldap/schema. \\
+
+A \htmladdnormallink{recommended configuration}{http://warping.sourceforge.net/gosa/contrib/en/gosa_slapd.conf} of /etc/ldap/slapd.conf is the following one: \\
+
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{LDAP GOsa Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{LDAP GOsa Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{LDAP GOsa Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\# Schema and objectClass definitions, basic configuration & \\
+include         /etc/ldap/schema/core.schema & \\
+include         /etc/ldap/schema/cosine.schema & \\
+include         /etc/ldap/schema/inetorgperson.schema & \\
+include         /etc/ldap/schema/openldap.schema & \\
+include         /etc/ldap/schema/nis.schema & \\
+include         /etc/ldap/schema/misc.schema & \\
+ & \\
+\# These schemes would be present in GOsa. In the case of samba3 & \\
+\# we must change samba.schema and gosa.schema by samba3.schema & \\
+\# and gosa+samba3.schema & \\
+include		/etc/ldap/schema/samba3.schema & \\
+include		/etc/ldap/schema/pureftpd.schema & \\
+include		/etc/ldap/schema/gohard.schema & \\
+include		/etc/ldap/schema/gofon.schema & \\
+include		/etc/ldap/schema/goto.schema & \\
+include		/etc/ldap/schema/gosa+samba3.schema & \\
+include		/etc/ldap/schema/gofax.schema & \\
+include		/etc/ldap/schema/goserver.schema & \\
+ & \\
+\# Force entries to match schemas for their ObjectClasses & \\
+schemacheck             on & \\
+ & \\
+\# Password hash, type of key encryption & \\
+\# Can be: \{SHA\}, \{SMD5\}, \{MD4\}, \{CRYPT\}, \{CLEARTEXT\} & \\
+password-hash           \{CRYPT\} & \\
+ & \\
+\# Default search base. & \\
+defaultsearchbase       " dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\# Used by init scripts to stop and to start the server. & \\
+pidfile         /var/run/slapd.pid & \\
+ & \\
+\# Arguments passed to the server. & \\
+argsfile        /var/run/slapd.args & \\
+ & \\
+\# Log level information & \\
+loglevel        1024 & \\
+ & \\
+\# Where and which modules to load. & \\
+modulepath      /usr/lib/ldap & \\
+moduleload      back\_bdb \# Berkeley BD version 4 & \\
+ & \\
+\# Some performance parameters & \\
+threads 64 & \\
+concurrency 32 & \\
+conn\_max\_pending 100 & \\
+conn\_max\_pending\_auth 250 & \\
+reverse-lookup off & \\
+sizelimit 1000 & \\
+timelimit 30 & \\
+idletimeout 30 & \\
+ & \\
+\# specific limitations & \\
+limits anonymous    size.soft=500 time.soft=5 & \\
+ & \\
+\# Definitions of the database & \\
+database        bdb & \\
+cachesize       5000 & \\
+checkpoint	512 720 & \\
+mode		0600 & \\
+ & \\
+\# The diretory base. & \\
+suffix          " dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\# Here is the definition of the administrator of the directory and his key & \\
+\# In this example is " tester"  & \\
+\# The crypt key can be extract with  & \\
+\# makepasswd --crypt --clearfrom file\_with\_user\_name & \\
+ & \\
+rootdn  \verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"|  & \\
+rootpw  \{crypt\}OuorOLd3VqvC2 & \\
+ & \\
+\# That attributes we indexed to make search & \\
+index   default                                                sub & \\
+index   uid,mail                                               eq & \\
+index   gosaMailAlternateAddress,gosaMailForwardingAddress     eq & \\
+index   cn,sn,givenName,ou                                     pres,eq,sub & \\
+index   objectClass                                            pres,eq & \\
+index   uidNumber,gidNumber,memberuid                          eq & \\
+index   gosaSubtreeACL,gosaObject,gosaUser                     pres,eq & \\
+ & \\
+\# Indexing for Samba 3
+index   sambaSID                                               eq & \\
+index   sambaPrimaryGroupSID                                   eq & \\
+index   sambaDomainName                                        eq & \\
+ & \\
+\# Who can change the user keys & \\
+\# ,only by the own user if is authenticate & \\
+\# or by the administrator & \\
+access to attr=sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none  & \\
+access to attr=userPassword,shadowMax,shadowExpire & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none  & \\
+ & \\
+\# Acess deny to imap keys, fax or kerberos saved in & \\
+\# LDAP & \\
+access to attr=goImapPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+access to attr=goKrbPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+access to attr=goFaxPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+ & \\
+\# Permit that server write the LastUser attribute & \\
+access to attr=gotoLastUser & \\
+	by * write & \\
+ & \\
+\# The samba keys by defect only can be changed & \\
+\# by the user if has been authenticate. & \\
+access to attr=sambaLmPassword,sambaNtPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none & \\
+ & \\
+\# Allow write access for terminal administrator & \\
+access to dn=" ou=incoming,dc=CHAOSDIMENSION,dc=ORG"  & \\
+	by dn=\verb|"cn=terminal-admin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+ & \\
+access to dn.subtree=" ou=incoming,dc=CHAOSDIMENSION,dc=ORG"  & \\
+	by dn=\verb|"cn=terminal-admin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+ & \\
+\# Directory where is the database & \\
+directory       " /var/lib/ldap"  & \\
+ & \\
+\# Indicate if we wished to keep the modification last date & \\
+lastmod off & \\
+ & \\
+\# Administrator access & \\
+access to * & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| =wrscx & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| =wrscx & \\
+        by * read & \\
+\end{longtable}
+\end{center}
+
+
+\section{Utilization}
+\subsection{PAM/NSS Configuration}
+
+NSS (Network Security Service Libraries) 
+
+NSS is a basic component of the system, is used for control of accounts POSIX, to be able to use LDAP for accounts POSIX (of the system), we will use NSS\_LDAP, that can be downloaded of \htmladdnormallink{http://www.padl.com/OSS/nss\_ldap.html}{http://www.padl.com/OSS/nss\_ldap.html} , we decompressed it in /usr/src and executed:\\ 
+
+\noindent \#cd /usr/src/nss\_ldap\\
+\noindent \#./configure \&\& make \&\& make install\\
+
+The basic configuration of NSS are in /etc/nsswitch.conf and must be left like this for what we want.
+
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{NSSWITCH Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{NSSWITCH Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{NSSWITCH Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+passwd:         files ldap & \# These are the lines that we changed so that ldap makes requests\\
+group:          files ldap & \#\\
+shadow:         files ldap & \#\\
+ & \\
+hosts:          files dns & \\
+networks:       files & \\
+ & \\
+protocols:      db files & \\
+services:       db files & \\
+ethers:         db files & \\
+rpc:            db files & \\
+ & \\
+netgroup:       nis & \\
+\end{longtable}
+\end{center}
+
+
+\newpage
+The NSS-LDAP configuration is saved in /etc/nss-ldap.conf and a valid configuration for GOsa would be this: 
+
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{NSS Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{NSS Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{NSS Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+host ip.servidor.ldap & \# Here we will put our LDAP server LDAP\\
+base ou=people,dc=CHAOSDIMENSION,dc=ORG & \# Here is where are going to go the users and\\
+ & \# their passwords. OU means organizational\\
+ & \# unit and OU=people is the place where\\
+ & \# GOsa save the characteristics of the users\\
+ldap\_version 3 & \# Supported Version of LDAP \\
+ & \# (the use of version 3 is recommended)\\
+nss\_base\_passwd ou=people,dc=CHAOSDIMENSION,DC=ORG?one & \# Where we search for POSIX characteristics\\
+nss\_base\_shadow ou=people,dc=CHAOSDIMENSION,DC=ORG?one & \# Where we search for the passwords\\
+nss\_base\_group ou=groups,dc=CHAOSDIMENSION,DC=ORG?one & \# Where is the POSIX group characteristics\\
+\end{longtable}
+\end{center}
+
+PAM (Pluggable Authentication Modules) is a package of dynamic libraries that allow to system administrators to choose in which way the applications authenticates the users. 
+
+PAM is in all the distributions, save the configurations of each module in /etc/pam.d and have the dynamic libraries in /lib/security. 
+
+We are going to concentrate on one of the PAM modules: pam\_ldap. This module will serve to us so that the applications that don't  use LDAP and use the system base of authentication and control of sessions, indirectly accede LDAP for authentication. 
+
+With PAM\_LDAP and the infrastructure of PAM we gain that POSIX users of the system, work through LDAP and they can be created with GOsa.
+
+PAM\_LDAP can be downloaded from \htmladdnormallink{http://www.padl.com/OSS/pam\_ldap.html}{http://www.padl.com/OSS/pam\_ldap.html}, we decompressed it is /usr/src and we executed the clasic: \\
+
+\#./configure \&\& make \&\& make install\\
+\\
+The configuration of this module will be in /etc/pam\_ldap.conf, a basic working configuration will be like this:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{PAM Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+host ip.servidor.ldap & \# Here we put where will be our LDAP server\\
+base ou=people,dc=CHAOSDIMENSION,dc=ORG & \# Here is where are going to go the users and their passwords.\\
+ & \# OU means organizational unit\\
+ & \# and OU=people is the place where GOsa\\
+ & \# save the users characteristics\\
+ldap\_version 3 & \# Supported Version of LDAP (very recommended version 3)\\
+scope one & \# In gosa the users are at the same level, we did not need to descend.\\
+rootbinddn cn=ldapadmin,dc=solaria,dc=es & \# Here is the LDAP administrator DN of the server,\\
+ & \# is necessary, since the server\\
+ & \# will give access to the encrypted passwords to the administrator.\\
+pam\_password md5 & \# Indicate as password are encrypted.\\
+\end{longtable}
+\end{center}
+
+
+In the file /etc/secret we will put the LDAP administrator password, this file, like the previous one only could be accessible by root.
+
+Now, in order to be able to use LDAP authentication with the services, we will have to configure three pam configuration files:\\
+Control of accounts /etc/pam.d/common-account:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{PAM common-account Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-account Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-account Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+account required          pam\_unix.so & \# Always required\\
+account sufficient        pam\_ldap.so & \# The calls to ldap\\
+\end{longtable}
+\end{center}
+
+
+Authentication control /etc/pam.d/common-auth:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{PAM common-auth Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-auth Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-auth Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+auth     sufficient     pam\_unix.so & \# Authentication Standar\\
+auth     sufficient     pam\_ldap.so try\_first\_pass & \# LDAP Authentication in the first attempt\\
+auth     required       pam\_env.so & \\
+auth     required       pam\_securetty.so & \\
+auth     required       pam\_unix\_auth.so & \\
+auth     required       pam\_warn.so & \\
+auth     required       pam\_deny.so & \\
+\end{longtable}
+\end{center}
+
+
+Session control /etc/pam.d/common-session:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{PAM common-session Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-session Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{PAM common-session Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+session required        pam\_limits.so & \\
+session required        pam\_unix.so & \# Standar UNIX session\\
+session optional        pam\_ldap.so & \# LDAP based session\\
+\end{longtable}
+\end{center}
+
+This configuration will be necessary to use POSIX and SAMBA at least.
+\newpage
+\subsection{Replication}
+
+If we have more that one domain we must have a distributed structure, that is more efficient against failures. A basic structure would be a master server with a complete LDAP tree and servers with LDAP subtrees that only have the part of the tree for the domain they control.
+
+This way GOsa controls the master server and the domain servers through a process called replication.
+
+The replication is made in the configuration of ldap, but it is not executed by the daemon slapd, but another one called slurp. Its configuration is made in the database that we want to replicate, like in the basic example we have only configured a database that will be added at the end of the configuration file /etc/ldap/slapd.conf: 
+
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Replica Configuration}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Replica Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Replica Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\# Replica configuration & \\
+\#Used by init scripts to stop and to start the server. & \\
+replica-pidfile         /var/run/slurp.pid & \\
+ & \\
+\# Arguments passed to the server. & \\
+replica-argsfile        /var/run/slapd.args & \\
+ & \\
+\# Place where we recorded the log of replica, is used by slurpd & \\
+replogfile      /var/lib/ldap/replog & \\
+\# The replicas  & \\
+\# Slave1 replica indication & \\
+replica & \\
+\#URI direction of slave1 & \\
+uri=ldap://ip.server.slave1 & \\
+\#That we are going to reply & \\
+\# from the master server & \\
+suffix=" dc=domain1,dc=CHAOSDIMENSION,dc=ORG" & \\
+\#How we are going to authenticate & \\
+bindmethod=simple & \\
+\# reply DN of the slave1 & \\
+binddn=\verb|"cn=esclavo1,ou=people,dc=dominio1,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\#Password of slave1 reply DN & \\
+credentials=" tester" & \\
+\# Slave2 replica indication & \\
+replica & \\
+uri=ldap://ip.server.slave2 & \\
+suffix=" dc=domain2,dc=CHAOSDIMENSION,dc=ORG" & \\
+bindmethod=simple & \\
+binddn=\verb|"cn=esclavo2,ou=people,dc=dominio2,dc=CHAOSDIMENSION,dc=ORG"| & \\
+credentials=" tester" & \\
+\end{longtable}
+\end{center}
+
+
+By simplicity we suppose that both slaved servers are configured like the master, excepted the replica configuration of the master and the indications at the slaves of who is the master server.
+
+In the slaved servers we must add at the end of /etc/ldap/slapd.conf: 
+
+In slave 1:\\
+
+\begin{tabular}{|ll|}\hline
+\# Who can update the server & \\
+updatedn \verb|"cn=slave1,dc=domain1,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\# From where & \\
+updateref ldap://ip.server.master & \\
+\#Access allow & \\
+access to dn.subtree= " dc=domain1,dc=CHAOSDIMENSION,dc=ORG" & \\
+by dn= \verb|"cn=slave1,dc=domain1,dc=CHAOSDIMENSION,dc=ORG"|  =wrscx & \\
+by * none & \\
+\hline\end{tabular}
+\vspace{0.5cm}
+
+In slave 2:\\
+
+\begin{tabular}{|ll|}\hline
+\# Who can update the server & \\
+updatedn \verb|"cn=slave2,dc=domain2,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\#From where & \\
+updateref ldap://ip.server.master & \\
+\#Access allow & \\
+access to dn.subtree= " dc=domain2,dc=CHAOSDIMENSION,dc=ORG" & \\
+by dn= \verb|"cn=slave2,dc=domain2,dc=CHAOSDIMENSION,dc=ORG"| =wrscx & \\
+by * none & \\
+\hline\end{tabular}
+\vspace{0.5cm}
+
+Also we must create the replica users in the corresponding databases. That will be explained in the following point.
+
+\subsection{Data Load}
+
+
+In this point we will give the initial data of our necessary LDAP tree for GOsa. Also we will show how upload the data and what to do in the case of a unique servant or in a case where there are replicas. 
+
+The load can be done of two ways, one is trought of slapadd and the other is trought of ldapadd.\\
+In the first case the load is made against the database, this replication does not exist and then will not be update the data in LDAP server until is initiated again, \textbf{the load of data this way must be done with the server stopped}. In the second case, the load will be trought LDAP and it will update self and will be replicated in the pertinent way.
+
+For a load from zero of the database, we will have to do it from slapadd, with the daemon slapd stopped. 
+
+The way slapadd must be used is: \\
+
+\noindent \#slapadd -v -l fichero\_con\_datos.ldif\\
+
+LDIF is the standard format to save data from LDAP. GOsa come with its own ldif of example, in following two points we will explain how it must be used for our necessities.
+\vspace{1cm}
+
+\subsubsection{Server Alone}
+
+This is the most basic case, here isn't replication and only we need a single tree. In our example we will suppose that our GOsa tree is in dc=CHAOSDIMENSION, dc=ORG.\\
+
+We will load the data with a script, called \htmladdnormallink{load.sh}{http://warping.sourceforge.net/gosa/contrib/en/load.sh}, this simplified the steps to load. The parameters of script will be: DN of the base, IMAP Server adn Kerberos Realm.
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Load Data on Single Server Configuration}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Load Data on Single Server Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Load Data on Single Server Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+\\
+if [ \$\{\#@\} != 3 ]\\
+then\\
+\verb|    |echo "The parameters DN base, IMAP Server and Kerberos server are needed"\\
+\verb|    |echo "For example: ./carga.sh dc=CHAOSDIMENSION,dc=ORG imap.solaria krb.solaria"\\
+\verb|    |exit\\
+fi\\
+\\
+DC=`echo \$1|cut -d\textbackslash= -f 2|cut -d\textbackslash, -f 1`\\
+IMAP=\$2\\
+KRB=\$3\\
+\\
+slapadd \verb|<<| EOF\\
+dn: \$1\\
+objectClass: dcObject\\
+objectClass: organization\\
+description: Base object\\
+dc: \$DC\\
+o: My own Organization\\
+\\
+dn: cn=terminal-admin,\$1\\
+objectClass: person\\
+cn: terminal-admin\\
+sn: Upload user\\
+description: GOto Upload Benutzer\\
+userPassword:: e2tlcmJlcm9zfXRlcm1pbmFsYWRtaW5AR09OSUNVUy5MT0NBTAo=\\
+\\
+dn: ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: systems\\
+\\
+dn: ou=terminals,ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: terminals\\
+\\
+dn: ou=servers,ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: servers\\
+\\
+dn: ou=people,\$1\\
+objectClass: organizationalUnit\\
+ou: people\\
+\\
+dn: ou=groups,\$1\\
+objectClass: organizationalUnit\\
+ou: groups\\
+\\
+dn: cn=default,ou=terminals,ou=systems,\$1\\
+objectClass: gotoTerminal\\
+cn: default\\
+gotoMode: disabled\\
+gotoXMethod: query\\
+gotoRootPasswd: tyogUVSVZlEPs\\
+gotoXResolution: 1024x768\\
+gotoXColordepth: 16\\
+gotoXKbModel: pc104\\
+gotoXKbLayout: de\\
+gotoXKbVariant: nodeadkeys\\
+gotoSyslogServer: lts-1\\
+gotoSwapServer: lts-1:/export/swap\\
+gotoLpdServer: lts-1:/export/spool\\
+gotoNtpServer: lts-1\\
+gotoScannerClients: lts-1.\$DC.local\\
+gotoFontPath: inet/lts-1:7110\\
+gotoXdmcpServer: lts-1\\
+gotoFilesystem: afs-1:/export/home /home nfs exec,dev,suid,rw,hard,nolock,fg,rsize=8192 1 1\\
+\\
+dn: cn=admin,ou=people,\$1\\
+objectClass: person\\
+objectClass: organizationalPerson\\
+objectClass: inetOrgPerson\\
+objectClass: gosaAccount\\
+uid: admin\\
+cn: admin\\
+givenName: admin\\
+sn: GOsa main administrator\\
+sambaLMPassword: 10974C6EFC0AEE1917306D272A9441BB\\
+sambaNTPassword: 38F3951141D0F71A039CFA9D1EC06378\\
+userPassword:: dGVzdGVy\\
+\\
+dn: cn=administrators,ou=groups,\$1\\
+objectClass: gosaObject\\
+objectClass: posixGroup\\
+objectClass: top\\
+gosaSubtreeACL: :all\\
+cn: administrators\\
+gidNumber: 999\\
+memberUid: admin\\
+\\
+dn: cn=lts-1,ou=servers,ou=systems,\$1\\
+objectClass: goTerminalServer\\
+objectClass: goServer\\
+goXdmcpIsEnabled: true\\
+macAddress: 00:B0:D0:F0:DE:1D\\
+cn: lts-1\\
+goFontPath: inet/lts-1:7110\\
+\\
+dn: cn=afs-1,ou=servers,ou=systems,\$1\\
+objectClass: goNfsServer\\
+objectClass: goNtpServer\\
+objectClass: goLdapServer\\
+objectClass: goSyslogServer\\
+objectClass: goCupsServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1C\\
+cn: afs-1\\
+goExportEntry: /export/terminals 10.3.64.0/255.255.252.0(ro,async,no\_root\_squash)\\
+goExportEntry: /export/spool 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goExportEntry: /export/swap 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goExportEntry: /export/home 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goLdapBase: \$1\\
+\\
+dn: cn=vserver-02,ou=servers,ou=systems,\$1\\
+objectClass: goImapServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1F\\
+cn: vserver-02\\
+goImapName: imap://\$IMAP\\
+goImapConnect: {\$IMAP:143}\\
+goImapAdmin: cyrus\\
+goImapPassword: secret\\
+goImapSieveServer: \$IMAP\\
+goImapSievePort: 2000\\
+\\
+dn: cn=kerberos,ou=servers,ou=systems,\$1\\
+objectClass: goKrbServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1E\\
+cn: kerberos\\
+goKrbRealm: \$KRB\\
+goKrbAdmin: admin/admin\\
+goKrbPassword: secret\\
+\\
+dn: cn=fax,ou=servers,ou=systems,\$1\\
+objectClass: goFaxServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:10\\
+cn: fax\\
+goFaxAdmin: fax\\
+goFaxPassword: secret\\
+\\
+dn: ou=incoming,\$1\\
+objectClass: organizationalUnit\\
+ou: incoming\\
+\\
+EOF\\
+\end{longtable}
+\end{center}
+
+
+\subsubsection{Master Server and two slaves}
+
+The data will be loaded with the same script of the previous section, in the master and in the slaves, with the following differences:\\
+
+In the master "DC=CHAOSDIMENSION, dc=ORG" we will execute this script \htmladdnormallink{creating\_base.sh}{http://warping.sourceforge.net/gosa/contrib/en/creating\_base.sh} to create the base: \\
+
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Create Base Configuration}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Create Base Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Create Base Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+\\
+if [ \$\{\#@\} != 1 ]\\
+then\\
+\verb|    |echo "Is needed the parameter base DN of the master"\\
+\verb|    |echo "For example creating\_base.sh dc=CHAOSDIMENSION,dc=ORG"\\
+\verb|    |exit\\
+fi\\
+\\
+DC=`echo \$1|cut -d\textbackslash= -f 2|cut -d\textbackslash, -f 1`\\
+\\
+slapadd \verb|<<|  EOF\\
+dn: \$1\\
+objectClass: dcObject\\
+objectClass: organization\\
+description: Base object\\
+dc: \$DC\\
+o: My own Base Organization\\
+EOF\\
+\end{longtable}
+\end{center}
+
+
+Also with the script of the previous section we will load the domains\\ "DC=domain1, DC=CHAOSDIMENSION, DC=ORG" and "DC=domain2, DC=CHAOSDIMENSION, DC=ORG". \\
+
+In slave1 we will execute script with "DC=domain1, DC=CHAOSDIMENSION, DC=ORG" and in slave2 with "DC=domain2, DC=CHAOSDIMENSION, DC=ORG". In both cases both LDAP slave servers will be configured for their own DN.\\
+
+At last we need to create the user for the replica, who could make it with the following script (\htmladdnormallink{user\_replica.sh}{http://warping.sourceforge.net/gosa/contrib/en/user\_replica.sh}) with the name of the user and the DN base: \\
+
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Create replica user Configuration}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Create replica user Configuration}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Create replica user Configuration (continuation)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+\\
+if [ \$\{\#@\} != 2 ]\\
+then\\
+\verb|    |echo "Are needed the parameters name of user and DN base for replica"\\
+\verb|    |echo "For example user\_replica.sh replicator dc=domain1,dc=CHAOSDIMENSION,dc=ORG"\\
+\verb|    |exit\\
+fi\\
+\\
+KEY=`makepasswd --crypt --chars=7 \textbackslash\\ --string="abcdefghijklmnopqrstuvwxyz1234567890"`\\
+PASS=`echo \$KEY|awk '\{ print \$1\}'`\\
+CRYPT=`echo \$KEY|awk '\{ print \$2\}'`\\
+
+echo "Creating user \$1 with password: \$PASS"\\
+
+slapadd \verb|<<| EOF\\
+dn: cn=\$1,ou=people,\$2\\
+displayName: Debian User,,,\\
+userPassword: \{crypt\} \$CRYPT\\
+sambaLMPassword: \\
+sambaNTPassword: \\
+sn: \$1\\
+givenName: \$1\\
+cn: \$1\\
+homeDirectory: /home/\$1\\
+loginShell: /bin/false\\
+uidNumber: 10000\\
+gidNumber: 100\\
+gecos: \$1\\
+shadowMin: 0\\
+shadowMax: 99999\\
+shadowWarning: 7\\
+shadowInactive: 0\\
+shadowLastChange: 12438\\
+gosaDefaultLanguage: en\_EN\\
+uid: \$1\\
+objectClass: posixAccount\\
+objectClass: shadowAccount\\
+objectClass: person\\
+objectClass: organizationalPerson\\
+objectClass: inetOrgPerson\\
+objectClass: gosaAccount\\
+objectClass: top\\
+EOF\\
+\end{longtable}
+\end{center}
+
+
diff --git a/gosa-core/doc/admin/en/referencias_gosa.bib b/gosa-core/doc/admin/en/referencias_gosa.bib
new file mode 100644
index 0000000..8c8100b
--- /dev/null
+++ b/gosa-core/doc/admin/en/referencias_gosa.bib
@@ -0,0 +1,109 @@
+ at Manual{x500,
+title = {Understanding X.500 - The Directory},
+key = {x500},
+author = { D W Chadwick},
+}
+
+ at TechReport{2251,
+author = {Network Working Group},
+title = {Request for Comments: 2251. Lightweight Directory Access Protocol (v3)},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2251.txt},
+}
+
+ at TechReport{2252,
+author = {Network Working Group},
+title = {Request for Comments: 2252. Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2252.txt},
+}
+
+ at TechReport{2253,
+author = {Network Working Group},
+title = {Request for Comments: 2253. Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2253.txt},
+}
+
+ at TechReport{2254,
+author = {Network Working Group},
+title = {Request for Comments: 2254. The String Representation of LDAP Search Filters},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2254.txt},
+}
+
+ at TechReport{2255,
+author = {Network Working Group},
+title = {Request for Comments: 2255. The LDAP URL Format},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2255.txt},
+}
+
+ at TechReport{2256,
+author = {Network Working Group},
+title = {Request for Comments: 2256. A Summary of the X.500(96) User Schema for use with LDAPv3},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2256.txt},
+}
+
+ at TechReport{3377,
+author = {Network Working Group},
+title = {Request for Comments: 3377. Lightweight Directory Access Protocol (v3): Technical Specification},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc3377.txt},
+}
+
+ at TechReport{llh,
+author = {Luiz Ernesto Pinheiro Mal�re},
+title = {LDAP Linux HOWTO},
+institution = {},
+year = {},
+address = {http://www.tldp.org/HOWTO/LDAP-HOWTO/index.html},
+}
+
+ at TechReport{ul,
+author = {metaconsultancy},
+title = {Using OpenLDAP},
+institution = {},
+year = {},
+address = {http://www.metaconsultancy.com/whitepapers/ldap.htm},
+}
+
+ at TechReport{oag,
+author = {The OpenLDAP Project},
+title = {OpenLDAP 2.2 Administrator's Guide},
+institution = {},
+year = {},
+address = {http://www.openldap.org/doc/admin22/index.html},
+}
+
+ at TechReport{lscp,
+author = {Sergio Gonz�lez Gonz�lez},
+title = {Integraci�n de redes con OpenLDAP, Samba, CUPS y PyKota},
+institution = {},
+year = {},
+address = {http://es.tldp.org/Tutoriales/doc-openldap-samba-cups-python/html/ldap+samba+cups+pykota.html},
+}
+
+ at TechReport{ssldoc,
+author = {OpenSSL Project},
+title = {OpenSSL Documents},
+institution = {},
+year = {},
+address = {http://www.openssl.org/docs/},
+}
+
+ at TechReport{2616,
+author = {Network Working Group},
+title = {Request for Comments: 2616. Hypertext Transfer Protocol -- HTTP/1.1},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2616.txt},
+}
diff --git a/gosa-core/doc/admin/es/manual_gosa_es.tex b/gosa-core/doc/admin/es/manual_gosa_es.tex
new file mode 100644
index 0000000..01f609c
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es.tex
@@ -0,0 +1,120 @@
+\documentclass[a4paper,spanish,10pt]{book}
+
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[pdftex]{graphicx}
+\usepackage[spanish]{babel}
+\usepackage{times}
+\usepackage{multirow}
+\usepackage[latex2html,backref,pdftitle={GOsa}]{hyperref}
+\usepackage{html,color}
+\usepackage{latexsym}
+\usepackage{anysize}
+\usepackage{float}
+\usepackage{longtable}
+\usepackage{fancyvrb}
+
+\author{Alejandro Escanero Blanco}
+\title{Administraci�n de Sistemas con GOsa }
+\date{28-03-05}
+
+\marginsize{3cm}{2cm}{2.5cm}{2.5cm}
+
+\begin{document}
+\renewcommand{\contentsname}{�ndice General}
+\renewcommand{\listfigurename}{Lista de Figuras} 
+\renewcommand{\listtablename}{Lista de Tablas}
+\renewcommand{\bibname}{Bibliograf�a}
+\renewcommand{\indexname}{�ndice Alfab�tico}
+\renewcommand{\figurename}{Figura}
+\renewcommand{\partname}{Parte}
+\renewcommand{\chaptername}{Cap�tulo}
+\renewcommand{\appendixname}{Ap�ndice}
+\renewcommand{\abstractname}{Resumen}
+\renewcommand{\tablename}{Tabla}
+
+\CustomVerbatimEnvironment%
+ {rbox}{Verbatim}{frame=single,fontsize=\small,fontfamily=helvetica,label=Cuadro,framesep=2mm,xleftmargin=2mm,xrightmargin=2mm,rulecolor=\color{blue}}
+
+\newcommand{\bbox}{
+\vspace{0.5cm}
+\noindent \begin{tabular}{|l|}\hline 
+}
+\newcommand{\ebox}{
+\hline \end{tabular}
+\vspace{0.5cm}
+}
+
+\newcommand{\cbbox}{
+\vspace{0.5cm}
+\noindent \begin{tabular}{|l|}\hline 
+}
+\newcommand{\cebox}{
+\hline \end{tabular}
+\vspace{0.5cm}
+}
+
+\newcommand{\hlink}[1]{
+\htmladdnormallink{#1}{#1}
+}
+
+\newcommand{\jump}{
+\vspace{0.5cm}
+}
+
+\maketitle
+\newpage
+\tableofcontents
+\newpage
+\listoffigures
+\newpage
+\listoftables
+\newpage
+
+\chapter*{Pre�mbulo}
+
+\htmladdnormallink{GOsa}{http://gosa.gonicus.de}, es un proyecto creado en el a�o 2001 por Cajus Pollmeier \htmladdnormallink{Cajus Pollmeier}{mailto://pollmeier@gonicus.de}
+
+En su versi�n 1.0 era un proyecto ambicioso, pero mal enfocado. Entre como desarrollador del proyecto en Junio del 2003 en las primeras versiones de la versi�n 1.99.xx.
+El c�digo fue rehecho completamente y se creo una nueva versi�n modular y extensible (basada en plugins) y se optimizo enormemente su funcionamiento.
+
+La versi�n actual de GOsa (a la fecha de la versi�n de este documento) es la 2.3.
+Es capaz de gestionar gran cantidad de servicios como samba2/3, pureftpd, postfix, cyrus-imap, posix, etc.
+Y cuenta con un peque�o, pero muy activo grupo de desarrolladores dirigido por Cajus.
+
+\chapter{Introducci�n}
+La administraci�n de sistemas puede llegar a ser una tarea realmente complicada, demasiados usuarios con servicios y permisos diferentes.
+\section{Copyright and Disclaimer}
+Copyright (c) 2005 Alejandro Escanero Blanco. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
+
+If you have questions, please visit the following url: http://www.gnu.org/licenses/fdl.txt\\ And contact at: \htmladdnormallink{blainett at yahoo.es}{mailto://blainett@yahoo.es}
+
+\include{manual_gosa_es_certificates}
+
+\include{manual_gosa_es_kerberos}
+
+\include{manual_gosa_es_ldap}
+
+\include{manual_gosa_es_apache}
+
+\chapter{GOsa}
+
+\include{manual_gosa_es_dns}
+\include{manual_gosa_es_mail}
+\include{manual_gosa_es_fileserver}
+\include{manual_gosa_es_printing}
+\include{manual_gosa_es_proxy}
+\include{manual_gosa_es_gw}
+\include{manual_gosa_es_ssh}
+\include{manual_gosa_es_vpn}
+\include{manual_gosa_es_ftp}
+\include{manual_gosa_es_im}
+\include{manual_gosa_es_otros}
+
+\chapter{Los Servidores}
+\label{servidores}
+
+\bibliography{referencias_gosa}
+\bibliographystyle{unsrt}
+
+\end{document}
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_apache.tex b/gosa-core/doc/admin/es/manual_gosa_es_apache.tex
new file mode 100644
index 0000000..df71aba
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_apache.tex
@@ -0,0 +1,822 @@
+\chapter{Apache y PHP}
+\section{Introducci�n a Apache}
+
+GOsa es una aplicaci�n escrita en el lenguaje de programaci�n PHP y pensada para uso a trav�s de p�ginas web.
+
+Aunque todo el mundo conoce lo que es una p�gina web, no viene de menos repasar algunos puntos:
+
+\begin{description}
+\item[WWW]
+La World Wide Web (Red alrededor del mundo) es el motor de lo que conocemos como internet, es un espacio de informaci�n donde cada recurso est� identificado por su URI (Identificador de Recurso Universal /  Universal Resource Identifier), este define el protocolo necesario para acceder a la informaci�n, el equipo que la posee y donde est� colocada.
+
+La WWW es la gran revoluci�n de nuestra �poca, es una fuente enorme de informaci�n. Y como tal todas las aplicaciones est�n siendo orientadas a ella. GOsa usa WWW por una sencilla raz�n, distribuye el programa, una aplicaci�n orientada a internet es capaz de ser usada desde cualquier lugar y pr�cticamente en cualquier momento. GOsa no necesita estar siendo ejecutado en la misma m�quina que lo tiene, mas 
+aun cada uno de los servidores que controla pueden estar en m�quinas diferentes y en remotos lugares.
+
+\item[HTTP]
+\htmladdnormallink{HTTP}{http://www.w3.org/Protocols/}\cite{2616} es el acr�nimo de Protocolo de Transferencia de Texto / HyperText Transfer Protocol, cuyo prop�sito mas importante es la publicaci�n y recepci�n de "p�ginas Web".
+
+Es un protocolo de nivel de aplicaci�n ideado para sistemas distribuidos de informaci�n hipermedia. Ha estado siendo usada para la WWW desde 1990, la versi�n actual es HTTP/1.1.
+
+El funcionamiento pr�ctico se puede reducir a un cliente que realiza una petici�n y a un servidor que gestiona esa petici�n y realiza una respuesta.
+
+\item[HTML]
+Si la petici�n del cliente y la respuesta del servidor son correctas, la respuesta del servidor contendr� alg�n tipo de hipermedia, el mas habitual es \htmladdnormallink{HTML}{http://www.w3.org/TR/1998/REC-html40-19980424/} (Lenguaje de marcas de hipertexto /  HyperText Markup Language), un lenguaje pensado para la publicaci�n con contenidos y para una f�cil navegaci�n por ellos. Es un protocolo en constante desarrollo, la versi�n actual es HTML4.01 y en publicaci�n XHTML2.0
+\end{description}
+
+\htmladdnormallink{APACHE}{http://httpd.apache.org/} es el servidor HTTP mas utilizado que \htmladdnormallink{ existe }{http://news.netcraft.com/archives/web_server_survey.html}, seguro, eficiente y extensible.
+
+En este manual nos centraremos en este servidor, ya que es el mas usado y tiene una licencia calificada de opensource.
+
+Mas informaci�n sobre este servidor en \htmladdnormallink{http://httpd.apache.org/docs-2.0/}{http://httpd.apache.org/docs-2.0/}
+ 
+\section{Introducci�n a PHP}
+
+PHP (PHP: Hypertext Preprocessor), es un lenguaje de interpretado alto nivel, especialmente pensado para el dise�o de p�ginas webs. Su sintaxis es una mezcla de C, Perl y Java. Es embebido en las p�ginas HTML y es ejecutado por el servidor HTTP.
+
+PHP est� ampliamente extendido y tiene un numeroso grupo de desarrolladores, una \htmladdnormallink{ extensa documentaci�n }{http://www.php.net/docs.php} y numerosos sitios webs con documentaci�n y ejemplos.
+
+\newpage
+
+\section{Instalaci�n }
+\subsection{Descargando e Instalando Apache}
+\label{down_apache}
+Al igual que en el cap�tulo anterior, Apache est� en pr�cticamente todas las distribuciones, aunque veremos su instalaci�n desde las fuentes. Nos vamos a centrar por ahora en las versiones mas avanzadas de apache, la serie 2.0.XX considerada estable.
+
+Se recomienda instalar los mismos paquetes que se necesitan para openLDAP\ref{down_ldap}.
+
+Se puede descargar de: \htmladdnormallink{http://httpd.apache.org/download.cgi}{http://httpd.apache.org/download.cgi}, la versi�n que vamos a descargar en /usr/src es la httpd-2.0.XX.tar.gz
+
+Ejecutamos \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/es/configure-apache.sh} con las siguientes opciones.
+
+\begin{itemize}
+\item[]Generales\\
+\begin{tabular}{|ll|}\hline 
+--enable-so & $\rightarrow$ Soporte de Objetos Din�micos Compartidos (DSO)\\
+--with-program-name=apache2 & \\
+--with-dbm=db42 & $\rightarrow$ Versi�n de la Berkeley DB que vamos a usar\\
+--with-external-pcre=/usr & \\
+--enable-logio & $\rightarrow$ Registro de entrada y salida\\
+--with-ldap=yes & \\
+--with-ldap-include=/usr/include & \\
+--with-ldap-lib=/usr/lib & \\
+\hline \end{tabular}
+ 
+\item[]Soporte suexec\\
+\begin{tabular}{|ll|}\hline
+--with-suexec-caller=www-data & \\
+--with-suexec-bin=/usr/lib/apache2/suexec2 & \\
+--with-suexec-docroot=/var/www & \\
+--with-suexec-userdir=public\_html & \\
+--with-suexec-logfile=/var/log/apache2/suexec.log & \\
+\hline \end{tabular}
+
+\item[]
+\begin{longtable}{|ll|}
+\hline
+\multicolumn{2}{|c|}{\textbf{M�dulos}}\\
+\hline
+\endfirsthead
+\hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+--enable-userdir=shared & $\rightarrow$ mod\_userdir, m�dulo para directorios de usuario\\
+--enable-ssl=shared & $\rightarrow$ mod\_ssl, m�dulo de conectividad segura SSL\\
+--enable-deflate=shared & $\rightarrow$ mod\_deflate, m�dulo para comprimir la informaci�n enviada\\
+--enable-ldap=shared & $\rightarrow$ mod\_ldap\_userdir, m�dulo para cach� y conexiones ldap\\
+--enable-auth-ldap=shared & $\rightarrow$ mod\_ldap, m�dulo de autentificaci�n en ldap\\
+--enable-speling=shared & $\rightarrow$ mod\_speling, m�dulo para la correcci�n de fallos en URL\\
+--enable-include=shared & $\rightarrow$ mod\_include, m�dulo para la inclusi�n de otras configuraciones\\
+--enable-rewrite=shared & $\rightarrow$ mod\_rewrite, permite la manipulaci�n de URL\\
+--enable-cgid=shared & $\rightarrow$ CGI script\\
+--enable-vhost-alias=shared & $\rightarrow$ m�dulo de alias de dominios virtuales\\
+--enable-info=shared & $\rightarrow$ Informaci�n del servidor\\
+--enable-suexec=shared & $\rightarrow$ Cambia el usuario y el grupo de los procesos\\
+--enable-unique-id=shared & $\rightarrow$ Identificador �nico por petici�n\\
+--enable-usertrack=shared & $\rightarrow$ Seguimiento de la sesi�n de usuario\\
+--enable-expires=shared & $\rightarrow$ M�dulo para el env�o de la cabecera de expiraci�n\\
+--enable-cern-meta=shared & $\rightarrow$ Ficheros meta tipo CERN\\
+--enable-mime-magic=shared & $\rightarrow$ Determina autom�ticamente el tipo MIME\\
+--enable-headers=shared & $\rightarrow$ Control cabeceras HTTP\\
+--enable-auth-anon=shared & $\rightarrow$ Acceso a usuarios an�nimos\\
+--enable-proxy=shared & $\rightarrow$ Permite el uso de Apache como proxy\\
+--enable-dav=shared & $\rightarrow$ Capaz de manejar el protocolo WebDav\\
+--enable-dav-fs=shared & $\rightarrow$ Proveedor DAV para el sistema de archivos\\
+--enable-auth-dbm=shared & $\rightarrow$ Autentificaci�n basada en base de datos DBM\\
+--enable-cgi=shared & $\rightarrow$ Permite CGI scripts\\
+--enable-asis=shared & $\rightarrow$ Tipos de archivos como son\\
+--enable-imap=shared & $\rightarrow$ Mapas de im�genes en el lado de servidor\\
+--enable-ext-filter=shared & $\rightarrow$ M�dulo para filtros externos\\
+--enable-authn-dbm=shared & \\
+--enable-authn-anon=shared & \\
+--enable-authz-dbm=shared & \\
+--enable-auth-digest=shared & $\rightarrow$ Colecci�n de autentificaciones seg�n RFC2617\\
+--enable-actions=shared & $\rightarrow$ Activa acciones seg�n peticiones\\
+--enable-file-cache=shared & $\rightarrow$ Cache de archivos\\
+--enable-cache=shared & $\rightarrow$ Cache din�mico de archivos\\
+--enable-disk-cache=shared & $\rightarrow$ Cache de disco\\
+--enable-mem-cache=shared & $\rightarrow$ Cache de memoria\\
+\hline \end{longtable}
+\end{itemize}
+
+Una vez configurado, hacemos:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#make \&\& make install\\
+\hline \end{tabular}
+\newpage
+
+
+\subsection{ Instalando PHP sobre Apache}
+
+Se puede descargar de \htmladdnormallink{http://www.php.net/downloads.php}{http://www.php.net/downloads.php} siendo la versi�n necesaria a la fecha de este manual para utilizar GOsa la 4.3.XX, ya que las versiones 5.0.XX a�n no est�n soportadas. Las descargaremos en /usr/src.
+
+Para poder compilar los m�dulos necesarios adem�s de necesitar las librer�as de desarrollo de la seccion Servidores \ref{servidores}, adem�s de las mismas que para openLDAP\ref{down_ldap} y Apache\ref{down_apache} necesitaremos alguna librer�a mas:
+
+\begin{itemize}
+\item[libbz2]
+La podemos descargar de \htmladdnormallink{http://sources.redhat.com/bzip2/}{http://sources.redhat.com/bzip2/} para m�dulo de compresi�n BZ2.
+\item[e2fsprogs]
+Se puede descargar de \htmladdnormallink{http://e2fsprogs.sourceforge.net}{http://e2fsprogs.sourceforge.net} para acceso al sistema de archivos.
+\item[expat]
+Se descarga de \htmladdnormallink{http://expat.sourceforge.net/}{http://expat.sourceforge.net/}, es un parser XML.
+\item[zziplib]
+Bajarla de \htmladdnormallink{http://zziplib.sourceforge.net/}{http://zziplib.sourceforge.net/}, acceso a archivos ZIP.
+\item[zlib]
+Desde \htmladdnormallink{http://www.gzip.org/zlib/}{http://www.gzip.org/zlib/} para compresi�n GZ.
+\item[file]
+Desde \htmladdnormallink{http://www.darwinsys.com/freeware/file.html}{http://www.darwinsys.com/freeware/file.html} control de archivos.
+\item[sed]
+De \htmladdnormallink{http://www.gnu.org/software/sed/sed.html}{http://www.gnu.org/software/sed/sed.html}, una de las herramientas mas potentes para manipulaci�n de texto.
+\item[libcurl]
+Potente herramienta para manejar archivos remotos, la bajaremos de \htmladdnormallink{http://curl.haxx.se/}{http://curl.haxx.se/} .
+\item[gettext]
+Herramienta GNU para soporte de varios idiomas, la descargamos de \htmladdnormallink{http://www.gnu.org/software/gettext/gettext.html}{http://www.gnu.org/software/gettext/gettext.html} .
+\item[libgd]
+Para la manipulaci�n y creaci�n de im�genes desde: \htmladdnormallink{http://www.boutell.com/gd/}{http://www.boutell.com/gd/} .
+\item[libjpeg]
+Manipulaci�n de im�genes JPEG de \htmladdnormallink{http://www.ijg.org/}{http://www.ijg.org/} .
+\item[libpng]
+Manipulaci�n im�genes PNG de \htmladdnormallink{http://www.libpng.org/pub/png/libpng.html}{http://www.libpng.org/pub/png/libpng.html} .
+\item[mcal]
+Librer�a para el acceso a Calendarios remotos, se baja de \htmladdnormallink{http://mcal.chek.com/}{http://mcal.chek.com/} .
+\item[libmysql]
+Soporte para la famos�sima base de datos, es imprescindible para php, se baja de \htmladdnormallink{http://www.mysql.com/}{http://www.mysql.com/}
+\end{itemize}
+
+Una configuraci�n recomendada ser�:
+
+
+\begin{itemize}
+\item[]Apache2\\
+\begin{tabular}{|ll|}\hline 
+--prefix=/usr --with-apxs2=/usr/bin/apxs2 & \\
+--with-config-file-path=/etc/php4/apache2 & \\
+\hline \end{tabular}
+
+
+ 
+\item[]Opciones de compilaci�n\\
+\begin{tabular}{|ll|}\hline
+--enable-memory-limit & \# Compilado con l�mite de memoria\\
+--disable-debug & \# Compilar sin s�mbolos de depuraci�n\\
+--disable-static & \# Sin librer�as est�ticas\\
+--with-pic & \# Usar objetos PIC y no PIC\\
+--with-layout=GNU & \\
+--enable-sysvsem & \# Soporte sysvmsg \\
+--enable-sysvshm & \# Soporte sem�foros System V \\
+--enable-sysvmsg & \# Soporte memoria compartida System V \\
+--disable-rpath & \# Desactiva poder pasar rutas a librer�as adiciones al binario\\
+--without-mm & \# Desactivar el soporte de sesiones por memoria\\
+\hline \end{tabular}
+
+\item[]De sesi�n\\
+\begin{tabular}{|ll|}\hline
+--enable-track-vars & \\
+--enable-trans-sid & \\
+\hline \end{tabular}
+
+\item[]Soporte\\
+\begin{tabular}{|ll|}\hline
+--enable-sockets & \# Soporte de sockets\\
+--with-mime-magic=/usr/share/misc/file/magic.mime & \\
+--with-exec-dir=/usr/lib/php4/libexec & \\
+\hline \end{tabular}
+
+\item[]pear\\
+\begin{tabular}{|ll|}\hline
+--with-pear=/usr/share/php & Donde vamos a instalar PEAR\\
+\hline \end{tabular}
+  
+\item[]Funciones\\
+\begin{tabular}{|ll|}\hline
+--enable-ctype & Soporte funciones de control de caracteres \\
+--with-iconv & Soporte funciones iconv\\
+--with-bz2 & Soporte Compresi�n BZ2\\
+--with-regex=php & Tipo de librer�a de expresiones regulares\\
+--enable-calendar & Funciones para conversi�n de calendario\\
+--enable-bcmath & Soporte de matem�ticas de precisi�n arbitraria\\
+--with-db4 & DBA: Soporte Berkeley DB versi�n 4\\
+--enable-exif & Soporte funciones exif, para lectura metadata JPG y TIFF\\
+--enable-ftp & Soporte funciones FTP \\
+--with-gettext & Soporte Localizaci�n\\
+--enable-mbstring & \\
+--with-pcre-regex=/usr & \\
+--enable-shmop & Funciones de memoria compartida\\
+--disable-xml --with-expat-dir=/usr & Usa el xml de expat en vez del que viene con php\\
+--with-xmlrpc & \\
+--with-zlib & \\
+--with-zlib-dir=/usr & \\
+--with-imap=shared,/usr & Soporte imap gen�rico\\
+--with-kerberos=/usr & Imap con autentificaci�n kerberos\\
+--with-imap-ssl & Imap con acceso seguro SSL\\
+--with-openssl=/usr & \\
+--with-zip=/usr & \\
+--enable-dbx & Capa de abstracci�n a base de datos\\
+\hline \end{tabular}
+
+\item[]M�dulos externos\\
+\begin{tabular}{|ll|}\hline
+--with-curl=shared,/usr & Manejo remoto de archivos\\
+--with-dom=shared,/usr --with-dom-xslt=shared,/usr --with-dom-exslt=shared,/usr & Con xmlrpc ya integrado\\
+--with-gd=shared,/usr --enable-gd-native-ttf & Soporte de manejo de gr�ficos\\
+--with-jpeg-dir=shared,/usr & Soporte GD para jpeg\\
+--with-png-dir=shared,/usr & Soporte GD para png\\
+--with-ldap=shared,/usr & Soporte para ldap\\
+--with-mcal=shared,/usr & Soporte de calendarios\\
+--with-mhash=shared,/usr & M�dulo para varios algoritmos de generaci�n de claves\\
+--with-mysql=shared,/usr & Soporte de base de datos Mysql\\    
+\hline \end{tabular}
+\end{itemize}
+Posteriormente hacemos:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#make \&\& make install\\
+\hline \end{tabular}
+\newpage
+\section{ Configuraci�n Apache2}
+
+La configuraci�n de apache se guardara en el directorio /etc/apache2 en los siguientes ficheros y directorios:
+\begin{itemize}
+\item[]Archivo apache2.conf:\\
+COnfiguraci�n principal de apache2, tiene la configuraci�n necesaria para arrancar apache.\\
+No necesitamos editar este archivo.
+\item[]Archivo ports.conf\\
+Que puertos escucha apache, necesitamos dos, el puerto 80 para HTTP y el 443 para HTTPS, editaremos el ficheros, dejandolo como esto:
+\begin{tabular}{|l|}\hline
+Listen 80,443\\
+\hline \end{tabular}
+\item[]Directorio conf.d:\\
+Directorio para configuraciones especiales, no lo necesitamos.
+\item[]Directorios mods-available y mods-enabled:\\
+Este directorio tiene todos los m�dulos que podemos usar de apache2, para poder usar un m�dulo es necesario enlazar este al directorio mods-enabled.
+\item[]Directorios sites-available y sites-enabled:\\
+En sites-available debemos configurar los sitios que vamos a usar.\\
+Por ejemplo vamos a crear el sitio no seguro gosa, que vamos a usar para redirigir las peticiones a un servidor seguro.
+
+La configuraci�n de GOsa (sites-available/gosa) puede ser parecida a esta::\\
+\begin{tabular}{|l|}\hline
+\noindent NameVirtual *\\
+<VirtualHost *>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |Redirect /gosa https://gosa.chaosdimension.org/gosa\\
+\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+</VirtualHost>\\
+\hline \end{tabular}
+
+Una vez sea guardada, podemos activarla haciendo esto:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>ln -s /etc/apache2/mods-available/suphp.conf /etc/apache2/mods-enabled/suphp.conf\\
+\hline \end{tabular}
+\\
+\item[]Directorio ssl:\\
+Directorio de configuraci�n de Secure Socket Layer, esto lo veremos en la siguiente secci�n.
+\end{itemize}
+\newpage
+\subsection{ Seguridad}
+
+La seguridad es uno de los puntos mas importantes al configurar un servidor apache, necesitaremos un entorno seguro donde no permitir que los usuarios manipulen y accedan a codigo o programas.
+
+La formas de conseguir esto es usando encriptaci�n, con lo que buscamos que los usuarios y el servidor se comuniquen de forma que nadie mas pueda acceder a los datos. Esto se consigue con encriptaci�n.
+
+La otra manera de asegurar el sistema es que si existe alg�n fallo en el sistema o en el c�digo, y un intruso intenta ejecutar codigo, este se vea incapacitado, ya que existen poderosas limitaciones, como no permitir que ejecute comandos, lea el codigo de otros script, no pueda modificar nada y tenga un usuario con muy limitados recursos.
+\subsubsection{ Certificados SSL}
+
+\noindent Existe amplia documentaci�n sobre encriptaci�n y concretamente sobre SSL, un sistema de encriptaci�n con clave publica y privada.\\
+\\
+\noindent Como el paquete openSSL ya lo tenemos instalado a partir de los pasos anteriores, debemos crear los certificados que usaremos en nuestro servidor web.\\
+\\
+\noindent Supongamos que guardamos el certificado en /etc/apache2/ssl/gosa.pem\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>FILE=/ect/apache2/ssl/gosa.pem\\
+\#>export RANDFILE=/dev/random\\
+\#>openssl req -new -x509 -nodes -out \$FILE -keyout /etc/apache2/ssl/apache.pem\\
+\#>chmod 600 \$FILE\\
+\#>ln -sf \$FILE /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < \$FILE`.0\\
+\hline \end{tabular}
+\\
+\noindent Con esto hemos creado un certificado que nos permite el acceso SSL a nuestras p�ginas.\\
+\\
+\noindent Si lo que queremos es una configuraci�n que nos permita no solo que el tr�fico est� encriptado, sino que adem�s el cliente garantice que es un usuario v�lido, debemos provocar que el servidor pida una certificaci�n de cliente. \\
+\\
+\noindent En este caso seguiremos un procedimiento mas largo, primero la creaci�n de una certificaci�n de CA:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>CAFILE=/ect/apache2/ssl/gosa.ca\\
+\#>KEY=/etc/apache2/ssl/gosa.key\\
+\#>REQFILE=/etc/apache2/ssl/gosa.req\\
+\#>CERTFILE=/ect/apache2/ssl/gosa.cert\\
+\#>DAYS=365\\
+\#>export RANDFILE=/dev/random\\
+\#>openssl req -x509 -keyout \$CAKEY -out \$CAFILE \$DAYS\\
+\hline \end{tabular}
+\\
+\noindent Despu�s de varias cuestiones tendremos una CA, ahora hacemos un requerimiento a la CA creada:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>openssl req -new -keyout \$REQFILE -out \$REQFILE \$DAYS\\
+\hline \end{tabular}
+\\
+\noindent Firmamos el nuevo certificado:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>openssl ca -policy policy\_anything -out \$CERFILE -infiles \$REQFILE\\
+\hline \end{tabular}
+\\
+\noindent Y creamos un pkcs12 para configurar la certificaci�n en los clientes:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>openssl pkcs12 -export -inkey \$KEY -in \$CERTFILE -out certificado\_cliente.pkcs12\\
+\hline \end{tabular}
+\\
+\noindent Este certificado se puede instalar en el cliente, y en el servidor web mediante la configuraci�n explicada en el siguiente punto, nos dar� la seguridad de que solo acceder�n aquellos clientes que nosotros deseamos y que su comunicaci�n ser� estrictamente confidencial.\\
+
+
+
+\subsubsection{ Configurando mod-SSL}
+
+
+\noindent El m�dulo SSL viene de serie con apache2, esto simplificara nuestro trabajo. Para saber si est� ya configurado:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#> if [ -h /etc/apache2/mods-enabled/ssl.load ]; then echo "m�dulo instalado";else echo "m�dulo no instalado"; fi\\
+\hline \end{tabular}
+\\
+\noindent Para activarlo haremos lo siguiente:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf\\
+\#>ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load\\
+\hline \end{tabular}
+\\
+\noindent Esto configurar� el m�dulo en apache2 y se podr� utilizar despu�s de recargar el servidor con:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>/etc/init.d/apache2 restart\\
+\hline \end{tabular}
+\\
+\\
+\noindent Para el caso de querer solo una configuraci�n para comunicaci�n encriptada, crearemos en /etc/apache2/sites-available, gosa-ssl:\\
+\\
+\begin{tabular}{|l|}\hline 
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\\
+\verb|    |DocumentRoot /var/www/gosa.chaosdimension.org\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\
+</VirtualHost>\\
+\hline \end{tabular}
+\\
+\noindent Para una comunicaci�n encriptada en la cual verificamos el certificado del cliente:
+\\
+\begin{tabular}{|l|}\hline 
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\\
+\verb|    |DocumentRoot /var/www/gosa.chaosdimension.org\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\      
+\verb|    |<Directory /usr/share/gosa >\\
+\verb|    |\verb|    |SSLVerifyClient require\\
+\verb|    |\verb|    |SSLVerifyDepth 1\\
+\verb|    |</Directory>\\
+</VirtualHost>\\
+\hline \end{tabular}
+
+\subsubsection{ Configurando suphp}
+\noindent
+Suphp es un m�dulo para apache y php que permite ejecutar procesos de php con un usuario diferente del que usa apache para ejecutar las p�ginas html y php.
+
+Consta de dos partes, una es un modulo para apache que "captura" las peticiones de p�ginas php, comprueba el usuario del archivo, su grupo, y env�a la informaci�n a la otra parte, que es un ejecutable suid-root que lanza php4-cgi con el usuario que le ha sido indicado, este devuelve el resultado al m�dulo del apache.
+
+La idea es minimizar el da�o que se provocar�a al ser explotado un posible fallo del sistema, de esta manera el usuario entrar�a en el sistema con una cuenta no habilitada, sin permisos de ejecuci�n y sin posibilidad de acceso a otro c�digo o sitios web.
+
+Suphp se puede descargar de \htmladdnormallink{http://www.suphp.org/Home.html}{http://www.suphp.org/Home.html}, descomprimiendo el paquete en /usr/src y compilando con las siguientes opciones:
+\\
+\begin{tabular}{|l|}\hline 
+\#>./configure --prefix=/usr \textbackslash \\
+\verb|    |--with-apxs=/usr/bin/apxs2 \textbackslash \\
+\verb|    |--with-apache-user=www-data \textbackslash \\
+\verb|    |--with-php=/usr/lib/cgi-bin/php4 \textbackslash \\
+\verb|    |--sbindir=/usr/lib/suphp \textbackslash \\
+\verb|    |--with-logfile=/var/log/suphp/suphp.log \textbackslash \\
+\verb|    |-with-setid-mode \textbackslash \\
+\verb|    |--disable-checkpath \\
+\hline \end{tabular}
+\\
+\noindent Por supuesto necesitaremos tener compilado php para cgi, esto significa volver a compilar php, pero quitando la configuraci�n para apache2 y a�adiendo:\\
+\\
+\begin{tabular}{|l|}\hline 
+\verb|    |--prefix=/usr --enable-force-cgi-redirect --enable-fastcgi \textbackslash\\
+\verb|    |--with-config-file-path=/etc/php4/cgi\\
+\hline \end{tabular}
+
+\noindent Para configurarlo en apache haremos igual que para ssl, primero comprobamos si est� configurado:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#> if [ -h /etc/apache2/mods-enabled/suphp.load ]; then echo "m�dulo instalado";else echo "m�dulo no instalado"; fi\\
+\hline \end{tabular}
+\\
+\noindent Para activarlo haremos lo siguiente:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>ln -s /etc/apache2/mods-available/suphp.conf /etc/apache2/mods-enabled/suphp.conf\\
+\#>ln -s /etc/apache2/mods-available/suphp.load /etc/apache2/mods-enabled/suphp.load\\
+\hline \end{tabular}
+\\
+\noindent Esto configurar� el m�dulo en apache2 y se podr� utilizar despu�s de recargar el servidor con:\\
+\\
+\begin{tabular}{|l|}\hline 
+\#>/etc/init.d/apache2 restart\\
+\hline \end{tabular}
+\\
+
+\noindent La configuraci�n del sitio seguro con suphp incluido quedar�a as�:\\
+\\
+\begin{tabular}{|l|}\hline 
+\noindent NameVirtual *:443\\
+<VirtualHost *:443>\\
+\verb|    |ServerName gosa.chaosdimension.org\\
+\\
+\verb|    |DocumentRoot /usr/share/gosa/html\\
+\verb|    |alias /gosa /usr/share/gosa/html\\
+\verb|    |CustomLog /var/log/apache/gosa.log combined\\
+\verb|    |ErrorLog /var/log/apache/gosa.log\\
+\\
+\verb|    |suPHP\_Engine on\\
+\\
+\verb|    |SSLEngine On\\
+\verb|    |SSLCertificateFile    /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCertificateChainFile /etc/apache2/ssl/gosa.cert\\
+\verb|    |SSLCertificateKeyFile /etc/apache2/ssl/gosa.key\\
+\verb|    |SSLCACertificateFile /etc/apache2/ssl/gosa.ca\\
+\verb|    |SSLCACertificatePath /etc/apache2/ssl/\\
+\verb|    |SSLLogLevel error\\
+\verb|    |SSLLog /var/log/apache2/ssl-gosa.log\\
+\\      
+\verb|    |<Directory /usr/share/gosa >\\
+\verb|    |\verb|    |SSLVerifyClient require\\
+\verb|    |\verb|    |SSLVerifyDepth 1\\
+\verb|    |</Directory>\\
+</VirtualHost>\\
+\hline \end{tabular}
+
+\noindent Debemos decidir que usuario vamos a usar, en este caso voy a crear uno llamado gosa, que me sirva para el fin indicado anteriormente:\\
+\\
+\begin{tabular}{|l|}\hline 
+\verb|    |\#useradd -d /usr/share/gosa/html gosa\\
+\verb|    |\#passwd -l gosa\\
+\verb|    |\#cd /usr/share/gosa\\
+\verb|    |\#find /usr/share/gosa -name "*.php" -exec chown gosa {} ";"\\
+\verb|    |\#find /usr/share/gosa -name "*.php" -exec chmod 600 {} ";"\\
+\hline \end{tabular}
+
+
+
+\section{Configuraci�n Php4}
+
+La configuraci�n para mod\_php se guardar� en el sitio que hallamos puesto en la partes anteriores. En nuestro caso es /etc/php4/apache2.
+
+El archivo de configuraci�n siempre es php.ini y en el configuramos los m�dulos.
+
+Una configuraci�n b�sica ser� como esta:
+\begin{center}
+\begin{longtable}{|l|}
+\caption{PHP4 Configuration}\\
+\hline
+\multicolumn{1}{|c|}{\textbf{PHP4 Configuration}}\\
+\hline
+\endfirsthead
+\hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Continue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{End}}\\
+\hline
+\endlastfoot
+; Engine\\
+\verb|    |engine   = On ; Activa PHP\\
+\verb|    |short\_open\_tag = On ; Permite usar <? para simplificar <?php\\
+\verb|    |asp\_tags  = Off ; No permitimos etiquetas estilo ASP: <\% \%>\\
+\verb|    |precision  = 14 ; N�mero de d�gitos significantes mostrados en n�meros en coma flotante\\
+\verb|    |output\_buffering = Off ; Solo permitimos que envie cabecera antes de enviar el contenido.\\
+\verb|    |implicit\_flush  = Off ; No forzamos a php a que limpie el buffer de salida despu�s de cada bloque.\\
+\\
+; Safe Mode\\
+\verb|    |\label{sm} safe\_mode  = Off ; No queremos el modo seguro\\
+\verb|    |\label{smed} safe\_mode\_exec\_dir = ; Directorio donde se ejecutara PHP\\
+\verb|    |\label{smid} safe\_mode\_include\_dir = Directorios donde har� la busqueda PHP de librer�as\\
+\verb|    |\label{smaev} safe\_mode\_allowed\_env\_vars = PHP\_     ; Solo se permite a los usuarios\\
+\verb|    |\verb|    |\verb|    |;a crear variables del sistema que empiecen por PHP\_\\
+\verb|    |\label{smpev} safe\_mode\_protected\_env\_vars = LD\_LIBRARY\_PATH  ; Lista de variables del sistema que\\
+\verb|    |\verb|    |\verb|    |; no pueden ser cambiadas por razones de seguridad\\
+\verb|    |\label{df} disable\_functions =        ; Funciones que ser�n desactivadas por razones de seguridad\\
+\verb|    |\label{auf} allow\_url\_fopen = Yes ; Permitimos que se abran archivos desde PHP\\
+\verb|    |\label{ob} open\_basedir = ;\\
+\\
+; Colores para el modo de s�ntasis coloreada.\\
+\verb|    |highlight.string = \#DD0000\\
+\verb|    |highlight.comment = \#FF8000\\
+\verb|    |highlight.keyword = \#007700\\
+\verb|    |highlight.bg  = \#FFFFFF\\
+\verb|    |highlight.default = \#0000BB\\
+\verb|    |highlight.html  = \#000000\\
+\\
+; Misc\\
+\verb|    |\label{ep}expose\_php = On  ; Indica en el mensaje del servidor web si est� instalado o no.\\
+\\
+; Resource Limits ;\\
+\verb|    |max\_execution\_time = 30     ; Tiempo m�ximo de ejecuci�n del script.\\
+\verb|    |memory\_limit = 16M   ; La cantidad m�xima permitida de memoria que puede consumir un script.\\
+\\
+; Error handling and logging ;\\
+\verb|    |error\_reporting = E\_ALL; Indicamos que muestre todos los errores y avisos.\\
+\verb|    |display\_errors = Off ; Que no los imprima en pantalla.\\
+\verb|    |display\_startup\_errors = Off  ; Que no muestre los errores de arranque de PHP.\\
+\verb|    |log\_errors  = On ; Que env�e los errores a un fichero.\\
+\verb|    |track\_errors = On ; Que guarde el �ltimo error / aviso para \$php\_errormsg (boolean)\\
+\verb|    |error\_log = /var/log/php/php4.log ; Fichero que guardar� los errores\\
+\verb|    |warn\_plus\_overloading = Off  ; No avisamos si se usa el operador + con cadenas de texto\\
+\\
+; Data Handling ;\\
+\verb|    |variables\_order  = "EGPCS" ; Esta directiva describe el orden en el cual\\
+\verb|    |;se registrar�n las variables de PHP (Siendo G=GET, P=POST, C=Cookie,\\
+\verb|    |; E= Sistema, S= Propias de PHP, todas es indicado como EGPCS)\\
+\verb|    |\label{rg} register\_globals = Off  ; No queremos que se registren las EGPCS como globales.\\
+\verb|    |register\_argc\_argv = Off  ; No declaramos ARGV y ARGC para su uso en scripts.\\
+\verb|    |post\_max\_size  = 8M  ; Tama�o m�ximo de un env�o POST que aceptar� PHP.\\
+
+; Magic quotes\\
+\verb|    |\label{mqq}magic\_quotes\_gpc = On  ; Comillas a�adidas para gpc(informaci�n GET/POST/Cookie)\\
+\verb|    |magic\_quotes\_runtime= Off  ; Comillas a�adidas para informaci�n generada por el sistema, \\
+\verb|    |;por ejemplo desde SQL, exec(), etc.\\
+\verb|    |magic\_quotes\_sybase = Off  ; Usar comillas a�adidas al estilo de Sybase \\
+\verb|    |;(escapa ' con '' en lugar de \textbackslash ')\\
+\\
+; Tipo de archivo por defecto de PHP y codificaci�n por defecto.\\
+\verb|    |default\_mimetype = "text/html"\\
+\verb|    |default\_charset = "iso-8859-1"\\
+\\
+; Rutas y directorios ;\\
+\verb|    |\label{ip} include\_path = . ;\\
+\verb|    |doc\_root  =     ; Ra�z de las p�ginas php, mejor dejarlo en blanco.\\
+\verb|    |user\_dir  =     ; Donde php ejecuta el script, tambien mejor en blanco.\\
+\verb|    |;extension\_dir = /usr/lib/php4/apache   ; �Donde estan los m�dulos?\\
+\verb|    |enable\_dl  = Off    ; Permitir o no la carga din�mica de m�dulos con la funci�n dl().\\
+\\
+; Subir ficheros al servidor;\\
+\verb|    |file\_uploads = On    ; Permitir el subir archivos al servidor.\\
+\verb|    |upload\_max\_filesize = 2M      ; Tama�o m�ximo de los archivos que vamos a subir.\\
+\\
+; Extensiones din�micas ;\\
+\verb|    |extension=gd.so		; Graficos\\
+\verb|    |extension=mysql.so	; Mysql\\
+\verb|    |extension=ldap.so	; Ldap\\
+\verb|    |extension=mhash.so	; Mhash\\
+\verb|    |extension=imap.so	; Imap\\
+\verb|    |extension=kadm5.so	; Kerberos\\
+\verb|    |extension=cups.so	; Cupsys\\
+\\
+; Log del sistema\\
+\verb|[Syslog]|\\
+\verb|    |define\_syslog\_variables = Off ; Desactivamos la definici�n de variables de syslog.\\
+\\
+; funciones de correo\\
+\verb|[mail function]|\\
+\verb|    |;sendmail\_path =      ;En sistemas Unix, donde esta hubicado sendmail (por defecto es 'sendmail -t -i')\\
+\\
+; depuraci�n\\
+\verb|[Debugger]|\\
+\verb|    |debugger.host = localhost ; Donde est� el depurador.\\
+\verb|    |debugger.port = 7869	; En que puerto escucha.\\
+\verb|    |debugger.enabled = False ; En principio suponemos que no hay depurados.\\
+\\
+; Opciones SQL\\
+\verb|[SQL]|\\
+\verb|    |sql.safe\_mode = Off	; Modo seguro de sql, en principio estar� desactivado.\\
+\\
+; Opciones Mysql\\
+\verb|[MySQL]|\\
+\verb|    |mysql.allow\_persistent = Off ; Desactivaremos los enlaces persistentes por razones de seguridad.\\
+\verb|    |mysql.max\_persistent = -1 ; Numero de conexiones persistentes, no se usa por haberlas desactivado.\\
+\verb|    |mysql.max\_links   = -1 ; Numero m�ximo de conexiones, -1 es sin limite.\\
+\verb|    |mysql.default\_port  =  3306; Puerto por defecto del mysql.\\
+\verb|    |mysql.default\_socket =  ; Nombre de socket que se usaran para conexiones locales MySQL.\\
+\verb|    |;Si est� vacio se usara el que tengamos en la configuraci�n de la compilaci�n del PHP.\\
+\verb|    |mysql.default\_host  =  ; No configuramos host por defecto.\\
+\verb|    |mysql.default\_user  =  ; No configuramos usuario por defecto.\\
+\verb|    |mysql.default\_password =  ; No configuramos una contrase�a por defecto.\\
+\\
+; Control de sesiones\\
+\verb|[Session]|\\
+\verb|    |session.save\_handler      = files   ; Guardamos la informaci�n de sesi�n en ficheros.\\
+\verb|    |\label{ss} session.save\_path         = /var/lib/php4    ; Donde se van ha guardar los ficheros de sesi�n.\\
+\verb|    |session.use\_cookies       = 1       ; Usaremos cookies para el seguimiento de sesi�n.\\
+\verb|    |session.name              = PHPSESSID   ; Nombre de la sesi�n que ser� usado en el nombre de la cookie.\\
+\verb|    |session.auto\_start        = 0       ; No iniciamos sesi�n autom�ticamente.\\
+\verb|    |session.cookie\_lifetime   = 0       ; Tiempo de vida de una cookie de sesi�n o 0 si esperamos a que cierre el navegador.\\
+\verb|    |session.cookie\_path       = /       ; La ruta para que es v�lida la cookie.\\
+\verb|    |session.cookie\_domain     =         ; El dominio para el cual es v�lida la cookie.\\
+\verb|    |session.serialize\_handler = php     ; Manipulador usado para serializar los datos.\\
+\verb|    |session.gc\_probability    = 1       ; Probabilidad en porcentaje de que el recolector de basura se active en cada sesi�n.\\
+\verb|    |session.gc\_maxlifetime    = 1440    ; Despu�s de este tiempo en segundos, la informaci�n guardada\\
+\verb|    |; ser� vista como basura para el recolector de basura.\\
+\verb|    |session.referer\_check     =         ; Comprueba los Referer HTTP para invalidar URLs externas conteniendo ids\\
+\verb|    |session.entropy\_length    = 0       ; N�mero de bytes a leer del fichero de entrop�a.\\
+\verb|    |session.entropy\_file      =         ; El fichero que generar� la entrop�a.\\
+\verb|    |session.cache\_limiter     = nocache ; Sin cache de sessiones.\\
+\verb|    |session.cache\_expire      = 180     ; Tiempo de expiraci�n del documento.\\
+\verb|    |session.use\_trans\_sid     = 0       ; Usar sid transportable si est� activado en la compilaci�n\\
+\\
+\end{longtable}
+\end{center}
+
+
+\subsection{Seguridad}
+
+Php es un poderoso lenguaje de script, permite a su usuario tener bastante control sobre el sistema y a atacantes maliciosos muchas opciones de alcanzar su objetivo.
+
+Un administrador de sistemas no debe suponer que un sistema es completamente seguro con solo tener las actualizaciones de seguridad instaladas, un sistema que muestra c�digo al exterior no es seguro, aunque el resultado sea HTML, se expone a ataques de formas muy diversas y a fallos de seguridad desconocidos.
+
+Limitar al m�ximo el acceso que permite php es entonces una necesidad.
+
+\subsection{Configurando safe php}
+
+PHP tiene un modo llamado \htmladdnormallink{safe-mode}{http://www.php.net/manual/en/features.safe-mode.php} que permite una mayor seguridad, una configuraci�n para Safe mode recomendada es:\\
+\\
+\noindent \begin{tabular}{|l|}\hline
+\verb|    |\ref{mqq} magic\_quotes\_qpc = On\\
+\verb|    |\ref{auf} allow\_url\_fopen = No\\
+\verb|    |\ref{rg} register\_globals = Off\\
+\verb|    |\ref{sm} safe\_mode = On\\
+\verb|    |\ref{smid} safe\_mode\_include\_dir = "/usr/share/gosa:/var/spool/gosa"\\
+\verb|    |\ref{smed} safe\_mode\_exec\_dir = "/usr/lib/gosa"\\
+\verb|    |\ref{smaev} safe\_mode\_allowed\_env\_vars = PHP\_,LANG\\
+\verb|    |\ref{ob} open\_basedir = "/etc/gosa:/var/spool/gosa:/var/cache/gosa:/usr/share/gosa:/tmp"\\
+\verb|    |\ref{ip} include\_path = ".:/usr/share/php:/usr/share/gosa:/var/spool/gosa:/usr/share/gosa/safe\_bin"\\
+\verb|    |\ref{df} disable\_functions = system, shell\_exec, passthru, phpinfo, show\_source\\
+\hline \end{tabular}
+\\
+En el caso de que vayamos a usar SuPHP, debemos dar los siguientes permisos al directorio /var/lib/php4:\\
+\begin{tabular}{|l|}\hline 
+\#chmod 1777 /var/lib/php4\\
+\hline \end{tabular}
+
+Ya que cada usuario que ejecute PHP guardara la sesi�n con ese usuario.
+
+
+\section{ M�dulos de PHP necesarios}
+
+En esta secci�n se explicaran los pasos para conseguir compilar y usar los m�dulos necesarios o importantes para GOsa, se recomienda instalar todos los m�dulos, incluso los que no son necesarios.
+
+\subsection{ ldap.so}
+
+M�DULO NECESARIO
+
+\indent Este m�dulo no necesita ninguna configuraci�n especial para funcionar.
+
+\indent Solo se conoce un problema: No puede conectarse PHP+Apache con un servidor LDAP que pida Certificado v�lido. Con lo cual la comunicaci�n ser� segura, ya que se puede usar SSL, pero no estar� garantizada.
+
+\subsection{ mysql.so}
+
+M�DULO OPCIONAL
+
+\indent Este m�dulo no necesita ninguna configuraci�n especial para funcionar.
+
+\indent Sirve para albergar configuraciones del plugin imap - sieve.
+
+\subsection{ imap.so}
+
+M�DULO OPCIONAL
+
+\indent El m�dulo instalado al compilar PHP funcionara, pero tendr� una importante carencia, la funci�n getacl que da control sobre las carpetas, as� que necesitaremos un parche y una serie de pasos para compilar el m�dulo para su uso en GOsa.
+
+Nos bajamos el parche de \htmladdnormallink{php4-imap-getacl.patch}{ftp://oss.gonicus.de/pub/gosa/patches/php4-imap-getacl.patch} y lo ponemos en /usr/src, como tenemos las fuentes de PHP en /usr/src, ejecutamos los siguientes comandos:\\
+\\
+\noindent \begin{tabular}{|l|}\hline
+\#cd /usr/src/php4.3-XXX/extensions/imap\\
+\#make clear\\
+\#patch -p1 </usr/src/patch/php4-imap-getacl.patch\\
+\#phpize\\
+\#./configure\\
+\#make\\
+\#make install\\
+\hline \end{tabular}
+
+
+Esto configurara e instalara correctamente el m�dulo.
+
+\subsection{ gd.so}
+
+M�DULO OPCIONAL
+
+\indent Este m�dulo no necesita ninguna configuraci�n especial para funcionar.
+
+\indent El m�dulo es usado para el manejo de gr�ficos, tambien usado por el sistema de plantillas smarty.
+
+\subsection{cups}
+
+M�DULO OPCIONAL
+
+\indent Para utilizar el m�dulo Cups para la selecci�n de la impresora en Posix, primero debemos descargar las fuentes de cups de \htmladdnormallink{http://www.cups.org/software.php}{http://www.cups.org/software.php} y descomprimirlas en /usr/src, ejecutamos entonces los siguientes comandos:\\
+\\
+\noindent \begin{tabular}{|l|}\hline
+\#cd /usr/src/cups-1.1.XX/scripting/php\\
+\#phpize\\
+\#./configure\\
+\#make\\
+\#make install\\
+\#echo \verb|"extension=cups.so" >>| /etc/php4/apache2/php.init\\
+\#/etc/init.d/apache2 reload\\
+\hline \end{tabular}
+
+
+\subsection{krb}
+
+M�DULO OPCIONAL
+
+\indent Este m�dulo necesita tener instaladas las fuentes de kerberos del MIT, ya que no se puede compilar con las fuentes de kerberos de Heimdal.
+
+\indent El m�dulo interactuar� con los servidores Kerberos para actualizar las claves de los usuarios creados.
+
+Se descargara de \htmladdnormallink{PECL}{http://pecl.php.net/kadm5}, y lo descomprimiremos en /usr/src, debemos tener tambien las fuentes del kerberos del MIT, las cuales descomprimiremos en /usr/src, con ello hacemos (sustituimos X.X por las respectivas versiones de los programas):\\
+\\
+\noindent \begin{tabular}{|l|}\hline
+\#cd /usr/src/kadm5-0.X.X/scripting/php\\
+\#cp config.m4 config.m4.2\\
+\#sed \verb|s/krb5-1\.2\.4\/src\/include/krb5-1\.X\.X\/src\/lib/| config.m4.2 >config.m4\\
+\#rm -f config.m4.2\\
+\#phpize\\
+\#./configure\\
+\#make\\
+\#make install\\
+\#echo \verb|"extension=kadm5.so" >>| /etc/php4/apache2/php.ini\\
+\#/etc/init.d/apache2 reload\\
+\hline \end{tabular}
+
+
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_certificates.tex b/gosa-core/doc/admin/es/manual_gosa_es_certificates.tex
new file mode 100644
index 0000000..534ef08
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_certificates.tex
@@ -0,0 +1,102 @@
+\chapter{Seguridad y Certificados}
+\section{Introduction SSL}
+\section{Creaci�n de certificados}
+La seguridad es uno de los puntos mas importantes al configurar un servidor, necesitaremos un entorno seguro donde no permitir que los usuarios manipulen y accedan a codigo o programas.
+
+Una formas de conseguir esto es usando encriptaci�n, con lo que buscamos que los usuarios y el servidor se comuniquen de forma que nadie mas pueda acceder a los datos. Esto se consigue con encriptaci�n.
+
+La otra manera de asegurar el sistema es que si existe alg�n fallo en el sistema o en el c�digo, y un intruso intenta ejecutar codigo, este se vea incapacitado, ya que existen poderosas limitaciones, como no permitir que ejecute comandos, lea el codigo de otros script, no pueda modificar nada y tenga un usuario con muy limitados recursos.
+\subsection{ Certificados SSL}
+\label{down_ssl}
+\noindent Necesitaremos \textbf{openSSL}, existe en todas las distribuciones y tiene documentaci�n en su pagina web\cite{ssldoc}.
+
+\noindent Las fuentes se pueden descargar de \hlink{http://www.openssl.org/source/}
+
+\noindent Existe amplia documentaci�n sobre encriptaci�n y concretamente sobre SSL, un sistema de encriptaci�n con clave publica y privada.
+
+\noindent Como el paquete openSSL ya lo tenemos instalado a partir de los pasos anteriores, debemos crear los certificados que usaremos en nuestro servidor web.
+
+\noindent Supongamos que guardamos el certificado en /etc/apache2/ssl/gosa.pem
+
+\jump
+\begin{rbox}[label=Pem Certificate]
+# FILE=/ect/apache2/ssl/gosa.pem
+# export RANDFILE=/dev/random
+# openssl req -new -x509 -nodes -out $FILE -keyout /etc/apache2/ssl/apache.pem
+# chmod 600 $FILE
+# ln -sf $FILE /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < $FILE`.0
+\end{rbox}
+\jump
+
+
+\noindent Con esto hemos creado un certificado que nos permite el acceso SSL a nuestras p�ginas.
+
+\noindent Si lo que queremos es una configuraci�n que nos permita no solo que el tr�fico est� encriptado, sino que adem�s el cliente garantice que es un usuario v�lido, debemos provocar que el servidor pida una certificaci�n de cliente. 
+\newpage
+\noindent En este caso seguiremos un procedimiento mas largo, primero la creaci�n de una certificaci�n de CA:
+\jump
+\begin{rbox}
+# CAFILE=gosa.ca
+# KEY=gosa.key
+# REQFILE=gosa.req
+# CERTFILE=gosa.cert
+# DAYS=2048
+# OUTDIR=.
+# export RANDFILE=/dev/random
+# openssl req -new -x509 -keyout $KEY -out $CAFILE -days $DAYS
+\end{rbox}
+\jump
+
+Despu�s de varias cuestiones tendremos una CA, ahora hacemos un requerimiento para un nuevo certificado:
+\jump
+\begin{rbox}
+# >DAYS=365
+# >openssl req -new -keyout $REQFILE -out $REQFILE -days$DAYS
+\end{rbox}
+\jump
+
+Creamos una configuraci�n para usar la CA con openssl y la guardamos en openssl.cnf:
+\jump
+\begin{rbox}
+HOME = .
+RANDFILE = $ENV::HOME/.rnd
+[ ca ]
+default_ca  = CA_default
+[ CA_default ]
+dir = .
+database = index.txt
+serial = serial
+default_days = 365
+default_crl_days= 30
+default_md = md5
+preserve = no
+policy = policy_anything
+[ policy_anything ]
+countryName = optional
+stateOrProvinceName  = optional
+localityName = optional
+organizationName = optional
+organizationalUnitName  = optional
+commonName = supplied
+emailAddress = optional
+\end{rbox}
+\jump
+
+Firmamos el nuevo certificado:
+\jump
+\begin{rbox}
+# touch index.txt
+# touch index.txt.attr
+# echo "01" >serial
+# openssl ca -config openssl.cnf -policy policy_anything \
+    -keyfile $KEY -cert $CAFILE -outdir . -out $CERFILE -infiles $REQFILE
+\end{rbox}
+\jump
+
+Y creamos un pkcs12 para configurar la certificaci�n en los clientes:
+\jump
+\begin{rbox}
+# openssl pkcs12 -export -inkey $KEY -in $CERTFILE -out certificado_cliente.pkcs12
+\end{rbox}
+\jump
+Este certificado se puede instalar en el cliente, y en el servidor mediante la configuraci�n explicada en cada uno, esto nos dar� la seguridad de que su comunicaci�n ser� estrictamente confidencial.\\
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_dns.tex b/gosa-core/doc/admin/es/manual_gosa_es_dns.tex
new file mode 100644
index 0000000..de7195d
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_dns.tex
@@ -0,0 +1,304 @@
+\chapter{Servidores de Configuraci�n din�mica de Equipos - DHCP}
+\section{El protocolo DHCP}
+
+DHCP (Dynamic Host Configuration Protocol / Protocolo de configuraci�n din�mica de equipos) es usado ampliamente y tiene numerosas posibilidades, como la asignaci�n din�micas de direcciones IP.
+
+DHCP aparece como un protocolo estandar en Octubre de 1993 (RFC 2131).
+
+\subsection{Asignaci�n de IPs}
+
+\begin{itemize}
+\item[Manual] La asignaci�n se hace de forma manual, de tal modo que para cada MAC se le asigna una ip fija.
+\item[Autom�tico] Se asigna un rango de ips que ser�n dadas a los clientes. Estas ser�n asignadas de tal forma que los clientes mantengan su IP.
+\item[Din�mico] Se asigna un rango de ips que ser�n dadas a los clientes. Estas ser�n asigandas de forma din�mica, de tal manera que al arrancar la maquina el servidor le asignara una IP y esta puede ser diferente cada vez que arranque.
+\end{itemize}
+
+\subsection{An�lisis del Protocolo}
+
+El protocolo utilizara los puertos 67/UDP para el lado de servidor y 68/UDP para el lado de cliente.
+
+\begin{itemize}
+\item[DISCOVER] El cliente lanza un broadcast a 255.255.255.255 buscando un servidor DHCP, tambien hace peticiones indicando su ultima IP.
+\item[OFFER] El servidor determina la configuraci�n del cliente con entre otras cosas, la direcci�n MAC del cliente.
+\item[REQUEST] El cliente pide la configuraci�n al servidor, indicando la IP que este le ha configurado.
+\item[ACKNOWLEDGE] El servidor lanza un broadcast para que los otros clientes vean lo que ha sucedido.
+\end{itemize}
+
+
+\section{Instalaci�n}
+
+Se descarga de \hlink{ftp://ftp.isc.org/isc/} y lo descomprimimos en /usr/src/dhcp-3.X.X, hacemos entonces los siguiente:
+\jump
+\begin{rbox}
+# cd /usr/src/dhcp-3.X.X
+# ./configure
+# make
+# make install
+\end{rbox}
+\jump
+
+\section{Configuraci�n B�sica}
+
+Al comenzar leera la configuraci�n desde el archivo /etc/dhcp3/dhcp.conf, una configuraci�n b�sica puede ser:
+\jump
+\begin{rbox}
+# Intentara hacer una actualizaci�n automatica de dns (muy util para los windows 2k).
+ddns-update-style interim;
+ddns-hostname chaosdimension.org
+ddns-domainname chaosdimension.org
+
+# opciones de dominio y dns
+option domain-name "chaosdimension.org";
+option domain-name-servers ns1.chaosdimension.org, ns2.chaosdimension.org;
+
+# Tiempos que se tendra una ip
+default-lease-time 600;
+max-lease-time 7200;
+
+# Fichero donde se guardan las peticiones
+# Muy interesante para actualizaciones dinamicas
+lease-file-name /var/lib/dhcp/dhcpd.leases
+
+# Si este es el unico servidor DHCP en la red
+# se debe activar esta opci�n
+#authoritative;
+
+# Donde ira el registro de eventos
+# En /etc/syslog.conf habra que poner algo como:
+# log.local7                             /var/log/dhcp3d.log
+log-facility local7;
+
+# Configuraci�n de la subred y las IPs
+subnet mysubnet.0 netmask 255.255.255.128 {
+  range mysubnet.1 mysubnet.127;
+  option broadcast-address mysubnet.128;
+  option routers gw1.chaosdimension.org, gw2.chaosdimension.org;
+  option domain-name-servers ns1.chaosdimension.org, ns2.chaosdimension.org;
+  option domain-name "chaosdimension.org";
+  default-lease-time 600;
+  max-lease-time 7200;
+}
+
+# Si lo que queremos es una configuraci�n por equipos el sistema es:
+host cliente1 {
+  hardware ethernet MAC.cliente1;
+#  filename "vmunix.passacaglia"; Muy interesante para subir archivos por tftp
+  fixed-address cliente1.chaosdimension.org;
+  server-name "chaosdimension.org";
+}
+
+\end{rbox}
+\jump
+
+\chapter{Servidores de Dominios de Nombres - DNS}
+\section{El servicio de Dominio de Nombres}
+\section{El servidor Bind 9}
+
+Bind 9 es el servidor de nombres mas extendido por internet, aunque tenga la competencia de nuevos servidores como pdns(\hlink{http://www.powerdns.com/}) o djbdns(\hlink{http://cr.yp.to/djbdns.html}).
+
+Tiene gran cantidad de documentaci�n en el sitio web del ISC: \hlink{http://www.isc.org/index.pl?/sw/bind/bind9.php} , en especial muy interesante la guia del administrador de bind 9 en \hlink{http://www.nominum.com/content/documents/bind9arm.pdf}.
+
+\section{Instalaci�n}
+
+Se descarga de \hlink{ftp://ftp.isc.org/isc/} 
+
+\section{Configuraci�n B�sica}
+
+El archivo con la configuraci�n de los dominios es /etc/bind/named.conf y la configuraci�n que vamos a poner de ejemplo es bastante b�sica:
+
+\jump
+\begin{rbox}[label=named.conf]
+// Clave para actualizaciones tipo dyndns
+include "/etc/bind/dyndns-keyfile";
+
+// Listas de acceso
+
+acl local{
+	myipnetwork/24;
+	localhost/32;
+	};
+
+acl slaves{
+	ip.slave.dns1/32;
+	ip.slave.dns2/32;
+// Ad Infinitun ...
+	};
+
+acl dhcp3{
+	ip.server.dhcp3/32;
+	};
+
+
+// Controlando el registro de eventos
+logging {
+        category lame-servers { null; };
+        category cname { null; };
+};
+
+// El dominio raiz, este archivo contiene la lista de servidores raices, se
+// puede actualizar con el comando dig:
+zone "." {
+        type hint;
+        file "/etc/bind/db.root";
+};
+
+// Sera siempre el dominio autorizado para localhost
+
+zone "localhost" {
+        type master;
+        file "/etc/bind/db.local";
+};
+
+zone "127.in-addr.arpa" {
+        type master;
+        file "/etc/bind/db.127";
+};
+
+zone "0.in-addr.arpa" {
+        type master;
+        file "/etc/bind/db.0";
+};
+
+zone "255.in-addr.arpa" {
+        type master;
+        file "/etc/bind/db.255";
+};
+
+zone "chaosdimension.org" {
+// Estamos en el servidor maestro
+	type master;
+// LIsta de acceso al dominio
+// Quienes pueden preguntar
+        allow-query {local; };
+// Quienes pueden hacer transferencias (esclavos)
+	allow-transfer {slaves;};
+// Quienes pueden hacer modificaciones de informaci�n
+	allow-update   {dhcp3;};        
+// Notificaremos los cambios
+	notify yes;
+	file "/etc/bind/dominios/chaosdimension.org.dns";
+};
+\end{rbox}
+\jump
+\begin{rbox}[label=/etc/bind/dyndns-keyfile]
+        key getip {
+                algorithm hmac-md5;
+                secret "7YUVBA4v/5I=";
+        };
+\end{rbox}
+\jump
+\begin{rbox}[label=dominios/chaosdimension.org.dns]
+$TTL 86400
+;
+; Zone file for chaosdimension.org
+;
+; The full zone file
+;
+@       IN      SOA     chaosdimension.org hostmaster.chaosdimension.org. (
+                        2005060901        ; serial, todays date + todays serial ##
+                          8H              ; refresh, seconds
+                          2H              ; retry, seconds
+                          2W              ; expire, seconds
+                          1D )            ; minimum, seconds
+;
+                NS      ns1.chaosdimension.org.        ; Inet Address of name server
+                NS      ns2.chaosdimension.org.
+                MX      10 mx.chaosdimension.org.     ; Primary Mail Exchanger
+;
+
+$ORIGIN chaosdimension.org.
+sistemas        IN      A       192.168.0.155
+ldap            IN      A       192.168.1.1
+
+server1         IN      A       192.168.1.2
+server2         IN      A       192.168.1.3
+server3         IN      A       192.168.1.4
+
+
+krb             IN      A       192.168.1.1
+kdc             IN      A       192.168.1.1
+kadmin          IN      A       192.168.1.1
+kpasswd         IN      A       192.168.1.1
+
+ns1             IN      A       192.168.1.1
+ns2             IN      A       192.168.1.2
+
+@               IN      A       192.168.1.1
+
+\end{rbox}
+\jump
+
+
+\section{Una configuraci�n avanzada}
+
+\subsection{DHCP-ddns}
+
+Si queremos actualizaci�n automatica desde los servidores DHCP, tendremos que cambiar cosas en nuestra configuraci�n, entre otras cosas muy importantes permisos, en la configuraci�n anterior se indica la lista de acceso dhcp3 para el acceso de actualizaci�n (update) desde el servidor DHCP.
+
+\subsection{SDB}
+
+SDB (BIND 9 Simplified Database Interface / Interface simplificado a la base de datos de Bind 9) es una base de datos en memoria de los contenidos de la configuraci�n de bind9, este sistema es expansible a otros sistemas de bases de datos, con los cuales se puede manipular la informaci�n en Bind 9.
+
+\subsection{DYNDNS}
+
+DYNDNS es un protocolo de actualizaci�n de zonas DNS, usado tambien en bind 8 proporciona un sistema ideal para la actualizaci�n de servidores DNS sin tener que usar SDB, la actualizaci�n se realizara a traves del comando nsupdate, se necesita una clave para las actualizaciones que sera usada por este comando.
+
+En la configuraci�n hemos a�adido un archivo que contine la clave de configuraci�n, desde nsupdate podremos usar la misma clave y conseguir las actualizaciones, tenemos a�adir o borrar direcciones:
+
+\jump
+\begin{rbox}[label=A�adiendo registro DNS]
+# echo "update add nombre.chaosdimension.org 300 A direcci�n.ip"|/usr/sbin/nsupdate -k /home/keys/keys:getip.
+\end{rbox}
+\jump
+\begin{rbox}[label=Eliminando registro DNS]
+# echo "update delete nombre.chaosdimension.org"|/usr/sbin/nsupdate -k /home/keys/keys:getip.
+\end{rbox}
+\jump
+
+\subsection{DNSSEC}
+
+En el ejemplo anterior vemos un uso de dnssec, una infraestructura para la seguridad de bind, en este caso sencillo explicaremos la creacion tanto de dyndns-keyfile como la generacion de las claves que habra debajo del directorio /home/keys/keys, primero vamos al directorio y ejecutamos:
+\jump
+\begin{rbox}
+# dnssec-keygen -a HMAC-MD5 -b 64 -n zone getip
+Kgetip.+157+19720
+\end{rbox}
+\jump
+
+Tendremos ahora dos archivo es ese directorio: Kgetip.+157+05353.key y Kgetip.+157+05353.private, del primero cogeremos la clave:
+\jump
+\begin{rbox}
+# cat Kgetip.+157+05353.key
+getip. IN KEY 256 3 157 7YUVBA4v/5I=
+\end{rbox}
+\jump
+
+El valor \verb|7YUVBA4v/5I=| es que pondremos en el archivo dyndns-keyfile descrito anteriormente.
+
+
+\subsection{Usando ldap2dns para sustituir al servidor Bind}
+
+\section{El servidor Pdns}
+
+\subsection{Usando Pdns-ldap como servidor de dominio}
+
+
+\section{Configurar el dns para los dominios y servidores Kerberos}
+
+\label{dns_kerberos}
+\subsection{Bind9}
+
+\jump
+\begin{rbox}
+_kerberos               IN      TXT     "CHAOSDIMENSION.ORG"
+_kerberos._tcp          IN      SRV     0       0       88      krb.chaosdimension.org.
+_kerberos._udp          IN      SRV     0       0       88      krb.chaosdimension.org.
+_kerberos-master._udp   IN      SRV     0       0       88      krb.chaosdimension.org.
+_kerberos-adm._tcp      IN      SRV     0       0       749     krb.chaosdimension.org.
+_kpasswd._udp           IN      SRV     0       0       464     krb.chaosdimension.org.
+
+_ldap._tcp.chaosdimension.org    IN        SRV     0       0       389     ldap.chaosdimension.org
+\end{rbox}
+\jump
+
+\subsection{Pdns}
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_fileserver.tex b/gosa-core/doc/admin/es/manual_gosa_es_fileserver.tex
new file mode 100644
index 0000000..9f05473
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_fileserver.tex
@@ -0,0 +1,11 @@
+\chapter{Servidores de archivos - Samba}
+\section{Introducci�n}
+\section{Protocolos}
+\subsection{NETBIOS}
+\subsection{CIFS}
+\section{Instalaci�n}
+\subsection{Varios Servidores en una unica maquina}
+\section{Configuraci�n}
+\section{Perfiles Movibles}
+\section{}
+\section{}
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_ftp.tex b/gosa-core/doc/admin/es/manual_gosa_es_ftp.tex
new file mode 100644
index 0000000..3033e89
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_ftp.tex
@@ -0,0 +1 @@
+\chapter{Servidores de FTP - PureFtpd}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_gw.tex b/gosa-core/doc/admin/es/manual_gosa_es_gw.tex
new file mode 100644
index 0000000..fb764e7
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_gw.tex
@@ -0,0 +1 @@
+\chapter{Servicios de trabajo en grupo}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_im.tex b/gosa-core/doc/admin/es/manual_gosa_es_im.tex
new file mode 100644
index 0000000..5c4e08a
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_im.tex
@@ -0,0 +1 @@
+\chapter{Servidores de mensajeria instantanea - Jabber}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_kerberos.tex b/gosa-core/doc/admin/es/manual_gosa_es_kerberos.tex
new file mode 100644
index 0000000..cc59a56
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_kerberos.tex
@@ -0,0 +1,693 @@
+\chapter{Servidor Horario de Red}
+\section{El protocolo NTP}
+
+NTP(Network Time Protocol) es el protocolo estandar de sincronizaci�n de la hora en equipos de una misma red.
+
+El servidor devuelve la Hora UTC (Horario de Greenwich u horario universal), con lo cual hay que modificar este horario para los paises en que estemos y su uso horario.
+
+Amplia documentaci�n puede ser encontrada en \hlink{http://www.ntp.org/} y servidores ntp p�blicos en \hlink{http://pool.ntp.bitic.net/} y \hlink{http://www.eecis.udel.edu/~mills/ntp/servers.html}.
+
+Sigue los siguientes RFC: RFC 778, RFC 891, RFC 956, RFC 958, y RFC 1305.
+
+El servidor NTP y el cliente correspondiente ser�n necesarios para su utilizaci�n con Kerberos, ya que este protocolo de autentificaci�n necesita gran precisi�n horaria.
+
+
+\section{NTP-server}
+
+\subsection{Instalaci�n}
+
+Es el servidor oficial, que puede ser descargado de \hlink{http://ntp.isc.org/bin/view/Main/SoftwareDownloads}, una vez descargado y descomprimido en /usr/src/ntp-4.X.X haremos:
+
+\jump
+\begin{rbox}
+# cd build-refclock && ../configure --prefix=/usr \
+	--enable-all-clocks --enable-parse-clocks --enable-SHM \
+	--disable-debugging --sysconfdir=/var/lib/ntp \
+	--cache-file=../config.cache --disable-errorcache \
+	--enable-linuxcaps
+# make
+# make install
+\end{rbox}
+\jump
+
+\subsection{Configuraci�n}
+
+La configuraci�n se guarda en /etc/ntp.conf y esta es una configuraci�n b�sica:
+
+\jump
+\begin{rbox}
+# Donde guardamos los registros.
+logfile /var/log/ntpd
+
+# Indica la direcci�n del archivo de frecuencia.
+driftfile /var/lib/ntp/ntp.drift
+
+# Directorio donde se volcar�n estad�sticas
+statsdir /var/log/ntpstats/
+
+# Mas de estad�sticas
+statistics loopstats peerstats clockstats
+filegen loopstats file loopstats type day enable
+filegen peerstats file peerstats type day enable
+filegen clockstats file clockstats type day enable
+
+# Usaremos pool.ntp.org ya que redirecciona a gran cantidad
+# de servidores ntp publicos
+server pool.ntp.org
+
+# Restricciones de acceso
+restrict your.lan kod notrap nomodify nopeer noquery
+restrict 127.0.0.1 nomodify
+restric default ignore
+
+# Para proveer de hora a la subred
+broadcast your.subnet.255
+
+\end{rbox}
+\jump
+
+ntp-server soporta muchos mas par�metros de configuraci�n como autentificaci�n, certificados, monitorizaci�n, etc. Que se salen de las necesidades de este manual.
+
+\section{Chrony}
+
+\subsection{Instalaci�n}
+
+Chrony es otro servidor horario mas ligero que el anterior y tambien ampliamente utilizado, lo descargaremos de \hlink{http://chrony.sunsite.dk/download.php} y como hacemos con todos los paquetes lo ponemos en /usr/src:
+
+\jump
+\begin{rbox}
+# cd /usr/src/chrony-
+# ./configure --prefix='/usr'
+# make
+# make install
+\end{rbox}
+\jump
+
+Mas documentaci�n la encontraremos en \hlink{http://chrony.sunsite.dk/guide/chrony.html} .
+
+\subsection{Configuraci�n}
+
+El archivo de configuraci�n b�sico es /etc/chrony/chrony.conf y ser�a como:
+
+\jump
+\begin{rbox}
+# See www.pool.ntp.org for an explanation of these servers.  Please
+# consider joining the project if possible.  If you can't or don't want to
+# use these servers I suggest that you try your ISP's nameservers.  We mark
+# the servers 'offline' so that chronyd won't try to connect when the link
+# is down.  Scripts in /etc/ppp/ip-up.d and /etc/ppp/ip-down.d use chronyc
+# commands to switch it on when the link comes up and off when it goes
+# down.  If you have an always-on connection such as cable omit the
+# 'offline' directive and chronyd will default to online.
+
+# Configuraci�n para pool.net.org, al igual que en ntp-server, en este caso 
+# usaremos tres intentos por si nuestra primera petici�n da con un servidor offline.
+
+server pool.ntp.org minpoll 8
+server pool.ntp.org minpoll 8
+server pool.ntp.org minpoll 8
+
+# Clave del administrador,
+
+keyfile /etc/chrony/chrony.keys
+
+# Clave para el ejecutable (la primera del anterior)
+
+commandkey 1
+
+# Fichero de frecuencias
+
+driftfile /var/lib/chrony/chrony.drift
+
+# Registro del servidor
+
+log tracking measurements statistics
+logdir /var/log/chrony
+
+# Stop bad estimates upsetting machine clock.
+
+maxupdateskew 100.0
+
+# Volcar las mediciones al cerrar el servidor
+
+dumponexit
+
+# Y donde:
+
+dumpdir /var/lib/chrony
+
+# Let computer be a server when it is unsynchronised.
+
+local stratum 10
+
+# Clientes permitidos
+
+allow your.subnet
+
+# Envia un registro si tiene que actualizar hora de mas de x segs:
+
+logchange 0.5
+
+# Idem pero enviando un correo
+# if chronyd applies a correction exceeding a particular threshold to the
+# system clock.
+
+mailonchange root at your.domain 0.5
+
+\end{rbox}
+\jump
+
+\section{ntpdate}
+
+\subsection{Instalaci�n y Funcionamiento}
+
+ntpdate es un cliente que viene con ntp-server, se instalara al mismo tiempo que ntp-server, su funcionamiento b�sico es muy sencillo, aunque soporte autentificaci�n, en este caso supondremos que el cliente se ejecuta en la maquina a traves de un sistema peri�dico (cron):
+
+\jump
+\begin{rbox}
+# /usr/sbin/ntpdate your.ntp.server
+\end{rbox}
+\jump
+
+\section{�C�mo uso pool.ntp.org?}
+El fichero de frecuencias deberia quedar as�:
+
+\jump
+\begin{rbox}
+server pool.ntp.org
+server pool.ntp.org
+server pool.ntp.org
+\end{rbox}
+\jump
+
+�Sencillo, no?
+
+\chapter{Servicios de seguridad - Kerberos}
+
+\section{Seguridad e identificaci�n}
+�Qui�n se conecta al servidor?\\
+�Puedo estar seguro de que se puede confiar en el cliente, y el cliente en el servidor?
+
+Esto es solo un peque�o resumen, para mas documentaci�n vease Criptograf�a y Seguridad en Computadores\cite{cripto1} en espa�ol.
+
+Los rfc mas interesantes son:
+
+\jump
+\begin{itemize}
+\item The Kerberos Network Authentication Service (V5),\cite{1510}
+\item Encryption and Checksum Specifications for Kerberos 5,\cite{3961}
+\item Advanced Encryption Standard (AES) Encryption for Kerberos 5,\cite{3961}
+\end{itemize}
+
+\subsection{Caso 1: Las contrase�as van en texto plano}
+Est�n ah�, todo aquel que vea el tr�fico de la red las ver�.
+Solo es factible si se est�n usando canales que se consideren seguros (SSL,ipsec,etc).
+
+\subsection{El problema del hombre de enmedio}
+Si alguien ve tu usuario y tu contrase�a puede hacer algo peor que simplemente ver que haces, puede suplantarte.
+
+El hombre de enmedio (man in the middle) es un sistema que esta entre el cliente y el servidor que coge las peticiones del cliente, las manipula y las envia al servidor, por supuesto tambien puede manipular lo que viene del servidor.
+
+\subsection{Caso 2: Las contrase�as tienen codificaci�n simetrica}
+
+\begin{enumerate}
+\item Mejora mucho la seguridad, cuanto mejor sea la encriptaci�n sera mas seguro.
+\item A�n as� es problem�tico y deberia usarse bajo canales seguros.
+\item �Como enviamos la clave con la que encriptamos la contrase�a?
+\item Si esta clave cae, se producira una situaci�n como la del envio en texto plano, y volvemos a estar en situaci�n de que un sistema intermedio tome nuestra personalidad.
+\item Se considera segura a partir de 128bits de longitud.
+\item No autentifica quien envio el mensaje.
+\end{enumerate}
+
+\subsection{Caso 3: Cifrado por bloques (Hashes)}
+
+\begin{enumerate}
+\item Las contrase�as se codifican de tal manera que no se puede volver a conseguir la contrase�a por otro metodo que no sea la fuerza bruta.
+\item Es menos problem�tico, pero deberia usarse solo bajo canales seguros.
+\item Se env�an de esta manera por la red, cualquiera puede identificar que es una contrase�a e intentar romper por fuerza bruta la contrase�a.
+\item Sigue siendo sensible al problema del robo de identidad, ya que no autentifica quien envio el mensaje.
+\item Se puede mejorar usando tecnicas de desafio, enviando antes de pedir la clave un codigo al usuario con el que mejorar la seguridad del c�digo resultante.
+\end{enumerate}
+
+\subsection{Caso 4: Cifrado Asimetrico, Certificados SSL}
+\begin{enumerate}
+\item Se dividen en dos partes: la privada, aquella con la que codificamos, y la publica, que es aquella con la que decodifican los mensajes los clientes.
+\item Necesita logitudes de clave muy largas para ser seguros (>1024bits) y mucho mas tiempo de computaci�n que los cifrados simetricos.
+\item En la pr�ctica se utilizan para el envio de la clave y despues los mensaje se envian con codificaci�n simetrica.
+\item Es mas resistente a sistemas intermedios, ya que este no puede acceder a la clave privada y por lo tanto no puede codificar mensajes.
+\end{enumerate}
+
+
+\subsection{Caso 5: Kerberos para identificaci�n}
+\begin{enumerate}
+\item El protocolo supone que la red es insegura y que hay sistemas intermedios que pueden escuchar.
+\item Los usuarios y servicios (principales) deben autentificarse ante un tercero, el servidor kerberos, el cual es aceptado como autentico.
+\item Usa cifrado simetrico convirtiendo el conjunto en una red segura.
+\end{enumerate}
+
+
+\section{El protocolo Kerberos}
+
+\subsection{El servidor Kerberos}
+
+El servidor kerberos no sirve un unico servicio, sino tres:
+
+\jump
+\begin{itemize}
+\item AS = Servidor de autentificaci�n.
+\item TGS = Servidor de Tickets.
+\item SS = Servidor de servicios.
+\end{itemize}
+
+\subsection{Clientes y Servidores}
+
+El cliente autentifica contra el AS, despues demuestra al TGS que esta autorizado para recibir el ticket para el servicio que quiere usar, y por �ltimo demuestra ante el SS que esta autorizado para usar el servicio.
+
+\subsection{Que es un ticket y como funciona Kerberos}
+
+\begin{enumerate}
+\item[1.-] Un usuario introduce una clave y contrase�a en el cliente.
+\item[2.-] El Cliente usa un hash sobre la contrase�a y la convierte en la clave secreta del cliente.
+\item[3.-] El cliente env�a un mensaje al AS pidiendo servicio para el cliente.
+\item[4.-] El AS comprueba si el usuario existe en la base de datos. Si existe le envia dos mensajes al cliente.\\
+El mensaje A: Tiene una clave de sesi�n del TGS codificada usando la clave secreta del usuario.\\
+El mensaje B: (TGT)Ticket-Granting Ticket. Este incluye el identificador del cliente, la direcci�n de red es este, un periodo de valided, y la clave de sesi�n del TGS, todo codificado usando la clave secreta del TGS.
+\item[5.-] El cliente recibe los mensajes A y B, con su clave secreta decodifica el mensaje A y coge la clave de sesi�n del TGS, con esta podra comunicarse con el TGS. Se observa que el cliente no puede decodificar el mensaje B al no tener la clave secreta del TGS.
+\item[6.-] Cuando el cliente quiere usar alg�n servicio, envia los siguientes mensajes al TGS:\\
+Mensaje C: Compuesto por el TGT del mensaje B y el identificador de petici�n de servicio.\\
+Mensaje D: Autentificador (El cual est� compuesto por el identificador del cliente y una marca horaria - timestamp -) codificado con la clave de sesi�n del TGS.
+\item[7.-] Al recibir los dos mensajes, el TGS decodifica el autentificador usando la clave de sesi�n del usuario y envia los siguientes mensajes al cliente:\\
+Mensaje E: Ticket Cliente Servidor, que contiene el identificador del cliente, su direcci�n de red, un periodo de valided, y la clave de sesi�n del TGS, codificado usando la clave secreta del servidor.\\
+Mensaje F: Clave de sesi�n Cliente / Servidor codificada con la clave de sesi�n del TGS del cliente.
+\item[8.-] Una vez recibidos desde el TGS los mensajes, el cliente tiene informaci�n suficiente para autentificarse ante el SS. El cliente se conectara al SS y le enviara los siguientes mensajes:\\
+Mensaje G: El ticket de cliente / servidor codificado con la clave secreta del servidor. (Mensaje E).\\
+Mensaje H: Un nuevo autentificador que contiene el identificador del cliente, una marca horaria y que esta codificado usando la clave de sesi�n cliente / servidor.
+\item[9.-] El SS decodifica el Mensaje G usando su propia clave secreta y usando la clave Cliente/TGS en el mensaje F consigue la clave de sesion cliente/servidor, entonces le enviara el siguiente mensaje al cliente para confirmar su identidad:\\
+Mensaje I: La marca horaria del Autentificador mas 1, codificado usando la clave de sesi�n cliente/servidor.
+\item[10.-] El cliente decodifica el mensaje de confirmaci�n y comprueba si la marca horaria ha sido actualizada correctamente. Si todo es correcto, el cliente confiara en el servidor y puede comenzar a hacer peticiones al servidor.
+\item[11.-] El servidor responde a las peticiones de ese cliente que ha sido autentificado.
+
+\end{enumerate}
+
+\section{MIT Kerberos}
+
+El Intituto de Tecnologias de Massachusetts (MIT, Massachusetts Institute of Technology) junto con DEC e IBM comenzaron el proyecto Athena para computaci�n distribuida. Parte de este proyecto es el protocolo de autentificaci�n Kerberos. El proyecto comenzo su funcionamiento en 1983.
+
+La versi�n 4 del protocolo salio en 1980 para el proyecto Athena, y en 1993 salio la versi�n 5\cite{1510} que superaba las limitaciones y problemas de su predecesor.
+
+MIT Kerberos es distribuido libremente bajo licencia tipo BSD.
+
+
+\subsection{Instalaci�n}
+\label{down_kerberos_mit}
+
+Antes de nada, nos bajaremos una librer�a de las que depende MIT kerberos:
+
+\jump
+\begin{itemize}
+\item[e2fsprogs]
+Se puede descargar de \htmladdnormallink{http://e2fsprogs.sourceforge.net}{http://e2fsprogs.sourceforge.net} para acceso al sistema de archivos y para las librer�as libss y libcomerr2.
+\end{itemize}
+\jump
+
+Las fuentes de MIT Kerberos se pueden descargar de \htmladdnormallink{MIT Kerberos V}{http://web.mit.edu/kerberos/www}, como haremos con todas las fuentes las descomprimiremos en /usr/src y entraremos en /usr/src/krb5-1.X.X y jecutamos \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/es/configure_krb5.sh} con las siguientes opciones:
+
+\jump
+\begin{tabular}{|ll|}\hline
+--prefix=/usr & $\rightarrow$ Donde vamos a instalarlo\\
+--mandir=/usr/share/man & $\rightarrow$ Donde van los manuales\\
+--localstatedir=/etc & \\
+--enable-shared & $\rightarrow$ Librerias dinamicas, necesarias\\
+& $\rightarrow$ para compilar otros programas\\
+--with-system-et &  $\rightarrow$ Usara la libreria estandar de errores\\
+& $\rightarrow$ , libcomerr2, para com\_err.so y compile\_et\\
+--with-system-ss & Necesario para que use libss2, una libreria\\
+& $\rightarrow$ para la entrada de linea de comandos.\\
+--without-tcl & $\rightarrow$ No compilamos el soporte tcl.\\
+--enable-dns-for-kdc & $\rightarrow$ Busquedas dns para el kdc\\
+\hline \end{tabular}
+\jump
+
+Una vez configurado, hacemos:
+
+\jump
+\begin{tabular}{|l|}\hline 
+\#make \&\& make install\\
+\hline \end{tabular}
+\jump
+
+\subsection{Configuraci�n y funcionamiento}
+
+\subsubsection{Iniciar un dominio}
+Antes de iniciar un dominio debemos estar seguros de que la configuraci�n DNS es correcta \ref{dns_kerberos}.
+
+
+El dominio que vamos a crear es CHAOSDIMENSION.ORG, para ello una vez instalado el programa haremos:
+
+\subsubsection{A�adir usuarios y servicios}
+
+\subsection{Replicaci�n - kprop}
+
+\subsection{Ventajas y desventajas}
+
+
+
+\section{El servidor Heimdal Kerberos}
+
+Por culpa de las regulaciones de exportaci�n de los Estados Unidos que prohibian la salida del c�digo del MIT Kerberos porque usaba el algoritmo de encriptaci�n DES con logitud de clave de 56 bit. Se comenzo una implementaci�n nueva en KTH, suecia: Heimdal.
+
+En el 2000 se elimino las restricciones a la exportaci�n y se pudo mejorar la compatibilidad entre ambos servidores.
+
+Aunque GOsa puede usar cualquiera de las dos versiones de Heimdal, desde este manual se recomienda Heimdal, ya que es thread safe (no tiene problemas con los hilos), tiene mejor rendimiento y es el servidor kerberos elegido por el grupo de desarrollo de Samba para su proxima versi�n 4.
+
+\subsection{Instalaci�n}
+\label{down_kerberos_heimdal}
+
+Antes de nada, nos bajaremos una librer�a de las que depende Heimdal kerberos:
+\begin{itemize}
+\item[readline]
+Se puede descargar de \htmladdnormallink{http://cnswww.cns.cwru.edu/~chet/readline/rltop.html}{http://cnswww.cns.cwru.edu/~chet/readline/rltop.html}. Es una librer�a que controla el acceso a la linea de comandos.
+\end{itemize}
+
+
+\noindent Heimdal Kerberos se puede descargar de \htmladdnormallink{Heimdal Kerberos}{http://www.pdc.kth.se/heimdal}, las descomprimiremos en /usr/src y entraremos en /usr/src/heimdal-0.6.X.
+
+Ejecutamos  \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/es/configure_heimdal.sh} con las siguientes opciones:
+
+\jump
+\begin{tabular}{|ll|}\hline
+--prefix=/usr & $\rightarrow$ Donde vamos a instalarlo\\
+--mandir=/usr/share/man & $\rightarrow$ Donde van los manuales\\
+--infodir=/usr/share/info & $\rightarrow$  Donde van los info\\
+--libexecdir=/usr/sbin & $\rightarrow$ Donde van los ejecutables de aministrador\\
+--with-roken=/usr & $\rightarrow$ Donde van las librerias roken\\
+--enable-shared & $\rightarrow$  Librerias dinamicas, necesarias\\
+& $\rightarrow$ para compilar otros programas\\
+--with-krb4 & $\rightarrow$ Compilar con la versi�n antigua del protocolo\\
+--with-openldap & $\rightarrow$ Soporte openldap \ref{down_ldap}\\
+\hline \end{tabular}
+\jump
+
+Una vez configurado, hacemos:
+
+\jump
+\bbox
+\#make \&\& make install\\
+\ebox
+\jump
+
+\subsection{Configuraci�n y funcionamiento}
+
+La configuraci�n de Heimdal Kerberos se guarda principalmente en estos archivos:\\
+\begin{tabular}{|l|l|}\hline 
+/etc/krb5.conf & Configuraci�n de los dominios Kerberos y de otros parametros.\\
+ & \\
+/var/lib/heimdal-kdc/kdc.conf & Configuraci�n de los parametros del servidor kdc.\\
+& \\
+/var/lib/heimdal-kdc/kadmind.acl & Configuraci�n de acceso de usuarios y servicios\\
+ &  a la base de datos de Kerberos desde acceso remoto al administrador.\\
+& \\
+/var/lib/heimdal-kdc/m-key & Clave secreta del servidor Kerberos.\\
+& \\
+/etc/krb5.keytab & Aqui se guardaran las claves de maquinas y servicios.\\
+& \\
+\hline \end{tabular}
+\jump
+
+Los ejecutables que normalmente vamos a usar son:\\
+\begin{tabular}{|l|l|}\hline 
+kadmin & Aplicaci�n para la administraci�n de los dominios y de los keytab.\\
+ &  Para usarlo en modo local se usara -l.\\
+& \\
+ktutil & Utilidad mas espec�fica para los keytab.\\
+& \\
+kinit & Aplicaci�n para iniciar tickets, sirve para probar el servidor.\\
+& \\
+kpasswd & Utilidad para cambiar las contrase�as de usuarios.\\
+& \\
+\hline \end{tabular}
+\jump
+
+\subsubsection{Iniciar un dominio}
+Antes de iniciar un dominio debemos estar seguros de que la configuraci�n DNS es correcta \ref{dns_kerberos}.
+
+\label{heimdal_conf}
+
+El dominio que vamos a crear es CHAOSDIMENSION.ORG, para ello una vez instalado y antes de iniciar heimdal editaremos /etc/krb5.conf:
+
+\jump
+\begin{center}
+\begin{tabular}{|l|l|}\hline 
+\verb|[libdefaults]| & $\rightarrow$ Valores por defecto de los dominios\\
+\verb|    default_realm = CHAOSDIMENSION.ORG| & $\rightarrow$ Dominio por defecto \\
+& del servidor si no se pide el dominio\\
+\verb|    kdc_timesync = true| & $\rightarrow$ Intenta compensar la diferencias de \\
+& tiempos entre clientes y servidores\\
+\verb|    clockskew = 60| & $\rightarrow$ M�xima diferencia de segundos cuando se \\
+& comparan tiempos\\
+\verb|    dns_lookup_kdc = true| & $\rightarrow$ Usar DNS SRV para busquedas \\
+& servidores KDC.\\
+\verb|    dns_lookup_realm = true| & $\rightarrow$ Usar DNS TXT para relacionar \\
+& dominios DNS \\
+& con dominios Kerberos.\\
+\verb|    max_retries = 1| & $\rightarrow$ Numero de intentos en la autentificaci�n.\\
+\verb|    krb4_get_tickets = false| & $\rightarrow$ No Aceptamos tickets de Kerberos v4.\\
+& \\
+\verb|[realms]| & $\rightarrow$ Definimos los dominios\\
+\verb|     CHAOSDIMENSION.ORG = {| & $\rightarrow$ \\
+\verb|        kdc = kdc.chaosdimension.org| & $\rightarrow$ Donde est� el KDC.\\
+\verb|        admin_server = kadmin.chaosdimension.org| & $\rightarrow$ Dond� estar� el Kadmind.\\
+\verb|        kpasswd_server = kpasswd.chaosdimension.org| & $\rightarrow$ Donde est� el kpasswd.\\
+\verb|     }| & \\
+& \\
+\verb|[domain_realm]| & $\rightarrow$ Mapeo de Dominios.\\
+\verb|    .chaosdimension.org = CHAOSDIMENSION.ORG| & \\
+\verb|    chaosdimension.org = CHAOSDIMENSION.ORG| & \\
+ & \\
+\verb|[logging]| & $\rightarrow$ Configuraci�n de registro\\
+\verb|    kdc = FILE:/var/lib/heimdal-kdc/kdc.log| & \\
+\verb|    hpropd = FILE:/var/lib/heimdal-kdc/hpropd.log| & \\
+\verb|    ipropd = FILE:/var/lib/heimdal-kdc/ipropd.log| & \\
+\verb|    kpasswdd = FILE:/var/lib/heimdal-kdc/kpasswdd.log| & \\
+\verb|    kadmind = FILE:/var/lib/heimdal-kdc/kadmind.log| & \\
+\verb|    default = FILE:/var/log/heimdal-kdc.log| & \\
+\hline \end{tabular}
+\end{center}
+\jump
+
+Esta es la configuraci�n m�nima para hacer funcionar Heimdal Kerberos, la configuraci�n para GOsa es la indicada en heimdal sobre ldap \ref{heimdal_ldap}, ya que es la que permite mayor control y una replicaci�n mas comoda.
+
+
+El siguiente paso es crear la clave privada del servidor, para ello ejecutaremos el comando kstah:
+
+\bbox
+\verb|\#kstash|\\
+\verb|Master key: |\\
+\verb|Verifying password - Master key: |\\
+\ebox
+
+
+Iniciamos el dominio CHAOSDIMENSION.ORG:
+
+\bbox
+\verb|# kadmin -l|\\
+\verb|     kadmin> init CHAOSDIMENSION.ORG|\\
+\verb|     Realm max ticket life [unlimited]:|\\
+\verb|     Realm max renewable ticket life [unlimited]:|\\
+\ebox
+
+\subsubsection{A�adir usuarios y servicios}
+
+A�adir un usuario es sencillo, hacer en la consola de administraci�n (kadmin -l):
+
+\bbox
+\verb|     kadmin> add usuario|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\verb|     Password:|\\
+\verb|     Verifying password - Password:|\\
+\ebox
+
+Para comprobar si funciona:
+
+\bbox
+\verb|# kinit usuario at CHAOSDIMENSION.ORG|\\
+\verb|# klist|\\
+\ebox
+
+
+
+Para a�adir un servicio necesitamos a�adirlo como si fuera un usuario, en este caso la clave sera un valor al azar, ya que no necesita identificarse ante el servidor y por otro lado hay que guardar los datos en el keytab.
+
+Por ejemplo para configurar el servicio ldap tenemos:
+
+\bbox
+\verb|# kadmin -l|\\
+\verb|     kadmin> add --random-key ldap/my.host.name|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\verb|     Password:|\\
+\verb|     Verifying password - Password:|\\
+\ebox
+
+Si queremos aceptar todos los servicios de ese servidor tenemos:
+
+\bbox
+\verb|# kadmin -l|\\
+\verb|     kadmin> add --random-key host/my.host.name|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\verb|     Password:|\\
+\verb|     Verifying password - Password:|\\
+\ebox
+
+Guardamos entonces el servicio en el keytab.
+
+\bbox
+\verb|# kadmin -l|\\
+\verb|     kadmin> ext host/my.host.name|\\
+\verb|     kadmin> exit|\\
+\verb|# ktutil list|\\
+\verb|     Version  Type             Principal|\\
+\verb|          1   des-cbc-md5      host/my.host.name at CHAOSDIMENSION.ORG|\\
+\verb|          1   des-cbc-md4      host/my.host.name at CHAOSDIMENSION.ORG|\\
+\verb|          1   des-cbc-crc      host/my.host.name at CHAOSDIMENSION.ORG|\\
+\verb|          1   des3-cbc-sha1    host/my.host.name at CHAOSDIMENSION.ORG|\\
+\ebox
+
+\subsubsection{Administraci�n Remota}
+
+Para poder administrar de forma remota (lease que no este ejecutandose en la maquina donde estamos o que no seamos root de la maquina donde se est� administrando). usaremos kadmin sin la opci�n -l, en el servidor kerberos debemos tener configurado el usuario de administraci�n remota con los permisos que nosotros querramos. Esto se debe dejar claro en kadmind.acl, por ejemplo si queremos que el usuario admin desde la maquina admin.remote.host pueda tener todos los permisos en el dominio C [...]
+
+\bbox
+\verb|admin at CHAOSDIMENSION.ORG       all	*@CHAOSDIMENSION.ORG|\\
+\verb|admin at CHAOSDIMENSION.ORG       all	*/*@CHAOSDIMENSION.ORG|\\
+\ebox
+
+
+
+\subsection{Replicaci�n - hprop}
+
+Hprop es el servicio de replicaci�n que trae Heimdal Kerberos de serie. No es incremental, se basa en un dump de la base de datos y en la copia de este a los otros servidores.
+
+El servidor hpropd se ejecuta en los esclavos, y el cliente hprop se ejecuta a intervalos regulares en el servidor, cuando hprop es ejecutado intenta una conexi�n con el puerto 754/TCP del servidor, coge la base de datos del dominio y la envia en un formato que permite al servidor convertirla en la nueva base de datos del cliente.
+
+El servidor maestro debe tener configurado el usuario kadmin/hprop, ya que se crea al inicializar el dominio, si no es asi, haremos:
+
+\bbox
+\verb|# kadmin -l|\\
+\verb|     kadmin> add --random-key kadmin/hprop at CHAOSDIMENSION.ORG|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\ebox
+
+Necesitaremos un usuario administrador, en nuestro caso lo llamaremos admin y le daremos permisos para que tenga administraci�n remota:
+
+\bbox
+\verb|     kadmin> add admin at CHAOSDIMENSION.ORG|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\verb|     Password:|\\
+\verb|     Verifying password - Password:|\\
+\ebox
+
+Editamos el archivo kadmind.acl y a�adimos el usuario administrador:
+
+\bbox
+\verb| admin at CHAOSDIMENSION.ORG        all           */*@CHAOSDIMENSION.ORG|\\
+\ebox
+
+Tanto en el maestro como en los servidores esclavos, con la configuraci�n dns apuntando como servidor de dominio al servidor maestro, haremos:
+
+\bbox
+\verb|# ktutil get -p admin at CHAOSDIMENSION.ORG hprop/esclavo.hostname at CHAOSDIMENSION|\\
+\verb|admin at CHAOSDIMENSION's Password:|\\
+\ebox
+
+Para hacer una replica del maestro, simplemente ejecutaremos hpropd en el esclavo y en el servidor ejecutaremos:
+
+\bbox
+\verb|# hprop --source=heimdal --v5-realm=CHAOSDIMENSION.ORG --encrypt \|\\
+\verb|    --master-key=/var/lib/heimdal-kdc/m-key esclavo.hostname|\\
+\ebox
+
+Para comprobar que la replicaci�n esta bien hecha haremos en el esclavo:
+
+\bbox
+\verb|# kadmin -l list *|\\
+\ebox
+
+
+La replicaci�n debe ser controlada desde el maestro, normalmente se ejecutara cada cierto tiempo dependiendo del tama�o de la base de datos. En el esclavo lo normal es que hpropd se ejecute a traves de inetd, aunque puede ejecutarse como demonio.
+
+\subsection{Replicaci�n incremental - iprop}
+
+Iprop es un servicio de replica incremental de la base de datos de Heimdal Kerberos, su idea es sencilla, es un log se van grabando las transacciones de la base de datos, cuando un cliente iprop se conecta se le envian las transacciones que este no haya ejecutado anteriormente.
+
+Necesitaremos un usuario administrador, en nuestro caso lo llamaremos admin y le daremos permisos para que tenga administraci�n remota:
+
+\bbox
+\verb|     kadmin> add admin at CHAOSDIMENSION.ORG|\\
+\verb|     Max ticket life [unlimited]:|\\
+\verb|     Max renewable life [unlimited]:|\\
+\verb|     Attributes []:|\\
+\verb|     Password:|\\
+\verb|     Verifying password - Password:|\\
+\ebox
+
+Editamos el archivo kadmind.acl y a�adimos el usuario administrador:
+
+\bbox
+\verb| admin at CHAOSDIMENSION.ORG        all           */*@CHAOSDIMENSION.ORG|\\
+\ebox
+
+Tanto en el maestro como en los servidores esclavos, con la configuraci�n dns apuntando como servidor de dominio al servidor maestro, haremos:
+
+\bbox
+\verb|# ktutil get -p admin at CHAOSDIMENSION.ORG iprop/esclavo.hostname at CHAOSDIMENSION|\\
+\verb|admin at CHAOSDIMENSION's Password:|\\
+\ebox
+
+Para hacer una replica del maestro, simplemente ejecutaremos \verb| #iprop-master &| en el servidor y en los servidor escalvos ejecutaremos:
+
+\bbox
+\verb|# iprop-slave maestro.hostname &|\\
+\ebox
+
+Para comprobar que la replicaci�n esta bien hecha haremos en el esclavo:
+
+\bbox
+\verb|# kadmin -l list *|\\
+\ebox
+
+Esta replicaci�n es incremental lo que significa que cada cambio en el servidor maestro es enviado automaticamente a los esclavos.
+
+\subsection{Heimdal sobre ldap}
+
+Vease en \ref{heimdal_ldap}
+
+\subsection{Ventajas y desventajas}
+
+Heimdal es un desarrollo con mucho futuro, mas aun cuando ha sido elegido como la implementaci�n que llevara el futuro samba4, es thread safe lo que significa menor probabilidad de fallos y mejor rendimiento para aplicaciones que tiren directamente de el, como openLdap o samba4.
+
+La replicacion iprop da numerosos problemas de estabilidad, asi que no es muy recomendada para replicaci�n.
+
+No tiene soporte de politicas de contrase�as, aunque se puede usar cracklib para la seguridad de las contrase�as, esto tiene que a�adirse mediante un parche o a traves de aplicaciones externas.
+
+\section{La configuraci�n de clientes MS Windows}
+
+
+
+\section{SASL}
+\label{down_sasl}
+
+\subsection{La configuraci�n de SASL}
+
+\subsection{Modulos para kerberos}
+
+
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_ldap.tex b/gosa-core/doc/admin/es/manual_gosa_es_ldap.tex
new file mode 100644
index 0000000..4b88a9e
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_ldap.tex
@@ -0,0 +1,1135 @@
+\chapter{openLDAP}
+\section{Introducci�n,�Que es LDAP?}
+\subsection{Servicios de Directorios, X.500}
+
+Un directorio es una base de datos especializada en busqueda de informaci�n basada en atributos.\\
+
+X.500|ISO 9594\cite{x500} es un est�ndar de ITU-S(International Telecommunication Union - Telecommunication Standardisation Burean), anteriormente conocido como CCITT, para solucionar el problema de directorios. Basado en los trabajos realizados con X.400 (un directorio para correo electr�nico) y los trabajos de ISO ( International Standards Organisation) y ECMA (European Computer Manufacturers Association).\\
+
+El X.501|ISO 9594 parte 2. define los modelos de como debe estar organizada la informaci�n, el modelo de informaci�n de usuario, el modelo de informaci�n administrativa y el servicio de directorio, que define como debe estar distribuida la informaci�n entre varios sistemas.\\
+
+En X.509|ISO 9594 parte 8. el est�ndar de autentificaci�n y seguridad usado para SSL.\\
+
+X.525|ISO 9594 parte 9. indica como debe ser la replicaci�n entre sistemas.\\
+
+En X.519|ISO 9594 parte 5. se definen los protocolos de comunicaciones, entre ellos el que mas nos importa que es DAP - El protocolo de acceso a directorios - que define que operaciones se pueden hacer con la conexi�n: bind, unbind, los objetos (entradas) y sus operaciones: a�adir, eliminar, modificar, buscar, listar, comparar, etc.\\
+
+DAP es un protocolo demasiado complejo para que se puedan hacer servidores y clientes para su uso para Internet, as� que se crea un protocolo mas c�modo de manejar estos directorios: LDAP.\\
+
+LDAP (Lightweight Directory Access Protocol / Protocolo de acceso a directorios ligero) es un protocolo pensado para actualizaci�n y busquedas de directorios orientados a Internet (TCP/IP).\\
+
+La ultima versi�n de LDAP es la 3 y es cubierta por los RFCs: 2251\cite{2251}, 2252\cite{2252}, 2253\cite{2253}, 2254\cite{2254}, 2255\cite{2255}, 2256\cite{2256} y 3377\cite{3377}.\\
+\newpage
+\subsection{Conceptos B�sicos de LDAP}
+
+\begin{itemize}
+\item[]Entrada\\ (Entry)\\
+Una entrada es una colecci�n de atributos a los que se identifica por su DN (nombre distinguido /  distinguished name).
+Un DN es �nico en todo el �rbol y por lo tanto identifica claramente la entrada a la que refiere. Como ejemplo: CN=Alex O=CHAOSDIMENSION C=ES identificar�a al objeto de nombre com�n Alex que esta en la organizaci�n CHAOSDIMENSION y en pa�s ES (Espa�a).\\
+
+Un RDN( nombre distinguido relativo / relative distinguished name) es parte del DN, de tal manera que concatenando los RDN dan como resultado el DN. Del ejemplo anterior CN=Alex seria un RDN.
+
+\item[]Clase de objeto\\(Object Class)\\
+Una clase es un atributo especial (ObjectClass) que define que atributos son requeridos y permitidos en una entrada. Los valores de las clases objetos est�n definidos en el esquema.
+Todas las entradas deben tener un atributo ObjectClass.
+No se permite a�adir atributos a las entradas que no permitidos por las definiciones de las clases de objetos de la entrada.
+
+\item[]Atributo\\(Attrib)\\
+Un atributo es un tipo con uno o mas valores asociados. 
+Se identifica por su OID ( identificador de objeto / object identifier).
+El tipo de atributo indica si puede haber mas de un valor de este atributo en una entrada, los valores que pueden tener y como se los puede buscar.
+
+\item[]Esquema\\(Schema)\\
+Un esquema es una colecci�n de definiciones de tipos de atributos, clases de objetos e informaci�n que el servidor usa para realizar las busquedas, introducir valores en un atributo, y permitir operaciones de a�adir o modificar.
+
+\item[]Filtro\\(Filter)\\
+Para realizar una busqueda debemos tener en cuenta varios par�metros importantes:
+
+\begin{list}{}{}
+\item[Base](baseObject)\\
+Un DN que sera a partir del cual realizaremos la busqueda.
+
+\item[Alcance](scope)\\
+Puede tener varios valores.\\- base: solo buscara en ese nivel base.\\- sub: har� busqueda recursiva por todo el �rbol a partir del nivel base.\\- one: descender� solo un nivel por debajo del nivel base.
+
+\item[Tama�o limite](sizelimit)\\
+Restringe el numero de entradas devueltas como resultado de una busqueda.
+
+\item[Tiempo limite](timelimit)\\
+Restringe el tiempo m�ximo de ejecuci�n de una busqueda.
+
+\item[filtro](filter)\\
+Es una cadena que defina las condiciones que deben ser completadas para encontrar una entrada.
+
+\end{list}
+
+Los filtros se pueden concatenar con 'and', 'or' y 'not' para crear filtros mas complejos.\\
+Por ejemplo un filtro con base O=CHAOSDIMENSION, C=ES, alcance base y filtro (CN=Alex) encontrar�a la entrada
+CN=Alex, O=CHAOSDIMENSION, C=ES.\\
+
+\end{itemize}
+\newpage
+\subsection{Servidores de LDAP}
+
+LDAP esta soportado por numerosos servidores siendo los mas conocidos Active Directory de Microsoft, eDirectory de Novell, Oracle Internet Directory de Oracle, iPlanet directory server de SUN y por �ltimo pero no menos importante openLDAP.
+
+En este manual se tratara el uso e instalaci�n de openLDAP, ya que esta soportado por pr�cticamente todas las distribuciones de linux y su licencia cumple el est�ndar openSource.
+
+Para mas informaci�n v�ase LDAP Linux HowTo\cite{llh}, Using LDAP\cite{ul}, openLDAP administrator Guide\cite{oag} y en espa�ol la parte relativa a LDAP del magnifico manual Ldap+Samba+Cups+Pykota\cite{lscp}. 
+
+\section{Instalaci�n}
+
+Las mayor�as de las distribuciones tienen paquetes de openLDAP. Como usar apt-get en debian, Urpmi en Mandrake, up2date en redhat o Yast2 en Suse sale fuera de este manual. As� que este manual explicara los necesario para la construcci�n desde las fuentes.
+
+\subsection{Descargando openLDAP}
+\label{down_ldap}
+Aunque realmente no son necesarios, hay varios paquetes que deber�an ser instalados antes de openLDAP ya que seguramente los necesitaremos.
+
+El primero de ellos es \textbf{openSSL} \ref{down_ssl}.
+
+El segundo es Servicios es \textbf{Kerberos v5} \ref{down_kerberos_mit} \ref{down_kerberos_heimdal}.
+
+Tambi�n ser� interesante tener instaladas las librer�as \textbf{Cyrus SASL} (Capa simple de seguridad y autentificaci�n de Cyrus / Cyrus's Simple Authentication and Security Layer).\\Que se pueden conseguir en \htmladdnormallink{http://asg.web.cmu.edu/sasl/}{http://asg.web.cmu.edu/sasl/sasl-library.html}, Cyrus SASL hace uso de openSSL y Kerberos/GSSAPI para autentificaci�n.
+
+Necesitaremos por ultimo una base de datos para openLDAP, en lo que ata�e a este manual esta ser� dada a trav�s de las librer�as de  \htmladdnormallink{\textbf{Sleepycat Software Berkeley DB}}{http://www.sleepycat.com/}, las necesitaremos tanto si usamos LDBM (Berkeley DB versi�n 3) o BDB (Berkeley DB versi�n 4). Tambi�n existen en la totalidad de distribuciones.
+
+Una vez obtenidas y compiladas las librer�as necesarias nos bajamos las \htmladdnormallink{fuentes de openLDAP}{http://www.openldap.org/software/download/} en /usr/src (por ejemplo) y 
+descomprimimos en ese directorio (por ejemplo con tar -zxvf openldap-2.X.XX.tgz).
+\newpage
+\subsection{Opciones de instalaci�n}
+
+La siguientes opciones son para openLDAP versi�n 2.2.xx que pueden diferir de las versiones 2.0.XX y 2.1.XX.
+
+Ejecutamos \htmladdnormallink{./configure}{http://warping.sourceforge.net/gosa/contrib/es/configure.sh} con las siguientes opciones.
+
+\begin{itemize}
+\item[](Directorios)\\
+\begin{tabular}{|ll|}\hline
+--prefix=/usr & \\
+--libexecdir='\${prefix}/lib' & \\
+--sysconfdir=/etc & \\
+--localstatedir=/var/run & \\
+--mandir='\${prefix}/share/man' & \\
+--with-subdir=ldap & \\
+\hline \end{tabular}
+
+\item[](Opciones B�sicas)\\
+\begin{tabular}{|ll|}\hline
+--enable-syslog & \\
+--enable-proctitle & \\
+--enable-ipv6 & $\rightarrow$Sockets IPv6\\
+--enable-local & $\rightarrow$Sockets Unix\\
+--with-cyrus-sasl & $\rightarrow$Autentificaci�n Cyrus SASL soportadas\\
+--with-threads & $\rightarrow$Soporte de Hilos de ejecuci�n\\
+--with-tls & $\rightarrow$Soporte TLS/SSL\\
+--enable-dynamic & $\rightarrow$Compilaci�n din�mica\\
+\hline \end{tabular}
+
+\item[](Opciones Slapd)\\
+\begin{tabular}{|ll|}\hline
+--enable-slapd & $\rightarrow$Compilar el servidor adem�s de las librer�as\\
+--enable-cleartext & $\rightarrow$Permite el env�o de contrase�as en claro\\
+--enable-crypt & $\rightarrow$Env�o de contrase�as encriptadas con DES.\\
+--enable-spasswd & $\rightarrow$Verificaci�n de contrase�as a trav�s de SASL\\
+--enable-modules & $\rightarrow$Soporte din�mico de m�dulos\\
+--enable-aci & $\rightarrow$Soporte de ACIs por objetos (Experimental)\\
+--enable-rewrite & $\rightarrow$Reescritura de DN en recuperaci�n de LDAP\\
+--enable-rlookups & $\rightarrow$Busqueda inversa del nombre del equipo cliente\\
+--enable-slp & $\rightarrow$Soporte de SLPv2\\
+--enable-wrappers & $\rightarrow$Soporte TCP wrappers\\
+\hline \end{tabular}
+
+\item[](Soporte)\\
+\begin{tabular}{|ll|}\hline
+--enable-bdb=yes & $\rightarrow$Soporte Berkeley versi�n 4\\
+--enable-dnssrv=mod & \\
+--enable-ldap=mod & $\rightarrow$Soporta otro servidor LDAP como base de datos\\
+--enable-ldbm=mod & \\
+--with-ldbm-api=berkeley & $\rightarrow$Soporte Berkeley versi�n 3\\
+--enable-meta=mod & $\rightarrow$Soporte metadirectorio\\
+--enable-monitor=mod & \\
+--enable-null=mod & \\
+--enable-passwd=mod & \\
+--enable-perl=mod & $\rightarrow$Soporte scripts en perl\\
+--enable-shell=mod & $\rightarrow$Soporte scripts en shell\\
+--enable-sql=mod & $\rightarrow$Soporte base de datos relacional\\
+\hline \end{tabular}
+\end{itemize}
+
+Posteriormente hacemos:\\
+\#make \&\& make install
+\newpage
+\section{Configuraci�n}
+\subsection{B�sica}
+
+\noindent La configuraci�n del servidor slapd de openLDAP se guarda en /etc/ldap/slapd.conf.\\
+
+\noindent Una \htmladdnormallink{configuraci�n b�sica}{http://warping.sourceforge.net/gosa/contrib/es/basic_slapd.conf} quedar�a as�:\\
+\\
+\begin{center}
+\begin{longtable}{|p{15cm}l|}\hline
+\caption{Configuraci�n B�sica de openLDAP}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n B�sica de openLDAP}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n B�sica de openLDAP (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\# Schema and objectClass definitions, configuraci�n b�sica & \\
+include         /etc/ldap/schema/core.schema & \\
+include         /etc/ldap/schema/cosine.schema & \\
+include         /etc/ldap/schema/inetorgperson.schema & \\
+include         /etc/ldap/schema/openldap.schema & \\
+include         /etc/ldap/schema/nis.schema & \\
+include         /etc/ldap/schema/misc.schema & \\
+ & \\
+\#Fuerza a las entradas a encontar eschemas para los ObjectClass & \\
+schemacheck             on & \\
+ & \\
+\# Password hash, tipo de encriptaci�n de la clave & \\
+\# Puede ser: \{SHA\}, \{MD5\}, \{MD4\}, \{CRYPT\}, \{CLEARTEXT\} & \\
+password-hash           \{CRYPT\} & \\
+ & \\
+\# Base de busqueda por defecto & \\
+defaultsearchbase       "dc=CHAOSDIMENSION,dc=ORG" & \\
+ & \\
+\#Utilizado por init scripts para parar e iniciar el servidor. & \\
+pidfile         /var/run/slapd.pid & \\
+ & \\
+\# Argumentos pasados al servidor. & \\
+argsfile        /var/run/slapd.args & \\
+ & \\
+\# Nivel de logs & \\
+loglevel        1024 & \\
+ & \\
+\# Donde y que m�dulos cargar & \\
+modulepath      /usr/lib/ldap & \\
+moduleload      back\_bdb \# Berkeley BD versi�n 4 & \\
+ & \\
+\#definiciones de la base de datos & \\
+database        bdb & \\
+ & \\
+\# La base del directorio & \\
+suffix          "dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\# Aqu� definimos al administrador del directorio y su clave & \\
+\# En este ejemplo es " tester"  & \\
+\# La clave se puede sacar con  & \\
+\# makepasswd --crypt --clearfrom fichero\_con\_nombre usuario & \\
+ & \\
+rootdn  \verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"|  & \\
+rootpw  \{crypt\}OuorOLd3VqvC2 & \\
+ & \\
+\# Que atributos indexamos para hacer busquedas & \\
+index   default                                                sub & \\
+index   uid,mail                                               eq & \\
+index   cn,sn,givenName,ou                                     pres,eq,sub & \\
+index   objectClass                                            pres,eq & \\
+ & \\
+\# Directorio donde se guarda la base de datos & \\
+directory       " /var/lib/ldap"  & \\
+ & \\
+\# Indicamos si deseamos guardar la fecha de la ultima modificaci�n & \\
+lastmod off & \\
+ & \\
+\#Acceso del administrador & \\
+access to * & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG" =wrscx| & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| =wrscx & \\
+        by * read & \\
+\end{longtable}
+\end{center}
+
+\newpage
+\subsection{Espec�fica para GOsa}
+
+GOsa a�ade varios esquemas para el control de ciertos servicios y caracter�sticas de los usuarios.\\
+
+Los esquemas necesarios para GOsa est�n en el paquete, en la seccion contrib, lo ideal ser� copiarlos todos a /etc/ldap/schema\\
+
+Una \htmladdnormallink{configuraci�n recomendada}{http://warping.sourceforge.net/gosa/contrib/es/gosa_slapd.conf} de /etc/ldap/slapd.conf es la siguiente:\\
+
+\begin{center}
+\begin{longtable}{|p{15cm}l|}\hline
+\caption{Configuraci�n Espec�fica para GOsa}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n Espec�fica para GOsa}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n Espec�fica para GOsa (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\# Schema and objectClass definitions, configuraci�n b�sica & \\
+include         /etc/ldap/schema/core.schema & \\
+include         /etc/ldap/schema/cosine.schema & \\
+include         /etc/ldap/schema/inetorgperson.schema & \\
+include         /etc/ldap/schema/openldap.schema & \\
+include         /etc/ldap/schema/nis.schema & \\
+include         /etc/ldap/schema/misc.schema & \\
+ & \\
+\# Estos esquemas deber�an estar presentes en GOsa. En el caso de samba3 & \\
+\# se deben cambiar samba.schema y gosa.schema por samba3.schema & \\
+\# y gosa+samba3.schema. & \\
+include		/etc/ldap/schema/samba3.schema & \\
+include		/etc/ldap/schema/pureftpd.schema & \\
+include		/etc/ldap/schema/gohard.schema & \\
+include		/etc/ldap/schema/gofon.schema & \\
+include		/etc/ldap/schema/goto.schema & \\
+include		/etc/ldap/schema/gosa+samba3.schema & \\
+include		/etc/ldap/schema/gofax.schema & \\
+include		/etc/ldap/schema/goserver.schema & \\
+ & \\
+\#Obliga al cumplimiento de los ObjectClass & \\
+schemacheck             on & \\
+ & \\
+\# Password hash, tipo de encriptaci�n de la clave & \\
+\# Puede ser: \{SHA\}, \{SMD5\}, \{MD4\}, \{CRYPT\}, \{CLEARTEXT\} & \\
+password-hash           \{CRYPT\} & \\
+ & \\
+\# Base de busqueda por defecto & \\
+defaultsearchbase       " dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\#Utilizado por init scripts para parar e iniciar el servidor. & \\
+pidfile         /var/run/slapd.pid & \\
+ & \\
+\# Argumentos pasados al servidor. & \\
+argsfile        /var/run/slapd.args & \\
+ & \\
+\# Nivel de logs & \\
+loglevel        1024 & \\
+ & \\
+\# Donde y que m�dulos cargar & \\
+modulepath      /usr/lib/ldap & \\
+moduleload      back\_bdb \# Berkeley BD versi�n 4& \\
+ & \\
+\# Algunos par�metros de rendimiento & \\
+threads		64 & \\
+concurrency		32 & \\
+conn\_max\_pending	100 & \\
+conn\_max\_pending\_auth	250 & \\
+reverse-lookup		off & \\
+sizelimit		1000 & \\
+timelimit		30 & \\
+idletimeout		30 & \\
+ & \\
+\# Limitaciones espec�ficas & \\
+limits	anonymous	size.soft=500 time.soft=5 & \\
+ & \\
+\# Definiciones de la base de datos & \\
+database        bdb & \\
+cachesize       5000 & \\
+checkpoint	512 720 & \\
+mode		0600 & \\
+ & \\
+\# La base del directorio & \\
+suffix          " dc=CHAOSDIMENSION,dc=ORG"  & \\
+ & \\
+\# Aqu� definimos al administrador del directorio y su clave & \\
+\# En este ejemplo es " tester"  & \\
+\# La clave se puede sacar con  & \\
+\# makepasswd --crypt --clearfrom fichero\_con\_nombre usuario & \\
+ & \\
+rootdn  \verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"|  & \\
+rootpw  \{crypt\}OuorOLd3VqvC2 & \\
+ & \\
+\# Que atributos indexamos para hacer busquedas & \\
+index   default                                                sub & \\
+index   uid,mail                                               eq & \\
+index   gosaMailAlternateAddress,gosaMailForwardingAddress     eq & \\
+index   cn,sn,givenName,ou                                     pres,eq,sub & \\
+index   objectClass                                            pres,eq & \\
+index   uidNumber,gidNumber,memberuid                          eq & \\
+index   gosaSubtreeACL,gosaObject,gosaUser                     pres,eq & \\
+ & \\
+\# Indexing for Samba 3
+index   sambaSID                                               eq & \\
+index   sambaPrimaryGroupSID                                   eq & \\
+index   sambaDomainName                                        eq & \\
+ & \\
+\# Quienes pueden cambiar las claves de usuario & \\
+\# Solo por el propio usuario si est� autentificado & \\
+\# o por el administrador & \\
+access to attr=sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none  & \\
+access to attr=userPassword,shadowMax,shadowExpire & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none  & \\
+ & \\
+\# Denegar acceso a las claves imap, fax o kerberos guardadas en & \\
+\# LDAP & \\
+access to attr=goImapPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+access to attr=goKrbPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+access to attr=goFaxPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by * none  & \\
+ & \\
+\# Permite que el servidor escriba el atributo LastUser & \\
+access to attr=gotoLastUser & \\
+	by * write & \\
+ & \\
+\#Las claves samba por defecto pueden ser cambiadas & \\
+\#por el usuario si se ha autentificado. & \\
+access to attr=sambaLmPassword,sambaNtPassword & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+	by anonymous auth & \\
+	by self write & \\
+	by * none & \\
+ & \\
+\# Permite acceso de escritura para administrador de terminales & \\
+access to dn=" ou=incoming,dc=CHAOSDIMENSION,dc=ORG"  & \\
+	by dn=\verb|"cn=terminal-admin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+ & \\
+access to dn.subtree=" ou=incoming,dc=CHAOSDIMENSION,dc=ORG"  & \\
+	by dn=\verb|"cn=terminal-admin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| write & \\
+	by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| write & \\
+ & \\
+\# Directorio donde se guarda la base de datos & \\
+directory       " /var/lib/ldap"  & \\
+ & \\
+\# Indicamos si deseamos guardar la fecha de la ultima modificaci�n & \\
+lastmod off & \\
+ & \\
+\# Acceso del administrador & \\
+access to * & \\
+        by dn=\verb|"cn=ldapadmin,dc=CHAOSDIMENSION,dc=ORG"| =wrscx & \\
+        by dn.regex=\verb|"uid=[^{}/]+/admin\+(realm=CHAOSDIMENSION.LOCAL)?"| =wrscx & \\
+        by * read & \\
+\end{longtable}
+\end{center}
+    
+\section{Utilizaci�n}
+\subsection{Configuraci�n PAM/NSS}
+
+NSS (Librer�as del servicio de seguridad en red / Network Security Service Libraries)\\
+
+NSS es una parte b�sica del sistema, sirve para control de las cuentas POSIX, para poder usar LDAP para cuentas POSIX (del sistema) utilizaremos NSS\_LDAP, que se puede descargar de \htmladdnormallink{http://www.padl.com/OSS/nss\_ldap.html}{http://www.padl.com/OSS/nss\_ldap.html} , lo descomprimimos es /usr/src y ejecutamos:\\
+
+\noindent \#cd /usr/src/nss\_ldap\\
+\noindent \#./configure \&\& make \&\& make install\\
+
+La configuraci�n b�sica de NSS esta en /etc/nsswitch.conf y debe quedar as� para lo que nosotros queremos.\\
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n NSSWITCH}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n NSSWITCH}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n NSSWITCH (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+
+passwd:         files ldap & \# Estas son las lineas que cambiamos para que haga peticiones ldap\\
+group:          files ldap & \#\\
+shadow:         files ldap & \#\\
+ & \\
+hosts:          files dns & \\
+networks:       files & \\
+ & \\
+protocols:      db files & \\
+services:       db files & \\
+ethers:         db files & \\
+rpc:            db files & \\
+ & \\
+netgroup:       nis & \\
+\hline \end{longtable}
+\end{center}
+\newpage
+La configuraci�n de nss-ldap se guarda en /etc/nss-ldap.conf y una configuraci�n v�lida para GOsa quedar�a as�:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n NSS}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n NSS}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n NSS (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+host ip.servidor.ldap & \# Aqu� ponemos donde\\
+ & \# estar� nuestro servidor LDAP\\
+base ou=people,dc=CHAOSDIMENSION,dc=ORG & \# Aqu� donde van a ir los usuarios y sus claves.\\
+ & \# OU significa unidad organizativa\\
+ & \# y OU=people es el lugar donde GOsa guarda las\\
+ & \# caracteristicas de los usuarios\\
+ldap\_version 3 & \# Versi�n de LDAP soportada \\
+ & \#(muy recomendado la versi�n 3)\\
+nss\_base\_passwd ou=people,dc=CHAOSDIMENSION,DC=ORG?one & \#Donde buscamos las caracteristicas POSIX\\
+nss\_base\_shadow ou=people,dc=CHAOSDIMENSION,DC=ORG?one & \#Donde buscamos las claves\\
+nss\_base\_group ou=groups,dc=CHAOSDIMENSION,DC=ORG?one & \#Donde las caracteristicas de los grupos POSIX\\
+\hline \end{longtable}
+\end{center}
+
+PAM ( M�dulos de autentificaci�n conectables / Pluggable Authentication Modules) es una paquete de librer�as din�micas que permiten al administrador de sistema elegir en que manera las aplicaciones autentifican a los usuarios.
+
+PAM viene de serie en todas las distribuciones, en /etc/pam.d se guarda la configuraci�n de cada m�dulo y en /lib/security las librer�as din�micas.
+
+Nos vamos a concentrar en uno de los m�dulos de PAM: pam\_ldap. Este m�dulo nos servir� para que las aplicaciones que usen el sistema base de autentificaci�n y control de sesi�n y que no usen LDAP, indirectamente accedan a LDAP, como fuente de autentificaci�n.
+
+Con PAM\_LDAP y la infraestructura de PAM conseguimos que los usuarios POSIX del sistema funcionen atraves de LDAP y se puedan configurar con GOsa.
+
+PAM\_LDAP se puede descargar de \htmladdnormallink{http://www.padl.com/OSS/pam\_ldap.html}{http://www.padl.com/OSS/pam\_ldap.html} , lo descomprimimos es /usr/src y ejecutamos el cl�sico:\\
+
+\noindent \#cd /usr/src/pam\_ldap\\
+\noindent \#./configure \&\& make \&\& make install\\
+\\
+La configuraci�n de este m�dulo estar� en /etc/pam\_ldap.conf, una configuraci�n b�sica que funcione con GOsa quedar�a:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n PAM}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+host ip.servidor.ldap & \# Aqu� ponemos donde estar� nuestro servidor LDAP\\
+base ou=people,dc=CHAOSDIMENSION,dc=ORG & \# Aqu� donde van a ir los usuarios y sus claves.\\
+ & \# OU significa unidad organizativa y OU=people\\
+ & \# es el lugar donde GOsa guarda las caracteristicas de los usuarios\\
+ldap\_version 3 & \# Versi�n de LDAP soportada (muy recomendado la versi�n 3)\\
+scope one & \# En gosa los usuarios est�n al mismo nivel,\\
+ & \# no necesitamos descender.\\
+rootbinddn cn=ldapadmin,dc=solaria,dc=es & \# Aqu� est� el DN del administrador LDAP del servidor,\\
+ & \# es necesario, ya que el servidor solo\\
+ & \# dar� acceso a las claves encriptadas al administrador.\\
+pam\_password md5 & \# Indica como est�n encriptadas las claves.\\
+\hline \end{longtable}
+\end{center}
+
+En el archivo /etc/secret pondremos la clave del administrador LDAP, este archivo, as� como el anterior solo deber�an ser accesibles por root.
+
+Para poder user ahora los servicios con la autentificaci�n LDAP deberemos concentrarnos en tres archivos:\\
+Control de cuentas /etc/pam.d/common-account:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n PAM common-account}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-account}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-account (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+account required          pam\_unix.so & \# Siempre requerido\\
+account sufficient        pam\_ldap.so & \# Las llamadas a ldap\\
+\hline \end{longtable}
+\end{center}
+
+Control de autentificaci�n /etc/pam.d/common-auth:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n PAM common-auth}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-auth}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-auth (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+auth     sufficient     pam\_unix.so & \# Autentificaci�n estandar\\
+auth     sufficient     pam\_ldap.so try\_first\_pass & \# Autentificacion LDAP en el primer intento\\
+auth     required       pam\_env.so & \\
+auth     required       pam\_securetty.so & \\
+auth     required       pam\_unix\_auth.so & \\
+auth     required       pam\_warn.so & \\
+auth     required       pam\_deny.so & \\
+\hline \end{longtable}
+\end{center}
+
+Control de sesiones /etc/pam.d/common-session:
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n PAM common-session}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-session}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n PAM common-session (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+session required        pam\_limits.so & \\
+session required        pam\_unix.so & \# Sesi�n unix estandar\\
+session optional        pam\_ldap.so & \# Sesi�n basada en LDAP\\
+\hline \end{longtable}
+\end{center}
+
+Esta configuraci�n ser� necesaria al menos para configurar POSIX y SAMBA.
+\newpage
+\subsection{Replicaci�n}
+
+Si tenemos mas de un dominio debemos tener una estructura mas distribuida que sea mas eficiente contra fallos. Una estructura b�sica ser�a un servidor maestro con el �rbol LDAP completo y servidores con sub�rboles LDAP que solo tuvieran la parte del dominio que controlan.
+
+De esta manera GOsa controla el servidor maestro y a traves de un proceso llamado replicaci�n los servidores de dominio.
+
+La replicaci�n se configura en la configuraci�n de ldap, pero no la ejecuta el demonio slapd, sino otro especializado llamado slurp.
+Su configuraci�n se realiza en la base de datos que queremos replicar, como en el ejemplo b�sico no hemos configurado mas que una base de datos solo tendr�amos que a�adir al final del fichero de configuraci�n /etc/ldap/slapd.conf:
+
+\begin{center}
+\begin{longtable}{|ll|}\hline
+\caption{Configuraci�n Replicaci�n}\\
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n Replicaci�n}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{2}{|c|}{\textbf{Configuraci�n Replicaci�n (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{2}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{2}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\#Configuraci�n de r�plica & \\
+\#Utilizado por init scripts para parar e iniciar el servidor. & \\
+replica-pidfile         /var/run/slurp.pid & \\
+ & \\
+\# Argumentos pasados al servidor. & \\
+replica-argsfile        /var/run/slapd.args & \\
+ & \\
+\#Lugar donde grabamos lo que se replica, y que usara slurpd & \\
+replogfile      /var/lib/ldap/replog & \\
+\#Las configuraciones de r�plica & \\
+\#Indicaci�n de r�plica & \\
+replica & \\
+\#Direcci�n URI del servidor & \\
+uri=ldap://ip.servidor.esclavo1 & \\
+\#Que vamos a replicar del maestro & \\
+suffix=" dc=dominio1,dc=CHAOSDIMENSION,dc=ORG" & \\
+\#Como vamos a autentificar & \\
+bindmethod=simple & \\
+\#DN replica del esclavo1 & \\
+binddn=\verb|"cn=esclavo1,ou=people,dc=dominio1,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\#Contrase�a del usuario & \\
+\# de replica de esclavo1 & \\
+credentials=" tester" & \\
+\#Indicaci�n de r�plica del esclavo2 & \\
+replica & \\
+uri=ldap://ip.servidor.esclavo2 & \\
+suffix=" dc=dominio2,dc=CHAOSDIMENSION,dc=ORG" & \\
+bindmethod=simple & \\
+binddn=\verb|"cn=esclavo2,ou=people,dc=dominio2,dc=CHAOSDIMENSION,dc=ORG"| & \\
+credentials=" tester" & \\
+\hline \end{longtable}
+\end{center}
+
+Por simplicidad hemos supuesto que los dos servidores esclavos est�n configurados igual que el maestro, excepto por la configuraci�n de replica del maestro y las indicaciones de los esclavos de quien es el servidor maestro.
+
+En los servidores esclavos a�adimos al final del /etc/ldap/slapd.conf:
+
+En esclavo1:\\
+\begin{tabular}{|ll|}\hline
+\#Qui�n puede actualizar el servidor & \\
+updatedn \verb|"cn=esclavo1,dc=dominio1,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\#Desde donde & \\
+updateref ldap://ip.servidor.maestro & \\
+\#Permitimos el acceso & \\
+access to dn.subtree= " dc=dominio1,dc=CHAOSDIMENSION,dc=ORG" & \\
+by dn= \verb|"cn=esclavo1,dc=dominio1,dc=CHAOSDIMENSION,dc=ORG"|  =wrscx & \\
+by * none & \\
+\hline\end{tabular}
+\vspace{0.5cm}
+
+En esclavo2:\\
+\begin{tabular}{|ll|}\hline
+\#Qui�n puede actualizar el servidor & \\
+updatedn \verb|"cn=esclavo2,dc=dominio2,dc=CHAOSDIMENSION,dc=ORG"| & \\
+\#Desde donde & \\
+updateref ldap://ip.servidor.maestro & \\
+\#Permitimos el acceso & \\
+access to dn.subtree= " dc=dominio2,dc=CHAOSDIMENSION,dc=ORG" & \\
+by dn= \verb|"cn=esclavo2,dc=dominio2,dc=CHAOSDIMENSION,dc=ORG"| =wrscx & \\
+by * none & \\
+\hline \end{tabular}
+\vspace{1cm}
+
+Adem�s debemos crear los usuarios de replica en las bases de datos correspondientes. Eso se vera en el siguiente punto.
+
+\subsection{Carga de datos}
+
+En este punto daremos los datos iniciales de nuestro �rbol LDAP necesario para GOsa.
+Tambien indicaremos de que manera hacer la carga de estos datos y que hacer en el caso de un servidor �nico o en el caso de que haya r�plicas.
+
+La carga se puede hacer de dos maneras, una es atraves de slapadd y la otra es atraves de ldapadd.\\
+En el primer caso la carga se hace directamente sobre la base de datos con lo cual no existe replicaci�n y ademas no se mostrar�n los datos en el servidor LDAP hasta que este no sea iniciado nuevamente, \textbf{la carga de datos de esta manera debe ser hecha con el servidor apagado}.\\
+En el segundo caso, la carga se hace a traves de ldap y si hay replica esta se generara de la manera pertinente.
+
+Para una carga desde cero de la base de datos, deberemos hacerla desde slapadd, con el servidor slapd parado.
+
+La forma de usar slapadd es:\\
+
+\noindent \#slapadd -v -l fichero\_con\_datos.ldif\\
+
+LDIF es el formato est�ndar para guardar datos de LDAP. GOsa trae su propio ldif de ejemplo, en los siguientes dos puntos explicaremos como usarlo seg�n nuestras necesidades.
+\vspace{1cm}
+
+\subsubsection{Servidor �nico}
+
+Es el caso mas b�sico, en el no hay replicaci�n y solo necesitamos un �rbol simple.\\
+En nuestro ejemplo supondremos que nuestro �rbol GOsa est� en dc=CHAOSDIMENSION,dc=ORG.\\
+
+Cargaremos los datos con un script, le llamaremos \htmladdnormallink{carga.sh}{http://warping.sourceforge.net/gosa/contrib/es/carga.sh}, esto simplificara los pasos.
+Los par�metros del script ser�n: DN de la base, Servidor IMAP,Realm Kerberos\\
+
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Configuraci�n Carga de Datos}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Carga de Datos}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Carga de Datos (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+\\
+if [ \$\{\#@\} != 3 ]\\
+then\\
+\verb|    |echo "Se necesita los parametro DN base, Servidor IMAP y Servidor Kerberos"\\
+\verb|    |echo "Por ejemplo carga.sh dc=CHAOSDIMENSION,dc=ORG imap.solaria krb.solaria"\\
+\verb|    |exit\\
+fi\\
+\\
+DC=`echo \$1|cut -d\textbackslash= -f 2|cut -d \textbackslash , -f 1`\\
+IMAP=\$2\\
+KRB=\$3\\
+\\
+slapadd \verb|<<| EOF\\
+dn: \$1\\
+objectClass: dcObject\\
+objectClass: organization\\
+description: Base object\\
+dc: \$DC\\
+o: My own Organization\\
+\\
+dn: cn=terminal-admin,\$1\\
+objectClass: person\\
+cn: terminal-admin\\
+sn: Upload user\\
+description: GOto Upload Benutzer\\
+userPassword:: e2tlcmJlcm9zfXRlcm1pbmFsYWRtaW5AR09OSUNVUy5MT0NBTAo=\\
+\\
+dn: ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: systems\\
+\\
+dn: ou=terminals,ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: terminals\\
+\\
+dn: ou=servers,ou=systems,\$1\\
+objectClass: organizationalUnit\\
+ou: servers\\
+\\
+dn: ou=people,\$1\\
+objectClass: organizationalUnit\\
+ou: people\\
+\\
+dn: ou=groups,\$1\\
+objectClass: organizationalUnit\\
+ou: groups\\
+\\
+dn: cn=default,ou=terminals,ou=systems,\$1\\
+objectClass: gotoTerminal\\
+cn: default\\
+gotoMode: disabled\\
+gotoXMethod: query\\
+gotoRootPasswd: tyogUVSVZlEPs\\
+gotoXResolution: 1024x768\\
+gotoXColordepth: 16\\
+gotoXKbModel: pc104\\
+gotoXKbLayout: de\\
+gotoXKbVariant: nodeadkeys\\
+gotoSyslogServer: lts-1\\
+gotoSwapServer: lts-1:/export/swap\\
+gotoLpdServer: lts-1:/export/spool\\
+gotoNtpServer: lts-1\\
+gotoScannerClients: lts-1.\$DC.local\\
+gotoFontPath: inet/lts-1:7110\\
+gotoXdmcpServer: lts-1\\
+gotoFilesystem: afs-1:/export/home /home nfs exec,dev,suid,rw,hard,nolock,fg,rsize=8192 1 1\\
+\\
+dn: cn=admin,ou=people,\$1\\
+objectClass: person\\
+objectClass: organizationalPerson\\
+objectClass: inetOrgPerson\\
+objectClass: gosaAccount\\
+uid: admin\\
+cn: admin\\
+givenName: admin\\
+sn: GOsa main administrator\\
+sambaLMPassword: 10974C6EFC0AEE1917306D272A9441BB\\
+sambaNTPassword: 38F3951141D0F71A039CFA9D1EC06378\\
+userPassword:: dGVzdGVy\\
+\\
+dn: cn=administrators,ou=groups,\$1\\
+objectClass: gosaObject\\
+objectClass: posixGroup\\
+objectClass: top\\
+gosaSubtreeACL: :all\\
+cn: administrators\\
+gidNumber: 999\\
+memberUid: admin\\
+\\
+dn: cn=lts-1,ou=servers,ou=systems,\$1\\
+objectClass: goTerminalServer\\
+objectClass: goServer\\
+goXdmcpIsEnabled: true\\
+macAddress: 00:B0:D0:F0:DE:1D\\
+cn: lts-1\\
+goFontPath: inet/lts-1:7110\\
+\\
+dn: cn=afs-1,ou=servers,ou=systems,\$1\\
+objectClass: goNfsServer\\
+objectClass: goNtpServer\\
+objectClass: goLdapServer\\
+objectClass: goSyslogServer\\
+objectClass: goCupsServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1C\\
+cn: afs-1\\
+goExportEntry: /export/terminals 10.3.64.0/255.255.252.0(ro,async,no\_root\_squash)\\
+goExportEntry: /export/spool 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goExportEntry: /export/swap 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goExportEntry: /export/home 10.3.64.0/255.255.252.0(rw,sync,no\_root\_squash)\\
+goLdapBase: \$1\\
+\\
+dn: cn=vserver-02,ou=servers,ou=systems,\$1\\
+objectClass: goImapServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1F\\
+cn: vserver-02\\
+goImapName: imap://\$IMAP\\
+goImapConnect: {\$IMAP:143}\\
+goImapAdmin: cyrus\\
+goImapPassword: secret\\
+goImapSieveServer: \$IMAP\\
+goImapSievePort: 2000\\
+\\
+dn: cn=kerberos,ou=servers,ou=systems,\$1\\
+objectClass: goKrbServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:1E\\
+cn: kerberos\\
+goKrbRealm: \$KRB\\
+goKrbAdmin: admin/admin\\
+goKrbPassword: secret\\
+\\
+dn: cn=fax,ou=servers,ou=systems,\$1\\
+objectClass: goFaxServer\\
+objectClass: goServer\\
+macAddress: 00:B0:D0:F0:DE:10\\
+cn: fax\\
+goFaxAdmin: fax\\
+goFaxPassword: secret\\
+\\
+dn: ou=incoming,\$1\\
+objectClass: organizationalUnit\\
+ou: incoming\\
+\\
+EOF\\
+\hline \end{longtable}
+\end{center}
+
+\subsubsection{Servidor Maestro y dos r�plicas}
+
+La carga de datos se har� con el mismo script de la secci�n anterior, tanto en el maestro como en los esclavos, con las siguientes diferencias:\\
+
+En el maestro por ejemplo "DC=CHAOSDIMENSION,DC=ORG" ejecutaremos este script \htmladdnormallink{crea\_base.sh}{http://warping.sourceforge.net/gosa/contrib/es/crea\_base.sh} para crear la base:\\
+
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Configuraci�n Crea Base Maestro}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Crea Base Maestro}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Crea Base Maestro (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+\\
+if [ \$\{\#@\} != 1 ]\\
+then\\
+\verb|    |echo "Se necesita el par�metro DN base del maestro"\\
+\verb|    |echo "Por ejemplo crea\_base.sh dc=CHAOSDIMENSION,dc=ORG"\\
+\verb|    |exit\\
+fi\\
+\\
+DC=`echo \$1|cut -d\textbackslash= -f 2|cut -d\textbackslash, -f 1`\\
+\\
+slapadd \verb|<<|  EOF\\
+dn: \$1\\
+objectClass: dcObject\\
+objectClass: organization\\
+description: Base object\\
+dc: \$DC\\
+o: My own Base Organization\\
+\\
+EOF\\
+\hline \end{longtable}
+\end{center}
+
+Adem�s con el script de la secci�n anterior cargaremos los dominios de ejemplo:\\ "DC=dominio1,DC=CHAOSDIMENSION,DC=ORG" y "DC=dominio2,DC=CHAOSDIMENSION,DC=ORG".\\
+
+En el esclavo1 ejecutaremos el script con "DC=dominio1,DC=CHAOSDIMENSION,DC=ORG" y en esclavo2 con "DC=dominio2,DC=CHAOSDIMENSION,DC=ORG".\\ En ambos casos los dos servidores LDAP esclavos habr�n sido configurados para su propio DN.
+
+Lo que nos faltar�a seria crear el usuario para la replica, que se podr�a hacer con el siguiente script \htmladdnormallink{usuario\_replica.sh}{http://warping.sourceforge.net/gosa/contrib/es/usuario\_replica.sh} con par�metros nombre del usuario y el DN base: \\
+
+\begin{center}
+\begin{longtable}{|l|}\hline
+\caption{Configuraci�n Usuario R�plica}\\
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Usuario R�plica}}\\
+\hline \hline
+\endfirsthead
+\hline \hline
+\multicolumn{1}{|c|}{\textbf{Configuraci�n Usuario R�plica (continuaci�n)}}\\
+\hline \hline
+\endhead
+\hline
+\multicolumn{1}{|c|}{Sigue $\ldots$}\\
+\hline
+\endfoot
+\hline
+\multicolumn{1}{|c|}{\textbf{Fin}}\\
+\hline
+\endlastfoot
+\#!/bin/sh\\
+if [ \$\{\#@\} != 2 ]\\
+then\\
+\verb|    |echo "Se necesita los parametros nombre de usuario y DN base para replica"\\
+\verb|    |echo "Por ejemplo usuario\_replica.sh replicator dc=dominio1,dc=CHAOSDIMENSION,dc=ORG "\\
+\verb|    |exit\\
+fi\\
+\\
+KEY=`makepasswd --crypt --chars=7 \textbackslash \\--string="abcdefghijklmnopqrstuvwxyz1234567890"`\\
+PASS=`echo \$KEY|awk '\{ print \$1 \}'`\\
+CRYPT=`echo \$KEY|awk '\{ print \$2 \}'`\\
+\\
+echo \verb|"Creando usuario $1 con contrase�a: $PASS"|\\
+\\
+slapadd \verb|<<| EOF\\
+dn: cn=\$1,ou=people,\$2\\
+displayName: Debian User,,,\\
+userPassword: \{crypt\} \$CRYPT\\
+sambaLMPassword: \\
+sambaNTPassword: \\
+sn: \$1\\
+givenName: \$1\\
+cn: \$1\\
+homeDirectory: /home/\$1\\
+loginShell: /bin/false\\
+uidNumber: 10000\\
+gidNumber: 100\\
+gecos: \$1\\
+shadowMin: 0\\
+shadowMax: 99999\\
+shadowWarning: 7\\
+shadowInactive: 0\\
+shadowLastChange: 12438\\
+gosaDefaultLanguage: es\_ES\\
+uid: \$1\\
+objectClass: posixAccount\\
+objectClass: shadowAccount\\
+objectClass: person\\
+objectClass: organizationalPerson\\
+objectClass: inetOrgPerson\\
+objectClass: gosaAccount\\
+objectClass: top\\
+\\
+EOF\\
+\hline \end{longtable}
+\end{center}
+
+\section{Modificaciones para Kerberos}
+\subsection{Configurando Sasl y Openldap}
+
+
+\section{Configurar Heimdal Kerberos sobre OpenLdap}
+\label{heimdal_ldap}
+
+�Porque debemos meter la base de datos de heimdal en ldap?
+
+La explicaci�n es sencilla, replicaci�n, ldap tiene sistemas de replicaci�n y de acceso a datos mucho mas modernos y utiles que los de hprop o iprop.
+
+Por otro lado al estar los datos en ldap, GOsa no tiene mas que escribirlos o modificarlos directamente, permitiendo crear dominios Kerberos desde ldap o a�adir/quitar usuarios/servicios.
+
+\subsection{Configurar Heimdal}
+
+La instalaci�n \ref{down_kerberos_heimdal} y la configuraci�n \ref{heimdal_conf} en la misma, pero vamos a a�adir al archivo de configuraci�n un nuevo bloque:
+
+\vspace{0.5cm}
+\begin{center}
+\begin{tabular}{|l|l|}\hline 
+\verb|    [kdc]| & $\rightarrow$ Configuraci�n de base de datos del KDC.\\
+\verb|    database = {| & $\rightarrow$ Definiciones de la base de datos.\\
+\verb|            realm=CHAOSDIMENSION.ORG| & $\rightarrow$ Que dominio tendremos bajo ese DN\\
+\verb|            dbname = ldap:ou=people,dc=chaosdimension,dc=org| & $\rightarrow$ El DN bajo el cual se va a guardar la\\
+& base de datos, debemos elegir la que convenga segun nuestra configuraci�n GOsa.\\
+\verb|            acl_file=/var/lib/heimdal-kdc/kadmind.acl| & $\rightarrow$ Fichero con los permisos de acceso a esa base de datos.\\
+\verb|            mkey_file = /var/lib/heimdal-kdc/m-key| & $\rightarrow$ Clave maestra de esa base de datos.\\
+\verb|    }| & $\rightarrow$ \\
+\hline \end{tabular}
+\end{center}
+\vspace{0.5cm}
+
+\subsection{Configurar OpenLdap}
+
+La configuraci�n de openLDAP tiene cuatro partes:\\
+La primera es que heimdal solo accede al servidor openLDAP de forma local, via ldapi://, esto tendra que ser activado en el inicio de openLDAP.\\
+La segunda es que tenemos que a�adir el esquema para kerberos, lo podemos descargar de \htmladdnormallink{http://www.stanford.edu/services/directory/openldap/configuration/krb5-kdc.schema}{http://www.stanford.edu/services/directory/openldap/configuration/krb5-kdc.schema} y debemos colocarlo en /etc/ldap/schemas.\\
+La tercera parte son los cambios necesarios en slapd.conf:\\
+\vspace{0.5cm}
+\begin{center}
+\begin{tabular}{|l|l|}\hline 
+... & $\rightarrow$ En la carga de esquemas\\
+\verb|include         /etc/ldap/schema/krb5-kdc.schema| & \\
+... & $\rightarrow$ Configuraci�n SSL/TLS\\
+\verb|TLSCertificateFile /etc/ldap/ssl/ldap.crt| & \\
+\verb|TLSCertificateKeyFile /etc/ldap/ssl/ldap.key| & \\
+\verb|TLSCACertificateFile /etc/ldap/ssl/gosa.ca| & \\
+... & $\rightarrow$ Configuraci�n Sasl\\
+\verb|sasl-host ldap.chaosdimension.og| & \\
+\verb|sasl-keytab /etc/krb5.keytab.ldap| & \\
+\verb|sasl-realm CHAOSDIMENSION.ORG| & \\
+\verb|sasl-secprops noanonymous| & \\
+ & \\
+\verb|sasl-regexp "uidNumber=0\\\+gidNumber=.*,cn=peercred,cn=external,cn=auth"| & \\
+\verb|        "krb5PrincipalName=kadmin/admin at CHAOSDIMENSION.ORG,ou=people,dc=chaosdimension,dc=org"| & \\
+\verb|sasl-regexp uid=(.+),cn=gssapi,cn=auth uid=$1,ou=people,dc=chaosdimension,dc=org| & \\
+... & $\rightarrow$ Configuracion Kerberos:\\
+\verb|srvtab          /etc/krb5.keytab.ldap| & \\
+... & $\rightarrow$ El las listas de acceso de la base de datos:\\
+\verb|access to dn=""| & \\
+\verb|  by * read| & \\
+ & \\
+\verb|access to dn.base="cn=Subschema"| & \\
+\verb| by * read| & \\
+ & \\
+\verb|access to attr=supportedSASLMechanisms,subschemaSubentry| & \\
+\verb|  by anonymous read| & \\
+\verb|  by * read| & \\
+ & \\
+\verb|access to dn.regex="(.*,)?ou=chlgrupo,dc=chlgrupo,dc=com"| & \\
+\verb|  by dn="krb5PrincipalName=kadmin/admin at CHAOSDIMENSION.ORG,ou=people,dc=chaosdimension,dc=org" =wrscx| & \\
+\hline \end{tabular}
+\end{center}
+\vspace{0.5cm}
+
+
+
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_mail.tex b/gosa-core/doc/admin/es/manual_gosa_es_mail.tex
new file mode 100644
index 0000000..961bf30
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_mail.tex
@@ -0,0 +1,329 @@
+\chapter{Servidores de Correo Electr�nico}
+
+Un E-mail (Correo Electr�nico es un sistema de composici�n, envio y recepci�n de mensajes sobre sistemas de comunicaci�n electr�nica.
+El Correo Electr�nico comenzo en 1965 como una forma de enviar mensajes entre maquinas de un mismo sistema, pero no fue hasta la aprici�n de ARPANET cuando se hizo realmente popular.
+
+En 1980 el IETF desarrollo el procolo SMTP (Simple Mail Transfer Protocol) que se ha convertido en el protocolo dominante para el envio de correo.
+
+\section{Funcionamiento del Correo Electr�nico}
+
+Tenemos dos usuarios A y B, con sus dos maquinas HA y HB, dos servidores de correo a.org y b.org con cuentas de correo a at a.org y b at b.org.
+
+
+\begin{enumerate}
+\item A compone un nuevo mensaje en su MUA (Mail User Agent / Agente de Correo Electr�nico) e indica en el mensaje en un campo denominado TO: la direcci�n de correo electr�nico de B que sera b at b.org.\\
+Al enviar el mensaje, el MUA lo formateara y lo enviara al servidor MTA (Mail Transfer Agent / Agente de Envio de Correo Electr�nico) de A a traves de SMTP (smtp.a.org), este servidor estar� configurado en el MUA de A.
+\item La direcci�n de B es b at b.org, que est� formada por dos partes, una antes de la "@" que es el nombre de usuario y otra despues que es el servidor de correo del usuario, por lo tanto el servidor SMTP de A(smtp.a.org) buscara a traves de los DNS el campo MX (Mail Exchange / Intercambiador de Correo Electr�nico).
+\item El servidor DNS le devolvera la direcci�n MX de b.org (en nuestro ejemplo sera mx.b.org).
+\item El servidor smtp.a.org enviara el mensaje mx.b.org usando SMTP y mx.b.org lo guardara en la carpeta del usuario.
+\item El usuario B quiere ver su correo y tendra dos formas de verlo:
+\begin{enumerate}
+\item Descargarlo, el usuario B utiliza un MUA que se descarga el correo en su maquina y utilizara el protocolo POP3 para ello.
+\item Acceder sin descargarlo, el usuario B accede a su correo y lo lee, pero no los descarga en su maquina, usara entonces el protocolo IMAP4 para ello.
+\end{enumerate}
+\end{enumerate}
+
+\section{SMTP Servers}
+
+SMTP (Simple Mail Transfer Protocol / Protocolo simple de transferencia de correo electr�nico) es el protocolo estandar de env�o de correo electr�nico a trav�s de Internet.\\
+SMTP usa el para las comunicaciones el puerto TCP 25.\\
+Para encontar el servidor SMTP de un dominio se hace una buscada dns del campo MX de ese dominio.\\
+RFC relacionados con SMTP: RFC 2821 \cite{2821}, RFC 2822 \cite{2822}, RFC 1869 \cite{1869}, RFC 1891 \cite{1891}, RFC 2554 \cite{2554}
+
+
+\subsection{El problema del SPAM}
+El SPAM (Recepci�n de mensajes no solicitados) es el gran problema del correo electr�nico, mas del 50 por ciento del correo es correo basura. Para ello se est�n desarrollando t�cnicas como smtp-auth y el uso de paquetes especializados en la detecci�n de estes  \ref{spam}.
+
+\subsection{SMTP-AUTH}
+
+Es una extensi�n al protocolo SMTP para que estos soporten autentificaci�n, de esta manera el usuario que quiere enviar correo debe tener un usuario y contrase�a en el servidor, asi queda registrado y se comprueba su identidad.
+
+La idea original es que los servidores SMTP no est�n en open-relay (Abiertos al publico) de tal manera que solo se puedan enviar correo desde redes controladas y que cada usuario sea identificado, as� los servidores con smtp-auth no pueden ser utilizados por sistemas externos para el envio de SPAM.
+
+\subsection{Comandos SMTP B�sicos}
+
+\begin{itemize}
+\item[HELO] Identifica el servidor SMTP que envia al que recibe.
+\item[MAIL] Comienza una transferencia de Correo Electr�nico a uno o mas recipientes.\\ Indica quien env�a el mensaje.
+\item[RCPT] Identifica al usuario que va ha recibir el Correo Electr�nico.
+\item[DATA] La siguientes lineas ser�n el contenido del correo electr�nico.
+\item[SEND] Envia el correo electr�nico a una o mas estacones.
+\item[RSET] Termina una transferencia.
+\item[VRFY] Pregunta al SMTP receptor si el usuario ha sido identificado.
+\item[EXPN] Pregunta al receptor si la lista de correo ha sido identificada.
+\item[QUIT] Cierra la conexi�n.
+\end{itemize}
+
+\subsection{Codigos de Error SMTP mas usuales}
+
+Codigos de Error:
+\begin{itemize}
+\item[421] Service not available. Esto ocurre normalmente cuando el servidor remoto est� caido.
+\item[450] Mailbox unavailable. Suele ocurrir cuando no se tiene acceso a la carpeta de correo del recipiente o esta esta bloqueada por otra aplicaci�n.
+\item[451] Requested action aborted. Ocurre cuando existe un problema en la ejecuci�n del SMTP.
+\item[452] Requested action not taken. Tambien ocurre cuando hay problemas con la carpeta de correo del recipiento o est� llena.
+\item[500] Syntax error, command unrecognized. El servidor SMTP no soporta este comando.
+\item[501] Syntax error in parameters. Soporta el comando, pero los argumentos no son correctos.
+\item[502] Command not implemented. Un caso parecido a 500.
+\item[503] Bad sequence of commands. La secuencias de comando no es correcta.
+\item[550] mailbox unavailable. Como 450.
+\item[554] Transaction failed. La transferencia no ha sido valida.
+\end{itemize}
+
+Codigo de Estado:
+\begin{itemize}
+\item[211] System status. Estado del sistema.
+\item[214] Help message. Ayuda del sistema.
+\item[220] Service ready. El servidor esta preparado para aceptar correo.
+\item[221] Service closing transmission channel. El servidor cierra la conexi�n.
+\item[250] Requested mail action okay. El comando pedido al servidor, se ha ejecutado correctamente.
+\item[354] Start mail input; end with . . Indica que se puede enviar el contenido del mensaje, este debe terminar en un linea que contenga solo un ".".
+\end{itemize}
+
+
+\section{Postfix}
+
+Postfix en un servidor SMTP opensource desarrollado originalmente por Wietse Venema en los laboratorios de IBM.\\
+Es el recomendado para su uso con GOsa, entre otras cosas por sus caracteristicas tecnicas en el acceso ldap.
+
+\subsection{Instalaci�n}
+
+Postfix se puede descargar de \hlink{http://www.postfix.org/download.html}, existe abundante documentaci�n tanto en su p�gina web en \hlink{http://www.postfix.org/documentation.html}, como en el wiki: \hlink{http://postfixwiki.org/index.php?title=Main\_Page}.
+
+Postfix soporta una gran cantidad de extensiones, con las cuales gestionar los usuarios y los dominios. Existe incluso un howto que le permite usar qmail.schema para convertir sistemas basados en qmail-ldap a postfix y viceversa en  \hlink{http://gentoo-wiki.com/HOWTO\_Postfix-LDAP\_virtual\_users\_with\_qmail\_schema}.
+
+En este manual nos concentraremos en su extensi�n ldap, para ello necesitaremos tener instalado el servidor ldap \ref{down_ldap}, openSSL \ref{down_ssl} y SaSL \ref{down_sasl}. Descargamos y descomprimimos postfix-2.2.X.tgz en /usr/src, y ejecutamos:
+
+\bbox
+\verb|# make makefiles CCARGS="-DMAX_DYNAMIC_MAPS -DHAS_PCRE -DHAS_LDAP -DHAS_SSL \ |\\
+\verb|       -I/usr/include/openssl -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_TLS" |\\
+\verb|# make install|\\
+\ebox
+
+En la instalaci�n de ejemplo no se ha ejecutado make install y se han seguido las directrices del paquete debian, estas son:
+
+\bbox
+\verb|# install lib/*.1 /usr/lib|\\
+\verb|# for i in /usr/lib/*.1; do ln -sf ${i##*/} ${i%.*.*}; done|\\
+\verb|# install lib/dict_ldap.so /usr/lib/postfix|\\
+\verb|# install lib/dict_pcre.so /usr/lib/postfix|\\
+\verb|# install lib/dict_tcp.so /usr/lib/postfix|\\
+\verb|# install libexec/[a-z]* /usr/lib/postfix|\\
+\verb|# install bin/[a-z]* /usr/sbin|\\
+\verb|# install auxiliary/qshape/qshape.pl /usr/sbin/qshape|\\
+\verb|# install -m 0444 HISTORY /usr/share/doc/postfix/changelog|\\
+\verb|# ln -s ../sbin/rmail /usr/bin/rmail|\\
+\verb|# ln -s ../sbin/sendmail /usr/bin/newaliases|\\
+\verb|# ln -s ../sbin/sendmail /usr/bin/mailq|\\
+\verb|# ln -s ../sbin/sendmail /usr/lib/sendmail|\\
+\verb|# install -m 0755 conf/postfix-script conf/post-install /etc/postfix|\\
+\verb|# install -m 0644 conf/postfix-files /etc/postfix|\\
+\verb|# install -m 0644 conf/main.cf /usr/share/postfix/main.cf.dist|\\
+\verb|# install -m 0644 conf/master.cf /usr/share/postfix/master.cf.dist|\\
+\verb|# install man/man1/*.1 /usr/share/man/man1|\\
+\verb|# install man/man5/*.5 /usr/share/man/man5|\\
+\verb|# for f in man/man8/*.8; do \|\\
+\verb|  install ${f} /usr/share/${f}postfix; \|\\
+\verb|done|\\
+\verb|# install rmail/rmail.8 /usr/share/man/man8|\\
+\verb|# gzip -9 /usr/share/man/man8/*.8postfix|\\
+\verb|# ln -sf bounce.8postfix.gz /usr/share/man/man8/trace.8postfix.gz|\\
+\verb|# ln -sf bounce.8postfix.gz /usr/share/man/man8/defer.8postfix.gz|\\
+\ebox
+
+\subsection{Configuraci�n}
+
+Antes de poder utilizar postfix debemos configurarlo, su configuraci�n est� guardada en /etc/postfix, y los puntos importantes de esta son:
+
+\subsubsection{main.cf}
+
+Es la configuraci�n principal de postfix y se indican numerosos parametros de funcionamiento (Gracias a Cajus Pollmeier por la configuraci�n):
+
+\cbbox
+\verb|# Configuraci�n principal de POSTFIX|\\
+\\
+\verb|# Configuraci�n espec�fica para debian|\\
+\verb|command_directory = /usr/sbin|\\
+\verb|daemon_directory = /usr/libexec/postfix|\\
+\verb|program_directory = /usr/libexec/postfix|\\
+\verb|# Que muestra el servidor en un HELO|\\
+\verb|smtpd_banner = $myhostname ESMTP $mail_name|\\
+\verb|setgid_group = postdrop|\\
+\verb|biff = no|\\
+\verb|append_dot_mydomain = no|\\
+\\
+\verb|# Seguridad|\\
+\verb|disable_vrfy_command = yes|\\
+\verb|smtpd_sasl_auth_enable = yes|\\
+\verb|smtpd_sasl_local_domain = $myhostname|\\
+\verb|smtpd_tls_auth_only = no|\\
+\verb|#smtpd_sasl_security_options = noplaintext|\\
+\verb|smtpd_use_tls = yes|\\
+\verb|smtpd_tls_cert_file = /etc/postfix/cert.pem|\\
+\verb|smtpd_tls_key_file = /etc/postfix/key.pem|\\
+\verb|smtpd_tls_CAfile = /etc/postfix/CAcert.pem|\\
+\\
+\verb|# Fix Microsoft mail clients|\\
+\verb|broken_sasl_auth_clients = yes|\\
+\\
+\verb|# Cuotas por defecto|\\
+\verb|mail_size_limit = 10240000|\\
+\verb|message_size_limit = 10240000|\\
+\verb|header_size_limit = 10240|\\
+\verb|bounce_size_limit = 500000|\\
+\\
+\verb|# Colas por defecto|\\
+\verb|virtualsource_server_host = 10.3.66.11|\\
+\verb|virtualsource_search_base = dc=gonicus,dc=de|\\
+\verb#virtualsource_query_filter = (&(|(mail=%s)(gosaMailAlternateAddress=%s))(objectClass=gosaAccount))#\\
+\verb|virtualsource_result_attribute = uid,gosaMailForwardingAddress|\\
+\\
+\verb|# Carpetas compartidas|\\
+\verb|sharedsource_server_host = 10.3.66.11|\\
+\verb|sharedsource_search_base = dc=gonicus,dc=de|\\
+\verb#sharedsource_query_filter = (&(|(mail=%s)(gosaMailAlternateAddress=%s))(objectClass=posixGroup))#\\
+\verb|sharedsource_result_attribute = gosaSharedFolderTarget,gosaMailForwardingAddress|\\
+\\
+\verb|# Access Lists for Non Local Delivery|\\
+\verb|acllocal_server_host = 10.3.66.11|\\
+\verb|acllocal_search_base = dc=gonicus,dc=de|\\
+\verb#acllocal_query_filter = (&(|(mail=%s)(gosaMailAlternateAddress=%s))(gosaMailDeliveryMode=*L*))#\\
+\verb|acllocal_result_attribute = mail|\\
+\verb|acllocal_result_filter = insiders_only|\\
+\\
+\verb|# Origen|\\
+\verb|myorigin = $mydomain|\\
+\\
+\verb|# destinos|\\
+\verb|mydestination = $myhostname localhost.localdomain localhost.$mydomain /etc/postfix/locals|\\
+\\
+\verb|# redes locales|\\
+\verb|mynetworks = 127.0.0.0/8 10.0.0.0/8|\\
+\\
+\verb|# Nombre de host|\\
+\verb|myhostname = mail.gonicus.local|\\
+\\
+\verb|# Dominio|\\
+\verb|mydomain = gonicus.de|\\
+\\
+\verb|# Interfaces que escuchan|\\
+\verb|inet_interfaces = all|\\
+\\
+\verb|# Protecci�n contra SPAM, reglas regex basicas|\\
+\verb|#header_checks = regexp:/etc/postfix/header_checks|\\
+\verb|# Bsp.: /etc/postfix/header_checks|\\
+\verb|#  /^to: *friend at public\.com$/ REJECT|\\
+\verb|#  /^to: *friend at public\.com$/ IGNORE|\\
+\verb|#  /^to: *friend at public\.com$/ WARN|\\
+\\
+\verb|# Restricciones SMTP|\\
+\verb|#smtpd_client_restrictions = hash:/etc/postfix/access, reject_maps_rbl|\\
+\verb|#smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, reject_maps_rbl|\\
+\verb|smtpd_client_restrictions = permit_mynetworks|\\
+\\
+\verb|# Para el envio SMTP|\\
+\verb|#smtpd_sender_restrictions = hash:/etc/postfix/access, check_sender_access hash:|\\
+\verb|#smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender|\\
+\verb|smtpd_sender_restrictions = regexp:/etc/postfix/protected, check_sender_access hash:/etc/postfix/badmailfrom|\\
+\\
+\verb|# Para los recipientes|\\
+\verb|#smtpd_recipient_restrictions = permit_sasl_authenticated, reject_non_fqdn_recipient, check_client_access hash:/var/lib/pop|\\
+\verb|smtpd_recipient_restrictions = regexp:/etc/postfix/protected,|\\
+\verb|   permit_mynetworks,|\\
+\verb|   permit_sasl_authenticated,|\\
+\verb|   check_relay_domains|\\
+\\
+\verb|# Restricciones la comando HELO|\\
+\verb|smtpd_helo_required = no|\\
+\verb|#smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_invalid_hostname|\\
+\verb|smtpd_helo_restrictions = permit_mynetworks|\\
+\\
+\verb|# |\\
+\verb|smtpd_delay_reject = yes|\\
+\verb|strict_rfc821_envelopes = yes|\\
+\\
+\verb|# Mapas antispam|\\
+\verb|#maps_rbl_domains = hash:/etc/postfix/rbl|\\
+\verb|maps_rbl_domains = blackholes.mail-abuse.org|\\
+\\
+\verb|# Sobre los usuarios y autentificaci�n|\\
+\verb|smtpd_sasl_auth_enable = yes|\\
+\\
+\verb|smtpd_restriction_classes = insiders_only|\\
+\verb|insiders_only = check_sender_access regexp:/etc/postfix/insiders, reject|\\
+\\
+\verb|# relay|\\
+\verb|relay_domains = $mydestination|\\
+\\
+\verb|# transportes|\\
+\verb|fallback_transport = smtp|\\
+\verb|mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp|\\
+\\
+\verb|# Control de rendimiento|\\
+\\
+\verb|#local_destination_concurrency_limit = 2|\\
+\verb|#default_destination_concurrency_limit = 10|\\
+\verb|#uucp_destination_recipient_limit = 100|\\
+\verb|#smtp_destination_recipient_limit = 100|\\
+\\
+\verb|# Manipulaci�n de direcciones|\\
+\verb|#rewrite gonicus.de!horst to horst at gonicus.de|\\
+\verb|#rewrite horst%gonicus.de to horst at gonicus.de|\\
+\verb|#rewrite horst to horst at gonicus.de|\\
+\\
+\verb|# Mapas canonicos|\\
+\verb|#canonical_maps = hash:/etc/postfix/canonical|\\
+\verb|#sender_canonical_maps = hash:/etc/postfix/sender_canonical|\\
+\verb|#recipient_canonical_maps = hash:/etc/postfix/recipient_canonical|\\
+\\
+\verb|# Mascarada|\\
+\verb|#masquerade_domains = $mydomain|\\
+\verb|#masquerade_exceptions = root|\\
+\verb|#masquerade_clases = envelope_sender, envelope_recipient, header-sender, header_recipient|\\
+\\
+\verb|# Direcciones Virtuales|\\
+\verb|virtual_maps = ldap:virtualsource, ldap:sharedsource|\\
+\\
+\verb|# Mapas de Transportes|\\
+\verb|#default_transport = smtp-relay|\\
+\verb|#transport_maps = hash:/etc/postfix/transports|\\
+\\
+\verb|# Aliases|\\
+\verb|alias_maps = hash:/etc/aliases|\\
+\\
+\verb|# Antivirus a traves de amavis|\\
+\verb|#content_filter = vscan:|\\
+\verb|#soft_bounce = yes|\\
+\\
+\ebox
+
+\subsubsection{master.cf}
+\subsubsection{sasl}
+\subsubsection{ldap}
+
+\section{Qmail-ldap}
+
+\subsection{Instalaci�n}
+\subsection{Configuraci�n}
+
+\section{Sendmail}
+
+\subsection{Instalaci�n}
+\subsection{Configuraci�n}
+
+\section{Exim}
+
+\subsection{Instalaci�n}
+\subsection{Configuraci�n}
+
+\subsection{IMAP / POP Servers}
+
+\section{Cyrus}
+
+\section{Courier}
+
+\section{SPAM}
+\label{spam}
+
+\section{VIRUS}
+\label{virus}
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_otros.tex b/gosa-core/doc/admin/es/manual_gosa_es_otros.tex
new file mode 100644
index 0000000..6bf1a51
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_otros.tex
@@ -0,0 +1,27 @@
+\chapter{Otros Servidores Ldap}
+\section{Fedora Directory Server}
+\section{Ultrapossum}
+Multifunctional LDAP Solution
+
+\chapter{Otras Aplicaciones Ldap}
+\section{UIF}
+Advanced iptables-firewall script
+\section{BackupNinja}
+lightweight, extensible meta-backup system
+\section{OpenSC / libpam-opensc}
+Pluggable Authentication Module for using PKCS\#15 Smart Cards
+\section{libapache2-mod-ldap-userdir}
+Apache2 module that provides UserDir lookups via LDAP
+\section{autofs-ldap}
+LDAP map support for autofs
+
+\chapter{Otras Aplicaciones de gesti�n Ldap}
+\section{LAM}
+Ldap Account Manager
+\section{GQ}
+GTK-based LDAP client
+\section{VLAD}
+LDAP visualisation tool
+\section{phpldapadmin}
+web based interface for administering LDAP servers
+
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_printing.tex b/gosa-core/doc/admin/es/manual_gosa_es_printing.tex
new file mode 100644
index 0000000..9362859
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_printing.tex
@@ -0,0 +1 @@
+\chapter{Servidores de impresi�n - Cupsys}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_proxy.tex b/gosa-core/doc/admin/es/manual_gosa_es_proxy.tex
new file mode 100644
index 0000000..1933e79
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_proxy.tex
@@ -0,0 +1 @@
+\chapter{Seguridad en la navegaci�n web - Squid}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_ssh.tex b/gosa-core/doc/admin/es/manual_gosa_es_ssh.tex
new file mode 100644
index 0000000..c34998d
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_ssh.tex
@@ -0,0 +1 @@
+\chapter{Servicios de terminal seguros - ssh}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/manual_gosa_es_vpn.tex b/gosa-core/doc/admin/es/manual_gosa_es_vpn.tex
new file mode 100644
index 0000000..b1a3902
--- /dev/null
+++ b/gosa-core/doc/admin/es/manual_gosa_es_vpn.tex
@@ -0,0 +1 @@
+\chapter{Conexiones remotas seguras - OpenVPN}
\ No newline at end of file
diff --git a/gosa-core/doc/admin/es/referencias_gosa.bib b/gosa-core/doc/admin/es/referencias_gosa.bib
new file mode 100644
index 0000000..e5fe1bc
--- /dev/null
+++ b/gosa-core/doc/admin/es/referencias_gosa.bib
@@ -0,0 +1,182 @@
+ at Manual{x500,
+title = {Understanding X.500 - The Directory},
+key = {x500},
+author = { D W Chadwick},
+}
+
+ at TechReport{2251,
+author = {Network Working Group},
+title = {Request for Comments: 2251. Lightweight Directory Access Protocol (v3)},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2251.txt},
+}
+
+ at TechReport{2252,
+author = {Network Working Group},
+title = {Request for Comments: 2252. Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2252.txt},
+}
+
+ at TechReport{2253,
+author = {Network Working Group},
+title = {Request for Comments: 2253. Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2253.txt},
+}
+
+ at TechReport{2254,
+author = {Network Working Group},
+title = {Request for Comments: 2254. The String Representation of LDAP Search Filters},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2254.txt},
+}
+
+ at TechReport{2255,
+author = {Network Working Group},
+title = {Request for Comments: 2255. The LDAP URL Format},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2255.txt},
+}
+
+ at TechReport{2256,
+author = {Network Working Group},
+title = {Request for Comments: 2256. A Summary of the X.500(96) User Schema for use with LDAPv3},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2256.txt},
+}
+
+ at TechReport{3377,
+author = {Network Working Group},
+title = {Request for Comments: 3377. Lightweight Directory Access Protocol (v3): Technical Specification},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc3377.txt},
+}
+
+ at TechReport{llh,
+author = {Luiz Ernesto Pinheiro Mal�re},
+title = {LDAP Linux HOWTO},
+institution = {},
+year = {},
+address = {http://www.tldp.org/HOWTO/LDAP-HOWTO/index.html},
+}
+
+ at TechReport{ul,
+author = {metaconsultancy},
+title = {Using OpenLDAP},
+institution = {},
+year = {},
+address = {http://www.metaconsultancy.com/whitepapers/ldap.htm},
+}
+
+ at TechReport{oag,
+author = {The OpenLDAP Project},
+title = {OpenLDAP 2.2 Administrator's Guide},
+institution = {},
+year = {},
+address = {http://www.openldap.org/doc/admin22/index.html},
+}
+
+ at TechReport{lscp,
+author = {Sergio Gonz�lez Gonz�lez},
+title = {Integraci�n de redes con OpenLDAP, Samba, CUPS y PyKota},
+institution = {},
+year = {},
+address = {http://es.tldp.org/Tutoriales/doc-openldap-samba-cups-python/html/ldap+samba+cups+pykota.html},
+}
+
+ at TechReport{ssldoc,
+author = {OpenSSL Project},
+title = {OpenSSL Documents},
+institution = {},
+year = {},
+address = {http://www.openssl.org/docs/},
+}
+
+ at TechReport{2616,
+author = {Network Working Group},
+title = {Request for Comments: 2616. Hypertext Transfer Protocol -- HTTP/1.1},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2616.txt},
+}
+
+ at TechReport{1510,
+author = {Network Working Group},
+title = {Request for Comments: 1510. The Kerberos Network Authentication Service (V5)},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc1510.txt},
+}
+
+ at TechReport{3961,
+author = {Network Working Group},
+title = {Request for Comments: 3961. Encryption and Checksum Specifications for Kerberos 5},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc3961.txt},
+}
+
+ at TechReport{3962,
+author = {Network Working Group},
+title = {Request for Comments: 3962. Advanced Encryption Standard (AES) Encryption for Kerberos 5},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc3962.txt},
+}
+
+
+ at TechReport{cripto1,
+author = {Manuel Jos� Lucena L�pez},
+title = {Criptograf�a y Seguridad en Computadores},
+institution = {},
+year = {},
+address = {http://www.telefonica.net/web2/lcripto/lcripto.html},
+}
+
+ at TechReport{2821,
+author = {Network Working Group},
+title = {Request for Comments: 2821. Simple Mail Transfer Protocol},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2821.txt},
+}
+
+ at TechReport{2822,
+author = {Network Working Group},
+title = {Request for Comments: 2822. Internet Message Format},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2822.txt},
+}
+
+ at TechReport{1869,
+author = {Network Working Group},
+title = {Request for Comments: 1869. SMTP Service Extensions},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc1869.txt},
+}
+
+ at TechReport{1891,
+author = {Network Working Group},
+title = {Request for Comments: 1891. SMTP Service Extension for Delivery Status Notifications},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc1891.txt},
+}
+
+ at TechReport{2554,
+author = {Network Working Group},
+title = {Request for Comments: 2554. SMTP Service Extension for Authentication},
+institution = {},
+year = {},
+address = {http://www.ietf.org/rfc/rfc2554.txt},
+}
diff --git a/gosa-core/doc/core/de/html/applications/WARNINGS b/gosa-core/doc/core/de/html/applications/WARNINGS
new file mode 100644
index 0000000..1f8a5da
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/applications/applications.css b/gosa-core/doc/core/de/html/applications/applications.css
new file mode 100644
index 0000000..b9f28c4
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/applications.css
@@ -0,0 +1,36 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue112		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/applications/applications.html b/gosa-core/doc/core/de/html/applications/applications.html
new file mode 100644
index 0000000..58439c8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/applications.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Anwendungsverwaltung</TITLE>
+<META NAME="description" CONTENT="Anwendungsverwaltung">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Anwendungsverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Anwendungen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Optionen</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Skript</A>
+</UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Optionen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/edit.png b/gosa-core/doc/core/de/html/applications/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/edit.png differ
diff --git a/gosa-core/doc/core/de/html/applications/index.html b/gosa-core/doc/core/de/html/applications/index.html
new file mode 100644
index 0000000..58439c8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/index.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Anwendungsverwaltung</TITLE>
+<META NAME="description" CONTENT="Anwendungsverwaltung">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Anwendungsverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Anwendungen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Optionen</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Skript</A>
+</UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Optionen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/labels.pl b/gosa-core/doc/core/de/html/applications/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/applications/list_back.png b/gosa-core/doc/core/de/html/applications/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/applications/list_home.png b/gosa-core/doc/core/de/html/applications/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/applications/list_new_app.png b/gosa-core/doc/core/de/html/applications/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/list_new_app.png differ
diff --git a/gosa-core/doc/core/de/html/applications/list_reload.png b/gosa-core/doc/core/de/html/applications/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/applications/list_root.png b/gosa-core/doc/core/de/html/applications/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/applications/node1.html b/gosa-core/doc/core/de/html/applications/node1.html
new file mode 100644
index 0000000..4c71f88
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node1.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Anwendungen</TITLE>
+<META NAME="description" CONTENT="Liste der Anwendungen">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Anwendungen</A>
+</H1>
+
+<P>
+Die Liste der Anwendungen dient als Ausgangspunkt f�r alle weiteren
+Schritte. Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue18">Anwendungen</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Anwendungen geladen (�berschrift:
+<SPAN  CLASS="textsf"><SPAN ID="hue107"><SPAN  CLASS="textit">Anwendungsverwaltung</SPAN></SPAN></SPAN>).
+
+<P>
+Die Liste ist in zwei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann
+die Namen der Anwendungen (alphabetisch sortiert)
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+Es ist weiterhin m�glich, die Anzeige der Anwendungen mithilfe
+von Filtern zu beeinflussen (Kasten <SPAN  CLASS="textbf">Filter</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue38">Nach Namen suchen :</SPAN>
+<P>
+- Klick auf <SPAN  CLASS="textbf">*</SPAN> zeigt alle Anwendungen an
+
+<P>
+<SPAN ID="hue41">- Klick auf einen Buchstaben zeigt alle Anwendungen
+an, deren Name mit dem gew�hlten Buchstaben beginnt</SPAN>
+<P>
+<SPAN ID="hue43">- Klick auf eine Zahl zeigt alle Anwendungen an,
+deren Name mit der gew�hlten Ziffer beginnt</SPAN>
+<P>
+</LI>
+<LI>Schnellsuche <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">: Suchkriterium (z.B.
+Name der Anwendung) eingeben, Klick auf Knopf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html21"
+  HREF="node2.html">Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten</A>
+<LI><A NAME="tex2html22"
+  HREF="node3.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html23"
+  HREF="node4.html">Optionen</A>
+<LI><A NAME="tex2html24"
+  HREF="node5.html">Skript</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html25"
+  HREF="node6.html">Optionen</A>
+<LI><A NAME="tex2html26"
+  HREF="node7.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node2.html b/gosa-core/doc/core/de/html/applications/node2.html
new file mode 100644
index 0000000..ecbcd23
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node2.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten</TITLE>
+<META NAME="description" CONTENT="Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten</A>
+</H2>
+
+<P>
+Um eine Anwendung hinzuzuf�gen, klicken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_app.png"
+ ALT="Image list_new_app">
+(Er befindet sich oberhalb der Liste). Wenn Sie keine neue Anwendung
+hinzuf�gen wollen, sondern eine vorhandene bearbeiten m�chten, klicken
+Sie entweder auf den Eintrag in der Liste (z.B. <SPAN  CLASS="textbf">gimp - [Bildbearbeitung]</SPAN>)
+oder auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./edit.png"
+ ALT="Image edit"> des entsprechenden
+Eintrags.
+
+<P>
+Es �ffnet sich eine Seite mit drei Reitern (<SPAN  CLASS="textit">Allgemein</SPAN> / <SPAN  CLASS="textit">Optionen</SPAN>
+/ <SPAN  CLASS="textit">Referenzen</SPAN>). Diese dienen dazu, die Eigenschaften der Anwendung
+logisch aufzuteilen (Unter <SPAN  CLASS="textit">Allgemein</SPAN> werden die generellen
+Eigenschaften der Anwendung konfiguriert, <SPAN  CLASS="textit">Optionen</SPAN> dient dazu,
+Umgebungsvariablen f�r die Anwendung zu setzen und <SPAN  CLASS="textit">Referenzen</SPAN>
+zeigt an, von welchen Objekten (Benutzer, Gruppen, etc.) die gew�hlte
+Anwendung verwendet wird).
+
+<P>
+Um �nderungen zu speichern, verwenden Sie den Knopf <SPAN  CLASS="textit">Anwenden</SPAN>.
+Um die vorgenommenen �nderungen zu verwerfen und wieder in die Liste
+der Anwendungen zu gelangen, verwenden Sie den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>.
+
+<P>
+Die Felder, die mit einem roten Sternchen enden, sind Pflichtfelder
+und m�ssen zwingend ausgef�llt werden (GOsa wird die �nderungen sonst
+nicht �bernehmen).
+
+<P>
+Im Folgenden werden die Reiter ausf�hrlich beschrieben.
+
+<P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node3.html b/gosa-core/doc/core/de/html/applications/node3.html
new file mode 100644
index 0000000..6384b3a
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node3.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170><SPAN ID="hue65">Name der Anwendung</SPAN><SPAN ID="hue111">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Der allgemeine Name der Anwendung (Kurzform), z.B. <SPAN  CLASS="textbf">gimp</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Angezeigter Name</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Der angezeigte Name der Anwendung, z.B. GIMP</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Ausf�hren<SPAN ID="hue112">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Der Befehl, der verwendet werden soll, um die Anwendung zu starten
+(z.B. <SPAN  CLASS="textbf">gimp-remote-2.2 %U</SPAN>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Eine kurze Beschreibung der Anwendung (z.B. <SPAN  CLASS="textbf">Bildbearbeitung</SPAN>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Basis<SPAN ID="hue113">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Die Abteilung, in die diese Anwendung eingef�gt werden soll.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Symbol</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Das zugeh�rige Symbol zur Anwendung. Die Auswahl erfolgt mit dem Knopf
+rechts neben dem Eingabefeld (je nach Browser unterschiedlich). Um
+das Symbol mit der Anwendung zu verkn�pfen, klicken Sie auf den Knopf
+<SPAN  CLASS="textit">Anwenden</SPAN>.</TD>
+</TR>
+</TABLE>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html47"
+  HREF="node4.html">Optionen</A>
+<LI><A NAME="tex2html48"
+  HREF="node5.html">Skript</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node4.html b/gosa-core/doc/core/de/html/applications/node4.html
new file mode 100644
index 0000000..430263b
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node4.html
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Optionen</TITLE>
+<META NAME="description" CONTENT="Optionen">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Optionen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Nur ausf�hrbar f�r Gruppen-Mitglieder</SPAN>
+
+<P>
+Wenn diese Option gew�hlt ist, d�rfen nur Mitglieder einer entsprechenden
+UNIX- oder Objektgruppe die Anwendung ausf�hren (Es werden die Rechte
+der Datei unter <SPAN  CLASS="textit">Ausf�hren</SPAN> angepasst, daher ist diese Option
+nur sinnvoll, wenn die Anwendung nur einer Gruppe zugeordnet ist).
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textit">Konfiguration bei jedem Start ersetzen</SPAN>
+
+<P>
+Wenn diese Option gew�hlt ist, wird bei jedem Start der Anwendung
+die vorhandene Konfiguration mit der Standardkonfiguration �berschrieben.
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textit">Platziere das Symbol auf dem Desktop der Gruppenmitglieder</SPAN>
+
+<P>
+Wenn diese Option gew�hlt ist, erscheint das Anwendungssymbol auf
+dem Desktop der Gruppenmitglieder.
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textit">Platziere einen Eintrag im Startmen� der Gruppenmitglieder</SPAN>
+
+<P>
+Wenn diese Option gew�hlt ist, erscheint die Anwendung als Eintrag
+im Startmen� der Gruppenmitglieder.
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textit">Platziere einen Eintrag in der Kontrollleiste der Gruppenmitglieder</SPAN>
+
+<P>
+Wenn diese Option gew�hlt ist, erscheint die Anwendung als Symbol
+in der Kontrollleiste der Gruppenmitglieder.
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node5.html b/gosa-core/doc/core/de/html/applications/node5.html
new file mode 100644
index 0000000..f4e3cbb
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node5.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Skript</TITLE>
+<META NAME="description" CONTENT="Skript">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Skript</A>
+</H3>
+
+<P>
+Der Inhalt dieser Textbox wird beim Start der Anwendung ausgef�hrt.
+Sie k�nnen entweder das Skript direkt in der Textbox editieren, oder
+ein vorhandenes Skript hochladen (Dazu klicken Sie auf den Knopf rechts
+neben der Eingabezeile unterhalb der Textbox - dieser ist je nach
+Browser unterschiedlich - und w�hlen das gew�nschte Skript aus. Um
+das gew�hlte Skript in das Fenster zu laden, klicken Sie auf den Knopf
+<SPAN  CLASS="textit">Hochladen</SPAN>.
+
+<P>
+Beispiele f�r die Verwendung eines Skriptes:
+
+<P>
+
+<UL>
+<LI>Erstellen von Verzeichnissen
+</LI>
+<LI>Setzen von Konfigurationsparametern
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node6.html b/gosa-core/doc/core/de/html/applications/node6.html
new file mode 100644
index 0000000..41b0bbd
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node6.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Optionen</TITLE>
+<META NAME="description" CONTENT="Optionen">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Optionen</A>
+</H2>
+
+<P>
+Der Reiter <SPAN  CLASS="textit">Optionen</SPAN> dient dazu, Umgebungsvariablen f�r Anwendungen
+zu setzen. Standardm�ssig sind Optionen deaktiviert und m�ssen zun�chst
+mit einem Klick auf den Knopf <SPAN  CLASS="textit">Optionen aktivieren</SPAN> hinzugef�gt
+werden. Die verf�gbaren Felder auf der Seite sind in der folgenden
+Tabelle beschrieben:
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Variable</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Name der Variablen</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Standardwert</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Der Standardwert der Variablen (kann �berschrieben werden)</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+Um eine neue Variable hinzuzuf�gen, verwenden Sie den Knopf <SPAN  CLASS="textit">Option
+hinzuf�gen</SPAN>. Um eine vorhanden Variable zu entfernen, verwenden Sie
+den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node7.html b/gosa-core/doc/core/de/html/applications/node7.html
new file mode 100644
index 0000000..4ff6f0f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Der Reiter <SPAN  CLASS="textit">Referenzen</SPAN> dient dazu, sich einen �berblick zu verschaffen,
+von welchen Objekten diese Anwendung verwendet wird. In der Regel
+werden dies UNIX-Gruppen sein, andere Objekt-Typen sind jedoch m�glich.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/node8.html b/gosa-core/doc/core/de/html/applications/node8.html
new file mode 100644
index 0000000..1e8c3cb
--- /dev/null
+++ b/gosa-core/doc/core/de/html/applications/node8.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Anwendungsverwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/applications/ applications.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/applications/rocket.png b/gosa-core/doc/core/de/html/applications/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/applications/search.png b/gosa-core/doc/core/de/html/applications/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/applications/search.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/WARNINGS b/gosa-core/doc/core/de/html/blocklists/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/blocklists/blocklists.css b/gosa-core/doc/core/de/html/blocklists/blocklists.css
new file mode 100644
index 0000000..f323633
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/blocklists.css
@@ -0,0 +1,35 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue75		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/blocklists/blocklists.html b/gosa-core/doc/core/de/html/blocklists/blocklists.html
new file mode 100644
index 0000000..7190eff
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/blocklists.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Sperrlistenverwaltung</TITLE>
+<META NAME="description" CONTENT="Sperrlistenverwaltung">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Sperrlistenverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Gesperrte Nummern</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Information</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/index.html b/gosa-core/doc/core/de/html/blocklists/index.html
new file mode 100644
index 0000000..7190eff
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/index.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Sperrlistenverwaltung</TITLE>
+<META NAME="description" CONTENT="Sperrlistenverwaltung">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Sperrlistenverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Gesperrte Nummern</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Information</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/labels.pl b/gosa-core/doc/core/de/html/blocklists/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/blocklists/list_back.png b/gosa-core/doc/core/de/html/blocklists/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/list_home.png b/gosa-core/doc/core/de/html/blocklists/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/list_new_blocklist.png b/gosa-core/doc/core/de/html/blocklists/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/list_reload.png b/gosa-core/doc/core/de/html/blocklists/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/list_root.png b/gosa-core/doc/core/de/html/blocklists/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/node1.html b/gosa-core/doc/core/de/html/blocklists/node1.html
new file mode 100644
index 0000000..a3843f0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/node1.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Sperrlisten</TITLE>
+<META NAME="description" CONTENT="Liste der Sperrlisten">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Sperrlisten</A>
+</H1>
+
+<P>
+Die Liste der Sperrlisten dient als Ausgangspunkt f�r alle weiteren
+Schritte. Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue16">Fax-Sperrlisten</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Sperrlisten geladen (�berschrift:
+<SPAN  CLASS="textit">Sperrlistenverwaltung)</SPAN>. Auf dieser Seite k�nnen Sperrlisten
+hinzugef�gt, bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in zwei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt die Namen der Sperrlisten
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+Es ist weiterhin m�glich, die Anzeige der Sperrlisten mithilfe von
+Filtern zu beeinflussen (Kasten <SPAN  CLASS="textbf">Filter</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue36">Nach Namen suchen :</SPAN>
+<P>
+- Klick auf <SPAN  CLASS="textbf">*</SPAN> zeigt alle Sperrlisten an
+
+<P>
+<SPAN ID="hue39">- Klick auf einen Buchstaben zeigt alle</SPAN> Sperrlisten
+<SPAN ID="hue41">an, deren Name mit dem gew�hlten Buchstaben beginnt</SPAN>
+<P>
+<SPAN ID="hue43">- Klick auf eine Zahl zeigt alle</SPAN> Sperrlisten <SPAN ID="hue45">an,
+deren Name mit der gew�hlten Ziffer beginnt</SPAN>
+<P>
+</LI>
+<LI>Schnellsuche <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">: Suchkriterium (z.B.
+Name der Sperrlisten) eingeben, Klick auf Knopf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+
+<P>
+
+<P>
+<BR>
+Um eine neue Sperrliste zu erstellen, dr�cken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_blocklist.png"
+ ALT="Image list_new_blocklist">
+oberhalb der Liste. 
+
+<P>
+Um eine bestehende Sperrliste zu bearbeiten, dr�cken Sie auf den Namen
+der Sperrliste
+
+<P>
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html18"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html19"
+  HREF="node3.html">Gesperrte Nummern</A>
+<LI><A NAME="tex2html20"
+  HREF="node4.html">Information</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/node2.html b/gosa-core/doc/core/de/html/blocklists/node2.html
new file mode 100644
index 0000000..34266c0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/node2.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>List<SPAN ID="hue57">enname</SPAN><SPAN ID="hue75">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Name der Sperrliste</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie aus der Liste die Abteilung, der die Liste zugeordnet werden
+soll</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Typ</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie aus der Liste, ob die Sperrliste f�r eingehende (<SPAN  CLASS="textit">empfangen</SPAN>)
+oder ausgehende (<SPAN  CLASS="textit">senden</SPAN>) Faxe verwendet werden soll.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kurze Beschreibung der Sperrliste</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/node3.html b/gosa-core/doc/core/de/html/blocklists/node3.html
new file mode 100644
index 0000000..7e76fd0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gesperrte Nummern</TITLE>
+<META NAME="description" CONTENT="Gesperrte Nummern">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Gesperrte Nummern</A>
+</H2>
+
+<P>
+In der Liste der gesperrten Nummern, werden alle Nummern aufgef�hrt,
+die momentan dieser Liste zugeordnet sind. Um eine weitere Nummer
+einzuf�gen, geben Sie die Nummer in das Textfeld unterhalb der Liste
+ein und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Um eine oder
+mehrere Nummern aus der Liste zu entfernen, markieren Sie diese in
+der Liste und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/node4.html b/gosa-core/doc/core/de/html/blocklists/node4.html
new file mode 100644
index 0000000..418b00c
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/node4.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Information</TITLE>
+<META NAME="description" CONTENT="Information">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Information</A>
+</H2>
+
+<P>
+Hier wird Ihnen lediglich die Information eingeblendet, dass Sie in
+den Nummern Platzhalter (z.B. *) verwenden k�nnen.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/node5.html b/gosa-core/doc/core/de/html/blocklists/node5.html
new file mode 100644
index 0000000..6e90658
--- /dev/null
+++ b/gosa-core/doc/core/de/html/blocklists/node5.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Sperrlistenverwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/blocklists/ blocklists.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/blocklists/rocket.png b/gosa-core/doc/core/de/html/blocklists/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/blocklists/search.png b/gosa-core/doc/core/de/html/blocklists/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/blocklists/search.png differ
diff --git a/gosa-core/doc/core/de/html/conference/WARNINGS b/gosa-core/doc/core/de/html/conference/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/conference/conference.css b/gosa-core/doc/core/de/html/conference/conference.css
new file mode 100644
index 0000000..9da7be0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/conference.css
@@ -0,0 +1,44 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue16		{ color: #0000ff;  }
+#hue36		{ color: #000000;  }
+#hue39		{ color: #000000;  }
+#hue41		{ color: #000000;  }
+#hue43		{ color: #000000;  }
+#hue45		{ color: #000000;  }
+#hue78		{ color: #ff0000;  }
+#hue79		{ color: #ff0000;  }
+#hue80		{ color: #ff0000;  }
+#hue81		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/conference/conference.html b/gosa-core/doc/core/de/html/conference/conference.html
new file mode 100644
index 0000000..45f3e74
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/conference.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Konferenz-Verwaltung</TITLE>
+<META NAME="description" CONTENT="Konferenz-Verwaltung">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Konferenz-Verwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Konferenz-R�ume</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eigenschaften</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Optionen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/index.html b/gosa-core/doc/core/de/html/conference/index.html
new file mode 100644
index 0000000..45f3e74
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Konferenz-Verwaltung</TITLE>
+<META NAME="description" CONTENT="Konferenz-Verwaltung">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Konferenz-Verwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Konferenz-R�ume</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eigenschaften</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Optionen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/labels.pl b/gosa-core/doc/core/de/html/conference/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/conference/list_back.png b/gosa-core/doc/core/de/html/conference/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/conference/list_home.png b/gosa-core/doc/core/de/html/conference/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/conference/list_reload.png b/gosa-core/doc/core/de/html/conference/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/conference/list_root.png b/gosa-core/doc/core/de/html/conference/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/conference/node1.html b/gosa-core/doc/core/de/html/conference/node1.html
new file mode 100644
index 0000000..9a6e824
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node1.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Konferenz-R�ume</TITLE>
+<META NAME="description" CONTENT="Liste der Konferenz-R�ume">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Konferenz-R�ume</A>
+</H1>
+
+<P>
+Die Liste der Konferenz-R�ume dient als Ausgangspunkt f�r alle weiteren
+Schritte. Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue16">Telefon-Konferenzen</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Konferenz-R�ume geladen
+(�berschrift: <SPAN  CLASS="textit">Konferenz-Verwaltung)</SPAN>. Auf dieser Seite k�nnen
+Telefon-Konferenzen hinzugef�gt, bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in vier Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt den Namen der Telefon-Konferenz
+</LI>
+<LI>Die zweite Spalte enth�lt den Besitzer der Telefon-Konferenz
+</LI>
+<LI>Die dritte Spalte zeigt an, ob f�r die Telefon-Konferenz ein PIN voreingestellt
+wurde
+</LI>
+<LI>Die vierte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Bearbeiten, Entfernen).
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">
+, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden 
+</LI>
+</UL>
+Es ist weiterhin m�glich, die Anzeige der Konferenzen mithilfe von
+Filtern zu beeinflussen (Kasten <SPAN  CLASS="textbf">Filter</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue36">Nach Namen suchen :</SPAN>
+<P>
+- Klick auf <SPAN  CLASS="textbf">*</SPAN> zeigt alle Konferenzen an
+
+<P>
+<SPAN ID="hue39">- Klick auf einen Buchstaben zeigt alle</SPAN> Konferenzen
+<SPAN ID="hue41">an, deren Name mit dem gew�hlten Buchstaben beginnt</SPAN>
+<P>
+<SPAN ID="hue43">- Klick auf eine Zahl zeigt alle</SPAN> Konferenzen <SPAN ID="hue45">an,
+deren Name mit der gew�hlten Ziffer beginnt</SPAN>
+<P>
+</LI>
+<LI>Schnellsuche <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">: Suchkriterium (z.B.
+Name der Konferenz) eingeben, Klick auf Knopf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+
+<P>
+
+<P>
+<BR>
+Um einen neuen Konferenz-Raum zu erstellen, dr�cken Sie auf den Knopf
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_new_component.png"
+ ALT="Image select_new_component"> oberhalb der Liste.
+
+<P>
+Um einen bestehenden Konferenz-Raum zu bearbeiten, dr�cken Sie auf
+seinen Namen.
+
+<P>
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Eigenschaften</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Optionen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/node2.html b/gosa-core/doc/core/de/html/conference/node2.html
new file mode 100644
index 0000000..6cb4d51
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node3.html">Eigenschaften</A>
+<LI><A NAME="tex2html34"
+  HREF="node4.html">Optionen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/node3.html b/gosa-core/doc/core/de/html/conference/node3.html
new file mode 100644
index 0000000..cee6d85
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node3.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eigenschaften</TITLE>
+<META NAME="description" CONTENT="Eigenschaften">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Eigenschaften</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Konferenz-Name<SPAN ID="hue78">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der eindeutige Name des Konferenz-Raums</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Typ<SPAN ID="hue79">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Typ des Konferenz-Raums aus der Liste</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue80">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die aus der Liste die Abteilung, der der Konferenz-Raum
+zugeordnet werden soll.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kurze Beschreibung des Konferenz-Raums</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Lebenszeit (in Tagen)</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie die Zeit ein, die der Konferenz-Raum existieren soll</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefonnummer<SPAN ID="hue81">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Telefonnummer, unter der die Konferenz zu erreichen ist</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/node4.html b/gosa-core/doc/core/de/html/conference/node4.html
new file mode 100644
index 0000000..b3decb6
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node4.html
@@ -0,0 +1,86 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Optionen</TITLE>
+<META NAME="description" CONTENT="Optionen">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Optionen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>PIN voreinstellen
+<BR>
+W�hlen Sie diese Option, wenn Sie die Konferenz mit einem allgemeinen
+PIN sch�tzen m�chten. Geben Sie dazu die PIN in das Feld PIN ein.
+</LI>
+<LI>Konferenz aufnehmen
+
+<P>
+W�hlen Sie diese Option, wenn Sie die Konferenz aufzeichnen m�chten.
+W�hlen Sie dazu aus der Liste das gew�nschte Format f�r die Aufnahme.
+
+<P>
+</LI>
+<LI>Wartemusik bei Halten
+<BR>
+W�hlen Sie diese Option, wenn der oder die gehaltenen Anrufer eine
+Wartemusik h�ren sollen.
+</LI>
+<LI>Sitzungsmen� aktivieren
+
+<P>
+W�hlen Sie diese Option, wenn Sie das Sitzungsmen� aktivieren m�chten.
+
+<P>
+</LI>
+<LI>Benachrichtige �ber Zugang/Abgang von Teilnehmern
+
+<P>
+W�hlen Sie diese Option, um jedesmal, wenn ein Teilnehmer die Konferenz
+betritt oder verl�sst eine Benachrichtigung abzuspielen.
+
+<P>
+</LI>
+<LI>Z�hle Benutzer
+
+<P>
+W�hlen Sie diese Option, um die Anzahl der Teilnehmer zu z�hlen.
+
+<P>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/node5.html b/gosa-core/doc/core/de/html/conference/node5.html
new file mode 100644
index 0000000..7a73028
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node5.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter <SPAN  CLASS="textit">Referenzen</SPAN> werden alle Verbindungen dieser Telefon-Konferenz
+zu anderen Objekten im LDAP-Verzeichnis aufgelistet.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/node6.html b/gosa-core/doc/core/de/html/conference/node6.html
new file mode 100644
index 0000000..cd0fb8d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/conference/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Konferenz-Verwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/conference/ conference.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/conference/rocket.png b/gosa-core/doc/core/de/html/conference/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/conference/search.png b/gosa-core/doc/core/de/html/conference/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/search.png differ
diff --git a/gosa-core/doc/core/de/html/conference/select_new_component.png b/gosa-core/doc/core/de/html/conference/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/de/html/conference/select_new_component.png differ
diff --git a/gosa-core/doc/core/de/html/departments/WARNINGS b/gosa-core/doc/core/de/html/departments/WARNINGS
new file mode 100644
index 0000000..1f8a5da
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/departments/departments.css b/gosa-core/doc/core/de/html/departments/departments.css
new file mode 100644
index 0000000..0d410e4
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/departments.css
@@ -0,0 +1,37 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue75		{ color: #ff0000;  }
+#hue76		{ color: #ff0000;  }
+#hue77		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/departments/departments.html b/gosa-core/doc/core/de/html/departments/departments.html
new file mode 100644
index 0000000..d93b476
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/departments.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Abteilungsverwaltung</TITLE>
+<META NAME="description" CONTENT="Abteilungsverwaltung">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Abteilungsverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Abteilungen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Abteilung erstellen</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eine bestehende Abteilung bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Eigenschaften</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Ort</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Administrative Einstellungen</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/edit.png b/gosa-core/doc/core/de/html/departments/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/edit.png differ
diff --git a/gosa-core/doc/core/de/html/departments/index.html b/gosa-core/doc/core/de/html/departments/index.html
new file mode 100644
index 0000000..d93b476
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/index.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Abteilungsverwaltung</TITLE>
+<META NAME="description" CONTENT="Abteilungsverwaltung">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Abteilungsverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Abteilungen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Abteilung erstellen</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eine bestehende Abteilung bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Eigenschaften</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Ort</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Administrative Einstellungen</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/labels.pl b/gosa-core/doc/core/de/html/departments/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/departments/list_back.png b/gosa-core/doc/core/de/html/departments/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/departments/list_home.png b/gosa-core/doc/core/de/html/departments/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/departments/list_new_department.png b/gosa-core/doc/core/de/html/departments/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/list_new_department.png differ
diff --git a/gosa-core/doc/core/de/html/departments/list_reload.png b/gosa-core/doc/core/de/html/departments/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/departments/list_root.png b/gosa-core/doc/core/de/html/departments/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/departments/node1.html b/gosa-core/doc/core/de/html/departments/node1.html
new file mode 100644
index 0000000..31273d8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node1.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Abteilungen</TITLE>
+<META NAME="description" CONTENT="Liste der Abteilungen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Abteilungen</A>
+</H1>
+
+<P>
+Die Liste der Abteilungen dient als Ausgangspunkt f�r alle weiteren
+Schritte. Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf">Abteilungen</SPAN>
+aus der Kategorie <SPAN  CLASS="textbf"><SPAN ID="hue19">Administration</SPAN></SPAN> (Men�
+am linken Rand des Bildschirms). Bei Auswahl wird die Liste der Abteilungen
+geladen (�berschrift: Abteilungsverwaltung). Auf dieser Seite k�nnen
+Abteilungen hinzugef�gt, bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in zwei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt die Namen der Abteilungen 
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+Es ist weiterhin m�glich, die Anzeige der Abteilungen mithilfe von
+Filtern zu beeinflussen (Kasten <SPAN  CLASS="textbf">Filter</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+
+<P>
+
+<UL>
+<LI>Nach Namen suchen:
+
+<P>
+
+<UL>
+<LI>Klick auf * zeigt alle Abteilungen an
+</LI>
+<LI>Klick auf einen Buchstaben zeigt alle Abteilungen an, deren Name mit
+dem gew�hlten Buchstaben beginnt
+</LI>
+<LI>Klick auf eine Ziffer zeigt alle Abteilungen an, deren Name mit der
+gew�hlten Ziffer beginnt
+</LI>
+</UL>
+</LI>
+<LI>Schnellsuche (Textfeld <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">): Geben Sie
+einen Teil des Names (oder den ganzen Namen) der Abteilung ein, die
+Sie suchen und klicken Sie auf den Knopf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html22"
+  HREF="node2.html">Abteilung erstellen</A>
+<LI><A NAME="tex2html23"
+  HREF="node3.html">Eine bestehende Abteilung bearbeiten</A>
+<LI><A NAME="tex2html24"
+  HREF="node4.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html25"
+  HREF="node5.html">Eigenschaften</A>
+<LI><A NAME="tex2html26"
+  HREF="node6.html">Ort</A>
+<LI><A NAME="tex2html27"
+  HREF="node7.html">Administrative Einstellungen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html28"
+  HREF="node8.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node2.html b/gosa-core/doc/core/de/html/departments/node2.html
new file mode 100644
index 0000000..60a70d6
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node2.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Abteilung erstellen</TITLE>
+<META NAME="description" CONTENT="Abteilung erstellen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Abteilung erstellen</A>
+</H2>
+
+<P>
+Um eine neue Abteilung zu erstellen, dr�cken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_department.png"
+ ALT="Image list_new_department">.
+Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung
+bestehender Abteilungen.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node3.html b/gosa-core/doc/core/de/html/departments/node3.html
new file mode 100644
index 0000000..087ba94
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node3.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eine bestehende Abteilung bearbeiten</TITLE>
+<META NAME="description" CONTENT="Eine bestehende Abteilung bearbeiten">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Eine bestehende Abteilung bearbeiten</A>
+</H2>
+
+<P>
+Klicken Sie in der Liste der Abteilungen auf das Symbol <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./edit.png"
+ ALT="Image edit">
+in der Zeile der Abteilung, die Sie bearbeiten m�chten.
+
+<P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node4.html b/gosa-core/doc/core/de/html/departments/node4.html
new file mode 100644
index 0000000..5327a94
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node4.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html59"
+  HREF="node5.html">Eigenschaften</A>
+<LI><A NAME="tex2html60"
+  HREF="node6.html">Ort</A>
+<LI><A NAME="tex2html61"
+  HREF="node7.html">Administrative Einstellungen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node5.html b/gosa-core/doc/core/de/html/departments/node5.html
new file mode 100644
index 0000000..8d14070
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node5.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eigenschaften</TITLE>
+<META NAME="description" CONTENT="Eigenschaften">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Eigenschaften</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Name der Abteilung<SPAN ID="hue75">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Der Name der Abteilung</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung<SPAN ID="hue76">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Beschreibung (oder ein Kommentar) der Abteilung</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kategorie</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Kategorie der Abteilung</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue77">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Basis (die �bergeordnete Abteilung) der Abteilung</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node6.html b/gosa-core/doc/core/de/html/departments/node6.html
new file mode 100644
index 0000000..dd6325f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node6.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Ort</TITLE>
+<META NAME="description" CONTENT="Ort">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Ort</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Land</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das Land, in dem sich die Abteilung befindet</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Ort</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Ort, in dem sich die Abteilung befindet</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Anschrift der Abteilung</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Telefonnummer der Zentrale der Abteilung</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Faxnummer der Abteilung</TD>
+</TR>
+</TABLE>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node7.html b/gosa-core/doc/core/de/html/departments/node7.html
new file mode 100644
index 0000000..4350bab
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node7.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Administrative Einstellungen</TITLE>
+<META NAME="description" CONTENT="Administrative Einstellungen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Administrative Einstellungen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Abteilung als eigenst�ndige administrative Einheit kennzeichnen</SPAN>:
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node8.html b/gosa-core/doc/core/de/html/departments/node8.html
new file mode 100644
index 0000000..8c07ed0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node8.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter Referenzen werden alle Verbindungen dieser Abteilung zu anderen
+LDAP-Eintr�gen angezeigt.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/node9.html b/gosa-core/doc/core/de/html/departments/node9.html
new file mode 100644
index 0000000..a6df1f0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/departments/node9.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Abteilungsverwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/departments/ departments.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/departments/rocket.png b/gosa-core/doc/core/de/html/departments/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/departments/search.png b/gosa-core/doc/core/de/html/departments/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/departments/search.png differ
diff --git a/gosa-core/doc/core/de/html/faxreports/WARNINGS b/gosa-core/doc/core/de/html/faxreports/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/faxreports/faxreports.css b/gosa-core/doc/core/de/html/faxreports/faxreports.css
new file mode 100644
index 0000000..6a42f57
Binary files /dev/null and b/gosa-core/doc/core/de/html/faxreports/faxreports.css differ
diff --git a/gosa-core/doc/core/de/html/faxreports/faxreports.html b/gosa-core/doc/core/de/html/faxreports/faxreports.html
new file mode 100644
index 0000000..ce2bb4f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/faxreports.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Fax-Berichte</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue34"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/faxreports/index.html b/gosa-core/doc/core/de/html/faxreports/index.html
new file mode 100644
index 0000000..ce2bb4f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/index.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Fax-Berichte</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue34"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/faxreports/labels.pl b/gosa-core/doc/core/de/html/faxreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/faxreports/node1.html b/gosa-core/doc/core/de/html/faxreports/node1.html
new file mode 100644
index 0000000..bb53da5
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/node1.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax-Berichte</TITLE>
+<META NAME="description" CONTENT="Fax-Berichte">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Fax-Berichte</A>
+</H1>
+
+<P>
+Dieses Modul dient der Anzeige von Faxberichten. Dabei kann die Anzeige
+mithilfe von Filtern beeinflusst werden.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter <SPAN ID="hue34"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/faxreports/node2.html b/gosa-core/doc/core/de/html/faxreports/node2.html
new file mode 100644
index 0000000..5b064e3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/node2.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter <SPAN ID="hue34"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</H2>
+
+<P>
+Suche nach <SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN> in <SPAN  CLASS="textit">A<SMALL>BTEILUNG</SMALL></SPAN> w�hrend
+<SPAN  CLASS="textit">M<SMALL>ONAT</SMALL></SPAN> in <SPAN  CLASS="textit">J<SMALL>AHR:</SMALL></SPAN>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">A<SMALL>BTEILUNG</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Abteilung aus der Liste, auf die Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">M<SMALL>ONAT</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Monat aus der Liste, auf den Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">J<SMALL>AHR</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie das Jahr aus der Liste, auf das Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+</TABLE>
+
+<P>
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Suchen</SPAN> ganz rechts.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/faxreports/node3.html b/gosa-core/doc/core/de/html/faxreports/node3.html
new file mode 100644
index 0000000..da763a8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/faxreports/node3.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Zus�tzliches</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/faxreports/ faxreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/faxreports/rocket.png b/gosa-core/doc/core/de/html/faxreports/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/faxreports/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/fonreports/WARNINGS b/gosa-core/doc/core/de/html/fonreports/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/fonreports/fonreports.css b/gosa-core/doc/core/de/html/fonreports/fonreports.css
new file mode 100644
index 0000000..390ee8e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/fonreports.css
@@ -0,0 +1,35 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue35		{ color: #000000;  }
diff --git a/gosa-core/doc/core/de/html/fonreports/fonreports.html b/gosa-core/doc/core/de/html/fonreports/fonreports.html
new file mode 100644
index 0000000..609af0e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/fonreports.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Telefon-Berichte</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue35"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/fonreports/index.html b/gosa-core/doc/core/de/html/fonreports/index.html
new file mode 100644
index 0000000..609af0e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Telefon-Berichte</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue35"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/fonreports/labels.pl b/gosa-core/doc/core/de/html/fonreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/fonreports/node1.html b/gosa-core/doc/core/de/html/fonreports/node1.html
new file mode 100644
index 0000000..28cc356
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/node1.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon-Berichte</TITLE>
+<META NAME="description" CONTENT="Telefon-Berichte">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Telefon-Berichte</A>
+</H1>
+
+<P>
+Dieses Modul dient der Anzeige von Telefonberichten. Dabei kann die
+Anzeige mithilfe von Filtern beeinflusst werden.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter <SPAN ID="hue35"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/fonreports/node2.html b/gosa-core/doc/core/de/html/fonreports/node2.html
new file mode 100644
index 0000000..13242c2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/node2.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter <SPAN ID="hue35"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</H2>
+
+<P>
+Suche nach <SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN> in <SPAN  CLASS="textit">A<SMALL>BTEILUNG</SMALL></SPAN> w�hrend
+<SPAN  CLASS="textit">M<SMALL>ONAT</SMALL></SPAN> in <SPAN  CLASS="textit">J<SMALL>AHR:</SMALL></SPAN>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">A<SMALL>BTEILUNG</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Abteilung aus der Liste, auf die Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">M<SMALL>ONAT</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Monat aus der Liste, auf den Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">J<SMALL>AHR</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie das Jahr aus der Liste, auf das Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+</TABLE>
+
+<P>
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Suchen</SPAN> ganz rechts.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/fonreports/node3.html b/gosa-core/doc/core/de/html/fonreports/node3.html
new file mode 100644
index 0000000..f6a37e2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/fonreports/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Zus�tzliches</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/fonreports/ fonreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/fonreports/rocket.png b/gosa-core/doc/core/de/html/fonreports/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/fonreports/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/groups/WARNINGS b/gosa-core/doc/core/de/html/groups/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/groups/groups.css b/gosa-core/doc/core/de/html/groups/groups.css
new file mode 100644
index 0000000..08f053c
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/groups.css differ
diff --git a/gosa-core/doc/core/de/html/groups/groups.html b/gosa-core/doc/core/de/html/groups/groups.html
new file mode 100644
index 0000000..5b0d2c1
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/groups.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gruppenverwaltung</TITLE>
+<META NAME="description" CONTENT="Gruppenverwaltung">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Gruppenverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Gruppen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Gruppe anlegen</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eine bestehende Gruppe bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Allgemein</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Profile</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Freigaben</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Drucker</A>
+</UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Anwendungen</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Allgemein</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Alternative Adressen</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Geteilter Ordner</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</A>
+</UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Zugriffsregeln</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/index.html b/gosa-core/doc/core/de/html/groups/index.html
new file mode 100644
index 0000000..5b0d2c1
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/index.html
@@ -0,0 +1,96 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gruppenverwaltung</TITLE>
+<META NAME="description" CONTENT="Gruppenverwaltung">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Gruppenverwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Gruppen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Gruppe anlegen</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Eine bestehende Gruppe bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Allgemein</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Profile</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Freigaben</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Drucker</A>
+</UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Anwendungen</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Allgemein</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Alternative Adressen</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Geteilter Ordner</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</A>
+</UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Zugriffsregeln</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/labels.pl b/gosa-core/doc/core/de/html/groups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/groups/list_back.png b/gosa-core/doc/core/de/html/groups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/groups/list_home.png b/gosa-core/doc/core/de/html/groups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/groups/list_new_group.png b/gosa-core/doc/core/de/html/groups/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/list_new_group.png differ
diff --git a/gosa-core/doc/core/de/html/groups/list_reload.png b/gosa-core/doc/core/de/html/groups/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/groups/list_root.png b/gosa-core/doc/core/de/html/groups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/groups/mailto.png b/gosa-core/doc/core/de/html/groups/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/mailto.png differ
diff --git a/gosa-core/doc/core/de/html/groups/node1.html b/gosa-core/doc/core/de/html/groups/node1.html
new file mode 100644
index 0000000..612eb9d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node1.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Gruppen</TITLE>
+<META NAME="description" CONTENT="Liste der Gruppen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Gruppen</A>
+</H1>
+
+<P>
+Die Liste der Gruppen dient als Ausgangspunkt f�r alle weiteren Schritte.
+Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue16">Gruppen</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Gruppen geladen (�berschrift:
+Gruppenverwaltung). Auf dieser Seite k�nnen Gruppen hinzugef�gt, bearbeitet
+oder entfernt werden.
+
+<P>
+Die Liste ist in drei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann
+die Namen der Gruppn (alphabetisch sortiert)
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die verschiedenen
+Reiter der Gruppe (nur verf�gbar, wenn die entsprechende Erweiterung
+aktiviert ist). Sie dient daher ausserdem f�r einen schnellen �berblick
+�ber die aktivierten Erweiterungen einer Gruppe
+
+<P>
+
+<UL>
+<LI>Die m�glichen Symbole und ihre Bedeutung:
+<BR><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="CENTER">Symbol</TD>
+<TD ALIGN="CENTER">Bedeutung</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_groups.png"
+ ALT="Image select_groups"></TD>
+<TD ALIGN="CENTER">Gruppe verf�gt �ber UNIX-Eigenschaften</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./smallenv.png"
+ ALT="Image smallenv"></TD>
+<TD ALIGN="CENTER">Gruppe verf�gt �ber Umgebungs-Einstellungen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailto.png"
+ ALT="Image mailto"></TD>
+<TD ALIGN="CENTER">Gruppe verf�gt �ber ein Mail-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_winstation.png"
+ ALT="Image select_winstation"></TD>
+<TD ALIGN="CENTER">Gruppe verf�gt �ber SAMBA-Eigenschaften</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_application.png"
+ ALT="Image select_application"></TD>
+<TD ALIGN="CENTER">Gruppe verf�gt �ber Anwendungs-Eigenschaften</TD>
+</TR>
+</TABLE>
+</LI>
+</UL>
+</LI>
+<LI>Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die Kn�pfe (<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">)
+dienen zur Navigation innerhalb der Abteilungshierarchie:
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root"> Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back"> Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> Zur Basis des Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload"> Aktuelle Abteilung neu laden
+</LI>
+</UL>
+Es ist weiterhin m�glich, die Anzeige der Gruppen mithilfe von Filtern
+zu beeinflussen (Kasten <SPAN  CLASS="textbf">Filter</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue45">Nach Namen suchen:</SPAN>
+<P>
+
+<UL>
+<LI>Klick auf * zeigt alle Gruppen an
+</LI>
+<LI>Klick auf einen Buchstaben zeigt alle Gruppen an, deren Namen mit
+dem gew�hlten Buchstaben beginnt
+</LI>
+<LI>Klick auf eine Ziffer zeigt alle Gruppen an, deren Name mit der gew�hlten
+Ziffer beginnt
+</LI>
+</UL>
+</LI>
+<LI>Weitere Suchoptionen:
+<BR>(Die folgenden Filter arbeiten so, dass nur Gruppen angezeigt werden,
+die �ber mindestens eine der ausgew�hlten Optionen verf�gen; Standardm�ssig
+werden alle Gruppen angezeigt
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Zeige prim�re Gruppen</SPAN>: Zeigt Gruppen, die f�r mindestens einen
+Benutzer die prim�re Gruppe ist
+</LI>
+<LI><SPAN  CLASS="textit">Zeige Samba-Gruppen</SPAN>: Zeigt Gruppen, die �ber Samba-Eigenschaften
+verf�gen
+</LI>
+<LI><SPAN  CLASS="textit">Zeige Anwendungs-Gruppen</SPAN>: Zeigt Gruppen, die �ber Anwendungs-Eigenschaften
+verf�gen
+</LI>
+<LI><SPAN  CLASS="textit">Zeige E-Mail-Gruppen</SPAN>: Zeigt Gruppen, die �ber ein Mail-Konto
+verf�gen
+</LI>
+<LI><SPAN  CLASS="textit">Zeige Funktions-Gruppen</SPAN>: Zeigt Gruppen, die nur �ber die generischen
+Attribute verf�gen
+</LI>
+</UL>
+</LI>
+<LI>Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bieten die Textfelder
+im unteren Bereich des Kastens Filter: 
+
+<P>
+
+<UL>
+<LI>Im ersten Feld kann nach Namen gesucht werden, die auf den eingebenen
+regul�ren Ausdruck passen.
+</LI>
+<LI>Im zweiten Feld kann nach Gruppen anhand eines eingebenen Benutzerausdrucks
+gesucht werden, es werden also Gruppen gefunden, in denen ein auf
+den Suchausdruck passender Benutzer Mitglied ist.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node2.html">Gruppe anlegen</A>
+<UL>
+<LI><A NAME="tex2html34"
+  HREF="node3.html">Eine bestehende Gruppe bearbeiten</A>
+<LI><A NAME="tex2html35"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html36"
+  HREF="node5.html">Allgemein</A>
+<LI><A NAME="tex2html37"
+  HREF="node6.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html38"
+  HREF="node7.html">Profile</A>
+<LI><A NAME="tex2html39"
+  HREF="node8.html">Freigaben</A>
+<LI><A NAME="tex2html40"
+  HREF="node9.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html41"
+  HREF="node10.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html42"
+  HREF="node11.html">Drucker</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html43"
+  HREF="node12.html">Anwendungen</A>
+<LI><A NAME="tex2html44"
+  HREF="node13.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html45"
+  HREF="node14.html">Allgemein</A>
+<LI><A NAME="tex2html46"
+  HREF="node15.html">Alternative Adressen</A>
+<LI><A NAME="tex2html47"
+  HREF="node16.html">Geteilter Ordner</A>
+<LI><A NAME="tex2html48"
+  HREF="node17.html">Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html49"
+  HREF="node18.html">Zugriffsregeln</A>
+<LI><A NAME="tex2html50"
+  HREF="node19.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node10.html b/gosa-core/doc/core/de/html/groups/node10.html
new file mode 100644
index 0000000..e86b336
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node10.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug-Ger�te</TITLE>
+<META NAME="description" CONTENT="Hotplug-Ger�te">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+Hotplug-Ger�te</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node11.html b/gosa-core/doc/core/de/html/groups/node11.html
new file mode 100644
index 0000000..e41c089
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node11.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Drucker</TITLE>
+<META NAME="description" CONTENT="Drucker">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013500000000000000">
+Drucker</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node12.html b/gosa-core/doc/core/de/html/groups/node12.html
new file mode 100644
index 0000000..f8692bc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node12.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Anwendungen</TITLE>
+<META NAME="description" CONTENT="Anwendungen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Anwendungen</A>
+</H2>
+
+<P>
+Um die Anwendungs-Eigenschaften f�r diese Gruppe zu aktivieren, dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Anwendungen erstellen</SPAN>. Um die Anwendungs-Eigenschaften
+wieder zu entfernen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Anwendung entfernen</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node13.html b/gosa-core/doc/core/de/html/groups/node13.html
new file mode 100644
index 0000000..cb9297e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node13.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+Mail</A>
+</H2>
+
+<P>
+Ein Mail-Konto einer Gruppe ist ein gemeinsam genutzter Ordner (<SPAN  CLASS="textit">Shared
+Folder</SPAN>) auf einem IMAP-Server, d.h. dass mehr als ein Benutzer Zugriff
+auf die Mails in diesem Ordner hat. Diese Ordner sind sinnvoll, um
+z.B. Verteiler anzulegen, aber auch, um Dateien (wie z.B. Kalender
+oder Adressb�cher) abzulegen. Um ein Mail-Konto f�r die Gruppe zu
+erstellen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Neues Mail-Konto erzeugen</SPAN>.
+Um ein vorhandenes Mail-Konto wieder zu entfernen, dr�cken Sie auf
+den Knopf <SPAN  CLASS="textit">Mail-Konto entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html174"
+  HREF="node14.html">Allgemein</A>
+<LI><A NAME="tex2html175"
+  HREF="node15.html">Alternative Adressen</A>
+<LI><A NAME="tex2html176"
+  HREF="node16.html">Geteilter Ordner</A>
+<LI><A NAME="tex2html177"
+  HREF="node17.html">Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node14.html b/gosa-core/doc/core/de/html/groups/node14.html
new file mode 100644
index 0000000..584f163
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node14.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Allgemein</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Prim�re Adresse<SPAN ID="hue174">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die prim�re Adresse des gemeinsam genutzten Ordners</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>W�hlen Sie den Mail-Server aus der Liste, auf dem das Konto verwaltet
+wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kontingent-Nutzung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Zeigt die Ausnutzung des Kontingents an (Wenn ein Kontingent definiert
+wurde)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kontingent-Gr��e</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Gr�sse des Kontingents der Mail-Benutzung der Gruppe (in KB).
+Dies betrifft ein- u. ausgehende Mail.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node15.html b/gosa-core/doc/core/de/html/groups/node15.html
new file mode 100644
index 0000000..517a6f7
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node15.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative Adressen</TITLE>
+<META NAME="description" CONTENT="Alternative Adressen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Alternative Adressen</A>
+</H3>
+
+<P>
+Alternative Adressen sind weitere Adressen, unter denen der gemeinsam
+genutzte Ordner Mails empfangen soll.
+
+<P>
+Verwenden Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN> um eine alternative Adresse
+hinzuzuf�gen. Wenn Sie eine Adresse entfernen m�chten, markieren Sie
+diese und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node16.html b/gosa-core/doc/core/de/html/groups/node16.html
new file mode 100644
index 0000000..76d36ce
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node16.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Geteilter Ordner</TITLE>
+<META NAME="description" CONTENT="Geteilter Ordner">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+Geteilter Ordner</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Standard-Berechtigungen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Berechtigung, die f�r alle Benutzer gilt, die nicht
+explizit aufgef�hrt sind.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Mitglieder-Berechtigungen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Berechtigung, die f�r alle Benutzer gilt, die Mitglieder
+in dieser Gruppe sind.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=170>Weitere Email-Adresse</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Berechtung f�r eine weitere Email-Adresse. Dr�cken
+Sie auf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>, um die Adresse mit der Berechtigung hinzuzuf�gen.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node17.html b/gosa-core/doc/core/de/html/groups/node17.html
new file mode 100644
index 0000000..4f0b7b0
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node17.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</TITLE>
+<META NAME="description" CONTENT="Weiterleiten der Nachrichten an nicht-Gruppenmitglieder">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015400000000000000">
+Weiterleiten der Nachrichten an nicht-Gruppenmitglieder</A>
+</H3>
+
+<P>
+Mithilfe dieser Eigenschaften k�nnen Nachrichten, die an den gemeinsam
+genutzten Order geschickt werden, automatisch an weitere Adressen
+versendet werden. Geben Sie dazu in das Textfeld die Adresse ein,
+die Mails empfangen soll und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>.
+Wenn Sie einen oder mehrere Benutzer in die Liste aufnehmen m�chten,
+die in dieser Organisation bereits �ber ein Mail-Konto verf�gen, dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Lokale hinzuf�gen</SPAN>. W�hlen Sie den oder die
+gew�nschten Benutzer aus der Liste, in dem Sie diese markieren und
+klicken Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>, um Sie in die Liste zu
+�bernehmen.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node18.html b/gosa-core/doc/core/de/html/groups/node18.html
new file mode 100644
index 0000000..0b2d9f2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node18.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zugriffsregeln</TITLE>
+<META NAME="description" CONTENT="Zugriffsregeln">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Zugriffsregeln</A>
+</H2>
+
+<P>
+Mithilfe der Zugriffsregeln kann fein granuliert eingestellt werden,
+�ber welchen GOsa-spezifischen Rechte die Mitglieder dieser Gruppe
+verf�gen. 
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node19.html b/gosa-core/doc/core/de/html/groups/node19.html
new file mode 100644
index 0000000..f263740
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node19.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter Referenzen werden alle Verbindungen dieser Gruppe zu anderen
+Teilen des LDAP-Baumes angezeigt.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node2.html b/gosa-core/doc/core/de/html/groups/node2.html
new file mode 100644
index 0000000..00431c1
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node2.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gruppe anlegen</TITLE>
+<META NAME="description" CONTENT="Gruppe anlegen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Gruppe anlegen</A>
+</H2>
+
+<P>
+Um eine neue Gruppe anzulegen klicken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_group.png"
+ ALT="Image list_new_group">.
+Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung
+bestehender Gruppen.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html61"
+  HREF="node3.html">Eine bestehende Gruppe bearbeiten</A>
+<LI><A NAME="tex2html62"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node20.html b/gosa-core/doc/core/de/html/groups/node20.html
new file mode 100644
index 0000000..d26df63
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node20.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Gruppenverwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/groups/ groups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node3.html b/gosa-core/doc/core/de/html/groups/node3.html
new file mode 100644
index 0000000..c7a58dc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node3.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eine bestehende Gruppe bearbeiten</TITLE>
+<META NAME="description" CONTENT="Eine bestehende Gruppe bearbeiten">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Eine bestehende Gruppe bearbeiten</A>
+</H3>
+
+<P>
+Klicken Sie in der Liste der Gruppen auf den Gruppennamen der Gruppe,
+die Sie bearbeiten m�chten. Die Seite, die nun geladen wird, verf�gt
+�ber Reiter, die jeweils f�r eine Erweiterung stehen (aktuell sind
+dies u.a. Allgemein, Umgebung, Anwendungen, Mail, Zugriffsregeln,
+usw.).
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node4.html b/gosa-core/doc/core/de/html/groups/node4.html
new file mode 100644
index 0000000..daeafe8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node4.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generelle Informationen</TITLE>
+<META NAME="description" CONTENT="Generelle Informationen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Generelle Informationen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Um die Bearbeitung der Gruppe (auch neuer Gruppen) abzuschliessen,
+dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Speichern</SPAN> unten rechts; Um den Vorgang
+zu verwerfen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>, der sich
+ebenfalls unten rechts befindet.
+</LI>
+<LI>Alle Felder, die mit einem roten Sternchen <SPAN ID="hue168">*</SPAN> enden,
+sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+</LI>
+<LI>In der rechten, oberen Ecke findet sich der komplette dn der aktuell
+ge�ffneten Gruppe.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node5.html b/gosa-core/doc/core/de/html/groups/node5.html
new file mode 100644
index 0000000..b04d153
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node5.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Gruppenname<SPAN ID="hue170">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Der Name der Gruppe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Beschreibung (oder ein Kommentar) der Gruppe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue171">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=312>Die Abteilung der Gruppe (Die Verwaltung der Abteilungen geschieht
+�ber den Knopf <SPAN  CLASS="textbf"><SPAN ID="hue79">Abteilungen</SPAN></SPAN> im linken Men�).</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Erzwinge GID</SPAN>: Mit dieser Funktion kann die UNIX GID einmalig
+auf bestimmten Wert gesetzt werden
+</LI>
+<LI>[Samba-Gruppe] <SPAN  CLASS="textit">in der Domain</SPAN> [Dom�ne]: Diese Einstellung
+legt fest, ob die Gruppe auch f�r Windows-Benutzer aktviert ist. Dabei
+k�nnen Sie die folgenden Einstellungsm�glichkeiten w�hlen:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Samba-Gruppe</SPAN>: Die Gruppe ist eine normale Samba-Gruppe
+</LI>
+<LI><SPAN  CLASS="textit">Dom�nen-Administratoren</SPAN>: Die Gruppe ist speziell f�r Dom�nen-Administratoren
+</LI>
+<LI><SPAN  CLASS="textit">Dom�nen-Benutzer</SPAN>: Die Gruppe ist speziell f�r Dom�nen-Benutzer
+</LI>
+<LI><SPAN  CLASS="textit">Dom�nen-G�ste</SPAN>: Die Gruppe ist speziell f�r Dom�nen-G�ste
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Mitglieder sind in einer Telefon-Gruppe</SPAN>: Diese Funktion dient
+dazu, organisatorische Bereiche auch telefonisch abzutrennen. Weitere
+Dokumentation wird folgen.
+</LI>
+<LI><SPAN  CLASS="textit">Gruppenmitglieder</SPAN>: Die Gruppe verf�gt �ber Mitglieder, die
+in dieser Liste aufgef�hrt werden. Es k�nnen Mitglieder hinzugef�gt
+und entfernt werden:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Hinzuf�gen</SPAN>: Um ein Gruppenmitglieder hinzuzuf�gen, dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. W�hlen Sie aus der Liste einen
+oder mehrere Benutzer und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>.
+Die neuen Mitglieder werden nun in der Liste aufgef�hrt.
+<BR>
+Wenn Sie den Vorgang abbrechen m�chten, dr�cken Sie auf den Knopf
+<SPAN  CLASS="textit">Abbrechen</SPAN>.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node6.html b/gosa-core/doc/core/de/html/groups/node6.html
new file mode 100644
index 0000000..759bd2d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node6.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Umgebung</TITLE>
+<META NAME="description" CONTENT="Umgebung">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Umgebung</A>
+</H2>
+
+<P>
+Um die Umgebungs-Erweiterung zu aktivieren, dr�cken Sie auf den Knopf
+<SPAN  CLASS="textit">Umgebungs-Erweiterung hinzuf�gen</SPAN>. Um die Umgebungs-Erweiterung
+wieder zu entfernen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Umgebungs-Erweiterung
+entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html101"
+  HREF="node7.html">Profile</A>
+<LI><A NAME="tex2html102"
+  HREF="node8.html">Freigaben</A>
+<LI><A NAME="tex2html103"
+  HREF="node9.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html104"
+  HREF="node10.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html105"
+  HREF="node11.html">Drucker</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node7.html b/gosa-core/doc/core/de/html/groups/node7.html
new file mode 100644
index 0000000..abc6245
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node7.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profile</TITLE>
+<META NAME="description" CONTENT="Profile">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Profile</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Benutze Profil-Verwaltung</SPAN>:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Profil-Pfad</SPAN>:
+</LI>
+<LI><SPAN  CLASS="textit">Profil-Kontingent</SPAN>:
+</LI>
+<LI><SPAN  CLASS="textit">Profil lokal zwischenspeichern</SPAN>:
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Kiosk-Profil</SPAN>: Wenn die Gruppe �ber ein Kiosk-Profil verf�gen
+soll, w�hlen Sie das gew�nschte Profil aus der Liste. 
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Verwalten</SPAN>: Um die Kiosk-Profile zu verwalten, klicken Sie auf
+den Knopf <SPAN  CLASS="textit">Verwalten</SPAN>. Hier k�nnen Sie vorhandene Kiosk-Profile
+entfernen, sowie neue Kiosk-Profile hinzuf�gen.
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Aufl�sung �nderbar w�hrend des Betriebs</SPAN>: Wenn Sie m�chten,
+dass Mitglieder dieser Gruppe die Aufl�sung Ihres Arbeitsplatzrechners
+w�hrend der Sitzung �ndern d�rfen, aktivieren Sie diese Option.
+</LI>
+<LI><SPAN  CLASS="textit">Aufl�sung</SPAN>: Legen Sie die Aufl�sung f�r Arbeitsplatzrechner,
+die dieses Kiosk-Profil verwenden, fest, indem Sie die gew�nschte
+Aufl�sung aus der Liste w�hlen. Um automatisch die beste Aufl�sung
+zu verwenden, w�hlen Sie <SPAN  CLASS="textit">auto</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node8.html b/gosa-core/doc/core/de/html/groups/node8.html
new file mode 100644
index 0000000..9598e9e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node8.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Freigaben</TITLE>
+<META NAME="description" CONTENT="Freigaben">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Freigaben</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/node9.html b/gosa-core/doc/core/de/html/groups/node9.html
new file mode 100644
index 0000000..6e006b7
--- /dev/null
+++ b/gosa-core/doc/core/de/html/groups/node9.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Anmelde-Skripte</TITLE>
+<META NAME="description" CONTENT="Anmelde-Skripte">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Anmelde-Skripte</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/groups/rocket.png b/gosa-core/doc/core/de/html/groups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/groups/select_application.png b/gosa-core/doc/core/de/html/groups/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/select_application.png differ
diff --git a/gosa-core/doc/core/de/html/groups/select_groups.png b/gosa-core/doc/core/de/html/groups/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/select_groups.png differ
diff --git a/gosa-core/doc/core/de/html/groups/select_winstation.png b/gosa-core/doc/core/de/html/groups/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/select_winstation.png differ
diff --git a/gosa-core/doc/core/de/html/groups/smallenv.png b/gosa-core/doc/core/de/html/groups/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/de/html/groups/smallenv.png differ
diff --git a/gosa-core/doc/core/de/html/logview/WARNINGS b/gosa-core/doc/core/de/html/logview/WARNINGS
new file mode 100644
index 0000000..379a3b5
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/logview/index.html b/gosa-core/doc/core/de/html/logview/index.html
new file mode 100644
index 0000000..24b4ae3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/index.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Systemprotokolle</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/logview/labels.pl b/gosa-core/doc/core/de/html/logview/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/logview/logview.css b/gosa-core/doc/core/de/html/logview/logview.css
new file mode 100644
index 0000000..0462333
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/logview.css
@@ -0,0 +1,33 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
diff --git a/gosa-core/doc/core/de/html/logview/logview.html b/gosa-core/doc/core/de/html/logview/logview.html
new file mode 100644
index 0000000..24b4ae3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/logview.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Systemprotokolle</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/logview/node1.html b/gosa-core/doc/core/de/html/logview/node1.html
new file mode 100644
index 0000000..5e02145
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/node1.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Systemprotokolle</TITLE>
+<META NAME="description" CONTENT="Systemprotokolle">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Systemprotokolle</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter </A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/logview/node2.html b/gosa-core/doc/core/de/html/logview/node2.html
new file mode 100644
index 0000000..3af897c
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/node2.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter </A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Zeige Rechner</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Rechners aus der Liste, dessen Protokoll Sie anzeigen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Priorit�t</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die minimal Priorit�t der Meldungen, damit diese angezeigt
+werden.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Zeit-Intervall</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie das Zeit-Intervall aus der Liste, auf die die Meldungen
+beschr�nkt werden.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Suche nach</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Zeichenkette, nach der gesucht werden soll (oder '*' f�r alle
+Meldungen)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Regelsatz</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Erstellen Sie aus der Suche einen Regelsatz, um sp�tere Anzeigen zu
+beschleunigen.</TD>
+</TR>
+</TABLE>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/logview/node3.html b/gosa-core/doc/core/de/html/logview/node3.html
new file mode 100644
index 0000000..e4cc5d7
--- /dev/null
+++ b/gosa-core/doc/core/de/html/logview/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Zus�tzliches</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/logview/ logview.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/WARNINGS b/gosa-core/doc/core/de/html/macro/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/macro/false.png b/gosa-core/doc/core/de/html/macro/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/false.png differ
diff --git a/gosa-core/doc/core/de/html/macro/index.html b/gosa-core/doc/core/de/html/macro/index.html
new file mode 100644
index 0000000..2aeb462
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/index.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon-Makro-Verwaltung</TITLE>
+<META NAME="description" CONTENT="Telefon-Makro-Verwaltung">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Telefon-Makro-Verwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Makros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generelle Informationen</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Allgemein</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Parameter</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/labels.pl b/gosa-core/doc/core/de/html/macro/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/macro/list_back.png b/gosa-core/doc/core/de/html/macro/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/macro/list_home.png b/gosa-core/doc/core/de/html/macro/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/macro/list_new_macro.png b/gosa-core/doc/core/de/html/macro/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/list_new_macro.png differ
diff --git a/gosa-core/doc/core/de/html/macro/list_reload.png b/gosa-core/doc/core/de/html/macro/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/macro/list_root.png b/gosa-core/doc/core/de/html/macro/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/macro/macro.css b/gosa-core/doc/core/de/html/macro/macro.css
new file mode 100644
index 0000000..c185b15
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/macro.css
@@ -0,0 +1,46 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue100		{ color: #ff0000;  }
+#hue101		{ color: #ff0000;  }
+#hue16		{ color: #0000ff;  }
+#hue35		{ color: #000000;  }
+#hue37		{ color: #000000;  }
+#hue42		{ color: #000000;  }
+#hue47		{ color: #000000;  }
+#hue71		{ color: #000000;  }
+#hue95		{ color: #000000;  }
+#hue96		{ color: #000000;  }
+#hue97		{ color: #ff0000;  }
+#hue99		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/macro/macro.html b/gosa-core/doc/core/de/html/macro/macro.html
new file mode 100644
index 0000000..2aeb462
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/macro.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon-Makro-Verwaltung</TITLE>
+<META NAME="description" CONTENT="Telefon-Makro-Verwaltung">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Telefon-Makro-Verwaltung</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Makros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generelle Informationen</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Allgemein</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Parameter</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node1.html b/gosa-core/doc/core/de/html/macro/node1.html
new file mode 100644
index 0000000..d776bda
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node1.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Makros</TITLE>
+<META NAME="description" CONTENT="Liste der Makros">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Makros</A>
+</H1>
+
+<P>
+Die Liste der Makros dient als Ausgangspunkt f�r alle weiteren Schritte.
+Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue16">Telefon-Makros</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Telefon-Makros geladen
+(�berschrift: <SPAN  CLASS="textit">Telefon-Makro-Verwaltung)</SPAN>. Auf dieser Seite k�nnen
+Makros hinzugef�gt, bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in drei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann
+die Namen der Makros (alphabetisch sortiert).
+</LI>
+<LI>Die zweite Spalte zeigt an, ob das Makro f�r Benutzer sichtbar ist
+(Wenn es sichtbar ist, wird <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./true.png"
+ ALT="Image true"> angezeigt,
+anderenfalls<IMG
+  WIDTH="17" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
+ SRC="./false.png"
+ ALT="Image false">).
+</LI>
+<LI>Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Bearbeiten, Entfernen).
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">
+, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+<SPAN ID="hue35">Es ist weiterhin m�glich, die Anzeige der Makros
+mithilfe von Filtern zu beeinflussen (Kasten</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue37">Filter</SPAN></SPAN>
+<SPAN ID="hue95"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> am rechten Rand): </SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">Nach Namen suchen:</SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue96">Klick auf * zeigt alle Makros an</SPAN>
+</LI>
+<LI><SPAN ID="hue47">Klick auf einen Buchstaben zeigt alle Makros an,
+deren Name mit dem gew�hlten Buchstaben beginnt</SPAN>
+</LI>
+<LI>Klick auf eine Ziffer zeigt alle Makros an, deren Name mit der gew�hlten
+Ziffer beginnt
+</LI>
+</UL>
+</LI>
+<LI>Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bietet das Textfeld
+im unteren Bereich des Kastens <SPAN  CLASS="textbf">Filter</SPAN> (beginnt mit dem Symbol
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">). In dieses Feld k�nnen Sie beliebige
+Buchstaben/Ziffern-Kombinationen eingeben, um die Suche einzuschr�nken.
+Um die Suchergebnisse in der Liste anzeigen zu lassen, Klicken Sie
+auf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR>
+Um ein neues Makro anzulegen, dr�cken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_macro.png"
+ ALT="Image list_new_macro">
+oberhalb der Liste. Wenn Sie ein bestehendes Makro bearbeiten m�chen,
+dr�cken Sie auf den Namen des Makros.
+
+<P>
+Die Seite, die nun geladen wird, verf�gt �ber Reiter, die im Folgenden
+n�her erl�utert werden.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><UL>
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Generelle Informationen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Allgemein</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Parameter</A>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node2.html b/gosa-core/doc/core/de/html/macro/node2.html
new file mode 100644
index 0000000..ea89bdf
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node2.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generelle Informationen</TITLE>
+<META NAME="description" CONTENT="Generelle Informationen">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00010100000000000000">
+Generelle Informationen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Um die Bearbeitung des Makros (auch neuer Makros) abzuschliessen,
+dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Speichern</SPAN> unten rechts; Um den Vorgang
+zu verwerfen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>, der sich
+ebenfalls unten rechts befindet.
+</LI>
+<LI>Alle Felder, die mit einem roten Sternchen <SPAN ID="hue97">*</SPAN> enden,
+sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+</LI>
+<LI>In der rechten, oberen Ecke findet sich der komplette <SPAN  CLASS="textit">dn</SPAN> des
+aktuell ge�ffneten Makros.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node3.html b/gosa-core/doc/core/de/html/macro/node3.html
new file mode 100644
index 0000000..d419937
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node3.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Makro-Name<SPAN ID="hue99">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der eindeutige Name des Makros</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Angezeigter Nam<SPAN ID="hue71">e</SPAN><SPAN ID="hue100">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Name, der in der Liste der Makros angezeigt werden soll</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue101">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie aus der Liste die Abteilung, der dieses Makro zugeordnet
+werden soll</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kurze Beschreibung des Makros</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Sichtbar f�r Benutzer</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>?</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI>Makro-Inhalt
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node4.html b/gosa-core/doc/core/de/html/macro/node4.html
new file mode 100644
index 0000000..8081644
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node4.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Parameter</TITLE>
+<META NAME="description" CONTENT="Parameter">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Parameter</A>
+</H2>
+
+<P>
+Alle m�glichen Parameter, die im Feld <SPAN  CLASS="textit">Makro-Inhalt</SPAN> des Reiters
+<SPAN  CLASS="textbf">Allgemein</SPAN> verwendet wurden, k�nnen auf dieser Seite konfiguriert
+werden.
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Argument</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der verwendete Name im Makro-Inhalt</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Name</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der allgemeine Name des Parameters</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Typ</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Datentyp des Parameters</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Standardwert</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Standardwert des Parameters</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node5.html b/gosa-core/doc/core/de/html/macro/node5.html
new file mode 100644
index 0000000..1af45d1
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node5.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter <SPAN  CLASS="textit">Referenzen</SPAN> werden alle Verbindungen dieses Makros zu
+anderen Objekten im LDAP-Verzeichnis aufgelistet.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/node6.html b/gosa-core/doc/core/de/html/macro/node6.html
new file mode 100644
index 0000000..c6eccdd
--- /dev/null
+++ b/gosa-core/doc/core/de/html/macro/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Telefon-Makro-Verwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/macro/ macro.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/macro/rocket.png b/gosa-core/doc/core/de/html/macro/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/macro/search.png b/gosa-core/doc/core/de/html/macro/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/search.png differ
diff --git a/gosa-core/doc/core/de/html/macro/true.png b/gosa-core/doc/core/de/html/macro/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/de/html/macro/true.png differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/WARNINGS b/gosa-core/doc/core/de/html/mailqueue/WARNINGS
new file mode 100644
index 0000000..5ae6e75
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/WARNINGS
@@ -0,0 +1,3 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/mailqueue/edittrash.png b/gosa-core/doc/core/de/html/mailqueue/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/edittrash.png differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/index.html b/gosa-core/doc/core/de/html/mailqueue/index.html
new file mode 100644
index 0000000..6a235c2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/index.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Mail-Warteschlange</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue43"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Aktionen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/labels.pl b/gosa-core/doc/core/de/html/mailqueue/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/mailqueue/mailq_hold.png b/gosa-core/doc/core/de/html/mailqueue/mailq_hold.png
new file mode 100644
index 0000000..2083104
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/mailq_hold.png differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/mailq_requeue.png b/gosa-core/doc/core/de/html/mailqueue/mailq_requeue.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/mailq_requeue.png differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/mailq_unhold.png b/gosa-core/doc/core/de/html/mailqueue/mailq_unhold.png
new file mode 100644
index 0000000..d07edf3
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/mailq_unhold.png differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/mailqueue.css b/gosa-core/doc/core/de/html/mailqueue/mailqueue.css
new file mode 100644
index 0000000..06ffa8d
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/mailqueue.css differ
diff --git a/gosa-core/doc/core/de/html/mailqueue/mailqueue.html b/gosa-core/doc/core/de/html/mailqueue/mailqueue.html
new file mode 100644
index 0000000..6a235c2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/mailqueue.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zus�tzliches</TITLE>
+<META NAME="description" CONTENT="Zus�tzliches">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN=CENTER><SPAN  CLASS="textbf">Zus�tzliches</SPAN></H1>
+</P>
+<HR>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Mail-Warteschlange</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue43"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Aktionen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/node1.html b/gosa-core/doc/core/de/html/mailqueue/node1.html
new file mode 100644
index 0000000..ff6ecbc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/node1.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail-Warteschlange</TITLE>
+<META NAME="description" CONTENT="Mail-Warteschlange">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Mail-Warteschlange</A>
+</H1>
+
+<P>
+Dieses Modul dient der Anzeige der Mail-Warteschlange. Dabei kann
+die Anzeige mithilfe von Filtern beeinflusst werden.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html17"
+  HREF="node2.html">Filter <SPAN ID="hue43"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+<LI><A NAME="tex2html18"
+  HREF="node3.html">Aktionen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/node2.html b/gosa-core/doc/core/de/html/mailqueue/node2.html
new file mode 100644
index 0000000..ad19c1b
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/node2.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter <SPAN ID="hue43"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</H2>
+
+<P>
+Suche nach <SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN> in <SPAN  CLASS="textit">W<SMALL>ARTESCHLANGE</SMALL></SPAN>
+mit Status: <SPAN  CLASS="textit">S<SMALL>TATUS</SMALL></SPAN> innerhalb der letzten <SPAN  CLASS="textit">Z<SMALL>EITBESCHR�NKUNG:</SMALL></SPAN>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">Z<SMALL>EICHENKETTE</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">W<SMALL>ARTESCHLANGE</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Mail-Server aus der Liste, auf die Sie die Suche begrenzen
+m�chten, oder <SPAN  CLASS="textit">Alle</SPAN>, wenn Sie alle Warteschlangen durchsuchen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">S<SMALL>TATUS</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den Status aus der Liste, auf den Sie die Suche begrenzen
+m�chten.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN  CLASS="textit">Z<SMALL>EITBESCHR�NKUNG</SMALL></SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die zeitliche Beschr�nkung aus der Liste, auf die Sie die
+Suche begrenzen m�chten.</TD>
+</TR>
+</TABLE>
+
+<P>
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Suchen</SPAN> ganz rechts.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/node3.html b/gosa-core/doc/core/de/html/mailqueue/node3.html
new file mode 100644
index 0000000..28c0336
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/node3.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Aktionen</TITLE>
+<META NAME="description" CONTENT="Aktionen">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Aktionen</A>
+</H2>
+
+<P>
+Mit den gefundenen Nachrichten sind weitere Aktionen m�glich. Um eine
+Aktion auf eine oder mehrere Nachrichten anzuwenden, markieren Sie
+die gew�nschten Nachrichten in der Liste und dr�cken Sie auf eines
+der folgenden Symbole:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./edittrash.png"
+ ALT="Image edittrash">: Nachricht(en) aus der Warteschlange
+entfernen
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailq_hold.png"
+ ALT="Image mailq_hold">: Nachricht(en) aus der Warteschlange
+vorhalten
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailq_unhold.png"
+ ALT="Image mailq_unhold">: Nachricht(en) aus der Warteschlange
+ausliefern
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailq_requeue.png"
+ ALT="Image mailq_requeue">: Nachricht(en) neu in die
+Warteschlange einreihen
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/node4.html b/gosa-core/doc/core/de/html/mailqueue/node4.html
new file mode 100644
index 0000000..4d75ace
--- /dev/null
+++ b/gosa-core/doc/core/de/html/mailqueue/node4.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="mailqueue">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="mailqueue.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Zus�tzliches</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/mailqueue/ mailqueue.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/mailqueue/rocket.png b/gosa-core/doc/core/de/html/mailqueue/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/mailqueue/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/WARNINGS b/gosa-core/doc/core/de/html/ogroups/WARNINGS
new file mode 100644
index 0000000..bb43da2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/ogroups/index.html b/gosa-core/doc/core/de/html/ogroups/index.html
new file mode 100644
index 0000000..eae4dc2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Objektgruppenverwaltung</TITLE>
+<META NAME="description" CONTENT="Objektgruppenverwaltung">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER">Objektgruppenverwaltung</H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Objektgruppen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/labels.pl b/gosa-core/doc/core/de/html/ogroups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/ogroups/list_back.png b/gosa-core/doc/core/de/html/ogroups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/list_home.png b/gosa-core/doc/core/de/html/ogroups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/list_new_ogroup.png b/gosa-core/doc/core/de/html/ogroups/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/list_reload.png b/gosa-core/doc/core/de/html/ogroups/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/list_root.png b/gosa-core/doc/core/de/html/ogroups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/node1.html b/gosa-core/doc/core/de/html/ogroups/node1.html
new file mode 100644
index 0000000..3bd4bb6
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/node1.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Objektgruppen</TITLE>
+<META NAME="description" CONTENT="Liste der Objektgruppen">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Objektgruppen</A>
+</H1>
+
+<P>
+Eine Objektgruppe ist eine heterogene Gruppenvariante, die es erlaubt,
+beliebige Arten von (LDAP-) Objekten zu einer logischen Einheit zusammenzufassen.
+Sie erreichen die Liste der Objektgruppen �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue14">Objektgruppen</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die <SPAN  CLASS="textit">Liste der Objektgruppen</SPAN>
+geladen (�berschrift: <SPAN  CLASS="textit">Objektgruppen</SPAN>). Auf dieser Seite k�nnen
+Objektgruppen hinzugef�gt, bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in drei Spalten aufgeteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte zeigt die Namen der Objektgruppen.
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die Eigenschaften
+der Objektgruppe. Sie dient ausserdem f�r einen schnellen �berblick
+�ber die verschiedenen Objekt-Typen, die die Objektgruppe enth�lt.
+</LI>
+<LI>Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+
+<P>
+<BR>
+Es ist weiterhin m�glich, die Anzeige der Objektgruppen mithilfe von
+Filter zu beeinflussen (Kasten Filter <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">
+am rechten Rand):
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue35">Nach Namen suchen:</SPAN>
+<P>
+
+<UL>
+<LI>Klick auf <SPAN  CLASS="textit">*</SPAN> zeigt alle Objektgruppen an
+</LI>
+<LI>Klick auf einen Buchstaben zeigt alle Objektgruppen an, deren Name
+mit dem gew�hlten Buchstaben beginnt
+</LI>
+<LI>Klick auf eine Ziffer zeigt alle Objektgruppen an, deren Name mit
+der gew�hlten Ziffer beginnt
+</LI>
+</UL>
+</LI>
+<LI>Weitere Suchoptionen:
+
+<P>
+
+<UL>
+<LI>W�hlen Sie eine oder mehrere der Optionen <SPAN  CLASS="textit">Zeige Gruppen mit
+...</SPAN>, um die Anzeige auf eben diese Objektgruppen zu beschr�nken
+</LI>
+</UL>
+</LI>
+<LI>Schnellsuche (Feld <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">): Geben Sie mindestens
+einen Teil des Namens der Objektgruppe, die Sie suchen, ein und dr�cken
+Sie auf den Knopf <SPAN  CLASS="textit">Filter anwenden</SPAN>, um die Suche durchzuf�hren.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+Um eine Objektgruppe zu erstellen, dr�cken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_ogroup.png"
+ ALT="Image list_new_ogroup">
+oberhalb der Liste. Um eine bestehende Objektgruppe zu bearbeiten,
+klicken Sie auf den Namen der gew�nschten Objektgruppe. Es �ffnet
+sich in beiden F�llen eine neue Seite, die die folgenden Reiter enth�lt:
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html17"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html18"
+  HREF="node3.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/node2.html b/gosa-core/doc/core/de/html/ogroups/node2.html
new file mode 100644
index 0000000..4cb6c87
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/node2.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Gruppenname<SPAN ID="hue65">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der eindeutige Name der Objektgruppe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Beschreibung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kurze Beschreibung / kurzer Kommentar zur Gruppe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue66">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie aus der Liste die Abteilung, der diese Objektgruppe zugeordnet
+werden soll</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Zusammengefasste Objekte</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Liste der zusammengefassten Objekte. Dr�cken Sie <SPAN  CLASS="textit">Hinzuf�gen</SPAN>,
+um eines oder mehrere Objekte hinzuzuf�gen. Wenn Sie eines oder mehrere
+Objekte aus der Gruppe entfernen m�chten, markieren Sie diese und
+dr�cken Sie den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/node3.html b/gosa-core/doc/core/de/html/ogroups/node3.html
new file mode 100644
index 0000000..8d88401
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/node3.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter Referenzen werden alle Verbindungen dieses LDAP-Eintrags zu
+anderen Eintr�gen im Verzeichnis aufgelistet.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/node4.html b/gosa-core/doc/core/de/html/ogroups/node4.html
new file mode 100644
index 0000000..79d749a
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/node4.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG>Objektgruppenverwaltung</STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/ogroups/ ogroups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/ogroups.css b/gosa-core/doc/core/de/html/ogroups/ogroups.css
new file mode 100644
index 0000000..f17d5b2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/ogroups.css
@@ -0,0 +1,38 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+#hue14		{ color: #0000ff;  }
+#hue35		{ color: #000000;  }
+#hue65		{ color: #ff0000;  }
+#hue66		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/de/html/ogroups/ogroups.html b/gosa-core/doc/core/de/html/ogroups/ogroups.html
new file mode 100644
index 0000000..eae4dc2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/ogroups/ogroups.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Objektgruppenverwaltung</TITLE>
+<META NAME="description" CONTENT="Objektgruppenverwaltung">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER">Objektgruppenverwaltung</H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Objektgruppen</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Allgemein</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/ogroups/rocket.png b/gosa-core/doc/core/de/html/ogroups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/ogroups/search.png b/gosa-core/doc/core/de/html/ogroups/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/ogroups/search.png differ
diff --git a/gosa-core/doc/core/de/html/users/WARNINGS b/gosa-core/doc/core/de/html/users/WARNINGS
new file mode 100644
index 0000000..bb43da2
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/de/html/users/fax_small.png b/gosa-core/doc/core/de/html/users/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/fax_small.png differ
diff --git a/gosa-core/doc/core/de/html/users/index.html b/gosa-core/doc/core/de/html/users/index.html
new file mode 100644
index 0000000..3215e26
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/index.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Benutzerverwaltung</TITLE>
+<META NAME="description" CONTENT="Benutzerverwaltung">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Benutzerverwaltung</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Benutzer</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Benutzerkonto anlegen</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Ein bestehendes Benutzerkonto bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Pers�nliche Informationen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Angabe zur Organisationseinheit</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Generic</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Gruppenmitgliedschaft</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Konto</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">System-Vertrauen</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Profile</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Kiosk-Profil</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Freigaben</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Drucker</A>
+</UL>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Allgemein</A>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Alternative Adressen</A>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Mail-Einstellungen</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Erweiterte Mail-Einstellungen</A>
+</UL>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Allgemein</A>
+<LI><A NAME="tex2html29"
+  HREF="node27.html">Terminal-Server</A>
+<LI><A NAME="tex2html30"
+  HREF="node28.html">Zugriffsoptionen</A>
+</UL>
+<LI><A NAME="tex2html31"
+  HREF="node29.html">Konnektivit�t</A>
+<UL>
+<LI><A NAME="tex2html32"
+  HREF="node30.html">Proxy Konto</A>
+<LI><A NAME="tex2html33"
+  HREF="node31.html">FTP Konto</A>
+<LI><A NAME="tex2html34"
+  HREF="node32.html">WebDAV-Konto</A>
+<LI><A NAME="tex2html35"
+  HREF="node33.html">phpGroupware-Konto</A>
+<LI><A NAME="tex2html36"
+  HREF="node34.html">Intranet-Konto</A>
+<LI><A NAME="tex2html37"
+  HREF="node35.html">Opengroupware</A>
+<LI><A NAME="tex2html38"
+  HREF="node36.html">PPTP-Konto</A>
+<LI><A NAME="tex2html39"
+  HREF="node37.html">PHPScheduleit-Konto</A>
+<LI><A NAME="tex2html40"
+  HREF="node38.html">GLPI-Konto</A>
+</UL>
+<LI><A NAME="tex2html41"
+  HREF="node39.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html42"
+  HREF="node40.html">Allgemein</A>
+<LI><A NAME="tex2html43"
+  HREF="node41.html">Auslieferungsmethode</A>
+<LI><A NAME="tex2html44"
+  HREF="node42.html">Alternative Fax-Nummern</A>
+<LI><A NAME="tex2html45"
+  HREF="node43.html">Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html46"
+  HREF="node44.html">Bearbeiten:</A>
+</UL>
+</UL>
+<LI><A NAME="tex2html47"
+  HREF="node45.html">Telefon</A>
+<UL>
+<LI><A NAME="tex2html48"
+  HREF="node46.html">Telefonnummern</A>
+<LI><A NAME="tex2html49"
+  HREF="node47.html">Telefon-Hardware</A>
+<LI><A NAME="tex2html50"
+  HREF="node48.html">Telefon-Makro</A>
+</UL>
+<LI><A NAME="tex2html51"
+  HREF="node49.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html52"
+  HREF="node50.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/labels.pl b/gosa-core/doc/core/de/html/users/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/de/html/users/list_back.png b/gosa-core/doc/core/de/html/users/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/list_back.png differ
diff --git a/gosa-core/doc/core/de/html/users/list_home.png b/gosa-core/doc/core/de/html/users/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/list_home.png differ
diff --git a/gosa-core/doc/core/de/html/users/list_new_user.png b/gosa-core/doc/core/de/html/users/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/list_new_user.png differ
diff --git a/gosa-core/doc/core/de/html/users/list_reload.png b/gosa-core/doc/core/de/html/users/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/list_reload.png differ
diff --git a/gosa-core/doc/core/de/html/users/list_root.png b/gosa-core/doc/core/de/html/users/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/list_root.png differ
diff --git a/gosa-core/doc/core/de/html/users/mailto.png b/gosa-core/doc/core/de/html/users/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/mailto.png differ
diff --git a/gosa-core/doc/core/de/html/users/node1.html b/gosa-core/doc/core/de/html/users/node1.html
new file mode 100644
index 0000000..bf34c5c
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node1.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste der Benutzer</TITLE>
+<META NAME="description" CONTENT="Liste der Benutzer">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste der Benutzer</A>
+</H1>
+
+<P>
+Die Liste der Benutzer dient als Ausgangspunkt f�r alle weiteren Schritte.
+Sie wird erreicht �ber den Men�eintrag <SPAN  CLASS="textbf"><SPAN ID="hue14">Benutzer</SPAN></SPAN>
+aus der Kategorie <SPAN  CLASS="textbf">Administration</SPAN> (Men� am linken Rand des
+Bildschirms). Bei Auswahl wird die Liste der Benutzer geladen (�berschrift:
+<SPAN  CLASS="textit">Benutzerverwaltung)</SPAN>. Auf dieser Seite k�nnen Benutzer hinzugef�gt,
+bearbeitet oder entfernt werden.
+
+<P>
+Die Liste ist in drei Spalten geteilt:
+
+<P>
+
+<UL>
+<LI>Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann
+die Namen der Benutzer (alphabetisch sortiert).
+</LI>
+<LI>Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die verschiedenen
+Reiter des Benutzers (nur verf�gbar, wenn die entsprechende Eigenschaft
+aktiviert ist). Sie dient ausserdem f�r einen schnellen �berblick
+�ber die aktivierten Eigenschaften eines Benutzers.
+
+<P>
+
+<UL>
+<LI>Die m�glichen Symbole und ihre Bedeutung:
+<BR><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="CENTER">Symbol</TD>
+<TD ALIGN="LEFT">Bedeutung</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
+ SRC="./penguin.png"
+ ALT="Image penguin"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber allgemeine Eigenschaften</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="10" HEIGHT="10" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_user.png"
+ ALT="Image select_user"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein UNIX-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./smallenv.png"
+ ALT="Image smallenv"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber Umgebungs-Einstellungen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailto.png"
+ ALT="Image mailto"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein Mail-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_phone.png"
+ ALT="Image select_phone"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein Telefon-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./fax_small.png"
+ ALT="Image fax_small"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein Fax-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_winstation.png"
+ ALT="Image select_winstation"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein SAMBA-Konto</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_netatalk.png"
+ ALT="Image select_netatalk"></TD>
+<TD ALIGN="LEFT">Benutzer verf�gt �ber ein Netatalk-Konto</TD>
+</TR>
+</TABLE>
+</LI>
+</UL>
+</LI>
+<LI>Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufgaben
+durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+</LI>
+</UL>
+Die vier Kn�pfe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">
+, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> und <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">
+oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">: Zur Wurzel
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">: Eine Abteilung nach oben
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">: Zur Basis des angemeldeten Benutzers
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">: Aktuelle Abteilung neu laden
+</LI>
+</UL>
+<SPAN ID="hue43">Es ist weiterhin m�glich, die Anzeige der Benutzer
+mithilfe von Filtern zu beeinflussen (Kasten</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue45">Filter</SPAN></SPAN>
+<SPAN ID="hue435"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> am rechten Rand): </SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue50">Nach Namen suchen:</SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue436">Klick auf * zeigt alle Benutzer an</SPAN>
+</LI>
+<LI><SPAN ID="hue55">Klick auf einen Buchstaben zeigt alle Benutzer an,
+deren Name mit dem gew�hlten Buchstaben beginnt</SPAN>
+</LI>
+<LI>Klick auf eine Ziffer zeigt alle Benutzer an, deren Name mit der gew�hlten
+Ziffer beginnt
+</LI>
+</UL>
+</LI>
+<LI>Weitere Suchoptionen:
+<BR>(Die folgenden Filter arbeiten so, dass nur Benutzer angezeigt werden,
+die �ber mindestens eine der ausgew�hlten Optionen verf�gen; Standardm�ssig
+werden alle echten Benutzer angezeigt, also keine Vorlagen)
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Zeige Vorlagen</SPAN>: Zeigt Benutzervorlagen (standardm�ssig deaktiviert)
+</LI>
+<LI><SPAN  CLASS="textit">Zeige zweckbezogene Benutzer</SPAN>: Benutzer, die ausschliesslich
+�ber die allgemeinen Angaben verf�gen
+</LI>
+<LI><SPAN  CLASS="textit">Zeige UNIX-Benutzer</SPAN>: Benutzer, f�r die die UNIX-Erweiterung
+aktiviert ist
+</LI>
+<LI><SPAN  CLASS="textit">Zeige Mail-Benutzer</SPAN>: Benutzer, f�r die die Mail-Erweiterung
+aktiviert ist
+</LI>
+<LI><SPAN  CLASS="textit">Zeige SAMBA-Benutzer</SPAN>: Benutzer, f�r die die SAMBA-Erweiterung
+aktiviert ist
+</LI>
+<LI><SPAN  CLASS="textit">Zeige Proxy-Benutzer</SPAN>: Benutzer, f�r die das Proxy-Konto aktiviert
+ist
+</LI>
+</UL>
+</LI>
+<LI>Zus�tzlich zu der o.g. funktionalen Filterung kann die Liste durch
+lexikalische Filterung weiter eingeschr�nkt werden. Dazu dienen zum
+Einen die vordefinierten Buchstaben/Zahlen, die die Liste f�r Benutzer
+einschr�nken, die mit dem gew�hlten Buchstaben/der Ziffer beginnen.
+Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bietet das Textfeld
+im unteren Bereich des Kastens <SPAN  CLASS="textbf">Filter</SPAN> (beginnt mit dem Symbol
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">). In dieses Feld k�nnen Sie beliebige
+Buchstaben/Ziffern-Kombinationen eingeben, um die Suche einzuschr�nken.
+Um die Suchergebnisse in der Liste anzeigen zu lassen, Klicken Sie
+auf <SPAN  CLASS="textit">Filter anwenden</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html63"
+  HREF="node2.html">Benutzerkonto anlegen</A>
+<UL>
+<LI><A NAME="tex2html64"
+  HREF="node3.html">Ein bestehendes Benutzerkonto bearbeiten</A>
+<LI><A NAME="tex2html65"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html66"
+  HREF="node5.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html67"
+  HREF="node6.html">Pers�nliche Informationen</A>
+<LI><A NAME="tex2html68"
+  HREF="node7.html">Angabe zur Organisationseinheit</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html69"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html70"
+  HREF="node9.html">Generic</A>
+<LI><A NAME="tex2html71"
+  HREF="node10.html">Gruppenmitgliedschaft</A>
+<LI><A NAME="tex2html72"
+  HREF="node11.html">Konto</A>
+<LI><A NAME="tex2html73"
+  HREF="node12.html">System-Vertrauen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html74"
+  HREF="node13.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html75"
+  HREF="node14.html">Profile</A>
+<LI><A NAME="tex2html76"
+  HREF="node15.html">Kiosk-Profil</A>
+<LI><A NAME="tex2html77"
+  HREF="node16.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html78"
+  HREF="node17.html">Freigaben</A>
+<LI><A NAME="tex2html79"
+  HREF="node18.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html80"
+  HREF="node19.html">Drucker</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html81"
+  HREF="node20.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html82"
+  HREF="node21.html">Allgemein</A>
+<LI><A NAME="tex2html83"
+  HREF="node22.html">Alternative Adressen</A>
+<LI><A NAME="tex2html84"
+  HREF="node23.html">Mail-Einstellungen</A>
+<LI><A NAME="tex2html85"
+  HREF="node24.html">Erweiterte Mail-Einstellungen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html86"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html87"
+  HREF="node26.html">Allgemein</A>
+<LI><A NAME="tex2html88"
+  HREF="node27.html">Terminal-Server</A>
+<LI><A NAME="tex2html89"
+  HREF="node28.html">Zugriffsoptionen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html90"
+  HREF="node29.html">Konnektivit�t</A>
+<UL>
+<LI><A NAME="tex2html91"
+  HREF="node30.html">Proxy Konto</A>
+<LI><A NAME="tex2html92"
+  HREF="node31.html">FTP Konto</A>
+<LI><A NAME="tex2html93"
+  HREF="node32.html">WebDAV-Konto</A>
+<LI><A NAME="tex2html94"
+  HREF="node33.html">phpGroupware-Konto</A>
+<LI><A NAME="tex2html95"
+  HREF="node34.html">Intranet-Konto</A>
+<LI><A NAME="tex2html96"
+  HREF="node35.html">Opengroupware</A>
+<LI><A NAME="tex2html97"
+  HREF="node36.html">PPTP-Konto</A>
+<LI><A NAME="tex2html98"
+  HREF="node37.html">PHPScheduleit-Konto</A>
+<LI><A NAME="tex2html99"
+  HREF="node38.html">GLPI-Konto</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html100"
+  HREF="node39.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html101"
+  HREF="node40.html">Allgemein</A>
+<LI><A NAME="tex2html102"
+  HREF="node41.html">Auslieferungsmethode</A>
+<LI><A NAME="tex2html103"
+  HREF="node42.html">Alternative Fax-Nummern</A>
+<LI><A NAME="tex2html104"
+  HREF="node43.html">Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html105"
+  HREF="node44.html">Bearbeiten:</A>
+</UL>
+</UL>
+<BR>
+<LI><A NAME="tex2html106"
+  HREF="node45.html">Telefon</A>
+<UL>
+<LI><A NAME="tex2html107"
+  HREF="node46.html">Telefonnummern</A>
+<LI><A NAME="tex2html108"
+  HREF="node47.html">Telefon-Hardware</A>
+<LI><A NAME="tex2html109"
+  HREF="node48.html">Telefon-Makro</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html110"
+  HREF="node49.html">Referenzen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node10.html b/gosa-core/doc/core/de/html/users/node10.html
new file mode 100644
index 0000000..d3b50b3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node10.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gruppenmitgliedschaft</TITLE>
+<META NAME="description" CONTENT="Gruppenmitgliedschaft">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Gruppenmitgliedschaft</A>
+</H3>
+
+<P>
+Die Liste zeigt alle UNIX-Gruppen, in denen der Benutzer Mitglied
+ist. Um eine weitere Mitgliedschaft hinzuzuf�gen, klicken Sie auf
+den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN> unterhalb der Liste. Markieren Sie eine
+oder mehrere Gruppen und klicken Sie auf hinzuf�gen. Um den Benutzer
+aus einer oder mehrerer Gruppen zu entfernen, markieren Sie eine oder
+mehrere Gruppen und klicken auf <SPAN  CLASS="textit">Entfernen</SPAN> unterhalb der Liste.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node11.html b/gosa-core/doc/core/de/html/users/node11.html
new file mode 100644
index 0000000..ce3ea52
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node11.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Konto</TITLE>
+<META NAME="description" CONTENT="Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Konto</A>
+</H3>
+
+<P>
+Die Einstellungen dieser Kategorie beziehen sich auf Einschr�nkungen
+f�r das Passwort des Benutzers (dies betrifft selbstverst�ndlich lediglich
+das UNIX-Konto):
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Der Benutzer muss bei ersten Anmelden sein Passwort �ndern</SPAN>:
+Mit dem Setzen dieser Option wird erzwungen, dass der Benutzer beim
+ersten Anmeldevorgang zun�chst sein Passwort �ndern muss.
+</LI>
+<LI><SPAN  CLASS="textit">Passwort kann bis zu</SPAN> [Anzahl der Tage] <SPAN  CLASS="textit">Tage nach der
+letzten �nderung nicht ge�ndert werden</SPAN>:
+</LI>
+<LI><SPAN  CLASS="textit">Der Benutzer muss sein Passwort nach</SPAN> [Anzahl der Tage] <SPAN  CLASS="textit">Tagen
+�ndern</SPAN>: Mit dem Setzen dieser Option erh�lt der Benutzer nach dem
+gew�hlten Zeitraum die Aufforderung, sein Passwort zu �ndern.
+</LI>
+<LI>Passwort l�uft ab am [Datum]: Mit dem Setzen dieser Option kann
+der Benutzer sich mit Ablauf des gew�hlten Datums nicht mehr anmelden.
+</LI>
+<LI><SPAN  CLASS="textit">Konto nach</SPAN> [Anzahl der Tage] <SPAN  CLASS="textit">Tagen nach Ablauf ohne
+Aktivit�t deaktivieren</SPAN>: Wenn der gew�hlte Zeitraum ohne Aktivit�t
+(ohne Anmeldung) erreicht wurde, wird das Passwort deaktiviert, der
+Benutzer kann sich somit nicht mehr anmelden.
+</LI>
+<LI><SPAN  CLASS="textit">Benutzer</SPAN> [Anzahl der Tage] <SPAN  CLASS="textit">Tage vor dem Ablauf des
+Passwortes warnen</SPAN>: Der Benutzer erh�lt eine Warnung, dass sein Passwort
+zum festgelegten Zeitpunk abl�uft.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node12.html b/gosa-core/doc/core/de/html/users/node12.html
new file mode 100644
index 0000000..dfea413
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node12.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>System-Vertrauen</TITLE>
+<META NAME="description" CONTENT="System-Vertrauen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+System-Vertrauen</A>
+</H3>
+
+<P>
+Dieser Abschnitt dient der Definition von Zugriffsbeschr�nkungen auf
+definierte Systeme, Ger�te, etc. 
+
+<P>
+Die m�glichen Vertrauensmodi:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">deaktiviert</SPAN>: Der Benutzer darf sich auf allen Hosts anmelden.
+</LI>
+<LI><SPAN  CLASS="textit">Vollzugriff</SPAN>: Der Benutzer darf sich auf allen Hosts anmelden.
+</LI>
+<LI><SPAN  CLASS="textit">erlaube Zugriff auf diese Hosts</SPAN>: Der Benutzer darf sich nur
+auf den aufgef�hrten Hosts anmelden.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Hinzuf�gen</SPAN>: Um einen oder mehrere Hosts in die Liste aufzunehmen,
+klicken Sie auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Aus der Liste der Hosts
+w�hlen Sie einen oder mehrere zul�ssige Hosts und klicken Sie auf
+den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Die Hosts werden nun in der Liste aufgef�hrt.
+Um den Vorgang abzubrechen, klicken Sie auf den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>.
+</LI>
+<LI><SPAN  CLASS="textit">Entfernen</SPAN>: Um einen oder mehrere Hosts aus der Liste zu entfernen,
+markieren Sie den oder die gew�nschten Hosts aus der Liste und dr�cken
+Sie den Knopf Entfernen. Die Hosts werden nun nicht mehr in der Liste
+aufgef�hrt.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node13.html b/gosa-core/doc/core/de/html/users/node13.html
new file mode 100644
index 0000000..5df5135
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node13.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Umgebung</TITLE>
+<META NAME="description" CONTENT="Umgebung">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Umgebung</A>
+</H2>
+
+<P>
+Um die Umgebungserweiterung f�r einen Benutzer zu aktivieren, klicken
+Sie auf den Knopf <SPAN  CLASS="textit">Umgebungs-Erweiterung hinzuf�gen</SPAN>. Wenn Sie
+die Umgebungserweiterung deaktivieren m�chten, klicken Sie auf den
+Knopf <SPAN  CLASS="textit">Umgebungs-Erweiterung-entfernen</SPAN>.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+Wenn die Erweiterung aktiv ist, finden sich folgende Einstellm�glichkeiten:
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html233"
+  HREF="node14.html">Profile</A>
+<LI><A NAME="tex2html234"
+  HREF="node15.html">Kiosk-Profil</A>
+<LI><A NAME="tex2html235"
+  HREF="node16.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html236"
+  HREF="node17.html">Freigaben</A>
+<LI><A NAME="tex2html237"
+  HREF="node18.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html238"
+  HREF="node19.html">Drucker</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node14.html b/gosa-core/doc/core/de/html/users/node14.html
new file mode 100644
index 0000000..efa5e88
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node14.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profile</TITLE>
+<META NAME="description" CONTENT="Profile">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Profile</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node15.html b/gosa-core/doc/core/de/html/users/node15.html
new file mode 100644
index 0000000..5353a36
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node15.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk-Profil</TITLE>
+<META NAME="description" CONTENT="Kiosk-Profil">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Kiosk-Profil</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node16.html b/gosa-core/doc/core/de/html/users/node16.html
new file mode 100644
index 0000000..218c05d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node16.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Anmelde-Skripte</TITLE>
+<META NAME="description" CONTENT="Anmelde-Skripte">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+Anmelde-Skripte</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node17.html b/gosa-core/doc/core/de/html/users/node17.html
new file mode 100644
index 0000000..06bb446
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node17.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Freigaben</TITLE>
+<META NAME="description" CONTENT="Freigaben">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Freigaben</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node18.html b/gosa-core/doc/core/de/html/users/node18.html
new file mode 100644
index 0000000..2a88a02
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node18.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug-Ger�te</TITLE>
+<META NAME="description" CONTENT="Hotplug-Ger�te">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014500000000000000">
+Hotplug-Ger�te</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node19.html b/gosa-core/doc/core/de/html/users/node19.html
new file mode 100644
index 0000000..85ac7c4
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node19.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Drucker</TITLE>
+<META NAME="description" CONTENT="Drucker">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014600000000000000">
+Drucker</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node2.html b/gosa-core/doc/core/de/html/users/node2.html
new file mode 100644
index 0000000..1a17476
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node2.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Benutzerkonto anlegen</TITLE>
+<META NAME="description" CONTENT="Benutzerkonto anlegen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Benutzerkonto anlegen</A>
+</H2>
+
+<P>
+Um ein neues Benutzerkonto anzulegen klicken Sie auf den Knopf <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_user.png"
+ ALT="Image list_new_user">.
+Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung
+bestehender Benutzerkonten. Sie m�ssen zus�tzlich am Ende des Vorgangs
+ein Passwort vergeben.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html121"
+  HREF="node3.html">Ein bestehendes Benutzerkonto bearbeiten</A>
+<LI><A NAME="tex2html122"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node20.html b/gosa-core/doc/core/de/html/users/node20.html
new file mode 100644
index 0000000..c5913f5
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node20.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+Mail</A>
+</H2>
+
+<P>
+Das Mailkonto wird in direkter Verbindung mit dem Mailserver verwaltet.
+Um eines f�r den Benutzer anzulegen, klicken Sie auf <SPAN  CLASS="textit">Neues
+Mail-Konto erzeugen</SPAN>. Wenn Sie das Mailkonto wieder entfernen m�chten,
+klicken Sie auf <SPAN  CLASS="textit">Mail-Konto entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html307"
+  HREF="node21.html">Allgemein</A>
+<LI><A NAME="tex2html308"
+  HREF="node22.html">Alternative Adressen</A>
+<LI><A NAME="tex2html309"
+  HREF="node23.html">Mail-Einstellungen</A>
+<LI><A NAME="tex2html310"
+  HREF="node24.html">Erweiterte Mail-Einstellungen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node21.html b/gosa-core/doc/core/de/html/users/node21.html
new file mode 100644
index 0000000..e1c3791
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node21.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Allgemein</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue198">Prim�re Adresse</SPAN><SPAN ID="hue450">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Mail-Adresse des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Server, auf dem das Postfach des Benutzers gespeichert werden
+soll.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kontingent-Nutzung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der momentan genutzte Speicherplatz des Kontingents.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kontingent-Gr��e</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die maximale Gr��e der Mailbox</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node22.html b/gosa-core/doc/core/de/html/users/node22.html
new file mode 100644
index 0000000..2221a84
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node22.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative Adressen</TITLE>
+<META NAME="description" CONTENT="Alternative Adressen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Alternative Adressen</A>
+</H3>
+
+<P>
+Alternative Adressen sind weitere Adressen, unter denen der Benutzer
+Mails empfangen soll. 
+
+<P>
+Verwenden Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN> um eine alternative Adresse
+hinzuzuf�gen. Wenn Sie eine Adresse entfernen m�chten, markieren Sie
+diese und dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node23.html b/gosa-core/doc/core/de/html/users/node23.html
new file mode 100644
index 0000000..f94c92e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node23.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail-Einstellungen</TITLE>
+<META NAME="description" CONTENT="Mail-Einstellungen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+Mail-Einstellungen</A>
+</H3>
+
+<P>
+Unter diese Kategorie fallen weitere Einstellungsm�glichkeiten:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Keine Zustellung in eigenes Postfach</SPAN>: Wenn diese Option aktiviert
+ist, werden ankommende Mails ausschliesslich an die Adressen gesendet,
+die im Kasten <SPAN  CLASS="textit">Nachrichten weiterleiten an</SPAN> (s. u.)aufgef�hrt
+sind. Eine Speicherung der Nachricht im Postfach des Benutzers findet
+nicht statt.
+</LI>
+<LI><SPAN  CLASS="textit">Urlaubsbenachrichtigung aktivieren</SPAN>: Wenn diese Option aktiviert
+ist, wird der Inhalt des Kastens Urlaubsbenachrichtung an den Sender
+jeder ankommenden Mail gesendet.
+</LI>
+<LI><SPAN  CLASS="textit">Verschiebe Mails mit einem SPAM-Level gr��er als [Spam-Level]
+in den Ordner [Ordner]</SPAN>: Die ankommenden Mails werden auf m�glichen
+Spam-Inhalt gepr�ft. Diese Pr�fung erkennt SPAM mit einer gewissen
+Wahrscheinlichkeit, die als Spam-Level in den Kopf der Nachricht geschrieben
+wird (�blicherweise haben SPAM-Mails einen SPAM-Level ab 4-6).
+<BR>
+Wenn Sie diese Option aktivieren, werden Mails die �ber mindestens
+den gew�hlten SPAM-Level verf�gen in den gew�nschten Ziel-Ordner verschoben,
+ohne dass diese direkt im Posteingang des Benutzers sichtbar sind.
+</LI>
+<LI><SPAN  CLASS="textit">Mails abweisen, die gr��er sind als [Gr��e] MB</SPAN>: Ankommende
+Mails (f�r diesen Benutzer), die gr��er sind als der angegebene Wert
+(in MB), werden nicht zugestellt.
+</LI>
+<LI><SPAN ID="hue453"><SPAN  CLASS="textit">Nachrichten weiterleiten an</SPAN></SPAN><SPAN ID="hue218">:
+</SPAN>
+<BR><SPAN ID="hue220">Dieser Kasten dient dazu, Kopien der ankommenden
+Mails an weitere Adressen zu versenden (z.B. Telefone, PDAs etc.).</SPAN>
+<P>
+<SPAN ID="hue222">- Adresse hinzuf�gen: Um eine Adresse hinzuzuf�gen,
+tragen Sie diese in das Textfeld unterhalb des Kastens ein und dr�cken
+den Knopf</SPAN> <SPAN ID="hue454"><SPAN  CLASS="textit">Hinzuf�gen</SPAN></SPAN><SPAN ID="hue226">.
+Die Adresse wird nun in der Liste aufgef�hrt.</SPAN>
+<P>
+<SPAN ID="hue228">- Lokale Adresse hinzuf�gen: Um eine lokale Adresse
+(=Adresse auf demselben Mail-Server) hinzuzuf�gen, tragen Sie den
+Namen des Postfachs in das Textfeld unterhalb des Kastens ein und
+dr�cken den Knopf</SPAN> <SPAN ID="hue455"><SPAN  CLASS="textit">Lokale hinzuf�gen</SPAN></SPAN><SPAN ID="hue232">.
+Die lokale Adresse wird nun in der Liste aufgef�hrt.</SPAN>
+<P>
+<SPAN ID="hue234">- (Lokale) Adresse entfernen: Um eine Adresse wieder
+aus der Liste zu entfernen, markieren Sie den entsprechenden Eintrag
+in der Liste und dr�cken den Knopf</SPAN> <SPAN ID="hue456"><SPAN  CLASS="textit">Entfernen</SPAN></SPAN><SPAN ID="hue238">.
+Der Eintrag wird nun nicht mehr in der Liste aufgef�hrt.</SPAN>
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node24.html b/gosa-core/doc/core/de/html/users/node24.html
new file mode 100644
index 0000000..bf6eaff
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node24.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Erweiterte Mail-Einstellungen</TITLE>
+<META NAME="description" CONTENT="Erweiterte Mail-Einstellungen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015400000000000000">
+Erweiterte Mail-Einstellungen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Der Benutzer darf nur lokale Mails senden und empfangen</SPAN>: Wenn
+diese Option aktiv ist, darf der Benutzer ausschliesslich Mails an
+interne Adressaten versenden und von diesen empfangen. Eingehende
+Mails von externen Adressen werden nicht zugestellt.
+</LI>
+<LI><SPAN  CLASS="textit">Eigenes Sieve-Skript verwenden</SPAN>: Wenn diese Option aktiv ist,
+werden alle Mail-Einstellungen deaktiviert! Dies ist erforderlich,
+wenn eigene Sieve-Skripte verwendet werden sollen, da diese sonst
+�berschrieben werden.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node25.html b/gosa-core/doc/core/de/html/users/node25.html
new file mode 100644
index 0000000..70cc6cf
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node25.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Samba</TITLE>
+<META NAME="description" CONTENT="Samba">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Samba</A>
+</H2>
+
+<P>
+Um ein Samba-Konto f�r den Benutzer zu erstellen, klicken Sie auf
+den Knopf <SPAN  CLASS="textit">Samba-Konto erstellen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html359"
+  HREF="node26.html">Allgemein</A>
+<LI><A NAME="tex2html360"
+  HREF="node27.html">Terminal-Server</A>
+<LI><A NAME="tex2html361"
+  HREF="node28.html">Zugriffsoptionen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node26.html b/gosa-core/doc/core/de/html/users/node26.html
new file mode 100644
index 0000000..a8abf51
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node26.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016100000000000000">
+Allgemein</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basisverzeichnis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Pfad zum Basisverzeichnis des Benutzers in UNC-Notation (z.B.
+\\SERVER\homes\user).
+W�hlen Sie aus der Liste, unter welchem Laufwerksbuchstaben das Basisverzeichnis
+verbunden wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Dom�ne</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Dom�ne, zu der der Benutzer zugeordnet ist.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Anmeldeskript</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das Programm, das beim Start der Sitzung ausgef�hrt wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profil-Pfad</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das Arbeitsverzeichnis, in dem das Programm ausgef�hrt wird.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node27.html b/gosa-core/doc/core/de/html/users/node27.html
new file mode 100644
index 0000000..2c8a5cc
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node27.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Terminal-Server</TITLE>
+<META NAME="description" CONTENT="Terminal-Server">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016200000000000000">
+Terminal-Server</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Anmeldung am Terminalserver zulassen</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basisverzeichnis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Pfad zum Basisverzeichnis des Benutzers in UNC-Notation (z.B.
+\\SERVER\homes\user).
+W�hlen Sie aus der Liste, unter welchem Laufwerksbuchstaben das Basisverzeichnis
+verbunden wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profil-Pfad</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Der Pfad zum Profil des Benutzers</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Client-Konfiguration �bernehmen</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Startprogramm</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das Programm, das beim Start der Sitzung ausgef�hrt wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Arbeitsverzeichnis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das Arbeitsverzeichnis, in dem das Programm ausgef�hrt wird.</TD>
+</TR>
+</TABLE> 
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Zeitlimit (in Minuten)</SPAN> Mit Hilfe der nachfolgenden Optionen
+kann f�r den Benutzer die Sitzung zeitlich begrenzt werden:
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Verbinden</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die maximale Dauer, die der Benutzer verbunden sein darf - nach Ablauf
+wird die Verbindung getrennt.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Trennen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Eine nicht mehr verbundene Sitzung des Benutzers wird nach Ablauf
+dieser Zeit automatisch beendet.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Leerlauf</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Eine verbundene aber unt�tige Sitzung des Benutzers wird nach Ablauf
+dieser Zeit automatisch beendet.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Client-Ger�te</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Client-Laufwerke beim Anmelden verbinden</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die lokalen Laufwerke des Clients als Netzlaufwerke verbinden</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Client-Drucker beim Anmelden verbinden</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die lokalen Drucker des Clients als Netzwerkdrucker verbinden</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Standard-Drucker vom Client w�hlen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Als Standard-Drucker den Standard-Drucker des Clients verwenden</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>Verschiedenes:
+
+<P>
+- <SPAN  CLASS="textit">Spiegeln</SPAN>: Diese Option steuert das Verhalten der Remote�berwachung:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">deaktiviert</SPAN>: Remote�berwachung ist deaktiviert
+</LI>
+<LI><SPAN  CLASS="textit">Eingabe EIN, Benachrichtigen EIN</SPAN>: Sitzung kann gesteuert werden,
+Benutzer wird gefragt
+</LI>
+<LI><SPAN  CLASS="textit">Eingabe EIN, Benachrichtigen AUS</SPAN>: Sitzung kann gesteuert werden,
+Benutzer wird nicht gefragt
+</LI>
+<LI><SPAN  CLASS="textit">Eingabe AUS, Benachrichtigen EIN</SPAN>: Sitzung wird nur angezeigt,
+Benutzer wird gefragt
+</LI>
+<LI><SPAN  CLASS="textit">Eingabe AUS, Benachrichtigen AUS</SPAN>: Sitzung wird nur angezeigt,
+Benutzer wird nicht gefragt
+</LI>
+</UL>
+- <SPAN  CLASS="textit">Bei Trennung oder abgelaufenem Zeitlimit</SPAN>: Sie k�nnen w�hlen,
+ob eine Sitzung, die getrennt wurde (vom Client oder durch ein abgelaufenes
+Zeitlimit) automatisch zur�ckgesetzt werden soll, oder nicht: Zum
+Zur�cksetzen w�hlen Sie <SPAN  CLASS="textit">zur�cksetzen</SPAN>. Bei <SPAN  CLASS="textit">trennen</SPAN> bleibt
+die Sitzung erhalten.
+
+<P>
+- <SPAN  CLASS="textit">Wiederherstellen falls unterbrochen</SPAN>: Wenn eine Sitzung des
+Benutzers unterbrochen wurde (Absturz, Netzwerkprobleme etc.) kann
+mithilfe dieser Einstellung festgelegt werden, dass sich der Benutzer
+nur von dem urspr�nglichen Client in seine noch aktive Sitzung verbinden
+darf. Wenn diese gew�nscht ist, w�hlen Sie den Eintrag <SPAN  CLASS="textit">nur von
+vorherigem Client</SPAN>. Mit der Einstellung <SPAN  CLASS="textit">von jedem Client</SPAN> darf
+der Benutzer sich von jedem Client zu seiner Sitzung verbinden.
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node28.html b/gosa-core/doc/core/de/html/users/node28.html
new file mode 100644
index 0000000..01d2538
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node28.html
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Zugriffsoptionen</TITLE>
+<META NAME="description" CONTENT="Zugriffsoptionen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016300000000000000">
+Zugriffsoptionen</A>
+</H3>
+
+<P>
+Die unter Zugriffsoptionen aufgef�hrten Einstellung dienen zum Anpassen
+der Passwort-Einstellungen. Sie sollten genau aufpassen, welche Einstellungen
+Sie vornehmen.
+
+<P>
+
+<UL>
+<LI>Die folgenden Optionen sind verf�gbar:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Der Benutzer darf das Passwort vom Client aus �ndern</SPAN>: Wenn
+diese Option aktiv ist, darf der Benutzer vom Windows-Client sein
+Passwort �ndern.
+</LI>
+<LI><SPAN  CLASS="textit">Die Anmeldung vom Windows-Client erfordert kein Passwort</SPAN>: Wenn
+diese Option aktiv ist, ben�tigt der Benutzer kein Passwort, um sich
+anzumelden.
+</LI>
+<LI><SPAN  CLASS="textit">Samba-Konto sperren</SPAN>: Wenn diese Option aktiv ist, kann der
+Benutzer sich nicht mehr verbinden.
+</LI>
+<LI><SPAN  CLASS="textit">Passwort l�uft ab am</SPAN>: W�hlen Sie ein Datum, an dem das Passwort
+abl�uft, das Konto wird dann automatisch gesperrt.
+</LI>
+<LI><SPAN  CLASS="textit">Limitiere Logon-Zeit</SPAN>: Zu dieser Einstellung sind keine Informationen
+verf�gbar (sambaLogonTime).
+</LI>
+<LI><SPAN  CLASS="textit">Limitiere Logoff-Zeit</SPAN>: Zu dieser Einstellung sind keine Informationen
+verf�gbar (sambaLogoffTime).
+</LI>
+<LI><SPAN  CLASS="textit">Konto l�uft ab am</SPAN>: W�hlen Sie ein Datum, an dem das Konto automatisch
+gesperrt wird.
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Erlaube Verbindungen nur von diesen Arbeitsstationen</SPAN>: Wenn
+Sie den Zugriff des Benutzers auf eine bis mehrere Arbeitsstationen
+beschr�nken m�chten, tragen Sie diese in die Liste ein. Wenn die Liste
+leer ist, ist der Zugriff von allen Clients m�glich.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Hinzuf�gen</SPAN>: Um eine Arbeitsstation hinzuf�gen, klicken Sie
+auf den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN> und w�hlen Sie eine oder mehrere Arbeitsstationen
+aus der Liste, indem Sie sei markieren. Wenn Sie mit der Auswahl zufrieden
+sind, dr�cken Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Die gew�nschten Arbeitsstation
+werden nun in der Liste aufgef�hrt.
+</LI>
+<LI><SPAN  CLASS="textit">Entfernen</SPAN>: Um eine oder mehrere Arbeitsstationen aus der Liste
+zu entfernen, markieren Sie den oder die gew�nschten Eintr�ge in der
+Liste und dr�cken auf den Knopf entfernen. Die markierten Arbeitsstationen
+werden nun nicht mehr in der Liste aufgef�hrt.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node29.html b/gosa-core/doc/core/de/html/users/node29.html
new file mode 100644
index 0000000..5ff41ec
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node29.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Konnektivit�t</TITLE>
+<META NAME="description" CONTENT="Konnektivit�t">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Konnektivit�t</A>
+</H2>
+
+<P>
+Unter diesem Reiter finden sich diverse M�glichkeiten, um die Zugriffsm�glichkeiten
+des Benutzers zu erweitern:
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html400"
+  HREF="node30.html">Proxy Konto</A>
+<LI><A NAME="tex2html401"
+  HREF="node31.html">FTP Konto</A>
+<LI><A NAME="tex2html402"
+  HREF="node32.html">WebDAV-Konto</A>
+<LI><A NAME="tex2html403"
+  HREF="node33.html">phpGroupware-Konto</A>
+<LI><A NAME="tex2html404"
+  HREF="node34.html">Intranet-Konto</A>
+<LI><A NAME="tex2html405"
+  HREF="node35.html">Opengroupware</A>
+<LI><A NAME="tex2html406"
+  HREF="node36.html">PPTP-Konto</A>
+<LI><A NAME="tex2html407"
+  HREF="node37.html">PHPScheduleit-Konto</A>
+<LI><A NAME="tex2html408"
+  HREF="node38.html">GLPI-Konto</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node3.html b/gosa-core/doc/core/de/html/users/node3.html
new file mode 100644
index 0000000..7fe9378
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node3.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Ein bestehendes Benutzerkonto bearbeiten</TITLE>
+<META NAME="description" CONTENT="Ein bestehendes Benutzerkonto bearbeiten">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Ein bestehendes Benutzerkonto bearbeiten</A>
+</H3>
+
+<P>
+Klicken Sie in der Liste der Benutzer auf den Benutzernamen des gew�nschten
+Benutzers. Die Seite, die nun geladen wird, verf�gt �ber Reiter, die
+jeweils f�r eine Erweiterung stehen (aktuell sind dies u.a. Allgemein,
+Unix, Umgebung, usw.).
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node30.html b/gosa-core/doc/core/de/html/users/node30.html
new file mode 100644
index 0000000..194d835
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node30.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Proxy Konto</TITLE>
+<META NAME="description" CONTENT="Proxy Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017100000000000000">
+Proxy Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den Proxy-Server
+erlauben:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Filtern von unerw�nschten Inhalten (z.B. pornografische oder
+gewaltt�tige Inhalte)</SPAN>: Diese Option aktiviert den Inhaltsfilter f�r
+den Benutzer. Dies hat zur Folge, dass keine Seiten aufgerufen werden
+k�nnen, die �ber fragw�rdige Inhalte verf�gen (bzw. vom Filter als
+solche erkannt werden).
+</LI>
+<LI><SPAN  CLASS="textit">Inhaltsfilterung nur w�hrend der Arbeitszeit</SPAN>: Die Inhaltsfilterung
+kann mit dieser Option ausschliesslich f�r die Arbeitszeit aktiviert
+werden (w�hlen Sie den Zeitraum). Ausserhalb der eingestellten Arbeitszeit
+ist der Zugriff uneingeschr�nkt.
+</LI>
+<LI><SPAN  CLASS="textit">Proxynutzung durch Kontingent einschr�nken</SPAN>: Mit dieser Option
+k�nnen Sie die maximal �bertragene Menge f�r einen Zeitraum f�r den
+Benutzer festlegen. Wenn die Menge erreicht ist, kann der Benutzer
+keine Seiten mehr aufrufen.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node31.html b/gosa-core/doc/core/de/html/users/node31.html
new file mode 100644
index 0000000..2bdc64e
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node31.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>FTP Konto</TITLE>
+<META NAME="description" CONTENT="FTP Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017200000000000000">
+FTP Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den FTP-Server
+erlauben:
+
+<P>
+
+<UL>
+<LI>Bandbreite: Erlaubt Einschr�nkung der Bandbreite (Aus Sicht des Benutzers)
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Upload-Bandbreite</SPAN>: Die maximale Bandbreite f�r den Upload (Senderichtung).
+Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+</LI>
+<LI><SPAN  CLASS="textit">Download-Bandbreite</SPAN>: Die maximale Bandbreite f�r den Download
+(Empfangsrichtung). Wenn Sie 0 eintragen, ist die Beschr�nkung nicht
+aktiv.
+</LI>
+</UL>
+</LI>
+<LI>Verh�ltnis: Der Benutzer kann gezwungen werden, ein Verh�ltnis von
+Up- und Download von Dateien einzuhalten.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Hoch- / heruntergeladene Dateien</SPAN>: Stellen Sie das Verh�ltnis
+in Dateien ein (z.B. 4/1: 4 Dateien m�ssen hochgeladen werden, damit
+der Benutzer eine Datei herunterladen darf).
+</LI>
+</UL>
+</LI>
+<LI>Kontingent: Einschr�nkung des Kontingents in Dateien oder �bertragenen
+Datenmengen
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Dateien</SPAN>: Die maximale Anzahl an Dateien, die der Benutzer �bertragen
+darf. Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+</LI>
+<LI><SPAN  CLASS="textit">Gr��e</SPAN>: Die maximale Datenmenge, die der Benutzer �bertragen
+darf. Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+</LI>
+</UL>
+</LI>
+<LI>Verschiedenes:
+
+<P>
+
+<UL>
+<LI>Tempor�res Abschalten des FTP-Zugriffs: Mit dieser Option k�nnen Sie
+den Zugriff auf den FTP-Server deaktivieren, ohne dabei die vorgenommenen
+Einstellungen zu verlieren.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node32.html b/gosa-core/doc/core/de/html/users/node32.html
new file mode 100644
index 0000000..e0a9ffd
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node32.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>WebDAV-Konto</TITLE>
+<META NAME="description" CONTENT="WebDAV-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017300000000000000">
+WebDAV-Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den WebDAV-Server
+erlauben.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node33.html b/gosa-core/doc/core/de/html/users/node33.html
new file mode 100644
index 0000000..bce12b5
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node33.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>phpGroupware-Konto</TITLE>
+<META NAME="description" CONTENT="phpGroupware-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017400000000000000">
+phpGroupware-Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den phpGroupware-Server
+erlauben.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node34.html b/gosa-core/doc/core/de/html/users/node34.html
new file mode 100644
index 0000000..a4b294c
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node34.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Intranet-Konto</TITLE>
+<META NAME="description" CONTENT="Intranet-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017500000000000000">
+Intranet-Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den Intranet-Server
+erlauben.
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node35.html b/gosa-core/doc/core/de/html/users/node35.html
new file mode 100644
index 0000000..30ed1cf
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node35.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Opengroupware</TITLE>
+<META NAME="description" CONTENT="Opengroupware">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017600000000000000">
+Opengroupware</A>
+</H3>
+
+<P>
+Mit dieser Option k�nnen Sie dem Benutzer den Zugriff auf den Opengroupware-Server
+erlauben:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">�rtliches Team</SPAN>: Das �rtliche Team, zu dem der Benutzer geh�ren
+wird.
+</LI>
+<LI><SPAN  CLASS="textit">Benutzer-Vorlage</SPAN>: 
+</LI>
+<LI><SPAN  CLASS="textit">Gesperrt</SPAN>: Diese Option dient dazu, das Opengroupware-Konto
+zeitweilig zu sperren, ohne die Einstellungen zu verlieren. Wenn sie
+aktiv ist, kann der Benutzer sich nicht zum Opengroupware-Server verbinden.
+</LI>
+<LI><SPAN  CLASS="textit">Teams</SPAN>: Aktivieren Sie die Teams, denen der Benutzer angeh�ren
+soll.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node36.html b/gosa-core/doc/core/de/html/users/node36.html
new file mode 100644
index 0000000..5a666f3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node36.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PPTP-Konto</TITLE>
+<META NAME="description" CONTENT="PPTP-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017700000000000000">
+PPTP-Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den VPN-Zugriff via PPTP
+erlauben.
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node37.html b/gosa-core/doc/core/de/html/users/node37.html
new file mode 100644
index 0000000..5c6635b
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node37.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHPScheduleit-Konto</TITLE>
+<META NAME="description" CONTENT="PHPScheduleit-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017800000000000000">
+PHPScheduleit-Konto</A>
+</H3>
+
+<P>
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den PHPscheduleit-Server
+erlauben:
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node38.html b/gosa-core/doc/core/de/html/users/node38.html
new file mode 100644
index 0000000..ab4f625
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node38.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GLPI-Konto</TITLE>
+<META NAME="description" CONTENT="GLPI-Konto">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017900000000000000">
+GLPI-Konto</A>
+</H3>
+
+<P>
+If you activated the GLPI option, the user will access GLPI software.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node39.html b/gosa-core/doc/core/de/html/users/node39.html
new file mode 100644
index 0000000..bce8320
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node39.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax</TITLE>
+<META NAME="description" CONTENT="Fax">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00018000000000000000">
+Fax</A>
+</H2>
+
+<P>
+Um f�r den Benutzer die Fax-Erweiterung zu aktivieren, klicken Sie
+auf den Knopf <SPAN  CLASS="textit">Fax-Konto er</SPAN>zeugen. Um die Erweiterung wieder
+zu entfernen, klicken Sie auf den Knopf <SPAN  CLASS="textit">Fax-Konto entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html507"
+  HREF="node40.html">Allgemein</A>
+<LI><A NAME="tex2html508"
+  HREF="node41.html">Auslieferungsmethode</A>
+<LI><A NAME="tex2html509"
+  HREF="node42.html">Alternative Fax-Nummern</A>
+<LI><A NAME="tex2html510"
+  HREF="node43.html">Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html511"
+  HREF="node44.html">Bearbeiten:</A>
+</UL></UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node4.html b/gosa-core/doc/core/de/html/users/node4.html
new file mode 100644
index 0000000..8172ab4
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node4.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generelle Informationen</TITLE>
+<META NAME="description" CONTENT="Generelle Informationen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Generelle Informationen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Um die Bearbeitung des Benutzers (auch neuer Benutzer) abzuschliessen,
+dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Speichern</SPAN> unten rechts; Um den Vorgang
+zu verwerfen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>, der sich
+ebenfalls unten rechts befindet.
+</LI>
+<LI>Alle Felder, die mit einem roten Sternchen <SPAN ID="hue437">*</SPAN> enden,
+sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+</LI>
+<LI>In der rechten, oberen Ecke findet sich der komplette <SPAN  CLASS="textit">dn</SPAN> des
+aktuell ge�ffneten Benutzers.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node40.html b/gosa-core/doc/core/de/html/users/node40.html
new file mode 100644
index 0000000..8faabdb
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node40.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018100000000000000">
+Allgemein</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax<SPAN ID="hue463">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Fax-Nummer des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Sprache</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die gew�nschte Sprache aus der Liste</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Auslieferungsformat</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie das gew�nschte Format aus der Liste</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node41.html b/gosa-core/doc/core/de/html/users/node41.html
new file mode 100644
index 0000000..134d2b9
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node41.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Auslieferungsmethode</TITLE>
+<META NAME="description" CONTENT="Auslieferungsmethode">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018200000000000000">
+Auslieferungsmethode</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Tempor�res Abschalten der Fax-Benutzung</SPAN>: Deaktiviert das Fax-Konto
+des Benutzers, ohne die Einstellungen zu verlieren (Wenn Sie das Konto
+dauerhaft entfernen m�chten, klicken Sie den Knopf <SPAN  CLASS="textit">Fax-Konto
+entfernen</SPAN>).
+</LI>
+<LI><SPAN  CLASS="textit">Fax als Mail ausliefern an</SPAN>: Die Mail-Adresse, an die das Fax
+im ausgew�hlten Format gesendet wird (�blicherweise die Mailbox des
+Benutzers).
+</LI>
+<LI><SPAN  CLASS="textit">Fax an Drucker weiterleiten</SPAN>: W�hlen Sie aus der Liste den Drucker,
+auf dem ein empfangenes Fax gedruckt wird.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node42.html b/gosa-core/doc/core/de/html/users/node42.html
new file mode 100644
index 0000000..1ec19f9
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node42.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative Fax-Nummern</TITLE>
+<META NAME="description" CONTENT="Alternative Fax-Nummern">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018300000000000000">
+Alternative Fax-Nummern</A>
+</H3>
+
+<P>
+Es ist m�glich, weitere Fax-Nummern f�r den Benutzer einzutragen.
+Alle alternativen Nummern, die dem Benutzer zugeordnet sind, werden
+in der Liste aufgef�hrt.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Hinzuf�gen</SPAN>: Um eine Nummer hinzuzuf�gen, geben Sie die Nummer
+in das Textfeld links neben dem Knopf ein und dr�cken Sie auf den
+Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>.
+</LI>
+<LI><SPAN  CLASS="textit">Lokale hinzuf�gen</SPAN>: Um eine Nummer hinzuzuf�gen, die bereits
+einem Benutzer zugeordnet wurde, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Lokale
+hinzuf�gen</SPAN>. W�hlen Sie nun aus der Liste einen oder mehrere Benutzer,
+deren Faxnummern dem aktuell ge�ffneten Benutzer zugeordet w�hlen
+sollen, und dr�cken Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Um den Vorgang
+abzubrechen, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Abbrechen</SPAN>.
+</LI>
+<LI><SPAN  CLASS="textit">Entfernen</SPAN>: Um eine oder mehrere Nummern wieder zu entfernen,
+markieren Sie diese in der Liste (mit gedr�ckter STRG-Taste k�nnen
+Sie mehrere Nummern markieren) und dr�cken Sie den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+Die Nummern werden nun nicht mehr in der Liste aufgef�hrt.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node43.html b/gosa-core/doc/core/de/html/users/node43.html
new file mode 100644
index 0000000..5df4d7f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node43.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Sperrlisten</TITLE>
+<META NAME="description" CONTENT="Sperrlisten">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018400000000000000">
+Sperrlisten</A>
+</H3>
+
+<P>
+Die Sperrlisten dienen dazu, den Empfang und Versand von und zu bestimmten
+Nummern zu unterbinden, um z.B. Werbefaxe zu vermeiden. Die Dialoge
+der Sperrlisten f�r eingehende und ausgehende Faxe verhalten sich
+analog, weshalb im Folgenden einfach darauf verzichtet wird, vorzuschreiben,
+welchen <SPAN  CLASS="textit">Bearbeiten</SPAN>-Knopf Sie gedr�ckt haben.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html550"
+  HREF="node44.html">Bearbeiten:</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node44.html b/gosa-core/doc/core/de/html/users/node44.html
new file mode 100644
index 0000000..68a54e3
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node44.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Bearbeiten:</TITLE>
+<META NAME="description" CONTENT="Bearbeiten:">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H4><A NAME="SECTION00018410000000000000">
+Bearbeiten:</A>
+</H4>
+
+<P>
+Wenn Sie den Knopf <SPAN  CLASS="textit">Bearbeiten</SPAN> gedr�ckt haben, sehen Sie eine
+zweigeteilte Seite. Auf der linken Seite sehen Sie die aktuell g�ltigen
+Nummern/Listen, gegen die ein-/ bzw. ausgehende Nummern gepr�ft werden.
+Um eine Nummer hinzuzuf�gen, geben Sie diese um Textfeld unterhalb
+der Liste ein und klicken Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>. Um eine
+bereits bestehende Liste aus einer Unterabteilung hinzuzuf�gen w�hlen
+Sie in der rechten Liste die Unterabteilung, die die Liste enth�lt
+und dr�cken Sie den Knopf <SPAN  CLASS="textit">Liste zu den Sperrlisten hinzuf�gen</SPAN>.
+Um eine oder mehrere Nummern/Listen aus der Liste zu entfernen, markieren
+Sie diese/n und dr�cken Sie den Knopf <SPAN  CLASS="textit">Entfernen</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node45.html b/gosa-core/doc/core/de/html/users/node45.html
new file mode 100644
index 0000000..df879fa
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node45.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon</TITLE>
+<META NAME="description" CONTENT="Telefon">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00019000000000000000">
+Telefon</A>
+</H2>
+
+<P>
+Um die Telefon-Erweiterung f�r den Benutzer zu aktivieren, klicken
+Sie auf den Knopf <SPAN  CLASS="textit">Telefon-Konto erstellen</SPAN>. Wenn Sie die Erweiterung
+wieder entfernen m�chten, klicken Sie auf den Knopf <SPAN  CLASS="textit">Telefon-Konto
+entfernen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html569"
+  HREF="node46.html">Telefonnummern</A>
+<LI><A NAME="tex2html570"
+  HREF="node47.html">Telefon-Hardware</A>
+<LI><A NAME="tex2html571"
+  HREF="node48.html">Telefon-Makro</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node46.html b/gosa-core/doc/core/de/html/users/node46.html
new file mode 100644
index 0000000..b7275a8
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node46.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefonnummern</TITLE>
+<META NAME="description" CONTENT="Telefonnummern">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019100000000000000">
+Telefonnummern</A>
+</H3>
+
+<P>
+In dieser Liste werden die Telefonnummern aufgef�hrt, die dem Benutzer
+zugeordnet sind.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Nummer hinzuf�gen</SPAN>: Geben Sie die Nummer in die Eingabezeile
+ein und dr�cken Sie den Knopf <SPAN  CLASS="textit">Hinzuf�gen</SPAN>
+</LI>
+<LI>Nummer entfernen: Markieren Sie die Nummer aus der Liste und dr�cken
+Sie den Knopf <SPAN  CLASS="textit">Entfernen.</SPAN>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node47.html b/gosa-core/doc/core/de/html/users/node47.html
new file mode 100644
index 0000000..645b74d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node47.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon-Hardware</TITLE>
+<META NAME="description" CONTENT="Telefon-Hardware">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019200000000000000">
+Telefon-Hardware</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie das Telefon aus der Liste, wenn der Benutzer ein</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Voicemail-PIN<SPAN ID="hue465">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie den vierstelligen PIN-Code ein, den der Benutzer eingeben
+muss, um seine Mailbox zu erreichen.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefon-PIN<SPAN ID="hue466">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geben Sie den vierstelligen PIN-Code ein, den der Benutzer eingeben
+muss, um sich an seinem Telefon anzumelden.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node48.html b/gosa-core/doc/core/de/html/users/node48.html
new file mode 100644
index 0000000..639bc37
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node48.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefon-Makro</TITLE>
+<META NAME="description" CONTENT="Telefon-Makro">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019300000000000000">
+Telefon-Makro</A>
+</H3>
+
+<P>
+W�hlen Sie aus der Liste das Makro, das ausgef�hrt werden soll, wenn
+der Benutzer eine Nummer w�hlt (Gegebenenfalls m�ssen/k�nnen noch
+weitere Makrospezifische Optionen eingestellt werden, z.B. Nummer
+der Mailbox, Weiterleitungen, Zeit bis Weiterleitung, etc.).
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node49.html b/gosa-core/doc/core/de/html/users/node49.html
new file mode 100644
index 0000000..d4a7004
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node49.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenzen</TITLE>
+<META NAME="description" CONTENT="Referenzen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION000110000000000000000">
+Referenzen</A>
+</H2>
+
+<P>
+Unter Referenzen findet sich eine Auflistung aller Verbindungen des
+Benutzers zu anderen Eintr�ge im LDAP (z.B. Gruppen, Systeme etc.).
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node5.html b/gosa-core/doc/core/de/html/users/node5.html
new file mode 100644
index 0000000..6d35f3d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node5.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Allgemein</TITLE>
+<META NAME="description" CONTENT="Allgemein">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Allgemein</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html151"
+  HREF="node6.html">Pers�nliche Informationen</A>
+<LI><A NAME="tex2html152"
+  HREF="node7.html">Angabe zur Organisationseinheit</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node50.html b/gosa-core/doc/core/de/html/users/node50.html
new file mode 100644
index 0000000..4de551f
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node50.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Benutzerverwaltung</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/users/ users.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node6.html b/gosa-core/doc/core/de/html/users/node6.html
new file mode 100644
index 0000000..5e4f40d
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node6.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Pers�nliche Informationen</TITLE>
+<META NAME="description" CONTENT="Pers�nliche Informationen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Pers�nliche Informationen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue87">Nachname</SPAN><SPAN ID="hue439">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Nachname des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue91">Vorname</SPAN><SPAN ID="hue440">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Vorname des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue95">Kennung</SPAN><SPAN ID="hue441">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kennung (=Benutzername) des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Titel</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Anrede (Herr, Frau etc.)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Akademischer Titel</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Akademischer Titel (z.B. Prof., Dr., Prof. Dr., etc.)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Geburtsdatum</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mit dem Knopf <SPAN  CLASS="textit">Setzen</SPAN> kann das Geburtsdatum eingestellt werden</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Geschlecht</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie den passenden Eintrag aus der Liste.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Bevorzugte Sprache</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Sprache der Oberfl�che (de_DE=Deutsch, en = Englisch, etc.)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Abteilung des Benutzers (Die Verwaltung der Abteilungen geschieht
+�ber den Knopf <SPAN  CLASS="textbf"><SPAN ID="hue100">Abteilungen</SPAN></SPAN> im linken Men�).</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Benutzerbild</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Um ein Bild des Benutzers zu speichern, dr�cken Sie auf den Knopf
+<SPAN  CLASS="textit">Bild �ndern</SPAN>. W�hlen Sie das gew�nschte Bild. Das Bild wird
+nun angezeigt. Um es zu speichern, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Speichern</SPAN>.
+Wenn Sie das Bild nicht speichern m�chten, dr�cken Sie auf den Knopf
+<SPAN  CLASS="textit">abbrechen</SPAN>.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Privat-Adresse des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Privat-Telefon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Private Telefonnummer des Benutzers (Sie sollten diese sinnvollerweise
+im internationalen Format einf�gen, z.B. +49 1234 555-0)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Homepage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Homepage des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Passwort-Speicherung</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>W�hlen Sie die Methode aus, mit der das Passwort verschl�sselt werden
+soll, bevor es im LDAP gespeichert wird.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Zertifikate</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue105">Dr�cken Sie auf den Knopf</SPAN> <SPAN ID="hue443"><SPAN  CLASS="textit">Zertifikate
+bearbeiten.</SPAN></SPAN> <SPAN ID="hue109">Sie k�nnen dann drei verschiedene
+Zertifikate hochladen. Zum Speichern der Zertifikate, dr�cken Sie
+auf</SPAN> <SPAN ID="hue444"><SPAN  CLASS="textit">Speichern</SPAN></SPAN><SPAN ID="hue113">.</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kerberos</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Dr�cken Sie auf den Knopf <SPAN  CLASS="textit">Eigenschaften bearbeiten</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node7.html b/gosa-core/doc/core/de/html/users/node7.html
new file mode 100644
index 0000000..0a5552a
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node7.html
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Angabe zur Organisationseinheit</TITLE>
+<META NAME="description" CONTENT="Angabe zur Organisationseinheit">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Angabe zur Organisationseinheit</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+Organisation </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Der Name der Organisation (z.B. GONICUS GmbH)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Abteilung </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Der Name der Abteilung (z.B. Technik)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Abteilungs-Nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Nummer der Abteilung (z.B. )</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Angestellten-Nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Nummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Anstellungsart </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Position des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Zimmer-Nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Zimmernummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Telefon </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Telefonnummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Mobiltelefon </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Mobiltelefonnummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Pager </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Pager-Nummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Fax </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Faxnummer des Angestellten</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Ort </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Der Ort der Organisation (oder Abteilung)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Land </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Das Land der Organisation (oder Abteilung)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Adresse </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Die Postadresse der Organisation (oder Abteilung)</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node8.html b/gosa-core/doc/core/de/html/users/node8.html
new file mode 100644
index 0000000..14af1ab
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node8.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Unix</TITLE>
+<META NAME="description" CONTENT="Unix">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Unix</A>
+</H2>
+
+<P>
+Um die Unix-Erweiterung zu aktivieren, dr�cken Sie auf den Knopf <SPAN  CLASS="textit">UNIX-Konto</SPAN>
+erstellen.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html181"
+  HREF="node9.html">Generic</A>
+<LI><A NAME="tex2html182"
+  HREF="node10.html">Gruppenmitgliedschaft</A>
+<LI><A NAME="tex2html183"
+  HREF="node11.html">Konto</A>
+<LI><A NAME="tex2html184"
+  HREF="node12.html">System-Vertrauen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/node9.html b/gosa-core/doc/core/de/html/users/node9.html
new file mode 100644
index 0000000..100aedf
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/node9.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basisverzeichnis<SPAN ID="hue447">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Das pers�nliche Verzeichnis des Benutzers</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Shell</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die Shell, die beim Anmelden ausgef�hrt werden soll (/bin/false sorgt
+daf�r, dass sich der Benutzer nicht anmelden kann)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Prim�re Gruppe</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Die prim�re Gruppe des Benutzers, zu der er hinzugef�gt werden soll
+(Um Gruppen zu verwalten, klicken Sie aus dem Men�-Abschnitt <SPAN  CLASS="textbf">Administration</SPAN>
+auf den Knopf <SPAN  CLASS="textbf"><SPAN ID="hue135">Gruppen</SPAN></SPAN>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Status</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Zeigt an, ob das Konto aktiv ist</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Erzwinge UID/GID</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mit dieser Funktion k�nnen die UNIX UID und GID auf einen bestimmten
+Wert erzwungen werden.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/html/users/penguin.png b/gosa-core/doc/core/de/html/users/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/penguin.png differ
diff --git a/gosa-core/doc/core/de/html/users/rocket.png b/gosa-core/doc/core/de/html/users/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/rocket.png differ
diff --git a/gosa-core/doc/core/de/html/users/search.png b/gosa-core/doc/core/de/html/users/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/search.png differ
diff --git a/gosa-core/doc/core/de/html/users/select_netatalk.png b/gosa-core/doc/core/de/html/users/select_netatalk.png
new file mode 100644
index 0000000..e589720
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/select_netatalk.png differ
diff --git a/gosa-core/doc/core/de/html/users/select_phone.png b/gosa-core/doc/core/de/html/users/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/select_phone.png differ
diff --git a/gosa-core/doc/core/de/html/users/select_user.png b/gosa-core/doc/core/de/html/users/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/select_user.png differ
diff --git a/gosa-core/doc/core/de/html/users/select_winstation.png b/gosa-core/doc/core/de/html/users/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/select_winstation.png differ
diff --git a/gosa-core/doc/core/de/html/users/smallenv.png b/gosa-core/doc/core/de/html/users/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/smallenv.png differ
diff --git a/gosa-core/doc/core/de/html/users/users.css b/gosa-core/doc/core/de/html/users/users.css
new file mode 100644
index 0000000..0e87bee
Binary files /dev/null and b/gosa-core/doc/core/de/html/users/users.css differ
diff --git a/gosa-core/doc/core/de/html/users/users.html b/gosa-core/doc/core/de/html/users/users.html
new file mode 100644
index 0000000..3215e26
--- /dev/null
+++ b/gosa-core/doc/core/de/html/users/users.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Benutzerverwaltung</TITLE>
+<META NAME="description" CONTENT="Benutzerverwaltung">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Benutzerverwaltung</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste der Benutzer</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Benutzerkonto anlegen</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Ein bestehendes Benutzerkonto bearbeiten</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Generelle Informationen</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Allgemein</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Pers�nliche Informationen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Angabe zur Organisationseinheit</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Generic</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Gruppenmitgliedschaft</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Konto</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">System-Vertrauen</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Umgebung</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Profile</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Kiosk-Profil</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Anmelde-Skripte</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Freigaben</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Hotplug-Ger�te</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Drucker</A>
+</UL>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Allgemein</A>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Alternative Adressen</A>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Mail-Einstellungen</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Erweiterte Mail-Einstellungen</A>
+</UL>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Allgemein</A>
+<LI><A NAME="tex2html29"
+  HREF="node27.html">Terminal-Server</A>
+<LI><A NAME="tex2html30"
+  HREF="node28.html">Zugriffsoptionen</A>
+</UL>
+<LI><A NAME="tex2html31"
+  HREF="node29.html">Konnektivit�t</A>
+<UL>
+<LI><A NAME="tex2html32"
+  HREF="node30.html">Proxy Konto</A>
+<LI><A NAME="tex2html33"
+  HREF="node31.html">FTP Konto</A>
+<LI><A NAME="tex2html34"
+  HREF="node32.html">WebDAV-Konto</A>
+<LI><A NAME="tex2html35"
+  HREF="node33.html">phpGroupware-Konto</A>
+<LI><A NAME="tex2html36"
+  HREF="node34.html">Intranet-Konto</A>
+<LI><A NAME="tex2html37"
+  HREF="node35.html">Opengroupware</A>
+<LI><A NAME="tex2html38"
+  HREF="node36.html">PPTP-Konto</A>
+<LI><A NAME="tex2html39"
+  HREF="node37.html">PHPScheduleit-Konto</A>
+<LI><A NAME="tex2html40"
+  HREF="node38.html">GLPI-Konto</A>
+</UL>
+<LI><A NAME="tex2html41"
+  HREF="node39.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html42"
+  HREF="node40.html">Allgemein</A>
+<LI><A NAME="tex2html43"
+  HREF="node41.html">Auslieferungsmethode</A>
+<LI><A NAME="tex2html44"
+  HREF="node42.html">Alternative Fax-Nummern</A>
+<LI><A NAME="tex2html45"
+  HREF="node43.html">Sperrlisten</A>
+<UL>
+<LI><A NAME="tex2html46"
+  HREF="node44.html">Bearbeiten:</A>
+</UL>
+</UL>
+<LI><A NAME="tex2html47"
+  HREF="node45.html">Telefon</A>
+<UL>
+<LI><A NAME="tex2html48"
+  HREF="node46.html">Telefonnummern</A>
+<LI><A NAME="tex2html49"
+  HREF="node47.html">Telefon-Hardware</A>
+<LI><A NAME="tex2html50"
+  HREF="node48.html">Telefon-Makro</A>
+</UL>
+<LI><A NAME="tex2html51"
+  HREF="node49.html">Referenzen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html52"
+  HREF="node50.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/de/lyx-source/applications.lyx b/gosa-core/doc/core/de/lyx-source/applications.lyx
new file mode 100644
index 0000000..aae2908
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/applications.lyx
@@ -0,0 +1,605 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Anwendungsverwaltung
+\layout Section
+
+Liste der Anwendungen
+\layout Standard
+
+Die Liste der Anwendungen dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Anwendungen
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Anwendungen geladen (�berschrift:
+\family sans 
+\color black
+ 
+\emph on 
+Anwendungsverwaltung
+\family default 
+\emph default 
+\color default
+).
+\layout Standard
+
+Die Liste ist in zwei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann die
+ Namen der Anwendungen (alphabetisch sortiert)
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+\layout Standard
+
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+\noindent 
+Es ist weiterhin m�glich, die Anzeige der Anwendungen mithilfe von Filtern
+ zu beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+
+\color black
+Nach Namen suchen :
+\begin_deeper 
+\layout Standard
+
+- Klick auf 
+\series bold 
+*
+\series default 
+ zeigt alle Anwendungen an
+\layout Standard
+
+
+\color black
+- Klick auf einen Buchstaben zeigt alle Anwendungen an, deren Name mit dem
+ gew�hlten Buchstaben beginnt
+\layout Standard
+
+
+\color black
+- Klick auf eine Zahl zeigt alle Anwendungen an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Schnellsuche 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+: Suchkriterium (z.B.
+ Name der Anwendung) eingeben, Klick auf Knopf 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\layout Subsection*
+
+Eine Anwendung hinzuf�gen / Eine bestehende Anwendung bearbeiten
+\layout Standard
+
+Um eine Anwendung hinzuzuf�gen, klicken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_app.png
+
+\end_inset 
+
+ (Er befindet sich oberhalb der Liste).
+ Wenn Sie keine neue Anwendung hinzuf�gen wollen, sondern eine vorhandene
+ bearbeiten m�chten, klicken Sie entweder auf den Eintrag in der Liste (z.B.
+ 
+\series bold 
+gimp - [Bildbearbeitung]
+\series default 
+) oder auf den Knopf 
+\begin_inset Graphics
+	filename images/edit.png
+	clip
+
+\end_inset 
+
+ des entsprechenden Eintrags.
+\layout Standard
+
+Es �ffnet sich eine Seite mit drei Reitern (
+\emph on 
+Allgemein
+\emph default 
+ / 
+\emph on 
+Optionen
+\emph default 
+ / 
+\emph on 
+Referenzen
+\emph default 
+).
+ Diese dienen dazu, die Eigenschaften der Anwendung logisch aufzuteilen
+ (Unter 
+\emph on 
+Allgemein
+\emph default 
+ werden die generellen Eigenschaften der Anwendung konfiguriert, 
+\emph on 
+Optionen
+\emph default 
+ dient dazu, Umgebungsvariablen f�r die Anwendung zu setzen und 
+\emph on 
+Referenzen
+\emph default 
+ zeigt an, von welchen Objekten (Benutzer, Gruppen, etc.) die gew�hlte Anwendung
+ verwendet wird).
+\layout Standard
+
+Um �nderungen zu speichern, verwenden Sie den Knopf 
+\emph on 
+Anwenden
+\emph default 
+.
+ Um die vorgenommenen �nderungen zu verwerfen und wieder in die Liste der
+ Anwendungen zu gelangen, verwenden Sie den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+.
+\layout Standard
+
+Die Felder, die mit einem roten Sternchen enden, sind Pflichtfelder und
+ m�ssen zwingend ausgef�llt werden (GOsa wird die �nderungen sonst nicht
+ �bernehmen).
+\layout Standard
+
+Im Folgenden werden die Reiter ausf�hrlich beschrieben.
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="6cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="12cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Name der Anwendung
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der allgemeine Name der Anwendung (Kurzform), z.B.
+ 
+\series bold 
+gimp
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Angezeigter Name 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der angezeigte Name der Anwendung, z.B.
+ GIMP
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ausf�hren
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Befehl, der verwendet werden soll, um die Anwendung zu starten (z.B.
+ 
+\series bold 
+gimp-remote-2.2 %U
+\series default 
+)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Eine kurze Beschreibung der Anwendung (z.B.
+ 
+\series bold 
+Bildbearbeitung
+\series default 
+)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Abteilung, in die diese Anwendung eingef�gt werden soll.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Symbol
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das zugeh�rige Symbol zur Anwendung.
+ Die Auswahl erfolgt mit dem Knopf rechts neben dem Eingabefeld (je nach
+ Browser unterschiedlich).
+ Um das Symbol mit der Anwendung zu verkn�pfen, klicken Sie auf den Knopf
+ 
+\emph on 
+Anwenden
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+
+Optionen
+\layout Itemize
+
+
+\emph on 
+Nur ausf�hrbar f�r Gruppen-Mitglieder
+\begin_deeper 
+\layout Standard
+
+Wenn diese Option gew�hlt ist, d�rfen nur Mitglieder einer entsprechenden
+ UNIX- oder Objektgruppe die Anwendung ausf�hren (Es werden die Rechte der
+ Datei unter 
+\emph on 
+Ausf�hren
+\emph default 
+ angepasst, daher ist diese Option nur sinnvoll, wenn die Anwendung nur
+ einer Gruppe zugeordnet ist).
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Konfiguration bei jedem Start ersetzen
+\begin_deeper 
+\layout Standard
+
+Wenn diese Option gew�hlt ist, wird bei jedem Start der Anwendung die vorhandene
+ Konfiguration mit der Standardkonfiguration �berschrieben.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Platziere das Symbol auf dem Desktop der Gruppenmitglieder
+\begin_deeper 
+\layout Standard
+
+Wenn diese Option gew�hlt ist, erscheint das Anwendungssymbol auf dem Desktop
+ der Gruppenmitglieder.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Platziere einen Eintrag im Startmen� der Gruppenmitglieder
+\begin_deeper 
+\layout Standard
+
+Wenn diese Option gew�hlt ist, erscheint die Anwendung als Eintrag im Startmen�
+ der Gruppenmitglieder.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Platziere einen Eintrag in der Kontrollleiste der Gruppenmitglieder
+\begin_deeper 
+\layout Standard
+
+Wenn diese Option gew�hlt ist, erscheint die Anwendung als Symbol in der
+ Kontrollleiste der Gruppenmitglieder.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Skript
+\layout Standard
+
+Der Inhalt dieser Textbox wird beim Start der Anwendung ausgef�hrt.
+ Sie k�nnen entweder das Skript direkt in der Textbox editieren, oder ein
+ vorhandenes Skript hochladen (Dazu klicken Sie auf den Knopf rechts neben
+ der Eingabezeile unterhalb der Textbox - dieser ist je nach Browser unterschied
+lich - und w�hlen das gew�nschte Skript aus.
+ Um das gew�hlte Skript in das Fenster zu laden, klicken Sie auf den Knopf
+ 
+\emph on 
+Hochladen
+\emph default 
+.
+\layout Standard
+
+Beispiele f�r die Verwendung eines Skriptes:
+\layout Itemize
+
+Erstellen von Verzeichnissen
+\layout Itemize
+
+Setzen von Konfigurationsparametern
+\layout Subsection
+\added_space_top bigskip 
+Optionen
+\layout Standard
+
+Der Reiter 
+\emph on 
+Optionen
+\emph default 
+ dient dazu, Umgebungsvariablen f�r Anwendungen zu setzen.
+ Standardm�ssig sind Optionen deaktiviert und m�ssen zun�chst mit einem
+ Klick auf den Knopf 
+\emph on 
+Optionen aktivieren
+\emph default 
+ hinzugef�gt werden.
+ Die verf�gbaren Felder auf der Seite sind in der folgenden Tabelle beschrieben:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="12cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Variable
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name der Variablen
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Standardwert
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Standardwert der Variablen (kann �berschrieben werden)
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+\added_space_top medskip 
+Um eine neue Variable hinzuzuf�gen, verwenden Sie den Knopf 
+\emph on 
+Option hinzuf�gen
+\emph default 
+.
+ Um eine vorhanden Variable zu entfernen, verwenden Sie den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\layout Subsection
+
+Referenzen
+\layout Standard
+
+Der Reiter 
+\emph on 
+Referenzen
+\emph default 
+ dient dazu, sich einen �berblick zu verschaffen, von welchen Objekten diese
+ Anwendung verwendet wird.
+ In der Regel werden dies UNIX-Gruppen sein, andere Objekt-Typen sind jedoch
+ m�glich.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/blocklists.lyx b/gosa-core/doc/core/de/lyx-source/blocklists.lyx
new file mode 100644
index 0000000..81af248
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/blocklists.lyx
@@ -0,0 +1,342 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Sperrlistenverwaltung
+\layout Section
+
+Liste der Sperrlisten
+\layout Standard
+
+Die Liste der Sperrlisten dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Fax-Sperrlisten
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Sperrlisten geladen (�berschrift: 
+\emph on 
+Sperrlistenverwaltung)
+\emph default 
+.
+ Auf dieser Seite k�nnen Sperrlisten hinzugef�gt, bearbeitet oder entfernt
+ werden.
+\layout Standard
+
+Die Liste ist in zwei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt die Namen der Sperrlisten
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Bearbeiten, Entfernen)
+\layout Standard
+\added_space_bottom medskip 
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+
+Es ist weiterhin m�glich, die Anzeige der Sperrlisten mithilfe von Filtern
+ zu beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+
+\color black
+Nach Namen suchen :
+\begin_deeper 
+\layout Standard
+
+- Klick auf 
+\series bold 
+*
+\series default 
+ zeigt alle Sperrlisten an
+\layout Standard
+
+
+\color black
+- Klick auf einen Buchstaben zeigt alle
+\color default
+ Sperrlisten
+\color black
+ an, deren Name mit dem gew�hlten Buchstaben beginnt
+\layout Standard
+
+
+\color black
+- Klick auf eine Zahl zeigt alle 
+\color default
+Sperrlisten
+\color black
+ an, deren Name mit der gew�hlten Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Schnellsuche 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+: Suchkriterium (z.B.
+ Name der Sperrlisten) eingeben, Klick auf Knopf 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\begin_deeper 
+\layout Standard
+\added_space_top medskip 
+Um eine neue Sperrliste zu erstellen, dr�cken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_blocklist.png
+
+\end_inset 
+
+ oberhalb der Liste.
+ 
+\layout Standard
+
+Um eine bestehende Sperrliste zu bearbeiten, dr�cken Sie auf den Namen der
+ Sperrliste
+\end_deeper 
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+List
+\color black
+enname
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name der Sperrliste
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie aus der Liste die Abteilung, der die Liste zugeordnet werden
+ soll
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Typ
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie aus der Liste, ob die Sperrliste f�r eingehende (
+\emph on 
+empfangen
+\emph default 
+) oder ausgehende (
+\emph on 
+senden
+\emph default 
+) Faxe verwendet werden soll.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kurze Beschreibung der Sperrliste
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Gesperrte Nummern
+\layout Standard
+
+In der Liste der gesperrten Nummern, werden alle Nummern aufgef�hrt, die
+ momentan dieser Liste zugeordnet sind.
+ Um eine weitere Nummer einzuf�gen, geben Sie die Nummer in das Textfeld
+ unterhalb der Liste ein und dr�cken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Um eine oder mehrere Nummern aus der Liste zu entfernen, markieren Sie
+ diese in der Liste und dr�cken Sie auf den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Information
+\layout Standard
+
+Hier wird Ihnen lediglich die Information eingeblendet, dass Sie in den
+ Nummern Platzhalter (z.B.
+ *) verwenden k�nnen.
+\layout Standard
+
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/conference.lyx b/gosa-core/doc/core/de/lyx-source/conference.lyx
new file mode 100644
index 0000000..32f6b87
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/conference.lyx
@@ -0,0 +1,416 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Konferenz-Verwaltung
+\layout Section
+
+Liste der Konferenz-R�ume
+\layout Standard
+
+Die Liste der Konferenz-R�ume dient als Ausgangspunkt f�r alle weiteren
+ Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Telefon-Konferenzen
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Konferenz-R�ume geladen (�berschrift: 
+\emph on 
+Konferenz-Verwaltung)
+\emph default 
+.
+ Auf dieser Seite k�nnen Telefon-Konferenzen hinzugef�gt, bearbeitet oder
+ entfernt werden.
+\layout Standard
+
+Die Liste ist in vier Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt den Namen der Telefon-Konferenz
+\layout Itemize
+
+Die zweite Spalte enth�lt den Besitzer der Telefon-Konferenz
+\layout Itemize
+
+Die dritte Spalte zeigt an, ob f�r die Telefon-Konferenz ein PIN voreingestellt
+ wurde
+\layout Itemize
+
+Die vierte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Bearbeiten, Entfernen).
+\layout Standard
+\added_space_bottom medskip 
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ , 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden 
+\layout Standard
+
+Es ist weiterhin m�glich, die Anzeige der Konferenzen mithilfe von Filtern
+ zu beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+
+\color black
+Nach Namen suchen :
+\begin_deeper 
+\layout Standard
+
+- Klick auf 
+\series bold 
+*
+\series default 
+ zeigt alle Konferenzen an
+\layout Standard
+
+
+\color black
+- Klick auf einen Buchstaben zeigt alle
+\color default
+ Konferenzen
+\color black
+ an, deren Name mit dem gew�hlten Buchstaben beginnt
+\layout Standard
+
+
+\color black
+- Klick auf eine Zahl zeigt alle 
+\color default
+Konferenzen
+\color black
+ an, deren Name mit der gew�hlten Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Schnellsuche 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+: Suchkriterium (z.B.
+ Name der Konferenz) eingeben, Klick auf Knopf 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\begin_deeper 
+\layout Standard
+\added_space_top medskip 
+Um einen neuen Konferenz-Raum zu erstellen, dr�cken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/select_new_component.png
+
+\end_inset 
+
+ oberhalb der Liste.
+\layout Standard
+
+Um einen bestehenden Konferenz-Raum zu bearbeiten, dr�cken Sie auf seinen
+ Namen.
+\end_deeper 
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Subsubsection
+
+Eigenschaften
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Konferenz-Name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der eindeutige Name des Konferenz-Raums
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Typ
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Typ des Konferenz-Raums aus der Liste
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die aus der Liste die Abteilung, der der Konferenz-Raum zugeordnet
+ werden soll.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kurze Beschreibung des Konferenz-Raums
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Lebenszeit (in Tagen)
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie die Zeit ein, die der Konferenz-Raum existieren soll
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefonnummer
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Telefonnummer, unter der die Konferenz zu erreichen ist
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Optionen
+\layout Itemize
+
+PIN voreinstellen
+\newline 
+W�hlen Sie diese Option, wenn Sie die Konferenz mit einem allgemeinen PIN
+ sch�tzen m�chten.
+ Geben Sie dazu die PIN in das Feld PIN ein.
+\layout Itemize
+
+Konferenz aufnehmen
+\begin_deeper 
+\layout Standard
+
+W�hlen Sie diese Option, wenn Sie die Konferenz aufzeichnen m�chten.
+ W�hlen Sie dazu aus der Liste das gew�nschte Format f�r die Aufnahme.
+\end_deeper 
+\layout Itemize
+
+Wartemusik bei Halten
+\newline 
+W�hlen Sie diese Option, wenn der oder die gehaltenen Anrufer eine Wartemusik
+ h�ren sollen.
+\layout Itemize
+
+Sitzungsmen� aktivieren
+\begin_deeper 
+\layout Standard
+
+W�hlen Sie diese Option, wenn Sie das Sitzungsmen� aktivieren m�chten.
+\end_deeper 
+\layout Itemize
+
+Benachrichtige �ber Zugang/Abgang von Teilnehmern
+\begin_deeper 
+\layout Standard
+
+W�hlen Sie diese Option, um jedesmal, wenn ein Teilnehmer die Konferenz
+ betritt oder verl�sst eine Benachrichtigung abzuspielen.
+\end_deeper 
+\layout Itemize
+
+Z�hle Benutzer
+\begin_deeper 
+\layout Standard
+
+W�hlen Sie diese Option, um die Anzahl der Teilnehmer zu z�hlen.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter 
+\emph on 
+Referenzen
+\emph default 
+ werden alle Verbindungen dieser Telefon-Konferenz zu anderen Objekten im
+ LDAP-Verzeichnis aufgelistet.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/departments.lyx b/gosa-core/doc/core/de/lyx-source/departments.lyx
new file mode 100644
index 0000000..49c3de1
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/departments.lyx
@@ -0,0 +1,423 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Abteilungsverwaltung
+\layout Section
+
+Liste der Abteilungen
+\layout Standard
+
+Die Liste der Abteilungen dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+Abteilungen
+\series default 
+ aus der Kategorie 
+\series bold 
+\color blue
+Administration
+\series default 
+\color default
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Abteilungen geladen (�berschrift: Abteilungsverw
+altung).
+ Auf dieser Seite k�nnen Abteilungen hinzugef�gt, bearbeitet oder entfernt
+ werden.
+\layout Standard
+
+Die Liste ist in zwei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt die Namen der Abteilungen 
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Bearbeiten, Entfernen)
+\layout Standard
+
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+
+Es ist weiterhin m�glich, die Anzeige der Abteilungen mithilfe von Filtern
+ zu beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+Nach Namen suchen:
+\begin_deeper 
+\layout Itemize
+
+Klick auf * zeigt alle Abteilungen an
+\layout Itemize
+
+Klick auf einen Buchstaben zeigt alle Abteilungen an, deren Name mit dem
+ gew�hlten Buchstaben beginnt
+\layout Itemize
+
+Klick auf eine Ziffer zeigt alle Abteilungen an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+\added_space_bottom medskip 
+Schnellsuche (Textfeld 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+): Geben Sie einen Teil des Names (oder den ganzen Namen) der Abteilung
+ ein, die Sie suchen und klicken Sie auf den Knopf 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\layout Subsection*
+
+Abteilung erstellen
+\layout Standard
+
+Um eine neue Abteilung zu erstellen, dr�cken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_department.png
+
+\end_inset 
+
+.
+ Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung bestehender
+ Abteilungen.
+\layout Subsection*
+
+Eine bestehende Abteilung bearbeiten
+\layout Standard
+
+Klicken Sie in der Liste der Abteilungen auf das Symbol 
+\begin_inset Graphics
+	filename images/edit.png
+
+\end_inset 
+
+ in der Zeile der Abteilung, die Sie bearbeiten m�chten.
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Subsubsection
+
+Eigenschaften
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="11cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name der Abteilung
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Name der Abteilung
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Beschreibung (oder ein Kommentar) der Abteilung
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kategorie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Kategorie der Abteilung
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Basis (die �bergeordnete Abteilung) der Abteilung
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Ort
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Land
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Land, in dem sich die Abteilung befindet
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ort
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Ort, in dem sich die Abteilung befindet
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Anschrift der Abteilung
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Telefonnummer der Zentrale der Abteilung
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Faxnummer der Abteilung
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+
+Administrative Einstellungen
+\layout Itemize
+
+
+\emph on 
+Abteilung als eigenst�ndige administrative Einheit kennzeichnen
+\emph default 
+:
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter Referenzen werden alle Verbindungen dieser Abteilung zu anderen LDAP-Eintr
+�gen angezeigt.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/faxreports.lyx b/gosa-core/doc/core/de/lyx-source/faxreports.lyx
new file mode 100644
index 0000000..fec06f4
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/faxreports.lyx
@@ -0,0 +1,187 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding default
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Zus�tzliches
+\layout Section
+
+Fax-Berichte
+\layout Standard
+
+Dieses Modul dient der Anzeige von Faxberichten.
+ Dabei kann die Anzeige mithilfe von Filtern beeinflusst werden.
+\layout Subsection
+
+Filter 
+\color black
+
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+
+\layout Standard
+
+Suche nach 
+\emph on 
+\noun on 
+Zeichenkette
+\emph default 
+\noun default 
+ in 
+\emph on 
+\noun on 
+Abteilung
+\emph default 
+\noun default 
+ w�hrend 
+\emph on 
+\noun on 
+Monat
+\emph default 
+\noun default 
+ in 
+\emph on 
+\noun on 
+Jahr:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Zeichenkette
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Abteilung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Abteilung aus der Liste, auf die Sie die Suche begrenzen
+ m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Monat
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Monat aus der Liste, auf den Sie die Suche begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Jahr
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie das Jahr aus der Liste, auf das Sie die Suche begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken Sie
+ auf den Knopf 
+\emph on 
+Suchen
+\emph default 
+ ganz rechts.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/fonreports.lyx b/gosa-core/doc/core/de/lyx-source/fonreports.lyx
new file mode 100644
index 0000000..0c41f81
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/fonreports.lyx
@@ -0,0 +1,187 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Zus�tzliches
+\layout Section
+
+Telefon-Berichte
+\layout Standard
+
+Dieses Modul dient der Anzeige von Telefonberichten.
+ Dabei kann die Anzeige mithilfe von Filtern beeinflusst werden.
+\layout Subsection
+
+Filter 
+\color black
+
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+
+\layout Standard
+
+Suche nach 
+\emph on 
+\noun on 
+Zeichenkette
+\emph default 
+\noun default 
+ in 
+\emph on 
+\noun on 
+Abteilung
+\emph default 
+\noun default 
+ w�hrend 
+\emph on 
+\noun on 
+Monat
+\emph default 
+\noun default 
+ in 
+\emph on 
+\noun on 
+Jahr:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Zeichenkette
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Abteilung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Abteilung aus der Liste, auf die Sie die Suche begrenzen
+ m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Monat
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Monat aus der Liste, auf den Sie die Suche begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Jahr
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie das Jahr aus der Liste, auf das Sie die Suche begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken Sie
+ auf den Knopf 
+\emph on 
+Suchen
+\emph default 
+ ganz rechts.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/groups.lyx b/gosa-core/doc/core/de/lyx-source/groups.lyx
new file mode 100644
index 0000000..5ecaddd
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/groups.lyx
@@ -0,0 +1,985 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Gruppenverwaltung
+\layout Section
+
+Liste der Gruppen
+\layout Standard
+
+Die Liste der Gruppen dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Gruppen
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Gruppen geladen (�berschrift: Gruppenverwaltung).
+ Auf dieser Seite k�nnen Gruppen hinzugef�gt, bearbeitet oder entfernt werden.
+\layout Standard
+
+Die Liste ist in drei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann die
+ Namen der Gruppn (alphabetisch sortiert)
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die verschiedenen
+ Reiter der Gruppe (nur verf�gbar, wenn die entsprechende Erweiterung aktiviert
+ ist).
+ Sie dient daher ausserdem f�r einen schnellen �berblick �ber die aktivierten
+ Erweiterungen einer Gruppe
+\begin_deeper 
+\layout Itemize
+
+Die m�glichen Symbole und ihre Bedeutung:
+\newline 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Symbol
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bedeutung
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_groups.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppe verf�gt �ber UNIX-Eigenschaften
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/smallenv.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppe verf�gt �ber Umgebungs-Einstellungen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/mailto.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppe verf�gt �ber ein Mail-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_winstation.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppe verf�gt �ber SAMBA-Eigenschaften
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_application.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppe verf�gt �ber Anwendungs-Eigenschaften
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_deeper 
+\layout Itemize
+
+Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+\layout Standard
+\added_space_bottom medskip 
+Die Kn�pfe (
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+) dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+ Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ Zur Basis des Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ Aktuelle Abteilung neu laden
+\layout Standard
+
+Es ist weiterhin m�glich, die Anzeige der Gruppen mithilfe von Filtern zu
+ beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+
+\color black
+Nach Namen suchen:
+\begin_deeper 
+\layout Itemize
+
+Klick auf * zeigt alle Gruppen an
+\layout Itemize
+
+Klick auf einen Buchstaben zeigt alle Gruppen an, deren Namen mit dem gew�hlten
+ Buchstaben beginnt
+\layout Itemize
+
+Klick auf eine Ziffer zeigt alle Gruppen an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Weitere Suchoptionen:
+\newline 
+(Die folgenden Filter arbeiten so, dass nur Gruppen angezeigt werden, die
+ �ber mindestens eine der ausgew�hlten Optionen verf�gen; Standardm�ssig
+ werden alle Gruppen angezeigt
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Zeige prim�re Gruppen
+\emph default 
+: Zeigt Gruppen, die f�r mindestens einen Benutzer die prim�re Gruppe ist
+\layout Itemize
+
+
+\emph on 
+Zeige Samba-Gruppen
+\emph default 
+: Zeigt Gruppen, die �ber Samba-Eigenschaften verf�gen
+\layout Itemize
+
+
+\emph on 
+Zeige Anwendungs-Gruppen
+\emph default 
+: Zeigt Gruppen, die �ber Anwendungs-Eigenschaften verf�gen
+\layout Itemize
+
+
+\emph on 
+Zeige E-Mail-Gruppen
+\emph default 
+: Zeigt Gruppen, die �ber ein Mail-Konto verf�gen
+\layout Itemize
+
+
+\emph on 
+Zeige Funktions-Gruppen
+\emph default 
+: Zeigt Gruppen, die nur �ber die generischen Attribute verf�gen
+\end_deeper 
+\layout Itemize
+
+Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bieten die Textfelder
+ im unteren Bereich des Kastens Filter: 
+\begin_deeper 
+\layout Itemize
+
+Im ersten Feld kann nach Namen gesucht werden, die auf den eingebenen regul�ren
+ Ausdruck passen.
+\layout Itemize
+
+Im zweiten Feld kann nach Gruppen anhand eines eingebenen Benutzerausdrucks
+ gesucht werden, es werden also Gruppen gefunden, in denen ein auf den Suchausdr
+uck passender Benutzer Mitglied ist.
+\end_deeper 
+\layout Subsection*
+
+Gruppe anlegen
+\layout Standard
+
+Um eine neue Gruppe anzulegen klicken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_group.png
+
+\end_inset 
+
+.
+ Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung bestehender
+ Gruppen.
+\layout Subsubsection*
+
+Eine bestehende Gruppe bearbeiten
+\layout Standard
+
+Klicken Sie in der Liste der Gruppen auf den Gruppennamen der Gruppe, die
+ Sie bearbeiten m�chten.
+ Die Seite, die nun geladen wird, verf�gt �ber Reiter, die jeweils f�r eine
+ Erweiterung stehen (aktuell sind dies u.a.
+ Allgemein, Umgebung, Anwendungen, Mail, Zugriffsregeln, usw.).
+\layout Subsubsection*
+
+Generelle Informationen
+\layout Itemize
+
+Um die Bearbeitung der Gruppe (auch neuer Gruppen) abzuschliessen, dr�cken
+ Sie auf den Knopf 
+\emph on 
+Speichern
+\emph default 
+ unten rechts; Um den Vorgang zu verwerfen, dr�cken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+, der sich ebenfalls unten rechts befindet.
+\layout Itemize
+
+Alle Felder, die mit einem roten Sternchen 
+\color red
+*
+\color default
+ enden, sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+\layout Itemize
+
+In der rechten, oberen Ecke findet sich der komplette dn der aktuell ge�ffneten
+ Gruppe.
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="11cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppenname
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Name der Gruppe
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Beschreibung (oder ein Kommentar) der Gruppe
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Abteilung der Gruppe (Die Verwaltung der Abteilungen geschieht �ber
+ den Knopf 
+\series bold 
+\color blue
+Abteilungen
+\series default 
+\color default
+ im linken Men�).
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Erzwinge GID
+\emph default 
+: Mit dieser Funktion kann die UNIX GID einmalig auf bestimmten Wert gesetzt
+ werden
+\layout Itemize
+
+[Samba-Gruppe]
+\emph on 
+ in der Domain 
+\emph default 
+[Dom�ne]: Diese Einstellung legt fest, ob die Gruppe auch f�r Windows-Benutzer
+ aktviert ist.
+ Dabei k�nnen Sie die folgenden Einstellungsm�glichkeiten w�hlen:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Samba-Gruppe
+\emph default 
+: Die Gruppe ist eine normale Samba-Gruppe
+\layout Itemize
+
+
+\emph on 
+Dom�nen-Administratoren
+\emph default 
+: Die Gruppe ist speziell f�r Dom�nen-Administratoren
+\layout Itemize
+
+
+\emph on 
+Dom�nen-Benutzer
+\emph default 
+: Die Gruppe ist speziell f�r Dom�nen-Benutzer
+\layout Itemize
+
+
+\emph on 
+Dom�nen-G�ste
+\emph default 
+: Die Gruppe ist speziell f�r Dom�nen-G�ste
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Mitglieder sind in einer Telefon-Gruppe
+\emph default 
+: Diese Funktion dient dazu, organisatorische Bereiche auch telefonisch
+ abzutrennen.
+ Weitere Dokumentation wird folgen.
+\layout Itemize
+
+
+\emph on 
+Gruppenmitglieder
+\emph default 
+: Die Gruppe verf�gt �ber Mitglieder, die in dieser Liste aufgef�hrt werden.
+ Es k�nnen Mitglieder hinzugef�gt und entfernt werden:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Hinzuf�gen
+\emph default 
+: Um ein Gruppenmitglieder hinzuzuf�gen, dr�cken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ W�hlen Sie aus der Liste einen oder mehrere Benutzer und dr�cken Sie auf
+ den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Die neuen Mitglieder werden nun in der Liste aufgef�hrt.
+\newline 
+Wenn Sie den Vorgang abbrechen m�chten, dr�cken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Umgebung
+\layout Standard
+
+Um die Umgebungs-Erweiterung zu aktivieren, dr�cken Sie auf den Knopf 
+\emph on 
+Umgebungs-Erweiterung hinzuf�gen
+\emph default 
+.
+ Um die Umgebungs-Erweiterung wieder zu entfernen, dr�cken Sie auf den Knopf
+ 
+\emph on 
+Umgebungs-Erweiterung entfernen
+\emph default 
+.
+\layout Subsubsection
+
+Profile
+\layout Itemize
+
+
+\emph on 
+Benutze Profil-Verwaltung
+\emph default 
+:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Profil-Pfad
+\emph default 
+:
+\layout Itemize
+
+
+\emph on 
+Profil-Kontingent
+\emph default 
+:
+\layout Itemize
+
+
+\emph on 
+Profil lokal zwischenspeichern
+\emph default 
+:
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Kiosk-Profil
+\emph default 
+: Wenn die Gruppe �ber ein Kiosk-Profil verf�gen soll, w�hlen Sie das gew�nschte
+ Profil aus der Liste.
+ 
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Verwalten
+\emph default 
+: Um die Kiosk-Profile zu verwalten, klicken Sie auf den Knopf 
+\emph on 
+Verwalten
+\emph default 
+.
+ Hier k�nnen Sie vorhandene Kiosk-Profile entfernen, sowie neue Kiosk-Profile
+ hinzuf�gen.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Aufl�sung �nderbar w�hrend des Betriebs
+\emph default 
+: Wenn Sie m�chten, dass Mitglieder dieser Gruppe die Aufl�sung Ihres Arbeitspla
+tzrechners w�hrend der Sitzung �ndern d�rfen, aktivieren Sie diese Option.
+\layout Itemize
+
+
+\emph on 
+Aufl�sung
+\emph default 
+: Legen Sie die Aufl�sung f�r Arbeitsplatzrechner, die dieses Kiosk-Profil
+ verwenden, fest, indem Sie die gew�nschte Aufl�sung aus der Liste w�hlen.
+ Um automatisch die beste Aufl�sung zu verwenden, w�hlen Sie 
+\emph on 
+auto
+\emph default 
+.
+\layout Subsubsection
+
+Freigaben
+\layout Subsubsection
+\added_space_top medskip 
+Anmelde-Skripte
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug-Ger�te
+\layout Subsubsection
+\added_space_top medskip 
+Drucker
+\layout Subsection
+\added_space_top bigskip 
+Anwendungen
+\layout Standard
+
+Um die Anwendungs-Eigenschaften f�r diese Gruppe zu aktivieren, dr�cken
+ Sie auf den Knopf 
+\emph on 
+Anwendungen erstellen
+\emph default 
+.
+ Um die Anwendungs-Eigenschaften wieder zu entfernen, dr�cken Sie auf den
+ Knopf 
+\emph on 
+Anwendung entfernen
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+Ein Mail-Konto einer Gruppe ist ein gemeinsam genutzter Ordner (
+\emph on 
+Shared Folder
+\emph default 
+) auf einem IMAP-Server, d.h.
+ dass mehr als ein Benutzer Zugriff auf die Mails in diesem Ordner hat.
+ Diese Ordner sind sinnvoll, um z.B.
+ Verteiler anzulegen, aber auch, um Dateien (wie z.B.
+ Kalender oder Adressb�cher) abzulegen.
+ Um ein Mail-Konto f�r die Gruppe zu erstellen, dr�cken Sie auf den Knopf
+ 
+\emph on 
+Neues Mail-Konto erzeugen
+\emph default 
+.
+ Um ein vorhandenes Mail-Konto wieder zu entfernen, dr�cken Sie auf den
+ Knopf 
+\emph on 
+Mail-Konto entfernen
+\emph default 
+.
+\layout Subsubsection
+
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="11cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Prim�re Adresse
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die prim�re Adresse des gemeinsam genutzten Ordners
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Mail-Server aus der Liste, auf dem das Konto verwaltet wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kontingent-Nutzung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zeigt die Ausnutzung des Kontingents an (Wenn ein Kontingent definiert wurde)
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kontingent-Gr��e
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Gr�sse des Kontingents der Mail-Benutzung der Gruppe (in KB).
+ Dies betrifft ein- u.
+ ausgehende Mail.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternative Adressen
+\layout Standard
+
+Alternative Adressen sind weitere Adressen, unter denen der gemeinsam genutzte
+ Ordner Mails empfangen soll.
+\layout Standard
+
+Verwenden Sie den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+ um eine alternative Adresse hinzuzuf�gen.
+ Wenn Sie eine Adresse entfernen m�chten, markieren Sie diese und dr�cken
+ Sie auf den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\layout Subsubsection
+\added_space_top medskip 
+Geteilter Ordner
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="6cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Standard-Berechtigungen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Berechtigung, die f�r alle Benutzer gilt, die nicht explizit
+ aufgef�hrt sind.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mitglieder-Berechtigungen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Berechtigung, die f�r alle Benutzer gilt, die Mitglieder
+ in dieser Gruppe sind.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Weitere Email-Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Berechtung f�r eine weitere Email-Adresse.
+ Dr�cken Sie auf 
+\emph on 
+Hinzuf�gen
+\emph default 
+, um die Adresse mit der Berechtigung hinzuzuf�gen.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Weiterleiten der Nachrichten an nicht-Gruppenmitglieder
+\layout Standard
+
+Mithilfe dieser Eigenschaften k�nnen Nachrichten, die an den gemeinsam genutzten
+ Order geschickt werden, automatisch an weitere Adressen versendet werden.
+ Geben Sie dazu in das Textfeld die Adresse ein, die Mails empfangen soll
+ und dr�cken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Wenn Sie einen oder mehrere Benutzer in die Liste aufnehmen m�chten, die
+ in dieser Organisation bereits �ber ein Mail-Konto verf�gen, dr�cken Sie
+ auf den Knopf 
+\emph on 
+Lokale hinzuf�gen
+\emph default 
+.
+ W�hlen Sie den oder die gew�nschten Benutzer aus der Liste, in dem Sie
+ diese markieren und klicken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+, um Sie in die Liste zu �bernehmen.
+\layout Subsection
+\added_space_top bigskip 
+Zugriffsregeln
+\layout Standard
+
+Mithilfe der Zugriffsregeln kann fein granuliert eingestellt werden, �ber
+ welchen GOsa-spezifischen Rechte die Mitglieder dieser Gruppe verf�gen.
+ 
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter Referenzen werden alle Verbindungen dieser Gruppe zu anderen Teilen
+ des LDAP-Baumes angezeigt.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/images/action.png b/gosa-core/doc/core/de/lyx-source/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/action.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/addr_company.png b/gosa-core/doc/core/de/lyx-source/images/addr_company.png
new file mode 100644
index 0000000..80a173d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/addr_company.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/addr_home.png b/gosa-core/doc/core/de/lyx-source/images/addr_home.png
new file mode 100644
index 0000000..14ee484
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/addr_home.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/addr_personal.png b/gosa-core/doc/core/de/lyx-source/images/addr_personal.png
new file mode 100644
index 0000000..ecf17bc
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/addr_personal.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/addressbook.png b/gosa-core/doc/core/de/lyx-source/images/addressbook.png
new file mode 100644
index 0000000..08c72ef
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/addressbook.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/alternatemail.png b/gosa-core/doc/core/de/lyx-source/images/alternatemail.png
new file mode 100644
index 0000000..62b0534
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/alternatemail.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/application.png b/gosa-core/doc/core/de/lyx-source/images/application.png
new file mode 100644
index 0000000..671fc7d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/application.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/back.png b/gosa-core/doc/core/de/lyx-source/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/back.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/banana.png b/gosa-core/doc/core/de/lyx-source/images/banana.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/banana.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/blocklists.png b/gosa-core/doc/core/de/lyx-source/images/blocklists.png
new file mode 100644
index 0000000..8f252a4
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/blocklists.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/branch.png b/gosa-core/doc/core/de/lyx-source/images/branch.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/branch.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/branch_small.png b/gosa-core/doc/core/de/lyx-source/images/branch_small.png
new file mode 100644
index 0000000..d632c85
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/branch_small.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/button_cancel.png b/gosa-core/doc/core/de/lyx-source/images/button_cancel.png
new file mode 100644
index 0000000..9691957
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/button_cancel.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/cant_editpaste.png b/gosa-core/doc/core/de/lyx-source/images/cant_editpaste.png
new file mode 100644
index 0000000..fdcc88d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/cant_editpaste.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/certs.png b/gosa-core/doc/core/de/lyx-source/images/certs.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/certs.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/closedlock.png b/gosa-core/doc/core/de/lyx-source/images/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/closedlock.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/conference.png b/gosa-core/doc/core/de/lyx-source/images/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/conference.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/copypaste.png b/gosa-core/doc/core/de/lyx-source/images/copypaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/copypaste.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/crossref.png b/gosa-core/doc/core/de/lyx-source/images/crossref.png
new file mode 100644
index 0000000..ec2ed78
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/crossref.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/cutpaste.png b/gosa-core/doc/core/de/lyx-source/images/cutpaste.png
new file mode 100644
index 0000000..e514438
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/cutpaste.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/default.jpg b/gosa-core/doc/core/de/lyx-source/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/default.jpg differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/default_icon.png b/gosa-core/doc/core/de/lyx-source/images/default_icon.png
new file mode 100644
index 0000000..58d50d3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/default_icon.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/department.png b/gosa-core/doc/core/de/lyx-source/images/department.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/department.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/dfs.png b/gosa-core/doc/core/de/lyx-source/images/dfs.png
new file mode 100644
index 0000000..accbd8d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/dfs.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/dhcp.png b/gosa-core/doc/core/de/lyx-source/images/dhcp.png
new file mode 100644
index 0000000..1360b6f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/dhcp.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/display.png b/gosa-core/doc/core/de/lyx-source/images/display.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/display.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/dns.png b/gosa-core/doc/core/de/lyx-source/images/dns.png
new file mode 100644
index 0000000..6a55d72
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/dns.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/drives.png b/gosa-core/doc/core/de/lyx-source/images/drives.png
new file mode 100644
index 0000000..9cc127e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/drives.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/dtree.png b/gosa-core/doc/core/de/lyx-source/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/dtree.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/edit.png b/gosa-core/doc/core/de/lyx-source/images/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/edit.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/editcopy.png b/gosa-core/doc/core/de/lyx-source/images/editcopy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/editcopy.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/editcut.png b/gosa-core/doc/core/de/lyx-source/images/editcut.png
new file mode 100644
index 0000000..7ec355a
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/editcut.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/editdelete.png b/gosa-core/doc/core/de/lyx-source/images/editdelete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/editdelete.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/editpaste.png b/gosa-core/doc/core/de/lyx-source/images/editpaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/editpaste.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/edittrash.png b/gosa-core/doc/core/de/lyx-source/images/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/edittrash.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/email.png b/gosa-core/doc/core/de/lyx-source/images/email.png
new file mode 100644
index 0000000..d53e620
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/email.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/empty.png b/gosa-core/doc/core/de/lyx-source/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/empty.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/encrypted.png b/gosa-core/doc/core/de/lyx-source/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/encrypted.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/env.png b/gosa-core/doc/core/de/lyx-source/images/env.png
new file mode 100644
index 0000000..7b7bf37
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/env.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/envelope.png b/gosa-core/doc/core/de/lyx-source/images/envelope.png
new file mode 100644
index 0000000..6053eed
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/envelope.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/expand.png b/gosa-core/doc/core/de/lyx-source/images/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/expand.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai.png b/gosa-core/doc/core/de/lyx-source/images/fai.png
new file mode 100644
index 0000000..f0a23d6
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_hook.png b/gosa-core/doc/core/de/lyx-source/images/fai_hook.png
new file mode 100644
index 0000000..1930fb2
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_hook.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_hook.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_hook.png
new file mode 100644
index 0000000..f02e6a4
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_hook.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_packages.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_packages.png
new file mode 100644
index 0000000..15cad1e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_packages.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_partitionTable.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_partitionTable.png
new file mode 100644
index 0000000..9ac4600
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_partitionTable.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_profile.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_profile.png
new file mode 100644
index 0000000..6808820
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_profile.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_script.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_script.png
new file mode 100644
index 0000000..b8333c7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_script.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_template.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_template.png
new file mode 100644
index 0000000..9a88da9
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_template.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_new_variable.png b/gosa-core/doc/core/de/lyx-source/images/fai_new_variable.png
new file mode 100644
index 0000000..d915c53
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_new_variable.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_packages.png b/gosa-core/doc/core/de/lyx-source/images/fai_packages.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_packages.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_partitionTable.png b/gosa-core/doc/core/de/lyx-source/images/fai_partitionTable.png
new file mode 100644
index 0000000..7e8d701
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_partitionTable.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_profile.png b/gosa-core/doc/core/de/lyx-source/images/fai_profile.png
new file mode 100644
index 0000000..07391b6
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_profile.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_script.png b/gosa-core/doc/core/de/lyx-source/images/fai_script.png
new file mode 100644
index 0000000..f8aaba2
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_script.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_small.png b/gosa-core/doc/core/de/lyx-source/images/fai_small.png
new file mode 100644
index 0000000..fc716d0
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_small.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_template.png b/gosa-core/doc/core/de/lyx-source/images/fai_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_template.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fai_variable.png b/gosa-core/doc/core/de/lyx-source/images/fai_variable.png
new file mode 100644
index 0000000..d7915fe
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fai_variable.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/false.png b/gosa-core/doc/core/de/lyx-source/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/false.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fax.png b/gosa-core/doc/core/de/lyx-source/images/fax.png
new file mode 100644
index 0000000..3f58c36
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fax.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fax_small.png b/gosa-core/doc/core/de/lyx-source/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fax_small.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/filesaveas.png b/gosa-core/doc/core/de/lyx-source/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/filesaveas.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/flag.png b/gosa-core/doc/core/de/lyx-source/images/flag.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/flag.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/folder.png b/gosa-core/doc/core/de/lyx-source/images/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/folder.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/forward.png b/gosa-core/doc/core/de/lyx-source/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/forward.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/ftp.png b/gosa-core/doc/core/de/lyx-source/images/ftp.png
new file mode 100644
index 0000000..e5b5691
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/ftp.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/fullfolder.png b/gosa-core/doc/core/de/lyx-source/images/fullfolder.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/fullfolder.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/gfx_hardware.png b/gosa-core/doc/core/de/lyx-source/images/gfx_hardware.png
new file mode 100644
index 0000000..af9f6f7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/gfx_hardware.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/group.png b/gosa-core/doc/core/de/lyx-source/images/group.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/group.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/hardware.png b/gosa-core/doc/core/de/lyx-source/images/hardware.png
new file mode 100644
index 0000000..0ac401c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/hardware.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/hdd_linux_unmount.png b/gosa-core/doc/core/de/lyx-source/images/hdd_linux_unmount.png
new file mode 100644
index 0000000..1b2e065
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/hdd_linux_unmount.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/head.png b/gosa-core/doc/core/de/lyx-source/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/head.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/help.png b/gosa-core/doc/core/de/lyx-source/images/help.png
new file mode 100644
index 0000000..9fe7652
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/help.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/hotplug.png b/gosa-core/doc/core/de/lyx-source/images/hotplug.png
new file mode 100644
index 0000000..546c7af
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/hotplug.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/house.png b/gosa-core/doc/core/de/lyx-source/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/house.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/img1.png b/gosa-core/doc/core/de/lyx-source/images/img1.png
new file mode 100644
index 0000000..0388e82
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/img1.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/info.png b/gosa-core/doc/core/de/lyx-source/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/info.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/info_small.png b/gosa-core/doc/core/de/lyx-source/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/info_small.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/keyboard.png b/gosa-core/doc/core/de/lyx-source/images/keyboard.png
new file mode 100644
index 0000000..cdc0306
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/keyboard.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/lamp.png b/gosa-core/doc/core/de/lyx-source/images/lamp.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/lamp.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/launch.png b/gosa-core/doc/core/de/lyx-source/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/launch.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/ldapserver.png b/gosa-core/doc/core/de/lyx-source/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/ldapserver.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/ldif.png b/gosa-core/doc/core/de/lyx-source/images/ldif.png
new file mode 100644
index 0000000..ca164a1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/ldif.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_back.png b/gosa-core/doc/core/de/lyx-source/images/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_back.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_blocklist.png b/gosa-core/doc/core/de/lyx-source/images/list_blocklist.png
new file mode 100644
index 0000000..d89fd1d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_blocklist.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_home.png b/gosa-core/doc/core/de/lyx-source/images/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_home.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_macro.png b/gosa-core/doc/core/de/lyx-source/images/list_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_macro.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new.png b/gosa-core/doc/core/de/lyx-source/images/list_new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_app.png b/gosa-core/doc/core/de/lyx-source/images/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_app.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_blocklist.png b/gosa-core/doc/core/de/lyx-source/images/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_conference.png b/gosa-core/doc/core/de/lyx-source/images/list_new_conference.png
new file mode 100644
index 0000000..ee9cf5f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_conference.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_department.png b/gosa-core/doc/core/de/lyx-source/images/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_department.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_group.png b/gosa-core/doc/core/de/lyx-source/images/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_group.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_macro.png b/gosa-core/doc/core/de/lyx-source/images/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_macro.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_ogroup.png b/gosa-core/doc/core/de/lyx-source/images/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_new_user.png b/gosa-core/doc/core/de/lyx-source/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_new_user.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_ogroup.png b/gosa-core/doc/core/de/lyx-source/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_ogroup.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_password.png b/gosa-core/doc/core/de/lyx-source/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_password.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_reload.png b/gosa-core/doc/core/de/lyx-source/images/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_reload.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_root.png b/gosa-core/doc/core/de/lyx-source/images/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_root.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_seperator.png b/gosa-core/doc/core/de/lyx-source/images/list_seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_seperator.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_submit.png b/gosa-core/doc/core/de/lyx-source/images/list_submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_submit.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/list_up.png b/gosa-core/doc/core/de/lyx-source/images/list_up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/list_up.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/log_critical.png b/gosa-core/doc/core/de/lyx-source/images/log_critical.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/log_critical.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/log_info.png b/gosa-core/doc/core/de/lyx-source/images/log_info.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/log_info.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/log_unknown.png b/gosa-core/doc/core/de/lyx-source/images/log_unknown.png
new file mode 100644
index 0000000..4ed65a9
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/log_unknown.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/log_warning.png b/gosa-core/doc/core/de/lyx-source/images/log_warning.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/log_warning.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/login.png b/gosa-core/doc/core/de/lyx-source/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/login.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/logview.png b/gosa-core/doc/core/de/lyx-source/images/logview.png
new file mode 100644
index 0000000..122f642
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/logview.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/macros.png b/gosa-core/doc/core/de/lyx-source/images/macros.png
new file mode 100644
index 0000000..a9100e7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/macros.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailq_active.png b/gosa-core/doc/core/de/lyx-source/images/mailq_active.png
new file mode 100644
index 0000000..de65ee1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailq_active.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailq_header.png b/gosa-core/doc/core/de/lyx-source/images/mailq_header.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailq_header.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailq_hold.png b/gosa-core/doc/core/de/lyx-source/images/mailq_hold.png
new file mode 100644
index 0000000..2083104
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailq_hold.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailq_requeue.png b/gosa-core/doc/core/de/lyx-source/images/mailq_requeue.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailq_requeue.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailq_unhold.png b/gosa-core/doc/core/de/lyx-source/images/mailq_unhold.png
new file mode 100644
index 0000000..d07edf3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailq_unhold.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailqueue.png b/gosa-core/doc/core/de/lyx-source/images/mailqueue.png
new file mode 100644
index 0000000..9b88a59
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailqueue.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mailto.png b/gosa-core/doc/core/de/lyx-source/images/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mailto.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mainboard.png b/gosa-core/doc/core/de/lyx-source/images/mainboard.png
new file mode 100644
index 0000000..e6fc340
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mainboard.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/members.png b/gosa-core/doc/core/de/lyx-source/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/members.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/memory.png b/gosa-core/doc/core/de/lyx-source/images/memory.png
new file mode 100644
index 0000000..6ddeddb
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/memory.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/monitor.png b/gosa-core/doc/core/de/lyx-source/images/monitor.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/monitor.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/monitoring.png b/gosa-core/doc/core/de/lyx-source/images/monitoring.png
new file mode 100644
index 0000000..b636ff0
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/monitoring.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/mouse.png b/gosa-core/doc/core/de/lyx-source/images/mouse.png
new file mode 100644
index 0000000..3c0d31d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/mouse.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/net_hardware.png b/gosa-core/doc/core/de/lyx-source/images/net_hardware.png
new file mode 100644
index 0000000..72567f6
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/net_hardware.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/netatalk.png b/gosa-core/doc/core/de/lyx-source/images/netatalk.png
new file mode 100644
index 0000000..19ab924
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/netatalk.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/network.png b/gosa-core/doc/core/de/lyx-source/images/network.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/network.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/null.gif b/gosa-core/doc/core/de/lyx-source/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/null.gif differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/ogroup.png b/gosa-core/doc/core/de/lyx-source/images/ogroup.png
new file mode 100644
index 0000000..29d351f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/ogroup.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/openlock.png b/gosa-core/doc/core/de/lyx-source/images/openlock.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/openlock.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/password.png b/gosa-core/doc/core/de/lyx-source/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/password.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/penguin.png b/gosa-core/doc/core/de/lyx-source/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/penguin.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/personal.png b/gosa-core/doc/core/de/lyx-source/images/personal.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/personal.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/phone.png b/gosa-core/doc/core/de/lyx-source/images/phone.png
new file mode 100644
index 0000000..a301fba
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/phone.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/phonereport.png b/gosa-core/doc/core/de/lyx-source/images/phonereport.png
new file mode 100644
index 0000000..702b898
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/phonereport.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/posix.png b/gosa-core/doc/core/de/lyx-source/images/posix.png
new file mode 100644
index 0000000..e8d33ab
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/posix.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/printer.png b/gosa-core/doc/core/de/lyx-source/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/printer.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/processor.png b/gosa-core/doc/core/de/lyx-source/images/processor.png
new file mode 100644
index 0000000..b7dc9b4
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/processor.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/proxy.png b/gosa-core/doc/core/de/lyx-source/images/proxy.png
new file mode 100644
index 0000000..d8cd426
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/proxy.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/reports.png b/gosa-core/doc/core/de/lyx-source/images/reports.png
new file mode 100644
index 0000000..1d47237
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/reports.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/rightarrow.png b/gosa-core/doc/core/de/lyx-source/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/rightarrow.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/rocket.png b/gosa-core/doc/core/de/lyx-source/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/rocket.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/samba.png b/gosa-core/doc/core/de/lyx-source/images/samba.png
new file mode 100644
index 0000000..861e43c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/samba.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/save.png b/gosa-core/doc/core/de/lyx-source/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/save.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/scanner.png b/gosa-core/doc/core/de/lyx-source/images/scanner.png
new file mode 100644
index 0000000..627540c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/scanner.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/search.png b/gosa-core/doc/core/de/lyx-source/images/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/search.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/search_user.png b/gosa-core/doc/core/de/lyx-source/images/search_user.png
new file mode 100644
index 0000000..1c164f4
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/search_user.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_application.png b/gosa-core/doc/core/de/lyx-source/images/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_application.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_component.png b/gosa-core/doc/core/de/lyx-source/images/select_component.png
new file mode 100644
index 0000000..ef289f6
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_component.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_conference.png b/gosa-core/doc/core/de/lyx-source/images/select_conference.png
new file mode 100644
index 0000000..f331bfe
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_conference.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_default.png b/gosa-core/doc/core/de/lyx-source/images/select_default.png
new file mode 100644
index 0000000..83f3752
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_default.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_department.png b/gosa-core/doc/core/de/lyx-source/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_department.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_groups.png b/gosa-core/doc/core/de/lyx-source/images/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_groups.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_invalid_application.png b/gosa-core/doc/core/de/lyx-source/images/select_invalid_application.png
new file mode 100644
index 0000000..a008801
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_invalid_application.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_macro.png b/gosa-core/doc/core/de/lyx-source/images/select_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_macro.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_netatalk.png b/gosa-core/doc/core/de/lyx-source/images/select_netatalk.png
new file mode 100644
index 0000000..e589720
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_netatalk.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_component.png b/gosa-core/doc/core/de/lyx-source/images/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_component.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_phone.png b/gosa-core/doc/core/de/lyx-source/images/select_new_phone.png
new file mode 100644
index 0000000..45714d1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_phone.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_printer.png b/gosa-core/doc/core/de/lyx-source/images/select_new_printer.png
new file mode 100644
index 0000000..e4618fe
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_printer.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_server.png b/gosa-core/doc/core/de/lyx-source/images/select_new_server.png
new file mode 100644
index 0000000..84f6570
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_server.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_terminal.png b/gosa-core/doc/core/de/lyx-source/images/select_new_terminal.png
new file mode 100644
index 0000000..a218480
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_terminal.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_new_workstation.png b/gosa-core/doc/core/de/lyx-source/images/select_new_workstation.png
new file mode 100644
index 0000000..8b5d4f4
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_new_workstation.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_newsystem.png b/gosa-core/doc/core/de/lyx-source/images/select_newsystem.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_newsystem.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_ogroup.png b/gosa-core/doc/core/de/lyx-source/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_ogroup.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_phone.png b/gosa-core/doc/core/de/lyx-source/images/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_phone.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_phone_connected.png b/gosa-core/doc/core/de/lyx-source/images/select_phone_connected.png
new file mode 100644
index 0000000..bd8c739
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_phone_connected.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_printer.png b/gosa-core/doc/core/de/lyx-source/images/select_printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_printer.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_proxy.png b/gosa-core/doc/core/de/lyx-source/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_proxy.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_server.png b/gosa-core/doc/core/de/lyx-source/images/select_server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_server.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_template.png b/gosa-core/doc/core/de/lyx-source/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_template.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_terminal.png b/gosa-core/doc/core/de/lyx-source/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_terminal.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_user.png b/gosa-core/doc/core/de/lyx-source/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_user.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_winstation.png b/gosa-core/doc/core/de/lyx-source/images/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_winstation.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/select_workstation.png b/gosa-core/doc/core/de/lyx-source/images/select_workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/select_workstation.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/server.png b/gosa-core/doc/core/de/lyx-source/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/server.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/service.png b/gosa-core/doc/core/de/lyx-source/images/service.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/service.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/small_filter.png b/gosa-core/doc/core/de/lyx-source/images/small_filter.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/small_filter.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/smallenv.png b/gosa-core/doc/core/de/lyx-source/images/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/smallenv.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/snd_hardware.png b/gosa-core/doc/core/de/lyx-source/images/snd_hardware.png
new file mode 100644
index 0000000..e1c25e7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/snd_hardware.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/sort_down.png b/gosa-core/doc/core/de/lyx-source/images/sort_down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/sort_down.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/sort_up.png b/gosa-core/doc/core/de/lyx-source/images/sort_up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/sort_up.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/sound.png b/gosa-core/doc/core/de/lyx-source/images/sound.png
new file mode 100644
index 0000000..cc030d3
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/sound.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/stop.png b/gosa-core/doc/core/de/lyx-source/images/stop.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/stop.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/system.png b/gosa-core/doc/core/de/lyx-source/images/system.png
new file mode 100644
index 0000000..c3308ee
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/system.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/terminal_small.png b/gosa-core/doc/core/de/lyx-source/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/terminal_small.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/time.png b/gosa-core/doc/core/de/lyx-source/images/time.png
new file mode 100644
index 0000000..1de43d5
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/time.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/tree.png b/gosa-core/doc/core/de/lyx-source/images/tree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/tree.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/true.png b/gosa-core/doc/core/de/lyx-source/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/true.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/user.png b/gosa-core/doc/core/de/lyx-source/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/user.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/warning.png b/gosa-core/doc/core/de/lyx-source/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/warning.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/images/zip.png b/gosa-core/doc/core/de/lyx-source/images/zip.png
new file mode 100644
index 0000000..af23ddf
Binary files /dev/null and b/gosa-core/doc/core/de/lyx-source/images/zip.png differ
diff --git a/gosa-core/doc/core/de/lyx-source/ldapmanager.lyx b/gosa-core/doc/core/de/lyx-source/ldapmanager.lyx
new file mode 100644
index 0000000..5a45694
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/ldapmanager.lyx
@@ -0,0 +1,275 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Zus�tzliches
+\layout Section
+
+LDAP-Manager
+\layout Subsection
+
+Export
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportiere einzelnen Eintrag
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportieren Sie den im Feld angebenen Eintrag (DN des Eintrags), indem Sie
+ auf den Knopf 
+\emph on 
+Export
+\emph default 
+ dr�cken.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportiere vollst�ndige LDIF-Datei f�r
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie aus die Abteilung aus der Liste, die Sie exportieren m�chten
+ ('/' exportiert alles) und dr�cken Sie den Knopf 
+\emph on 
+Export
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top medskip 
+Excel-Export
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportiere einzelnen Eintrag
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportieren Sie eine Organisationseinheit (Organization Unit) in eine Excel-Date
+i.
+ W�hlen Sie dazu die OU aus der Liste und dr�cken Sie auf den Knopf 
+\emph on 
+Export
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportiere vollst�ndige XLS-Datei f�r
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Exportieren Sie eine gesamte Abteilung in eine Excel-Datei.
+ W�hlen Sie dazu die Abteilung aus der Liste ('/' f�r alles) und dr�cken
+ Sie auf den Knopf 
+\emph on 
+Export
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top medskip 
+Importieren
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="1" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Importiere LDIF Datei
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Dr�cken Sie auf den Knopf neben dem Textfeld, um die Dateiauswahl zu starten.
+ W�hlen Sie die LDIF-Datei, die Sie importieren m�chten.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+\added_space_top smallskip 
+�berschreibe vorhandene Attribute: Attribute, die bereits vorhanden sind,
+ werden mit dem Wert aus der LDIF-Datei �berschrieben
+\layout Itemize
+
+Existierenden Eintrag �berschreiben: Eintr�ge, die bereits vorhanden sind,
+ werden mit dem Eintrag aus der LDIF-Datei �berschrieben
+\newline 
+
+\newline 
+Dr�cken Sie auf den Knopf 
+\emph on 
+Importieren
+\emph default 
+, um den Importvorgang durchzuf�hren.
+\layout Subsection
+\added_space_top medskip 
+CSV Import
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Auswahl der zu importierenden CVS Datei
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Dr�cken Sie auf den Knopf neben dem Textfeld, um die Dateiauswahl zu starten.
+ W�hlen Sie die CSV-Datei, die Sie importieren m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Auswahl der Vorlage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Vorlage, die verwendet werden soll, um nicht existente Werte
+ (in der CVS-Datei) mit Werten zu f�llen.
+ Diese Option ist hilfreich, wenn Sie automatisiert sehr viele Benutzerkonten
+ anlegen m�chten.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/logview.lyx b/gosa-core/doc/core/de/lyx-source/logview.lyx
new file mode 100644
index 0000000..2f0370a
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/logview.lyx
@@ -0,0 +1,150 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Zus�tzliches
+\layout Section
+
+Systemprotokolle
+\layout Subsection
+
+Filter 
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zeige Rechner
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Rechners aus der Liste, dessen Protokoll Sie anzeigen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Priorit�t
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die minimal Priorit�t der Meldungen, damit diese angezeigt werden.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zeit-Intervall
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie das Zeit-Intervall aus der Liste, auf die die Meldungen beschr�nkt
+ werden.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Suche nach
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Zeichenkette, nach der gesucht werden soll (oder '*' f�r alle Meldungen)
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Regelsatz
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Erstellen Sie aus der Suche einen Regelsatz, um sp�tere Anzeigen zu beschleunige
+n.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/macro.lyx b/gosa-core/doc/core/de/lyx-source/macro.lyx
new file mode 100644
index 0000000..ad444f6
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/macro.lyx
@@ -0,0 +1,484 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Telefon-Makro-Verwaltung
+\layout Section
+
+Liste der Makros
+\layout Standard
+
+Die Liste der Makros dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Telefon-Makros
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Telefon-Makros geladen (�berschrift: 
+\emph on 
+Telefon-Makro-Verwaltung)
+\emph default 
+.
+ Auf dieser Seite k�nnen Makros hinzugef�gt, bearbeitet oder entfernt werden.
+\layout Standard
+
+Die Liste ist in drei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann die
+ Namen der Makros (alphabetisch sortiert).
+\layout Itemize
+
+Die zweite Spalte zeigt an, ob das Makro f�r Benutzer sichtbar ist (Wenn
+ es sichtbar ist, wird 
+\begin_inset Graphics
+	filename images/true.png
+
+\end_inset 
+
+ angezeigt, anderenfalls
+\begin_inset Graphics
+	filename images/false.png
+
+\end_inset 
+
+).
+\layout Itemize
+
+Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Bearbeiten, Entfernen).
+\layout Standard
+\added_space_bottom medskip 
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ , 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+
+
+\color black
+Es ist weiterhin m�glich, die Anzeige der Makros mithilfe von Filtern zu
+ beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand): 
+\layout Itemize
+
+
+\color black
+Nach Namen suchen:
+\begin_deeper 
+\layout Itemize
+
+
+\color black
+Klick auf * zeigt alle Makros an
+\layout Itemize
+
+
+\color black
+Klick auf einen Buchstaben zeigt alle Makros an, deren Name mit dem gew�hlten
+ Buchstaben beginnt
+\layout Itemize
+
+Klick auf eine Ziffer zeigt alle Makros an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bietet das Textfeld im
+ unteren Bereich des Kastens 
+\series bold 
+Filter
+\series default 
+ (beginnt mit dem Symbol 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+).
+ In dieses Feld k�nnen Sie beliebige Buchstaben/Ziffern-Kombinationen eingeben,
+ um die Suche einzuschr�nken.
+ Um die Suchergebnisse in der Liste anzeigen zu lassen, Klicken Sie auf
+ 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\layout Standard
+\added_space_top medskip 
+Um ein neues Makro anzulegen, dr�cken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_macro.png
+
+\end_inset 
+
+ oberhalb der Liste.
+ Wenn Sie ein bestehendes Makro bearbeiten m�chen, dr�cken Sie auf den Namen
+ des Makros.
+\layout Standard
+
+Die Seite, die nun geladen wird, verf�gt �ber Reiter, die im Folgenden n�her
+ erl�utert werden.
+\layout Subsubsection*
+
+Generelle Informationen
+\layout Itemize
+
+Um die Bearbeitung des Makros (auch neuer Makros) abzuschliessen, dr�cken
+ Sie auf den Knopf 
+\emph on 
+Speichern
+\emph default 
+ unten rechts; Um den Vorgang zu verwerfen, dr�cken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+, der sich ebenfalls unten rechts befindet.
+\layout Itemize
+
+Alle Felder, die mit einem roten Sternchen 
+\color red
+*
+\color default
+ enden, sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+\layout Itemize
+
+In der rechten, oberen Ecke findet sich der komplette 
+\emph on 
+dn
+\emph default 
+ des aktuell ge�ffneten Makros.
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Makro-Name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der eindeutige Name des Makros
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Angezeigter Nam
+\color black
+e
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Name, der in der Liste der Makros angezeigt werden soll
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie aus der Liste die Abteilung, der dieses Makro zugeordnet werden
+ soll
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kurze Beschreibung des Makros
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sichtbar f�r Benutzer
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+?
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+\added_space_top medskip 
+Makro-Inhalt
+\layout Subsection
+\added_space_top bigskip 
+Parameter
+\layout Standard
+
+Alle m�glichen Parameter, die im Feld 
+\emph on 
+Makro-Inhalt
+\emph default 
+ des Reiters 
+\series bold 
+Allgemein
+\series default 
+ verwendet wurden, k�nnen auf dieser Seite konfiguriert werden.
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Argument
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der verwendete Name im Makro-Inhalt
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der allgemeine Name des Parameters
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Typ
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Datentyp des Parameters
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Standardwert
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Standardwert des Parameters
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter 
+\emph on 
+Referenzen
+\emph default 
+ werden alle Verbindungen dieses Makros zu anderen Objekten im LDAP-Verzeichnis
+ aufgelistet.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/mailqueue.lyx b/gosa-core/doc/core/de/lyx-source/mailqueue.lyx
new file mode 100644
index 0000000..97bcdfe
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/mailqueue.lyx
@@ -0,0 +1,237 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 1
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Zus�tzliches
+\layout Section
+
+Mail-Warteschlange
+\layout Standard
+
+Dieses Modul dient der Anzeige der Mail-Warteschlange.
+ Dabei kann die Anzeige mithilfe von Filtern beeinflusst werden.
+\layout Subsection
+
+Filter 
+\color black
+
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+
+\layout Standard
+
+Suche nach 
+\emph on 
+\noun on 
+Zeichenkette
+\emph default 
+\noun default 
+ in 
+\emph on 
+\noun on 
+Warteschlange
+\emph default 
+\noun default 
+ mit Status: 
+\emph on 
+\noun on 
+Status
+\emph default 
+\noun default 
+ innerhalb der letzten 
+\emph on 
+\noun on 
+Zeitbeschr�nkung:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Zeichenkette
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie die Zeichenkette ein, nach der sie suchen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Warteschlange
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Mail-Server aus der Liste, auf die Sie die Suche begrenzen
+ m�chten, oder 
+\emph on 
+Alle
+\emph default 
+, wenn Sie alle Warteschlangen durchsuchen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Status
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den Status aus der Liste, auf den Sie die Suche begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none" width="5in">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on 
+\noun on 
+Zeitbeschr�nkung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die zeitliche Beschr�nkung aus der Liste, auf die Sie die Suche
+ begrenzen m�chten.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+Zum Durchf�hren der Suche mit den vorgenommenen Einstellungen dr�cken Sie
+ auf den Knopf 
+\emph on 
+Suchen
+\emph default 
+ ganz rechts.
+\layout Subsection
+
+Aktionen
+\layout Standard
+
+Mit den gefundenen Nachrichten sind weitere Aktionen m�glich.
+ Um eine Aktion auf eine oder mehrere Nachrichten anzuwenden, markieren
+ Sie die gew�nschten Nachrichten in der Liste und dr�cken Sie auf eines
+ der folgenden Symbole:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/edittrash.png
+
+\end_inset 
+
+: Nachricht(en) aus der Warteschlange entfernen
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/mailq_hold.png
+
+\end_inset 
+
+: Nachricht(en) aus der Warteschlange vorhalten
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/mailq_unhold.png
+
+\end_inset 
+
+: Nachricht(en) aus der Warteschlange ausliefern
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/mailq_requeue.png
+
+\end_inset 
+
+: Nachricht(en) neu in die Warteschlange einreihen
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/ogroups.lyx b/gosa-core/doc/core/de/lyx-source/ogroups.lyx
new file mode 100644
index 0000000..28e64bc
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/ogroups.lyx
@@ -0,0 +1,327 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+Objektgruppenverwaltung
+\layout Section
+
+Liste der Objektgruppen
+\layout Standard
+
+Eine Objektgruppe ist eine heterogene Gruppenvariante, die es erlaubt, beliebige
+ Arten von (LDAP-) Objekten zu einer logischen Einheit zusammenzufassen.
+ Sie erreichen die Liste der Objektgruppen �ber den Men�eintrag 
+\series bold 
+\color blue
+Objektgruppen
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die 
+\emph on 
+Liste der Objektgruppen
+\emph default 
+ geladen (�berschrift: 
+\emph on 
+Objektgruppen
+\emph default 
+).
+ Auf dieser Seite k�nnen Objektgruppen hinzugef�gt, bearbeitet oder entfernt
+ werden.
+\layout Standard
+
+Die Liste ist in drei Spalten aufgeteilt:
+\layout Itemize
+
+Die erste Spalte zeigt die Namen der Objektgruppen.
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die Eigenschaften
+ der Objektgruppe.
+ Sie dient ausserdem f�r einen schnellen �berblick �ber die verschiedenen
+ Objekt-Typen, die die Objektgruppe enth�lt.
+\layout Itemize
+
+Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+\layout Standard
+
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+\added_space_top medskip \added_space_bottom medskip 
+Es ist weiterhin m�glich, die Anzeige der Objektgruppen mithilfe von Filter
+ zu beeinflussen (Kasten Filter 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand):
+\layout Itemize
+
+
+\color black
+Nach Namen suchen:
+\begin_deeper 
+\layout Itemize
+
+Klick auf 
+\emph on 
+*
+\emph default 
+ zeigt alle Objektgruppen an
+\layout Itemize
+
+Klick auf einen Buchstaben zeigt alle Objektgruppen an, deren Name mit dem
+ gew�hlten Buchstaben beginnt
+\layout Itemize
+
+Klick auf eine Ziffer zeigt alle Objektgruppen an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Weitere Suchoptionen:
+\begin_deeper 
+\layout Itemize
+
+W�hlen Sie eine oder mehrere der Optionen 
+\emph on 
+Zeige Gruppen mit ...
+\emph default 
+, um die Anzeige auf eben diese Objektgruppen zu beschr�nken
+\end_deeper 
+\layout Itemize
+\added_space_bottom medskip 
+Schnellsuche (Feld 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+): Geben Sie mindestens einen Teil des Namens der Objektgruppe, die Sie
+ suchen, ein und dr�cken Sie auf den Knopf 
+\emph on 
+Filter anwenden
+\emph default 
+, um die Suche durchzuf�hren.
+\layout Standard
+
+Um eine Objektgruppe zu erstellen, dr�cken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_ogroup.png
+
+\end_inset 
+
+ oberhalb der Liste.
+ Um eine bestehende Objektgruppe zu bearbeiten, klicken Sie auf den Namen
+ der gew�nschten Objektgruppe.
+ Es �ffnet sich in beiden F�llen eine neue Seite, die die folgenden Reiter
+ enth�lt:
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gruppenname
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der eindeutige Name der Objektgruppe
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Beschreibung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kurze Beschreibung / kurzer Kommentar zur Gruppe
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie aus der Liste die Abteilung, der diese Objektgruppe zugeordnet
+ werden soll
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zusammengefasste Objekte
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Liste der zusammengefassten Objekte.
+ Dr�cken Sie 
+\emph on 
+Hinzuf�gen
+\emph default 
+, um eines oder mehrere Objekte hinzuzuf�gen.
+ Wenn Sie eines oder mehrere Objekte aus der Gruppe entfernen m�chten, markieren
+ Sie diese und dr�cken Sie den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter Referenzen werden alle Verbindungen dieses LDAP-Eintrags zu anderen
+ Eintr�gen im Verzeichnis aufgelistet.
+\the_end
diff --git a/gosa-core/doc/core/de/lyx-source/users.lyx b/gosa-core/doc/core/de/lyx-source/users.lyx
new file mode 100644
index 0000000..e0203df
--- /dev/null
+++ b/gosa-core/doc/core/de/lyx-source/users.lyx
@@ -0,0 +1,2863 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language ngerman
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+
+\layout Title
+
+
+\series bold 
+Benutzerverwaltung
+\layout Section
+
+Liste der Benutzer
+\layout Standard
+
+Die Liste der Benutzer dient als Ausgangspunkt f�r alle weiteren Schritte.
+ Sie wird erreicht �ber den Men�eintrag 
+\series bold 
+\color blue
+Benutzer
+\series default 
+\color default
+ aus der Kategorie 
+\series bold 
+Administration
+\series default 
+ (Men� am linken Rand des Bildschirms).
+ Bei Auswahl wird die Liste der Benutzer geladen (�berschrift: 
+\emph on 
+Benutzerverwaltung)
+\emph default 
+.
+ Auf dieser Seite k�nnen Benutzer hinzugef�gt, bearbeitet oder entfernt
+ werden.
+\layout Standard
+
+Die Liste ist in drei Spalten geteilt:
+\layout Itemize
+
+Die erste Spalte enth�lt zun�chst die verf�gbaren Abteilungen, dann die
+ Namen der Benutzer (alphabetisch sortiert).
+\layout Itemize
+
+Die zweite Spalte enth�lt Kn�pfe f�r den Schnellzugriff auf die verschiedenen
+ Reiter des Benutzers (nur verf�gbar, wenn die entsprechende Eigenschaft
+ aktiviert ist).
+ Sie dient ausserdem f�r einen schnellen �berblick �ber die aktivierten
+ Eigenschaften eines Benutzers.
+\begin_deeper 
+\layout Itemize
+
+Die m�glichen Symbole und ihre Bedeutung:
+\newline 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="9" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Symbol
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bedeutung
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/penguin.png
+	scale 60
+	keepAspectRatio
+	clip
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber allgemeine Eigenschaften
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_user.png
+	scale 60
+	keepAspectRatio
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein UNIX-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/smallenv.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber Umgebungs-Einstellungen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/mailto.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein Mail-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_phone.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein Telefon-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/fax_small.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein Fax-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_winstation.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein SAMBA-Konto
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_netatalk.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzer verf�gt �ber ein Netatalk-Konto
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_deeper 
+\layout Itemize
+
+Die dritte Spalte enth�lt Kn�pfe f�r die m�glichen Aktionen, um Verwaltungsaufga
+ben durchzuf�hren (Ausschneiden, Kopieren, Bearbeiten, Entfernen)
+\layout Standard
+
+Die vier Kn�pfe 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ , 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ und 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ oberhalb der Liste dienen zur Navigation innerhalb der Abteilungshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+: Zur Wurzel
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+: Eine Abteilung nach oben
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+: Zur Basis des angemeldeten Benutzers
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+: Aktuelle Abteilung neu laden
+\layout Standard
+
+
+\color black
+Es ist weiterhin m�glich, die Anzeige der Benutzer mithilfe von Filtern
+ zu beeinflussen (Kasten 
+\series bold 
+Filter
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ am rechten Rand): 
+\layout Itemize
+
+
+\color black
+Nach Namen suchen:
+\begin_deeper 
+\layout Itemize
+
+
+\color black
+Klick auf * zeigt alle Benutzer an
+\layout Itemize
+
+
+\color black
+Klick auf einen Buchstaben zeigt alle Benutzer an, deren Name mit dem gew�hlten
+ Buchstaben beginnt
+\layout Itemize
+
+Klick auf eine Ziffer zeigt alle Benutzer an, deren Name mit der gew�hlten
+ Ziffer beginnt
+\end_deeper 
+\layout Itemize
+
+Weitere Suchoptionen:
+\newline 
+(Die folgenden Filter arbeiten so, dass nur Benutzer angezeigt werden, die
+ �ber mindestens eine der ausgew�hlten Optionen verf�gen; Standardm�ssig
+ werden alle echten Benutzer angezeigt, also keine Vorlagen)
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Zeige Vorlagen
+\emph default 
+: Zeigt Benutzervorlagen (standardm�ssig deaktiviert)
+\layout Itemize
+
+
+\emph on 
+Zeige zweckbezogene Benutzer
+\emph default 
+: Benutzer, die ausschliesslich �ber die allgemeinen Angaben verf�gen
+\layout Itemize
+
+
+\emph on 
+Zeige UNIX-Benutzer
+\emph default 
+: Benutzer, f�r die die UNIX-Erweiterung aktiviert ist
+\layout Itemize
+
+
+\emph on 
+Zeige Mail-Benutzer
+\emph default 
+: Benutzer, f�r die die Mail-Erweiterung aktiviert ist
+\layout Itemize
+
+
+\emph on 
+Zeige SAMBA-Benutzer
+\emph default 
+: Benutzer, f�r die die SAMBA-Erweiterung aktiviert ist
+\layout Itemize
+
+
+\emph on 
+Zeige Proxy-Benutzer
+\emph default 
+: Benutzer, f�r die das Proxy-Konto aktiviert ist
+\end_deeper 
+\layout Itemize
+
+Zus�tzlich zu der o.g.
+ funktionalen Filterung kann die Liste durch lexikalische Filterung weiter
+ eingeschr�nkt werden.
+ Dazu dienen zum Einen die vordefinierten Buchstaben/Zahlen, die die Liste
+ f�r Benutzer einschr�nken, die mit dem gew�hlten Buchstaben/der Ziffer
+ beginnen.
+ Komplexere Einschr�nkungen �ber regul�re Ausdr�cke bietet das Textfeld
+ im unteren Bereich des Kastens 
+\series bold 
+Filter
+\series default 
+ (beginnt mit dem Symbol 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+).
+ In dieses Feld k�nnen Sie beliebige Buchstaben/Ziffern-Kombinationen eingeben,
+ um die Suche einzuschr�nken.
+ Um die Suchergebnisse in der Liste anzeigen zu lassen, Klicken Sie auf
+ 
+\emph on 
+Filter anwenden
+\emph default 
+.
+\layout Subsection*
+
+Benutzerkonto anlegen
+\layout Standard
+
+Um ein neues Benutzerkonto anzulegen klicken Sie auf den Knopf 
+\begin_inset Graphics
+	filename images/list_new_user.png
+
+\end_inset 
+
+.
+ Befolgen Sie dann die nachfolgende Beschreibung f�r die Bearbeitung bestehender
+ Benutzerkonten.
+ Sie m�ssen zus�tzlich am Ende des Vorgangs ein Passwort vergeben.
+\layout Subsubsection*
+
+Ein bestehendes Benutzerkonto bearbeiten
+\layout Standard
+
+Klicken Sie in der Liste der Benutzer auf den Benutzernamen des gew�nschten
+ Benutzers.
+ Die Seite, die nun geladen wird, verf�gt �ber Reiter, die jeweils f�r eine
+ Erweiterung stehen (aktuell sind dies u.a.
+ Allgemein, Unix, Umgebung, usw.).
+\layout Subsubsection*
+
+Generelle Informationen
+\layout Itemize
+
+Um die Bearbeitung des Benutzers (auch neuer Benutzer) abzuschliessen, dr�cken
+ Sie auf den Knopf 
+\emph on 
+Speichern
+\emph default 
+ unten rechts; Um den Vorgang zu verwerfen, dr�cken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+, der sich ebenfalls unten rechts befindet.
+\layout Itemize
+
+Alle Felder, die mit einem roten Sternchen 
+\color red
+*
+\color default
+ enden, sind Pflichtfelder und m�ssen daher zwingend ausgef�llt werden.
+\layout Itemize
+
+In der rechten, oberen Ecke findet sich der komplette 
+\emph on 
+dn
+\emph default 
+ des aktuell ge�ffneten Benutzers.
+\layout Subsection
+\pagebreak_top 
+Allgemein
+\layout Subsubsection
+
+Pers�nliche Informationen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="16" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Nachname
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nachname des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Vorname
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Vorname des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Kennung
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kennung (=Benutzername) des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Titel
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Anrede (Herr, Frau etc.)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Akademischer Titel
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Akademischer Titel (z.B.
+ Prof., Dr., Prof.
+ Dr., etc.)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geburtsdatum
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mit dem Knopf 
+\emph on 
+Setzen
+\emph default 
+ kann das Geburtsdatum eingestellt werden
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geschlecht
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie den passenden Eintrag aus der Liste.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bevorzugte Sprache
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sprache der Oberfl�che (de_DE=Deutsch, en = Englisch, etc.)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Abteilung des Benutzers (Die Verwaltung der Abteilungen geschieht �ber
+ den Knopf
+\series bold 
+\color blue
+ Abteilungen
+\series default 
+\color default
+ im linken Men�).
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Benutzerbild
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Um ein Bild des Benutzers zu speichern, dr�cken Sie auf den Knopf 
+\emph on 
+Bild �ndern
+\emph default 
+.
+ W�hlen Sie das gew�nschte Bild.
+ Das Bild wird nun angezeigt.
+ Um es zu speichern, dr�cken Sie auf den Knopf 
+\emph on 
+Speichern
+\emph default 
+.
+ Wenn Sie das Bild nicht speichern m�chten, dr�cken Sie auf den Knopf 
+\emph on 
+abbrechen
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Privat-Adresse des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Privat-Telefon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Private Telefonnummer des Benutzers (Sie sollten diese sinnvollerweise
+ im internationalen Format einf�gen, z.B.
+ +49 1234 555-0)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Homepage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Homepage des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Passwort-Speicherung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die Methode aus, mit der das Passwort verschl�sselt werden soll,
+ bevor es im LDAP gespeichert wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zertifikate
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Dr�cken Sie auf den Knopf 
+\emph on 
+Zertifikate bearbeiten.
+
+\emph default 
+ Sie k�nnen dann drei verschiedene Zertifikate hochladen.
+ Zum Speichern der Zertifikate, dr�cken Sie auf 
+\emph on 
+Speichern
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kerberos
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Dr�cken Sie auf den Knopf 
+\emph on 
+Eigenschaften bearbeiten
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Angabe zur Organisationseinheit
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="13" columns="2">
+<features>
+<column alignment="left" valignment="top" leftline="true" width="5cm">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Organisation
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Name der Organisation (z.B.
+ GONICUS GmbH)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Abteilung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Name der Abteilung (z.B.
+ Technik)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Abteilungs-Nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Nummer der Abteilung (z.B.
+ )
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Angestellten-Nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Nummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Anstellungsart
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Position des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zimmer-Nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Zimmernummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Telefonnummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mobiltelefon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Mobiltelefonnummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pager
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Pager-Nummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Faxnummer des Angestellten
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ort
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Ort der Organisation (oder Abteilung)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Land
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Land der Organisation (oder Abteilung)
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Postadresse der Organisation (oder Abteilung)
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Unix
+\layout Standard
+
+Um die Unix-Erweiterung zu aktivieren, dr�cken Sie auf den Knopf 
+\emph on 
+UNIX-Konto
+\emph default 
+ erstellen.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basisverzeichnis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das pers�nliche Verzeichnis des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Shell
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Shell, die beim Anmelden ausgef�hrt werden soll (/bin/false sorgt daf�r,
+ dass sich der Benutzer nicht anmelden kann)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Prim�re Gruppe
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die prim�re Gruppe des Benutzers, zu der er hinzugef�gt werden soll (Um
+ Gruppen zu verwalten, klicken Sie aus dem Men�-Abschnitt 
+\series bold 
+Administration
+\series default 
+ auf den Knopf
+\series bold 
+\color blue
+ Gruppen
+\series default 
+\color default
+)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Status
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zeigt an, ob das Konto aktiv ist
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Erzwinge UID/GID
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mit dieser Funktion k�nnen die UNIX UID und GID auf einen bestimmten Wert
+ erzwungen werden.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Gruppenmitgliedschaft
+\layout Standard
+
+Die Liste zeigt alle UNIX-Gruppen, in denen der Benutzer Mitglied ist.
+ Um eine weitere Mitgliedschaft hinzuzuf�gen, klicken Sie auf den Knopf
+ 
+\emph on 
+Hinzuf�gen
+\emph default 
+ unterhalb der Liste.
+ Markieren Sie eine oder mehrere Gruppen und klicken Sie auf hinzuf�gen.
+ Um den Benutzer aus einer oder mehrerer Gruppen zu entfernen, markieren
+ Sie eine oder mehrere Gruppen und klicken auf 
+\emph on 
+Entfernen
+\emph default 
+ unterhalb der Liste.
+\layout Subsubsection
+\added_space_top medskip 
+Konto
+\layout Standard
+
+Die Einstellungen dieser Kategorie beziehen sich auf Einschr�nkungen f�r
+ das Passwort des Benutzers (dies betrifft selbstverst�ndlich lediglich
+ das UNIX-Konto):
+\layout Itemize
+
+
+\emph on 
+Der Benutzer muss bei ersten Anmelden sein Passwort �ndern
+\emph default 
+: Mit dem Setzen dieser Option wird erzwungen, dass der Benutzer beim ersten
+ Anmeldevorgang zun�chst sein Passwort �ndern muss.
+\layout Itemize
+
+
+\emph on 
+Passwort kann bis zu
+\emph default 
+ [Anzahl der Tage] 
+\emph on 
+Tage nach der letzten �nderung nicht ge�ndert werden
+\emph default 
+:
+\layout Itemize
+
+
+\emph on 
+Der Benutzer muss sein Passwort nach
+\emph default 
+ [Anzahl der Tage]
+\emph on 
+ Tagen �ndern
+\emph default 
+: Mit dem Setzen dieser Option erh�lt der Benutzer nach dem gew�hlten Zeitraum
+ die Aufforderung, sein Passwort zu �ndern.
+\layout Itemize
+
+Passwort l�uft ab am [Datum]: Mit dem Setzen dieser Option kann der Benutzer
+ sich mit Ablauf des gew�hlten Datums nicht mehr anmelden.
+\layout Itemize
+
+
+\emph on 
+Konto nach 
+\emph default 
+[Anzahl der Tage]
+\emph on 
+ Tagen nach Ablauf ohne Aktivit�t deaktivieren
+\emph default 
+: Wenn der gew�hlte Zeitraum ohne Aktivit�t (ohne Anmeldung) erreicht wurde,
+ wird das Passwort deaktiviert, der Benutzer kann sich somit nicht mehr
+ anmelden.
+\layout Itemize
+
+
+\emph on 
+Benutzer 
+\emph default 
+[Anzahl der Tage]
+\emph on 
+ Tage vor dem Ablauf des Passwortes warnen
+\emph default 
+: Der Benutzer erh�lt eine Warnung, dass sein Passwort zum festgelegten
+ Zeitpunk abl�uft.
+\layout Subsubsection
+\added_space_top medskip 
+System-Vertrauen
+\layout Standard
+
+Dieser Abschnitt dient der Definition von Zugriffsbeschr�nkungen auf definierte
+ Systeme, Ger�te, etc.
+ 
+\layout Standard
+
+Die m�glichen Vertrauensmodi:
+\layout Itemize
+
+
+\emph on 
+deaktiviert
+\emph default 
+: Der Benutzer darf sich auf allen Hosts anmelden.
+\layout Itemize
+
+
+\emph on 
+Vollzugriff
+\emph default 
+: Der Benutzer darf sich auf allen Hosts anmelden.
+\layout Itemize
+
+
+\emph on 
+erlaube Zugriff auf diese Hosts
+\emph default 
+: Der Benutzer darf sich nur auf den aufgef�hrten Hosts anmelden.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Hinzuf�gen
+\emph default 
+: Um einen oder mehrere Hosts in die Liste aufzunehmen, klicken Sie auf
+ den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Aus der Liste der Hosts w�hlen Sie einen oder mehrere zul�ssige Hosts und
+ klicken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Die Hosts werden nun in der Liste aufgef�hrt.
+ Um den Vorgang abzubrechen, klicken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+.
+\layout Itemize
+
+
+\emph on 
+Entfernen
+\emph default 
+: Um einen oder mehrere Hosts aus der Liste zu entfernen, markieren Sie
+ den oder die gew�nschten Hosts aus der Liste und dr�cken Sie den Knopf
+ Entfernen.
+ Die Hosts werden nun nicht mehr in der Liste aufgef�hrt.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Umgebung
+\layout Standard
+
+Um die Umgebungserweiterung f�r einen Benutzer zu aktivieren, klicken Sie
+ auf den Knopf 
+\emph on 
+Umgebungs-Erweiterung hinzuf�gen
+\emph default 
+.
+ Wenn Sie die Umgebungserweiterung deaktivieren m�chten, klicken Sie auf
+ den Knopf 
+\emph on 
+Umgebungs-Erweiterung-entfernen
+\emph default 
+.
+\layout Standard
+\added_space_top defskip \noindent 
+Wenn die Erweiterung aktiv ist, finden sich folgende Einstellm�glichkeiten:
+\layout Subsubsection
+
+Profile
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk-Profil
+\layout Subsubsection
+\added_space_top medskip 
+Anmelde-Skripte
+\layout Subsubsection
+\added_space_top medskip 
+Freigaben
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug-Ger�te
+\layout Subsubsection
+\added_space_top medskip 
+Drucker
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+Das Mailkonto wird in direkter Verbindung mit dem Mailserver verwaltet.
+ Um eines f�r den Benutzer anzulegen, klicken Sie auf 
+\shape italic 
+Neues Mail-Konto erzeugen
+\shape default 
+.
+ Wenn Sie das Mailkonto wieder entfernen m�chten, klicken Sie auf 
+\emph on 
+Mail-Konto entfernen
+\emph default 
+.
+\layout Subsubsection
+
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Prim�re Adresse
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Mail-Adresse des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Server, auf dem das Postfach des Benutzers gespeichert werden soll.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kontingent-Nutzung
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der momentan genutzte Speicherplatz des Kontingents.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kontingent-Gr��e
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die maximale Gr��e der Mailbox
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternative Adressen
+\layout Standard
+
+Alternative Adressen sind weitere Adressen, unter denen der Benutzer Mails
+ empfangen soll.
+ 
+\layout Standard
+
+Verwenden Sie den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+ um eine alternative Adresse hinzuzuf�gen.
+ Wenn Sie eine Adresse entfernen m�chten, markieren Sie diese und dr�cken
+ Sie auf den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\layout Subsubsection
+\added_space_top medskip 
+Mail-Einstellungen
+\layout Standard
+
+Unter diese Kategorie fallen weitere Einstellungsm�glichkeiten:
+\layout Itemize
+
+
+\emph on 
+Keine Zustellung in eigenes Postfach
+\emph default 
+: Wenn diese Option aktiviert ist, werden ankommende Mails ausschliesslich
+ an die Adressen gesendet, die im Kasten 
+\emph on 
+Nachrichten weiterleiten an
+\emph default 
+ (s.
+ u.)aufgef�hrt sind.
+ Eine Speicherung der Nachricht im Postfach des Benutzers findet nicht statt.
+\layout Itemize
+
+
+\emph on 
+Urlaubsbenachrichtigung aktivieren
+\emph default 
+: Wenn diese Option aktiviert ist, wird der Inhalt des Kastens Urlaubsbenachrich
+tung an den Sender jeder ankommenden Mail gesendet.
+\layout Itemize
+
+
+\emph on 
+Verschiebe Mails mit einem SPAM-Level gr��er als [Spam-Level] in den Ordner
+ [Ordner]
+\emph default 
+: Die ankommenden Mails werden auf m�glichen Spam-Inhalt gepr�ft.
+ Diese Pr�fung erkennt SPAM mit einer gewissen Wahrscheinlichkeit, die als
+ Spam-Level in den Kopf der Nachricht geschrieben wird (�blicherweise haben
+ SPAM-Mails einen SPAM-Level ab 4-6).
+\newline 
+Wenn Sie diese Option aktivieren, werden Mails die �ber mindestens den gew�hlten
+ SPAM-Level verf�gen in den gew�nschten Ziel-Ordner verschoben, ohne dass
+ diese direkt im Posteingang des Benutzers sichtbar sind.
+\layout Itemize
+
+
+\emph on 
+Mails abweisen, die gr��er sind als [Gr��e] MB
+\emph default 
+: Ankommende Mails (f�r diesen Benutzer), die gr��er sind als der angegebene
+ Wert (in MB), werden nicht zugestellt.
+\layout Itemize
+
+
+\emph on 
+\color black
+Nachrichten weiterleiten an
+\emph default 
+: 
+\newline 
+Dieser Kasten dient dazu, Kopien der ankommenden Mails an weitere Adressen
+ zu versenden (z.B.
+ Telefone, PDAs etc.).
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- Adresse hinzuf�gen: Um eine Adresse hinzuzuf�gen, tragen Sie diese in
+ das Textfeld unterhalb des Kastens ein und dr�cken den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Die Adresse wird nun in der Liste aufgef�hrt.
+\layout Standard
+
+
+\color black
+- Lokale Adresse hinzuf�gen: Um eine lokale Adresse (=Adresse auf demselben
+ Mail-Server) hinzuzuf�gen, tragen Sie den Namen des Postfachs in das Textfeld
+ unterhalb des Kastens ein und dr�cken den Knopf 
+\emph on 
+Lokale hinzuf�gen
+\emph default 
+.
+ Die lokale Adresse wird nun in der Liste aufgef�hrt.
+\layout Standard
+
+
+\color black
+- (Lokale) Adresse entfernen: Um eine Adresse wieder aus der Liste zu entfernen,
+ markieren Sie den entsprechenden Eintrag in der Liste und dr�cken den Knopf
+ 
+\emph on 
+Entfernen
+\emph default 
+.
+ Der Eintrag wird nun nicht mehr in der Liste aufgef�hrt.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Erweiterte Mail-Einstellungen
+\layout Itemize
+
+
+\emph on 
+Der Benutzer darf nur lokale Mails senden und empfangen
+\emph default 
+: Wenn diese Option aktiv ist, darf der Benutzer ausschliesslich Mails an
+ interne Adressaten versenden und von diesen empfangen.
+ Eingehende Mails von externen Adressen werden nicht zugestellt.
+\layout Itemize
+
+
+\emph on 
+Eigenes Sieve-Skript verwenden
+\emph default 
+: Wenn diese Option aktiv ist, werden alle Mail-Einstellungen deaktiviert!
+ Dies ist erforderlich, wenn eigene Sieve-Skripte verwendet werden sollen,
+ da diese sonst �berschrieben werden.
+\layout Subsection
+\added_space_top bigskip 
+Samba
+\layout Standard
+
+Um ein Samba-Konto f�r den Benutzer zu erstellen, klicken Sie auf den Knopf
+\shape italic 
+ Samba-Konto erstellen
+\shape default 
+.
+\layout Subsubsection
+
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basisverzeichnis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Pfad zum Basisverzeichnis des Benutzers in UNC-Notation (z.B.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+user).
+ W�hlen Sie aus der Liste, unter welchem Laufwerksbuchstaben das Basisverzeichni
+s verbunden wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Dom�ne
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Dom�ne, zu der der Benutzer zugeordnet ist.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Anmeldeskript
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Programm, das beim Start der Sitzung ausgef�hrt wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profil-Pfad
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Arbeitsverzeichnis, in dem das Programm ausgef�hrt wird.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Terminal-Server
+\layout Itemize
+
+
+\emph on 
+Anmeldung am Terminalserver zulassen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basisverzeichnis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Pfad zum Basisverzeichnis des Benutzers in UNC-Notation (z.B.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+user).
+ W�hlen Sie aus der Liste, unter welchem Laufwerksbuchstaben das Basisverzeichni
+s verbunden wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profil-Pfad
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Der Pfad zum Profil des Benutzers
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Client-Konfiguration �bernehmen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Startprogramm
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Programm, das beim Start der Sitzung ausgef�hrt wird.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Arbeitsverzeichnis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Das Arbeitsverzeichnis, in dem das Programm ausgef�hrt wird.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+ 
+\layout Itemize
+
+
+\emph on 
+Zeitlimit (in Minuten) 
+\emph default 
+Mit Hilfe der nachfolgenden Optionen kann f�r den Benutzer die Sitzung zeitlich
+ begrenzt werden:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Verbinden
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die maximale Dauer, die der Benutzer verbunden sein darf - nach Ablauf wird
+ die Verbindung getrennt.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Trennen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Eine nicht mehr verbundene Sitzung des Benutzers wird nach Ablauf dieser
+ Zeit automatisch beendet.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Leerlauf
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Eine verbundene aber unt�tige Sitzung des Benutzers wird nach Ablauf dieser
+ Zeit automatisch beendet.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Client-Ger�te
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Client-Laufwerke beim Anmelden verbinden
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die lokalen Laufwerke des Clients als Netzlaufwerke verbinden
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Client-Drucker beim Anmelden verbinden
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die lokalen Drucker des Clients als Netzwerkdrucker verbinden
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Standard-Drucker vom Client w�hlen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Als Standard-Drucker den Standard-Drucker des Clients verwenden
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Verschiedenes:
+\begin_deeper 
+\layout Standard
+
+- 
+\emph on 
+Spiegeln
+\emph default 
+: Diese Option steuert das Verhalten der Remote�berwachung:
+\layout Itemize
+
+
+\emph on 
+deaktiviert
+\emph default 
+: Remote�berwachung ist deaktiviert
+\layout Itemize
+
+
+\emph on 
+Eingabe EIN, Benachrichtigen EIN
+\emph default 
+: Sitzung kann gesteuert werden, Benutzer wird gefragt
+\layout Itemize
+
+
+\emph on 
+Eingabe EIN, Benachrichtigen AUS
+\emph default 
+: Sitzung kann gesteuert werden, Benutzer wird nicht gefragt
+\layout Itemize
+
+
+\emph on 
+Eingabe AUS, Benachrichtigen EIN
+\emph default 
+: Sitzung wird nur angezeigt, Benutzer wird gefragt
+\layout Itemize
+
+
+\emph on 
+Eingabe AUS, Benachrichtigen AUS
+\emph default 
+: Sitzung wird nur angezeigt, Benutzer wird nicht gefragt
+\layout Standard
+
+-
+\emph on 
+ Bei Trennung oder abgelaufenem Zeitlimit
+\emph default 
+: Sie k�nnen w�hlen, ob eine Sitzung, die getrennt wurde (vom Client oder
+ durch ein abgelaufenes Zeitlimit) automatisch zur�ckgesetzt werden soll,
+ oder nicht: Zum Zur�cksetzen w�hlen Sie 
+\emph on 
+zur�cksetzen
+\emph default 
+.
+ Bei 
+\emph on 
+trennen
+\emph default 
+ bleibt die Sitzung erhalten.
+\layout Standard
+
+- 
+\emph on 
+Wiederherstellen falls unterbrochen
+\emph default 
+: Wenn eine Sitzung des Benutzers unterbrochen wurde (Absturz, Netzwerkprobleme
+ etc.) kann mithilfe dieser Einstellung festgelegt werden, dass sich der
+ Benutzer nur von dem urspr�nglichen Client in seine noch aktive Sitzung
+ verbinden darf.
+ Wenn diese gew�nscht ist, w�hlen Sie den Eintrag 
+\emph on 
+nur von vorherigem Client
+\emph default 
+.
+ Mit der Einstellung 
+\emph on 
+von jedem Client
+\emph default 
+ darf der Benutzer sich von jedem Client zu seiner Sitzung verbinden.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Zugriffsoptionen
+\layout Standard
+
+Die unter Zugriffsoptionen aufgef�hrten Einstellung dienen zum Anpassen
+ der Passwort-Einstellungen.
+ Sie sollten genau aufpassen, welche Einstellungen Sie vornehmen.
+\layout Itemize
+
+Die folgenden Optionen sind verf�gbar:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Der Benutzer darf das Passwort vom Client aus �ndern
+\emph default 
+: Wenn diese Option aktiv ist, darf der Benutzer vom Windows-Client sein
+ Passwort �ndern.
+\layout Itemize
+
+
+\emph on 
+Die Anmeldung vom Windows-Client erfordert kein Passwort
+\emph default 
+: Wenn diese Option aktiv ist, ben�tigt der Benutzer kein Passwort, um sich
+ anzumelden.
+\layout Itemize
+
+
+\emph on 
+Samba-Konto sperren
+\emph default 
+: Wenn diese Option aktiv ist, kann der Benutzer sich nicht mehr verbinden.
+\layout Itemize
+
+
+\emph on 
+Passwort l�uft ab am
+\emph default 
+: W�hlen Sie ein Datum, an dem das Passwort abl�uft, das Konto wird dann
+ automatisch gesperrt.
+\layout Itemize
+
+
+\emph on 
+Limitiere Logon-Zeit
+\emph default 
+: Zu dieser Einstellung sind keine Informationen verf�gbar (sambaLogonTime).
+\layout Itemize
+
+
+\emph on 
+Limitiere Logoff-Zeit
+\emph default 
+: Zu dieser Einstellung sind keine Informationen verf�gbar (sambaLogoffTime).
+\layout Itemize
+
+
+\emph on 
+Konto l�uft ab am
+\emph default 
+: W�hlen Sie ein Datum, an dem das Konto automatisch gesperrt wird.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Erlaube Verbindungen nur von diesen Arbeitsstationen
+\emph default 
+: Wenn Sie den Zugriff des Benutzers auf eine bis mehrere Arbeitsstationen
+ beschr�nken m�chten, tragen Sie diese in die Liste ein.
+ Wenn die Liste leer ist, ist der Zugriff von allen Clients m�glich.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Hinzuf�gen
+\emph default 
+: Um eine Arbeitsstation hinzuf�gen, klicken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+ und w�hlen Sie eine oder mehrere Arbeitsstationen aus der Liste, indem
+ Sie sei markieren.
+ Wenn Sie mit der Auswahl zufrieden sind, dr�cken Sie den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Die gew�nschten Arbeitsstation werden nun in der Liste aufgef�hrt.
+\layout Itemize
+
+
+\emph on 
+Entfernen
+\emph default 
+: Um eine oder mehrere Arbeitsstationen aus der Liste zu entfernen, markieren
+ Sie den oder die gew�nschten Eintr�ge in der Liste und dr�cken auf den
+ Knopf entfernen.
+ Die markierten Arbeitsstationen werden nun nicht mehr in der Liste aufgef�hrt.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Konnektivit�t
+\layout Standard
+
+Unter diesem Reiter finden sich diverse M�glichkeiten, um die Zugriffsm�glichkei
+ten des Benutzers zu erweitern:
+\layout Subsubsection
+
+Proxy Konto
+\layout Standard
+
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den Proxy-Server
+ erlauben:
+\layout Itemize
+
+
+\emph on 
+Filtern von unerw�nschten Inhalten (z.B.
+ pornografische oder gewaltt�tige Inhalte)
+\emph default 
+: Diese Option aktiviert den Inhaltsfilter f�r den Benutzer.
+ Dies hat zur Folge, dass keine Seiten aufgerufen werden k�nnen, die �ber
+ fragw�rdige Inhalte verf�gen (bzw.
+ vom Filter als solche erkannt werden).
+\layout Itemize
+
+
+\emph on 
+Inhaltsfilterung nur w�hrend der Arbeitszeit
+\emph default 
+: Die Inhaltsfilterung kann mit dieser Option ausschliesslich f�r die Arbeitszei
+t aktiviert werden (w�hlen Sie den Zeitraum).
+ Ausserhalb der eingestellten Arbeitszeit ist der Zugriff uneingeschr�nkt.
+\layout Itemize
+
+
+\emph on 
+Proxynutzung durch Kontingent einschr�nken
+\emph default 
+: Mit dieser Option k�nnen Sie die maximal �bertragene Menge f�r einen Zeitraum
+ f�r den Benutzer festlegen.
+ Wenn die Menge erreicht ist, kann der Benutzer keine Seiten mehr aufrufen.
+\layout Subsubsection
+
+FTP Konto
+\layout Standard
+
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den FTP-Server
+ erlauben:
+\layout Itemize
+
+Bandbreite: Erlaubt Einschr�nkung der Bandbreite (Aus Sicht des Benutzers)
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Upload-Bandbreite
+\emph default 
+: Die maximale Bandbreite f�r den Upload (Senderichtung).
+ Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+\layout Itemize
+
+
+\emph on 
+Download-Bandbreite
+\emph default 
+: Die maximale Bandbreite f�r den Download (Empfangsrichtung).
+ Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+\end_deeper 
+\layout Itemize
+
+Verh�ltnis: Der Benutzer kann gezwungen werden, ein Verh�ltnis von Up- und
+ Download von Dateien einzuhalten.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Hoch- / heruntergeladene Dateien
+\emph default 
+: Stellen Sie das Verh�ltnis in Dateien ein (z.B.
+ 4/1: 4 Dateien m�ssen hochgeladen werden, damit der Benutzer eine Datei
+ herunterladen darf).
+\end_deeper 
+\layout Itemize
+
+Kontingent: Einschr�nkung des Kontingents in Dateien oder �bertragenen Datenmeng
+en
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Dateien
+\emph default 
+: Die maximale Anzahl an Dateien, die der Benutzer �bertragen darf.
+ Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+\layout Itemize
+
+
+\emph on 
+Gr��e
+\emph default 
+: Die maximale Datenmenge, die der Benutzer �bertragen darf.
+ Wenn Sie 0 eintragen, ist die Beschr�nkung nicht aktiv.
+\end_deeper 
+\layout Itemize
+
+Verschiedenes:
+\begin_deeper 
+\layout Itemize
+
+Tempor�res Abschalten des FTP-Zugriffs: Mit dieser Option k�nnen Sie den
+ Zugriff auf den FTP-Server deaktivieren, ohne dabei die vorgenommenen Einstellu
+ngen zu verlieren.
+\end_deeper 
+\layout Subsubsection
+
+WebDAV-Konto
+\layout Standard
+
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den WebDAV-Server
+ erlauben.
+\layout Subsubsection
+
+phpGroupware-Konto
+\layout Standard
+
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den phpGroupware-Server
+ erlauben.
+\layout Subsubsection
+
+Intranet-Konto
+\layout Standard
+\added_space_bottom smallskip 
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den Intranet-Server
+ erlauben.
+\layout Subsubsection
+
+Opengroupware
+\layout Standard
+
+Mit dieser Option k�nnen Sie dem Benutzer den Zugriff auf den Opengroupware-Serv
+er erlauben:
+\layout Itemize
+
+
+\emph on 
+�rtliches Team
+\emph default 
+: Das �rtliche Team, zu dem der Benutzer geh�ren wird.
+\layout Itemize
+
+
+\emph on 
+Benutzer-Vorlage
+\emph default 
+: 
+\layout Itemize
+
+
+\emph on 
+Gesperrt
+\emph default 
+: Diese Option dient dazu, das Opengroupware-Konto zeitweilig zu sperren,
+ ohne die Einstellungen zu verlieren.
+ Wenn sie aktiv ist, kann der Benutzer sich nicht zum Opengroupware-Server
+ verbinden.
+\layout Itemize
+
+
+\emph on 
+Teams
+\emph default 
+: Aktivieren Sie die Teams, denen der Benutzer angeh�ren soll.
+\layout Subsubsection
+
+PPTP-Konto
+\layout Standard
+\added_space_bottom smallskip 
+Mit diesem Konto k�nnen Sie dem Benutzer den VPN-Zugriff via PPTP erlauben.
+\layout Subsubsection
+
+PHPScheduleit-Konto
+\layout Standard
+\added_space_bottom smallskip 
+Mit diesem Konto k�nnen Sie dem Benutzer den Zugriff auf den PHPscheduleit-Serve
+r erlauben:
+\layout Subsubsection
+
+GLPI-Konto
+\layout Standard
+
+If you activated the GLPI option, the user will access GLPI software.
+\layout Subsection
+\added_space_top bigskip 
+Fax
+\layout Standard
+
+Um f�r den Benutzer die Fax-Erweiterung zu aktivieren, klicken Sie auf den
+ Knopf 
+\emph on 
+Fax-Konto er
+\emph default 
+zeugen.
+ Um die Erweiterung wieder zu entfernen, klicken Sie auf den Knopf 
+\emph on 
+Fax-Konto entfernen
+\emph default 
+.
+\layout Subsubsection
+
+Allgemein
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Die Fax-Nummer des Benutzers
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sprache
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie die gew�nschte Sprache aus der Liste
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Auslieferungsformat
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie das gew�nschte Format aus der Liste
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Auslieferungsmethode
+\layout Itemize
+
+
+\emph on 
+Tempor�res Abschalten der Fax-Benutzung
+\emph default 
+: Deaktiviert das Fax-Konto des Benutzers, ohne die Einstellungen zu verlieren
+ (Wenn Sie das Konto dauerhaft entfernen m�chten, klicken Sie den Knopf
+ 
+\emph on 
+Fax-Konto entfernen
+\emph default 
+).
+\layout Itemize
+
+
+\emph on 
+Fax als Mail ausliefern an
+\emph default 
+: Die Mail-Adresse, an die das Fax im ausgew�hlten Format gesendet wird
+ (�blicherweise die Mailbox des Benutzers).
+\layout Itemize
+
+
+\emph on 
+Fax an Drucker weiterleiten
+\emph default 
+: W�hlen Sie aus der Liste den Drucker, auf dem ein empfangenes Fax gedruckt
+ wird.
+\layout Subsubsection
+\added_space_top medskip 
+Alternative Fax-Nummern
+\layout Standard
+
+Es ist m�glich, weitere Fax-Nummern f�r den Benutzer einzutragen.
+ Alle alternativen Nummern, die dem Benutzer zugeordnet sind, werden in
+ der Liste aufgef�hrt.
+\layout Itemize
+
+
+\emph on 
+Hinzuf�gen
+\emph default 
+: Um eine Nummer hinzuzuf�gen, geben Sie die Nummer in das Textfeld links
+ neben dem Knopf ein und dr�cken Sie auf den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+\layout Itemize
+
+
+\emph on 
+Lokale hinzuf�gen
+\emph default 
+: Um eine Nummer hinzuzuf�gen, die bereits einem Benutzer zugeordnet wurde,
+ dr�cken Sie auf den Knopf 
+\emph on 
+Lokale hinzuf�gen
+\emph default 
+.
+ W�hlen Sie nun aus der Liste einen oder mehrere Benutzer, deren Faxnummern
+ dem aktuell ge�ffneten Benutzer zugeordet w�hlen sollen, und dr�cken Sie
+ den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Um den Vorgang abzubrechen, dr�cken Sie auf den Knopf 
+\emph on 
+Abbrechen
+\emph default 
+.
+\layout Itemize
+
+
+\emph on 
+Entfernen
+\emph default 
+: Um eine oder mehrere Nummern wieder zu entfernen, markieren Sie diese
+ in der Liste (mit gedr�ckter STRG-Taste k�nnen Sie mehrere Nummern markieren)
+ und dr�cken Sie den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+ Die Nummern werden nun nicht mehr in der Liste aufgef�hrt.
+\layout Subsubsection
+\added_space_top medskip 
+Sperrlisten
+\layout Standard
+
+Die Sperrlisten dienen dazu, den Empfang und Versand von und zu bestimmten
+ Nummern zu unterbinden, um z.B.
+ Werbefaxe zu vermeiden.
+ Die Dialoge der Sperrlisten f�r eingehende und ausgehende Faxe verhalten
+ sich analog, weshalb im Folgenden einfach darauf verzichtet wird, vorzuschreibe
+n, welchen 
+\emph on 
+Bearbeiten
+\emph default 
+-Knopf Sie gedr�ckt haben.
+\layout Paragraph*
+
+Bearbeiten:
+\layout Standard
+
+Wenn Sie den Knopf 
+\emph on 
+Bearbeiten
+\emph default 
+ gedr�ckt haben, sehen Sie eine zweigeteilte Seite.
+ Auf der linken Seite sehen Sie die aktuell g�ltigen Nummern/Listen, gegen
+ die ein-/ bzw.
+ ausgehende Nummern gepr�ft werden.
+ Um eine Nummer hinzuzuf�gen, geben Sie diese um Textfeld unterhalb der
+ Liste ein und klicken Sie den Knopf 
+\emph on 
+Hinzuf�gen
+\emph default 
+.
+ Um eine bereits bestehende Liste aus einer Unterabteilung hinzuzuf�gen
+ w�hlen Sie in der rechten Liste die Unterabteilung, die die Liste enth�lt
+ und dr�cken Sie den Knopf 
+\emph on 
+Liste zu den Sperrlisten hinzuf�gen
+\emph default 
+.
+ Um eine oder mehrere Nummern/Listen aus der Liste zu entfernen, markieren
+ Sie diese/n und dr�cken Sie den Knopf 
+\emph on 
+Entfernen
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Telefon
+\layout Standard
+
+Um die Telefon-Erweiterung f�r den Benutzer zu aktivieren, klicken Sie auf
+ den Knopf 
+\emph on 
+Telefon-Konto erstellen
+\emph default 
+.
+ Wenn Sie die Erweiterung wieder entfernen m�chten, klicken Sie auf den
+ Knopf 
+\emph on 
+Telefon-Konto entfernen
+\emph default 
+.
+\layout Subsubsection
+
+Telefonnummern
+\layout Standard
+
+In dieser Liste werden die Telefonnummern aufgef�hrt, die dem Benutzer zugeordne
+t sind.
+\layout Itemize
+
+
+\emph on 
+Nummer hinzuf�gen
+\emph default 
+: Geben Sie die Nummer in die Eingabezeile ein und dr�cken Sie den Knopf
+ 
+\emph on 
+Hinzuf�gen
+\layout Itemize
+
+Nummer entfernen: Markieren Sie die Nummer aus der Liste und dr�cken Sie
+ den Knopf 
+\emph on 
+Entfernen.
+\layout Subsubsection
+\added_space_top medskip 
+Telefon-Hardware
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+W�hlen Sie das Telefon aus der Liste, wenn der Benutzer ein 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Voicemail-PIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie den vierstelligen PIN-Code ein, den der Benutzer eingeben muss,
+ um seine Mailbox zu erreichen.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefon-PIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geben Sie den vierstelligen PIN-Code ein, den der Benutzer eingeben muss,
+ um sich an seinem Telefon anzumelden.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Telefon-Makro
+\layout Standard
+
+W�hlen Sie aus der Liste das Makro, das ausgef�hrt werden soll, wenn der
+ Benutzer eine Nummer w�hlt (Gegebenenfalls m�ssen/k�nnen noch weitere Makrospez
+ifische Optionen eingestellt werden, z.B.
+ Nummer der Mailbox, Weiterleitungen, Zeit bis Weiterleitung, etc.).
+\layout Subsection
+\added_space_top bigskip 
+Referenzen
+\layout Standard
+
+Unter Referenzen findet sich eine Auflistung aller Verbindungen des Benutzers
+ zu anderen Eintr�ge im LDAP (z.B.
+ Gruppen, Systeme etc.).
+\the_end
diff --git a/gosa-core/doc/core/en/html/applications/WARNINGS b/gosa-core/doc/core/en/html/applications/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/applications/applications.css b/gosa-core/doc/core/en/html/applications/applications.css
new file mode 100644
index 0000000..4044fd1
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/applications.css
@@ -0,0 +1,35 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
diff --git a/gosa-core/doc/core/en/html/applications/applications.html b/gosa-core/doc/core/en/html/applications/applications.html
new file mode 100644
index 0000000..d22b9bb
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/applications.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>APPLICATIONS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="APPLICATIONS ADMINISTRATION">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">APPLICATIONS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of applications</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Options</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Script</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Options</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/index.html b/gosa-core/doc/core/en/html/applications/index.html
new file mode 100644
index 0000000..d22b9bb
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/index.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>APPLICATIONS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="APPLICATIONS ADMINISTRATION">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">APPLICATIONS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of applications</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Options</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Script</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Options</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/labels.pl b/gosa-core/doc/core/en/html/applications/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/applications/list_back.png b/gosa-core/doc/core/en/html/applications/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/applications/list_home.png b/gosa-core/doc/core/en/html/applications/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/applications/list_new_app.png b/gosa-core/doc/core/en/html/applications/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/list_new_app.png differ
diff --git a/gosa-core/doc/core/en/html/applications/list_root.png b/gosa-core/doc/core/en/html/applications/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/applications/node1.html b/gosa-core/doc/core/en/html/applications/node1.html
new file mode 100644
index 0000000..a2a8c2c
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node1.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of applications</TITLE>
+<META NAME="description" CONTENT="List of applications">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of applications</A>
+</H1>
+
+<P>
+The administrator can configure an application when clicking on the
+<SPAN  CLASS="textbf"><SPAN ID="hue27">Applications</SPAN></SPAN> button in the <SPAN  CLASS="textbf">Administration</SPAN>
+menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue30">Application</SPAN></SPAN> <SPAN  CLASS="textsf"><SPAN ID="hue91"><SPAN  CLASS="textit">M<SMALL>ANAGEMENT</SMALL></SPAN></SPAN></SPAN>
+page is displayed.
+
+<P>
+She is divided on two columns :
+
+<P>
+- The first column is used to display the list of applications, 
+
+<P>
+- The second column contains icons which are the actions you can execute
+on applications. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Application Management</SPAN> page that the
+system administrator manage the list of applications of the organization.
+
+<P>
+It's possible to modify the display of applications by using the table
+called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all applications;
+
+<P>
+<SPAN ID="hue44">- Click on a letter to show all the applications
+starting with this letter;</SPAN>
+<P>
+<SPAN ID="hue46">- Click on a number to show all applications starting
+with this number.</SPAN>
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the application searched and click on the <SPAN  CLASS="textit">Apply
+filter</SPAN> button.
+</LI>
+</UL>
+
+<P>
+<BR>
+To configure an application, the administrator click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_app.png"
+ ALT="Image list_new_app">.
+
+<P>
+You will see tabs. The administrator uses tabs to configure the application.
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html20"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html21"
+  HREF="node3.html">Options</A>
+<LI><A NAME="tex2html22"
+  HREF="node4.html">Script</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html23"
+  HREF="node5.html">Options</A>
+<LI><A NAME="tex2html24"
+  HREF="node6.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node2.html b/gosa-core/doc/core/en/html/applications/node2.html
new file mode 100644
index 0000000..9046345
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node2.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Application <SPAN ID="hue60">name</SPAN><SPAN ID="hue93">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the name of the application</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Display name</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Display the name of the application</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Execute<SPAN ID="hue94">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the name of the aplication to execute with his parameter</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert a description, a commentary on the application</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue95">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list to select the department where
+the application exist</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Icon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select your picture in the arborescence of your system and then click
+on the <SPAN  CLASS="textit">Update</SPAN> button. The icon is linked at the application.</TD>
+</TR>
+</TABLE>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html35"
+  HREF="node3.html">Options</A>
+<LI><A NAME="tex2html36"
+  HREF="node4.html">Script</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node3.html b/gosa-core/doc/core/en/html/applications/node3.html
new file mode 100644
index 0000000..3678231
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node3.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Only executable for members 
+
+<P>
+Check if you want the application to be executed only by members of
+a same group 
+
+<P>
+</LI>
+<LI>Replace user configuration on startup
+
+<P>
+Reinstall the default configuration at each startup
+
+<P>
+</LI>
+<LI>Place an icon on members desktop
+
+<P>
+Check if you want to make the icon appear on members desk
+
+<P>
+</LI>
+<LI>Place entry in members startmenu
+
+<P>
+Create an entry for the application in the startmenu
+
+<P>
+</LI>
+<LI>Place entry in members launch bar
+
+<P>
+Create an entry for the application in the launch bar
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node4.html b/gosa-core/doc/core/en/html/applications/node4.html
new file mode 100644
index 0000000..f5b2443
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node4.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Script</TITLE>
+<META NAME="description" CONTENT="Script">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Script</A>
+</H3>
+
+<P>
+?
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node5.html b/gosa-core/doc/core/en/html/applications/node5.html
new file mode 100644
index 0000000..dbe8da2
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node5.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Options</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Variable</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Variable name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Default value</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Default value associated to the variable</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+Use the <SPAN  CLASS="textit">Add option</SPAN> button to add a new variable and the <SPAN  CLASS="textit">Remove</SPAN>
+button to delete a variable.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node6.html b/gosa-core/doc/core/en/html/applications/node6.html
new file mode 100644
index 0000000..5ed209e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node6.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between applications.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/node7.html b/gosa-core/doc/core/en/html/applications/node7.html
new file mode 100644
index 0000000..c1c306b
--- /dev/null
+++ b/gosa-core/doc/core/en/html/applications/node7.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">APPLICATIONS ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/applications/ applications.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/applications/rocket.png b/gosa-core/doc/core/en/html/applications/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/applications/search.png b/gosa-core/doc/core/en/html/applications/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/applications/search.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/WARNINGS b/gosa-core/doc/core/en/html/blocklists/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/blocklists/blocklists.css b/gosa-core/doc/core/en/html/blocklists/blocklists.css
new file mode 100644
index 0000000..d47e1b0
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/blocklists.css differ
diff --git a/gosa-core/doc/core/en/html/blocklists/blocklists.html b/gosa-core/doc/core/en/html/blocklists/blocklists.html
new file mode 100644
index 0000000..6dcaf5e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/blocklists.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>BLOCKLIST ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="BLOCKLIST ADMINISTRATION">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">BLOCKLIST ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of blocklists</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Blocked numbers</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Information</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/index.html b/gosa-core/doc/core/en/html/blocklists/index.html
new file mode 100644
index 0000000..6dcaf5e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/index.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>BLOCKLIST ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="BLOCKLIST ADMINISTRATION">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">BLOCKLIST ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of blocklists</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Blocked numbers</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Information</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/labels.pl b/gosa-core/doc/core/en/html/blocklists/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/blocklists/list_back.png b/gosa-core/doc/core/en/html/blocklists/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/list_home.png b/gosa-core/doc/core/en/html/blocklists/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/list_new_blocklist.png b/gosa-core/doc/core/en/html/blocklists/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/list_root.png b/gosa-core/doc/core/en/html/blocklists/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/node1.html b/gosa-core/doc/core/en/html/blocklists/node1.html
new file mode 100644
index 0000000..833767c
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/node1.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of blocklists</TITLE>
+<META NAME="description" CONTENT="List of blocklists">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of blocklists</A>
+</H1>
+
+<P>
+The administrator can configure a blocklist when clicking on the <SPAN  CLASS="textbf"><SPAN ID="hue27">FAX
+Blocklists</SPAN></SPAN> button in the <SPAN  CLASS="textbf">Administration</SPAN> menu on the left.
+The <SPAN  CLASS="textsf"><SPAN ID="hue30">Blocklist</SPAN></SPAN> <SPAN  CLASS="textsf"><SPAN ID="hue77"><SPAN  CLASS="textit">M<SMALL>ANAGEMENT</SMALL></SPAN></SPAN></SPAN>
+page is displayed.
+
+<P>
+She is divided on two columns :
+
+<P>
+- The first column is used to display the list of blocklist, 
+
+<P>
+- The second column contains icons which are the actions you can execute
+on blocklist. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Blocklist Management</SPAN> page that the system
+administrator manage the list of blocklist of the organization.
+
+<P>
+It's possible to modify the display of blocklist by using the table
+called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all blocklists;
+
+<P>
+<SPAN ID="hue44">- Click on a letter to show all the blocklists starting
+with this letter;</SPAN>
+<P>
+<SPAN ID="hue46">- Click on a number to show all blocklists starting
+with this number.</SPAN>
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the application searched and click on the <SPAN  CLASS="textit">Apply
+filter</SPAN> button.
+</LI>
+</UL>
+
+<P>
+<BR>
+To create and configure blocklists, the administrator click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_blocklist.png"
+ ALT="Image list_new_blocklist">.
+
+<P>
+The administrator uses tabs to configure the blocklist.
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html18"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html19"
+  HREF="node3.html">Blocked numbers</A>
+<LI><A NAME="tex2html20"
+  HREF="node4.html">Information</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/node2.html b/gosa-core/doc/core/en/html/blocklists/node2.html
new file mode 100644
index 0000000..9594b25
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/node2.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>List <SPAN ID="hue60">name</SPAN><SPAN ID="hue79">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the blocklist name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make a choice on the scroll list to select the department where the
+blocklist existes</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Type</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make a choice on the scroll list if blocklists work when sending or
+receiving.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Describe the use of the blocklist</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/node3.html b/gosa-core/doc/core/en/html/blocklists/node3.html
new file mode 100644
index 0000000..9eb4038
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/node3.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Blocked numbers</TITLE>
+<META NAME="description" CONTENT="Blocked numbers">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Blocked numbers</A>
+</H2>
+
+<P>
+The administrator must insert fax number in the bottom field. The
+fax number will be owned by the new blocklist. Use the <SPAN  CLASS="textit">Add</SPAN>
+and <SPAN  CLASS="textit">Delete</SPAN> buttons to create blocklists.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/node4.html b/gosa-core/doc/core/en/html/blocklists/node4.html
new file mode 100644
index 0000000..19b890a
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/node4.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Information</TITLE>
+<META NAME="description" CONTENT="Information">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Information</A>
+</H2>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/node5.html b/gosa-core/doc/core/en/html/blocklists/node5.html
new file mode 100644
index 0000000..d4aa464
--- /dev/null
+++ b/gosa-core/doc/core/en/html/blocklists/node5.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">BLOCKLIST ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/blocklists/ blocklists.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/blocklists/rocket.png b/gosa-core/doc/core/en/html/blocklists/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/blocklists/search.png b/gosa-core/doc/core/en/html/blocklists/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/blocklists/search.png differ
diff --git a/gosa-core/doc/core/en/html/conference/WARNINGS b/gosa-core/doc/core/en/html/conference/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/conference/conference.css b/gosa-core/doc/core/en/html/conference/conference.css
new file mode 100644
index 0000000..7c2259a
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/conference.css differ
diff --git a/gosa-core/doc/core/en/html/conference/conference.html b/gosa-core/doc/core/en/html/conference/conference.html
new file mode 100644
index 0000000..bd390f8
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/conference.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHONE CONFERENCES ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="PHONE CONFERENCES ADMINISTRATION">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">PHONE CONFERENCES ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of conference room</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/index.html b/gosa-core/doc/core/en/html/conference/index.html
new file mode 100644
index 0000000..bd390f8
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHONE CONFERENCES ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="PHONE CONFERENCES ADMINISTRATION">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">PHONE CONFERENCES ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of conference room</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/labels.pl b/gosa-core/doc/core/en/html/conference/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/conference/list_back.png b/gosa-core/doc/core/en/html/conference/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/conference/list_home.png b/gosa-core/doc/core/en/html/conference/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/conference/list_root.png b/gosa-core/doc/core/en/html/conference/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/conference/node1.html b/gosa-core/doc/core/en/html/conference/node1.html
new file mode 100644
index 0000000..c77526e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node1.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of conference room</TITLE>
+<META NAME="description" CONTENT="List of conference room">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of conference room</A>
+</H1>
+
+<P>
+The administrator can configure a phone conferences when clicking
+on the <SPAN  CLASS="textbf"><SPAN ID="hue27">Phone conferences</SPAN></SPAN> button in the
+<SPAN  CLASS="textbf">Administration</SPAN> menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue30">Conference</SPAN></SPAN>
+<SPAN  CLASS="textsf"><SPAN ID="hue82"><SPAN  CLASS="textit"><SMALL>MANAGEMENT</SMALL></SPAN></SPAN></SPAN> page is displayed.
+
+<P>
+She is divided on four columns :
+
+<P>
+- The first column is used to display _, 
+
+<P>
+- The second _
+
+<P>
+- The third 
+
+<P>
+- The last column contains icons which are the actions you can execute
+on _. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Conference management</SPAN> page that the
+system administrator manage the list of _ of the organization.
+
+<P>
+It's possible to modify the display of _ by using the table called
+Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all _;
+
+<P>
+<SPAN ID="hue44">- Click on a letter to show all the _ starting
+with this letter;</SPAN>
+<P>
+<SPAN ID="hue46">- Click on a number to show all _ starting with
+this number.</SPAN>
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the _ searched and click on the <SPAN  CLASS="textit">Apply filter</SPAN>
+button.
+</LI>
+</UL>
+
+<P>
+<BR>
+To create and configure _, the administrator click on (<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_new_component.png"
+ ALT="Image select_new_component">).
+
+<P>
+You will see tabs. The administrator uses tabs to configure the phone
+conference. 
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Options</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/node2.html b/gosa-core/doc/core/en/html/conference/node2.html
new file mode 100644
index 0000000..4db8846
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html34"
+  HREF="node4.html">Options</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/node3.html b/gosa-core/doc/core/en/html/conference/node3.html
new file mode 100644
index 0000000..233e3dc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node3.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Properties</TITLE>
+<META NAME="description" CONTENT="Properties">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Properties</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Conference name<SPAN ID="hue84">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the conference name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Type<SPAN ID="hue85">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make a choice on the scroll list to select type</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue86">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make a choice on the scroll list to select the department where the
+phone conference existes</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Description about the use of the phone conference</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Lifetime (in days)</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention how many time the phone conference runs</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Phone number<SPAN ID="hue87">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the phone number of the phone conference</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/node4.html b/gosa-core/doc/core/en/html/conference/node4.html
new file mode 100644
index 0000000..8ed8c22
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node4.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Preset PIN
+
+<P>
+Check if you want a preset code to be used in this conference.
+
+<P>
+</LI>
+<LI>Record conference
+
+<P>
+Check if you want to record the phone conference.
+
+<P>
+</LI>
+<LI>Play music on hold
+
+<P>
+Check if you want an on hold music.
+
+<P>
+</LI>
+<LI>Activate session menu
+
+<P>
+Check here if you want a session menu
+
+<P>
+</LI>
+<LI>Announce users joining or leaving the conference
+
+<P>
+Check if you want to notice to others a participant is coming or leaving
+the phone conference. 
+
+<P>
+</LI>
+<LI>Count users
+
+<P>
+Check if you want to count participants. 
+
+<P>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/node5.html b/gosa-core/doc/core/en/html/conference/node5.html
new file mode 100644
index 0000000..63c1a3c
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node5.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between phone conferences.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/node6.html b/gosa-core/doc/core/en/html/conference/node6.html
new file mode 100644
index 0000000..e9c524f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/conference/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">PHONE CONFERENCES ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/conference/ conference.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/conference/rocket.png b/gosa-core/doc/core/en/html/conference/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/conference/search.png b/gosa-core/doc/core/en/html/conference/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/search.png differ
diff --git a/gosa-core/doc/core/en/html/conference/select_new_component.png b/gosa-core/doc/core/en/html/conference/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/en/html/conference/select_new_component.png differ
diff --git a/gosa-core/doc/core/en/html/departments/WARNINGS b/gosa-core/doc/core/en/html/departments/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/departments/departments.css b/gosa-core/doc/core/en/html/departments/departments.css
new file mode 100644
index 0000000..8dc0b2d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/departments.css
@@ -0,0 +1,44 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue27		{ color: #0000ff;  }
+#hue30		{ color: #000000;  }
+#hue42		{ color: #000000;  }
+#hue44		{ color: #000000;  }
+#hue46		{ color: #000000;  }
+#hue82		{ color: #000000;  }
+#hue84		{ color: #ff0000;  }
+#hue85		{ color: #ff0000;  }
+#hue86		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/en/html/departments/departments.html b/gosa-core/doc/core/en/html/departments/departments.html
new file mode 100644
index 0000000..31f8833
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/departments.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>DEPARTMENT ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="DEPARTMENT ADMINISTRATION">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">DEPARTMENT ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of departments</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Location</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/index.html b/gosa-core/doc/core/en/html/departments/index.html
new file mode 100644
index 0000000..31f8833
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>DEPARTMENT ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="DEPARTMENT ADMINISTRATION">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">DEPARTMENT ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of departments</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Location</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/labels.pl b/gosa-core/doc/core/en/html/departments/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/departments/list_back.png b/gosa-core/doc/core/en/html/departments/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/departments/list_home.png b/gosa-core/doc/core/en/html/departments/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/departments/list_new_department.png b/gosa-core/doc/core/en/html/departments/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/list_new_department.png differ
diff --git a/gosa-core/doc/core/en/html/departments/list_root.png b/gosa-core/doc/core/en/html/departments/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/departments/node1.html b/gosa-core/doc/core/en/html/departments/node1.html
new file mode 100644
index 0000000..c0bf8d3
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node1.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of departments</TITLE>
+<META NAME="description" CONTENT="List of departments">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of departments</A>
+</H1>
+
+<P>
+The administrator can create or modify a department or to access informations
+when clicking on the <SPAN  CLASS="textbf"><SPAN ID="hue27">Departements</SPAN></SPAN> button
+in the <SPAN  CLASS="textbf">Administration</SPAN> menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue30">Department</SPAN></SPAN>
+<SPAN  CLASS="textsf"><SPAN ID="hue82"><SPAN  CLASS="textit">M<SMALL>ANAGEMENT</SMALL></SPAN></SPAN></SPAN> page is displayed.
+
+<P>
+She is divided on two columns :
+
+<P>
+- The first column is used to display the names of department, 
+
+<P>
+- The second column contains icons which are the actions you can execute
+on departments. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Department Management</SPAN> page that the
+system administrator manage the list of deparments of the organization.
+
+<P>
+It's possible to modify the diplay of departments by using the table
+called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all departments;
+
+<P>
+<SPAN ID="hue44">- Click on a letter to show all the departments
+starting with this letter;</SPAN>
+<P>
+<SPAN ID="hue46">- Click on a number to show all departments starting
+with this number.</SPAN>
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the department searched and click on the <SPAN  CLASS="textit">Apply
+filter</SPAN> button.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+To create a department click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_department.png"
+ ALT="Image list_new_department">.
+
+<P>
+You will see tabs. The administrator uses tabs to configure the department. 
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Location</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/node2.html b/gosa-core/doc/core/en/html/departments/node2.html
new file mode 100644
index 0000000..346cad6
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node3.html">Properties</A>
+<LI><A NAME="tex2html34"
+  HREF="node4.html">Location</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/node3.html b/gosa-core/doc/core/en/html/departments/node3.html
new file mode 100644
index 0000000..89c1a40
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node3.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Properties</TITLE>
+<META NAME="description" CONTENT="Properties">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Properties</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Name of department<SPAN ID="hue84">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the name of the department to be created</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description<SPAN ID="hue85">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert a description, a commentary on the department</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Category</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue86">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/node4.html b/gosa-core/doc/core/en/html/departments/node4.html
new file mode 100644
index 0000000..bbcd147
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node4.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Location</TITLE>
+<META NAME="description" CONTENT="Location">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Location</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>State</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert State wher is the department</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Location</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the place where is the department</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Address</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the address of department</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Phone</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the central phone of the department</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Intsert the central fax of the department</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/node5.html b/gosa-core/doc/core/en/html/departments/node5.html
new file mode 100644
index 0000000..5bca052
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node5.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between department.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/node6.html b/gosa-core/doc/core/en/html/departments/node6.html
new file mode 100644
index 0000000..c0a11d0
--- /dev/null
+++ b/gosa-core/doc/core/en/html/departments/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">DEPARTMENT ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/departments/ departments.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/departments/rocket.png b/gosa-core/doc/core/en/html/departments/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/departments/search.png b/gosa-core/doc/core/en/html/departments/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/departments/search.png differ
diff --git a/gosa-core/doc/core/en/html/faxreports/WARNINGS b/gosa-core/doc/core/en/html/faxreports/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/faxreports/faxreports.css b/gosa-core/doc/core/en/html/faxreports/faxreports.css
new file mode 100644
index 0000000..dd31292
Binary files /dev/null and b/gosa-core/doc/core/en/html/faxreports/faxreports.css differ
diff --git a/gosa-core/doc/core/en/html/faxreports/faxreports.html b/gosa-core/doc/core/en/html/faxreports/faxreports.html
new file mode 100644
index 0000000..3287f93
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/faxreports.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Fax Reports</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/faxreports/index.html b/gosa-core/doc/core/en/html/faxreports/index.html
new file mode 100644
index 0000000..3287f93
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/index.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Fax Reports</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/faxreports/labels.pl b/gosa-core/doc/core/en/html/faxreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/faxreports/node1.html b/gosa-core/doc/core/en/html/faxreports/node1.html
new file mode 100644
index 0000000..f71ccdd
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/node1.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax Reports</TITLE>
+<META NAME="description" CONTENT="Fax Reports">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Fax Reports</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/faxreports/node2.html b/gosa-core/doc/core/en/html/faxreports/node2.html
new file mode 100644
index 0000000..ebc2237
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/node2.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</H2>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/faxreports/node3.html b/gosa-core/doc/core/en/html/faxreports/node3.html
new file mode 100644
index 0000000..4c9605e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/faxreports/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADDONS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/faxreports/ faxreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/faxreports/rocket.png b/gosa-core/doc/core/en/html/faxreports/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/faxreports/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/fonreports/WARNINGS b/gosa-core/doc/core/en/html/fonreports/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/fonreports/fonreports.css b/gosa-core/doc/core/en/html/fonreports/fonreports.css
new file mode 100644
index 0000000..dd31292
Binary files /dev/null and b/gosa-core/doc/core/en/html/fonreports/fonreports.css differ
diff --git a/gosa-core/doc/core/en/html/fonreports/fonreports.html b/gosa-core/doc/core/en/html/fonreports/fonreports.html
new file mode 100644
index 0000000..666af5f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/fonreports.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Phone Reports</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/fonreports/index.html b/gosa-core/doc/core/en/html/fonreports/index.html
new file mode 100644
index 0000000..666af5f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/index.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Phone Reports</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/fonreports/labels.pl b/gosa-core/doc/core/en/html/fonreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/fonreports/node1.html b/gosa-core/doc/core/en/html/fonreports/node1.html
new file mode 100644
index 0000000..1d0cc00
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/node1.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone Reports</TITLE>
+<META NAME="description" CONTENT="Phone Reports">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Phone Reports</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/fonreports/node2.html b/gosa-core/doc/core/en/html/fonreports/node2.html
new file mode 100644
index 0000000..9e1d48c
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/node2.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter <SPAN ID="hue25"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"></SPAN></A>
+</H2>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/fonreports/node3.html b/gosa-core/doc/core/en/html/fonreports/node3.html
new file mode 100644
index 0000000..9a54d73
--- /dev/null
+++ b/gosa-core/doc/core/en/html/fonreports/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADDONS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/fonreports/ fonreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/fonreports/rocket.png b/gosa-core/doc/core/en/html/fonreports/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/fonreports/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/groups/WARNINGS b/gosa-core/doc/core/en/html/groups/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/groups/groups.css b/gosa-core/doc/core/en/html/groups/groups.css
new file mode 100644
index 0000000..6089472
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/groups.css
@@ -0,0 +1,52 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue102		{ color: #000000;  }
+#hue104		{ color: #000000;  }
+#hue106		{ color: #000000;  }
+#hue108		{ color: #000000;  }
+#hue110		{ color: #000000;  }
+#hue139		{ color: #000000;  }
+#hue140		{ color: #000000;  }
+#hue142		{ color: #ff0000;  }
+#hue143		{ color: #ff0000;  }
+#hue145		{ color: #ff0000;  }
+#hue27		{ color: #0000ff;  }
+#hue30		{ color: #000000;  }
+#hue43		{ color: #000000;  }
+#hue45		{ color: #000000;  }
+#hue47		{ color: #000000;  }
+#hue62		{ color: #000000;  }
+#hue90		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/en/html/groups/groups.html b/gosa-core/doc/core/en/html/groups/groups.html
new file mode 100644
index 0000000..7d70de0
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/groups.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GROUP ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="GROUP ADMINISTRATION">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">GROUP ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of groups</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Generic</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Alternative addresses</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">IMAP shared folders</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Forward messages to non group members</A>
+</UL>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/index.html b/gosa-core/doc/core/en/html/groups/index.html
new file mode 100644
index 0000000..7d70de0
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/index.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GROUP ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="GROUP ADMINISTRATION">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">GROUP ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of groups</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Generic</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Alternative addresses</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">IMAP shared folders</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Forward messages to non group members</A>
+</UL>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/labels.pl b/gosa-core/doc/core/en/html/groups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/groups/list_back.png b/gosa-core/doc/core/en/html/groups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/groups/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/groups/list_home.png b/gosa-core/doc/core/en/html/groups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/groups/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/groups/list_new_group.png b/gosa-core/doc/core/en/html/groups/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/en/html/groups/list_new_group.png differ
diff --git a/gosa-core/doc/core/en/html/groups/list_root.png b/gosa-core/doc/core/en/html/groups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/groups/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/groups/node1.html b/gosa-core/doc/core/en/html/groups/node1.html
new file mode 100644
index 0000000..4c7d2ff
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node1.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of groups</TITLE>
+<META NAME="description" CONTENT="List of groups">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of groups</A>
+</H1>
+
+<P>
+The administrator can create, modify or access the group informations
+when clicking on the <SPAN  CLASS="textbf"><SPAN ID="hue27">Group</SPAN></SPAN> button in the
+<SPAN  CLASS="textbf">Administration</SPAN> menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue30">Group</SPAN></SPAN>
+<SPAN  CLASS="textsf"><SPAN ID="hue139"><SPAN  CLASS="textit">A<SMALL>DMINISTRATION</SMALL></SPAN></SPAN></SPAN> page is
+displayed.
+
+<P>
+She is divided in three columns :
+
+<P>
+- The first column is used to display the list of groups or department, 
+
+<P>
+- The two last columns contains icons which are shortcuts to the settings
+of each goup and the actions you can execute on them. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Groups Administration</SPAN> page that the
+system administrator manage the list of groupes of the organization. 
+
+<P>
+<SPAN ID="hue140">Like for the users, it is possible to modify the
+display of groups by using the table called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">. </SPAN>
+<P>
+The administrator can do a nominal research and/or on the properties
+of group :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue43">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all groups;
+
+<P>
+<SPAN ID="hue45">- Click on a lettre to show all the groups starting
+with this letter;</SPAN>
+<P>
+<SPAN ID="hue47">- Click on a number to show all groups starting
+with this number.</SPAN>
+<P>
+</LI>
+<LI>To search on groups properties you must :
+
+<P>
+- Check one or many propositions; 
+
+<P>
+</LI>
+<LI>To search a name with a letter :
+
+<P>
+- fill the first field with a letter followed by an asterisk, click
+on the button <SPAN  CLASS="textit">Apply filter</SPAN>, all the names starting with this
+letter will be displayed,
+
+<P>
+- fill the second field with a letter and an asterisk, click on the
+button <SPAN  CLASS="textit">Apply filter</SPAN>, all the names containing this letter will
+be displayed.
+
+<P>
+</LI>
+</UL>
+To create a group click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_group.png"
+ ALT="Image list_new_group">.
+
+<P>
+You will see tabs. The administrator uses tabs to configure the group. 
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+<P>
+<BR>
+
+
+<P>
+All the fields followed by a red asterisk must be filled.
+
+<P>
+In the upper right corner you have the full dn of the group currently
+edited.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html31"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html32"
+  HREF="node3.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html33"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html34"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html35"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html36"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html37"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html38"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html40"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html41"
+  HREF="node12.html">Generic</A>
+<LI><A NAME="tex2html42"
+  HREF="node13.html">Alternative addresses</A>
+<LI><A NAME="tex2html43"
+  HREF="node14.html">IMAP shared folders</A>
+<LI><A NAME="tex2html44"
+  HREF="node15.html">Forward messages to non group members</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html45"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html46"
+  HREF="node17.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node10.html b/gosa-core/doc/core/en/html/groups/node10.html
new file mode 100644
index 0000000..06248fe
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node10.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Applications</TITLE>
+<META NAME="description" CONTENT="Applications">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Applications</A>
+</H2>
+
+<P>
+To activate the extension Applications click on the button <SPAN  CLASS="textit">Create
+applications</SPAN>.
+
+<P>
+The applications are applications existing in the organization. <SPAN ID="hue90">???</SPAN> 
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node11.html b/gosa-core/doc/core/en/html/groups/node11.html
new file mode 100644
index 0000000..608b742
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node11.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Mail</A>
+</H2>
+
+<P>
+To activate a mail account click on the <SPAN  CLASS="textit">Create mail</SPAN> <SPAN  CLASS="textit">account</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html151"
+  HREF="node12.html">Generic</A>
+<LI><A NAME="tex2html152"
+  HREF="node13.html">Alternative addresses</A>
+<LI><A NAME="tex2html153"
+  HREF="node14.html">IMAP shared folders</A>
+<LI><A NAME="tex2html154"
+  HREF="node15.html">Forward messages to non group members</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node12.html b/gosa-core/doc/core/en/html/groups/node12.html
new file mode 100644
index 0000000..0e37240
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node12.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Primary address<SPAN ID="hue145">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue102">Insert group primary address</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue104">Insert server name where the group mailbox reside</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota usage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue106">Mention if you want establish a quantity quota on
+the incoming and outgoing mail</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota size</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue108">Mention the Quota size</SPAN> <SPAN ID="hue110">in KB</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node13.html b/gosa-core/doc/core/en/html/groups/node13.html
new file mode 100644
index 0000000..7d51ebf
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node13.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative addresses</TITLE>
+<META NAME="description" CONTENT="Alternative addresses">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Alternative addresses</A>
+</H3>
+
+<P>
+A mail could be redirected to one or many addresses. Use buttons <SPAN  CLASS="textit">Add</SPAN>
+and <SPAN  CLASS="textit">Delete</SPAN> to manage aliases.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node14.html b/gosa-core/doc/core/en/html/groups/node14.html
new file mode 100644
index 0000000..7aabf03
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node14.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>IMAP shared folders</TITLE>
+<META NAME="description" CONTENT="IMAP shared folders">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+IMAP shared folders</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Default permission</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice in the scroll list to select the type of default
+permission for the group IMAP folder</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Member permision</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice in the scroll list of the type of permission allowed
+to the members to access the IMAP folder</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>The administrator can add other email adresses that can have access
+to the IMAP folder</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node15.html b/gosa-core/doc/core/en/html/groups/node15.html
new file mode 100644
index 0000000..a1c401d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node15.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Forward messages to non group members</TITLE>
+<META NAME="description" CONTENT="Forward messages to non group members">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Forward messages to non group members</A>
+</H3>
+
+<P>
+Users can recieve messages from a group without being a member of
+this group. You have to insert the email addresses of users in the
+field that precede buttons <SPAN  CLASS="textit">Add</SPAN>, <SPAN  CLASS="textit">Add local</SPAN> and <SPAN  CLASS="textit">Delete.</SPAN>
+The <SPAN  CLASS="textit">Add local</SPAN> button will show you addresses already saved
+in GOsa.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node16.html b/gosa-core/doc/core/en/html/groups/node16.html
new file mode 100644
index 0000000..62f6c67
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node16.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ACL</TITLE>
+<META NAME="description" CONTENT="ACL">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+ACL</A>
+</H2>
+
+<P>
+This part allow the administrator to configure the user rights to
+the differents parts of GOsa.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node17.html b/gosa-core/doc/core/en/html/groups/node17.html
new file mode 100644
index 0000000..2ffccd8
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node17.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between objects.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node18.html b/gosa-core/doc/core/en/html/groups/node18.html
new file mode 100644
index 0000000..6d045c4
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node18.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">GROUP ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/groups/ groups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node2.html b/gosa-core/doc/core/en/html/groups/node2.html
new file mode 100644
index 0000000..db8aa4b
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node2.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+
+<UL>
+<LI><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Groupe <SPAN ID="hue62">name</SPAN><SPAN ID="hue142">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the group name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert a description, a commentary on the group</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue143">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+</TABLE>
+</LI>
+<LI>Force GID : Force the group to use the number mentionned in the field
+</LI>
+<LI>Group / Domain Samba : Put members on a Samba group and a Samba domain 
+</LI>
+<LI>Members are in a phone pickup group : Check to put members in a phone
+pickup group
+</LI>
+<LI>Members are in a nagios group : Check to put members in nagios group
+</LI>
+</UL>
+The administrator insert in the area different members of a group.
+He must use the <SPAN  CLASS="textit">Add</SPAN> button to choose in the list of users.
+To modify a group he must use the <SPAN  CLASS="textit">Delete</SPAN> button.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node3.html b/gosa-core/doc/core/en/html/groups/node3.html
new file mode 100644
index 0000000..4bc75dc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node3.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Environment</TITLE>
+<META NAME="description" CONTENT="Environment">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Environment</A>
+</H2>
+
+<P>
+To activate the environment extension click on <SPAN  CLASS="textit">Add environment</SPAN>
+<SPAN  CLASS="textit">extension</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html67"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html68"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html69"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html70"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html71"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html72"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node4.html b/gosa-core/doc/core/en/html/groups/node4.html
new file mode 100644
index 0000000..2155559
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node4.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profiles</TITLE>
+<META NAME="description" CONTENT="Profiles">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Profiles</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node5.html b/gosa-core/doc/core/en/html/groups/node5.html
new file mode 100644
index 0000000..62abee0
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node5.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profile</TITLE>
+<META NAME="description" CONTENT="Kiosk profile">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Kiosk profile</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node6.html b/gosa-core/doc/core/en/html/groups/node6.html
new file mode 100644
index 0000000..3529ee5
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node6.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Logon scripts</TITLE>
+<META NAME="description" CONTENT="Logon scripts">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012300000000000000">
+Logon scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node7.html b/gosa-core/doc/core/en/html/groups/node7.html
new file mode 100644
index 0000000..68a35f6
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node7.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Attach share</TITLE>
+<META NAME="description" CONTENT="Attach share">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012400000000000000">
+Attach share</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node8.html b/gosa-core/doc/core/en/html/groups/node8.html
new file mode 100644
index 0000000..16a0901
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node8.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug devices</TITLE>
+<META NAME="description" CONTENT="Hotplug devices">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012500000000000000">
+Hotplug devices</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/node9.html b/gosa-core/doc/core/en/html/groups/node9.html
new file mode 100644
index 0000000..071f051
--- /dev/null
+++ b/gosa-core/doc/core/en/html/groups/node9.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Imprimante</TITLE>
+<META NAME="description" CONTENT="Imprimante">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012600000000000000">
+Imprimante</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/groups/rocket.png b/gosa-core/doc/core/en/html/groups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/groups/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/ldapmanager/WARNINGS b/gosa-core/doc/core/en/html/ldapmanager/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/ldapmanager/index.html b/gosa-core/doc/core/en/html/ldapmanager/index.html
new file mode 100644
index 0000000..fc2d673
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/index.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">LDAP manager</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Export</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Excel Export</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Import</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">CSV Import</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/labels.pl b/gosa-core/doc/core/en/html/ldapmanager/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.css b/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.css
new file mode 100644
index 0000000..8cb768e
Binary files /dev/null and b/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.css differ
diff --git a/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.html b/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.html
new file mode 100644
index 0000000..fc2d673
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/ldapmanager.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">LDAP manager</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Export</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Excel Export</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Import</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">CSV Import</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node1.html b/gosa-core/doc/core/en/html/ldapmanager/node1.html
new file mode 100644
index 0000000..b3811f7
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node1.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>LDAP manager</TITLE>
+<META NAME="description" CONTENT="LDAP manager">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+LDAP manager</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Export</A>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Excel Export</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Import</A>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">CSV Import</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node2.html b/gosa-core/doc/core/en/html/ldapmanager/node2.html
new file mode 100644
index 0000000..4dbd3c3
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node2.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Export</TITLE>
+<META NAME="description" CONTENT="Export">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Export</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Export single entry</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Export a single entry of the ldap tree</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Export complete LDIF for</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Export the complete ldap tree in one ldif file or a selected department</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node3.html b/gosa-core/doc/core/en/html/ldapmanager/node3.html
new file mode 100644
index 0000000..33d4a97
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node3.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Excel Export</TITLE>
+<META NAME="description" CONTENT="Excel Export">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Excel Export</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Export single entry</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Export a single entry of the ldap tree</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Export complete XLS for</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Export the complete ldap tree in one xls file or a selected department</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node4.html b/gosa-core/doc/core/en/html/ldapmanager/node4.html
new file mode 100644
index 0000000..ef71657
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node4.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Import</TITLE>
+<META NAME="description" CONTENT="Import">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Import</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Import LDIF File</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Import a ldif file in your ldap tree</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P></P>
+
+
+<P>
+
+<UL>
+<LI>Modify existing attributes : rewrite already existing attributes in
+the ldap tree 
+</LI>
+<LI>Overwrite existing entry : rewrite already existing entries in the
+ldap tree
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node5.html b/gosa-core/doc/core/en/html/ldapmanager/node5.html
new file mode 100644
index 0000000..0e6d990
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node5.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>CSV Import</TITLE>
+<META NAME="description" CONTENT="CSV Import">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+CSV Import</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Select CSV file to import</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select a correctly formated cvs file to import in your ldap tree</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Select template</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select a GOsa template to make the match between your cvs file an
+your ldap tree</TD>
+</TR>
+</TABLE>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ldapmanager/node6.html b/gosa-core/doc/core/en/html/ldapmanager/node6.html
new file mode 100644
index 0000000..b4098f9
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ldapmanager/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADDONS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/ldapmanager/ ldapmanager.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/logview/WARNINGS b/gosa-core/doc/core/en/html/logview/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/logview/index.html b/gosa-core/doc/core/en/html/logview/index.html
new file mode 100644
index 0000000..69c8722
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/index.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">System log view</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/logview/labels.pl b/gosa-core/doc/core/en/html/logview/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/logview/logview.css b/gosa-core/doc/core/en/html/logview/logview.css
new file mode 100644
index 0000000..0462333
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/logview.css
@@ -0,0 +1,33 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
diff --git a/gosa-core/doc/core/en/html/logview/logview.html b/gosa-core/doc/core/en/html/logview/logview.html
new file mode 100644
index 0000000..69c8722
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/logview.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADDONS</TITLE>
+<META NAME="description" CONTENT="ADDONS">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADDONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">System log view</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Filter </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/logview/node1.html b/gosa-core/doc/core/en/html/logview/node1.html
new file mode 100644
index 0000000..ba9d6e8
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/node1.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>System log view</TITLE>
+<META NAME="description" CONTENT="System log view">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+System log view</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html16"
+  HREF="node2.html">Filter </A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/logview/node2.html b/gosa-core/doc/core/en/html/logview/node2.html
new file mode 100644
index 0000000..c7c7241
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/node2.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Filter </TITLE>
+<META NAME="description" CONTENT="Filter ">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Filter </A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Show hosts</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select the host to search on in the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Log level</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select the log level where to search in the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Time interval</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select the time time interval where to search in the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Search for</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select the string to search for</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Ruleset</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Create a ruleset for to help frequent searches of the same type</TD>
+</TR>
+</TABLE>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/logview/node3.html b/gosa-core/doc/core/en/html/logview/node3.html
new file mode 100644
index 0000000..0d2947b
--- /dev/null
+++ b/gosa-core/doc/core/en/html/logview/node3.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADDONS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/logview/ logview.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/WARNINGS b/gosa-core/doc/core/en/html/macro/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/macro/index.html b/gosa-core/doc/core/en/html/macro/index.html
new file mode 100644
index 0000000..87f4a46
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/index.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHONE MACROS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="PHONE MACROS ADMINISTRATION">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">PHONE MACROS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of macros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Parameter</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/labels.pl b/gosa-core/doc/core/en/html/macro/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/macro/list_back.png b/gosa-core/doc/core/en/html/macro/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/macro/list_home.png b/gosa-core/doc/core/en/html/macro/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/macro/list_new_macro.png b/gosa-core/doc/core/en/html/macro/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/list_new_macro.png differ
diff --git a/gosa-core/doc/core/en/html/macro/list_root.png b/gosa-core/doc/core/en/html/macro/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/macro/macro.css b/gosa-core/doc/core/en/html/macro/macro.css
new file mode 100644
index 0000000..4044fd1
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/macro.css
@@ -0,0 +1,35 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
diff --git a/gosa-core/doc/core/en/html/macro/macro.html b/gosa-core/doc/core/en/html/macro/macro.html
new file mode 100644
index 0000000..87f4a46
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/macro.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHONE MACROS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="PHONE MACROS ADMINISTRATION">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">PHONE MACROS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of macros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Parameter</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/node1.html b/gosa-core/doc/core/en/html/macro/node1.html
new file mode 100644
index 0000000..5922837
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/node1.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of macros</TITLE>
+<META NAME="description" CONTENT="List of macros">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of macros</A>
+</H1>
+
+<P>
+The administrator can configure a phone macros when clicking on the
+<SPAN  CLASS="textbf"><SPAN ID="hue27">Phone macros</SPAN></SPAN> button in the <SPAN  CLASS="textbf">Administration</SPAN>
+menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue30">Phone macro</SPAN></SPAN> <SPAN  CLASS="textsf"><SPAN ID="hue86"><SPAN  CLASS="textit"><SMALL>MANAGEMENT</SMALL></SPAN></SPAN></SPAN>
+page is displayed.
+
+<P>
+She is divided on two columns :
+
+<P>
+- The first column is used to display _, 
+
+<P>
+- The second _
+
+<P>
+- The third column contains icons which are the actions you can execute
+on _. 
+
+<P>
+- Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+<P>
+<BR>
+
+
+<P>
+It's from the <SPAN  CLASS="textsf">Phone macro management</SPAN> page that the
+system administrator manage the list of Phone macros of the organization.
+
+<P>
+It's possible to modify the display of blocklist by using the table
+called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> :
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue42">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all _;
+
+<P>
+<SPAN ID="hue44">- Click on a letter to show all the _ starting
+with this letter;</SPAN>
+<P>
+<SPAN ID="hue46">- Click on a number to show all _ starting with
+this number.</SPAN>
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the _ searched and click on the <SPAN  CLASS="textit">Apply filter</SPAN>
+button.
+</LI>
+</UL>
+
+<P>
+<BR>
+To create and configure _, the administrator click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_macro.png"
+ ALT="Image list_new_macro">.
+
+<P>
+You will see tabs. The administrator uses tabs to configure the phone
+macro. 
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html18"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html19"
+  HREF="node3.html">Parameter</A>
+<LI><A NAME="tex2html20"
+  HREF="node4.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/node2.html b/gosa-core/doc/core/en/html/macro/node2.html
new file mode 100644
index 0000000..688c775
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/node2.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Macro name<SPAN ID="hue88">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the macro name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Display nam<SPAN ID="hue62">e</SPAN><SPAN ID="hue89">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Macro display name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue90">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make a choice on the scroll list to select the department where the
+phone macros existes</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Description about the use of the phone macros</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Visible for user</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Is this macro visible or not for an user</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI>Macro text
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/node3.html b/gosa-core/doc/core/en/html/macro/node3.html
new file mode 100644
index 0000000..4dd32af
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/node3.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Parameter</TITLE>
+<META NAME="description" CONTENT="Parameter">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Parameter</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Argument</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Name</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>type</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Default value</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/node4.html b/gosa-core/doc/core/en/html/macro/node4.html
new file mode 100644
index 0000000..76f8c15
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/node4.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between phone macros.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/node5.html b/gosa-core/doc/core/en/html/macro/node5.html
new file mode 100644
index 0000000..9c1ea23
--- /dev/null
+++ b/gosa-core/doc/core/en/html/macro/node5.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">PHONE MACROS ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/macro/ macro.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/macro/rocket.png b/gosa-core/doc/core/en/html/macro/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/macro/search.png b/gosa-core/doc/core/en/html/macro/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/macro/search.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/WARNINGS b/gosa-core/doc/core/en/html/ogroups/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/ogroups/index.html b/gosa-core/doc/core/en/html/ogroups/index.html
new file mode 100644
index 0000000..65473f4
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>OBJECT GROUPS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="OBJECT GROUPS ADMINISTRATION">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">OBJECT GROUPS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of groups</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/labels.pl b/gosa-core/doc/core/en/html/ogroups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/ogroups/list_back.png b/gosa-core/doc/core/en/html/ogroups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/list_home.png b/gosa-core/doc/core/en/html/ogroups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/list_new_ogroup.png b/gosa-core/doc/core/en/html/ogroups/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/list_root.png b/gosa-core/doc/core/en/html/ogroups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/node1.html b/gosa-core/doc/core/en/html/ogroups/node1.html
new file mode 100644
index 0000000..492215d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/node1.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of groups</TITLE>
+<META NAME="description" CONTENT="List of groups">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of groups</A>
+</H1>
+
+<P>
+An object group is a heterogeneous group. It is the possibility for
+the administrator to create groups where objects are differents. It's
+allow a supple and more adapted management than classic groups.
+
+<P>
+The administrator can add and configure Objects groups when clicking
+on the <SPAN  CLASS="textbf"><SPAN ID="hue25">Objects groups</SPAN></SPAN> in the <SPAN  CLASS="textbf">Administration</SPAN>
+menu on the left. The <SPAN  CLASS="textsf">Object group</SPAN> page is displayed. 
+
+<P>
+The page is devided on three columns :
+
+<P>
+- the first column is used to display the list of objects groups,
+
+<P>
+- the second column contains icons wich are shortcuts to the settings
+of objects groups,
+
+<P>
+- the third column contains les icons which are actions you can execute
+on objects groups.
+
+<P>
+Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+
+<P>
+
+<P>
+<BR>
+It's from the <SPAN  CLASS="textsf">Objects</SPAN> <SPAN  CLASS="textsf">groups</SPAN> that the administrator
+manage objects groups created for the organization.
+
+<P>
+It's possible to modify the display of objects groups by using the
+table called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><SPAN ID="hue38">To search on names :</SPAN>
+<P>
+- Click on the asterisk to show all objects groups;
+
+<P>
+<SPAN ID="hue40">- Click on a letter to show all the objects groups
+starting with this letter;</SPAN>
+<P>
+<SPAN ID="hue42">- Click on a number to show all objects groups starting
+with this number.</SPAN>
+<P>
+</LI>
+<LI>To search on objects groups properties you must :
+
+<P>
+- Check one or many propositions; 
+
+<P>
+</LI>
+<LI>For a fast search <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : fill the field
+by the name of the objects groups searched and click on the <SPAN  CLASS="textit">Apply
+filter</SPAN> button.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+To create, configure and modify a object group click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_ogroup.png"
+ ALT="Image list_new_ogroup">.
+
+<P>
+You will see tabs. The administrator uses tabs to configure the objects
+group.
+
+<P>
+To save changes use the <SPAN  CLASS="textit">Save</SPAN> button, to come back without saving
+use the <SPAN  CLASS="textit">Cancel</SPAN> button.
+<P>
+<BR>
+
+
+<P>
+All the fields followed by an asterisk must be filled.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html17"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html18"
+  HREF="node3.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/node2.html b/gosa-core/doc/core/en/html/ogroups/node2.html
new file mode 100644
index 0000000..acd62af
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/node2.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Group <SPAN ID="hue57">name</SPAN><SPAN ID="hue75">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the name of the group to be created</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert a description, a commentary on the group</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue76">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Member objects</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue63">The list of members objects belonging to one object
+group.</SPAN> The <SPAN  CLASS="textit">Add</SPAN> button will show you the existing list of objects,
+use the <SPAN  CLASS="textit">Delete</SPAN> button to remove elements.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/node3.html b/gosa-core/doc/core/en/html/ogroups/node3.html
new file mode 100644
index 0000000..1aa35e4
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/node3.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+References</A>
+</H2>
+
+<P>
+The references show the existing relations between objects.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/node4.html b/gosa-core/doc/core/en/html/ogroups/node4.html
new file mode 100644
index 0000000..36c5494
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/node4.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">OBJECT GROUPS ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/ogroups/ ogroups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/ogroups.css b/gosa-core/doc/core/en/html/ogroups/ogroups.css
new file mode 100644
index 0000000..aaaf491
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/ogroups.css
@@ -0,0 +1,43 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue25		{ color: #0000ff;  }
+#hue38		{ color: #000000;  }
+#hue40		{ color: #000000;  }
+#hue42		{ color: #000000;  }
+#hue57		{ color: #000000;  }
+#hue63		{ color: #000000;  }
+#hue75		{ color: #ff0000;  }
+#hue76		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/en/html/ogroups/ogroups.html b/gosa-core/doc/core/en/html/ogroups/ogroups.html
new file mode 100644
index 0000000..65473f4
--- /dev/null
+++ b/gosa-core/doc/core/en/html/ogroups/ogroups.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>OBJECT GROUPS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="OBJECT GROUPS ADMINISTRATION">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">OBJECT GROUPS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of groups</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/ogroups/rocket.png b/gosa-core/doc/core/en/html/ogroups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/ogroups/search.png b/gosa-core/doc/core/en/html/ogroups/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/ogroups/search.png differ
diff --git a/gosa-core/doc/core/en/html/users/WARNINGS b/gosa-core/doc/core/en/html/users/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/en/html/users/index.html b/gosa-core/doc/core/en/html/users/index.html
new file mode 100644
index 0000000..278910f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/index.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>USERS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="USERS ADMINISTRATION">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">USERS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of users</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Personal information</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Organizational information</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Generic</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Group membership</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Account</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">System trust</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Printer</A>
+</UL>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Generic</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Mail options</A>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Advanced mail options</A>
+</UL>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Generic</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Terminal Server</A>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Access options</A>
+</UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Connectivity</A>
+<LI><A NAME="tex2html29"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html30"
+  HREF="node33.html">Generic</A>
+<LI><A NAME="tex2html31"
+  HREF="node34.html">Delivery methods</A>
+<LI><A NAME="tex2html32"
+  HREF="node35.html">Alternate fax numbers</A>
+<LI><A NAME="tex2html33"
+  HREF="node36.html">Blocklists</A>
+</UL>
+<LI><A NAME="tex2html34"
+  HREF="node37.html">Phone</A>
+<UL>
+<LI><A NAME="tex2html35"
+  HREF="node38.html">Phone numbers</A>
+<LI><A NAME="tex2html36"
+  HREF="node39.html">Telephone hardware</A>
+<LI><A NAME="tex2html37"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node41.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node42.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/labels.pl b/gosa-core/doc/core/en/html/users/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/en/html/users/list_back.png b/gosa-core/doc/core/en/html/users/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/list_back.png differ
diff --git a/gosa-core/doc/core/en/html/users/list_home.png b/gosa-core/doc/core/en/html/users/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/list_home.png differ
diff --git a/gosa-core/doc/core/en/html/users/list_new_user.png b/gosa-core/doc/core/en/html/users/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/list_new_user.png differ
diff --git a/gosa-core/doc/core/en/html/users/list_root.png b/gosa-core/doc/core/en/html/users/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/list_root.png differ
diff --git a/gosa-core/doc/core/en/html/users/node1.html b/gosa-core/doc/core/en/html/users/node1.html
new file mode 100644
index 0000000..c9ccaf6
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node1.html
@@ -0,0 +1,243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>List of users</TITLE>
+<META NAME="description" CONTENT="List of users">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+List of users</A>
+</H1>
+
+<P>
+The administrator can create, modify or access the account informations
+when clicking on the <SPAN  CLASS="textbf"><SPAN ID="hue25">users</SPAN></SPAN> button in the
+<SPAN  CLASS="textbf">Administration</SPAN> menu on the left. The <SPAN  CLASS="textsf"><SPAN ID="hue28">Users
+Administration</SPAN></SPAN> page is displayed, she is divided on three columns.
+Each time an user is created it will appear in the first column sorted
+by department. 
+
+<P>
+The two first columns contains icons which are shortcuts to the settings
+of each user and the actions you can execute on them. 
+
+<P>
+Those icons ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) are used to modify the display
+according to the department, the icons predominate other selections
+of display.
+
+<P>
+It's from the Users Administration page that the system administrator
+will get a global view of all the users in his system. 
+
+<P>
+<SPAN ID="hue318">In the right part of the page you will find a table
+called Filters <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">. </SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue36">This table purpose is to change the display of the
+users :</SPAN>
+<P>
+<SPAN ID="hue38">- Click on a letter to show all the users starting
+with this letter;</SPAN>
+<P>
+<SPAN ID="hue40">- Click on the asterisk and the list of users will
+be ordoned alphabetically</SPAN>
+<P>
+</LI>
+<LI>You can also :
+
+<P>
+- Check one or more options to get a restricted selection;
+
+<P>
+- Insert a letter or a number followed by an asterisk or a user name
+in the filed preceded by a this icon <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">.
+Click on the <SPAN  CLASS="textit">submit</SPAN> button to get the result of your selection.
+
+<P>
+</LI>
+</UL>
+To create an account click on <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_user.png"
+ ALT="Image list_new_user">.
+If the account is already created click on the account himself.
+
+<P>
+You will see tabs, each of them is a part of the user account configuration.
+Each of those tabs is an extension that GOsa can manage.
+
+<P>
+To finish the creation of the user, click on the finish button on
+the right bottom of the page. To cancel your change click on the cancel
+button.
+<BR>
+<P>
+<BR>
+
+
+<P>
+All the fields followed by an red asterisk must be filled.
+
+<P>
+In the upper right corner you have the full dn of the user currently
+edited.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html50"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html51"
+  HREF="node3.html">Personal information</A>
+<LI><A NAME="tex2html52"
+  HREF="node4.html">Organizational information</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html53"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html54"
+  HREF="node6.html">Generic</A>
+<LI><A NAME="tex2html55"
+  HREF="node7.html">Group membership</A>
+<LI><A NAME="tex2html56"
+  HREF="node8.html">Account</A>
+<LI><A NAME="tex2html57"
+  HREF="node9.html">System trust</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html58"
+  HREF="node10.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html59"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html60"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html61"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html62"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html63"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html64"
+  HREF="node16.html">Printer</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html65"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html66"
+  HREF="node18.html">Generic</A>
+<LI><A NAME="tex2html67"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html68"
+  HREF="node20.html">Mail options</A>
+<LI><A NAME="tex2html69"
+  HREF="node21.html">Advanced mail options</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html70"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html71"
+  HREF="node23.html">Generic</A>
+<LI><A NAME="tex2html72"
+  HREF="node24.html">Terminal Server</A>
+<LI><A NAME="tex2html73"
+  HREF="node25.html">Access options</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html74"
+  HREF="node26.html">Connectivity</A>
+<UL>
+<LI><A NAME="tex2html75"
+  HREF="node27.html">Proxy account</A>
+<LI><A NAME="tex2html76"
+  HREF="node28.html">FTP account</A>
+<LI><A NAME="tex2html77"
+  HREF="node29.html">WebDAV account</A>
+<LI><A NAME="tex2html78"
+  HREF="node30.html">PHPGroupware account</A>
+<LI><A NAME="tex2html79"
+  HREF="node31.html">Intranet account</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html80"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html81"
+  HREF="node33.html">Generic</A>
+<LI><A NAME="tex2html82"
+  HREF="node34.html">Delivery methods</A>
+<LI><A NAME="tex2html83"
+  HREF="node35.html">Alternate fax numbers</A>
+<LI><A NAME="tex2html84"
+  HREF="node36.html">Blocklists</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html85"
+  HREF="node37.html">Phone</A>
+<UL>
+<LI><A NAME="tex2html86"
+  HREF="node38.html">Phone numbers</A>
+<LI><A NAME="tex2html87"
+  HREF="node39.html">Telephone hardware</A>
+<LI><A NAME="tex2html88"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html89"
+  HREF="node41.html">References</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node10.html b/gosa-core/doc/core/en/html/users/node10.html
new file mode 100644
index 0000000..fafdaea
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node10.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Environment</TITLE>
+<META NAME="description" CONTENT="Environment">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Environment</A>
+</H2>
+
+<P>
+Click on the button <SPAN  CLASS="textit">add an environment extension</SPAN> <SPAN  CLASS="textit"><SPAN  CLASS="textit">to</SPAN></SPAN>
+activate the configuration space.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html182"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html183"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html184"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html185"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html186"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html187"
+  HREF="node16.html">Printer</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node11.html b/gosa-core/doc/core/en/html/users/node11.html
new file mode 100644
index 0000000..bccda96
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node11.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profiles</TITLE>
+<META NAME="description" CONTENT="Profiles">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Profiles</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node12.html b/gosa-core/doc/core/en/html/users/node12.html
new file mode 100644
index 0000000..52c266a
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node12.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profile</TITLE>
+<META NAME="description" CONTENT="Kiosk profile">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Kiosk profile</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node13.html b/gosa-core/doc/core/en/html/users/node13.html
new file mode 100644
index 0000000..eed752d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node13.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Logon scripts</TITLE>
+<META NAME="description" CONTENT="Logon scripts">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Logon scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node14.html b/gosa-core/doc/core/en/html/users/node14.html
new file mode 100644
index 0000000..6d4ac84
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node14.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Attach share</TITLE>
+<META NAME="description" CONTENT="Attach share">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+Attach share</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node15.html b/gosa-core/doc/core/en/html/users/node15.html
new file mode 100644
index 0000000..01a170f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node15.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug devices</TITLE>
+<META NAME="description" CONTENT="Hotplug devices">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013500000000000000">
+Hotplug devices</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node16.html b/gosa-core/doc/core/en/html/users/node16.html
new file mode 100644
index 0000000..245b587
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node16.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Printer</TITLE>
+<META NAME="description" CONTENT="Printer">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013600000000000000">
+Printer</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node17.html b/gosa-core/doc/core/en/html/users/node17.html
new file mode 100644
index 0000000..5cb49f1
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node17.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Mail</A>
+</H2>
+
+<P>
+The mail account is linked to the mail server. To activate the mail
+account click on the button <SPAN  CLASS="textit">Create mail account</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html256"
+  HREF="node18.html">Generic</A>
+<LI><A NAME="tex2html257"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html258"
+  HREF="node20.html">Mail options</A>
+<LI><A NAME="tex2html259"
+  HREF="node21.html">Advanced mail options</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node18.html b/gosa-core/doc/core/en/html/users/node18.html
new file mode 100644
index 0000000..fdd82f4
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node18.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue143">Primary address</SPAN><SPAN ID="hue333">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the mail address of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Choose the server where the mail account of the user is stored</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota usage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention if you apply a quota to the mail account of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota size</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention in KB the quota size</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node19.html b/gosa-core/doc/core/en/html/users/node19.html
new file mode 100644
index 0000000..093ec59
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node19.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative addresses</TITLE>
+<META NAME="description" CONTENT="Alternative addresses">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Alternative addresses</A>
+</H3>
+
+<P>
+The user can own one or many aliases. Those aliases must be inserted
+in the alternatives addresses area. 
+
+<P>
+Use the button <SPAN  CLASS="textit">Add</SPAN> to insert the aliases. The alias must be
+inserted in the empty area followed by the button <SPAN  CLASS="textit">Add</SPAN>. Use
+the button <SPAN  CLASS="textit">Delete</SPAN> to remove aliases.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node2.html b/gosa-core/doc/core/en/html/users/node2.html
new file mode 100644
index 0000000..c30e5b6
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Generic</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html100"
+  HREF="node3.html">Personal information</A>
+<LI><A NAME="tex2html101"
+  HREF="node4.html">Organizational information</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node20.html b/gosa-core/doc/core/en/html/users/node20.html
new file mode 100644
index 0000000..0410423
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node20.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail options</TITLE>
+<META NAME="description" CONTENT="Mail options">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+Mail options</A>
+</H3>
+
+<P>
+Management of the mail options of the user :
+
+<P>
+
+<UL>
+<LI>No delivery to own mailbox : send all mail for this address to a mail
+address mentionned in the area <SPAN  CLASS="textit">Forward messages to.</SPAN>
+</LI>
+<LI>Activate vacation message : send the message wroten in the area <SPAN  CLASS="textit"><SPAN ID="hue157">Vacation
+message</SPAN></SPAN> to the sender.
+</LI>
+<LI>Move mails tagged with spam level greater than (a) to folder (b) :
+send mails that spam level is higher than (a) in the folder (b).
+</LI>
+<LI>Reject mails bigger than (c) MB : reject mails higher than (c) MB.
+</LI>
+<LI>Use the <SPAN  CLASS="textit">Add</SPAN> ou <SPAN  CLASS="textit">Add local</SPAN> <SPAN ID="hue161">buttons to
+manage addresses : </SPAN>
+<P>
+<SPAN ID="hue163">- The</SPAN> <SPAN ID="hue335"><SPAN  CLASS="textit">Add local</SPAN></SPAN> <SPAN ID="hue167">button
+is used to choose among the local list addresses. </SPAN>
+<P>
+<SPAN ID="hue169">- The</SPAN> <SPAN ID="hue336"><SPAN  CLASS="textit">Add</SPAN></SPAN> <SPAN ID="hue173">button
+allow external addresses.</SPAN>
+<P>
+<SPAN ID="hue175">- Use the</SPAN> <SPAN ID="hue337"><SPAN  CLASS="textit">Delete</SPAN></SPAN> <SPAN ID="hue179">button
+to remove the mails addresses.</SPAN>
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node21.html b/gosa-core/doc/core/en/html/users/node21.html
new file mode 100644
index 0000000..5344f50
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node21.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Advanced mail options</TITLE>
+<META NAME="description" CONTENT="Advanced mail options">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Advanced mail options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>User is only allowed to send and receive local mails : the administrator
+can force sending and receiving local mails only.
+</LI>
+<LI>Use custom sieve script : The administrator can write sieve script
+to establish rules for managing mail box. <SPAN  CLASS="textit">Attention !</SPAN> <SPAN  CLASS="textit">This
+will disable all mail options</SPAN>.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node22.html b/gosa-core/doc/core/en/html/users/node22.html
new file mode 100644
index 0000000..01da62d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node22.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Samba</TITLE>
+<META NAME="description" CONTENT="Samba">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+Samba</A>
+</H2>
+
+<P>
+To create a samba account for an user click on the button <SPAN  CLASS="textit">Create
+a samba</SPAN> <SPAN  CLASS="textit">account</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html308"
+  HREF="node23.html">Generic</A>
+<LI><A NAME="tex2html309"
+  HREF="node24.html">Terminal Server</A>
+<LI><A NAME="tex2html310"
+  HREF="node25.html">Access options</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node23.html b/gosa-core/doc/core/en/html/users/node23.html
new file mode 100644
index 0000000..579ae9e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node23.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Home directory</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path of the user's home directory in UNC notation ex:
+\\SERVER\homes\user.
+Choose on the scroll list the letter associated to the user's home
+directory.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Domain</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Select the domain where the user's desktop exists</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Script path</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the user's logon script</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profile path</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path to the user profile</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node24.html b/gosa-core/doc/core/en/html/users/node24.html
new file mode 100644
index 0000000..ce41a97
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node24.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Terminal Server</TITLE>
+<META NAME="description" CONTENT="Terminal Server">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Terminal Server</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Allow login on the terminal server
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Home directory</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path of the user's home directory in notation UNC ex:
+\\SERVER\homes\user.
+Choose on the scroll list the letter associated to the user's home
+directory.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profile path</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path to the user profile</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>Inherit client config
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Initial program</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path to the default application</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Working directory</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the working directory of the initial program</TD>
+</TR>
+</TABLE> 
+
+<P>
+
+<UL>
+<LI>Timeout settings (in minutes) :
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connection</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Put the maximum time waiting for a login</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Disconnection</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Put the maximum time waiting to disconnect</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>IDLE</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Put the maximum time waiting for a query</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>Client devices :
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connect client drives at logon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Check to connect client drives at logon</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connect client printers at logon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Check to connect client printers at logon</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Default to main client printer</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Check to define the client default printer at logon</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>Miscellaneous :
+
+<P>
+- Shadowing : <SPAN ID="hue232">?</SPAN>
+<P>
+- On broken or timed out : choose if you want disconect or reset the
+client.
+
+<P>
+- Reconnect if disconnected : choose if the reconnection must be done
+from the same client, or if it can be done from an other client.
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node25.html b/gosa-core/doc/core/en/html/users/node25.html
new file mode 100644
index 0000000..47d684a
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node25.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Access options</TITLE>
+<META NAME="description" CONTENT="Access options">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+Access options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>It's about the management of the user's password. Once or many proposal
+can be checked in but the administrator must take care to avoid conflicts.
+</LI>
+<LI>The area on the right must be filled by the names of clients on which
+the user can logon. The administrator must use the button <SPAN  CLASS="textit">Add</SPAN>
+to insert the clients names. The button <SPAN  CLASS="textit">Add</SPAN> give the clients
+list. Use the button <SPAN  CLASS="textit">Delete</SPAN> to remove clients.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node26.html b/gosa-core/doc/core/en/html/users/node26.html
new file mode 100644
index 0000000..120b0fc
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node26.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Connectivity</TITLE>
+<META NAME="description" CONTENT="Connectivity">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Connectivity</A>
+</H2>
+
+<P>
+The administrator can choose more services where the user could be
+connected.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><UL>
+<LI><UL>
+<LI><A NAME="tex2html349"
+  HREF="node27.html">Proxy account</A>
+<LI><A NAME="tex2html350"
+  HREF="node28.html">FTP account</A>
+<LI><A NAME="tex2html351"
+  HREF="node29.html">WebDAV account</A>
+<LI><A NAME="tex2html352"
+  HREF="node30.html">PHPGroupware account</A>
+<LI><A NAME="tex2html353"
+  HREF="node31.html">Intranet account</A>
+</UL></UL></UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node27.html b/gosa-core/doc/core/en/html/users/node27.html
new file mode 100644
index 0000000..8dad1e2
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node27.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Proxy account</TITLE>
+<META NAME="description" CONTENT="Proxy account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016001000000000000">
+Proxy account</A>
+</H5>
+
+<P>
+If you activated the Proxy option for a user you can filter the content,
+limit access hours and restrict download/upload.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node28.html b/gosa-core/doc/core/en/html/users/node28.html
new file mode 100644
index 0000000..bae12d2
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node28.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>FTP account</TITLE>
+<META NAME="description" CONTENT="FTP account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016002000000000000">
+FTP account</A>
+</H5>
+
+<P>
+If you activated the FTP option, you can fix the upload and downlaod
+bandwidth, the data ratio and the quota allowed. You can also deactivate
+the FTP account.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node29.html b/gosa-core/doc/core/en/html/users/node29.html
new file mode 100644
index 0000000..b3dce88
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node29.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>WebDAV account</TITLE>
+<META NAME="description" CONTENT="WebDAV account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016003000000000000">
+WebDAV account</A>
+</H5>
+
+<P>
+If you activated the WebDAV option, the user will be granted access
+to the WebDAV server. 
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node3.html b/gosa-core/doc/core/en/html/users/node3.html
new file mode 100644
index 0000000..c58045d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node3.html
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Personal information</TITLE>
+<META NAME="description" CONTENT="Personal information">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Personal information</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Last <SPAN ID="hue53">name</SPAN><SPAN ID="hue320">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the last name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue57">First name</SPAN><SPAN ID="hue321">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the first name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue61">Login</SPAN><SPAN ID="hue322">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the login name</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Personnal title</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the personnal (Mister, Miss, Madam)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Academic title</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the academic title</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Date of birth</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Click on the <SPAN  CLASS="textit">set</SPAN> button to make a scroll list appear</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Sex</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Preferred Language</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Choice of the deparment. (the creation of the department is made with
+the <SPAN  CLASS="textbf"><SPAN ID="hue66">department</SPAN></SPAN> button on the left menu
+in the administration part.).</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Address</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the personnal address of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Private phone</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the private number in the national or international way. (keep
+in mind to make the same for all users)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Homepage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the url of the user homepage</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Password storage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Certificates</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue68">Click on the button</SPAN> <SPAN ID="hue324"><SPAN  CLASS="textit">Edits
+certificates</SPAN></SPAN><SPAN ID="hue72">. GOsa will let you import three type
+of certificates. To save click on</SPAN> <SPAN ID="hue325"><SPAN  CLASS="textit">finish</SPAN></SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kerberos</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue76">Click on the button</SPAN> <SPAN ID="hue326"><SPAN  CLASS="textit">Edit
+properties</SPAN></SPAN><SPAN ID="hue80">.</SPAN></TD>
+</TR>
+</TABLE>
+<P>
+<BR>
+
+
+<P>
+You can if you wisch add a picture of the user by clicking on the
+button <SPAN  CLASS="textit">changer la photo</SPAN>. 
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node30.html b/gosa-core/doc/core/en/html/users/node30.html
new file mode 100644
index 0000000..cc65bce
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node30.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHPGroupware account</TITLE>
+<META NAME="description" CONTENT="PHPGroupware account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016004000000000000">
+PHPGroupware account</A>
+</H5>
+
+<P>
+If you activated the PHPGroupware option, the user will be granted
+access to the PHPGroupware software.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node31.html b/gosa-core/doc/core/en/html/users/node31.html
new file mode 100644
index 0000000..2fde9ec
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node31.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Intranet account</TITLE>
+<META NAME="description" CONTENT="Intranet account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016005000000000000">
+Intranet account</A>
+</H5>
+
+<P>
+If you activated the Intranet option, the user will access Intranet
+server.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">PPTP account</SPAN>
+
+<P>
+If you activated the PPTP option, the user will access server PPTP.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">PHPScheduleit account</SPAN>
+
+<P>
+If you activated the PHPScheduleit option, the user will access PHPScheduleIt
+software.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">GLPI account</SPAN>
+
+<P>
+If you activated the GLPI option, the user will access GLPI software.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node32.html b/gosa-core/doc/core/en/html/users/node32.html
new file mode 100644
index 0000000..deafc3d
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node32.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax</TITLE>
+<META NAME="description" CONTENT="Fax">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Fax</A>
+</H2>
+
+<P>
+To create a fax account for an user click on the button <SPAN  CLASS="textit">Create
+a Fax account.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html412"
+  HREF="node33.html">Generic</A>
+<LI><A NAME="tex2html413"
+  HREF="node34.html">Delivery methods</A>
+<LI><A NAME="tex2html414"
+  HREF="node35.html">Alternate fax numbers</A>
+<LI><A NAME="tex2html415"
+  HREF="node36.html">Blocklists</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node33.html b/gosa-core/doc/core/en/html/users/node33.html
new file mode 100644
index 0000000..16a9adb
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node33.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax<SPAN ID="hue344">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the fax number of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Language</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Delivery format</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node34.html b/gosa-core/doc/core/en/html/users/node34.html
new file mode 100644
index 0000000..fd5ee22
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node34.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Delivery methods</TITLE>
+<META NAME="description" CONTENT="Delivery methods">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017200000000000000">
+Delivery methods</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Temporary disable fax usage : forbid the use of the fax for an user.
+</LI>
+<LI>Deliver fax as mail to : send fax on mail distribution format to the
+user's mailbox.
+</LI>
+<LI>Deliver fax to printer : send fax to a printer.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node35.html b/gosa-core/doc/core/en/html/users/node35.html
new file mode 100644
index 0000000..e4d4cdd
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node35.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternate fax numbers</TITLE>
+<META NAME="description" CONTENT="Alternate fax numbers">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017300000000000000">
+Alternate fax numbers</A>
+</H3>
+
+<P>
+The administrator can complete the fax configuration with more than
+one fax number. Use the buttons <SPAN  CLASS="textit">Add</SPAN>, <SPAN  CLASS="textit">Add local</SPAN> to
+fill the area.
+
+<P>
+
+<UL>
+<LI>The <SPAN  CLASS="textit">Add local</SPAN> button is used to choose among the local fax. 
+</LI>
+<LI>The <SPAN  CLASS="textit">Add</SPAN> button allow external fax numbers. 
+</LI>
+</UL>
+Use the button <SPAN  CLASS="textit">Delete</SPAN> to remove fax numbers.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node36.html b/gosa-core/doc/core/en/html/users/node36.html
new file mode 100644
index 0000000..fbfcb84
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node36.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Blocklists</TITLE>
+<META NAME="description" CONTENT="Blocklists">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017400000000000000">
+Blocklists</A>
+</H3>
+
+<P>
+The fax is today frequently use to deliver advertising messages. Many
+of them are spams. To avoid those messages, the administrator can
+create a blocklist for incoming and outgoing fax.
+
+<P>
+When clicking on the button <SPAN  CLASS="textit">Edit</SPAN> at the left side appear the
+blocked numbers/lists linked to the user and at the right side the
+predefined blocklist.
+
+<P>
+Select one or many lists at the right side and click on <SPAN  CLASS="textit">Add
+the list to the blocklists</SPAN> use at vous d�sirez utiliser dans la liste
+de droite et cliquer sur <SPAN  CLASS="textit">Ajouter � la liste rouge</SPAN> pour l'activer.
+<SPAN ID="hue287">???</SPAN>
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node37.html b/gosa-core/doc/core/en/html/users/node37.html
new file mode 100644
index 0000000..6b2e8d1
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node37.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone</TITLE>
+<META NAME="description" CONTENT="Phone">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00018000000000000000">
+Phone</A>
+</H2>
+
+<P>
+To activate the phone account for an user click on the button <SPAN  CLASS="textit">Create
+a phone account</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html464"
+  HREF="node38.html">Phone numbers</A>
+<LI><A NAME="tex2html465"
+  HREF="node39.html">Telephone hardware</A>
+<LI><A NAME="tex2html466"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node38.html b/gosa-core/doc/core/en/html/users/node38.html
new file mode 100644
index 0000000..7f314f1
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node38.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone numbers</TITLE>
+<META NAME="description" CONTENT="Phone numbers">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018100000000000000">
+Phone numbers</A>
+</H3>
+
+<P>
+Insert one or many phone numbers for the user by clicking on the button
+<SPAN  CLASS="textit">A</SPAN><SPAN  CLASS="textit">dd</SPAN>. 
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node39.html b/gosa-core/doc/core/en/html/users/node39.html
new file mode 100644
index 0000000..9118942
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node39.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telephone hardware</TITLE>
+<META NAME="description" CONTENT="Telephone hardware">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018200000000000000">
+Telephone hardware</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telephone</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make your choice on the scroll list</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>VoicemailPIN<SPAN ID="hue346">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue302">Insert the PIN code of the user to reach his voicemail</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Phone PIN<SPAN ID="hue347">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue306">Insert the PIN code of the user to unlock his phone</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node4.html b/gosa-core/doc/core/en/html/users/node4.html
new file mode 100644
index 0000000..0628d30
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node4.html
@@ -0,0 +1,109 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Organizational information</TITLE>
+<META NAME="description" CONTENT="Organizational information">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Organizational information</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+Organization </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the organization's name </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Departement </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the departement's name that the user is attached </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Departement's number </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the departement's number</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Employee's number </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the employee's number</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Employee's type </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert his range in the organization</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Room's number </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the room's number of the employee</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the phone number of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Mobile </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the mobile's number of the employee</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Pager </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the page number of the employee</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Fax </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the fax number of the employee</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Location </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the localisation of employee's office</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+State </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the name of the state where the organization is located</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Address </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Insert the address of the organization</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node40.html b/gosa-core/doc/core/en/html/users/node40.html
new file mode 100644
index 0000000..e3cfe1e
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node40.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone macro</TITLE>
+<META NAME="description" CONTENT="Phone macro">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018300000000000000">
+Phone macro</A>
+</H3>
+
+<P>
+Selection of phone macro for the user's telephone.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node41.html b/gosa-core/doc/core/en/html/users/node41.html
new file mode 100644
index 0000000..9d709f2
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node41.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>References</TITLE>
+<META NAME="description" CONTENT="References">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00019000000000000000">
+References</A>
+</H2>
+
+<P>
+The references present the user's properties. It gives the administrator
+a short summary of the user's properties.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node42.html b/gosa-core/doc/core/en/html/users/node42.html
new file mode 100644
index 0000000..c58dadf
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node42.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">USERS ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/users/ users.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node5.html b/gosa-core/doc/core/en/html/users/node5.html
new file mode 100644
index 0000000..b340715
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node5.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Unix</TITLE>
+<META NAME="description" CONTENT="Unix">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Unix</A>
+</H2>
+
+<P>
+To activate an Unix account for one user, you have to click on the
+button <SPAN  CLASS="textit">add a posix account.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html130"
+  HREF="node6.html">Generic</A>
+<LI><A NAME="tex2html131"
+  HREF="node7.html">Group membership</A>
+<LI><A NAME="tex2html132"
+  HREF="node8.html">Account</A>
+<LI><A NAME="tex2html133"
+  HREF="node9.html">System trust</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node6.html b/gosa-core/doc/core/en/html/users/node6.html
new file mode 100644
index 0000000..95bd2d2
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node6.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Generic</TITLE>
+<META NAME="description" CONTENT="Generic">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Generic</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Home directory<SPAN ID="hue329">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Insert the path to the home directory of the user</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Shell</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Make the choice on the scroll list of the kind of shell used</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Primary group</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the primary group wich one the user is attached. (For the
+creation of a group, go to the <SPAN  CLASS="textbf">Administration</SPAN> part <SPAN ID="hue103">and
+click on the button</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue105">Groups</SPAN></SPAN>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Status</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention if the account is activated or not</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Force UID/GID</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Check if you want to force UID/GID of the user to a certain value</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node7.html b/gosa-core/doc/core/en/html/users/node7.html
new file mode 100644
index 0000000..017c884
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node7.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Group membership</TITLE>
+<META NAME="description" CONTENT="Group membership">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Group membership</A>
+</H3>
+
+<P>
+Use the buttons <SPAN  CLASS="textit">Add</SPAN> and <SPAN  CLASS="textit">Delete</SPAN> to insert or to remove
+groups in the empty area. The button <SPAN  CLASS="textit">Add</SPAN> give the group list
+created by the administrator. The user could be attached at one or
+many groups.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node8.html b/gosa-core/doc/core/en/html/users/node8.html
new file mode 100644
index 0000000..3b28718
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node8.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Account</TITLE>
+<META NAME="description" CONTENT="Account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012300000000000000">
+Account</A>
+</H3>
+
+<P>
+It's about the management of the user's password. Many proposals could
+be checked but the administrator should avoid conflicting options.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/node9.html b/gosa-core/doc/core/en/html/users/node9.html
new file mode 100644
index 0000000..2962e3a
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/node9.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>System trust</TITLE>
+<META NAME="description" CONTENT="System trust">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012400000000000000">
+System trust</A>
+</H3>
+
+<P>
+The trust system is used to control access by the user at differents
+systems, devices, ... 
+
+<P>
+The trust system can :
+
+<P>
+
+<UL>
+<LI>be deactivated, 
+</LI>
+<LI>allow full access,
+</LI>
+<LI>allow the access to hosts : 
+
+<P>
+- Use the button <SPAN  CLASS="textit">Add</SPAN> to select the hosts, 
+
+<P>
+- Use the button <SPAN  CLASS="textit">Delete</SPAN> to remove hosts.
+
+<P>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/html/users/rocket.png b/gosa-core/doc/core/en/html/users/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/rocket.png differ
diff --git a/gosa-core/doc/core/en/html/users/search.png b/gosa-core/doc/core/en/html/users/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/html/users/search.png differ
diff --git a/gosa-core/doc/core/en/html/users/users.css b/gosa-core/doc/core/en/html/users/users.css
new file mode 100644
index 0000000..2391685
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/users.css
@@ -0,0 +1,78 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue103		{ color: #000000;  }
+#hue105		{ color: #0000ff;  }
+#hue143		{ color: #000000;  }
+#hue157		{ color: #000000;  }
+#hue161		{ color: #000000;  }
+#hue163		{ color: #000000;  }
+#hue167		{ color: #000000;  }
+#hue169		{ color: #000000;  }
+#hue173		{ color: #000000;  }
+#hue175		{ color: #000000;  }
+#hue179		{ color: #000000;  }
+#hue232		{ color: #ff0000;  }
+#hue25		{ color: #0000ff;  }
+#hue28		{ color: #000000;  }
+#hue287		{ color: #ff0000;  }
+#hue302		{ color: #000000;  }
+#hue306		{ color: #000000;  }
+#hue318		{ color: #000000;  }
+#hue320		{ color: #ff0000;  }
+#hue321		{ color: #ff0000;  }
+#hue322		{ color: #ff0000;  }
+#hue324		{ color: #000000;  }
+#hue325		{ color: #000000;  }
+#hue326		{ color: #000000;  }
+#hue329		{ color: #ff0000;  }
+#hue333		{ color: #ff0000;  }
+#hue335		{ color: #000000;  }
+#hue336		{ color: #000000;  }
+#hue337		{ color: #000000;  }
+#hue344		{ color: #ff0000;  }
+#hue346		{ color: #ff0000;  }
+#hue347		{ color: #ff0000;  }
+#hue36		{ color: #000000;  }
+#hue38		{ color: #000000;  }
+#hue40		{ color: #000000;  }
+#hue53		{ color: #000000;  }
+#hue57		{ color: #000000;  }
+#hue61		{ color: #000000;  }
+#hue66		{ color: #0000ff;  }
+#hue68		{ color: #000000;  }
+#hue72		{ color: #000000;  }
+#hue76		{ color: #000000;  }
+#hue80		{ color: #000000;  }
diff --git a/gosa-core/doc/core/en/html/users/users.html b/gosa-core/doc/core/en/html/users/users.html
new file mode 100644
index 0000000..278910f
--- /dev/null
+++ b/gosa-core/doc/core/en/html/users/users.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>USERS ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="USERS ADMINISTRATION">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">USERS ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">List of users</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Generic</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Personal information</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Organizational information</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Generic</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Group membership</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Account</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">System trust</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Environment</A>
+<UL>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Printer</A>
+</UL>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Generic</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Mail options</A>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Advanced mail options</A>
+</UL>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Generic</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Terminal Server</A>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Access options</A>
+</UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Connectivity</A>
+<LI><A NAME="tex2html29"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html30"
+  HREF="node33.html">Generic</A>
+<LI><A NAME="tex2html31"
+  HREF="node34.html">Delivery methods</A>
+<LI><A NAME="tex2html32"
+  HREF="node35.html">Alternate fax numbers</A>
+<LI><A NAME="tex2html33"
+  HREF="node36.html">Blocklists</A>
+</UL>
+<LI><A NAME="tex2html34"
+  HREF="node37.html">Phone</A>
+<UL>
+<LI><A NAME="tex2html35"
+  HREF="node38.html">Phone numbers</A>
+<LI><A NAME="tex2html36"
+  HREF="node39.html">Telephone hardware</A>
+<LI><A NAME="tex2html37"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node41.html">References</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node42.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/en/lyx-source/applications.lyx b/gosa-core/doc/core/en/lyx-source/applications.lyx
new file mode 100644
index 0000000..d3b3293
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/applications.lyx
@@ -0,0 +1,464 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+APPLICATIONS ADMINISTRATION
+\layout Section
+
+List of applications
+\layout Standard
+
+The administrator can configure an application when clicking on the 
+\series bold 
+\color blue
+Applications
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Application 
+\shape smallcaps 
+\emph on 
+Management
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided on two columns :
+\layout Standard
+
+- The first column is used to display the list of applications, 
+\layout Standard
+
+- The second column contains icons which are the actions you can execute
+ on applications.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Application Management
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of applications of the
+ organization.
+\layout Standard
+
+It's possible to modify the display of applications by using the table called
+ Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all applications;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the applications starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all applications starting with this number.
+\end_deeper 
+\layout Itemize
+
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the application searched and click on the
+ 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+\added_space_top medskip 
+To configure an application, the administrator click on 
+\begin_inset Graphics
+	filename images/list_new_app.png
+
+\end_inset 
+
+.
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the application.
+\layout Standard
+
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Application
+\color red
+ 
+\color black
+name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the name of the application
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Display name 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Display the name of the application
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Execute
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the name of the aplication to execute with his parameter
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert a description, a commentary on the application
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list to select the department where the applicati
+on exist
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Icon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select your picture in the arborescence of your system and then click on
+ the 
+\emph on 
+Update
+\emph default 
+ button.
+ The icon is linked at the application.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+
+Options
+\layout Itemize
+
+Only executable for members 
+\begin_deeper 
+\layout Standard
+
+Check if you want the application to be executed only by members of a same
+ group 
+\end_deeper 
+\layout Itemize
+
+Replace user configuration on startup
+\begin_deeper 
+\layout Standard
+
+Reinstall the default configuration at each startup
+\end_deeper 
+\layout Itemize
+
+Place an icon on members desktop
+\begin_deeper 
+\layout Standard
+
+Check if you want to make the icon appear on members desk
+\end_deeper 
+\layout Itemize
+
+Place entry in members startmenu
+\begin_deeper 
+\layout Standard
+
+Create an entry for the application in the startmenu
+\end_deeper 
+\layout Itemize
+
+Place entry in members launch bar
+\begin_deeper 
+\layout Standard
+
+Create an entry for the application in the launch bar
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Script
+\layout Standard
+
+?
+\layout Subsection
+\added_space_top bigskip 
+Options
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Variable
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Variable name
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Default value
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Default value associated to the variable
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+\added_space_top medskip 
+Use the 
+\shape italic 
+Add option
+\shape default 
+ button to add a new variable and the 
+\shape italic 
+Remove
+\shape default 
+ button to delete a variable.
+\layout Subsection
+
+References
+\layout Standard
+
+The references show the existing relations between applications.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/blocklists.lyx b/gosa-core/doc/core/en/lyx-source/blocklists.lyx
new file mode 100644
index 0000000..e16ef2c
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/blocklists.lyx
@@ -0,0 +1,319 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+BLOCKLIST ADMINISTRATION
+\layout Section
+
+List of blocklists
+\layout Standard
+
+The administrator can configure a blocklist when clicking on the 
+\series bold 
+\color blue
+FAX Blocklists
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Blocklist 
+\shape smallcaps 
+\emph on 
+Management
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided on two columns :
+\layout Standard
+
+- The first column is used to display the list of blocklist, 
+\layout Standard
+
+- The second column contains icons which are the actions you can execute
+ on blocklist.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Blocklist Management
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of blocklist of the organizat
+ion.
+\layout Standard
+
+It's possible to modify the display of blocklist by using the table called
+ Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all blocklists;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the blocklists starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all blocklists starting with this number.
+\end_deeper 
+\layout Itemize
+
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the application searched and click on the
+ 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+\added_space_top medskip 
+To create and configure blocklists, the administrator click on 
+\begin_inset Graphics
+	filename images/list_new_blocklist.png
+
+\end_inset 
+
+.
+\layout Standard
+
+The administrator uses tabs to configure the blocklist.
+\layout Standard
+
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+List
+\color red
+ 
+\color black
+name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the blocklist name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make a choice on the scroll list to select the department where the blocklist
+ existes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Type
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make a choice on the scroll list if blocklists work when sending or receiving.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Describe the use of the blocklist
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Blocked numbers
+\layout Standard
+
+The administrator must insert fax number in the bottom field.
+ The fax number will be owned by the new blocklist.
+ Use the 
+\emph on 
+Add
+\emph default 
+ and 
+\emph on 
+Delete
+\emph default 
+ buttons to create blocklists.
+\layout Subsection
+\added_space_top bigskip 
+Information
+\layout Standard
+
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/conference.lyx b/gosa-core/doc/core/en/lyx-source/conference.lyx
new file mode 100644
index 0000000..6200ab1
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/conference.lyx
@@ -0,0 +1,406 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+PHONE CONFERENCES ADMINISTRATION
+\layout Section
+
+List of conference room
+\layout Standard
+
+The administrator can configure a phone conferences when clicking on the
+ 
+\series bold 
+\color blue
+Phone conferences
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Conference 
+\shape smallcaps 
+\emph on 
+management
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided on four columns :
+\layout Standard
+
+- The first column is used to display _, 
+\layout Standard
+
+- The second _
+\layout Standard
+
+- The third 
+\layout Standard
+
+- The last column contains icons which are the actions you can execute on
+ _.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Conference management
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of _ of the organization.
+\layout Standard
+
+It's possible to modify the display of _ by using the table called Filters
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all _;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the _ starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all _ starting with this number.
+\end_deeper 
+\layout Itemize
+
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the _ searched and click on the 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+\added_space_top medskip 
+To create and configure _, the administrator click on (
+\begin_inset Graphics
+	filename images/select_new_component.png
+
+\end_inset 
+
+).
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the phone conference.
+ 
+\layout Standard
+
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Subsubsection
+
+Properties
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Conference name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the conference name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Type
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make a choice on the scroll list to select type
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make a choice on the scroll list to select the department where the phone
+ conference existes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description about the use of the phone conference
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Lifetime (in days)
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention how many time the phone conference runs
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Phone number
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the phone number of the phone conference
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Options
+\layout Itemize
+
+Preset PIN
+\begin_deeper 
+\layout Standard
+
+Check if you want a preset code to be used in this conference.
+\end_deeper 
+\layout Itemize
+
+Record conference
+\begin_deeper 
+\layout Standard
+
+Check if you want to record the phone conference.
+\end_deeper 
+\layout Itemize
+
+Play music on hold
+\begin_deeper 
+\layout Standard
+
+Check if you want an on hold music.
+\end_deeper 
+\layout Itemize
+
+Activate session menu
+\begin_deeper 
+\layout Standard
+
+Check here if you want a session menu
+\end_deeper 
+\layout Itemize
+
+Announce users joining or leaving the conference
+\begin_deeper 
+\layout Standard
+
+Check if you want to notice to others a participant is coming or leaving
+ the phone conference.
+ 
+\end_deeper 
+\layout Itemize
+
+Count users
+\begin_deeper 
+\layout Standard
+
+Check if you want to count participants.
+ 
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references show the existing relations between phone conferences.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/departments.lyx b/gosa-core/doc/core/en/lyx-source/departments.lyx
new file mode 100644
index 0000000..c43e769
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/departments.lyx
@@ -0,0 +1,414 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+DEPARTMENT ADMINISTRATION
+\layout Section
+
+List of departments
+\layout Standard
+
+The administrator can create or modify a department or to access informations
+ when clicking on the 
+\series bold 
+\color blue
+Departements
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Department 
+\shape smallcaps 
+\emph on 
+Management
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided on two columns :
+\layout Standard
+
+- The first column is used to display the names of department, 
+\layout Standard
+
+- The second column contains icons which are the actions you can execute
+ on departments.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Department Management
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of deparments of the
+ organization.
+\layout Standard
+
+It's possible to modify the diplay of departments by using the table called
+ Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all departments;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the departments starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all departments starting with this number.
+\end_deeper 
+\layout Itemize
+\added_space_bottom medskip 
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the department searched and click on the
+ 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+
+To create a department click on 
+\begin_inset Graphics
+	filename images/list_new_department.png
+
+\end_inset 
+
+.
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the department.
+ 
+\layout Standard
+
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Subsubsection
+
+Properties
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name of department
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the name of the department to be created
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert a description, a commentary on the department
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Category
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Location
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+State
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert State wher is the department
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Location
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the place where is the department
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Address
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the address of department
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Phone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the central phone of the department
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Intsert the central fax of the department
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references show the existing relations between department.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/faxreports.lyx b/gosa-core/doc/core/en/lyx-source/faxreports.lyx
new file mode 100644
index 0000000..ce4a376
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/faxreports.lyx
@@ -0,0 +1,68 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADDONS
+\layout Section
+
+Fax Reports
+\layout Subsection
+
+Filter 
+\color black
+
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/fonreports.lyx b/gosa-core/doc/core/en/lyx-source/fonreports.lyx
new file mode 100644
index 0000000..6c391b3
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/fonreports.lyx
@@ -0,0 +1,68 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADDONS
+\layout Section
+
+Phone Reports
+\layout Subsection
+
+Filter 
+\color black
+
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/groups.lyx b/gosa-core/doc/core/en/lyx-source/groups.lyx
new file mode 100644
index 0000000..ddbcb93
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/groups.lyx
@@ -0,0 +1,633 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+GROUP ADMINISTRATION
+\layout Section
+
+List of groups
+\layout Standard
+
+The administrator can create, modify or access the group informations when
+ clicking on the 
+\series bold 
+\color blue
+Group
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Group 
+\shape smallcaps 
+\emph on 
+Administration
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided in three columns :
+\layout Standard
+
+- The first column is used to display the list of groups or department,
+ 
+\layout Standard
+
+- The two last columns contains icons which are shortcuts to the settings
+ of each goup and the actions you can execute on them.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Groups Administration
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of groupes of the organizatio
+n.
+ 
+\layout Standard
+
+
+\color black
+Like for the users, it is possible to modify the display of groups by using
+ the table called Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+ 
+\layout Standard
+
+The administrator can do a nominal research and/or on the properties of
+ group :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all groups;
+\layout Standard
+
+
+\color black
+- Click on a lettre to show all the groups starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all groups starting with this number.
+\end_deeper 
+\layout Itemize
+
+To search on groups properties you must :
+\begin_deeper 
+\layout Standard
+
+- Check one or many propositions; 
+\end_deeper 
+\layout Itemize
+
+To search a name with a letter :
+\begin_deeper 
+\layout Standard
+
+- fill the first field with a letter followed by an asterisk, click on the
+ button 
+\emph on 
+Apply filter
+\emph default 
+, all the names starting with this letter will be displayed,
+\layout Standard
+
+- fill the second field with a letter and an asterisk, click on the button
+ 
+\emph on 
+Apply filter
+\emph default 
+, all the names containing this letter will be displayed.
+\end_deeper 
+\layout Standard
+
+To create a group click on 
+\begin_inset Graphics
+	filename images/list_new_group.png
+
+\end_inset 
+
+.
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the group.
+ 
+\layout Standard
+\added_space_bottom medskip 
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by a red asterisk must be filled.
+\layout Standard
+
+In the upper right corner you have the full dn of the group currently edited.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Itemize
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groupe
+\color red
+ 
+\color black
+name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the group name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert a description, a commentary on the group
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Force GID : Force the group to use the number mentionned in the field
+\layout Itemize
+
+Group / Domain Samba : Put members on a Samba group and a Samba domain 
+\layout Itemize
+
+Members are in a phone pickup group : Check to put members in a phone pickup
+ group
+\layout Itemize
+
+Members are in a nagios group : Check to put members in nagios group
+\layout Standard
+
+The administrator insert in the area different members of a group.
+ He must use the 
+\emph on 
+Add
+\emph default 
+ button to choose in the list of users.
+ To modify a group he must use the 
+\emph on 
+Delete
+\emph default 
+ button.
+\layout Subsection
+\added_space_top bigskip 
+Environment
+\layout Standard
+
+To activate the environment extension click on 
+\shape italic 
+Add environment
+\shape default 
+ 
+\emph on 
+extension
+\emph default 
+.
+\layout Subsubsection
+
+Profiles
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profile
+\layout Subsubsection
+\added_space_top medskip 
+Logon scripts
+\layout Subsubsection
+\added_space_top medskip 
+Attach share
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug devices
+\layout Subsubsection
+\added_space_top medskip 
+Imprimante
+\layout Subsection
+\added_space_top bigskip 
+Applications
+\layout Standard
+
+To activate the extension Applications click on the button 
+\shape italic 
+Create applications
+\shape default 
+.
+\layout Standard
+
+The applications are applications existing in the organization.
+ 
+\color red
+???
+\color default
+ 
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+To activate a mail account click on the 
+\shape italic 
+Create mail
+\shape default 
+ 
+\emph on 
+account
+\emph default 
+.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Primary address
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Insert group primary address
+\color red
+ 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Insert server name where the group mailbox reside
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota usage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Mention if you want establish a quantity quota on the incoming and outgoing
+ mail
+\color red
+ 
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota size
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Mention the Quota size
+\color red
+ 
+\color black
+in KB
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternative addresses
+\layout Standard
+
+A mail could be redirected to one or many addresses.
+ Use buttons 
+\emph on 
+Add
+\emph default 
+ and 
+\emph on 
+Delete
+\emph default 
+ to manage aliases.
+\layout Subsubsection
+\added_space_top medskip 
+IMAP shared folders
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Default permission
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice in the scroll list to select the type of default permission
+ for the group IMAP folder
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Member permision
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice in the scroll list of the type of permission allowed to
+ the members to access the IMAP folder
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+The administrator can add other email adresses that can have access to the
+ IMAP folder
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Forward messages to non group members
+\layout Standard
+
+Users can recieve messages from a group without being a member of this group.
+ You have to insert the email addresses of users in the field that precede
+ buttons 
+\emph on 
+Add
+\emph default 
+, 
+\emph on 
+Add local
+\emph default 
+ and 
+\emph on 
+Delete.
+ 
+\emph default 
+The
+\emph on 
+ Add local 
+\emph default 
+button will show you addresses already saved in GOsa.
+\layout Subsection
+\added_space_top bigskip 
+ACL
+\layout Standard
+
+This part allow the administrator to configure the user rights to the differents
+ parts of GOsa.
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references show the existing relations between objects.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/images/action.png b/gosa-core/doc/core/en/lyx-source/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/action.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/addr_company.png b/gosa-core/doc/core/en/lyx-source/images/addr_company.png
new file mode 100644
index 0000000..80a173d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/addr_company.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/addr_home.png b/gosa-core/doc/core/en/lyx-source/images/addr_home.png
new file mode 100644
index 0000000..14ee484
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/addr_home.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/addr_personal.png b/gosa-core/doc/core/en/lyx-source/images/addr_personal.png
new file mode 100644
index 0000000..ecf17bc
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/addr_personal.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/addressbook.png b/gosa-core/doc/core/en/lyx-source/images/addressbook.png
new file mode 100644
index 0000000..08c72ef
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/addressbook.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/alternatemail.png b/gosa-core/doc/core/en/lyx-source/images/alternatemail.png
new file mode 100644
index 0000000..62b0534
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/alternatemail.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/application.png b/gosa-core/doc/core/en/lyx-source/images/application.png
new file mode 100644
index 0000000..671fc7d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/application.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/back.png b/gosa-core/doc/core/en/lyx-source/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/back.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/banana.png b/gosa-core/doc/core/en/lyx-source/images/banana.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/banana.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/blocklists.png b/gosa-core/doc/core/en/lyx-source/images/blocklists.png
new file mode 100644
index 0000000..8f252a4
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/blocklists.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/button_cancel.png b/gosa-core/doc/core/en/lyx-source/images/button_cancel.png
new file mode 100644
index 0000000..9691957
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/button_cancel.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/certs.png b/gosa-core/doc/core/en/lyx-source/images/certs.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/certs.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/closedlock.png b/gosa-core/doc/core/en/lyx-source/images/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/closedlock.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/conference.png b/gosa-core/doc/core/en/lyx-source/images/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/conference.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/crossref.png b/gosa-core/doc/core/en/lyx-source/images/crossref.png
new file mode 100644
index 0000000..ec2ed78
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/crossref.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/default.jpg b/gosa-core/doc/core/en/lyx-source/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/default.jpg differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/default_icon.png b/gosa-core/doc/core/en/lyx-source/images/default_icon.png
new file mode 100644
index 0000000..58d50d3
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/default_icon.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/department.png b/gosa-core/doc/core/en/lyx-source/images/department.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/department.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/dhcp.png b/gosa-core/doc/core/en/lyx-source/images/dhcp.png
new file mode 100644
index 0000000..1360b6f
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/dhcp.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/display.png b/gosa-core/doc/core/en/lyx-source/images/display.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/display.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/dns.png b/gosa-core/doc/core/en/lyx-source/images/dns.png
new file mode 100644
index 0000000..6a55d72
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/dns.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/dtree.png b/gosa-core/doc/core/en/lyx-source/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/dtree.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/edit.png b/gosa-core/doc/core/en/lyx-source/images/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/edit.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/editcopy.png b/gosa-core/doc/core/en/lyx-source/images/editcopy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/editcopy.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/editdelete.png b/gosa-core/doc/core/en/lyx-source/images/editdelete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/editdelete.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/editpaste.png b/gosa-core/doc/core/en/lyx-source/images/editpaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/editpaste.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/edittrash.png b/gosa-core/doc/core/en/lyx-source/images/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/edittrash.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/email.png b/gosa-core/doc/core/en/lyx-source/images/email.png
new file mode 100644
index 0000000..d53e620
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/email.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/empty.png b/gosa-core/doc/core/en/lyx-source/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/empty.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/encrypted.png b/gosa-core/doc/core/en/lyx-source/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/encrypted.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/envelope.png b/gosa-core/doc/core/en/lyx-source/images/envelope.png
new file mode 100644
index 0000000..6053eed
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/envelope.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/expand.png b/gosa-core/doc/core/en/lyx-source/images/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/expand.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/false.png b/gosa-core/doc/core/en/lyx-source/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/false.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/fax.png b/gosa-core/doc/core/en/lyx-source/images/fax.png
new file mode 100644
index 0000000..3f58c36
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/fax.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/fax_small.png b/gosa-core/doc/core/en/lyx-source/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/fax_small.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/filesaveas.png b/gosa-core/doc/core/en/lyx-source/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/filesaveas.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/flag.png b/gosa-core/doc/core/en/lyx-source/images/flag.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/flag.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/folder.png b/gosa-core/doc/core/en/lyx-source/images/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/folder.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/forward.png b/gosa-core/doc/core/en/lyx-source/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/forward.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/ftp.png b/gosa-core/doc/core/en/lyx-source/images/ftp.png
new file mode 100644
index 0000000..e5b5691
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/ftp.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/fullfolder.png b/gosa-core/doc/core/en/lyx-source/images/fullfolder.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/fullfolder.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/group.png b/gosa-core/doc/core/en/lyx-source/images/group.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/group.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/hardware.png b/gosa-core/doc/core/en/lyx-source/images/hardware.png
new file mode 100644
index 0000000..0ac401c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/hardware.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/hdd_linux_unmount.png b/gosa-core/doc/core/en/lyx-source/images/hdd_linux_unmount.png
new file mode 100644
index 0000000..1b2e065
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/hdd_linux_unmount.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/head.png b/gosa-core/doc/core/en/lyx-source/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/head.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/help.png b/gosa-core/doc/core/en/lyx-source/images/help.png
new file mode 100644
index 0000000..9fe7652
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/help.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/house.png b/gosa-core/doc/core/en/lyx-source/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/house.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/img1.png b/gosa-core/doc/core/en/lyx-source/images/img1.png
new file mode 100644
index 0000000..0388e82
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/img1.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/info.png b/gosa-core/doc/core/en/lyx-source/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/info.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/info_small.png b/gosa-core/doc/core/en/lyx-source/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/info_small.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/keyboard.png b/gosa-core/doc/core/en/lyx-source/images/keyboard.png
new file mode 100644
index 0000000..cdc0306
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/keyboard.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/lamp.png b/gosa-core/doc/core/en/lyx-source/images/lamp.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/lamp.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/launch.png b/gosa-core/doc/core/en/lyx-source/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/launch.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/ldapserver.png b/gosa-core/doc/core/en/lyx-source/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/ldapserver.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/ldif.png b/gosa-core/doc/core/en/lyx-source/images/ldif.png
new file mode 100644
index 0000000..ca164a1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/ldif.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_back.png b/gosa-core/doc/core/en/lyx-source/images/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_back.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_blocklist.png b/gosa-core/doc/core/en/lyx-source/images/list_blocklist.png
new file mode 100644
index 0000000..d89fd1d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_blocklist.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_home.png b/gosa-core/doc/core/en/lyx-source/images/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_home.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_macro.png b/gosa-core/doc/core/en/lyx-source/images/list_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_macro.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new.png b/gosa-core/doc/core/en/lyx-source/images/list_new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_app.png b/gosa-core/doc/core/en/lyx-source/images/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_app.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_blocklist.png b/gosa-core/doc/core/en/lyx-source/images/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_department.png b/gosa-core/doc/core/en/lyx-source/images/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_department.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_group.png b/gosa-core/doc/core/en/lyx-source/images/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_group.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_macro.png b/gosa-core/doc/core/en/lyx-source/images/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_macro.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_ogroup.png b/gosa-core/doc/core/en/lyx-source/images/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_new_user.png b/gosa-core/doc/core/en/lyx-source/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_new_user.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_ogroup.png b/gosa-core/doc/core/en/lyx-source/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_ogroup.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_password.png b/gosa-core/doc/core/en/lyx-source/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_password.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_root.png b/gosa-core/doc/core/en/lyx-source/images/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_root.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_seperator.png b/gosa-core/doc/core/en/lyx-source/images/list_seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_seperator.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_submit.png b/gosa-core/doc/core/en/lyx-source/images/list_submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_submit.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/list_up.png b/gosa-core/doc/core/en/lyx-source/images/list_up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/list_up.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/log_critical.png b/gosa-core/doc/core/en/lyx-source/images/log_critical.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/log_critical.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/log_info.png b/gosa-core/doc/core/en/lyx-source/images/log_info.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/log_info.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/log_unknown.png b/gosa-core/doc/core/en/lyx-source/images/log_unknown.png
new file mode 100644
index 0000000..4ed65a9
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/log_unknown.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/log_warning.png b/gosa-core/doc/core/en/lyx-source/images/log_warning.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/log_warning.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/login.png b/gosa-core/doc/core/en/lyx-source/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/login.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/logview.png b/gosa-core/doc/core/en/lyx-source/images/logview.png
new file mode 100644
index 0000000..accbd8d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/logview.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/macros.png b/gosa-core/doc/core/en/lyx-source/images/macros.png
new file mode 100644
index 0000000..a9100e7
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/macros.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/mailto.png b/gosa-core/doc/core/en/lyx-source/images/mailto.png
new file mode 100644
index 0000000..a0bc51c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/mailto.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/members.png b/gosa-core/doc/core/en/lyx-source/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/members.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/mouse.png b/gosa-core/doc/core/en/lyx-source/images/mouse.png
new file mode 100644
index 0000000..3c0d31d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/mouse.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/network.png b/gosa-core/doc/core/en/lyx-source/images/network.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/network.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/null.gif b/gosa-core/doc/core/en/lyx-source/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/null.gif differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/ogroup.png b/gosa-core/doc/core/en/lyx-source/images/ogroup.png
new file mode 100644
index 0000000..29d351f
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/ogroup.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/openlock.png b/gosa-core/doc/core/en/lyx-source/images/openlock.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/openlock.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/password.png b/gosa-core/doc/core/en/lyx-source/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/password.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/penguin.png b/gosa-core/doc/core/en/lyx-source/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/penguin.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/personal.png b/gosa-core/doc/core/en/lyx-source/images/personal.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/personal.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/phone.png b/gosa-core/doc/core/en/lyx-source/images/phone.png
new file mode 100644
index 0000000..a301fba
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/phone.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/phonereport.png b/gosa-core/doc/core/en/lyx-source/images/phonereport.png
new file mode 100644
index 0000000..702b898
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/phonereport.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/posix.png b/gosa-core/doc/core/en/lyx-source/images/posix.png
new file mode 100644
index 0000000..e8d33ab
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/posix.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/printer.png b/gosa-core/doc/core/en/lyx-source/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/printer.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/proxy.png b/gosa-core/doc/core/en/lyx-source/images/proxy.png
new file mode 100644
index 0000000..d8cd426
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/proxy.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/reports.png b/gosa-core/doc/core/en/lyx-source/images/reports.png
new file mode 100644
index 0000000..1d47237
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/reports.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/rightarrow.png b/gosa-core/doc/core/en/lyx-source/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/rightarrow.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/rocket.png b/gosa-core/doc/core/en/lyx-source/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/rocket.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/samba.png b/gosa-core/doc/core/en/lyx-source/images/samba.png
new file mode 100644
index 0000000..861e43c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/samba.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/save.png b/gosa-core/doc/core/en/lyx-source/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/save.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/scanner.png b/gosa-core/doc/core/en/lyx-source/images/scanner.png
new file mode 100644
index 0000000..627540c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/scanner.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/search.png b/gosa-core/doc/core/en/lyx-source/images/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/search.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_application.png b/gosa-core/doc/core/en/lyx-source/images/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_application.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_component.png b/gosa-core/doc/core/en/lyx-source/images/select_component.png
new file mode 100644
index 0000000..ef289f6
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_component.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_default.png b/gosa-core/doc/core/en/lyx-source/images/select_default.png
new file mode 100644
index 0000000..83f3752
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_default.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_department.png b/gosa-core/doc/core/en/lyx-source/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_department.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_groups.png b/gosa-core/doc/core/en/lyx-source/images/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_groups.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_macro.png b/gosa-core/doc/core/en/lyx-source/images/select_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_macro.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_component.png b/gosa-core/doc/core/en/lyx-source/images/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_component.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_phone.png b/gosa-core/doc/core/en/lyx-source/images/select_new_phone.png
new file mode 100644
index 0000000..45714d1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_phone.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_printer.png b/gosa-core/doc/core/en/lyx-source/images/select_new_printer.png
new file mode 100644
index 0000000..e4618fe
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_printer.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_server.png b/gosa-core/doc/core/en/lyx-source/images/select_new_server.png
new file mode 100644
index 0000000..84f6570
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_server.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_terminal.png b/gosa-core/doc/core/en/lyx-source/images/select_new_terminal.png
new file mode 100644
index 0000000..a218480
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_terminal.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_new_workstation.png b/gosa-core/doc/core/en/lyx-source/images/select_new_workstation.png
new file mode 100644
index 0000000..8b5d4f4
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_new_workstation.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_ogroup.png b/gosa-core/doc/core/en/lyx-source/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_ogroup.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_phone.png b/gosa-core/doc/core/en/lyx-source/images/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_phone.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_phone_connected.png b/gosa-core/doc/core/en/lyx-source/images/select_phone_connected.png
new file mode 100644
index 0000000..bd8c739
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_phone_connected.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_printer.png b/gosa-core/doc/core/en/lyx-source/images/select_printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_printer.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_proxy.png b/gosa-core/doc/core/en/lyx-source/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_proxy.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_server.png b/gosa-core/doc/core/en/lyx-source/images/select_server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_server.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_template.png b/gosa-core/doc/core/en/lyx-source/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_template.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_terminal.png b/gosa-core/doc/core/en/lyx-source/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_terminal.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_user.png b/gosa-core/doc/core/en/lyx-source/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_user.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_winstation.png b/gosa-core/doc/core/en/lyx-source/images/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_winstation.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/select_workstation.png b/gosa-core/doc/core/en/lyx-source/images/select_workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/select_workstation.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/server.png b/gosa-core/doc/core/en/lyx-source/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/server.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/service.png b/gosa-core/doc/core/en/lyx-source/images/service.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/service.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/small_filter.png b/gosa-core/doc/core/en/lyx-source/images/small_filter.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/small_filter.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/sort_down.png b/gosa-core/doc/core/en/lyx-source/images/sort_down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/sort_down.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/sort_up.png b/gosa-core/doc/core/en/lyx-source/images/sort_up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/sort_up.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/sound.png b/gosa-core/doc/core/en/lyx-source/images/sound.png
new file mode 100644
index 0000000..cc030d3
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/sound.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/stop.png b/gosa-core/doc/core/en/lyx-source/images/stop.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/stop.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/system.png b/gosa-core/doc/core/en/lyx-source/images/system.png
new file mode 100644
index 0000000..c3308ee
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/system.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/terminal_small.png b/gosa-core/doc/core/en/lyx-source/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/terminal_small.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/time.png b/gosa-core/doc/core/en/lyx-source/images/time.png
new file mode 100644
index 0000000..1de43d5
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/time.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/tree.png b/gosa-core/doc/core/en/lyx-source/images/tree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/tree.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/true.png b/gosa-core/doc/core/en/lyx-source/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/true.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/user.png b/gosa-core/doc/core/en/lyx-source/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/user.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/warning.png b/gosa-core/doc/core/en/lyx-source/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/warning.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/images/zip.png b/gosa-core/doc/core/en/lyx-source/images/zip.png
new file mode 100644
index 0000000..af23ddf
Binary files /dev/null and b/gosa-core/doc/core/en/lyx-source/images/zip.png differ
diff --git a/gosa-core/doc/core/en/lyx-source/ldapmanager.lyx b/gosa-core/doc/core/en/lyx-source/ldapmanager.lyx
new file mode 100644
index 0000000..fa21e14
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/ldapmanager.lyx
@@ -0,0 +1,256 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADDONS
+\layout Section
+
+LDAP manager
+\layout Subsection
+
+Export
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export single entry
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export a single entry of the ldap tree
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export complete LDIF for
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export the complete ldap tree in one ldif file or a selected department
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top medskip 
+Excel Export
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export single entry
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export a single entry of the ldap tree
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export complete XLS for
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Export the complete ldap tree in one xls file or a selected department
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top medskip 
+Import
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="1" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Import LDIF File
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Import a ldif file in your ldap tree
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+\added_space_top smallskip 
+Modify existing attributes : rewrite already existing attributes in the
+ ldap tree 
+\layout Itemize
+
+Overwrite existing entry : rewrite already existing entries in the ldap
+ tree
+\layout Subsection
+\added_space_top medskip 
+CSV Import
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select CSV file to import
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select a correctly formated cvs file to import in your ldap tree
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select template
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select a GOsa template to make the match between your cvs file an your ldap
+ tree
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/logview.lyx b/gosa-core/doc/core/en/lyx-source/logview.lyx
new file mode 100644
index 0000000..d9d66ef
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/logview.lyx
@@ -0,0 +1,163 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADDONS
+\layout Section
+
+System log view
+\layout Subsection
+
+Filter 
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Show hosts
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select the host to search on in the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Log level
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select the log level where to search in the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Time interval
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select the time time interval where to search in the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Search for
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select the string to search for
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ruleset
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Create a ruleset for to help frequent searches of the same type
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/macro.lyx b/gosa-core/doc/core/en/lyx-source/macro.lyx
new file mode 100644
index 0000000..fb9056b
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/macro.lyx
@@ -0,0 +1,415 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+PHONE MACROS ADMINISTRATION
+\layout Section
+
+List of macros
+\layout Standard
+
+The administrator can configure a phone macros when clicking on the 
+\series bold 
+\color blue
+Phone macros
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Phone macro 
+\shape smallcaps 
+\emph on 
+management
+\family default 
+\shape default 
+\emph default 
+\color default
+ page is displayed.
+\layout Standard
+
+She is divided on two columns :
+\layout Standard
+
+- The first column is used to display _, 
+\layout Standard
+
+- The second _
+\layout Standard
+
+- The third column contains icons which are the actions you can execute
+ on _.
+ 
+\layout Standard
+\added_space_bottom medskip 
+- Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the 
+\family sans 
+Phone macro management
+\family default 
+\emph on 
+\noun on 
+ 
+\emph default 
+\noun default 
+page that the system administrator manage the list of Phone macros of the
+ organization.
+\layout Standard
+
+It's possible to modify the display of blocklist by using the table called
+ Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ :
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all _;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the _ starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all _ starting with this number.
+\end_deeper 
+\layout Itemize
+
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the _ searched and click on the 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+\added_space_top medskip 
+To create and configure _, the administrator click on 
+\begin_inset Graphics
+	filename images/list_new_macro.png
+
+\end_inset 
+
+.
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the phone macro.
+ 
+\layout Standard
+
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Macro name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the macro name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Display nam
+\color black
+e
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Macro display name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make a choice on the scroll list to select the department where the phone
+ macros existes
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description about the use of the phone macros
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Visible for user
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Is this macro visible or not for an user
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+\added_space_top medskip 
+Macro text
+\layout Subsection
+\added_space_top bigskip 
+Parameter
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Argument
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+type
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Default value
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references show the existing relations between phone macros.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/ogroups.lyx b/gosa-core/doc/core/en/lyx-source/ogroups.lyx
new file mode 100644
index 0000000..a25802f
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/ogroups.lyx
@@ -0,0 +1,329 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+OBJECT GROUPS ADMINISTRATION
+\layout Section
+
+List of groups
+\layout Standard
+
+An object group is a heterogeneous group.
+ It is the possibility for the administrator to create groups where objects
+ are differents.
+ It's allow a supple and more adapted management than classic groups.
+\layout Standard
+
+The administrator can add and configure Objects groups when clicking on
+ the 
+\series bold 
+\color blue
+Objects groups
+\series default 
+\color default
+ in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The 
+\family sans 
+Object group
+\family default 
+ page is displayed.
+ 
+\layout Standard
+
+The page is devided on three columns :
+\layout Standard
+
+- the first column is used to display the list of objects groups,
+\layout Standard
+
+- the second column contains icons wich are shortcuts to the settings of
+ objects groups,
+\layout Standard
+
+- the third column contains les icons which are actions you can execute
+ on objects groups.
+\layout Standard
+
+Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+\added_space_top medskip 
+It's from the
+\family sans 
+ Objects
+\family default 
+ 
+\family sans 
+groups
+\family default 
+ that the administrator manage objects groups created for the organization.
+\layout Standard
+\added_space_bottom medskip 
+It's possible to modify the display of objects groups by using the table
+ called Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Itemize
+
+
+\color black
+To search on names :
+\begin_deeper 
+\layout Standard
+
+- Click on the asterisk to show all objects groups;
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the objects groups starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on a number to show all objects groups starting with this number.
+\end_deeper 
+\layout Itemize
+
+To search on objects groups properties you must :
+\begin_deeper 
+\layout Standard
+
+- Check one or many propositions; 
+\end_deeper 
+\layout Itemize
+\added_space_bottom medskip 
+For a fast search 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : fill the field by the name of the objects groups searched and click on
+ the 
+\emph on 
+Apply filter
+\emph default 
+ button.
+\layout Standard
+
+To create, configure and modify a object group click on 
+\begin_inset Graphics
+	filename images/list_new_ogroup.png
+
+\end_inset 
+
+.
+\layout Standard
+
+You will see tabs.
+ The administrator uses tabs to configure the objects group.
+\layout Standard
+\added_space_bottom medskip 
+To save changes use the 
+\emph on 
+Save
+\emph default 
+ button, to come back without saving use the 
+\emph on 
+Cancel
+\emph default 
+ button.
+\layout Standard
+
+All the fields followed by an asterisk must be filled.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Group
+\color red
+ 
+\color black
+name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the name of the group to be created
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert a description, a commentary on the group
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Member objects
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+The list of members objects belonging to one object group.
+
+\color default
+ The 
+\emph on 
+Add
+\emph default 
+ button will show you the existing list of objects, use the 
+\emph on 
+Delete
+\emph default 
+ button to remove elements.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references show the existing relations between objects.
+\the_end
diff --git a/gosa-core/doc/core/en/lyx-source/users.lyx b/gosa-core/doc/core/en/lyx-source/users.lyx
new file mode 100644
index 0000000..33e63d6
--- /dev/null
+++ b/gosa-core/doc/core/en/lyx-source/users.lyx
@@ -0,0 +1,1982 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+USERS ADMINISTRATION
+\layout Section
+
+List of users
+\layout Standard
+
+The administrator can create, modify or access the account informations
+ when clicking on the 
+\series bold 
+\color blue
+users
+\series default 
+\color default
+ button in the 
+\series bold 
+Administration
+\series default 
+ menu on the left.
+ The
+\family sans 
+\color black
+ Users Administration
+\family default 
+\color default
+ page is displayed, she is divided on three columns.
+ Each time an user is created it will appear in the first column sorted
+ by department.
+ 
+\layout Standard
+
+The two first columns contains icons which are shortcuts to the settings
+ of each user and the actions you can execute on them.
+ 
+\layout Standard
+
+Those icons ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) are used to modify the display according to the department, the icons
+ predominate other selections of display.
+\layout Standard
+
+It's from the Users Administration page that the system administrator will
+ get a global view of all the users in his system.
+ 
+\layout Standard
+
+
+\color black
+In the right part of the page you will find a table called Filters 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+ 
+\layout Itemize
+
+
+\color black
+This table purpose is to change the display of the users :
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- Click on a letter to show all the users starting with this letter;
+\layout Standard
+
+
+\color black
+- Click on the asterisk and the list of users will be ordoned alphabetically
+\end_deeper 
+\layout Itemize
+
+You can also :
+\begin_deeper 
+\layout Standard
+
+- Check one or more options to get a restricted selection;
+\layout Standard
+
+- Insert a letter or a number followed by an asterisk or a user name in
+ the filed preceded by a this icon 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+.
+ Click on the 
+\emph on 
+submit
+\emph default 
+ button to get the result of your selection.
+\end_deeper 
+\layout Standard
+
+To create an account click on 
+\begin_inset Graphics
+	filename images/list_new_user.png
+
+\end_inset 
+
+.
+ If the account is already created click on the account himself.
+\layout Standard
+
+You will see tabs, each of them is a part of the user account configuration.
+ Each of those tabs is an extension that GOsa can manage.
+\layout Standard
+\added_space_bottom medskip 
+To finish the creation of the user, click on the finish button on the right
+ bottom of the page.
+ To cancel your change click on the cancel button.
+\newline 
+
+\layout Standard
+
+All the fields followed by an red asterisk must be filled.
+\layout Standard
+
+In the upper right corner you have the full dn of the user currently edited.
+\layout Subsection
+\pagebreak_top 
+Generic
+\layout Subsubsection
+
+Personal information
+\layout Standard
+\added_space_bottom medskip 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="15" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Last 
+\color black
+name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the last name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+First name
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the first name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Login
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the login name
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Personnal title
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the personnal (Mister, Miss, Madam)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Academic title
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the academic title
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Date of birth
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Click on the 
+\emph on 
+set
+\emph default 
+ button to make a scroll list appear
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sex
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Preferred Language
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Choice of the deparment.
+ (the creation of the department is made with the 
+\series bold 
+\color blue
+department
+\series default 
+\color default
+ button on the left menu in the administration part.).
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Address
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the personnal address of the user
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Private phone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the private number in the national or international way.
+ (keep in mind to make the same for all users)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Homepage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the url of the user homepage
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Password storage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Certificates
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Click on the button 
+\emph on 
+Edits certificates
+\emph default 
+.
+ GOsa will let you import three type of certificates.
+ To save click on 
+\emph on 
+finish
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kerberos
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Click on the button 
+\emph on 
+Edit properties
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+You can if you wisch add a picture of the user by clicking on the button
+ 
+\shape italic 
+changer la photo
+\shape default 
+.
+ 
+\layout Subsubsection
+\added_space_top medskip 
+Organizational information
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="13" columns="2">
+<features>
+<column alignment="left" valignment="top" leftline="true" width="5cm">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Organization
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the organization's name 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Departement
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the departement's name that the user is attached 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Departement's number
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the departement's number
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Employee's number
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the employee's number
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Employee's type
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert his range in the organization
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Room's number
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the room's number of the employee
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the phone number of the user
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mobile
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the mobile's number of the employee
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pager
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the page number of the employee
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the fax number of the employee
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Location
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the localisation of employee's office
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+State
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the name of the state where the organization is located
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Address
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the address of the organization
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Unix
+\layout Standard
+
+To activate an Unix account for one user, you have to click on the button
+ 
+\shape italic 
+add a posix account.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Home directory
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the path to the home directory of the user
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Shell
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make the choice on the scroll list of the kind of shell used
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Primary group
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the primary group wich one the user is attached.
+ (For the creation of a group, go to the 
+\series bold 
+Administration
+\series default 
+ part 
+\color black
+and click on the button
+\series bold 
+\color blue
+ Groups
+\series default 
+\color default
+)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Status
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention if the account is activated or not
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Force UID/GID
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Check if you want to force UID/GID of the user to a certain value
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Group membership
+\layout Standard
+
+Use the buttons 
+\emph on 
+Add
+\emph default 
+ and 
+\emph on 
+Delete
+\emph default 
+ to insert or to remove groups in the empty area.
+ The button 
+\emph on 
+Add
+\emph default 
+ give the group list created by the administrator.
+ The user could be attached at one or many groups.
+\layout Subsubsection
+\added_space_top medskip 
+Account
+\layout Standard
+
+It's about the management of the user's password.
+ Many proposals could be checked but the administrator should avoid conflicting
+ options.
+\layout Subsubsection
+\added_space_top medskip 
+System trust
+\layout Standard
+
+The trust system is used to control access by the user at differents systems,
+ devices, ...
+ 
+\layout Standard
+
+The trust system can :
+\layout Itemize
+
+be deactivated, 
+\layout Itemize
+
+allow full access,
+\layout Itemize
+
+allow the access to hosts : 
+\begin_deeper 
+\layout Standard
+
+- Use the button 
+\emph on 
+Add
+\emph default 
+ to select the hosts, 
+\layout Standard
+
+- Use the button 
+\emph on 
+Delete
+\emph default 
+ to remove hosts.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Environment
+\layout Standard
+
+Click on the button 
+\shape italic 
+add an environment extension 
+\emph on 
+to
+\shape default 
+\emph default 
+ activate the configuration space.
+\layout Subsubsection
+
+Profiles
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profile
+\layout Subsubsection
+\added_space_top medskip 
+Logon scripts
+\layout Subsubsection
+\added_space_top medskip 
+Attach share
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug devices
+\layout Subsubsection
+\added_space_top medskip 
+Printer
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+The mail account is linked to the mail server.
+ To activate the mail account click on the button 
+\shape italic 
+Create mail account
+\shape default 
+.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Primary address
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the mail address of the user 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Choose the server where the mail account of the user is stored
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota usage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention if you apply a quota to the mail account of the user
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota size
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention in KB the quota size
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternative addresses
+\layout Standard
+
+The user can own one or many aliases.
+ Those aliases must be inserted in the alternatives addresses area.
+ 
+\layout Standard
+
+Use the button 
+\emph on 
+Add
+\emph default 
+ to insert the aliases.
+ The alias must be inserted in the empty area followed by the button 
+\emph on 
+Add
+\emph default 
+.
+ Use the button 
+\emph on 
+Delete
+\emph default 
+ to remove aliases.
+\layout Subsubsection
+\added_space_top medskip 
+Mail options
+\layout Standard
+
+Management of the mail options of the user :
+\layout Itemize
+
+No delivery to own mailbox : send all mail for this address to a mail address
+ mentionned in the area 
+\emph on 
+Forward messages to.
+\layout Itemize
+
+Activate vacation message : send the message wroten in the area 
+\shape italic 
+\color black
+Vacation message
+\shape default 
+\color default
+ to the sender.
+\layout Itemize
+
+Move mails tagged with spam level greater than (a) to folder (b) : send
+ mails that spam level is higher than (a) in the folder (b).
+\layout Itemize
+
+Reject mails bigger than (c) MB : reject mails higher than (c) MB.
+\layout Itemize
+
+Use the 
+\emph on 
+Add
+\emph default 
+ ou 
+\emph on 
+Add local
+\emph default 
+\color black
+ buttons to manage addresses : 
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- The 
+\emph on 
+Add local
+\emph default 
+ button is used to choose among the local list addresses.
+ 
+\layout Standard
+
+
+\color black
+- The 
+\emph on 
+Add
+\emph default 
+ button allow external addresses.
+\layout Standard
+
+
+\color black
+- Use the 
+\emph on 
+Delete
+\emph default 
+ button to remove the mails addresses.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Advanced mail options
+\layout Itemize
+
+User is only allowed to send and receive local mails : the administrator
+ can force sending and receiving local mails only.
+\layout Itemize
+
+Use custom sieve script : The administrator can write sieve script to establish
+ rules for managing mail box.
+ 
+\emph on 
+Attention ! 
+\shape italic 
+\emph default 
+This will disable all mail options
+\shape default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Samba
+\layout Standard
+
+To create a samba account for an user click on the button 
+\shape italic 
+Create a samba
+\shape default 
+ 
+\shape italic 
+account
+\shape default 
+.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Home directory
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path of the user's home directory in UNC notation ex: 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+user.
+ Choose on the scroll list the letter associated to the user's home directory.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Domain
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Select the domain where the user's desktop exists
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Script path
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the user's logon script 
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profile path
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path to the user profile
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Terminal Server
+\layout Itemize
+
+Allow login on the terminal server
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Home directory
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path of the user's home directory in notation UNC ex: 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+user.
+ Choose on the scroll list the letter associated to the user's home directory.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profile path
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path to the user profile
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Inherit client config
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Initial program
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path to the default application
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Working directory
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the working directory of the initial program
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+ 
+\layout Itemize
+
+Timeout settings (in minutes) :
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connection
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Put the maximum time waiting for a login
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Disconnection
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Put the maximum time waiting to disconnect
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+IDLE
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Put the maximum time waiting for a query
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Client devices :
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connect client drives at logon 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Check to connect client drives at logon
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connect client printers at logon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Check to connect client printers at logon
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Default to main client printer
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Check to define the client default printer at logon
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Miscellaneous :
+\begin_deeper 
+\layout Standard
+
+- Shadowing : 
+\color red
+?
+\layout Standard
+
+- On broken or timed out : choose if you want disconect or reset the client.
+\layout Standard
+
+- Reconnect if disconnected : choose if the reconnection must be done from
+ the same client, or if it can be done from an other client.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Access options
+\layout Itemize
+
+It's about the management of the user's password.
+ Once or many proposal can be checked in but the administrator must take
+ care to avoid conflicts.
+\layout Itemize
+
+The area on the right must be filled by the names of clients on which the
+ user can logon.
+ The administrator must use the button 
+\emph on 
+Add
+\emph default 
+ to insert the clients names.
+ The button 
+\emph on 
+Add
+\emph default 
+ give the clients list.
+ Use the button 
+\emph on 
+Delete
+\emph default 
+ to remove clients.
+\layout Subsection
+\added_space_top bigskip 
+Connectivity
+\layout Standard
+
+The administrator can choose more services where the user could be connected.
+\layout Subparagraph*
+
+Proxy account
+\layout Standard
+
+If you activated the Proxy option for a user you can filter the content,
+ limit access hours and restrict download/upload.
+\layout Subparagraph
+\added_space_top smallskip 
+FTP account
+\layout Standard
+
+If you activated the FTP option, you can fix the upload and downlaod bandwidth,
+ the data ratio and the quota allowed.
+ You can also deactivate the FTP account.
+\layout Subparagraph
+\added_space_top smallskip 
+WebDAV account
+\layout Standard
+
+If you activated the WebDAV option, the user will be granted access to the
+ WebDAV server.
+ 
+\layout Subparagraph
+\added_space_top smallskip 
+PHPGroupware account
+\layout Standard
+
+If you activated the PHPGroupware option, the user will be granted access
+ to the PHPGroupware software.
+\layout Subparagraph
+\added_space_top smallskip 
+Intranet account
+\layout Standard
+\added_space_bottom smallskip 
+If you activated the Intranet option, the user will access Intranet server.
+\layout Standard
+
+
+\series bold 
+PPTP account
+\layout Standard
+\added_space_bottom smallskip 
+If you activated the PPTP option, the user will access server PPTP.
+\layout Standard
+
+
+\series bold 
+PHPScheduleit account
+\layout Standard
+\added_space_bottom smallskip 
+If you activated the PHPScheduleit option, the user will access PHPScheduleIt
+ software.
+\layout Standard
+
+
+\series bold 
+GLPI account
+\layout Standard
+
+If you activated the GLPI option, the user will access GLPI software.
+\layout Subsection
+\added_space_top bigskip 
+Fax
+\layout Standard
+
+To create a fax account for an user click on the button
+\shape italic 
+ Create a Fax account.
+\layout Subsubsection
+
+Generic
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Insert the fax number of the user
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Language
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Delivery format 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Delivery methods
+\layout Itemize
+
+Temporary disable fax usage : forbid the use of the fax for an user.
+\layout Itemize
+
+Deliver fax as mail to : send fax on mail distribution format to the user's
+ mailbox.
+\layout Itemize
+
+Deliver fax to printer : send fax to a printer.
+\layout Subsubsection
+\added_space_top medskip 
+Alternate fax numbers
+\layout Standard
+
+The administrator can complete the fax configuration with more than one
+ fax number.
+ Use the buttons 
+\shape italic 
+Add
+\shape default 
+, 
+\shape italic 
+Add local
+\shape default 
+ to fill the area.
+\layout Itemize
+
+The 
+\emph on 
+Add local
+\emph default 
+ button is used to choose among the local fax.
+ 
+\layout Itemize
+
+The 
+\emph on 
+Add
+\emph default 
+ button allow external fax numbers.
+ 
+\layout Standard
+
+Use the button 
+\emph on 
+Delete
+\emph default 
+ to remove fax numbers.
+\layout Subsubsection
+\added_space_top medskip 
+Blocklists
+\layout Standard
+
+The fax is today frequently use to deliver advertising messages.
+ Many of them are spams.
+ To avoid those messages, the administrator can create a blocklist for incoming
+ and outgoing fax.
+\layout Standard
+
+When clicking on the button 
+\emph on 
+Edit
+\emph default 
+ at the left side appear the blocked numbers/lists linked to the user and
+ at the right side the predefined blocklist.
+\layout Standard
+
+Select one or many lists at the right side and click on 
+\shape italic 
+Add the list to the blocklists
+\shape default 
+ use at vous d�sirez utiliser dans la liste de droite et cliquer sur 
+\emph on 
+Ajouter � la liste rouge
+\emph default 
+ pour l'activer.
+ 
+\color red
+???
+\layout Subsection
+\added_space_top bigskip 
+Phone
+\layout Standard
+
+To activate the phone account for an user click on the button 
+\shape italic 
+Create a phone account
+\shape default 
+.
+\layout Subsubsection
+
+Phone numbers
+\layout Standard
+
+Insert one or many phone numbers for the user by clicking on the button
+\emph on 
+ A
+\shape italic 
+\emph default 
+dd
+\shape default 
+.
+ 
+\layout Subsubsection
+\added_space_top medskip 
+Telephone hardware
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telephone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Make your choice on the scroll list
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+VoicemailPIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Insert the PIN code of the user to reach his voicemail
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Phone PIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Insert the PIN code of the user to unlock his phone
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Phone macro
+\layout Standard
+
+Selection of phone macro for the user's telephone.
+\layout Subsection
+\added_space_top bigskip 
+References
+\layout Standard
+
+The references present the user's properties.
+ It gives the administrator a short summary of the user's properties.
+\the_end
diff --git a/gosa-core/doc/core/es/lyx-source/images/action.png b/gosa-core/doc/core/es/lyx-source/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/action.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/addr_company.png b/gosa-core/doc/core/es/lyx-source/images/addr_company.png
new file mode 100644
index 0000000..80a173d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/addr_company.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/addr_home.png b/gosa-core/doc/core/es/lyx-source/images/addr_home.png
new file mode 100644
index 0000000..14ee484
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/addr_home.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/addr_personal.png b/gosa-core/doc/core/es/lyx-source/images/addr_personal.png
new file mode 100644
index 0000000..ecf17bc
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/addr_personal.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/addressbook.png b/gosa-core/doc/core/es/lyx-source/images/addressbook.png
new file mode 100644
index 0000000..08c72ef
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/addressbook.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/alternatemail.png b/gosa-core/doc/core/es/lyx-source/images/alternatemail.png
new file mode 100644
index 0000000..62b0534
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/alternatemail.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/application.png b/gosa-core/doc/core/es/lyx-source/images/application.png
new file mode 100644
index 0000000..671fc7d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/application.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/back.png b/gosa-core/doc/core/es/lyx-source/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/back.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/banana.png b/gosa-core/doc/core/es/lyx-source/images/banana.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/banana.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/blocklists.png b/gosa-core/doc/core/es/lyx-source/images/blocklists.png
new file mode 100644
index 0000000..8f252a4
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/blocklists.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/branch.png b/gosa-core/doc/core/es/lyx-source/images/branch.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/branch.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/branch_small.png b/gosa-core/doc/core/es/lyx-source/images/branch_small.png
new file mode 100644
index 0000000..d632c85
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/branch_small.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/button_cancel.png b/gosa-core/doc/core/es/lyx-source/images/button_cancel.png
new file mode 100644
index 0000000..9691957
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/button_cancel.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/cant_editpaste.png b/gosa-core/doc/core/es/lyx-source/images/cant_editpaste.png
new file mode 100644
index 0000000..fdcc88d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/cant_editpaste.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/certs.png b/gosa-core/doc/core/es/lyx-source/images/certs.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/certs.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/closedlock.png b/gosa-core/doc/core/es/lyx-source/images/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/closedlock.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/conference.png b/gosa-core/doc/core/es/lyx-source/images/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/conference.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/copypaste.png b/gosa-core/doc/core/es/lyx-source/images/copypaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/copypaste.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/crossref.png b/gosa-core/doc/core/es/lyx-source/images/crossref.png
new file mode 100644
index 0000000..ec2ed78
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/crossref.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/cutpaste.png b/gosa-core/doc/core/es/lyx-source/images/cutpaste.png
new file mode 100644
index 0000000..e514438
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/cutpaste.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/default.jpg b/gosa-core/doc/core/es/lyx-source/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/default.jpg differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/default_icon.png b/gosa-core/doc/core/es/lyx-source/images/default_icon.png
new file mode 100644
index 0000000..58d50d3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/default_icon.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/department.png b/gosa-core/doc/core/es/lyx-source/images/department.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/department.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/dfs.png b/gosa-core/doc/core/es/lyx-source/images/dfs.png
new file mode 100644
index 0000000..accbd8d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/dfs.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/dhcp.png b/gosa-core/doc/core/es/lyx-source/images/dhcp.png
new file mode 100644
index 0000000..1360b6f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/dhcp.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/display.png b/gosa-core/doc/core/es/lyx-source/images/display.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/display.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/dns.png b/gosa-core/doc/core/es/lyx-source/images/dns.png
new file mode 100644
index 0000000..6a55d72
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/dns.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/drives.png b/gosa-core/doc/core/es/lyx-source/images/drives.png
new file mode 100644
index 0000000..9cc127e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/drives.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/dtree.png b/gosa-core/doc/core/es/lyx-source/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/dtree.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/edit.png b/gosa-core/doc/core/es/lyx-source/images/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/edit.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/editcopy.png b/gosa-core/doc/core/es/lyx-source/images/editcopy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/editcopy.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/editcut.png b/gosa-core/doc/core/es/lyx-source/images/editcut.png
new file mode 100644
index 0000000..7ec355a
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/editcut.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/editdelete.png b/gosa-core/doc/core/es/lyx-source/images/editdelete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/editdelete.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/editpaste.png b/gosa-core/doc/core/es/lyx-source/images/editpaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/editpaste.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/edittrash.png b/gosa-core/doc/core/es/lyx-source/images/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/edittrash.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/email.png b/gosa-core/doc/core/es/lyx-source/images/email.png
new file mode 100644
index 0000000..d53e620
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/email.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/empty.png b/gosa-core/doc/core/es/lyx-source/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/empty.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/encrypted.png b/gosa-core/doc/core/es/lyx-source/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/encrypted.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/env.png b/gosa-core/doc/core/es/lyx-source/images/env.png
new file mode 100644
index 0000000..7b7bf37
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/env.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/envelope.png b/gosa-core/doc/core/es/lyx-source/images/envelope.png
new file mode 100644
index 0000000..6053eed
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/envelope.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/expand.png b/gosa-core/doc/core/es/lyx-source/images/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/expand.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai.png b/gosa-core/doc/core/es/lyx-source/images/fai.png
new file mode 100644
index 0000000..f0a23d6
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_hook.png b/gosa-core/doc/core/es/lyx-source/images/fai_hook.png
new file mode 100644
index 0000000..1930fb2
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_hook.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_hook.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_hook.png
new file mode 100644
index 0000000..f02e6a4
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_hook.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_packages.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_packages.png
new file mode 100644
index 0000000..15cad1e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_packages.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_partitionTable.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_partitionTable.png
new file mode 100644
index 0000000..9ac4600
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_partitionTable.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_profile.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_profile.png
new file mode 100644
index 0000000..6808820
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_profile.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_script.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_script.png
new file mode 100644
index 0000000..b8333c7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_script.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_template.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_template.png
new file mode 100644
index 0000000..9a88da9
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_template.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_new_variable.png b/gosa-core/doc/core/es/lyx-source/images/fai_new_variable.png
new file mode 100644
index 0000000..d915c53
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_new_variable.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_packages.png b/gosa-core/doc/core/es/lyx-source/images/fai_packages.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_packages.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_partitionTable.png b/gosa-core/doc/core/es/lyx-source/images/fai_partitionTable.png
new file mode 100644
index 0000000..7e8d701
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_partitionTable.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_profile.png b/gosa-core/doc/core/es/lyx-source/images/fai_profile.png
new file mode 100644
index 0000000..07391b6
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_profile.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_script.png b/gosa-core/doc/core/es/lyx-source/images/fai_script.png
new file mode 100644
index 0000000..f8aaba2
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_script.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_small.png b/gosa-core/doc/core/es/lyx-source/images/fai_small.png
new file mode 100644
index 0000000..fc716d0
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_small.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_template.png b/gosa-core/doc/core/es/lyx-source/images/fai_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_template.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fai_variable.png b/gosa-core/doc/core/es/lyx-source/images/fai_variable.png
new file mode 100644
index 0000000..d7915fe
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fai_variable.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/false.png b/gosa-core/doc/core/es/lyx-source/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/false.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fax.png b/gosa-core/doc/core/es/lyx-source/images/fax.png
new file mode 100644
index 0000000..3f58c36
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fax.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fax_small.png b/gosa-core/doc/core/es/lyx-source/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fax_small.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/filesaveas.png b/gosa-core/doc/core/es/lyx-source/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/filesaveas.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/flag.png b/gosa-core/doc/core/es/lyx-source/images/flag.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/flag.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/folder.png b/gosa-core/doc/core/es/lyx-source/images/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/folder.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/forward.png b/gosa-core/doc/core/es/lyx-source/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/forward.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/ftp.png b/gosa-core/doc/core/es/lyx-source/images/ftp.png
new file mode 100644
index 0000000..e5b5691
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/ftp.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/fullfolder.png b/gosa-core/doc/core/es/lyx-source/images/fullfolder.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/fullfolder.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/gfx_hardware.png b/gosa-core/doc/core/es/lyx-source/images/gfx_hardware.png
new file mode 100644
index 0000000..af9f6f7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/gfx_hardware.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/group.png b/gosa-core/doc/core/es/lyx-source/images/group.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/group.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/hardware.png b/gosa-core/doc/core/es/lyx-source/images/hardware.png
new file mode 100644
index 0000000..0ac401c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/hardware.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/hdd_linux_unmount.png b/gosa-core/doc/core/es/lyx-source/images/hdd_linux_unmount.png
new file mode 100644
index 0000000..1b2e065
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/hdd_linux_unmount.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/head.png b/gosa-core/doc/core/es/lyx-source/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/head.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/help.png b/gosa-core/doc/core/es/lyx-source/images/help.png
new file mode 100644
index 0000000..9fe7652
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/help.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/hotplug.png b/gosa-core/doc/core/es/lyx-source/images/hotplug.png
new file mode 100644
index 0000000..546c7af
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/hotplug.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/house.png b/gosa-core/doc/core/es/lyx-source/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/house.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/img1.png b/gosa-core/doc/core/es/lyx-source/images/img1.png
new file mode 100644
index 0000000..0388e82
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/img1.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/info.png b/gosa-core/doc/core/es/lyx-source/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/info.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/info_small.png b/gosa-core/doc/core/es/lyx-source/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/info_small.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/keyboard.png b/gosa-core/doc/core/es/lyx-source/images/keyboard.png
new file mode 100644
index 0000000..cdc0306
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/keyboard.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/lamp.png b/gosa-core/doc/core/es/lyx-source/images/lamp.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/lamp.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/launch.png b/gosa-core/doc/core/es/lyx-source/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/launch.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/ldapserver.png b/gosa-core/doc/core/es/lyx-source/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/ldapserver.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/ldif.png b/gosa-core/doc/core/es/lyx-source/images/ldif.png
new file mode 100644
index 0000000..ca164a1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/ldif.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_back.png b/gosa-core/doc/core/es/lyx-source/images/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_back.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_blocklist.png b/gosa-core/doc/core/es/lyx-source/images/list_blocklist.png
new file mode 100644
index 0000000..d89fd1d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_blocklist.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_home.png b/gosa-core/doc/core/es/lyx-source/images/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_home.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_macro.png b/gosa-core/doc/core/es/lyx-source/images/list_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_macro.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new.png b/gosa-core/doc/core/es/lyx-source/images/list_new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_app.png b/gosa-core/doc/core/es/lyx-source/images/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_app.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_blocklist.png b/gosa-core/doc/core/es/lyx-source/images/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_conference.png b/gosa-core/doc/core/es/lyx-source/images/list_new_conference.png
new file mode 100644
index 0000000..ee9cf5f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_conference.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_department.png b/gosa-core/doc/core/es/lyx-source/images/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_department.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_group.png b/gosa-core/doc/core/es/lyx-source/images/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_group.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_macro.png b/gosa-core/doc/core/es/lyx-source/images/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_macro.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_ogroup.png b/gosa-core/doc/core/es/lyx-source/images/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_new_user.png b/gosa-core/doc/core/es/lyx-source/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_new_user.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_ogroup.png b/gosa-core/doc/core/es/lyx-source/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_ogroup.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_password.png b/gosa-core/doc/core/es/lyx-source/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_password.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_reload.png b/gosa-core/doc/core/es/lyx-source/images/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_reload.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_root.png b/gosa-core/doc/core/es/lyx-source/images/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_root.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_seperator.png b/gosa-core/doc/core/es/lyx-source/images/list_seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_seperator.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_submit.png b/gosa-core/doc/core/es/lyx-source/images/list_submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_submit.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/list_up.png b/gosa-core/doc/core/es/lyx-source/images/list_up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/list_up.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/log_critical.png b/gosa-core/doc/core/es/lyx-source/images/log_critical.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/log_critical.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/log_info.png b/gosa-core/doc/core/es/lyx-source/images/log_info.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/log_info.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/log_unknown.png b/gosa-core/doc/core/es/lyx-source/images/log_unknown.png
new file mode 100644
index 0000000..4ed65a9
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/log_unknown.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/log_warning.png b/gosa-core/doc/core/es/lyx-source/images/log_warning.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/log_warning.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/login.png b/gosa-core/doc/core/es/lyx-source/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/login.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/logview.png b/gosa-core/doc/core/es/lyx-source/images/logview.png
new file mode 100644
index 0000000..122f642
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/logview.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/macros.png b/gosa-core/doc/core/es/lyx-source/images/macros.png
new file mode 100644
index 0000000..a9100e7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/macros.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailq_active.png b/gosa-core/doc/core/es/lyx-source/images/mailq_active.png
new file mode 100644
index 0000000..de65ee1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailq_active.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailq_header.png b/gosa-core/doc/core/es/lyx-source/images/mailq_header.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailq_header.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailq_hold.png b/gosa-core/doc/core/es/lyx-source/images/mailq_hold.png
new file mode 100644
index 0000000..2083104
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailq_hold.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailq_requeue.png b/gosa-core/doc/core/es/lyx-source/images/mailq_requeue.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailq_requeue.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailq_unhold.png b/gosa-core/doc/core/es/lyx-source/images/mailq_unhold.png
new file mode 100644
index 0000000..d07edf3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailq_unhold.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailqueue.png b/gosa-core/doc/core/es/lyx-source/images/mailqueue.png
new file mode 100644
index 0000000..9b88a59
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailqueue.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mailto.png b/gosa-core/doc/core/es/lyx-source/images/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mailto.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mainboard.png b/gosa-core/doc/core/es/lyx-source/images/mainboard.png
new file mode 100644
index 0000000..e6fc340
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mainboard.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/members.png b/gosa-core/doc/core/es/lyx-source/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/members.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/memory.png b/gosa-core/doc/core/es/lyx-source/images/memory.png
new file mode 100644
index 0000000..6ddeddb
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/memory.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/monitor.png b/gosa-core/doc/core/es/lyx-source/images/monitor.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/monitor.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/monitoring.png b/gosa-core/doc/core/es/lyx-source/images/monitoring.png
new file mode 100644
index 0000000..b636ff0
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/monitoring.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/mouse.png b/gosa-core/doc/core/es/lyx-source/images/mouse.png
new file mode 100644
index 0000000..3c0d31d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/mouse.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/net_hardware.png b/gosa-core/doc/core/es/lyx-source/images/net_hardware.png
new file mode 100644
index 0000000..72567f6
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/net_hardware.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/netatalk.png b/gosa-core/doc/core/es/lyx-source/images/netatalk.png
new file mode 100644
index 0000000..19ab924
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/netatalk.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/network.png b/gosa-core/doc/core/es/lyx-source/images/network.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/network.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/null.gif b/gosa-core/doc/core/es/lyx-source/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/null.gif differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/ogroup.png b/gosa-core/doc/core/es/lyx-source/images/ogroup.png
new file mode 100644
index 0000000..29d351f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/ogroup.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/openlock.png b/gosa-core/doc/core/es/lyx-source/images/openlock.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/openlock.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/password.png b/gosa-core/doc/core/es/lyx-source/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/password.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/penguin.png b/gosa-core/doc/core/es/lyx-source/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/penguin.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/personal.png b/gosa-core/doc/core/es/lyx-source/images/personal.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/personal.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/phone.png b/gosa-core/doc/core/es/lyx-source/images/phone.png
new file mode 100644
index 0000000..a301fba
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/phone.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/phonereport.png b/gosa-core/doc/core/es/lyx-source/images/phonereport.png
new file mode 100644
index 0000000..702b898
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/phonereport.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/posix.png b/gosa-core/doc/core/es/lyx-source/images/posix.png
new file mode 100644
index 0000000..e8d33ab
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/posix.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/printer.png b/gosa-core/doc/core/es/lyx-source/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/printer.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/processor.png b/gosa-core/doc/core/es/lyx-source/images/processor.png
new file mode 100644
index 0000000..b7dc9b4
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/processor.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/proxy.png b/gosa-core/doc/core/es/lyx-source/images/proxy.png
new file mode 100644
index 0000000..d8cd426
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/proxy.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/reports.png b/gosa-core/doc/core/es/lyx-source/images/reports.png
new file mode 100644
index 0000000..1d47237
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/reports.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/rightarrow.png b/gosa-core/doc/core/es/lyx-source/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/rightarrow.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/rocket.png b/gosa-core/doc/core/es/lyx-source/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/rocket.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/samba.png b/gosa-core/doc/core/es/lyx-source/images/samba.png
new file mode 100644
index 0000000..861e43c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/samba.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/save.png b/gosa-core/doc/core/es/lyx-source/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/save.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/scanner.png b/gosa-core/doc/core/es/lyx-source/images/scanner.png
new file mode 100644
index 0000000..627540c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/scanner.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/search.png b/gosa-core/doc/core/es/lyx-source/images/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/search.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/search_user.png b/gosa-core/doc/core/es/lyx-source/images/search_user.png
new file mode 100644
index 0000000..1c164f4
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/search_user.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_application.png b/gosa-core/doc/core/es/lyx-source/images/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_application.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_component.png b/gosa-core/doc/core/es/lyx-source/images/select_component.png
new file mode 100644
index 0000000..ef289f6
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_component.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_conference.png b/gosa-core/doc/core/es/lyx-source/images/select_conference.png
new file mode 100644
index 0000000..f331bfe
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_conference.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_default.png b/gosa-core/doc/core/es/lyx-source/images/select_default.png
new file mode 100644
index 0000000..83f3752
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_default.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_department.png b/gosa-core/doc/core/es/lyx-source/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_department.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_groups.png b/gosa-core/doc/core/es/lyx-source/images/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_groups.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_invalid_application.png b/gosa-core/doc/core/es/lyx-source/images/select_invalid_application.png
new file mode 100644
index 0000000..a008801
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_invalid_application.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_macro.png b/gosa-core/doc/core/es/lyx-source/images/select_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_macro.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_netatalk.png b/gosa-core/doc/core/es/lyx-source/images/select_netatalk.png
new file mode 100644
index 0000000..e589720
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_netatalk.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_component.png b/gosa-core/doc/core/es/lyx-source/images/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_component.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_phone.png b/gosa-core/doc/core/es/lyx-source/images/select_new_phone.png
new file mode 100644
index 0000000..45714d1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_phone.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_printer.png b/gosa-core/doc/core/es/lyx-source/images/select_new_printer.png
new file mode 100644
index 0000000..e4618fe
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_printer.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_server.png b/gosa-core/doc/core/es/lyx-source/images/select_new_server.png
new file mode 100644
index 0000000..84f6570
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_server.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_terminal.png b/gosa-core/doc/core/es/lyx-source/images/select_new_terminal.png
new file mode 100644
index 0000000..a218480
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_terminal.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_new_workstation.png b/gosa-core/doc/core/es/lyx-source/images/select_new_workstation.png
new file mode 100644
index 0000000..8b5d4f4
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_new_workstation.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_newsystem.png b/gosa-core/doc/core/es/lyx-source/images/select_newsystem.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_newsystem.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_ogroup.png b/gosa-core/doc/core/es/lyx-source/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_ogroup.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_phone.png b/gosa-core/doc/core/es/lyx-source/images/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_phone.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_phone_connected.png b/gosa-core/doc/core/es/lyx-source/images/select_phone_connected.png
new file mode 100644
index 0000000..bd8c739
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_phone_connected.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_printer.png b/gosa-core/doc/core/es/lyx-source/images/select_printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_printer.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_proxy.png b/gosa-core/doc/core/es/lyx-source/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_proxy.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_server.png b/gosa-core/doc/core/es/lyx-source/images/select_server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_server.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_template.png b/gosa-core/doc/core/es/lyx-source/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_template.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_terminal.png b/gosa-core/doc/core/es/lyx-source/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_terminal.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_user.png b/gosa-core/doc/core/es/lyx-source/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_user.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_winstation.png b/gosa-core/doc/core/es/lyx-source/images/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_winstation.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/select_workstation.png b/gosa-core/doc/core/es/lyx-source/images/select_workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/select_workstation.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/server.png b/gosa-core/doc/core/es/lyx-source/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/server.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/service.png b/gosa-core/doc/core/es/lyx-source/images/service.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/service.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/small_filter.png b/gosa-core/doc/core/es/lyx-source/images/small_filter.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/small_filter.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/smallenv.png b/gosa-core/doc/core/es/lyx-source/images/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/smallenv.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/snd_hardware.png b/gosa-core/doc/core/es/lyx-source/images/snd_hardware.png
new file mode 100644
index 0000000..e1c25e7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/snd_hardware.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/sort_down.png b/gosa-core/doc/core/es/lyx-source/images/sort_down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/sort_down.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/sort_up.png b/gosa-core/doc/core/es/lyx-source/images/sort_up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/sort_up.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/sound.png b/gosa-core/doc/core/es/lyx-source/images/sound.png
new file mode 100644
index 0000000..cc030d3
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/sound.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/stop.png b/gosa-core/doc/core/es/lyx-source/images/stop.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/stop.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/system.png b/gosa-core/doc/core/es/lyx-source/images/system.png
new file mode 100644
index 0000000..c3308ee
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/system.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/terminal_small.png b/gosa-core/doc/core/es/lyx-source/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/terminal_small.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/time.png b/gosa-core/doc/core/es/lyx-source/images/time.png
new file mode 100644
index 0000000..1de43d5
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/time.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/tree.png b/gosa-core/doc/core/es/lyx-source/images/tree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/tree.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/true.png b/gosa-core/doc/core/es/lyx-source/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/true.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/user.png b/gosa-core/doc/core/es/lyx-source/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/user.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/warning.png b/gosa-core/doc/core/es/lyx-source/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/warning.png differ
diff --git a/gosa-core/doc/core/es/lyx-source/images/zip.png b/gosa-core/doc/core/es/lyx-source/images/zip.png
new file mode 100644
index 0000000..af23ddf
Binary files /dev/null and b/gosa-core/doc/core/es/lyx-source/images/zip.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/WARNINGS b/gosa-core/doc/core/fr/html/applications/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/applications/applications.css b/gosa-core/doc/core/fr/html/applications/applications.css
new file mode 100644
index 0000000..3baafc6
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/applications.css
@@ -0,0 +1,37 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue75		{ color: #ff0000;  }
+#hue77		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/fr/html/applications/applications.html b/gosa-core/doc/core/fr/html/applications/applications.html
new file mode 100644
index 0000000..eec84a7
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/applications.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES APPLICATIONS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES APPLICATIONS">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES APPLICATIONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Applications</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations </A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Informations</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Script</A>
+</UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Options</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/index.html b/gosa-core/doc/core/fr/html/applications/index.html
new file mode 100644
index 0000000..eec84a7
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/index.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES APPLICATIONS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES APPLICATIONS">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES APPLICATIONS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Applications</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations </A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Informations</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Script</A>
+</UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Options</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/labels.pl b/gosa-core/doc/core/fr/html/applications/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/applications/list_back.png b/gosa-core/doc/core/fr/html/applications/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/list_home.png b/gosa-core/doc/core/fr/html/applications/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/list_new_app.png b/gosa-core/doc/core/fr/html/applications/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/list_new_app.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/list_root.png b/gosa-core/doc/core/fr/html/applications/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/node1.html b/gosa-core/doc/core/fr/html/applications/node1.html
new file mode 100644
index 0000000..77c6679
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node1.html
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Applications</TITLE>
+<META NAME="description" CONTENT="Applications">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Applications</A>
+</H1>
+
+<P>
+L'administrateur peut installer et configurer une application � partir
+du bouton <SPAN  CLASS="textbf"><SPAN ID="hue25">Applications</SPAN></SPAN> dans le menu de
+gauche dans la partie <SPAN  CLASS="textbf">Administration</SPAN>. La page <SPAN  CLASS="textsf">Configuration
+des applications</SPAN> s'affiche. 
+
+<P>
+La page est divis�e en deux colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher la liste des applications,
+
+<P>
+- la deuxi�me colonne contient les ic�nes qui sont les actions que
+l'on peut executer sur l'application.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Ces ic�nes pr�dominent sur toutes autres formes
+de s�l�ction d'affichage. 
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Configurations des applications</SPAN>
+que l'administrateur g�re la liste des applications install�e pour
+le personnel de la soci�t�.
+
+<P>
+Il est possible de modifier l'affichage de la liste des applications
+en utilisant le tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+
+<P>
+L'administrateur peut faire une recherche sur le nom :
+
+<P>
+- cliquez sur l'ast�risque pour voir appara�tre toutes les applications;
+
+<P>
+- cliquez sur une lettre et tous les noms d'applications d�butant
+par cette lettre s'afficheront;
+
+<P>
+- cliquez sur un num�ro et tous les noms d'applications d�butant par
+ce num�ro s'afficheront;
+
+<P>
+- recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez le
+champ par le nom d'une application et ensuite cliquez sur le bouton
+<SPAN  CLASS="textit">Appliquer</SPAN>.
+
+<P>
+
+<P>
+<BR>
+Pour configurer une application, l'administrateur doit cliquer sur
+le bouton <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_app.png"
+ ALT="Image list_new_app">.
+
+<P>
+Appara�t l'espace de configuration contenant trois onglets : informations
+g�n�rales, options et r�f�rences.
+
+<P>
+Pour enregistrer la configuration, cliquez sur le bouton <SPAN  CLASS="textit">Termin�</SPAN>,
+pour revenir � la page pr�c�dente cliquez sur le bouton <SPAN  CLASS="textit">Annuler</SPAN>.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html21"
+  HREF="node2.html">Informations </A>
+<UL>
+<LI><A NAME="tex2html22"
+  HREF="node3.html">Informations</A>
+<LI><A NAME="tex2html23"
+  HREF="node4.html">Options</A>
+<LI><A NAME="tex2html24"
+  HREF="node5.html">Script</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html25"
+  HREF="node6.html">Options</A>
+<LI><A NAME="tex2html26"
+  HREF="node7.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node2.html b/gosa-core/doc/core/fr/html/applications/node2.html
new file mode 100644
index 0000000..88e08a9
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node2.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations </TITLE>
+<META NAME="description" CONTENT="Informations ">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations </A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html37"
+  HREF="node3.html">Informations</A>
+<LI><A NAME="tex2html38"
+  HREF="node4.html">Options</A>
+<LI><A NAME="tex2html39"
+  HREF="node5.html">Script</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node3.html b/gosa-core/doc/core/fr/html/applications/node3.html
new file mode 100644
index 0000000..28b9357
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node3.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations</TITLE>
+<META NAME="description" CONTENT="Informations">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Informations</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom de l'application<SPAN ID="hue75">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le nom de l'application.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom � afficher<SPAN ID="hue76">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Nom de l'application qui sera visible par l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Ex�cuter<SPAN ID="hue77">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Application � ex�cuter avec ses param�tres �ventuels</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Description de l'application</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante du d�partement associ�
+� l'application.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Ic�ne</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>S�lectionnez l'image dans l'arborescence de votre syst�me, ensuite
+cliquez sur le bouton Mise � jour. L'ic�ne est alors associ�e � l'application.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node4.html b/gosa-core/doc/core/fr/html/applications/node4.html
new file mode 100644
index 0000000..f7e2fb7
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node4.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Ex�cutable uniquement par les membres
+
+<P>
+Cochez si vous d�sirez que l'application soit ex�cut�e uniquement
+par les membres d'un m�me groupe.
+
+<P>
+</LI>
+<LI>Remplacer la configuration de l'utilisateur au d�marrage
+
+<P>
+R�installer la configuration par d�faut de l'application � chaque
+d�marrage.
+
+<P>
+</LI>
+<LI>Placer une ic�ne sur le bureau des membres
+
+<P>
+Cochez si vous d�sirez faire appara�tre l'ic�ne sur le bureau des
+membres.
+
+<P>
+</LI>
+<LI>Placer une entr�e dans le menu d�marrage des membres
+
+<P>
+Cr�er une entr�e pour l'application dans le menu d�marrage.
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node5.html b/gosa-core/doc/core/fr/html/applications/node5.html
new file mode 100644
index 0000000..8182e2f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node5.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Script</TITLE>
+<META NAME="description" CONTENT="Script">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011300000000000000">
+Script</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node6.html b/gosa-core/doc/core/fr/html/applications/node6.html
new file mode 100644
index 0000000..44a63c2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node6.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Options</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Variable</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Nom de la variable</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Valeur par d�faut</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Valeurs par defaut asscoci�es � la variable</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+Utilisez le bouton <SPAN  CLASS="textit">Supprimez</SPAN> pour effacer une variable.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node7.html b/gosa-core/doc/core/fr/html/applications/node7.html
new file mode 100644
index 0000000..a54b9c7
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node7.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/node8.html b/gosa-core/doc/core/fr/html/applications/node8.html
new file mode 100644
index 0000000..792f498
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/applications/node8.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="applications">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="applications.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES APPLICATIONS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/applications/ applications.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/applications/rocket.png b/gosa-core/doc/core/fr/html/applications/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/applications/search.png b/gosa-core/doc/core/fr/html/applications/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/applications/search.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/WARNINGS b/gosa-core/doc/core/fr/html/blocklists/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/blocklists/blocklists.css b/gosa-core/doc/core/fr/html/blocklists/blocklists.css
new file mode 100644
index 0000000..e434a03
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/blocklists.css differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/blocklists.html b/gosa-core/doc/core/fr/html/blocklists/blocklists.html
new file mode 100644
index 0000000..c026259
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/blocklists.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES LISTES ROUGES DE FAX</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES LISTES ROUGES DE FAX">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES LISTES ROUGES DE FAX</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste Rouge des Fax</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Num�ros bloqu�s</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/index.html b/gosa-core/doc/core/fr/html/blocklists/index.html
new file mode 100644
index 0000000..c026259
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES LISTES ROUGES DE FAX</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES LISTES ROUGES DE FAX">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES LISTES ROUGES DE FAX</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Liste Rouge des Fax</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Num�ros bloqu�s</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/labels.pl b/gosa-core/doc/core/fr/html/blocklists/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/blocklists/list_back.png b/gosa-core/doc/core/fr/html/blocklists/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/list_home.png b/gosa-core/doc/core/fr/html/blocklists/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/list_new_blocklist.png b/gosa-core/doc/core/fr/html/blocklists/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/list_root.png b/gosa-core/doc/core/fr/html/blocklists/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/node1.html b/gosa-core/doc/core/fr/html/blocklists/node1.html
new file mode 100644
index 0000000..529d28d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/node1.html
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Liste Rouge des Fax</TITLE>
+<META NAME="description" CONTENT="Liste Rouge des Fax">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Liste Rouge des Fax</A>
+</H1>
+
+<P>
+L'administrateur peut configurer une liste rouge � partir du bouton
+<SPAN  CLASS="textbf"><SPAN ID="hue25">Liste Rouge des Fax</SPAN></SPAN> dans le menu de gauche
+dans la partie <SPAN  CLASS="textbf">Administration</SPAN>. 
+
+<P>
+La page <SPAN  CLASS="textsf">Configuration des listes rouges</SPAN> s'affiche. La page
+est divis�e en deux colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher les listes rouges,
+
+<P>
+- la deuxi�me colonne contient les ic�nes qui sont les actions que
+l'on peut executer sur ces listes.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Ces ic�nes pr�dominent sur toutes autres formes
+de s�l�ction d'affichage. 
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Configurations des listes rouges</SPAN>
+que l'administrateur g�re les listes rouges des fax instaur�es dans
+la soci�t�.
+
+<P>
+Il est possible de modifier l'affichage des listes en utilisant le
+tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+
+<P>
+A partir de ce tableau l'administrateur peut faire une recherche sur
+le nom :
+
+<P>
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre toutes
+les listes;
+
+<P>
+- cliquez sur une lettre et tous les noms des listes d�butant par
+cette lettre s'afficheront;
+
+<P>
+- cliquez sur un num�ro et tous les noms des listes d�butant par ce
+num�ro s'afficheront;
+
+<P>
+- recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez le
+champ par le nom d'une liste rouge et ensuite cliquez sur le bouton
+Appliquer.
+
+<P>
+
+<P>
+<BR>
+Pour cr�er et configurer les listes rouges des fax, l'administrateur
+doit cliquer sur le bouton <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_blocklist.png"
+ ALT="Image list_new_blocklist">. 
+
+<P>
+Appara�t l'espace de configuration.
+
+<P>
+Pour enregistrer la configuration, cliquez sur le bouton Termin�,
+pour revenir � la page pr�c�dente cliquez sur le bouton Annuler.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html17"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html18"
+  HREF="node3.html">Num�ros bloqu�s</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/node2.html b/gosa-core/doc/core/fr/html/blocklists/node2.html
new file mode 100644
index 0000000..d44220f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/node2.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue44">Nom de la liste</SPAN><SPAN ID="hue58">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Ins�rez le nom de la liste rouge des fax</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante du d�partement associ�
+� la liste</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Type</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Choisissez dans la liste d�roulante si la liste rouge des fax s'applique
+en sortie ou en entr�e</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Description de l'utilisation de la liste fax</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/node3.html b/gosa-core/doc/core/fr/html/blocklists/node3.html
new file mode 100644
index 0000000..3c1ed2d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/node3.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Num�ros bloqu�s</TITLE>
+<META NAME="description" CONTENT="Num�ros bloqu�s">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Num�ros bloqu�s</A>
+</H2>
+
+<P>
+L'administrateur doit ins�rer dans le champ inf�rieur les num�ros
+de fax qui seront li�s � la nouvelle liste rouge cr�ee. Utilisez les
+boutons <SPAN  CLASS="textit">Ajouter</SPAN> et <SPAN  CLASS="textit">Supprimer</SPAN> pour la gestion de ces
+num�ros.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/node4.html b/gosa-core/doc/core/fr/html/blocklists/node4.html
new file mode 100644
index 0000000..608b724
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/blocklists/node4.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="blocklists">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="blocklists.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES LISTES ROUGES DE FAX</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/blocklists/ blocklists.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/blocklists/rocket.png b/gosa-core/doc/core/fr/html/blocklists/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/blocklists/search.png b/gosa-core/doc/core/fr/html/blocklists/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/blocklists/search.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/WARNINGS b/gosa-core/doc/core/fr/html/conference/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/conference/conference.css b/gosa-core/doc/core/fr/html/conference/conference.css
new file mode 100644
index 0000000..a8a3460
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/conference.css
@@ -0,0 +1,42 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue25		{ color: #0000ff;  }
+#hue48		{ color: #000000;  }
+#hue72		{ color: #ff0000;  }
+#hue73		{ color: #ff0000;  }
+#hue74		{ color: #ff0000;  }
+#hue75		{ color: #ff0000;  }
+#hue76		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/fr/html/conference/conference.html b/gosa-core/doc/core/fr/html/conference/conference.html
new file mode 100644
index 0000000..1f02c15
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/conference.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES CONFERENCES TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES CONFERENCES TELEPHONIQUES">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES CONFERENCES TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Conf�rences t�l�phoniques</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/conference.png b/gosa-core/doc/core/fr/html/conference/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/conference.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/index.html b/gosa-core/doc/core/fr/html/conference/index.html
new file mode 100644
index 0000000..1f02c15
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES CONFERENCES TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES CONFERENCES TELEPHONIQUES">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES CONFERENCES TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Conf�rences t�l�phoniques</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Options</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/labels.pl b/gosa-core/doc/core/fr/html/conference/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/conference/list_back.png b/gosa-core/doc/core/fr/html/conference/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/list_home.png b/gosa-core/doc/core/fr/html/conference/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/list_root.png b/gosa-core/doc/core/fr/html/conference/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/node1.html b/gosa-core/doc/core/fr/html/conference/node1.html
new file mode 100644
index 0000000..5c7866e
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node1.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Conf�rences t�l�phoniques</TITLE>
+<META NAME="description" CONTENT="Conf�rences t�l�phoniques">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Conf�rences t�l�phoniques</A>
+</H1>
+
+<P>
+L'administrateur peut configurer les phone conferences � partir du
+bouton <SPAN  CLASS="textbf"><SPAN ID="hue25">Conf�rences t�l�phoniques</SPAN></SPAN> dans le
+menu de gauche dans la partie <SPAN  CLASS="textbf">Administration</SPAN>. La page <SPAN  CLASS="textsf">Gestion
+des conf�rences</SPAN> s'affiche. 
+
+<P>
+La page est divis�e en quatre colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher les noms ou num�ros
+de conf�rence,
+
+<P>
+- la deuxi�me colonne affiche le nom du propri�taire de la conf�rence,
+
+<P>
+- la troisi�me indique si il existe un code PIN pour la conf�rence,
+
+<P>
+- la derni�re colonne contient les ic�nes qui sont les actions que
+l'on peut executer sur ces conf�rences.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Ces ic�nes pr�dominent sur toutes autres formes
+de s�l�ction d'affichage. 
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Gestion des conf�rences</SPAN> que l'administrateur
+g�re les conf�rences t�l�phoniques organis�es dans la soci�t�.
+
+<P>
+Il est possible de modifier l'affichage des noms ou des num�ros en
+utilisant le tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+
+<P>
+L'administrateur peut faire une recherche sur le nom :
+
+<P>
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre tous
+les noms et num�ros;
+
+<P>
+- cliquez sur une lettre et tous les noms des conf�rences t�l�phoniques
+d�butant par cette lettre s'afficheront;
+
+<P>
+- cliquez sur un num�ro et tous les num�ros des conf�rences t�l�poniques
+d�butant par ce num�ro s'afficheront;
+
+<P>
+- recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez le
+champ par le nom ou le num�ro d'une conf�rence t�l�phonique et ensuite
+cliquez sur le bouton <SPAN  CLASS="textit">Appliquer</SPAN>.
+
+<P>
+
+<P>
+<BR>
+Pour cr�er et configurer une conf�rence t�l�phonique, l'administrateur
+doit cliquer sur le bouton <IMG
+  WIDTH="48" HEIGHT="48" ALIGN="BOTTOM" BORDER="0"
+ SRC="./conference.png"
+ ALT="Image conference">.
+
+<P>
+Appara�t l'espace de configuration.
+
+<P>
+Pour enregistrer la configuration, cliquez sur le bouton <SPAN  CLASS="textit">Termin�</SPAN>,
+pour revenir � la page pr�c�dente cliquez sur le bouton <SPAN  CLASS="textit">Annuler</SPAN>.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Options</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/node2.html b/gosa-core/doc/core/fr/html/conference/node2.html
new file mode 100644
index 0000000..b89d532
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html34"
+  HREF="node4.html">Options</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/node3.html b/gosa-core/doc/core/fr/html/conference/node3.html
new file mode 100644
index 0000000..f4b4e1f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node3.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Propri�t�s</TITLE>
+<META NAME="description" CONTENT="Propri�t�s">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Propri�t�s</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue48">Nom de la conf�rence</SPAN><SPAN ID="hue72">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom de la conf�rence</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Type<SPAN ID="hue73">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue74">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description<SPAN ID="hue75">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez une description, un commentaire sur la conf�rence</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Dur�e (en jours)</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez la validit� de la conf�rence</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Num�ro de t�l�phone<SPAN ID="hue76">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le num�ro de t�l�phone de la conf�rence</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/node4.html b/gosa-core/doc/core/fr/html/conference/node4.html
new file mode 100644
index 0000000..db423ff
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node4.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options</TITLE>
+<META NAME="description" CONTENT="Options">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Options</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Code PIN pr�s�lectionn�
+
+<P>
+Cochez si vous d�sirez qu'un code PIN pr�d�fini soit utilis� pour
+cette conf�rence.
+
+<P>
+</LI>
+<LI>Enregistrer la conf�rence
+
+<P>
+Cochez si vous d�sirez enregistrer la conf�rence.
+
+<P>
+</LI>
+<LI>Musique d'attente
+
+<P>
+Cochez si vous d�sirez activer la musique d'attente.
+
+<P>
+</LI>
+<LI>Activer le menu de session
+
+<P>
+Cochez si vous d�sirez activer le menu de session.
+
+<P>
+</LI>
+<LI>Annoncer les nouveaux utilisateurs et ceux qui quittent
+
+<P>
+Cochez si vous d�sirez qu'une annonce soit faite lorsque un participant
+rejoint ou quitte la conf�rence.
+
+<P>
+</LI>
+<LI>Compter les utilisateurs
+
+<P>
+Cochez si vous d�sirez compter les participants.
+
+<P>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/node5.html b/gosa-core/doc/core/fr/html/conference/node5.html
new file mode 100644
index 0000000..2598ba5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node5.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets. 
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/node6.html b/gosa-core/doc/core/fr/html/conference/node6.html
new file mode 100644
index 0000000..894ce39
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/conference/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="conference">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="conference.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES CONFERENCES TELEPHONIQUES</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/conference/ conference.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/conference/rocket.png b/gosa-core/doc/core/fr/html/conference/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/conference/search.png b/gosa-core/doc/core/fr/html/conference/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/conference/search.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/WARNINGS b/gosa-core/doc/core/fr/html/departments/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/departments/departments.css b/gosa-core/doc/core/fr/html/departments/departments.css
new file mode 100644
index 0000000..ccb9c03
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/departments.css
@@ -0,0 +1,38 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+DIV.flushleft		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue69		{ color: #ff0000;  }
+#hue71		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/fr/html/departments/departments.html b/gosa-core/doc/core/fr/html/departments/departments.html
new file mode 100644
index 0000000..8f0422a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/departments.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES DEPARTEMENTS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES DEPARTEMENTS">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES DEPARTEMENTS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">D�partements</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Lieu</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/index.html b/gosa-core/doc/core/fr/html/departments/index.html
new file mode 100644
index 0000000..8f0422a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES DEPARTEMENTS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES DEPARTEMENTS">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES DEPARTEMENTS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">D�partements</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Lieu</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/labels.pl b/gosa-core/doc/core/fr/html/departments/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/departments/list_back.png b/gosa-core/doc/core/fr/html/departments/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/list_home.png b/gosa-core/doc/core/fr/html/departments/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/list_new_department.png b/gosa-core/doc/core/fr/html/departments/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/list_new_department.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/list_root.png b/gosa-core/doc/core/fr/html/departments/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/node1.html b/gosa-core/doc/core/fr/html/departments/node1.html
new file mode 100644
index 0000000..ba76647
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node1.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>D�partements</TITLE>
+<META NAME="description" CONTENT="D�partements">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+D�partements</A>
+</H1>
+
+<P>
+L'administrateur peut cr�er ou modifier un d�partement ou acc�der
+aux informations sur un d�partement en utilisant le bouton <SPAN  CLASS="textbf"><SPAN ID="hue25">d�partements</SPAN></SPAN>
+de la partie <SPAN  CLASS="textbf">Administrateur</SPAN> dans le menu de gauche. La page
+<SPAN  CLASS="textsf">Configuration des d�partements</SPAN> s'affiche. 
+
+<P>
+La page est divis�e en deux colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher les noms de d�partements,
+
+<P>
+- la deuxi�me colonne contient des ic�nes qui sont les actions � executer
+sur un d�partement.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">
+, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Elles pr�dominent sur toutes autres formes de
+s�l�ction d'affichage.
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Configuration des d�partements</SPAN>
+que l'administrateur g�re la liste des d�partements cr�es pour la
+soci�t�.
+
+<P>
+Il est possible de modifier l'affichage des d�partements en utilisant
+le tableau intitul� <SPAN  CLASS="textit">Filtres</SPAN> <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">. 
+
+<P>
+L'administrateur peut y faire une recherche sur le nom :
+
+<P>
+- cliquez sur l'ast�risque (�toile) pour voir apara�tre tous les d�partements,
+
+<P>
+- cliquez sur une lettre, et tous les noms de d�partements commen�ant
+par cette lettre s'afficheront,
+
+<P>
+- cliquez sur un num�ro, et tous les noms de d�partements commen�ant
+par ce num�ro s'afficheront,
+
+<P>
+- recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez le
+champ avec un nom de d�partement, ensuite cliquez sur le bouton Appliquer.
+
+<P>
+
+<P>
+<BR>
+Pour cr�er un d�partement, l'administrateur doit cliquer sur le bouton
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_department.png"
+ ALT="Image list_new_department"> .
+
+<P>
+Appara�t alors l'espace de configuration des d�partements avec l'onglet
+<SPAN  CLASS="textit">informations g�n�rales</SPAN> et l'onglet <SPAN  CLASS="textit">R�f�rences</SPAN>.
+
+<P>
+Pour enregistrer la configuration cliquer sur le bouton Termin�, pour
+revenir � la page pr�c�dente cliquer sur le bouton Annuler.
+
+<P>
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html19"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html21"
+  HREF="node4.html">Lieu</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html22"
+  HREF="node5.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/node2.html b/gosa-core/doc/core/fr/html/departments/node2.html
new file mode 100644
index 0000000..be34fd7
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html33"
+  HREF="node3.html">Propri�t�s</A>
+<LI><A NAME="tex2html34"
+  HREF="node4.html">Lieu</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/node3.html b/gosa-core/doc/core/fr/html/departments/node3.html
new file mode 100644
index 0000000..2beb6c2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node3.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Propri�t�s</TITLE>
+<META NAME="description" CONTENT="Propri�t�s">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Propri�t�s</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom du d�partement<SPAN ID="hue69">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom du d�partement.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description<SPAN ID="hue70">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>
+<DIV ALIGN="LEFT">
+Introduisez une description, un commentaire sur le d�partement
+</DIV>
+<P>
+<DIV ALIGN="LEFT">
+</DIV></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Cat�gorie</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue71">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/node4.html b/gosa-core/doc/core/fr/html/departments/node4.html
new file mode 100644
index 0000000..ab60b37
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node4.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Lieu</TITLE>
+<META NAME="description" CONTENT="Lieu">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Lieu</A>
+</H3>
+
+<P>
+Dans le cas d'une soci�t� poss�dant plusieurs d�partements sur des
+sites s�par�s.
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>D�partement</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom du d�partement</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Lieu</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'endroit ou est situ� le d�partement</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'adresse du d�partement</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>T�l�phone</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le t�l�phone central du d�partement</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le fax central du d�partement</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/node5.html b/gosa-core/doc/core/fr/html/departments/node5.html
new file mode 100644
index 0000000..955b39a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node5.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/node6.html b/gosa-core/doc/core/fr/html/departments/node6.html
new file mode 100644
index 0000000..20ba99f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/departments/node6.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES DEPARTEMENTS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/departments/ departments.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/departments/rocket.png b/gosa-core/doc/core/fr/html/departments/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/departments/search.png b/gosa-core/doc/core/fr/html/departments/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/departments/search.png differ
diff --git a/gosa-core/doc/core/fr/html/faxreports/WARNINGS b/gosa-core/doc/core/fr/html/faxreports/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/faxreports/faxreports.css b/gosa-core/doc/core/fr/html/faxreports/faxreports.css
new file mode 100644
index 0000000..8cb768e
Binary files /dev/null and b/gosa-core/doc/core/fr/html/faxreports/faxreports.css differ
diff --git a/gosa-core/doc/core/fr/html/faxreports/faxreports.html b/gosa-core/doc/core/fr/html/faxreports/faxreports.html
new file mode 100644
index 0000000..c9acbc2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/faxreports.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>RAPPORTS DES FAX</TITLE>
+<META NAME="description" CONTENT="RAPPORTS DES FAX">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">RAPPORTS DES FAX</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Rapports des Fax</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/faxreports/index.html b/gosa-core/doc/core/fr/html/faxreports/index.html
new file mode 100644
index 0000000..c9acbc2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/index.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>RAPPORTS DES FAX</TITLE>
+<META NAME="description" CONTENT="RAPPORTS DES FAX">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">RAPPORTS DES FAX</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Rapports des Fax</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/faxreports/labels.pl b/gosa-core/doc/core/fr/html/faxreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/faxreports/node1.html b/gosa-core/doc/core/fr/html/faxreports/node1.html
new file mode 100644
index 0000000..d409e00
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/node1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Rapports des Fax</TITLE>
+<META NAME="description" CONTENT="Rapports des Fax">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Rapports des Fax</A>
+</H1>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/faxreports/node2.html b/gosa-core/doc/core/fr/html/faxreports/node2.html
new file mode 100644
index 0000000..b744db2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/faxreports/node2.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="faxreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="faxreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">RAPPORTS DES FAX</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/faxreports/ faxreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/fonreports/WARNINGS b/gosa-core/doc/core/fr/html/fonreports/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/fonreports/fonreports.css b/gosa-core/doc/core/fr/html/fonreports/fonreports.css
new file mode 100644
index 0000000..8cb768e
Binary files /dev/null and b/gosa-core/doc/core/fr/html/fonreports/fonreports.css differ
diff --git a/gosa-core/doc/core/fr/html/fonreports/fonreports.html b/gosa-core/doc/core/fr/html/fonreports/fonreports.html
new file mode 100644
index 0000000..aad1007
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/fonreports.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>RAPPORTS TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="RAPPORTS TELEPHONIQUES">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">RAPPORTS TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Rapports des t�l�phones</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/fonreports/index.html b/gosa-core/doc/core/fr/html/fonreports/index.html
new file mode 100644
index 0000000..aad1007
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/index.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>RAPPORTS TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="RAPPORTS TELEPHONIQUES">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">RAPPORTS TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Rapports des t�l�phones</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/fonreports/labels.pl b/gosa-core/doc/core/fr/html/fonreports/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/fonreports/node1.html b/gosa-core/doc/core/fr/html/fonreports/node1.html
new file mode 100644
index 0000000..c0b28f1
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/node1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Rapports des t�l�phones</TITLE>
+<META NAME="description" CONTENT="Rapports des t�l�phones">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Rapports des t�l�phones</A>
+</H1>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/fonreports/node2.html b/gosa-core/doc/core/fr/html/fonreports/node2.html
new file mode 100644
index 0000000..136ebb9
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/fonreports/node2.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="fonreports">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="fonreports.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">RAPPORTS TELEPHONIQUES</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/fonreports/ fonreports.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/WARNINGS b/gosa-core/doc/core/fr/html/groups/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/groups/groups.css b/gosa-core/doc/core/fr/html/groups/groups.css
new file mode 100644
index 0000000..246767b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/groups.css differ
diff --git a/gosa-core/doc/core/fr/html/groups/groups.html b/gosa-core/doc/core/fr/html/groups/groups.html
new file mode 100644
index 0000000..930633d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/groups.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES GROUPES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES GROUPES">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES GROUPES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groupes</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Adresses alternatives</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">R�pertoire partag� IMAP</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Transf�rer les messages vers un membre n'appartenant pas au groupe</A>
+</UL>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/index.html b/gosa-core/doc/core/fr/html/groups/index.html
new file mode 100644
index 0000000..930633d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/index.html
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES GROUPES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES GROUPES">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES GROUPES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groupes</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Adresses alternatives</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">R�pertoire partag� IMAP</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Transf�rer les messages vers un membre n'appartenant pas au groupe</A>
+</UL>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/labels.pl b/gosa-core/doc/core/fr/html/groups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/groups/list_back.png b/gosa-core/doc/core/fr/html/groups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/groups/list_home.png b/gosa-core/doc/core/fr/html/groups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/groups/list_new_group.png b/gosa-core/doc/core/fr/html/groups/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/list_new_group.png differ
diff --git a/gosa-core/doc/core/fr/html/groups/list_root.png b/gosa-core/doc/core/fr/html/groups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/groups/node1.html b/gosa-core/doc/core/fr/html/groups/node1.html
new file mode 100644
index 0000000..4579267
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node1.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groupes</TITLE>
+<META NAME="description" CONTENT="Groupes">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Groupes</A>
+</H1>
+
+<P>
+L'administrateur peut cr�er ou modifier un groupe ou acc�der aux informations
+sur un groupe � partir du bouton <SPAN ID="hue25">Groupe</SPAN> dans le
+menu de gauche dans <SPAN  CLASS="textbf">Administration</SPAN>. La page <SPAN  CLASS="textsf"><SPAN ID="hue28">Administration
+des groupes</SPAN></SPAN> <SPAN ID="hue30">s'affiche. </SPAN>
+<P>
+<SPAN ID="hue32">La page est divis�e en trois colonnes : </SPAN>
+<P>
+<SPAN ID="hue34">-La premi�re colonne est destin�e � afficher la
+liste des groupes ou des d�partements, </SPAN>
+<P>
+<SPAN ID="hue36">-les deux derni�res colonnes contiennent des ic�nes.
+Elles repr�sentent les raccourcis vers les propri�t�s du groupe et
+les actions � ex�cuter sur le groupe.</SPAN>
+<P>
+<SPAN ID="hue127">-Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">
+) servent � modifier l'affichage selon le d�partement, elles pr�dominent
+sur toutes autres formes de s�lection d'affichage.</SPAN>
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf"><SPAN ID="hue43">Administration
+du groupe</SPAN></SPAN> que l'administrateur g�re la liste des groupes de la soci�t�.
+
+<P>
+Comme pour les utilisateurs, il est possible de modifier l'affichage
+des groupes en utilisant le tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+L'administrateur peut faire une recherche nominative et/ou sur les
+propri�t�s du groupe :
+
+<P>
+
+<UL>
+<LI>Pour la recherche sur les noms : 
+
+<P>
+- cliquer sur l'ast�risque (ou �toile : *) pour voir appara�tre
+tous les groupes; 
+
+<P>
+- cliquez sur une lettre et tous les groupes commen�ant par cette
+lettre seront affich�s; 
+
+<P>
+- cliquez sur un num�ro, les groupes ayant un nom d�butant par le
+num�ro choisi s'afficheront.
+
+<P>
+</LI>
+<LI>Pour la recherche � partir des propri�t�s du groupe il suffit :
+
+<P>
+- de cocher une ou plusieurs propositions; 
+
+<P>
+</LI>
+<LI>Pour la recherche d'un nom � partir d'une lettre :
+
+<P>
+- remplir le premier champ avec une lettre suivi de l'ast�risque,
+cliquer sur le bouton Appliquer, tous les noms d�butant par cettre
+lettre seront affich�s,
+
+<P>
+- remplir le deuxi�me champ avec une lettre suivi de l'ast�risque,
+cliquer sur le bouton Appliquer, tous les noms contenant cette lettre
+seront affich�s.
+
+<P>
+</LI>
+</UL>
+Pour cr�er un groupe l'administrateur doit cliquer sur le bouton <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_group.png"
+ ALT="Image list_new_group">.
+
+<P>
+Appara�t alors l'espace de configuration. L'administrateur configure
+les extensions pour chaque groupe. 
+
+<P>
+A chaque extension configur�e, pour enregistrer les modifications,
+cliquer sur le bouton Termin� et pour revenir � la page pr�c�dente
+cliquer sur le bouton Annuler.
+
+<P>
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+
+<P>
+En haut � droite une s�rie d'information vous est donn�e : le nom
+du groupe sur lequel vous �tes occup�, et sa place dans l'arbre LDAP.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html31"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html32"
+  HREF="node3.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html33"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html34"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html35"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html36"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html37"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html38"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node10.html">Applications</A>
+<LI><A NAME="tex2html40"
+  HREF="node11.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html41"
+  HREF="node12.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html42"
+  HREF="node13.html">Adresses alternatives</A>
+<LI><A NAME="tex2html43"
+  HREF="node14.html">R�pertoire partag� IMAP</A>
+<LI><A NAME="tex2html44"
+  HREF="node15.html">Transf�rer les messages vers un membre n'appartenant pas au groupe</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html45"
+  HREF="node16.html">ACL</A>
+<LI><A NAME="tex2html46"
+  HREF="node17.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node10.html b/gosa-core/doc/core/fr/html/groups/node10.html
new file mode 100644
index 0000000..c169935
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node10.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Applications</TITLE>
+<META NAME="description" CONTENT="Applications">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Applications</A>
+</H2>
+
+<P>
+Pour activer l'extension Applications cliquez sur <SPAN  CLASS="textit">Cr�er des
+applications</SPAN>.
+
+<P>
+L'administrateur dispose de la liste des applications dans la colonne
+Applications disponibles. Il peut attribuer une ou plusieurs applications
+� un groupe. Il suffit de cliquer sur le nom d'une application celle
+ci appara�t dans la colonne Applications utilis�es.
+
+<P>
+A l'aide du bouton S�parateur l'administrateur peut s�parer de mani�re
+visuelle une application par rapport aux autres. 
+
+<P>
+Pour terminer cliquer sur le bouton <SPAN  CLASS="textit">Terminer</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node11.html b/gosa-core/doc/core/fr/html/groups/node11.html
new file mode 100644
index 0000000..41b08a0
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node11.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Mail</A>
+</H2>
+
+<P>
+Pour activer un compte mail cliquez sur <SPAN  CLASS="textit">Cr�er un compte</SPAN> <SPAN  CLASS="textit">de
+messagerie</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html151"
+  HREF="node12.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html152"
+  HREF="node13.html">Adresses alternatives</A>
+<LI><A NAME="tex2html153"
+  HREF="node14.html">R�pertoire partag� IMAP</A>
+<LI><A NAME="tex2html154"
+  HREF="node15.html">Transf�rer les messages vers un membre n'appartenant pas au groupe</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node12.html b/gosa-core/doc/core/fr/html/groups/node12.html
new file mode 100644
index 0000000..0704640
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node12.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Informations g�n�rales</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse principale<SPAN ID="hue133">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue92">Introduisez l'adresse principale du groupe</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Serveur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue94">S�lectionnez le nom du serveur associ� � cette adresse</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Utilisation des Quota</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue96">Pr�cisez si vous d�sirez �tablir une limite au niveau
+de la quantit� de mail</SPAN> <SPAN ID="hue98">entrant.</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Taille des Quota</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue100">Pr�cisez en kb la taille du quota</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node13.html b/gosa-core/doc/core/fr/html/groups/node13.html
new file mode 100644
index 0000000..5e514c5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node13.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Adresses alternatives</TITLE>
+<META NAME="description" CONTENT="Adresses alternatives">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Adresses alternatives</A>
+</H3>
+
+<P>
+Le mail peut �tre redirig� vers une ou plusieurs autres adresses.
+Ces adresses sont des alias � ins�rer dans Adresses alternatives. 
+
+<P>
+Utilisez les boutons <SPAN  CLASS="textit">Ajouter</SPAN> ou <SPAN  CLASS="textit">Supprimer</SPAN> pour g�rer
+les alias.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node14.html b/gosa-core/doc/core/fr/html/groups/node14.html
new file mode 100644
index 0000000..75722e2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node14.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�pertoire partag� IMAP</TITLE>
+<META NAME="description" CONTENT="R�pertoire partag� IMAP">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+R�pertoire partag� IMAP</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Permission par d�faut</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante du type d'acc�s par
+d�faut au dossier IMAP</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Permission des membres</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante du type d'acc�s accord�
+aux membres au dossier IMAP</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>L'administrateur peut ajouter � partir de ce champ d'autres adresses
+de messagerie avec un droit d'acc�s au dossier IMAP</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node15.html b/gosa-core/doc/core/fr/html/groups/node15.html
new file mode 100644
index 0000000..9ddf5c5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node15.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Transf�rer les messages vers un membre n'appartenant pas au groupe</TITLE>
+<META NAME="description" CONTENT="Transf�rer les messages vers un membre n'appartenant pas au groupe">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Transf�rer les messages vers un membre n'appartenant pas au groupe</A>
+</H3>
+
+<P>
+Des utilisateurs peuvent recevoir les messages d'un groupe sans pour
+autant en �tre membre. Il suffit d'ins�rer les adresses de ces utilisateurs
+dans le champ qui pr�c�de les boutons <SPAN  CLASS="textit">Ajouter</SPAN>, <SPAN  CLASS="textit">Ajouter
+en local</SPAN> et <SPAN  CLASS="textit">Supprimer</SPAN>. Le bouton <SPAN  CLASS="textit">Ajouter en local</SPAN> renvoie
+aux adresses d�j� enregistr�es dans GOsa.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node16.html b/gosa-core/doc/core/fr/html/groups/node16.html
new file mode 100644
index 0000000..5ea4dae
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node16.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ACL</TITLE>
+<META NAME="description" CONTENT="ACL">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+ACL</A>
+</H2>
+
+<P>
+Cette partie permet � l'administrateur de configurer les droits d'acc�s
+de l'utilisateur ou du groupe aux diff�rentes parties de GOsa. 
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node17.html b/gosa-core/doc/core/fr/html/groups/node17.html
new file mode 100644
index 0000000..80ccbfd
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node17.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node18.html b/gosa-core/doc/core/fr/html/groups/node18.html
new file mode 100644
index 0000000..6995d78
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node18.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES GROUPES</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/groups/ groups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node2.html b/gosa-core/doc/core/fr/html/groups/node2.html
new file mode 100644
index 0000000..36d8c6a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node2.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+
+<UL>
+<LI><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom du groupe<SPAN ID="hue130">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom du groupe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez une description, un commentaire sur le groupe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue131">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+</TABLE>
+</LI>
+<LI>Forcer le GID : Forcer le groupe � utiliser le num�ro inscrit dans
+le champ.
+</LI>
+<LI>Groupe / Domaine Samba : Met les membres dans un groupe et un domaine
+samba
+</LI>
+<LI>Groupe t�l�phonique : Met les membres dans un groupe t�l�phonique
+</LI>
+<LI>Groupe Nagios : Met les membres dans un groupe nagios 
+</LI>
+</UL>
+L'administrateur ins�re les membres du personnel devant faire partie
+de ce groupe. Il suffit d'utiliser le bouton <SPAN  CLASS="textit">Ajouter</SPAN> qui renvoie
+� la liste des utilisateurs. L'administrateur doit s�lectionner les
+futurs membres du groupe. Pour enlever un membre, utiliser le bouton
+<SPAN  CLASS="textit">Supprimer</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node3.html b/gosa-core/doc/core/fr/html/groups/node3.html
new file mode 100644
index 0000000..0a8717a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node3.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Environnement</TITLE>
+<META NAME="description" CONTENT="Environnement">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Environnement</A>
+</H2>
+
+<P>
+Pour activer l'extension Environnement cliquer sur <SPAN  CLASS="textit">Ajouter
+l'extension environnement</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html67"
+  HREF="node4.html">Profiles</A>
+<LI><A NAME="tex2html68"
+  HREF="node5.html">Kiosk profile</A>
+<LI><A NAME="tex2html69"
+  HREF="node6.html">Logon scripts</A>
+<LI><A NAME="tex2html70"
+  HREF="node7.html">Attach share</A>
+<LI><A NAME="tex2html71"
+  HREF="node8.html">Hotplug devices</A>
+<LI><A NAME="tex2html72"
+  HREF="node9.html">Imprimante</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node4.html b/gosa-core/doc/core/fr/html/groups/node4.html
new file mode 100644
index 0000000..2155559
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node4.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profiles</TITLE>
+<META NAME="description" CONTENT="Profiles">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Profiles</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node5.html b/gosa-core/doc/core/fr/html/groups/node5.html
new file mode 100644
index 0000000..62abee0
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node5.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profile</TITLE>
+<META NAME="description" CONTENT="Kiosk profile">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Kiosk profile</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node6.html b/gosa-core/doc/core/fr/html/groups/node6.html
new file mode 100644
index 0000000..3529ee5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node6.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Logon scripts</TITLE>
+<META NAME="description" CONTENT="Logon scripts">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012300000000000000">
+Logon scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node7.html b/gosa-core/doc/core/fr/html/groups/node7.html
new file mode 100644
index 0000000..68a35f6
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node7.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Attach share</TITLE>
+<META NAME="description" CONTENT="Attach share">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012400000000000000">
+Attach share</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node8.html b/gosa-core/doc/core/fr/html/groups/node8.html
new file mode 100644
index 0000000..16a0901
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node8.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug devices</TITLE>
+<META NAME="description" CONTENT="Hotplug devices">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012500000000000000">
+Hotplug devices</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/node9.html b/gosa-core/doc/core/fr/html/groups/node9.html
new file mode 100644
index 0000000..071f051
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/groups/node9.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Imprimante</TITLE>
+<META NAME="description" CONTENT="Imprimante">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012600000000000000">
+Imprimante</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/groups/rocket.png b/gosa-core/doc/core/fr/html/groups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/groups/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/WARNINGS b/gosa-core/doc/core/fr/html/ldapmanager/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/index.html b/gosa-core/doc/core/fr/html/ldapmanager/index.html
new file mode 100644
index 0000000..c2c4de8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/index.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GERER LDAP</TITLE>
+<META NAME="description" CONTENT="GERER LDAP">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">GERER LDAP</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">GERER LDAP</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/labels.pl b/gosa-core/doc/core/fr/html/ldapmanager/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.css b/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.css
new file mode 100644
index 0000000..8cb768e
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.css differ
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.html b/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.html
new file mode 100644
index 0000000..c2c4de8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/ldapmanager.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GERER LDAP</TITLE>
+<META NAME="description" CONTENT="GERER LDAP">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">GERER LDAP</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">GERER LDAP</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/node1.html b/gosa-core/doc/core/fr/html/ldapmanager/node1.html
new file mode 100644
index 0000000..92e6682
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/node1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>GERER LDAP</TITLE>
+<META NAME="description" CONTENT="GERER LDAP">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+GERER LDAP</A>
+</H1>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ldapmanager/node2.html b/gosa-core/doc/core/fr/html/ldapmanager/node2.html
new file mode 100644
index 0000000..6c41cd8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ldapmanager/node2.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ldapmanager">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ldapmanager.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">GERER LDAP</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/ldapmanager/ ldapmanager.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/logview/WARNINGS b/gosa-core/doc/core/fr/html/logview/WARNINGS
new file mode 100644
index 0000000..c9e579b
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/logview/index.html b/gosa-core/doc/core/fr/html/logview/index.html
new file mode 100644
index 0000000..4f035bd
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/index.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>LOGS SYSTEMES</TITLE>
+<META NAME="description" CONTENT="LOGS SYSTEMES">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">LOGS SYSTEMES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Logs syst�mes</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/logview/labels.pl b/gosa-core/doc/core/fr/html/logview/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/logview/logview.css b/gosa-core/doc/core/fr/html/logview/logview.css
new file mode 100644
index 0000000..8cb768e
Binary files /dev/null and b/gosa-core/doc/core/fr/html/logview/logview.css differ
diff --git a/gosa-core/doc/core/fr/html/logview/logview.html b/gosa-core/doc/core/fr/html/logview/logview.html
new file mode 100644
index 0000000..4f035bd
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/logview.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>LOGS SYSTEMES</TITLE>
+<META NAME="description" CONTENT="LOGS SYSTEMES">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">LOGS SYSTEMES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Logs syst�mes</A>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/logview/node1.html b/gosa-core/doc/core/fr/html/logview/node1.html
new file mode 100644
index 0000000..93b9949
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/node1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Logs syst�mes</TITLE>
+<META NAME="description" CONTENT="Logs syst�mes">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Logs syst�mes</A>
+</H1>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/logview/node2.html b/gosa-core/doc/core/fr/html/logview/node2.html
new file mode 100644
index 0000000..9c31486
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/logview/node2.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="logview">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="logview.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">LOGS SYSTEMES</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/logview/ logview.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/WARNINGS b/gosa-core/doc/core/fr/html/macro/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/macro/index.html b/gosa-core/doc/core/fr/html/macro/index.html
new file mode 100644
index 0000000..e547151
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/index.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES MACROS TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES MACROS TELEPHONIQUES">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES MACROS TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Phone macros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Param�tres</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/labels.pl b/gosa-core/doc/core/fr/html/macro/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/macro/list_back.png b/gosa-core/doc/core/fr/html/macro/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/macro/list_home.png b/gosa-core/doc/core/fr/html/macro/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/macro/list_new_macro.png b/gosa-core/doc/core/fr/html/macro/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/list_new_macro.png differ
diff --git a/gosa-core/doc/core/fr/html/macro/list_root.png b/gosa-core/doc/core/fr/html/macro/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/macro/macro.css b/gosa-core/doc/core/fr/html/macro/macro.css
new file mode 100644
index 0000000..9951149
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/macro.css
@@ -0,0 +1,37 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue47		{ color: #000000;  }
+#hue69		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/fr/html/macro/macro.html b/gosa-core/doc/core/fr/html/macro/macro.html
new file mode 100644
index 0000000..e547151
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/macro.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES MACROS TELEPHONIQUES</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES MACROS TELEPHONIQUES">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES MACROS TELEPHONIQUES</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Phone macros</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Param�tres</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/node1.html b/gosa-core/doc/core/fr/html/macro/node1.html
new file mode 100644
index 0000000..c9be9c9
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/node1.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone macros</TITLE>
+<META NAME="description" CONTENT="Phone macros">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Phone macros</A>
+</H1>
+
+<P>
+L'administrateur peut configurer les phone macros � partir du bouton
+<SPAN  CLASS="textbf"><SPAN ID="hue25">Phone macros</SPAN></SPAN> dans le menu de gauche dans
+la partie <SPAN  CLASS="textbf">Administration</SPAN>. La page <SPAN  CLASS="textsf">Phone macro management</SPAN>
+s'affiche. 
+
+<P>
+La page est divis�e en trois colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher les noms des macros
+t�l�phoniques,
+
+<P>
+- la deuxi�me colonne indique si la macro est visible ou non par l'utilisateur,
+
+<P>
+- la troisi�me colonne contient les ic�nes qui sont les actions que
+l'on peut executer sur ces macros t�l�phoniques.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Ces ic�nes pr�dominent sur toutes autres formes
+de s�l�ction d'affichage. 
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Phone macro management</SPAN> que l'administrateur
+g�re les phone macros instaur�es dans la soci�t�.
+
+<P>
+Il est possible de modifier l'affichage des phone macros en utilisant
+le tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+
+<P>
+L'administrateur peut faire une recherche sur le nom :
+
+<P>
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre toutes
+les macros t�l�phoniques;
+
+<P>
+- cliquez sur une lettre et tous les noms des macros t�l�phoniques
+d�butant par cette lettre s'afficheront;
+
+<P>
+- cliquez sur un num�ro et tous les noms des macros t�l�phoniques
+d�butant par ce num�ro s'afficheront;
+
+<P>
+- recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez le
+champ par le nom de la macro et ensuite cliquez sur le bouton <SPAN  CLASS="textit">Appliquer</SPAN>.
+
+<P>
+
+<P>
+<BR>
+Pour cr�er et configurer une macro t�l�phonique, l'administrateur
+doit cliquer sur le bouton <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_macro.png"
+ ALT="Image list_new_macro">.
+
+<P>
+Appara�t l'espace de configuration.
+
+<P>
+Pour enregistrer la configuration, cliquez sur le bouton <SPAN  CLASS="textit">Termin�</SPAN>,
+pour revenir � la page pr�c�dente cliquez sur le bouton <SPAN  CLASS="textit">Annuler</SPAN>.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html18"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html19"
+  HREF="node3.html">Param�tres</A>
+<LI><A NAME="tex2html20"
+  HREF="node4.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/node2.html b/gosa-core/doc/core/fr/html/macro/node2.html
new file mode 100644
index 0000000..7f8c1ff
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/node2.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue47">Nom de la macro</SPAN><SPAN ID="hue67">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom de la macro</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue51">Nom � afficher</SPAN><SPAN ID="hue68">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom qui sera visible par l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue69">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez une description, un commentaire sur la macro t�l�phonique</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Visible pour l'utilisateur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez si vous voulez que la macro apparaisse lors de la s�l�ction
+des macros t�l�phoniques</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Texte de la macro</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Contenu de la macro � ex�cuter</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/node3.html b/gosa-core/doc/core/fr/html/macro/node3.html
new file mode 100644
index 0000000..42913c8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/node3.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Param�tres</TITLE>
+<META NAME="description" CONTENT="Param�tres">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Param�tres</A>
+</H2>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/node4.html b/gosa-core/doc/core/fr/html/macro/node4.html
new file mode 100644
index 0000000..4b50269
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/node4.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/node5.html b/gosa-core/doc/core/fr/html/macro/node5.html
new file mode 100644
index 0000000..4b2f256
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/macro/node5.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="macro">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="macro.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES MACROS TELEPHONIQUES</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/macro/ macro.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/macro/rocket.png b/gosa-core/doc/core/fr/html/macro/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/macro/search.png b/gosa-core/doc/core/fr/html/macro/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/macro/search.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/WARNINGS b/gosa-core/doc/core/fr/html/ogroups/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/ogroups/index.html b/gosa-core/doc/core/fr/html/ogroups/index.html
new file mode 100644
index 0000000..83f9bce
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/index.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groupes d'objets</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/labels.pl b/gosa-core/doc/core/fr/html/ogroups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/ogroups/list_back.png b/gosa-core/doc/core/fr/html/ogroups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/list_home.png b/gosa-core/doc/core/fr/html/ogroups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/list_new_ogroup.png b/gosa-core/doc/core/fr/html/ogroups/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/list_root.png b/gosa-core/doc/core/fr/html/ogroups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/node1.html b/gosa-core/doc/core/fr/html/ogroups/node1.html
new file mode 100644
index 0000000..e0e7819
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/node1.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groupes d'objets</TITLE>
+<META NAME="description" CONTENT="Groupes d'objets">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Groupes d'objets</A>
+</H1>
+
+<P>
+Un Groupe d'objets est un groupe h�t�rog�ne. C'est la possibilit�
+qu'a l'administrateur de cr�er des combinaisons d'objets de nature
+diff�rente dans un m�me groupe pour r�pondre � la probl�matique d'une
+situation donn�e. C'est ce qu'on appelle le Groupe d'objets. Cela
+permet une gestion plus souple et plus appropri�e que la cr�ation
+de groupes classiques.
+
+<P>
+L'administrateur peut ajouter et configurer les Groupes d'objets �
+partir du bouton <SPAN  CLASS="textbf"><SPAN ID="hue25">Groupes d'objets</SPAN></SPAN> dans
+le menu de gauche dans la partie <SPAN  CLASS="textbf">Administration</SPAN>. La page
+<SPAN  CLASS="textsf">Groupes d'objets</SPAN> s'affiche. 
+
+<P>
+La page est divis�e en trois colonnes :
+
+<P>
+- la premi�re colonne est destin�e � afficher les noms des Groupes
+d'objets,
+
+<P>
+- la deuxi�me colonne contient les ic�nes qui sont des raccourcis
+vers les propri�t�s des Groupes d'objets,
+
+<P>
+- la troisi�me colonne contient les ic�nes qui sont les actions que
+l'on peut ex�cuter sur les Groupes d'objets.
+
+<P>
+Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> ) servent � modifier l'affichage
+selon le d�partement. Ces ic�nes pr�dominent sur toutes autres formes
+de s�l�ction d'affichage. 
+
+<P>
+
+<P>
+<BR>
+C'est � partir de la page <SPAN  CLASS="textsf">Groupes d'objets</SPAN> que l'administrateur
+g�re les Groupes d'objets cr��s pour la soci�t�.
+
+<P>
+Il est possible de modifier l'affichage de la liste des Groupes en
+utilisant le tableau intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">.
+
+<P>
+
+<UL>
+<LI>L'administrateur peut faire une recherche sur le nom :
+
+<P>
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre tous
+les noms de Groupes d'objets;
+
+<P>
+- cliquez sur une lettre et tous les noms de Groupes d'objets d�butant
+par cette lettre s'afficheront;
+
+<P>
+- cliquez sur un num�ro et tous les noms des Groupes d'objets d�butant
+par ce num�ro s'afficheront.
+
+<P>
+</LI>
+<LI>L'administrateur peut faire une recherche � partir des propri�t�s
+du Groupe d'objets :
+
+<P>
+- cochez une ou plusieurs propositions 
+
+<P>
+</LI>
+<LI>Ou encore la recherche rapide <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search"> : remplissez
+le champ par le nom du Groupes d'objets recherch� et ensuite cliquez
+sur le bouton <SPAN  CLASS="textit">Appliquer</SPAN>.
+</LI>
+</UL>
+
+<P>
+<BR>
+Pour cr�er, configurer ou modifier un Groupe d'objets, l'administrateur
+doit cliquer sur le bouton <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_ogroup.png"
+ ALT="Image list_new_ogroup">. 
+
+<P>
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html17"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html18"
+  HREF="node3.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/node2.html b/gosa-core/doc/core/fr/html/ogroups/node2.html
new file mode 100644
index 0000000..fe01876
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/node2.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom du groupe<SPAN ID="hue61">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom du groupe � cr�er</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Description</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez une description, un commentaire sur le groupe</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base<SPAN ID="hue62">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Objets membres</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue51">L'objet membre reprend la liste des objets associ�s
+au Groupe d'objets cr�</SPAN>e. Le bouton Ajouter renvoie � la liste des
+objets existants, utilisez le bouton Supprimer pour effacer.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/node3.html b/gosa-core/doc/core/fr/html/ogroups/node3.html
new file mode 100644
index 0000000..cc457db
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/node3.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences r�sument les relations existantes entre objets.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/node4.html b/gosa-core/doc/core/fr/html/ogroups/node4.html
new file mode 100644
index 0000000..7c94441
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/node4.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/ogroups/ ogroups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/ogroups.css b/gosa-core/doc/core/fr/html/ogroups/ogroups.css
new file mode 100644
index 0000000..4044fd1
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/ogroups.css
@@ -0,0 +1,35 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
diff --git a/gosa-core/doc/core/fr/html/ogroups/ogroups.html b/gosa-core/doc/core/fr/html/ogroups/ogroups.html
new file mode 100644
index 0000000..83f9bce
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/ogroups/ogroups.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION">
+<META NAME="keywords" CONTENT="ogroups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="ogroups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groupes d'objets</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/ogroups/rocket.png b/gosa-core/doc/core/fr/html/ogroups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/ogroups/search.png b/gosa-core/doc/core/fr/html/ogroups/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/ogroups/search.png differ
diff --git a/gosa-core/doc/core/fr/html/users/WARNINGS b/gosa-core/doc/core/fr/html/users/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/fr/html/users/closedlock.png b/gosa-core/doc/core/fr/html/users/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/closedlock.png differ
diff --git a/gosa-core/doc/core/fr/html/users/index.html b/gosa-core/doc/core/fr/html/users/index.html
new file mode 100644
index 0000000..deac790
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/index.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES UTILISATEURS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES UTILISATEURS">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES UTILISATEURS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Utilisateurs</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Informations personnelles</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Informations sur l'entreprise</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Appartient aux groupes</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Compte</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Syst�me de confiance</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Options du compte de messagerie</A>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Options de messagerie avanc�es</A>
+</UL>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Serveur de terminal</A>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Options d'acc�s</A>
+</UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Connectivit�</A>
+<LI><A NAME="tex2html29"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html30"
+  HREF="node33.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html31"
+  HREF="node34.html">M�thodes de distribution</A>
+<LI><A NAME="tex2html32"
+  HREF="node35.html">Num�ros de fax alternatif</A>
+<LI><A NAME="tex2html33"
+  HREF="node36.html">Listes rouges</A>
+</UL>
+<LI><A NAME="tex2html34"
+  HREF="node37.html">T�l�phone</A>
+<UL>
+<LI><A NAME="tex2html35"
+  HREF="node38.html">Num�ros de t�l�phone</A>
+<LI><A NAME="tex2html36"
+  HREF="node39.html">Mat�riel t�l�phonique</A>
+<LI><A NAME="tex2html37"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node41.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node42.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/labels.pl b/gosa-core/doc/core/fr/html/users/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/fr/html/users/list_back.png b/gosa-core/doc/core/fr/html/users/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/list_back.png differ
diff --git a/gosa-core/doc/core/fr/html/users/list_home.png b/gosa-core/doc/core/fr/html/users/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/list_home.png differ
diff --git a/gosa-core/doc/core/fr/html/users/list_new_user.png b/gosa-core/doc/core/fr/html/users/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/list_new_user.png differ
diff --git a/gosa-core/doc/core/fr/html/users/list_root.png b/gosa-core/doc/core/fr/html/users/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/list_root.png differ
diff --git a/gosa-core/doc/core/fr/html/users/node1.html b/gosa-core/doc/core/fr/html/users/node1.html
new file mode 100644
index 0000000..4861c4c
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node1.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Utilisateurs</TITLE>
+<META NAME="description" CONTENT="Utilisateurs">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Utilisateurs</A>
+</H1>
+
+<P>
+L'administrateur peut cr�er ou modifier un compte ou acc�der aux informations
+sur un compte en cliquant sur le bouton <SPAN  CLASS="textbf"><SPAN ID="hue26">utilisateurs</SPAN></SPAN>
+de la partie <SPAN  CLASS="textbf">Administration</SPAN> dans le menu � gauche. La page
+<SPAN  CLASS="textsf"><SPAN ID="hue29">Administration des utilisateurs</SPAN></SPAN> s'affiche,
+elle est divis�e en trois colonnes. Au fur et � mesure que les utilisateurs
+sont configur�s ils appara�tront dans la premi�re colonne, class�s
+selon leur d�partement. 
+
+<P>
+Les deux derni�res colonnes comportent des ic�nes qui sont des raccourcis
+vers les propri�t�s de chaque utilisateur et les actions � ex�cuter
+sur l'utilisateur. Les fl�ches en ent�te ( <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">
+) servent � modifier l'affichage selon le d�partement, elles pr�dominent
+sur toutes autres s�lections d'affichage.
+
+<P>
+C'est � partir de la page <SPAN  CLASS="textsf"><SPAN ID="hue34">Administration
+des utilisateurs</SPAN></SPAN> que l'administrateur syst�me aura une vue globale
+et pourra g�rer la liste des utilisateurs. 
+
+<P>
+<SPAN ID="hue305">Dans la partie droite de la page se trouve un tableau
+intitul� Filtres <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket">. </SPAN>
+<P>
+
+<UL>
+<LI><SPAN ID="hue39">Ce tableau sert � modifier l'affichage de la liste
+des utilisateurs :</SPAN>
+<P>
+<SPAN ID="hue41">- Cliquer sur une lettre pour que s'affichent tous
+les utilisateurs dont le nom commence par la lettre s�lectionn�e;</SPAN>
+<P>
+<SPAN ID="hue43">- Cliquez sur l'ast�risque et tous les noms d'utilisateurs
+appara�tront class�s alphab�tiquement.</SPAN>
+<P>
+</LI>
+<LI>Plus bas d'autres possibilit�s d'affichage sont possibles :
+
+<P>
+- Cochez une ou plusieurs propositions pour un affichage cibl�;
+
+<P>
+- Ins�rez soit une lettre soit un num�ro tous deux suivis de l'ast�risque
+soit un nom d'utilisateur dans le champ pr�c�d� d'une loupe <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">,
+cette ic�ne symbolise la recherche d'un item. Cliquez sur le bouton
+Appliquer pour faire appara�tre le(s) utilisateur(s) recherch�(s).
+
+<P>
+</LI>
+</UL>
+Pour cr�er un compte cliquez sur <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_user.png"
+ ALT="Image list_new_user">.
+Si le compte est d�j� cr�� cliquez sur le compte lui-m�me.
+
+<P>
+Appara�t alors l'espace de configuration munie d'onglets qui repr�sentent
+chacun un espace de configuration. Ces onglets sont des extensions
+apport�es � GOsa. L'administrateur configure ces extensions pour chaque
+utilisateur.
+
+<P>
+Pour terminer la configuration, cliquez sur le bouton Termin� en bas
+� droite. Pour revenir � <SPAN ID="hue48">la liste des utilisateurs</SPAN>cliquez sur le bouton Annuler. 
+<BR>
+<P>
+<BR>
+
+
+<P>
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+
+<P>
+Dans le haut � droite vous avez � la fois l'identit�e de l'utilisateur
+sur lequel vous travaillez mais aussi sa place dans l'arbre LDAP.
+
+<P>
+L'image <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./closedlock.png"
+ ALT="Image closedlock"> signale que l'utilisateur
+est en mode verrouill�. Ce mode pemet d'�viter les modifications simultan�es.
+
+<P>
+
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html50"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html51"
+  HREF="node3.html">Informations personnelles</A>
+<LI><A NAME="tex2html52"
+  HREF="node4.html">Informations sur l'entreprise</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html53"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html54"
+  HREF="node6.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html55"
+  HREF="node7.html">Appartient aux groupes</A>
+<LI><A NAME="tex2html56"
+  HREF="node8.html">Compte</A>
+<LI><A NAME="tex2html57"
+  HREF="node9.html">Syst�me de confiance</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html58"
+  HREF="node10.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html59"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html60"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html61"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html62"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html63"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html64"
+  HREF="node16.html">Imprimante</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html65"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html66"
+  HREF="node18.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html67"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html68"
+  HREF="node20.html">Options du compte de messagerie</A>
+<LI><A NAME="tex2html69"
+  HREF="node21.html">Options de messagerie avanc�es</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html70"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html71"
+  HREF="node23.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html72"
+  HREF="node24.html">Serveur de terminal</A>
+<LI><A NAME="tex2html73"
+  HREF="node25.html">Options d'acc�s</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html74"
+  HREF="node26.html">Connectivit�</A>
+<UL>
+<LI><A NAME="tex2html75"
+  HREF="node27.html">Compte Proxy</A>
+<LI><A NAME="tex2html76"
+  HREF="node28.html">Compte FTP</A>
+<LI><A NAME="tex2html77"
+  HREF="node29.html">Compte WebDAV</A>
+<LI><A NAME="tex2html78"
+  HREF="node30.html">Compte PHPGroupware</A>
+<LI><A NAME="tex2html79"
+  HREF="node31.html">Compte Intranet </A>
+</UL>
+<BR>
+<LI><A NAME="tex2html80"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html81"
+  HREF="node33.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html82"
+  HREF="node34.html">M�thodes de distribution</A>
+<LI><A NAME="tex2html83"
+  HREF="node35.html">Num�ros de fax alternatif</A>
+<LI><A NAME="tex2html84"
+  HREF="node36.html">Listes rouges</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html85"
+  HREF="node37.html">T�l�phone</A>
+<UL>
+<LI><A NAME="tex2html86"
+  HREF="node38.html">Num�ros de t�l�phone</A>
+<LI><A NAME="tex2html87"
+  HREF="node39.html">Mat�riel t�l�phonique</A>
+<LI><A NAME="tex2html88"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html89"
+  HREF="node41.html">R�f�rences</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node10.html b/gosa-core/doc/core/fr/html/users/node10.html
new file mode 100644
index 0000000..ee75a5f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node10.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Environnement</TITLE>
+<META NAME="description" CONTENT="Environnement">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Environnement</A>
+</H2>
+
+<P>
+Cliquez sur le bouton <SPAN  CLASS="textit">ajouter une extension environnemental</SPAN>
+pour voir appara�tre les diff�rents points destin�s � la configuration
+environnementale de l'utilisateur.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html182"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html183"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html184"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html185"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html186"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html187"
+  HREF="node16.html">Imprimante</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node11.html b/gosa-core/doc/core/fr/html/users/node11.html
new file mode 100644
index 0000000..bccda96
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node11.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profiles</TITLE>
+<META NAME="description" CONTENT="Profiles">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Profiles</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node12.html b/gosa-core/doc/core/fr/html/users/node12.html
new file mode 100644
index 0000000..52c266a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node12.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profile</TITLE>
+<META NAME="description" CONTENT="Kiosk profile">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Kiosk profile</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node13.html b/gosa-core/doc/core/fr/html/users/node13.html
new file mode 100644
index 0000000..eed752d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node13.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Logon scripts</TITLE>
+<META NAME="description" CONTENT="Logon scripts">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Logon scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node14.html b/gosa-core/doc/core/fr/html/users/node14.html
new file mode 100644
index 0000000..6d4ac84
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node14.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Attach share</TITLE>
+<META NAME="description" CONTENT="Attach share">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+Attach share</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node15.html b/gosa-core/doc/core/fr/html/users/node15.html
new file mode 100644
index 0000000..01a170f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node15.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug devices</TITLE>
+<META NAME="description" CONTENT="Hotplug devices">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013500000000000000">
+Hotplug devices</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node16.html b/gosa-core/doc/core/fr/html/users/node16.html
new file mode 100644
index 0000000..d35bb12
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node16.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Imprimante</TITLE>
+<META NAME="description" CONTENT="Imprimante">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013600000000000000">
+Imprimante</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node17.html b/gosa-core/doc/core/fr/html/users/node17.html
new file mode 100644
index 0000000..a8005b8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node17.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mail</TITLE>
+<META NAME="description" CONTENT="Mail">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Mail</A>
+</H2>
+
+<P>
+Le compte �mail est li� au serveur de messagerie. Pour activer le
+compte de messagerie d'un utilisateur cliquez sur <SPAN  CLASS="textit">Cr�er un
+compte �mail</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html256"
+  HREF="node18.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html257"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html258"
+  HREF="node20.html">Options du compte de messagerie</A>
+<LI><A NAME="tex2html259"
+  HREF="node21.html">Options de messagerie avanc�es</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node18.html b/gosa-core/doc/core/fr/html/users/node18.html
new file mode 100644
index 0000000..50af667
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node18.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Informations g�n�rales</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse principale<SPAN ID="hue315">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'adresse de messagerie de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Serveur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>S�lectionnez le serveur ou est stock�e le compte de messagerie de
+l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Utilisation des quota</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Pr�cisez si vous d�sirez appliquer un quota au niveau du compte de
+messagerie de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Tailles du quota</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Pr�cisez en KB la taille du quota</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node19.html b/gosa-core/doc/core/fr/html/users/node19.html
new file mode 100644
index 0000000..4a3739f
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node19.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternative addresses</TITLE>
+<META NAME="description" CONTENT="Alternative addresses">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Alternative addresses</A>
+</H3>
+
+<P>
+L'utilisateur peut �tre en possession d'alias. Ces alias sont � ins�rer
+dans le champ adresses alternatives. 
+
+<P>
+Utilisez le bouton <SPAN  CLASS="textit">Ajouter</SPAN> pour ins�rer les alias. L'alias
+doit �tre introduit dans le champ vide pr�c�dant le bouton <SPAN  CLASS="textit">Ajouter</SPAN>.
+Utilisez le bouton <SPAN  CLASS="textit">Supprimer</SPAN> pour effacer les alias.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node2.html b/gosa-core/doc/core/fr/html/users/node2.html
new file mode 100644
index 0000000..bb50605
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node2.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Informations g�n�rales</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html100"
+  HREF="node3.html">Informations personnelles</A>
+<LI><A NAME="tex2html101"
+  HREF="node4.html">Informations sur l'entreprise</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node20.html b/gosa-core/doc/core/fr/html/users/node20.html
new file mode 100644
index 0000000..1dfbd7c
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node20.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options du compte de messagerie</TITLE>
+<META NAME="description" CONTENT="Options du compte de messagerie">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+Options du compte de messagerie</A>
+</H3>
+
+<P>
+Gestion des options du compte de messagerie de l'utilisateur :
+
+<P>
+
+<UL>
+<LI>Aucune distribution des messages dans la boite de l'utilisateur :
+envoie une copie � l'adresse mentionn�e dans <SPAN  CLASS="textit">transf�rer les
+messages vers</SPAN> , sans en mettre une copie dans la messagerie de l'utilisateur.
+</LI>
+<LI>Activer la notification d'absence : envoie le message �crit dans <SPAN  CLASS="textit">message
+d'absence</SPAN>.
+</LI>
+<LI>D�placer les messages ayant un niveau de spam sup�rieur � (a) vers
+le r�pertoire (b) : envoie les messages ayant un score sup�rieur �
+(a) dans le r�pertoire (b).
+</LI>
+<LI>Rejeter les messages plus gros que (c) MB : ne pas accepter les messages
+plus gros que (c) MB.
+</LI>
+<LI>Utilisez les boutons <SPAN  CLASS="textit">Ajouter</SPAN> ou <SPAN  CLASS="textit">Ajouter en local</SPAN> <SPAN ID="hue153">pour
+la gestion des adresses : </SPAN>
+<P>
+<SPAN ID="hue155">- Le bouton</SPAN> <SPAN ID="hue316"><SPAN  CLASS="textit">Ajouter en
+local</SPAN></SPAN> <SPAN ID="hue159">permet de s�lectionner parmis la liste des
+adresses locales. </SPAN>
+<P>
+<SPAN ID="hue161">- Le bouton</SPAN> <SPAN ID="hue317"><SPAN  CLASS="textit">Ajouter</SPAN></SPAN> <SPAN ID="hue165">permet
+l'ajout d'adresses ext�rieures au syst�me.</SPAN>
+<P>
+<SPAN ID="hue167">- Utilisez le bouton</SPAN> <SPAN ID="hue318"><SPAN  CLASS="textit">Supprimer</SPAN></SPAN><SPAN ID="hue171">pour effacer les adresses de messagerie.</SPAN>
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node21.html b/gosa-core/doc/core/fr/html/users/node21.html
new file mode 100644
index 0000000..72800e2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node21.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options de messagerie avanc�es</TITLE>
+<META NAME="description" CONTENT="Options de messagerie avanc�es">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Options de messagerie avanc�es</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Les utilisateurs ne sont autoris�s qu'a envoy� et recevoir des emails
+locaux : l'administrateur peut forcer l'envoi et la reception des
+messages en local uniquement.
+</LI>
+<LI>Utiliser des scripts sieve personnalis�s : l'administrateur peut �crire
+des scripts sieve qui �tablissent les r�gles de gestion de la messagerie.
+<SPAN  CLASS="textit">Attention ! cela d�sactive toutes les options de messagerie</SPAN>.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node22.html b/gosa-core/doc/core/fr/html/users/node22.html
new file mode 100644
index 0000000..f658ecc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node22.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Samba</TITLE>
+<META NAME="description" CONTENT="Samba">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+Samba</A>
+</H2>
+
+<P>
+Pour cr�er un compte samba pour un utilisateur cliquez sur le bouton
+<SPAN  CLASS="textit">Cr�er un compte samba</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html308"
+  HREF="node23.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html309"
+  HREF="node24.html">Serveur de terminal</A>
+<LI><A NAME="tex2html310"
+  HREF="node25.html">Options d'acc�s</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node23.html b/gosa-core/doc/core/fr/html/users/node23.html
new file mode 100644
index 0000000..fe2078a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node23.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Informations g�n�rales</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>R�pertoire Home</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin du r�pertoire personnel de l'utilisateur en notation
+UNC ex: \\SERVER\homes\utilisateur.
+Choisissez dans la liste d�roulante la lettre associ�e au r�pertoire
+personnel de l'utilisateur.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Domaine</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>S�l�ctionnez le domaine dans lequel se trouve la machine de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Chemin du Script</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le script de d�marrage de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Chemin du Profile</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin pour acc�der au profile de l'utilisateur</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node24.html b/gosa-core/doc/core/fr/html/users/node24.html
new file mode 100644
index 0000000..ad23471
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node24.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Serveur de terminal</TITLE>
+<META NAME="description" CONTENT="Serveur de terminal">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Serveur de terminal</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Permet la connexion sur un serveur de terminal
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>R�pertoire Home</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin du r�pertoire personnel de l'utilisateur en notation
+UNC ex: \\SERVER\homes\utilisateur.
+Choisissez dans la liste d�roulante la lettre associ�e au r�pertoire
+personnel de l'utilisateur.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Chemin du Profile</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin pour acc�der au profile de l'utilisateur</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>H�rite de la configuration du client
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Programme initial</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin vers l'application par d�faut</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>R�pertoire Home</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le chemin pour acc�der au repertoire de base de l'application
+<SPAN ID="hue208">?</SPAN></TD>
+</TR>
+</TABLE> 
+
+<P>
+
+<UL>
+<LI>Configuration du temps d'attente (en minutes) :
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connexion</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin d'indiquer le temps d'attente maximum lors d'une connexion</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>D�connexion</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin d'indiquer le temps d'attente maximum lors d'une d�connexion</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>En attente</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin d'indiquer le temps d'attente maximum lors d'une requ�te</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>P�riph�riques clients :
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connecter les lecteurs clients � l'identification</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin de connecter les lecteurs de l'utilisateur lors de l'identification</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Connecter les imprimantes clients � l'identification</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin de connecter les imprimantes de l'utilisateur lors de
+l'identification</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Imprimante par d�faut</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez afin de d�finir l'imprimante par d�faut de l'utilisateur lors
+de l'identification</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI>Divers :
+
+<P>
+- Masquer : <SPAN ID="hue224">?</SPAN>
+<P>
+- Sur interrompu ou temps d'attente d�pass� : permet de choisir si
+il faut d�connecter le client ou faire une remise � z�ro.
+
+<P>
+- Reconnexion si d�connect� : permet de choisir si la reconnexion
+doit �tre faite depuis le m�me client, ou si elle peut �tre effectu�e
+depuis un autre client.
+
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node25.html b/gosa-core/doc/core/fr/html/users/node25.html
new file mode 100644
index 0000000..2228365
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node25.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Options d'acc�s</TITLE>
+<META NAME="description" CONTENT="Options d'acc�s">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+Options d'acc�s</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Il s'agit de la gestion du mot de passe de l'utilisateur. Diff�rentes
+propositions peuvent �tre coch�es � la fois mais l'administrateur
+doit veiller � rester coh�rent pour �viter les conflits dans l'application
+de ses choix.
+</LI>
+<LI>Le champ � droite doit �tre rempli par les noms de stations � partir
+desquelles l'utilisateur peut se connecter. L'administrateur doit
+utiliser les boutons <SPAN  CLASS="textit">Ajouter</SPAN> pour y ins�rer les noms de stations.
+Le bouton <SPAN  CLASS="textit">Ajouter</SPAN> renvoie � la liste des stations. Utilisez
+le bouton <SPAN  CLASS="textit">Supprimer</SPAN> pour effacer des stations.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node26.html b/gosa-core/doc/core/fr/html/users/node26.html
new file mode 100644
index 0000000..388ad7b
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node26.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Connectivit�</TITLE>
+<META NAME="description" CONTENT="Connectivit�">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Connectivit�</A>
+</H2>
+
+<P>
+L'administrateur peut affiner la gestion du compte de l'utilisateur
+en configurant les services suppl�mentaires auquel il peut se connecter.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><UL>
+<LI><UL>
+<LI><A NAME="tex2html349"
+  HREF="node27.html">Compte Proxy</A>
+<LI><A NAME="tex2html350"
+  HREF="node28.html">Compte FTP</A>
+<LI><A NAME="tex2html351"
+  HREF="node29.html">Compte WebDAV</A>
+<LI><A NAME="tex2html352"
+  HREF="node30.html">Compte PHPGroupware</A>
+<LI><A NAME="tex2html353"
+  HREF="node31.html">Compte Intranet </A>
+</UL></UL></UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node27.html b/gosa-core/doc/core/fr/html/users/node27.html
new file mode 100644
index 0000000..bcf1a1c
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node27.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte Proxy</TITLE>
+<META NAME="description" CONTENT="Compte Proxy">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016001000000000000">
+Compte Proxy</A>
+</H5>
+
+<P>
+Si vous activez l'option Proxy pour l'utilisateur vous pouvez filtrer
+sur le contenu, limit� l'acc�s � certaines heures et restreindre le
+t�l�chargement.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node28.html b/gosa-core/doc/core/fr/html/users/node28.html
new file mode 100644
index 0000000..b11be17
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node28.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte FTP</TITLE>
+<META NAME="description" CONTENT="Compte FTP">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016002000000000000">
+Compte FTP</A>
+</H5>
+
+<P>
+Si vous activez l'option FTP, vous pouvez r�gler la bande passante
+montante et descendante, le ratio des donn�es et le quota � ne pas
+d�passer pour le transfert de fichiers . Vous pouvez aussi � partir
+de cet endroit d�sactiver le compte FTP.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node29.html b/gosa-core/doc/core/fr/html/users/node29.html
new file mode 100644
index 0000000..c39e69d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node29.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte WebDAV</TITLE>
+<META NAME="description" CONTENT="Compte WebDAV">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016003000000000000">
+Compte WebDAV</A>
+</H5>
+
+<P>
+Si vous activez l'option WebDav, l'utilisateur aura acc�s au serveur
+WebDAV 
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node3.html b/gosa-core/doc/core/fr/html/users/node3.html
new file mode 100644
index 0000000..33c3915
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node3.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations personnelles</TITLE>
+<META NAME="description" CONTENT="Informations personnelles">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Informations personnelles</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Nom<SPAN ID="hue307">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le nom de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Pr�nom<SPAN ID="hue308">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le pr�nom de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Identifiant<SPAN ID="hue309">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'identificateur de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Titre personnel</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le titre (Madame, Mademoiselle ou Monsieur) de l'utilisateur
+<SPAN ID="hue64">?</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Titre Universitaire</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le diplome obtenu</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Date de naissance</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cliquez sur le bouton '' Remplir'' pour voir appara�tre une liste
+d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Sexe</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�l�ction dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Langue</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�l�ction dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Base</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Choix du d�partement. (la cr�ation de d�partements se fait � partir
+du bouton <SPAN  CLASS="textbf"><SPAN ID="hue66">d�partement</SPAN></SPAN> dans le menu de g<SPAN ID="hue68">auche</SPAN>dans la partie <SPAN  CLASS="textbf">Administration</SPAN>).</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adresse</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'adresse personnelle de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Num�ro de t�l�phone priv�</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le num�ro priv� selon la nomenclature nationale ou internationale.
+(veillez � garder la m�me nomenclature pour tous les utilisateurs)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Page d'accueil</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez l'url de la page personnelle de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Format de stockage des mots de passe</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�l�ction dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Certificats</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue71">Cliquez sur le bouton'' Modification des certificats''.
+GOsa vous propose trois types de certificats � rechercher dans l'
+arborescence de votre ordinateur. Pour enregistrer cliquez sur le
+bouton'' Termin�''.</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kerberos</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue73">Cliquez sur le bouton'' Modifier les propri�t�s''.</SPAN><SPAN ID="hue75">?</SPAN></TD>
+</TR>
+</TABLE>
+<P>
+<BR>
+
+
+<P>
+Vous pouvez aussi si vous le d�sirez agr�menter d'une photo le profil
+de l'utilisateur en cliquant sur le bouton <SPAN  CLASS="textit">changer la photo</SPAN>.
+Vous parcourez alors l'arborescence de votre ordinateur pour aller
+chercher l'image.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node30.html b/gosa-core/doc/core/fr/html/users/node30.html
new file mode 100644
index 0000000..ced60f3
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node30.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte PHPGroupware</TITLE>
+<META NAME="description" CONTENT="Compte PHPGroupware">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016004000000000000">
+Compte PHPGroupware</A>
+</H5>
+
+<P>
+Si vous activez l'option PHPGroupware, l'utilisateur aura acc�s au
+logiciel PHPGroupware
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node31.html b/gosa-core/doc/core/fr/html/users/node31.html
new file mode 100644
index 0000000..c92862c
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node31.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte Intranet </TITLE>
+<META NAME="description" CONTENT="Compte Intranet ">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00016005000000000000">
+Compte Intranet </A>
+</H5>
+
+<P>
+Si vous activez l'option Intranet, l'utilisateur aura acc�s au serveur
+Intranet
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">Compte PPTP</SPAN>
+
+<P>
+Si vous activez l'option PPTP, l'utilisateur aura acc�s au serveur
+PPTP
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">Compte PHPScheduleIt</SPAN> 
+
+<P>
+Si vous activez l'option PHPScheduleIt, l'utilisateur aura acc�s au
+logiciel PHPScheduleIt
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">Compte GLPI</SPAN> 
+
+<P>
+Si vous activez l'option GLPI, l'utilisateur aura acc�s au logiciel
+GLPI
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node32.html b/gosa-core/doc/core/fr/html/users/node32.html
new file mode 100644
index 0000000..0bb3843
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node32.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax</TITLE>
+<META NAME="description" CONTENT="Fax">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Fax</A>
+</H2>
+
+<P>
+Pour cr�er un compte Fax pour un utilisateur cliquez sur le bouton
+<SPAN  CLASS="textit">Cr�er un compte Fax.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html412"
+  HREF="node33.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html413"
+  HREF="node34.html">M�thodes de distribution</A>
+<LI><A NAME="tex2html414"
+  HREF="node35.html">Num�ros de fax alternatif</A>
+<LI><A NAME="tex2html415"
+  HREF="node36.html">Listes rouges</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node33.html b/gosa-core/doc/core/fr/html/users/node33.html
new file mode 100644
index 0000000..7451fe5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node33.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017100000000000000">
+Informations g�n�rales</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax<SPAN ID="hue325">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Ins�rez le num�ro de fax de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Langue</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Format de distribution</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node34.html b/gosa-core/doc/core/fr/html/users/node34.html
new file mode 100644
index 0000000..dc74228
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node34.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>M�thodes de distribution</TITLE>
+<META NAME="description" CONTENT="M�thodes de distribution">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017200000000000000">
+M�thodes de distribution</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Desactiver temporairement l'utilisation du fax : interdit l'utilisation
+du fax par cet utilisateur.
+</LI>
+<LI>D�livrer les fax comme des mails : envoie les fax sous le format de
+distribution d�fini dans la messagerie de l'utilisateur
+</LI>
+<LI>Imprimer directement les fax : permet de s�lectionner l'imprimante
+� laquelle envoyer les fax re�us par cet utilisateur
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node35.html b/gosa-core/doc/core/fr/html/users/node35.html
new file mode 100644
index 0000000..17c237a
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node35.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Num�ros de fax alternatif</TITLE>
+<META NAME="description" CONTENT="Num�ros de fax alternatif">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017300000000000000">
+Num�ros de fax alternatif</A>
+</H3>
+
+<P>
+L'administrateur peut compl�ter la configuration du fax par une s�rie
+d'autres num�ros de fax utilis�s dans la soci�t�. Utilisez les boutons
+Ajouter, Ajouter en local pour remplir le champ.
+
+<P>
+
+<UL>
+<LI>Le bouton <SPAN  CLASS="textit">Ajouter en local</SPAN> renvoie � la liste des num�ros de
+fax. 
+</LI>
+<LI>Le bouton <SPAN  CLASS="textit">Ajouter</SPAN> permet d'ins�rer des num�ros de fax autres
+que ceux de la liste. 
+</LI>
+</UL>
+Utilisez le bouton <SPAN  CLASS="textit">Supprimer</SPAN> pour effacer des num�ros de fax.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node36.html b/gosa-core/doc/core/fr/html/users/node36.html
new file mode 100644
index 0000000..42cd652
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node36.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Listes rouges</TITLE>
+<META NAME="description" CONTENT="Listes rouges">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00017400000000000000">
+Listes rouges</A>
+</H3>
+
+<P>
+Le fax est aujourd'hui fr�quemment utilis� pour distribuer des messages
+publicitaires. Certains peuvent �tre apparent�s � des spams. Pour
+�viter que les utilisateurs soient submerg�s par ces messages, l'administrateur
+peut instaurer une liste rouge reprenant les num�ros de fax ind�sirables
+qu'ils soient entrant ou sortant.
+
+<P>
+En cliquant sur le bouton <SPAN  CLASS="textit">Edit</SPAN> vous faites appara�tre une page
+comprenant deux listes, du c�t� gauche on trouve les num�ros refus�s
+pour cet utilisateur, du c�te droit on retrouve les listes rouges
+pr�definies par l'administrateur.
+
+<P>
+Selectionnez la ou les listes que vous d�sirez utiliser dans la liste
+de droite et cliquer sur <SPAN  CLASS="textit">Ajouter � la liste rouge</SPAN> pour l'activer.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node37.html b/gosa-core/doc/core/fr/html/users/node37.html
new file mode 100644
index 0000000..a7246c0
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node37.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>T�l�phone</TITLE>
+<META NAME="description" CONTENT="T�l�phone">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00018000000000000000">
+T�l�phone</A>
+</H2>
+
+<P>
+Pour activer le compte t�l�phone pour un utilisateur cliquez sur le
+bouton <SPAN  CLASS="textit">Cr�er un compte t�l�phone</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html464"
+  HREF="node38.html">Num�ros de t�l�phone</A>
+<LI><A NAME="tex2html465"
+  HREF="node39.html">Mat�riel t�l�phonique</A>
+<LI><A NAME="tex2html466"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node38.html b/gosa-core/doc/core/fr/html/users/node38.html
new file mode 100644
index 0000000..89cfd5c
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node38.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Num�ros de t�l�phone</TITLE>
+<META NAME="description" CONTENT="Num�ros de t�l�phone">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018100000000000000">
+Num�ros de t�l�phone</A>
+</H3>
+
+<P>
+Ins�rez le ou les num�ro(s) de t�l�phone de l'utilisateur en utilisant
+le bouton <SPAN  CLASS="textit">Ajouter</SPAN>. 
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node39.html b/gosa-core/doc/core/fr/html/users/node39.html
new file mode 100644
index 0000000..e6eaf93
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node39.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Mat�riel t�l�phonique</TITLE>
+<META NAME="description" CONTENT="Mat�riel t�l�phonique">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018200000000000000">
+Mat�riel t�l�phonique</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>T�l�phone</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Faites votre s�lection dans la liste d�roulante</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>VoicemailPIN<SPAN ID="hue327">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue288">Introduisez le code PIN utilis� par l'utilisateur
+pour atteindre sa bo�te vocale.</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Phone PIN<SPAN ID="hue328">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue292">Introduisez le code PIN utilis� par l'utilisateur
+pour d�verouiller son t�l�phone.</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node4.html b/gosa-core/doc/core/fr/html/users/node4.html
new file mode 100644
index 0000000..387dd17
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node4.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations sur l'entreprise</TITLE>
+<META NAME="description" CONTENT="Informations sur l'entreprise">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Informations sur l'entreprise</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+Entreprise </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le nom de la soci�t�</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+D�partement </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le nom du d�partement auquel appartient l'utilisateur </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+N° du d�partement </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro du d�partement</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+N° de l'employ� </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro attribu� � l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Type de l'employ� </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Pr�cisez son statut dans la soci�t�</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+N° du bureau </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro du bureau dans lequel travaille l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+T�l�phone </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro de t�l�phone de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Portable </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro du mobile ou GSM de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Bip </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro du bipeur de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Fax </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le num�ro de Fax de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Lieu  </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez la localisation du bureau de l'utilisateur si la soci�t�
+poss�de des succursales</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+D�partement  </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez le nom de la r�gion o� la soci�t� est localis�e <SPAN ID="hue90">?</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Adresse </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Introduisez l'adresse de l'entreprise</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node40.html b/gosa-core/doc/core/fr/html/users/node40.html
new file mode 100644
index 0000000..5cf38ce
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node40.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Phone macro</TITLE>
+<META NAME="description" CONTENT="Phone macro">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018300000000000000">
+Phone macro</A>
+</H3>
+
+<P>
+Permet de s�l�ctionner une macro � mettre dans le t�l�phone de l'utilisateur.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node41.html b/gosa-core/doc/core/fr/html/users/node41.html
new file mode 100644
index 0000000..a7376cc
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node41.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>R�f�rences</TITLE>
+<META NAME="description" CONTENT="R�f�rences">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00019000000000000000">
+R�f�rences</A>
+</H2>
+
+<P>
+Les r�f�rences pr�sentent les propri�t�s de l'utilisateur. Cela permet
+� l'administrateur d'avoir une information rapide sur la situation
+de l'utilisateur dans la soci�t�.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node42.html b/gosa-core/doc/core/fr/html/users/node42.html
new file mode 100644
index 0000000..f4bc831
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node42.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">ADMINISTRATION DES UTILISATEURS</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/users/ users.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node5.html b/gosa-core/doc/core/fr/html/users/node5.html
new file mode 100644
index 0000000..5d9e096
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node5.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Unix</TITLE>
+<META NAME="description" CONTENT="Unix">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Unix</A>
+</H2>
+
+<P>
+Pour activer le compte Unix pour un utilisateur cliquez sur le bouton
+<SPAN  CLASS="textit">cr�er un compte unix.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html130"
+  HREF="node6.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html131"
+  HREF="node7.html">Appartient aux groupes</A>
+<LI><A NAME="tex2html132"
+  HREF="node8.html">Compte</A>
+<LI><A NAME="tex2html133"
+  HREF="node9.html">Syst�me de confiance</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node6.html b/gosa-core/doc/core/fr/html/users/node6.html
new file mode 100644
index 0000000..d856dd2
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node6.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Informations g�n�rales</TITLE>
+<META NAME="description" CONTENT="Informations g�n�rales">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Informations g�n�rales</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>R�pertoire home</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Introduisez le chemin vers le r�pertoire de l'utilisateur</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Shell</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Choisir dans la liste d�roulante le type de shell (console) utilis�</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Groupe principal</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indiquez le groupe principal auquel appartient l'utilisateur. (Pour
+la cr�ation de groupe allez au bouton <SPAN  CLASS="textbf"><SPAN ID="hue100">Groupes</SPAN></SPAN>
+dans le menu de gauche dans la partie <SPAN  CLASS="textbf">Administration</SPAN>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Statut</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Indique si le compte est activ� ou non</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Forcer l'UID/GID</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Cochez si vous d�sirez forcer l'uid/gid de l'utilisateur � une certaine
+valeur</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node7.html b/gosa-core/doc/core/fr/html/users/node7.html
new file mode 100644
index 0000000..aec40c8
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node7.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Appartient aux groupes</TITLE>
+<META NAME="description" CONTENT="Appartient aux groupes">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Appartient aux groupes</A>
+</H3>
+
+<P>
+Utilisez les boutons <SPAN  CLASS="textit">Ajouter</SPAN> et <SPAN  CLASS="textit">Supprimer</SPAN> pour ins�rer
+ou effacer les groupes dans le champ vide. Le bouton <SPAN  CLASS="textit">Ajouter</SPAN>
+renvoie � la liste des groupes cr�es par l'administrateur. L'utilisateur
+peut appartenir � un ou plusieurs groupes.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node8.html b/gosa-core/doc/core/fr/html/users/node8.html
new file mode 100644
index 0000000..c2a29f5
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node8.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Compte</TITLE>
+<META NAME="description" CONTENT="Compte">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012300000000000000">
+Compte</A>
+</H3>
+
+<P>
+Il s'agit de la gestion du mot de passe de l'utilisateur. Diff�rentes
+propositions peuvent �tre coch�es � la fois mais l'administrateur
+doit veiller � rester coh�rent pour �viter les conflits dans l'application
+de ses choix.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/node9.html b/gosa-core/doc/core/fr/html/users/node9.html
new file mode 100644
index 0000000..fd80d76
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/node9.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Syst�me de confiance</TITLE>
+<META NAME="description" CONTENT="Syst�me de confiance">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012400000000000000">
+Syst�me de confiance</A>
+</H3>
+
+<P>
+Le syst�me de confiance sert � g�rer l'acc�s de l'utilisateur aux
+diff�rents syst�mes, ph�riph�riques, etc... . Le syst�me de confiance
+peut �tre en mode :
+
+<P>
+
+<UL>
+<LI>d�sactiv�, 
+</LI>
+<LI>acc�s complet : l'utilisateur � l'acc�s complet aux syst�mes,
+</LI>
+<LI>permettre l'acc�s � ces h�tes : 
+
+<P>
+- Utilisez le bouton <SPAN  CLASS="textit">Ajouter</SPAN> pour faire appara�tre la liste
+des h�tes auxquels l'utilisateur pourrait avoir acc�s, 
+
+<P>
+- Utilisez le bouton <SPAN  CLASS="textit">Supprimer</SPAN> pour effacer les h�tes auxquels
+l'utilisateur n'a plus acc�s.
+
+<P>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/html/users/rocket.png b/gosa-core/doc/core/fr/html/users/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/rocket.png differ
diff --git a/gosa-core/doc/core/fr/html/users/search.png b/gosa-core/doc/core/fr/html/users/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/html/users/search.png differ
diff --git a/gosa-core/doc/core/fr/html/users/users.css b/gosa-core/doc/core/fr/html/users/users.css
new file mode 100644
index 0000000..a12d54d
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/users.css
@@ -0,0 +1,39 @@
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+SPAN.textsf		{ font-style: italic  }
+#hue171		{ color: #000000;  }
+#hue327		{ color: #ff0000;  }
+#hue64		{ color: #ff0000;  }
+#hue75		{ color: #ff0000;  }
diff --git a/gosa-core/doc/core/fr/html/users/users.html b/gosa-core/doc/core/fr/html/users/users.html
new file mode 100644
index 0000000..deac790
--- /dev/null
+++ b/gosa-core/doc/core/fr/html/users/users.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>ADMINISTRATION DES UTILISATEURS</TITLE>
+<META NAME="description" CONTENT="ADMINISTRATION DES UTILISATEURS">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">ADMINISTRATION DES UTILISATEURS</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Utilisateurs</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Informations g�n�rales</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Informations personnelles</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Informations sur l'entreprise</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Appartient aux groupes</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Compte</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Syst�me de confiance</A>
+</UL>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Environnement</A>
+<UL>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Profiles</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Kiosk profile</A>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Logon scripts</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Attach share</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Hotplug devices</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Imprimante</A>
+</UL>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Mail</A>
+<UL>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Alternative addresses</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Options du compte de messagerie</A>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Options de messagerie avanc�es</A>
+</UL>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Serveur de terminal</A>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Options d'acc�s</A>
+</UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Connectivit�</A>
+<LI><A NAME="tex2html29"
+  HREF="node32.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html30"
+  HREF="node33.html">Informations g�n�rales</A>
+<LI><A NAME="tex2html31"
+  HREF="node34.html">M�thodes de distribution</A>
+<LI><A NAME="tex2html32"
+  HREF="node35.html">Num�ros de fax alternatif</A>
+<LI><A NAME="tex2html33"
+  HREF="node36.html">Listes rouges</A>
+</UL>
+<LI><A NAME="tex2html34"
+  HREF="node37.html">T�l�phone</A>
+<UL>
+<LI><A NAME="tex2html35"
+  HREF="node38.html">Num�ros de t�l�phone</A>
+<LI><A NAME="tex2html36"
+  HREF="node39.html">Mat�riel t�l�phonique</A>
+<LI><A NAME="tex2html37"
+  HREF="node40.html">Phone macro</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node41.html">R�f�rences</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html39"
+  HREF="node42.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/fr/lyx-source/applications.lyx b/gosa-core/doc/core/fr/lyx-source/applications.lyx
new file mode 100644
index 0000000..2343af0
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/applications.lyx
@@ -0,0 +1,426 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES APPLICATIONS
+\layout Section
+
+Applications
+\layout Standard
+
+L'administrateur peut installer et configurer une application � partir du
+ bouton 
+\series bold 
+\color blue
+Applications
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+.
+ La page 
+\family sans 
+Configuration des applications
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+La page est divis�e en deux colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher la liste des applications,
+\layout Standard
+
+- la deuxi�me colonne contient les ic�nes qui sont les actions que l'on
+ peut executer sur l'application.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Ces ic�nes pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+ 
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Configurations des applications
+\family default 
+ que l'administrateur g�re la liste des applications install�e pour le personnel
+ de la soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage de la liste des applications en
+ utilisant le tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Standard
+
+L'administrateur peut faire une recherche sur le nom :
+\layout Standard
+
+- cliquez sur l'ast�risque pour voir appara�tre toutes les applications;
+\layout Standard
+
+- cliquez sur une lettre et tous les noms d'applications d�butant par cette
+ lettre s'afficheront;
+\layout Standard
+
+- cliquez sur un num�ro et tous les noms d'applications d�butant par ce
+ num�ro s'afficheront;
+\layout Standard
+
+- recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ par le nom d'une application et ensuite cliquez sur
+ le bouton 
+\emph on 
+Appliquer
+\emph default 
+.
+\layout Standard
+\added_space_top medskip 
+Pour configurer une application, l'administrateur doit cliquer sur le bouton
+ 
+\begin_inset Graphics
+	filename images/list_new_app.png
+
+\end_inset 
+
+.
+\layout Standard
+
+Appara�t l'espace de configuration contenant trois onglets : informations
+ g�n�rales, options et r�f�rences.
+\layout Standard
+
+Pour enregistrer la configuration, cliquez sur le bouton 
+\emph on 
+Termin�
+\emph default 
+, pour revenir � la page pr�c�dente cliquez sur le bouton 
+\emph on 
+Annuler
+\emph default 
+.
+\layout Subsection
+\pagebreak_top 
+Informations 
+\layout Subsubsection
+
+Informations
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom de l'application
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le nom de l'application.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom � afficher
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom de l'application qui sera visible par l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ex�cuter
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Application � ex�cuter avec ses param�tres �ventuels
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description de l'application
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante du d�partement associ� �
+ l'application.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ic�ne
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+S�lectionnez l'image dans l'arborescence de votre syst�me, ensuite cliquez
+ sur le bouton Mise � jour.
+ L'ic�ne est alors associ�e � l'application.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Options
+\layout Itemize
+
+Ex�cutable uniquement par les membres
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez que l'application soit ex�cut�e uniquement par les
+ membres d'un m�me groupe.
+\end_deeper 
+\layout Itemize
+
+Remplacer la configuration de l'utilisateur au d�marrage
+\begin_deeper 
+\layout Standard
+
+R�installer la configuration par d�faut de l'application � chaque d�marrage.
+\end_deeper 
+\layout Itemize
+
+Placer une ic�ne sur le bureau des membres
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez faire appara�tre l'ic�ne sur le bureau des membres.
+\end_deeper 
+\layout Itemize
+
+Placer une entr�e dans le menu d�marrage des membres
+\begin_deeper 
+\layout Standard
+
+Cr�er une entr�e pour l'application dans le menu d�marrage.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Script
+\layout Subsection
+\added_space_top bigskip 
+Options
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Variable
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom de la variable
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Valeur par d�faut
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Valeurs par defaut asscoci�es � la variable
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+\added_space_top medskip 
+Utilisez le bouton 
+\emph on 
+Supprimez
+\emph default 
+ pour effacer une variable.
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/blocklists.lyx b/gosa-core/doc/core/fr/lyx-source/blocklists.lyx
new file mode 100644
index 0000000..3c455fe
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/blocklists.lyx
@@ -0,0 +1,286 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES LISTES ROUGES DE FAX
+\layout Section
+
+Liste Rouge des Fax
+\layout Standard
+
+L'administrateur peut configurer une liste rouge � partir du bouton 
+\series bold 
+\color blue
+Liste Rouge des Fax
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+.
+ 
+\layout Standard
+
+La page 
+\family sans 
+Configuration des listes rouges
+\family default 
+ s'affiche.
+ La page est divis�e en deux colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher les listes rouges,
+\layout Standard
+
+- la deuxi�me colonne contient les ic�nes qui sont les actions que l'on
+ peut executer sur ces listes.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Ces ic�nes pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+ 
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Configurations des listes rouges
+\family default 
+ que l'administrateur g�re les listes rouges des fax instaur�es dans la
+ soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage des listes en utilisant le tableau
+ intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Standard
+
+A partir de ce tableau l'administrateur peut faire une recherche sur le
+ nom :
+\layout Standard
+
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre toutes les
+ listes;
+\layout Standard
+
+- cliquez sur une lettre et tous les noms des listes d�butant par cette
+ lettre s'afficheront;
+\layout Standard
+
+- cliquez sur un num�ro et tous les noms des listes d�butant par ce num�ro
+ s'afficheront;
+\layout Standard
+
+- recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ par le nom d'une liste rouge et ensuite cliquez sur
+ le bouton Appliquer.
+\layout Standard
+\added_space_top medskip 
+Pour cr�er et configurer les listes rouges des fax, l'administrateur doit
+ cliquer sur le bouton 
+\begin_inset Graphics
+	filename images/list_new_blocklist.png
+
+\end_inset 
+
+.
+ 
+\layout Standard
+
+Appara�t l'espace de configuration.
+\layout Standard
+
+Pour enregistrer la configuration, cliquez sur le bouton Termin�, pour revenir
+ � la page pr�c�dente cliquez sur le bouton Annuler.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Nom de la liste
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ins�rez le nom de la liste rouge des fax
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante du d�partement associ� �
+ la liste
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Type
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Choisissez dans la liste d�roulante si la liste rouge des fax s'applique
+ en sortie ou en entr�e
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description de l'utilisation de la liste fax
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Num�ros bloqu�s
+\layout Standard
+
+L'administrateur doit ins�rer dans le champ inf�rieur les num�ros de fax
+ qui seront li�s � la nouvelle liste rouge cr�ee.
+ Utilisez les boutons 
+\emph on 
+Ajouter
+\emph default 
+ et 
+\emph on 
+Supprimer
+\emph default 
+ pour la gestion de ces num�ros.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/conference.lyx b/gosa-core/doc/core/fr/lyx-source/conference.lyx
new file mode 100644
index 0000000..79690fa
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/conference.lyx
@@ -0,0 +1,391 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES CONFERENCES TELEPHONIQUES
+\layout Section
+
+Conf�rences t�l�phoniques
+\layout Standard
+
+L'administrateur peut configurer les phone conferences � partir du bouton
+ 
+\series bold 
+\color blue
+Conf�rences t�l�phoniques
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+.
+ La page 
+\family sans 
+Gestion des conf�rences
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+La page est divis�e en quatre colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher les noms ou num�ros de conf�rence,
+\layout Standard
+
+- la deuxi�me colonne affiche le nom du propri�taire de la conf�rence,
+\layout Standard
+
+- la troisi�me indique si il existe un code PIN pour la conf�rence,
+\layout Standard
+
+- la derni�re colonne contient les ic�nes qui sont les actions que l'on
+ peut executer sur ces conf�rences.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Ces ic�nes pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+ 
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Gestion des conf�rences
+\family default 
+ que l'administrateur g�re les conf�rences t�l�phoniques organis�es dans
+ la soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage des noms ou des num�ros en utilisant
+ le tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Standard
+
+L'administrateur peut faire une recherche sur le nom :
+\layout Standard
+
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre tous les noms
+ et num�ros;
+\layout Standard
+
+- cliquez sur une lettre et tous les noms des conf�rences t�l�phoniques
+ d�butant par cette lettre s'afficheront;
+\layout Standard
+
+- cliquez sur un num�ro et tous les num�ros des conf�rences t�l�poniques
+ d�butant par ce num�ro s'afficheront;
+\layout Standard
+
+- recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ par le nom ou le num�ro d'une conf�rence t�l�phonique
+ et ensuite cliquez sur le bouton 
+\emph on 
+Appliquer
+\emph default 
+.
+\layout Standard
+\added_space_top medskip 
+Pour cr�er et configurer une conf�rence t�l�phonique, l'administrateur doit
+ cliquer sur le bouton 
+\begin_inset Graphics
+	filename images/conference.png
+
+\end_inset 
+
+.
+\layout Standard
+
+Appara�t l'espace de configuration.
+\layout Standard
+
+Pour enregistrer la configuration, cliquez sur le bouton 
+\emph on 
+Termin�
+\emph default 
+, pour revenir � la page pr�c�dente cliquez sur le bouton 
+\emph on 
+Annuler
+\emph default 
+.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Subsubsection
+
+Propri�t�s
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Nom de la conf�rence
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom de la conf�rence
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Type
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez une description, un commentaire sur la conf�rence
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Dur�e (en jours)
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez la validit� de la conf�rence
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Num�ro de t�l�phone
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro de t�l�phone de la conf�rence
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Options
+\layout Itemize
+
+Code PIN pr�s�lectionn�
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez qu'un code PIN pr�d�fini soit utilis� pour cette
+ conf�rence.
+\end_deeper 
+\layout Itemize
+
+Enregistrer la conf�rence
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez enregistrer la conf�rence.
+\end_deeper 
+\layout Itemize
+
+Musique d'attente
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez activer la musique d'attente.
+\end_deeper 
+\layout Itemize
+
+Activer le menu de session
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez activer le menu de session.
+\end_deeper 
+\layout Itemize
+
+Annoncer les nouveaux utilisateurs et ceux qui quittent
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez qu'une annonce soit faite lorsque un participant
+ rejoint ou quitte la conf�rence.
+\end_deeper 
+\layout Itemize
+
+Compter les utilisateurs
+\begin_deeper 
+\layout Standard
+
+Cochez si vous d�sirez compter les participants.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+ 
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/departments.lyx b/gosa-core/doc/core/fr/lyx-source/departments.lyx
new file mode 100644
index 0000000..888daf0
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/departments.lyx
@@ -0,0 +1,400 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES DEPARTEMENTS
+\layout Section
+
+D�partements
+\layout Standard
+
+L'administrateur peut cr�er ou modifier un d�partement ou acc�der aux informatio
+ns sur un d�partement en utilisant le bouton 
+\series bold 
+\color blue
+d�partements
+\series default 
+\color default
+ de la partie 
+\series bold 
+Administrateur
+\series default 
+ dans le menu de gauche.
+ La page 
+\family sans 
+Configuration des d�partements
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+La page est divis�e en deux colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher les noms de d�partements,
+\layout Standard
+
+- la deuxi�me colonne contient des ic�nes qui sont les actions � executer
+ sur un d�partement.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+ , 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Elles pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Configuration des d�partements
+\family default 
+ que l'administrateur g�re la liste des d�partements cr�es pour la soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage des d�partements en utilisant le
+ tableau intitul� 
+\emph on 
+Filtres
+\emph default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+ 
+\layout Standard
+
+L'administrateur peut y faire une recherche sur le nom :
+\layout Standard
+
+- cliquez sur l'ast�risque (�toile) pour voir apara�tre tous les d�partements,
+\layout Standard
+
+- cliquez sur une lettre, et tous les noms de d�partements commen�ant par
+ cette lettre s'afficheront,
+\layout Standard
+
+- cliquez sur un num�ro, et tous les noms de d�partements commen�ant par
+ ce num�ro s'afficheront,
+\layout Standard
+
+- recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ avec un nom de d�partement, ensuite cliquez sur le
+ bouton Appliquer.
+\layout Standard
+\added_space_top medskip 
+Pour cr�er un d�partement, l'administrateur doit cliquer sur le bouton 
+\begin_inset Graphics
+	filename images/list_new_department.png
+
+\end_inset 
+
+ .
+\layout Standard
+
+Appara�t alors l'espace de configuration des d�partements avec l'onglet
+ 
+\emph on 
+informations g�n�rales
+\emph default 
+ et l'onglet 
+\emph on 
+R�f�rences
+\emph default 
+.
+\layout Standard
+
+Pour enregistrer la configuration cliquer sur le bouton Termin�, pour revenir
+ � la page pr�c�dente cliquer sur le bouton Annuler.
+\layout Standard
+
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Subsubsection
+
+Propri�t�s
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom du d�partement
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom du d�partement.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+\align left 
+Introduisez une description, un commentaire sur le d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cat�gorie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Lieu
+\layout Standard
+
+Dans le cas d'une soci�t� poss�dant plusieurs d�partements sur des sites
+ s�par�s.
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+D�partement
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom du d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Lieu
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'endroit ou est situ� le d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'adresse du d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T�l�phone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le t�l�phone central du d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le fax central du d�partement
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/faxreports.lyx b/gosa-core/doc/core/fr/lyx-source/faxreports.lyx
new file mode 100644
index 0000000..f7dd167
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/faxreports.lyx
@@ -0,0 +1,57 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+RAPPORTS DES FAX
+\layout Section
+
+Rapports des Fax
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/fonreports.lyx b/gosa-core/doc/core/fr/lyx-source/fonreports.lyx
new file mode 100644
index 0000000..ae9c7ef
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/fonreports.lyx
@@ -0,0 +1,57 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+RAPPORTS TELEPHONIQUES
+\layout Section
+
+Rapports des t�l�phones
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/groups.lyx b/gosa-core/doc/core/fr/lyx-source/groups.lyx
new file mode 100644
index 0000000..dbf594b
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/groups.lyx
@@ -0,0 +1,617 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES GROUPES
+\layout Section
+
+Groupes
+\layout Standard
+
+L'administrateur peut cr�er ou modifier un groupe ou acc�der aux informations
+ sur un groupe � partir du bouton 
+\color blue
+Groupe
+\color default
+ dans le menu de gauche dans 
+\series bold 
+Administration
+\series default 
+.
+ La page 
+\family sans 
+\color black
+Administration des groupes
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+
+\color black
+La page est divis�e en trois colonnes : 
+\layout Standard
+
+
+\color black
+-La premi�re colonne est destin�e � afficher la liste des groupes ou des
+ d�partements, 
+\layout Standard
+
+
+\color black
+-les deux derni�res colonnes contiennent des ic�nes.
+ Elles repr�sentent les raccourcis vers les propri�t�s du groupe et les
+ actions � ex�cuter sur le groupe.
+\layout Standard
+
+
+\color black
+-Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement, elles pr�dominent
+ sur toutes autres formes de s�lection d'affichage.
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+\color black
+Administration du groupe
+\family default 
+\color default
+ que l'administrateur g�re la liste des groupes de la soci�t�.
+\layout Standard
+
+Comme pour les utilisateurs, il est possible de modifier l'affichage des
+ groupes en utilisant le tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+ L'administrateur peut faire une recherche nominative et/ou sur les propri�t�s
+ du groupe :
+\layout Itemize
+
+Pour la recherche sur les noms : 
+\begin_deeper 
+\layout Standard
+
+- cliquer sur l'ast�risque (ou �toile : *) pour voir appara�tre tous les
+ groupes; 
+\layout Standard
+
+- cliquez sur une lettre et tous les groupes commen�ant par cette lettre
+ seront affich�s; 
+\layout Standard
+
+- cliquez sur un num�ro, les groupes ayant un nom d�butant par le num�ro
+ choisi s'afficheront.
+\end_deeper 
+\layout Itemize
+
+Pour la recherche � partir des propri�t�s du groupe il suffit :
+\begin_deeper 
+\layout Standard
+
+- de cocher une ou plusieurs propositions; 
+\end_deeper 
+\layout Itemize
+
+Pour la recherche d'un nom � partir d'une lettre :
+\begin_deeper 
+\layout Standard
+
+- remplir le premier champ avec une lettre suivi de l'ast�risque, cliquer
+ sur le bouton Appliquer, tous les noms d�butant par cettre lettre seront
+ affich�s,
+\layout Standard
+
+- remplir le deuxi�me champ avec une lettre suivi de l'ast�risque, cliquer
+ sur le bouton Appliquer, tous les noms contenant cette lettre seront affich�s.
+\end_deeper 
+\layout Standard
+
+Pour cr�er un groupe l'administrateur doit cliquer sur le bouton 
+\begin_inset Graphics
+	filename images/list_new_group.png
+
+\end_inset 
+
+.
+\layout Standard
+
+Appara�t alors l'espace de configuration.
+ L'administrateur configure les extensions pour chaque groupe.
+ 
+\layout Standard
+
+A chaque extension configur�e, pour enregistrer les modifications, cliquer
+ sur le bouton Termin� et pour revenir � la page pr�c�dente cliquer sur
+ le bouton Annuler.
+\layout Standard
+
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+\layout Standard
+
+En haut � droite une s�rie d'information vous est donn�e : le nom du groupe
+ sur lequel vous �tes occup�, et sa place dans l'arbre LDAP.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Itemize
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom du groupe
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom du groupe
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez une description, un commentaire sur le groupe
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Forcer le GID : Forcer le groupe � utiliser le num�ro inscrit dans le champ.
+\layout Itemize
+
+Groupe / Domaine Samba : Met les membres dans un groupe et un domaine samba
+\layout Itemize
+
+Groupe t�l�phonique : Met les membres dans un groupe t�l�phonique
+\layout Itemize
+
+Groupe Nagios : Met les membres dans un groupe nagios 
+\layout Standard
+
+L'administrateur ins�re les membres du personnel devant faire partie de
+ ce groupe.
+ Il suffit d'utiliser le bouton 
+\emph on 
+Ajouter
+\emph default 
+ qui renvoie � la liste des utilisateurs.
+ L'administrateur doit s�lectionner les futurs membres du groupe.
+ Pour enlever un membre, utiliser le bouton 
+\emph on 
+Supprimer
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Environnement
+\layout Standard
+
+Pour activer l'extension Environnement cliquer sur 
+\shape italic 
+Ajouter l'extension environnement
+\shape default 
+.
+\layout Subsubsection
+
+Profiles
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profile
+\layout Subsubsection
+\added_space_top medskip 
+Logon scripts
+\layout Subsubsection
+\added_space_top medskip 
+Attach share
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug devices
+\layout Subsubsection
+\added_space_top medskip 
+Imprimante
+\layout Subsection
+\added_space_top bigskip 
+Applications
+\layout Standard
+
+Pour activer l'extension Applications cliquez sur 
+\shape italic 
+Cr�er des applications
+\shape default 
+.
+\layout Standard
+
+L'administrateur dispose de la liste des applications dans la colonne Applicatio
+ns disponibles.
+ Il peut attribuer une ou plusieurs applications � un groupe.
+ Il suffit de cliquer sur le nom d'une application celle ci appara�t dans
+ la colonne Applications utilis�es.
+\layout Standard
+
+A l'aide du bouton S�parateur l'administrateur peut s�parer de mani�re visuelle
+ une application par rapport aux autres.
+ 
+\layout Standard
+
+Pour terminer cliquer sur le bouton 
+\emph on 
+Terminer
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+Pour activer un compte mail cliquez sur 
+\shape italic 
+Cr�er un compte
+\emph on 
+ 
+\shape default 
+de messagerie
+\emph default 
+.
+\layout Subsubsection
+
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse principale
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Introduisez l'adresse principale du groupe
+\color red
+ 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Serveur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+S�lectionnez le nom du serveur associ� � cette adresse
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Utilisation des Quota
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Pr�cisez si vous d�sirez �tablir une limite au niveau de la quantit� de
+ mail
+\color red
+ 
+\color black
+entrant.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Taille des Quota
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Pr�cisez en kb la taille du quota
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Adresses alternatives
+\layout Standard
+
+Le mail peut �tre redirig� vers une ou plusieurs autres adresses.
+ Ces adresses sont des alias � ins�rer dans Adresses alternatives.
+ 
+\layout Standard
+
+Utilisez les boutons 
+\emph on 
+Ajouter
+\emph default 
+ ou 
+\emph on 
+Supprimer 
+\emph default 
+pour g�rer les alias.
+\layout Subsubsection
+\added_space_top medskip 
+R�pertoire partag� IMAP
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Permission par d�faut
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante du type d'acc�s par d�faut
+ au dossier IMAP
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Permission des membres
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante du type d'acc�s accord�
+ aux membres au dossier IMAP
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+L'administrateur peut ajouter � partir de ce champ d'autres adresses de
+ messagerie avec un droit d'acc�s au dossier IMAP
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Transf�rer les messages vers un membre n'appartenant pas au groupe
+\layout Standard
+
+Des utilisateurs peuvent recevoir les messages d'un groupe sans pour autant
+ en �tre membre.
+ Il suffit d'ins�rer les adresses de ces utilisateurs dans le champ qui
+ pr�c�de les boutons 
+\emph on 
+Ajouter
+\emph default 
+, 
+\emph on 
+Ajouter en local
+\emph default 
+ et 
+\emph on 
+Supprimer
+\emph default 
+.
+ Le bouton 
+\emph on 
+Ajouter en local
+\emph default 
+ renvoie aux adresses d�j� enregistr�es dans GOsa.
+\layout Subsection
+\added_space_top bigskip 
+ACL
+\layout Standard
+
+Cette partie permet � l'administrateur de configurer les droits d'acc�s
+ de l'utilisateur ou du groupe aux diff�rentes parties de GOsa.
+ 
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/images/action.png b/gosa-core/doc/core/fr/lyx-source/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/action.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/addr_company.png b/gosa-core/doc/core/fr/lyx-source/images/addr_company.png
new file mode 100644
index 0000000..80a173d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/addr_company.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/addr_home.png b/gosa-core/doc/core/fr/lyx-source/images/addr_home.png
new file mode 100644
index 0000000..14ee484
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/addr_home.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/addr_personal.png b/gosa-core/doc/core/fr/lyx-source/images/addr_personal.png
new file mode 100644
index 0000000..ecf17bc
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/addr_personal.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/addressbook.png b/gosa-core/doc/core/fr/lyx-source/images/addressbook.png
new file mode 100644
index 0000000..08c72ef
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/addressbook.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/alternatemail.png b/gosa-core/doc/core/fr/lyx-source/images/alternatemail.png
new file mode 100644
index 0000000..62b0534
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/alternatemail.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/application.png b/gosa-core/doc/core/fr/lyx-source/images/application.png
new file mode 100644
index 0000000..671fc7d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/application.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/back.png b/gosa-core/doc/core/fr/lyx-source/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/back.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/banana.png b/gosa-core/doc/core/fr/lyx-source/images/banana.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/banana.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/blocklists.png b/gosa-core/doc/core/fr/lyx-source/images/blocklists.png
new file mode 100644
index 0000000..8f252a4
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/blocklists.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/button_cancel.png b/gosa-core/doc/core/fr/lyx-source/images/button_cancel.png
new file mode 100644
index 0000000..9691957
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/button_cancel.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/certs.png b/gosa-core/doc/core/fr/lyx-source/images/certs.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/certs.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/closedlock.png b/gosa-core/doc/core/fr/lyx-source/images/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/closedlock.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/conference.png b/gosa-core/doc/core/fr/lyx-source/images/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/conference.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/crossref.png b/gosa-core/doc/core/fr/lyx-source/images/crossref.png
new file mode 100644
index 0000000..ec2ed78
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/crossref.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/default.jpg b/gosa-core/doc/core/fr/lyx-source/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/default.jpg differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/default_icon.png b/gosa-core/doc/core/fr/lyx-source/images/default_icon.png
new file mode 100644
index 0000000..58d50d3
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/default_icon.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/department.png b/gosa-core/doc/core/fr/lyx-source/images/department.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/department.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/dhcp.png b/gosa-core/doc/core/fr/lyx-source/images/dhcp.png
new file mode 100644
index 0000000..1360b6f
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/dhcp.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/display.png b/gosa-core/doc/core/fr/lyx-source/images/display.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/display.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/dns.png b/gosa-core/doc/core/fr/lyx-source/images/dns.png
new file mode 100644
index 0000000..6a55d72
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/dns.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/dtree.png b/gosa-core/doc/core/fr/lyx-source/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/dtree.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/edit.png b/gosa-core/doc/core/fr/lyx-source/images/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/edit.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/editcopy.png b/gosa-core/doc/core/fr/lyx-source/images/editcopy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/editcopy.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/editdelete.png b/gosa-core/doc/core/fr/lyx-source/images/editdelete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/editdelete.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/editpaste.png b/gosa-core/doc/core/fr/lyx-source/images/editpaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/editpaste.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/edittrash.png b/gosa-core/doc/core/fr/lyx-source/images/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/edittrash.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/email.png b/gosa-core/doc/core/fr/lyx-source/images/email.png
new file mode 100644
index 0000000..d53e620
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/email.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/empty.png b/gosa-core/doc/core/fr/lyx-source/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/empty.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/encrypted.png b/gosa-core/doc/core/fr/lyx-source/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/encrypted.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/envelope.png b/gosa-core/doc/core/fr/lyx-source/images/envelope.png
new file mode 100644
index 0000000..6053eed
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/envelope.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/expand.png b/gosa-core/doc/core/fr/lyx-source/images/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/expand.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/false.png b/gosa-core/doc/core/fr/lyx-source/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/false.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/fax.png b/gosa-core/doc/core/fr/lyx-source/images/fax.png
new file mode 100644
index 0000000..3f58c36
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/fax.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/fax_small.png b/gosa-core/doc/core/fr/lyx-source/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/fax_small.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/filesaveas.png b/gosa-core/doc/core/fr/lyx-source/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/filesaveas.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/flag.png b/gosa-core/doc/core/fr/lyx-source/images/flag.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/flag.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/folder.png b/gosa-core/doc/core/fr/lyx-source/images/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/folder.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/forward.png b/gosa-core/doc/core/fr/lyx-source/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/forward.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/ftp.png b/gosa-core/doc/core/fr/lyx-source/images/ftp.png
new file mode 100644
index 0000000..e5b5691
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/ftp.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/fullfolder.png b/gosa-core/doc/core/fr/lyx-source/images/fullfolder.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/fullfolder.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/group.png b/gosa-core/doc/core/fr/lyx-source/images/group.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/group.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/hardware.png b/gosa-core/doc/core/fr/lyx-source/images/hardware.png
new file mode 100644
index 0000000..0ac401c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/hardware.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/hdd_linux_unmount.png b/gosa-core/doc/core/fr/lyx-source/images/hdd_linux_unmount.png
new file mode 100644
index 0000000..1b2e065
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/hdd_linux_unmount.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/head.png b/gosa-core/doc/core/fr/lyx-source/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/head.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/help.png b/gosa-core/doc/core/fr/lyx-source/images/help.png
new file mode 100644
index 0000000..9fe7652
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/help.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/house.png b/gosa-core/doc/core/fr/lyx-source/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/house.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/img1.png b/gosa-core/doc/core/fr/lyx-source/images/img1.png
new file mode 100644
index 0000000..0388e82
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/img1.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/info.png b/gosa-core/doc/core/fr/lyx-source/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/info.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/info_small.png b/gosa-core/doc/core/fr/lyx-source/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/info_small.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/keyboard.png b/gosa-core/doc/core/fr/lyx-source/images/keyboard.png
new file mode 100644
index 0000000..cdc0306
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/keyboard.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/lamp.png b/gosa-core/doc/core/fr/lyx-source/images/lamp.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/lamp.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/launch.png b/gosa-core/doc/core/fr/lyx-source/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/launch.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/ldapserver.png b/gosa-core/doc/core/fr/lyx-source/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/ldapserver.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/ldif.png b/gosa-core/doc/core/fr/lyx-source/images/ldif.png
new file mode 100644
index 0000000..ca164a1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/ldif.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_back.png b/gosa-core/doc/core/fr/lyx-source/images/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_back.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_blocklist.png b/gosa-core/doc/core/fr/lyx-source/images/list_blocklist.png
new file mode 100644
index 0000000..d89fd1d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_blocklist.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_home.png b/gosa-core/doc/core/fr/lyx-source/images/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_home.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_macro.png b/gosa-core/doc/core/fr/lyx-source/images/list_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_macro.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new.png b/gosa-core/doc/core/fr/lyx-source/images/list_new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_app.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_app.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_blocklist.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_department.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_department.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_group.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_group.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_macro.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_macro.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_ogroup.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_new_user.png b/gosa-core/doc/core/fr/lyx-source/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_new_user.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_ogroup.png b/gosa-core/doc/core/fr/lyx-source/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_ogroup.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_password.png b/gosa-core/doc/core/fr/lyx-source/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_password.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_root.png b/gosa-core/doc/core/fr/lyx-source/images/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_root.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_seperator.png b/gosa-core/doc/core/fr/lyx-source/images/list_seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_seperator.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_submit.png b/gosa-core/doc/core/fr/lyx-source/images/list_submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_submit.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/list_up.png b/gosa-core/doc/core/fr/lyx-source/images/list_up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/list_up.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/log_critical.png b/gosa-core/doc/core/fr/lyx-source/images/log_critical.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/log_critical.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/log_info.png b/gosa-core/doc/core/fr/lyx-source/images/log_info.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/log_info.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/log_unknown.png b/gosa-core/doc/core/fr/lyx-source/images/log_unknown.png
new file mode 100644
index 0000000..4ed65a9
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/log_unknown.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/log_warning.png b/gosa-core/doc/core/fr/lyx-source/images/log_warning.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/log_warning.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/login.png b/gosa-core/doc/core/fr/lyx-source/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/login.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/logview.png b/gosa-core/doc/core/fr/lyx-source/images/logview.png
new file mode 100644
index 0000000..accbd8d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/logview.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/macros.png b/gosa-core/doc/core/fr/lyx-source/images/macros.png
new file mode 100644
index 0000000..a9100e7
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/macros.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/mailto.png b/gosa-core/doc/core/fr/lyx-source/images/mailto.png
new file mode 100644
index 0000000..a0bc51c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/mailto.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/members.png b/gosa-core/doc/core/fr/lyx-source/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/members.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/mouse.png b/gosa-core/doc/core/fr/lyx-source/images/mouse.png
new file mode 100644
index 0000000..3c0d31d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/mouse.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/network.png b/gosa-core/doc/core/fr/lyx-source/images/network.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/network.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/null.gif b/gosa-core/doc/core/fr/lyx-source/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/null.gif differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/ogroup.png b/gosa-core/doc/core/fr/lyx-source/images/ogroup.png
new file mode 100644
index 0000000..29d351f
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/ogroup.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/openlock.png b/gosa-core/doc/core/fr/lyx-source/images/openlock.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/openlock.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/password.png b/gosa-core/doc/core/fr/lyx-source/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/password.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/penguin.png b/gosa-core/doc/core/fr/lyx-source/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/penguin.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/personal.png b/gosa-core/doc/core/fr/lyx-source/images/personal.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/personal.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/phone.png b/gosa-core/doc/core/fr/lyx-source/images/phone.png
new file mode 100644
index 0000000..a301fba
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/phone.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/phonereport.png b/gosa-core/doc/core/fr/lyx-source/images/phonereport.png
new file mode 100644
index 0000000..702b898
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/phonereport.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/posix.png b/gosa-core/doc/core/fr/lyx-source/images/posix.png
new file mode 100644
index 0000000..e8d33ab
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/posix.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/printer.png b/gosa-core/doc/core/fr/lyx-source/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/printer.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/proxy.png b/gosa-core/doc/core/fr/lyx-source/images/proxy.png
new file mode 100644
index 0000000..d8cd426
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/proxy.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/reports.png b/gosa-core/doc/core/fr/lyx-source/images/reports.png
new file mode 100644
index 0000000..1d47237
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/reports.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/rightarrow.png b/gosa-core/doc/core/fr/lyx-source/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/rightarrow.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/rocket.png b/gosa-core/doc/core/fr/lyx-source/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/rocket.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/samba.png b/gosa-core/doc/core/fr/lyx-source/images/samba.png
new file mode 100644
index 0000000..861e43c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/samba.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/save.png b/gosa-core/doc/core/fr/lyx-source/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/save.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/scanner.png b/gosa-core/doc/core/fr/lyx-source/images/scanner.png
new file mode 100644
index 0000000..627540c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/scanner.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/search.png b/gosa-core/doc/core/fr/lyx-source/images/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/search.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_application.png b/gosa-core/doc/core/fr/lyx-source/images/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_application.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_component.png b/gosa-core/doc/core/fr/lyx-source/images/select_component.png
new file mode 100644
index 0000000..ef289f6
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_component.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_default.png b/gosa-core/doc/core/fr/lyx-source/images/select_default.png
new file mode 100644
index 0000000..83f3752
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_default.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_department.png b/gosa-core/doc/core/fr/lyx-source/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_department.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_groups.png b/gosa-core/doc/core/fr/lyx-source/images/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_groups.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_macro.png b/gosa-core/doc/core/fr/lyx-source/images/select_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_macro.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_component.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_component.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_phone.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_phone.png
new file mode 100644
index 0000000..45714d1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_phone.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_printer.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_printer.png
new file mode 100644
index 0000000..e4618fe
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_printer.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_server.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_server.png
new file mode 100644
index 0000000..84f6570
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_server.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_terminal.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_terminal.png
new file mode 100644
index 0000000..a218480
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_terminal.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_new_workstation.png b/gosa-core/doc/core/fr/lyx-source/images/select_new_workstation.png
new file mode 100644
index 0000000..8b5d4f4
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_new_workstation.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_ogroup.png b/gosa-core/doc/core/fr/lyx-source/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_ogroup.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_phone.png b/gosa-core/doc/core/fr/lyx-source/images/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_phone.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_phone_connected.png b/gosa-core/doc/core/fr/lyx-source/images/select_phone_connected.png
new file mode 100644
index 0000000..bd8c739
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_phone_connected.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_printer.png b/gosa-core/doc/core/fr/lyx-source/images/select_printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_printer.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_proxy.png b/gosa-core/doc/core/fr/lyx-source/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_proxy.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_server.png b/gosa-core/doc/core/fr/lyx-source/images/select_server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_server.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_template.png b/gosa-core/doc/core/fr/lyx-source/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_template.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_terminal.png b/gosa-core/doc/core/fr/lyx-source/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_terminal.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_user.png b/gosa-core/doc/core/fr/lyx-source/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_user.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_winstation.png b/gosa-core/doc/core/fr/lyx-source/images/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_winstation.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/select_workstation.png b/gosa-core/doc/core/fr/lyx-source/images/select_workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/select_workstation.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/server.png b/gosa-core/doc/core/fr/lyx-source/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/server.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/service.png b/gosa-core/doc/core/fr/lyx-source/images/service.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/service.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/small_filter.png b/gosa-core/doc/core/fr/lyx-source/images/small_filter.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/small_filter.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/sort_down.png b/gosa-core/doc/core/fr/lyx-source/images/sort_down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/sort_down.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/sort_up.png b/gosa-core/doc/core/fr/lyx-source/images/sort_up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/sort_up.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/sound.png b/gosa-core/doc/core/fr/lyx-source/images/sound.png
new file mode 100644
index 0000000..cc030d3
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/sound.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/stop.png b/gosa-core/doc/core/fr/lyx-source/images/stop.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/stop.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/system.png b/gosa-core/doc/core/fr/lyx-source/images/system.png
new file mode 100644
index 0000000..c3308ee
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/system.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/terminal_small.png b/gosa-core/doc/core/fr/lyx-source/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/terminal_small.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/time.png b/gosa-core/doc/core/fr/lyx-source/images/time.png
new file mode 100644
index 0000000..1de43d5
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/time.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/tree.png b/gosa-core/doc/core/fr/lyx-source/images/tree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/tree.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/true.png b/gosa-core/doc/core/fr/lyx-source/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/true.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/user.png b/gosa-core/doc/core/fr/lyx-source/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/user.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/warning.png b/gosa-core/doc/core/fr/lyx-source/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/warning.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/images/zip.png b/gosa-core/doc/core/fr/lyx-source/images/zip.png
new file mode 100644
index 0000000..af23ddf
Binary files /dev/null and b/gosa-core/doc/core/fr/lyx-source/images/zip.png differ
diff --git a/gosa-core/doc/core/fr/lyx-source/ldapmanager.lyx b/gosa-core/doc/core/fr/lyx-source/ldapmanager.lyx
new file mode 100644
index 0000000..8d37526
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/ldapmanager.lyx
@@ -0,0 +1,57 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+GERER LDAP
+\layout Section
+
+GERER LDAP
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/logview.lyx b/gosa-core/doc/core/fr/lyx-source/logview.lyx
new file mode 100644
index 0000000..a22df27
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/logview.lyx
@@ -0,0 +1,57 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 1
+	0
+	8
+	-1
+\end_bullet
+\bullet 2
+	0
+	8
+	-1
+\end_bullet
+\bullet 3
+	0
+	8
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+LOGS SYSTEMES
+\layout Section
+
+Logs syst�mes
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/macro.lyx b/gosa-core/doc/core/fr/lyx-source/macro.lyx
new file mode 100644
index 0000000..b3fee17
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/macro.lyx
@@ -0,0 +1,331 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES MACROS TELEPHONIQUES
+\layout Section
+
+Phone macros
+\layout Standard
+
+L'administrateur peut configurer les phone macros � partir du bouton 
+\series bold 
+\color blue
+Phone macros
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+.
+ La page 
+\family sans 
+Phone macro management
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+La page est divis�e en trois colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher les noms des macros t�l�phoniques,
+\layout Standard
+
+- la deuxi�me colonne indique si la macro est visible ou non par l'utilisateur,
+\layout Standard
+
+- la troisi�me colonne contient les ic�nes qui sont les actions que l'on
+ peut executer sur ces macros t�l�phoniques.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Ces ic�nes pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+ 
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Phone macro management
+\family default 
+ que l'administrateur g�re les phone macros instaur�es dans la soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage des phone macros en utilisant le
+ tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Standard
+
+L'administrateur peut faire une recherche sur le nom :
+\layout Standard
+
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre toutes les
+ macros t�l�phoniques;
+\layout Standard
+
+- cliquez sur une lettre et tous les noms des macros t�l�phoniques d�butant
+ par cette lettre s'afficheront;
+\layout Standard
+
+- cliquez sur un num�ro et tous les noms des macros t�l�phoniques d�butant
+ par ce num�ro s'afficheront;
+\layout Standard
+
+- recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ par le nom de la macro et ensuite cliquez sur le
+ bouton 
+\emph on 
+Appliquer
+\emph default 
+.
+\layout Standard
+\added_space_top medskip 
+Pour cr�er et configurer une macro t�l�phonique, l'administrateur doit cliquer
+ sur le bouton 
+\begin_inset Graphics
+	filename images/list_new_macro.png
+
+\end_inset 
+
+.
+\layout Standard
+
+Appara�t l'espace de configuration.
+\layout Standard
+
+Pour enregistrer la configuration, cliquez sur le bouton 
+\emph on 
+Termin�
+\emph default 
+, pour revenir � la page pr�c�dente cliquez sur le bouton 
+\emph on 
+Annuler
+\emph default 
+.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Nom de la macro
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom de la macro
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Nom � afficher
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom qui sera visible par l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez une description, un commentaire sur la macro t�l�phonique
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Visible pour l'utilisateur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez si vous voulez que la macro apparaisse lors de la s�l�ction des macros
+ t�l�phoniques
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Texte de la macro
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Contenu de la macro � ex�cuter
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Param�tres
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/ogroups.lyx b/gosa-core/doc/core/fr/lyx-source/ogroups.lyx
new file mode 100644
index 0000000..e1f0a34
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/ogroups.lyx
@@ -0,0 +1,303 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION
+\layout Section
+
+Groupes d'objets
+\layout Standard
+
+Un Groupe d'objets est un groupe h�t�rog�ne.
+ C'est la possibilit� qu'a l'administrateur de cr�er des combinaisons d'objets
+ de nature diff�rente dans un m�me groupe pour r�pondre � la probl�matique
+ d'une situation donn�e.
+ C'est ce qu'on appelle le Groupe d'objets.
+ Cela permet une gestion plus souple et plus appropri�e que la cr�ation
+ de groupes classiques.
+\layout Standard
+
+L'administrateur peut ajouter et configurer les Groupes d'objets � partir
+ du bouton 
+\series bold 
+\color blue
+Groupes d'objets
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+.
+ La page 
+\family sans 
+Groupes d'objets
+\family default 
+ s'affiche.
+ 
+\layout Standard
+
+La page est divis�e en trois colonnes :
+\layout Standard
+
+- la premi�re colonne est destin�e � afficher les noms des Groupes d'objets,
+\layout Standard
+
+- la deuxi�me colonne contient les ic�nes qui sont des raccourcis vers les
+ propri�t�s des Groupes d'objets,
+\layout Standard
+
+- la troisi�me colonne contient les ic�nes qui sont les actions que l'on
+ peut ex�cuter sur les Groupes d'objets.
+\layout Standard
+
+Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement.
+ Ces ic�nes pr�dominent sur toutes autres formes de s�l�ction d'affichage.
+ 
+\layout Standard
+\added_space_top medskip 
+C'est � partir de la page 
+\family sans 
+Groupes d'objets
+\family default 
+ que l'administrateur g�re les Groupes d'objets cr��s pour la soci�t�.
+\layout Standard
+
+Il est possible de modifier l'affichage de la liste des Groupes en utilisant
+ le tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+\layout Itemize
+
+L'administrateur peut faire une recherche sur le nom :
+\begin_deeper 
+\layout Standard
+
+- cliquez sur l'ast�risque (�toile : *) pour voir appara�tre tous les noms
+ de Groupes d'objets;
+\layout Standard
+
+- cliquez sur une lettre et tous les noms de Groupes d'objets d�butant par
+ cette lettre s'afficheront;
+\layout Standard
+
+- cliquez sur un num�ro et tous les noms des Groupes d'objets d�butant par
+ ce num�ro s'afficheront.
+\end_deeper 
+\layout Itemize
+
+L'administrateur peut faire une recherche � partir des propri�t�s du Groupe
+ d'objets :
+\begin_deeper 
+\layout Standard
+
+- cochez une ou plusieurs propositions 
+\end_deeper 
+\layout Itemize
+
+Ou encore la recherche rapide 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+ : remplissez le champ par le nom du Groupes d'objets recherch� et ensuite
+ cliquez sur le bouton 
+\emph on 
+Appliquer
+\emph default 
+.
+\layout Standard
+\added_space_top medskip 
+Pour cr�er, configurer ou modifier un Groupe d'objets, l'administrateur
+ doit cliquer sur le bouton 
+\begin_inset Graphics
+	filename images/list_new_ogroup.png
+
+\end_inset 
+
+.
+ 
+\layout Standard
+
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom du groupe
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom du groupe � cr�er
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Description
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez une description, un commentaire sur le groupe
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Objets membres
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+L'objet membre reprend la liste des objets associ�s au Groupe d'objets cr�
+\color default
+e.
+ Le bouton Ajouter renvoie � la liste des objets existants, utilisez le
+ bouton Supprimer pour effacer.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences r�sument les relations existantes entre objets.
+\the_end
diff --git a/gosa-core/doc/core/fr/lyx-source/users.lyx b/gosa-core/doc/core/fr/lyx-source/users.lyx
new file mode 100644
index 0000000..ee5b29c
--- /dev/null
+++ b/gosa-core/doc/core/fr/lyx-source/users.lyx
@@ -0,0 +1,2035 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+ADMINISTRATION DES UTILISATEURS
+\layout Section
+
+Utilisateurs
+\layout Standard
+
+L'administrateur peut cr�er ou modifier un compte ou acc�der aux informations
+ sur un compte en cliquant sur le bouton 
+\series bold 
+\color blue
+utilisateurs
+\series default 
+\color default
+ de la partie 
+\series bold 
+Administration
+\series default 
+ dans le menu � gauche.
+ La page
+\family sans 
+\color black
+ Administration des utilisateurs
+\family default 
+\color default
+ s'affiche, elle est divis�e en trois colonnes.
+ Au fur et � mesure que les utilisateurs sont configur�s ils appara�tront
+ dans la premi�re colonne, class�s selon leur d�partement.
+ 
+\layout Standard
+
+Les deux derni�res colonnes comportent des ic�nes qui sont des raccourcis
+ vers les propri�t�s de chaque utilisateur et les actions � ex�cuter sur
+ l'utilisateur.
+ Les fl�ches en ent�te ( 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ ) servent � modifier l'affichage selon le d�partement, elles pr�dominent
+ sur toutes autres s�lections d'affichage.
+\layout Standard
+
+C'est � partir de la page 
+\family sans 
+\color black
+Administration des utilisateurs
+\family default 
+\color default
+ que l'administrateur syst�me aura une vue globale et pourra g�rer la liste
+ des utilisateurs.
+ 
+\layout Standard
+
+
+\color black
+Dans la partie droite de la page se trouve un tableau intitul� Filtres 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+.
+ 
+\layout Itemize
+
+
+\color black
+Ce tableau sert � modifier l'affichage de la liste des utilisateurs :
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- Cliquer sur une lettre pour que s'affichent tous les utilisateurs dont
+ le nom commence par la lettre s�lectionn�e;
+\layout Standard
+
+
+\color black
+- Cliquez sur l'ast�risque et tous les noms d'utilisateurs appara�tront
+ class�s alphab�tiquement.
+\end_deeper 
+\layout Itemize
+
+Plus bas d'autres possibilit�s d'affichage sont possibles :
+\begin_deeper 
+\layout Standard
+
+- Cochez une ou plusieurs propositions pour un affichage cibl�;
+\layout Standard
+
+- Ins�rez soit une lettre soit un num�ro tous deux suivis de l'ast�risque
+ soit un nom d'utilisateur dans le champ pr�c�d� d'une loupe 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+, cette ic�ne symbolise la recherche d'un item.
+ Cliquez sur le bouton Appliquer pour faire appara�tre le(s) utilisateur(s)
+ recherch�(s).
+\end_deeper 
+\layout Standard
+
+Pour cr�er un compte cliquez sur 
+\begin_inset Graphics
+	filename images/list_new_user.png
+
+\end_inset 
+
+.
+ Si le compte est d�j� cr�� cliquez sur le compte lui-m�me.
+\layout Standard
+
+Appara�t alors l'espace de configuration munie d'onglets qui repr�sentent
+ chacun un espace de configuration.
+ Ces onglets sont des extensions apport�es � GOsa.
+ L'administrateur configure ces extensions pour chaque utilisateur.
+\layout Standard
+\added_space_bottom medskip 
+Pour terminer la configuration, cliquez sur le bouton Termin� en bas � droite.
+ Pour revenir � 
+\color black
+la liste des utilisateurs
+\color default
+ cliquez sur le bouton Annuler.
+ 
+\newline 
+
+\layout Standard
+
+Tous les champs pr�c�d�s d'une ast�risque doivent �tre remplis obligatoirement.
+\layout Standard
+
+Dans le haut � droite vous avez � la fois l'identit�e de l'utilisateur sur
+ lequel vous travaillez mais aussi sa place dans l'arbre LDAP.
+\layout Standard
+
+L'image 
+\begin_inset Graphics
+	filename images/closedlock.png
+
+\end_inset 
+
+ signale que l'utilisateur est en mode verrouill�.
+ Ce mode pemet d'�viter les modifications simultan�es.
+\layout Subsection
+\pagebreak_top 
+Informations g�n�rales
+\layout Subsubsection
+
+Informations personnelles
+\layout Standard
+\added_space_bottom medskip 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="15" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Nom
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom de l'utilisateur 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pr�nom
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le pr�nom de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Identifiant
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'identificateur de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Titre personnel
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le titre (Madame, Mademoiselle ou Monsieur) de l'utilisateur
+ 
+\color red
+?
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Titre Universitaire
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le diplome obtenu
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Date de naissance
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cliquez sur le bouton 
+\begin_inset Quotes erd
+\end_inset 
+
+ Remplir
+\begin_inset Quotes erd
+\end_inset 
+
+ pour voir appara�tre une liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sexe 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�l�ction dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Langue
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�l�ction dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Base
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Choix du d�partement.
+ (la cr�ation de d�partements se fait � partir du bouton 
+\series bold 
+\color blue
+d�partement
+\series default 
+\color default
+ dans le menu de g
+\color black
+auche
+\color default
+ dans la partie 
+\series bold 
+Administration
+\series default 
+).
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'adresse personnelle de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Num�ro de t�l�phone priv� 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro priv� selon la nomenclature nationale ou internationale.
+ (veillez � garder la m�me nomenclature pour tous les utilisateurs)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Page d'accueil
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'url de la page personnelle de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Format de stockage des mots de passe 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�l�ction dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Certificats
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Cliquez sur le bouton
+\begin_inset Quotes erd
+\end_inset 
+
+ Modification des certificats
+\begin_inset Quotes erd
+\end_inset 
+
+.
+ GOsa vous propose trois types de certificats � rechercher dans l' arborescence
+ de votre ordinateur.
+ Pour enregistrer cliquez sur le bouton
+\begin_inset Quotes erd
+\end_inset 
+
+ Termin�
+\begin_inset Quotes erd
+\end_inset 
+
+.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kerberos
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Cliquez sur le bouton
+\begin_inset Quotes erd
+\end_inset 
+
+ Modifier les propri�t�s
+\begin_inset Quotes erd
+\end_inset 
+
+.
+ 
+\color red
+?
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+Vous pouvez aussi si vous le d�sirez agr�menter d'une photo le profil de
+ l'utilisateur en cliquant sur le bouton 
+\shape italic 
+changer la photo
+\shape default 
+.
+ Vous parcourez alors l'arborescence de votre ordinateur pour aller chercher
+ l'image.
+\layout Subsubsection
+\added_space_top medskip 
+Informations sur l'entreprise
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="13" columns="2">
+<features>
+<column alignment="left" valignment="top" leftline="true" width="5cm">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Entreprise
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom de la soci�t�
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+D�partement
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom du d�partement auquel appartient l'utilisateur 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N� du d�partement
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro du d�partement
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N� de l'employ�
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro attribu� � l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Type de l'employ�
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pr�cisez son statut dans la soci�t�
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+N� du bureau
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro du bureau dans lequel travaille l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T�l�phone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro de t�l�phone de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Portable
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro du mobile ou GSM de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bip
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro du bipeur de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le num�ro de Fax de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Lieu 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez la localisation du bureau de l'utilisateur si la soci�t� poss�de
+ des succursales
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+D�partement 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le nom de la r�gion o� la soci�t� est localis�e 
+\color red
+?
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'adresse de l'entreprise
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Unix
+\layout Standard
+
+Pour activer le compte Unix pour un utilisateur cliquez sur le bouton 
+\shape italic 
+cr�er un compte unix.
+\layout Subsubsection
+
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+R�pertoire home
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez le chemin vers le r�pertoire de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Shell
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Choisir dans la liste d�roulante le type de shell (console) utilis�
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groupe principal
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le groupe principal auquel appartient l'utilisateur.
+ (Pour la cr�ation de groupe allez au bouton 
+\series bold 
+\color blue
+Groupes
+\series default 
+\color default
+ dans le menu de gauche dans la partie 
+\series bold 
+Administration
+\series default 
+)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Statut
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indique si le compte est activ� ou non
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Forcer l'UID/GID
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez si vous d�sirez forcer l'uid/gid de l'utilisateur � une certaine
+ valeur
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Appartient aux groupes
+\layout Standard
+
+Utilisez les boutons 
+\emph on 
+Ajouter
+\emph default 
+ et 
+\emph on 
+Supprimer
+\emph default 
+ pour ins�rer ou effacer les groupes dans le champ vide.
+ Le bouton 
+\emph on 
+Ajouter
+\emph default 
+ renvoie � la liste des groupes cr�es par l'administrateur.
+ L'utilisateur peut appartenir � un ou plusieurs groupes.
+\layout Subsubsection
+\added_space_top medskip 
+Compte
+\layout Standard
+
+Il s'agit de la gestion du mot de passe de l'utilisateur.
+ Diff�rentes propositions peuvent �tre coch�es � la fois mais l'administrateur
+ doit veiller � rester coh�rent pour �viter les conflits dans l'application
+ de ses choix.
+\layout Subsubsection
+\added_space_top medskip 
+Syst�me de confiance
+\layout Standard
+
+Le syst�me de confiance sert � g�rer l'acc�s de l'utilisateur aux diff�rents
+ syst�mes, ph�riph�riques, etc...
+ .
+ Le syst�me de confiance peut �tre en mode :
+\layout Itemize
+
+d�sactiv�, 
+\layout Itemize
+
+acc�s complet : l'utilisateur � l'acc�s complet aux syst�mes,
+\layout Itemize
+
+permettre l'acc�s � ces h�tes : 
+\begin_deeper 
+\layout Standard
+
+- Utilisez le bouton 
+\emph on 
+Ajouter
+\emph default 
+ pour faire appara�tre la liste des h�tes auxquels l'utilisateur pourrait
+ avoir acc�s, 
+\layout Standard
+
+- Utilisez le bouton 
+\emph on 
+Supprimer
+\emph default 
+ pour effacer les h�tes auxquels l'utilisateur n'a plus acc�s.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Environnement
+\layout Standard
+
+Cliquez sur le bouton 
+\shape italic 
+ajouter une extension environnemental
+\shape default 
+ pour voir appara�tre les diff�rents points destin�s � la configuration
+ environnementale de l'utilisateur.
+\layout Subsubsection
+
+Profiles
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profile
+\layout Subsubsection
+\added_space_top medskip 
+Logon scripts
+\layout Subsubsection
+\added_space_top medskip 
+Attach share
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug devices
+\layout Subsubsection
+\added_space_top medskip 
+Imprimante
+\layout Subsection
+\added_space_top bigskip 
+Mail
+\layout Standard
+
+Le compte �mail est li� au serveur de messagerie.
+ Pour activer le compte de messagerie d'un utilisateur cliquez sur 
+\shape italic 
+Cr�er un compte �mail
+\shape default 
+.
+\layout Subsubsection
+
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adresse principale
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Introduisez l'adresse de messagerie de l'utilisateur 
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Serveur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+S�lectionnez le serveur ou est stock�e le compte de messagerie de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Utilisation des quota
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pr�cisez si vous d�sirez appliquer un quota au niveau du compte de messagerie
+ de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Tailles du quota
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pr�cisez en KB la taille du quota
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternative addresses
+\layout Standard
+
+L'utilisateur peut �tre en possession d'alias.
+ Ces alias sont � ins�rer dans le champ adresses alternatives.
+ 
+\layout Standard
+
+Utilisez le bouton 
+\emph on 
+Ajouter
+\emph default 
+ pour ins�rer les alias.
+ L'alias doit �tre introduit dans le champ vide pr�c�dant le bouton 
+\emph on 
+Ajouter
+\emph default 
+.
+ Utilisez le bouton 
+\emph on 
+Supprimer
+\emph default 
+ pour effacer les alias.
+\layout Subsubsection
+\added_space_top medskip 
+Options du compte de messagerie
+\layout Standard
+
+Gestion des options du compte de messagerie de l'utilisateur :
+\layout Itemize
+
+Aucune distribution des messages dans la boite de l'utilisateur : envoie
+ une copie � l'adresse mentionn�e dans 
+\emph on 
+transf�rer les messages vers
+\emph default 
+ , sans en mettre une copie dans la messagerie de l'utilisateur.
+\layout Itemize
+
+Activer la notification d'absence : envoie le message �crit dans 
+\emph on 
+message d'absence
+\emph default 
+.
+\layout Itemize
+
+D�placer les messages ayant un niveau de spam sup�rieur � (a) vers le r�pertoire
+ (b) : envoie les messages ayant un score sup�rieur � (a) dans le r�pertoire
+ (b).
+\layout Itemize
+
+Rejeter les messages plus gros que (c) MB : ne pas accepter les messages
+ plus gros que (c) MB.
+\layout Itemize
+
+Utilisez les boutons 
+\emph on 
+Ajouter
+\emph default 
+ ou 
+\emph on 
+Ajouter en local
+\emph default 
+\color black
+ pour la gestion des adresses : 
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- Le bouton 
+\emph on 
+Ajouter en local
+\emph default 
+ permet de s�lectionner parmis la liste des adresses locales.
+ 
+\layout Standard
+
+
+\color black
+- Le bouton 
+\emph on 
+Ajouter
+\emph default 
+ permet l'ajout d'adresses ext�rieures au syst�me.
+\layout Standard
+
+
+\color black
+- Utilisez le bouton 
+\emph on 
+Supprimer
+\emph default 
+ pour effacer les adresses de messagerie.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Options de messagerie avanc�es
+\layout Itemize
+
+Les utilisateurs ne sont autoris�s qu'a envoy� et recevoir des emails locaux
+ : l'administrateur peut forcer l'envoi et la reception des messages en
+ local uniquement.
+\layout Itemize
+
+Utiliser des scripts sieve personnalis�s : l'administrateur peut �crire
+ des scripts sieve qui �tablissent les r�gles de gestion de la messagerie.
+ 
+\emph on 
+Attention ! cela d�sactive toutes les options de messagerie
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Samba
+\layout Standard
+
+Pour cr�er un compte samba pour un utilisateur cliquez sur le bouton 
+\shape italic 
+Cr�er un compte samba
+\shape default 
+.
+\layout Subsubsection
+
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+R�pertoire Home
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin du r�pertoire personnel de l'utilisateur en notation
+ UNC ex: 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+utilisateur.
+ Choisissez dans la liste d�roulante la lettre associ�e au r�pertoire personnel
+ de l'utilisateur.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Domaine
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+S�l�ctionnez le domaine dans lequel se trouve la machine de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Chemin du Script
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le script de d�marrage de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Chemin du Profile
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin pour acc�der au profile de l'utilisateur
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Serveur de terminal
+\layout Itemize
+
+Permet la connexion sur un serveur de terminal
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+R�pertoire Home
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin du r�pertoire personnel de l'utilisateur en notation
+ UNC ex: 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+utilisateur.
+ Choisissez dans la liste d�roulante la lettre associ�e au r�pertoire personnel
+ de l'utilisateur.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Chemin du Profile
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin pour acc�der au profile de l'utilisateur
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+H�rite de la configuration du client
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Programme initial
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin vers l'application par d�faut
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+R�pertoire Home
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Indiquez le chemin pour acc�der au repertoire de base de l'application 
+\color red
+?
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+ 
+\layout Itemize
+
+Configuration du temps d'attente (en minutes) :
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connexion
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin d'indiquer le temps d'attente maximum lors d'une connexion
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+D�connexion
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin d'indiquer le temps d'attente maximum lors d'une d�connexion
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+En attente
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin d'indiquer le temps d'attente maximum lors d'une requ�te
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+P�riph�riques clients :
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connecter les lecteurs clients � l'identification
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin de connecter les lecteurs de l'utilisateur lors de l'identification
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Connecter les imprimantes clients � l'identification
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin de connecter les imprimantes de l'utilisateur lors de l'identificati
+on
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Imprimante par d�faut
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cochez afin de d�finir l'imprimante par d�faut de l'utilisateur lors de
+ l'identification
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+Divers :
+\begin_deeper 
+\layout Standard
+
+- Masquer : 
+\color red
+?
+\layout Standard
+
+- Sur interrompu ou temps d'attente d�pass� : permet de choisir si il faut
+ d�connecter le client ou faire une remise � z�ro.
+\layout Standard
+
+- Reconnexion si d�connect� : permet de choisir si la reconnexion doit �tre
+ faite depuis le m�me client, ou si elle peut �tre effectu�e depuis un autre
+ client.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Options d'acc�s
+\layout Itemize
+
+Il s'agit de la gestion du mot de passe de l'utilisateur.
+ Diff�rentes propositions peuvent �tre coch�es � la fois mais l'administrateur
+ doit veiller � rester coh�rent pour �viter les conflits dans l'application
+ de ses choix.
+\layout Itemize
+
+Le champ � droite doit �tre rempli par les noms de stations � partir desquelles
+ l'utilisateur peut se connecter.
+ L'administrateur doit utiliser les boutons 
+\emph on 
+Ajouter
+\emph default 
+ pour y ins�rer les noms de stations.
+ Le bouton 
+\emph on 
+Ajouter
+\emph default 
+ renvoie � la liste des stations.
+ Utilisez le bouton 
+\emph on 
+Supprimer
+\emph default 
+ pour effacer des stations.
+\layout Subsection
+\added_space_top bigskip 
+Connectivit�
+\layout Standard
+
+L'administrateur peut affiner la gestion du compte de l'utilisateur en configura
+nt les services suppl�mentaires auquel il peut se connecter.
+\layout Subparagraph*
+
+Compte Proxy
+\layout Standard
+
+Si vous activez l'option Proxy pour l'utilisateur vous pouvez filtrer sur
+ le contenu, limit� l'acc�s � certaines heures et restreindre le t�l�chargement.
+\layout Subparagraph
+\added_space_top smallskip 
+Compte FTP
+\layout Standard
+
+Si vous activez l'option FTP, vous pouvez r�gler la bande passante montante
+ et descendante, le ratio des donn�es et le quota � ne pas d�passer pour
+ le transfert de fichiers .
+ Vous pouvez aussi � partir de cet endroit d�sactiver le compte FTP.
+\layout Subparagraph
+\added_space_top smallskip 
+Compte WebDAV
+\layout Standard
+
+Si vous activez l'option WebDav, l'utilisateur aura acc�s au serveur WebDAV
+ 
+\layout Subparagraph
+\added_space_top smallskip 
+Compte PHPGroupware
+\layout Standard
+
+Si vous activez l'option PHPGroupware, l'utilisateur aura acc�s au logiciel
+ PHPGroupware
+\layout Subparagraph
+\added_space_top smallskip 
+Compte Intranet 
+\layout Standard
+\added_space_bottom smallskip 
+Si vous activez l'option Intranet, l'utilisateur aura acc�s au serveur Intranet
+\layout Standard
+
+
+\series bold 
+Compte PPTP
+\layout Standard
+\added_space_bottom smallskip 
+Si vous activez l'option PPTP, l'utilisateur aura acc�s au serveur PPTP
+\layout Standard
+
+
+\series bold 
+Compte PHPScheduleIt
+\series default 
+ 
+\layout Standard
+\added_space_bottom smallskip 
+Si vous activez l'option PHPScheduleIt, l'utilisateur aura acc�s au logiciel
+ PHPScheduleIt
+\layout Standard
+
+
+\series bold 
+Compte GLPI
+\series default 
+ 
+\layout Standard
+
+Si vous activez l'option GLPI, l'utilisateur aura acc�s au logiciel GLPI
+\layout Subsection
+\added_space_top bigskip 
+Fax
+\layout Standard
+
+Pour cr�er un compte Fax pour un utilisateur cliquez sur le bouton
+\shape italic 
+ Cr�er un compte Fax.
+\layout Subsubsection
+
+Informations g�n�rales
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ins�rez le num�ro de fax de l'utilisateur
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Langue
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Format de distribution
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+M�thodes de distribution
+\layout Itemize
+
+Desactiver temporairement l'utilisation du fax : interdit l'utilisation
+ du fax par cet utilisateur.
+\layout Itemize
+
+D�livrer les fax comme des mails : envoie les fax sous le format de distribution
+ d�fini dans la messagerie de l'utilisateur
+\layout Itemize
+
+Imprimer directement les fax : permet de s�lectionner l'imprimante � laquelle
+ envoyer les fax re�us par cet utilisateur
+\layout Subsubsection
+\added_space_top medskip 
+Num�ros de fax alternatif
+\layout Standard
+
+L'administrateur peut compl�ter la configuration du fax par une s�rie d'autres
+ num�ros de fax utilis�s dans la soci�t�.
+ Utilisez les boutons Ajouter, Ajouter en local pour remplir le champ.
+\layout Itemize
+
+Le bouton 
+\emph on 
+Ajouter en local
+\emph default 
+ renvoie � la liste des num�ros de fax.
+ 
+\layout Itemize
+
+Le bouton 
+\emph on 
+Ajouter
+\emph default 
+ permet d'ins�rer des num�ros de fax autres que ceux de la liste.
+ 
+\layout Standard
+
+Utilisez le bouton 
+\emph on 
+Supprimer
+\emph default 
+ pour effacer des num�ros de fax.
+\layout Subsubsection
+\added_space_top medskip 
+Listes rouges
+\layout Standard
+
+Le fax est aujourd'hui fr�quemment utilis� pour distribuer des messages
+ publicitaires.
+ Certains peuvent �tre apparent�s � des spams.
+ Pour �viter que les utilisateurs soient submerg�s par ces messages, l'administr
+ateur peut instaurer une liste rouge reprenant les num�ros de fax ind�sirables
+ qu'ils soient entrant ou sortant.
+\layout Standard
+
+En cliquant sur le bouton 
+\emph on 
+Edit
+\emph default 
+ vous faites appara�tre une page comprenant deux listes, du c�t� gauche
+ on trouve les num�ros refus�s pour cet utilisateur, du c�te droit on retrouve
+ les listes rouges pr�definies par l'administrateur.
+\layout Standard
+
+Selectionnez la ou les listes que vous d�sirez utiliser dans la liste de
+ droite et cliquer sur 
+\emph on 
+Ajouter � la liste rouge
+\emph default 
+ pour l'activer.
+\layout Subsection
+\added_space_top bigskip 
+T�l�phone
+\layout Standard
+
+Pour activer le compte t�l�phone pour un utilisateur cliquez sur le bouton
+ 
+\shape italic 
+Cr�er un compte t�l�phone
+\shape default 
+.
+\layout Subsubsection
+
+Num�ros de t�l�phone
+\layout Standard
+
+Ins�rez le ou les num�ro(s) de t�l�phone de l'utilisateur en utilisant le
+ bouton 
+\emph on 
+Ajouter
+\emph default 
+.
+ 
+\layout Subsubsection
+\added_space_top medskip 
+Mat�riel t�l�phonique
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+T�l�phone
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Faites votre s�lection dans la liste d�roulante
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+VoicemailPIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Introduisez le code PIN utilis� par l'utilisateur pour atteindre sa bo�te
+ vocale.
+
+\color red
+ 
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Phone PIN
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Introduisez le code PIN utilis� par l'utilisateur pour d�verouiller son
+ t�l�phone.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Phone macro
+\layout Standard
+
+Permet de s�l�ctionner une macro � mettre dans le t�l�phone de l'utilisateur.
+\layout Subsection
+\added_space_top bigskip 
+R�f�rences
+\layout Standard
+
+Les r�f�rences pr�sentent les propri�t�s de l'utilisateur.
+ Cela permet � l'administrateur d'avoir une information rapide sur la situation
+ de l'utilisateur dans la soci�t�.
+\the_end
diff --git a/gosa-core/doc/core/guide.xml b/gosa-core/doc/core/guide.xml
new file mode 100644
index 0000000..0440d85
--- /dev/null
+++ b/gosa-core/doc/core/guide.xml
@@ -0,0 +1,67 @@
+<ENTRY name="generic"										VALUE="Generic"						PATH=""																				FILE="" />
+<ENTRY name="userManagement"						VALUE="Users"							PATH="../doc/core/__LANG__/html/users"				FILE="index.html" />
+<ENTRY name="user"											VALUE="User"							PATH="../doc/core/__LANG__/html/users"				FILE="node2.html" />
+<ENTRY name="posixAccount"							VALUE="Unix"							PATH="../doc/core/__LANG__/html/users"				FILE="node5.html" />
+<ENTRY name="environment"								VALUE="Environment"				PATH="../doc/core/__LANG__/html/users"				FILE="node10.html" />
+<ENTRY name="mailAccount"								VALUE="Mail"							PATH="../doc/core/__LANG__/html/users"				FILE="node17.html" />
+<ENTRY name="sambaAccount"							VALUE="Samba"							PATH="../doc/core/__LANG__/html/users"				FILE="node22.html" />
+<ENTRY name="connectivity"							VALUE="Connectivity"			PATH="../doc/core/__LANG__/html/users"				FILE="node26.html" />
+<ENTRY name="gofaxAccount"							VALUE="Fax"								PATH="../doc/core/__LANG__/html/users"				FILE="node32.html" />
+<ENTRY name="phoneAccount"							VALUE="Phone account"			PATH="../doc/core/__LANG__/html/users"				FILE="node37.html" />
+<ENTRY NAME="ppdManager"								VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="password"									VALUE="Password"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="hotplugDialog"							VALUE="Hotplug device"		PATH="../doc/core/__LANG__/html/users"				FILE="node15.html" />
+<ENTRY NAME="kioskManagementDialog"			VALUE="Kiosk profile"			PATH="../doc/core/__LANG__/html/users"				FILE="node12.html" />
+<ENTRY NAME="selectPrinterDialog"				VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="logonManagementDialog"			VALUE="Logon scripts"			PATH="../doc/core/__LANG__/html/users"				FILE="node13.html" />
+<ENTRY NAME="nagiosAccount"							VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="blocklist"									VALUE="Fax Blocklists"		PATH="../doc/core/__LANG__/html/faxreports"		FILE="index.html" />
+<ENTRY NAME="faxreport"									VALUE="Fax Reports"				PATH="../doc/core/__LANG__/html/faxreports"		FILE="node1.html" />
+<ENTRY NAME="csvimport"									VALUE="CSV import"				PATH="../doc/core/__LANG__/html/ldapmanager"	FILE="index.html" />
+<ENTRY NAME="ldifimport"								VALUE="Ldif import"				PATH="../doc/core/__LANG__/html/ldapmanager"	FILE="index.html" />
+<ENTRY NAME="ldifexport"								VALUE="Ldif export"				PATH="../doc/core/__LANG__/html/ldapmanager"	FILE="index.html" />
+<ENTRY NAME="xlsexport"									VALUE="Xls export"				PATH="../doc/core/__LANG__/html/ldapmanager"	FILE="index.html" />
+<ENTRY NAME="logview"										VALUE="Log view"					PATH="../doc/core/__LANG__/html/logview"			FILE="logview.html" />
+<ENTRY NAME="mailgroup"									VALUE="Mail group"				PATH="../doc/core/__LANG__/html/groups"				FILE="node11.html" />
+<ENTRY NAME="appgroup"									VALUE="Application group"	PATH="../doc/core/__LANG__/html/groups"				FILE="node11.html" />
+<ENTRY NAME="groupManagement"						VALUE="Groups"						PATH="../doc/core/__LANG__/html/groups"				FILE="index.html" />
+<ENTRY NAME="applicationParameters"			VALUE="Application"				PATH="../doc/core/__LANG__/html/applications"	FILE="index.html" />
+<ENTRY NAME="applicationManagement"			VALUE="Application"				PATH="../doc/core/__LANG__/html/applications"	FILE="index.html" />
+<ENTRY NAME="application"								VALUE="Application"				PATH="../doc/core/__LANG__/html/applications"	FILE="index.html" />
+<ENTRY NAME="departmentManagement"			VALUE="Department"				PATH="../doc/core/__LANG__/html/departments"	FILE="index.html" />
+<ENTRY NAME="department"								VALUE="Department"				PATH="../doc/core/__LANG__/html/departments"	FILE="index.html" />
+<ENTRY NAME="phoneGeneric"							VALUE="Generic"						PATH="../doc/core/__LANG__/html/users"				FILE="node37.html" />
+<ENTRY NAME="phonequeue"								VALUE="Phone queue"				PATH="../doc/core/__LANG__/html/ogroups"			FILE="index.html" />
+<ENTRY NAME="conference"								VALUE="Phone conference"	PATH="../doc/core/__LANG__/html/conference"		FILE="index.html" />
+<ENTRY NAME="phoneConferenceManagment"	VALUE="Phone conference"	PATH="../doc/core/__LANG__/html/conference"		FILE="index.html" />
+<ENTRY NAME="mailqueue"									VALUE="Mail queue"				PATH="../doc/core/__LANG__/html/mailqueue"		FILE="node1.html" />
+<ENTRY NAME="gofonMacro"								VALUE="Phone macro"				PATH="../doc/core/__LANG__/html/macro"				FILE="index.html" />
+<ENTRY NAME="macro"											VALUE="Phone macro"				PATH="../doc/core/__LANG__/html/macro"				FILE="index.html" />
+<ENTRY NAME="macroParameter"						VALUE="Phone macro"				PATH="../doc/core/__LANG__/html/macro"				FILE="index.html" />
+<ENTRY NAME="ogroup"										VALUE="Object group"			PATH="../doc/core/__LANG__/html/ogroups"			FILE="index.html" />
+<ENTRY NAME="ogroupManagement"					VALUE="Object group"			PATH="../doc/core/__LANG__/html/ogroups"			FILE="index.html" />
+<ENTRY NAME="mailogroup"								VALUE="Object group"			PATH="../doc/core/__LANG__/html/ogroups"			FILE="index.html" />
+<ENTRY NAME="selectUserToPrinterDialog"	VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="printerPPDSelectionDialog"	VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="printerPPDDialog"					VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="printgeneric"							VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="componentGeneric"					VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="fonreport"									VALUE="Phone Reports"			PATH="../doc/core/__LANG__/html/fonreports"		FILE="node1.html" />
+<ENTRY NAME="reference"									VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="certificate"								VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="config"										VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="userinfo"									VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="sieve"											VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="sambaMungedDial"						VALUE=""									PATH=""																				FILE="" />
+<ENTRY NAME="passwordMethodssha"				VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodCrypt"				VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethod"						VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodsha"					VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodsmd5"				VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodkerberos"		VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodMd5"					VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="passwordMethodClear"				VALUE="Passwort"					PATH="../doc/core/__LANG__/html/users"				FILE="node41.html" />
+<ENTRY NAME="mailMethod"								VALUE="Mail"							PATH="../doc/core/__LANG__/html/users"				FILE="node17.html" />
+<ENTRY NAME="mailMethodKolab"						VALUE="Mail"							PATH="../doc/core/__LANG__/html/users"				FILE="node17.html" />
+<ENTRY NAME="mailMethodSendmailCyrus"		VALUE="Mail"							PATH="../doc/core/__LANG__/html/users"				FILE="node17.html" />
+<ENTRY NAME="mailMethodCyrus"						VALUE="Mail"							PATH="../doc/core/__LANG__/html/users"				FILE="node17.html" />
diff --git a/gosa-core/doc/core/nl/html/departments/WARNINGS b/gosa-core/doc/core/nl/html/departments/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/nl/html/departments/departments.css b/gosa-core/doc/core/nl/html/departments/departments.css
new file mode 100644
index 0000000..7a96f07
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/departments.css differ
diff --git a/gosa-core/doc/core/nl/html/departments/departments.html b/gosa-core/doc/core/nl/html/departments/departments.html
new file mode 100644
index 0000000..62db670
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/departments.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Afdelingen beheer</TITLE>
+<META NAME="description" CONTENT="Afdelingen beheer">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Afdelingen beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Afdelingen lijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Afdeling aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaande afdeling bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Eigenschappen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Plaats</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Beheerders instellingen</A>
+</UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/index.html b/gosa-core/doc/core/nl/html/departments/index.html
new file mode 100644
index 0000000..62db670
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Afdelingen beheer</TITLE>
+<META NAME="description" CONTENT="Afdelingen beheer">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Afdelingen beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Afdelingen lijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Afdeling aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaande afdeling bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Eigenschappen</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Plaats</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Beheerders instellingen</A>
+</UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/labels.pl b/gosa-core/doc/core/nl/html/departments/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/nl/html/departments/list_back.png b/gosa-core/doc/core/nl/html/departments/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/list_back.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/list_home.png b/gosa-core/doc/core/nl/html/departments/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/list_home.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/list_new_department.png b/gosa-core/doc/core/nl/html/departments/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/list_new_department.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/list_reload.png b/gosa-core/doc/core/nl/html/departments/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/list_reload.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/list_root.png b/gosa-core/doc/core/nl/html/departments/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/list_root.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/node1.html b/gosa-core/doc/core/nl/html/departments/node1.html
new file mode 100644
index 0000000..e5bce5c
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node1.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Afdelingen lijst</TITLE>
+<META NAME="description" CONTENT="Afdelingen lijst">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Afdelingen lijst</A>
+</H1>
+
+<P>
+De beheerder kan afdelingen aanmaken, veranderen of bekijken door
+op de <SPAN  CLASS="textbf"><SPAN ID="hue25">Afdelingen</SPAN></SPAN> knop in het <SPAN  CLASS="textbf">Beheer</SPAN>
+menu aan de linkerkant te klikken. De <SPAN  CLASS="textsf"><SPAN ID="hue28">Afdelingen
+Beheer</SPAN></SPAN> pagina die getoond wordt, is het uitgangspunt voor alle afdeling
+beheertaken en is verdeeld in twee kolommen.
+
+<P>
+
+<UL>
+<LI>De eerste kolom bevat de namen van de afdelingen (alfabetisch gesorteerd).
+</LI>
+<LI>De tweede kolom bevat knoppen voor de beschikbare acties (knippen,
+kopieren, bewerken, verwijderen)
+</LI>
+</UL>
+De knoppen (<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">)
+dienen voor navigatie binnen de afdelingshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root"> Helemaal naar boven (hoofd afdeling)
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back"> Een afdeling naar boven
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> Naar de basis van de afdeling
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload"> Huidige afdeling verversen
+</LI>
+</UL>
+Daarnaast is het mogelijk de weergave van afdelingen met behulp van
+filters te beinvloeden (<SPAN ID="hue42">met</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue44">Filters</SPAN></SPAN>
+<SPAN ID="hue95"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> aan de rechter
+zijde):</SPAN>
+<P>
+
+<UL>
+<LI>Op namen zoeken:
+
+<P>
+
+<UL>
+<LI>Door op * (asterisk) te klikken worden alle afdelingen getoond
+</LI>
+<LI>Het klikken van een letter, laat alle afdelingen zien waarvan de naam
+met de betreffende letter begint
+</LI>
+<LI>Het klikken van een cijfer, laat alle afdelingen zien waarvan de naam
+met het betreffende cijfer begint
+</LI>
+</UL>
+</LI>
+<LI><SPAN ID="hue52">Daarnaast kan de lijst met behulp van delen van
+namen en complexere reguliere expressies verder beperkt worden met
+behulp van</SPAN> het invoerveld achter het icoon <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">.
+In dit veld kunt u cijfer en letter combinaties invoeren om de lijst
+verder te beperken. Om uw selectie door te voeren dient u op de knop
+<SPAN  CLASS="textit">Filter toepassen</SPAN> te drukken.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html23"
+  HREF="node2.html">Afdeling aanmaken</A>
+<UL>
+<LI><A NAME="tex2html24"
+  HREF="node3.html">Een bestaande afdeling bewerken</A>
+<LI><A NAME="tex2html25"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html26"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html27"
+  HREF="node6.html">Eigenschappen</A>
+<LI><A NAME="tex2html28"
+  HREF="node7.html">Plaats</A>
+<LI><A NAME="tex2html29"
+  HREF="node8.html">Beheerders instellingen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html30"
+  HREF="node9.html">Referenties</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node10.html b/gosa-core/doc/core/nl/html/departments/node10.html
new file mode 100644
index 0000000..39b1495
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node10.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Afdelingen beheer</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/departments/ departments.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node2.html b/gosa-core/doc/core/nl/html/departments/node2.html
new file mode 100644
index 0000000..8f8db50
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node2.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Afdeling aanmaken</TITLE>
+<META NAME="description" CONTENT="Afdeling aanmaken">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Afdeling aanmaken</A>
+</H2>
+
+<P>
+Om een nieuw afdeling aan te maken klikt u op de knop <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_department.png"
+ ALT="Image list_new_department">.
+Volg de instructies hieronder op die gegeven worden bij het bewerken
+van een afdeling.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html41"
+  HREF="node3.html">Een bestaande afdeling bewerken</A>
+<LI><A NAME="tex2html42"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node3.html b/gosa-core/doc/core/nl/html/departments/node3.html
new file mode 100644
index 0000000..ce94dc6
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node3.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Een bestaande afdeling bewerken</TITLE>
+<META NAME="description" CONTENT="Een bestaande afdeling bewerken">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Een bestaande afdeling bewerken</A>
+</H3>
+
+<P>
+Klik binnen de afdelingen lijst op de naam van de te bewerken afdeling.
+De pagina die nu geladen wordt, bevat eigenschappen van de afdeling
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node4.html b/gosa-core/doc/core/nl/html/departments/node4.html
new file mode 100644
index 0000000..63a09e1
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node4.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemene informatie</TITLE>
+<META NAME="description" CONTENT="Algemene informatie">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Algemene informatie</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Om het bewerken van afdelingen (ook nieuwe afdelingen) af te sluiten
+en op te slaan, dient u op de knop Opslaan rechtsonder te drukken.
+Om de bewerkingen ongedaan te maken, drukt u op de knop annuleren,
+die u ook rechtsonder vindt.
+</LI>
+<LI>Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+Deze velden moeten pers� ingevuld worden.
+</LI>
+<LI>In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam)
+van de afdeling die momenteel bewerkt wordt.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node5.html b/gosa-core/doc/core/nl/html/departments/node5.html
new file mode 100644
index 0000000..8e34406
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node5.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Algemeen</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html71"
+  HREF="node6.html">Eigenschappen</A>
+<LI><A NAME="tex2html72"
+  HREF="node7.html">Plaats</A>
+<LI><A NAME="tex2html73"
+  HREF="node8.html">Beheerders instellingen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node6.html b/gosa-core/doc/core/nl/html/departments/node6.html
new file mode 100644
index 0000000..401029d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node6.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Eigenschappen</TITLE>
+<META NAME="description" CONTENT="Eigenschappen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Eigenschappen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Naam van de afdeling<SPAN ID="hue97">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De naam van de afdeling</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Omschrijving<SPAN ID="hue98">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De omschrijving van of een commentaar op de afdeling</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Categorie</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De categorie van de afdeling</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue99">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De basis (bovenliggende hoofdafdeling) van de afdeling</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node7.html b/gosa-core/doc/core/nl/html/departments/node7.html
new file mode 100644
index 0000000..3aee2f7
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node7.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Plaats</TITLE>
+<META NAME="description" CONTENT="Plaats">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Plaats</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Provincie</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De provincie of het land waar de afdeling zich bevindt</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Plaats</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De plaats waar de afdeling zich bevindt</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adres</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het adres van de afdeling</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefoon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het centrale telefoonnummer van de afdeling</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het centrale faxnummer van de afdeling</TD>
+</TR>
+</TABLE>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node8.html b/gosa-core/doc/core/nl/html/departments/node8.html
new file mode 100644
index 0000000..8caf73b
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node8.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Beheerders instellingen</TITLE>
+<META NAME="description" CONTENT="Beheerders instellingen">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012300000000000000">
+Beheerders instellingen</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Markeer de afdeling als een onafhankelijke beheerbare eenheid:</SPAN>
+Hiermee kunt u opgeven dat toegangsrechten binnen GOsa binnen deze
+afdeling afzonderlijk geregeld worden. Zo kunt u beheerders per afdeling
+instellen indien gewenst.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/node9.html b/gosa-core/doc/core/nl/html/departments/node9.html
new file mode 100644
index 0000000..6f6aa4f
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/departments/node9.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenties</TITLE>
+<META NAME="description" CONTENT="Referenties">
+<META NAME="keywords" CONTENT="departments">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="departments.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Referenties</A>
+</H2>
+
+<P>
+Onder referenties vindt u alle koppelingen die deze afdeling heeft
+met andere objecten binnen de LDAP database.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/departments/rocket.png b/gosa-core/doc/core/nl/html/departments/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/rocket.png differ
diff --git a/gosa-core/doc/core/nl/html/departments/search.png b/gosa-core/doc/core/nl/html/departments/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/nl/html/departments/search.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/WARNINGS b/gosa-core/doc/core/nl/html/groups/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/nl/html/groups/groups.css b/gosa-core/doc/core/nl/html/groups/groups.css
new file mode 100644
index 0000000..2dd9d25
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/groups.css differ
diff --git a/gosa-core/doc/core/nl/html/groups/groups.html b/gosa-core/doc/core/nl/html/groups/groups.html
new file mode 100644
index 0000000..8888a7b
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/groups.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groepen beheer</TITLE>
+<META NAME="description" CONTENT="Groepen beheer">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Groepen beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groepenlijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Groep aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaande groep bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Profielen</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Kiosk profiel</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Login scripts</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Shares</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Printers</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Programma's</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Algemeen</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">IMAP gedeelde mappen</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Stuur berichten door naar niet groepsleden</A>
+</UL>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Rechten</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/index.html b/gosa-core/doc/core/nl/html/groups/index.html
new file mode 100644
index 0000000..8888a7b
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/index.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groepen beheer</TITLE>
+<META NAME="description" CONTENT="Groepen beheer">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Groepen beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Groepenlijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Groep aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaande groep bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Profielen</A>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Kiosk profiel</A>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Login scripts</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Shares</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">Printers</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Programma's</A>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Algemeen</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">IMAP gedeelde mappen</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Stuur berichten door naar niet groepsleden</A>
+</UL>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Rechten</A>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/labels.pl b/gosa-core/doc/core/nl/html/groups/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/nl/html/groups/list_back.png b/gosa-core/doc/core/nl/html/groups/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/list_back.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/list_home.png b/gosa-core/doc/core/nl/html/groups/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/list_home.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/list_new_group.png b/gosa-core/doc/core/nl/html/groups/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/list_new_group.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/list_reload.png b/gosa-core/doc/core/nl/html/groups/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/list_reload.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/list_root.png b/gosa-core/doc/core/nl/html/groups/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/list_root.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/mailto.png b/gosa-core/doc/core/nl/html/groups/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/mailto.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/node1.html b/gosa-core/doc/core/nl/html/groups/node1.html
new file mode 100644
index 0000000..16d468d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node1.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groepenlijst</TITLE>
+<META NAME="description" CONTENT="Groepenlijst">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Groepenlijst</A>
+</H1>
+
+<P>
+De beheerder kan groep informatie aanmaken, veranderen of bekijken
+door op de <SPAN  CLASS="textbf"><SPAN ID="hue25">Groepen</SPAN></SPAN> knop in het <SPAN  CLASS="textbf">Beheer</SPAN>
+menu aan de linkerkant te klikken. De <SPAN  CLASS="textsf"><SPAN ID="hue28">Groepen
+Beheer</SPAN></SPAN> pagina die getoond wordt, is het uitgangspunt voor alle groep
+beheertaken en is verdeeld in drie kolommen.
+
+<P>
+
+<UL>
+<LI>De eerste kolom bevat de namen van de groepen en de afdelingen waarbinnen
+zij ingedeeld zijn (alfabetisch gesorteerd).
+</LI>
+<LI>De tweede kolom bevat knoppen voor snelle toegang tot verschillende
+groep eigenschappen van de groep (alleen beschikbaar indien de betreffende
+eigenschap geactiveerd is). Daarnaast dient deze kolom voor een snel
+overzicht van geactiveerde eigenschappen van de groep.
+
+<P>
+
+<UL>
+<LI>De mogelijke iconen en hun betekenis:
+<BR><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="CENTER">Icoon</TD>
+<TD ALIGN="LEFT">Betekenis</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_groups.png"
+ ALT="Image select_groups"></TD>
+<TD ALIGN="LEFT">Groep beschikt over UNIX eigenschappen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./smallenv.png"
+ ALT="Image smallenv"></TD>
+<TD ALIGN="LEFT">Groep beschikt over Omgevings instellingen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailto.png"
+ ALT="Image mailto"></TD>
+<TD ALIGN="LEFT">Groep beschikt over een E-mail account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_winstation.png"
+ ALT="Image select_winstation"></TD>
+<TD ALIGN="LEFT">Groep beschikt over een Samba/Windows account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_application.png"
+ ALT="Image select_application"></TD>
+<TD ALIGN="LEFT">Groep beschikt over programma eigenschapppen</TD>
+</TR>
+</TABLE>
+</LI>
+</UL>
+</LI>
+<LI>De derde kolom bevat knoppen voor de beschikbare acties (knippen,
+kopieren, bewerken, verwijderen)
+</LI>
+</UL>
+De knoppen (<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">)
+dienen voor navigatie binnen de afdelingshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root"> Helemaal naar boven (hoofd afdeling)
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back"> Een afdeling naar boven
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> Naar de basis van de groep
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload"> Huidige afdeling verversen
+</LI>
+</UL>
+Daarnaast is het mogelijk de weergave van groepen met behulp van filters
+te beinvloeden (<SPAN ID="hue52">met</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue54">Filters</SPAN></SPAN>
+<SPAN ID="hue185"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> aan de rechter
+zijde):</SPAN>
+<P>
+
+<UL>
+<LI>Op namen zoeken:
+
+<P>
+
+<UL>
+<LI>Door op * (asterisk) te klikken worden alle groepen getoond
+</LI>
+<LI>Het klikken van een letter, laat alle groepen zien waarvan de naam
+met de betreffende letter begint
+</LI>
+<LI>Het klikken van een cijfer, laat alle groepen zien waarvan de naam
+met het betreffende cijfer begint
+</LI>
+</UL>
+</LI>
+<LI>Verder zoekopties:
+<BR>(De volgende filters werken zodanig dat alleen groepen getoond worden,
+die over tenminste een van de geselecteerde opties beschikken; Standaard
+worden alle groepen getoond).
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toon primaire groepen:</SPAN> Groepen waarvoor geldt dat tenminste
+��n gebruiker de groep als primaire groep ingesteld heeft
+</LI>
+<LI><SPAN  CLASS="textit">Toon Samba groepen:</SPAN> Groepen die over Samba/Windows mogelijkheden
+beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon programma groepen:</SPAN> Groepen die over programma mogelijkheden
+beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon E-mail gropen:</SPAN> Groepen die over E-mail mogelijkheden beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon functionele groepen:</SPAN> Groepen die alleen over functionele
+eigenschappen beschikken
+</LI>
+</UL>
+</LI>
+<LI><SPAN ID="hue69">Daarnaast kan de lijst met behulp van delen van
+namen en complexere reguliere expressies verder beperkt worden met
+behulpt van</SPAN> het invoerveld achter het icoon <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">.
+In dit veld kunt u cijfer en letter combinaties invoeren om de lijst
+verder te beperken. Om uw selectie door te voeren dient u op de knop
+<SPAN  CLASS="textit">Filter toepassen</SPAN> te drukken.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html34"
+  HREF="node2.html">Groep aanmaken</A>
+<UL>
+<LI><A NAME="tex2html35"
+  HREF="node3.html">Een bestaande groep bewerken</A>
+<LI><A NAME="tex2html36"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html37"
+  HREF="node5.html">Algemeen</A>
+<LI><A NAME="tex2html38"
+  HREF="node6.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html39"
+  HREF="node7.html">Profielen</A>
+<LI><A NAME="tex2html40"
+  HREF="node8.html">Kiosk profiel</A>
+<LI><A NAME="tex2html41"
+  HREF="node9.html">Login scripts</A>
+<LI><A NAME="tex2html42"
+  HREF="node10.html">Shares</A>
+<LI><A NAME="tex2html43"
+  HREF="node11.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html44"
+  HREF="node12.html">Printers</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html45"
+  HREF="node13.html">Programma's</A>
+<LI><A NAME="tex2html46"
+  HREF="node14.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html47"
+  HREF="node15.html">Algemeen</A>
+<LI><A NAME="tex2html48"
+  HREF="node16.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html49"
+  HREF="node17.html">IMAP gedeelde mappen</A>
+<LI><A NAME="tex2html50"
+  HREF="node18.html">Stuur berichten door naar niet groepsleden</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html51"
+  HREF="node19.html">Rechten</A>
+<LI><A NAME="tex2html52"
+  HREF="node20.html">Referenties</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node10.html b/gosa-core/doc/core/nl/html/groups/node10.html
new file mode 100644
index 0000000..382e035
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node10.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Shares</TITLE>
+<META NAME="description" CONTENT="Shares">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+Shares</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node11.html b/gosa-core/doc/core/nl/html/groups/node11.html
new file mode 100644
index 0000000..e394dd2
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node11.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug apparaten</TITLE>
+<META NAME="description" CONTENT="Hotplug apparaten">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013500000000000000">
+Hotplug apparaten</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node12.html b/gosa-core/doc/core/nl/html/groups/node12.html
new file mode 100644
index 0000000..96af205
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node12.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Printers</TITLE>
+<META NAME="description" CONTENT="Printers">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013600000000000000">
+Printers</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node13.html b/gosa-core/doc/core/nl/html/groups/node13.html
new file mode 100644
index 0000000..caae098
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node13.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Programma's</TITLE>
+<META NAME="description" CONTENT="Programma's">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Programma's</A>
+</H2>
+
+<P>
+Om de Programma eigenschappen voor deze groep te activeren. drukt
+u op de knop <SPAN  CLASS="textit">Programma's</SPAN> <SPAN  CLASS="textit">toevoegen</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node14.html b/gosa-core/doc/core/nl/html/groups/node14.html
new file mode 100644
index 0000000..b48fc43
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node14.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>E-mail</TITLE>
+<META NAME="description" CONTENT="E-mail">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+E-mail</A>
+</H2>
+
+<P>
+Een E-mail account voor een groep betekent een of meerdere gedeelde
+mappen op een IMAP server. Dit maakt het mogelijk om meer dan een
+gebruiker toegang te geven tot E-mails die in deze map opgeslagen
+worden. Deze gedeelde mappen zijn bijvoorbeeld handig om E-mail distributie
+mogelijk te maken, maar ook om date zoals bijvoorbeeld een agenda
+of adresboek te delen. Om een E-mail account toe te voegen aan een
+groep, drukt u op de knop <SPAN  CLASS="textit">E-mail account aanmaken</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html187"
+  HREF="node15.html">Algemeen</A>
+<LI><A NAME="tex2html188"
+  HREF="node16.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html189"
+  HREF="node17.html">IMAP gedeelde mappen</A>
+<LI><A NAME="tex2html190"
+  HREF="node18.html">Stuur berichten door naar niet groepsleden</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node15.html b/gosa-core/doc/core/nl/html/groups/node15.html
new file mode 100644
index 0000000..288fd2d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node15.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Algemeen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Primair adres<SPAN ID="hue192">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue143">Het primaire E-mail adres voor de gedeelde mappen</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue145">Selecteer de mailserver waarop het account opgeslagen
+dient te worden</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota gebruik</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue147">Geeft het dataverbruik van de groep aan (indien
+een qouta gedefinieerd is)</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota grootte</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue149">De grootte van de hoeveelheid opslagruimte voor
+E-mails van de groep (in KB).</SPAN></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node16.html b/gosa-core/doc/core/nl/html/groups/node16.html
new file mode 100644
index 0000000..90b1378
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node16.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternatieve adressen</TITLE>
+<META NAME="description" CONTENT="Alternatieve adressen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Alternatieve adressen</A>
+</H3>
+
+<P>
+Alternatieve adressen zijn E-mail adressen, waaronder ook E-mail ontvangen
+kan worden door de E-mail groep. U kunt de knop <SPAN  CLASS="textit">Toevoegen</SPAN> gebruiken
+om E-mail alias adressen toe te voegen.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node17.html b/gosa-core/doc/core/nl/html/groups/node17.html
new file mode 100644
index 0000000..cb7c503
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node17.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>IMAP gedeelde mappen</TITLE>
+<META NAME="description" CONTENT="IMAP gedeelde mappen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+IMAP gedeelde mappen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Algemene rechten</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Hier geeft u de rechten op die voor alle gebruikers gelden, die niet
+expliciet genoemd worden en/of lid van deze groep zijn. Indien u E-mail
+wil accepteren van externe adressen, dan dient u de Algemen rechten
+op <SPAN  CLASS="textit">alleen afleveren</SPAN> in te stellen.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Groepslid rechten</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Hier geeft u de rechten op die voor alle leden van deze groep gelden.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>[Extra E-mail adressen]</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Hier geeft u de rechten voor extra E-mail adressen op. Druk op de
+knop <SPAN  CLASS="textit">Toevoegen</SPAN> om het E-mail adres met de opgegeven rechten
+toe te voegen</TD>
+</TR>
+</TABLE>
+
+<P>
+Voor de rechten kunt u een selectie maken uit de volgende IMAP rechten:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">alleen afleveren:</SPAN> De gebruiker/groep mag alleen E-mail berichten
+via SMTP afleveren in de map. Dit betekent dat de gebruiker <SPAN  CLASS="textit">niet</SPAN>
+kan lezen in de map.
+</LI>
+<LI><SPAN  CLASS="textit">alleen lezen:</SPAN> De gebruiker/groep mag alleen bestaande E-mail
+berichten die in de map staan lezen.
+</LI>
+<LI>afleveren & lezen: De gebruiker/groep mag nieuwe E-mail berichten
+via SMTP plaatsen in de map en daarnaast alleen bestaande berichten
+lezen.
+</LI>
+<LI><SPAN  CLASS="textit">afleveren, lezen & kopieren:</SPAN> De gebruiker/groep mag nieuwe
+E-mail berichten via SMTP plaatsen in de map. Daarnaast kunnen berichten
+gelezen en binnen de map gekopieerd worden
+</LI>
+<LI><SPAN  CLASS="textit">afleveren, lezen en schrijven:</SPAN> De gebruiker/groep heeft alle
+rechten op de E-mail map, inclusief het zetten van status informatie.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node18.html b/gosa-core/doc/core/nl/html/groups/node18.html
new file mode 100644
index 0000000..5511925
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node18.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Stuur berichten door naar niet groepsleden</TITLE>
+<META NAME="description" CONTENT="Stuur berichten door naar niet groepsleden">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015400000000000000">
+Stuur berichten door naar niet groepsleden</A>
+</H3>
+
+<P>
+Hiermee kunt u berichten die in voor deze groep bestemd zijn, automatisch
+doorsturen naar een ander adres. Druk op de knop <SPAN  CLASS="textit">Toevoegen</SPAN>
+om een extern E-mail adres toe te voegen, dat u in het tekstveld ingevuld
+hebt. Gebruik de knop <SPAN  CLASS="textit">Lokaal toevoegen</SPAN> om een lokaal E-mail
+adres toe te voegen.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node19.html b/gosa-core/doc/core/nl/html/groups/node19.html
new file mode 100644
index 0000000..f192b62
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node19.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Rechten</TITLE>
+<META NAME="description" CONTENT="Rechten">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Rechten</A>
+</H2>
+
+<P>
+In dit onderdeel kunt u rechten voor de diverse onderdelen binnen
+GOsa voor leden van de groep instellen.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node2.html b/gosa-core/doc/core/nl/html/groups/node2.html
new file mode 100644
index 0000000..b1e0127
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node2.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groep aanmaken</TITLE>
+<META NAME="description" CONTENT="Groep aanmaken">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Groep aanmaken</A>
+</H2>
+
+<P>
+Om een nieuwe groep aan te maken klikt u op de knop <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_group.png"
+ ALT="Image list_new_group">.
+Volg de instructies op die hierna gegevn worden om een bstaand account
+te bewerken.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html63"
+  HREF="node3.html">Een bestaande groep bewerken</A>
+<LI><A NAME="tex2html64"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node20.html b/gosa-core/doc/core/nl/html/groups/node20.html
new file mode 100644
index 0000000..1db61da
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node20.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenties</TITLE>
+<META NAME="description" CONTENT="Referenties">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Referenties</A>
+</H2>
+
+<P>
+Onder referenties vindt u alle koppelingen die deze groep met andere
+objecten uit de LDAP datanbase heeft.
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node21.html b/gosa-core/doc/core/nl/html/groups/node21.html
new file mode 100644
index 0000000..42adcdf
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node21.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Groepen beheer</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/groups/ groups.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node3.html b/gosa-core/doc/core/nl/html/groups/node3.html
new file mode 100644
index 0000000..55ac278
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node3.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Een bestaande groep bewerken</TITLE>
+<META NAME="description" CONTENT="Een bestaande groep bewerken">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Een bestaande groep bewerken</A>
+</H3>
+
+<P>
+Klik binnen de groepenlijst op de groepsnaam van de te bewerken groep.
+De pagina die nu geladen wordt, bevat tabbladen die voor groep mogelijkheden
+staan (momenteel zijn dat bijvoorbeeld Algemeen, Omgeving, E-mail
+etc.)
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node4.html b/gosa-core/doc/core/nl/html/groups/node4.html
new file mode 100644
index 0000000..427a775
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node4.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemene informatie</TITLE>
+<META NAME="description" CONTENT="Algemene informatie">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Algemene informatie</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Om het bewerken van groepen (ook nieuwe groepen) af te sluiten en
+op te slaan, dient u op de knop Opslaan rechtsonder te drukken. Om
+de bewerkingen ongedaan te maken, drukt u op de knop annuleren, die
+u ook rechtsonder vindt.
+</LI>
+<LI>Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+Deze velden moeten pers� ingevuld worden.
+</LI>
+<LI>In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam)
+van de groep die momenteel bewerkt wordt.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node5.html b/gosa-core/doc/core/nl/html/groups/node5.html
new file mode 100644
index 0000000..12e8019
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node5.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Algemeen</A>
+</H2>
+
+<P>
+
+<UL>
+<LI><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>G<SPAN ID="hue87">roepnaam</SPAN><SPAN ID="hue187">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De naam van de groep</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Omschrijving</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De omschrijving van of een commentaar over de groep</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis<SPAN ID="hue188">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De afdeling waartoe de groep hoort (het aanmaken van de afdelingen
+kan met behul van de knop <SPAN  CLASS="textbf"><SPAN ID="hue93">Afdelingen</SPAN></SPAN> in
+het linkermenu).</TD>
+</TR>
+</TABLE>
+</LI>
+<LI><SPAN  CLASS="textit">Forceer GID:</SPAN> Hiermee kunt u het UNIX GID op een bepaalde waarde
+instellen. Let op bij het gebruik van deze optie! Zorg ervoor dat
+GID niet dubbel uitgegeven worden en let er daarnaast op dat rechten
+op bestanden aangepast worden indien de GID aangepast wordt.
+</LI>
+<LI><SPAN  CLASS="textit">[Samba groep] in domein [Domein]:</SPAN> Met deze optie maakt
+u de groep beschikbaar voor Windows/Samba gebruikers. Daarbij zijn
+de volgende instellingen mogelijk:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Samba groep:</SPAN> De groep is een normale Samba/Windows groep
+</LI>
+<LI><SPAN  CLASS="textit">Windows beheerders:</SPAN> De groep is een speciale Windows groep
+voor Domein Beheerders
+</LI>
+<LI><SPAN  CLASS="textit">Windows gebruikers:</SPAN> De groep is een speciale Windows groep
+voor Domein Gebruikers
+</LI>
+<LI><SPAN  CLASS="textit">Windows gasten:</SPAN> De groep is een speciale Windows groep voor
+Domein Gasten
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Leden zitten in een telefoon beantwoordgroep:</SPAN> Met deze optie
+kunt u gebruikers in een telefoon beantwoord groep indelen. Verdere
+documentatie zal volgen.
+</LI>
+<LI><SPAN  CLASS="textit">Leden zitten in een systeeminformatie groep (Nagios):</SPAN> Groepsleden
+maken deel uit van een groep binnen Nagios systeemmonitorings software,
+die informatie mogen bekijken en/of aanpassen.
+</LI>
+<LI><SPAN  CLASS="textit">Groepsleden:</SPAN> De groep bestaat uit leden die in deze lijst getoond
+worden. Groepsleden kunnen toegevoegd en verwijderd worden:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toevoegen:</SPAN> Om een groepslid toe te voegen, drukt u op de knop
+<SPAN  CLASS="textit">Toevoegen</SPAN>. Daarna kunt u bestaande gebruikers uit de lijst
+selecteren, waarna u op de knop <SPAN  CLASS="textit">Toevoegen</SPAN> kunt drukken om de
+gebruikers lid te maken van de groep. Indien u het toevoegen wil afbreken,
+dan kunt u op de knop <SPAN  CLASS="textit">Anuuleren</SPAN> drukken.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node6.html b/gosa-core/doc/core/nl/html/groups/node6.html
new file mode 100644
index 0000000..b28e566
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node6.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Omgeving</TITLE>
+<META NAME="description" CONTENT="Omgeving">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Omgeving</A>
+</H2>
+
+<P>
+To activate the environment extension click on <SPAN  CLASS="textit">Add environment</SPAN>
+<SPAN  CLASS="textit">extension</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html103"
+  HREF="node7.html">Profielen</A>
+<LI><A NAME="tex2html104"
+  HREF="node8.html">Kiosk profiel</A>
+<LI><A NAME="tex2html105"
+  HREF="node9.html">Login scripts</A>
+<LI><A NAME="tex2html106"
+  HREF="node10.html">Shares</A>
+<LI><A NAME="tex2html107"
+  HREF="node11.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html108"
+  HREF="node12.html">Printers</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node7.html b/gosa-core/doc/core/nl/html/groups/node7.html
new file mode 100644
index 0000000..349e1c0
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node7.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profielen</TITLE>
+<META NAME="description" CONTENT="Profielen">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Profielen</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node8.html b/gosa-core/doc/core/nl/html/groups/node8.html
new file mode 100644
index 0000000..9202ca8
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node8.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profiel</TITLE>
+<META NAME="description" CONTENT="Kiosk profiel">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Kiosk profiel</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/node9.html b/gosa-core/doc/core/nl/html/groups/node9.html
new file mode 100644
index 0000000..d4a9578
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/groups/node9.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Login scripts</TITLE>
+<META NAME="description" CONTENT="Login scripts">
+<META NAME="keywords" CONTENT="groups">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="groups.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Login scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/groups/rocket.png b/gosa-core/doc/core/nl/html/groups/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/rocket.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/search.png b/gosa-core/doc/core/nl/html/groups/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/search.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/select_application.png b/gosa-core/doc/core/nl/html/groups/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/select_application.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/select_groups.png b/gosa-core/doc/core/nl/html/groups/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/select_groups.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/select_winstation.png b/gosa-core/doc/core/nl/html/groups/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/select_winstation.png differ
diff --git a/gosa-core/doc/core/nl/html/groups/smallenv.png b/gosa-core/doc/core/nl/html/groups/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/nl/html/groups/smallenv.png differ
diff --git a/gosa-core/doc/core/nl/html/users/WARNINGS b/gosa-core/doc/core/nl/html/users/WARNINGS
new file mode 100644
index 0000000..e6a7e59
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/WARNINGS
@@ -0,0 +1,5 @@
+No implementation found for style `fontenc'
+No implementation found for style `geometry'
+No implementation found for style `graphicx'
+
+There is no author for this document.
diff --git a/gosa-core/doc/core/nl/html/users/fax_small.png b/gosa-core/doc/core/nl/html/users/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/fax_small.png differ
diff --git a/gosa-core/doc/core/nl/html/users/index.html b/gosa-core/doc/core/nl/html/users/index.html
new file mode 100644
index 0000000..a4012d8
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/index.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gebruikers beheer</TITLE>
+<META NAME="description" CONTENT="Gebruikers beheer">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Gebruikers beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Gebruikerslijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Gebruikersaccount aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaand account bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Persoonlijke informatie</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Organisatie informatie</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Algemeen</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Groep lidmaatschap</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Account</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">System vertrouwen</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Profielen</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Kiosk profiel</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Inlog scripts</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Share verbinden</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Printer</A>
+</UL>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Algemeen</A>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">E-mail opties</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Geavanceerde E-mail opties</A>
+</UL>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Algemeen</A>
+<LI><A NAME="tex2html29"
+  HREF="node27.html">Terminal Server</A>
+<LI><A NAME="tex2html30"
+  HREF="node28.html">Toegangsopties</A>
+</UL>
+<LI><A NAME="tex2html31"
+  HREF="node29.html">Verbindingen</A>
+<LI><A NAME="tex2html32"
+  HREF="node36.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html33"
+  HREF="node37.html">Algemeen</A>
+<LI><A NAME="tex2html34"
+  HREF="node38.html">Aflever methodes</A>
+<LI><A NAME="tex2html35"
+  HREF="node39.html">Alternatieve Fax nummers</A>
+<LI><A NAME="tex2html36"
+  HREF="node40.html">Blokkeerlijsten</A>
+<LI><A NAME="tex2html37"
+  HREF="node41.html">Bewerken:</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node42.html">Telefoon</A>
+<UL>
+<LI><A NAME="tex2html39"
+  HREF="node43.html">Telefoonnummers</A>
+<LI><A NAME="tex2html40"
+  HREF="node44.html">Telefoon hardware</A>
+<LI><A NAME="tex2html41"
+  HREF="node45.html">Telefoon macro</A>
+</UL>
+<LI><A NAME="tex2html42"
+  HREF="node46.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html43"
+  HREF="node47.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/labels.pl b/gosa-core/doc/core/nl/html/users/labels.pl
new file mode 100644
index 0000000..34bd4cc
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/labels.pl
@@ -0,0 +1,13 @@
+# LaTeX2HTML 2002-2-1 (1.71)
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.71)
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git a/gosa-core/doc/core/nl/html/users/list_back.png b/gosa-core/doc/core/nl/html/users/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/list_back.png differ
diff --git a/gosa-core/doc/core/nl/html/users/list_home.png b/gosa-core/doc/core/nl/html/users/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/list_home.png differ
diff --git a/gosa-core/doc/core/nl/html/users/list_new_user.png b/gosa-core/doc/core/nl/html/users/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/list_new_user.png differ
diff --git a/gosa-core/doc/core/nl/html/users/list_reload.png b/gosa-core/doc/core/nl/html/users/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/list_reload.png differ
diff --git a/gosa-core/doc/core/nl/html/users/list_root.png b/gosa-core/doc/core/nl/html/users/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/list_root.png differ
diff --git a/gosa-core/doc/core/nl/html/users/mailto.png b/gosa-core/doc/core/nl/html/users/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/mailto.png differ
diff --git a/gosa-core/doc/core/nl/html/users/node1.html b/gosa-core/doc/core/nl/html/users/node1.html
new file mode 100644
index 0000000..d4560c7
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node1.html
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gebruikerslijst</TITLE>
+<META NAME="description" CONTENT="Gebruikerslijst">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00010000000000000000">
+Gebruikerslijst</A>
+</H1>
+
+<P>
+De beheerder kan account informatie aanmaken, veranderen of bekijken
+door op de <SPAN  CLASS="textbf"><SPAN ID="hue25">Gebruikers</SPAN></SPAN> knop in het <SPAN  CLASS="textbf">Beheer</SPAN>
+menu aan de linkerkant te klikken. De <SPAN  CLASS="textsf"><SPAN ID="hue28">Gebruikers
+Beheer</SPAN></SPAN> pagina die getoond wordt, is het uitgangspunt voor alle account
+beheertaken en is verdeeld in drie kolommen.
+
+<P>
+
+<UL>
+<LI>De eerste kolom bevat de namen van de gebruikers en de afdelingen
+waarbinnen zij ingedeeld zijn (alfabetisch gesorteerd).
+</LI>
+<LI>De tweede kolom bevat knoppen voor snelle toegang tot verschillende
+account eigenschappen van de gebruiker (alleen beschikbaar indien
+de betreffende eigenschap geactiveerd is). Daarnaast dient deze kolom
+voor een snel overzicht van geactiveerde eigenschappen van het account
+van de gebruiker.
+
+<P>
+
+<UL>
+<LI>De mogelijke iconen en hun betekenis:
+<BR><TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="CENTER">Icoon</TD>
+<TD ALIGN="LEFT">Betekenis</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./penguin.png"
+ ALT="Image penguin"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over algemene eigenschappen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_user.png"
+ ALT="Image select_user"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een UNIX account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./smallenv.png"
+ ALT="Image smallenv"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over Omgevings instellingen</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./mailto.png"
+ ALT="Image mailto"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een E-mail account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_phone.png"
+ ALT="Image select_phone"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een Telefoon account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./fax_small.png"
+ ALT="Image fax_small"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een Fax account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_winstation.png"
+ ALT="Image select_winstation"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een Samba/Windows account</TD>
+</TR>
+<TR><TD ALIGN="CENTER"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./select_netatalk.png"
+ ALT="Image select_netatalk"></TD>
+<TD ALIGN="LEFT">Gebruiker beschikt over een Netatalk account</TD>
+</TR>
+</TABLE>
+</LI>
+</UL>
+</LI>
+<LI>De derde kolom bevat knoppen voor de beschikbare acties (knippen,
+kopieren, bewerken, verwijderen, wachtwoord)
+</LI>
+</UL>
+De knoppen (<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back">,
+<IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home">, <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload">)
+dienen voor navigatie binnen de afdelingshierarchie:
+
+<P>
+
+<UL>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_root.png"
+ ALT="Image list_root"> Helemaal naar boven (hoofd afdeling)
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_back.png"
+ ALT="Image list_back"> Een afdeling naar boven
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_home.png"
+ ALT="Image list_home"> Naar de basis van de gebruiker
+</LI>
+<LI><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_reload.png"
+ ALT="Image list_reload"> Huidige afdeling verversen
+</LI>
+</UL>
+Daarnaast is het mogelijk de weergave van gebruikers met behulp van
+filters te beinvloeden (<SPAN ID="hue55">met</SPAN> <SPAN  CLASS="textbf"><SPAN ID="hue57">Filters</SPAN></SPAN>
+<SPAN ID="hue469"><IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./rocket.png"
+ ALT="Image rocket"> aan de rechter
+zijde):</SPAN>
+<P>
+
+<UL>
+<LI>Op namen zoeken:
+
+<P>
+
+<UL>
+<LI>Door op * (asterisk) te klikken worden alle namen getoond
+</LI>
+<LI>Het klikken van een letter, laat alle gebruikers zien waarvan de naam
+met de betreffende letter begint
+</LI>
+<LI>Het klikken van een cijfer, laat alle gebruikers zien waarvan de naam
+met het betreffende cijfer begint
+</LI>
+</UL>
+</LI>
+<LI>Verder zoekopties:
+<BR>(De volgende filters werken zodanig dat alleen gebruikers getoond
+worden, die over tenminste een van de geselecteerde opties beschikken;
+Standaard worden alle echte gebruikers getoond; ofwel geen sjablonen)
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toon sjablonen:</SPAN> Toont sjablonen voor gebruikers (standaard
+uitgeschakeld)
+</LI>
+<LI><SPAN  CLASS="textit">Toon functionele gebruikers:</SPAN> Gebruikers die alleen over de
+algemene informatie beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon Unix gebruikers:</SPAN> Gebruikers die over Unix mogelijkheden
+beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon E-mail gebruikers:</SPAN> Gebruikers die over E-mail mogelijkheden
+beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon Samba gebruikers:</SPAN> Gebruikers die over Samba/Windows mogelijkheden
+beschikken
+</LI>
+<LI><SPAN  CLASS="textit">Toon Proxy gebruikers:</SPAN> Gebruikers die over een proxy account
+beschikken
+</LI>
+</UL>
+</LI>
+<LI><SPAN ID="hue73">Daarnaast kan de lijst met behulp van delen van
+namen en complexere reguliere expressies verder beperkt worden met
+behulpt van</SPAN> het invoerveld achter het icoon <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./search.png"
+ ALT="Image search">.
+In dit veld kunt u cijfer en letter combinaties invoeren om de lijst
+verder te beperken. Om uw selectie door te voeren dient u op de knop
+<SPAN  CLASS="textit">Filter toepassen</SPAN> te drukken.
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html54"
+  HREF="node2.html">Gebruikersaccount aanmaken</A>
+<UL>
+<LI><A NAME="tex2html55"
+  HREF="node3.html">Een bestaand account bewerken</A>
+<LI><A NAME="tex2html56"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html57"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html58"
+  HREF="node6.html">Persoonlijke informatie</A>
+<LI><A NAME="tex2html59"
+  HREF="node7.html">Organisatie informatie</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html60"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html61"
+  HREF="node9.html">Algemeen</A>
+<LI><A NAME="tex2html62"
+  HREF="node10.html">Groep lidmaatschap</A>
+<LI><A NAME="tex2html63"
+  HREF="node11.html">Account</A>
+<LI><A NAME="tex2html64"
+  HREF="node12.html">System vertrouwen</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html65"
+  HREF="node13.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html66"
+  HREF="node14.html">Profielen</A>
+<LI><A NAME="tex2html67"
+  HREF="node15.html">Kiosk profiel</A>
+<LI><A NAME="tex2html68"
+  HREF="node16.html">Inlog scripts</A>
+<LI><A NAME="tex2html69"
+  HREF="node17.html">Share verbinden</A>
+<LI><A NAME="tex2html70"
+  HREF="node18.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html71"
+  HREF="node19.html">Printer</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html72"
+  HREF="node20.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html73"
+  HREF="node21.html">Algemeen</A>
+<LI><A NAME="tex2html74"
+  HREF="node22.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html75"
+  HREF="node23.html">E-mail opties</A>
+<LI><A NAME="tex2html76"
+  HREF="node24.html">Geavanceerde E-mail opties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html77"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html78"
+  HREF="node26.html">Algemeen</A>
+<LI><A NAME="tex2html79"
+  HREF="node27.html">Terminal Server</A>
+<LI><A NAME="tex2html80"
+  HREF="node28.html">Toegangsopties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html81"
+  HREF="node29.html">Verbindingen</A>
+<UL>
+<LI><A NAME="tex2html82"
+  HREF="node30.html">Proxy account</A>
+<LI><A NAME="tex2html83"
+  HREF="node31.html">FTP account</A>
+<LI><A NAME="tex2html84"
+  HREF="node32.html">Open-Xchange account</A>
+<LI><A NAME="tex2html85"
+  HREF="node33.html">WebDAV account</A>
+<LI><A NAME="tex2html86"
+  HREF="node34.html">PHPGroupware account</A>
+<LI><A NAME="tex2html87"
+  HREF="node35.html">Intranet account</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html88"
+  HREF="node36.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html89"
+  HREF="node37.html">Algemeen</A>
+<LI><A NAME="tex2html90"
+  HREF="node38.html">Aflever methodes</A>
+<LI><A NAME="tex2html91"
+  HREF="node39.html">Alternatieve Fax nummers</A>
+<LI><A NAME="tex2html92"
+  HREF="node40.html">Blokkeerlijsten</A>
+<LI><A NAME="tex2html93"
+  HREF="node41.html">Bewerken:</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html94"
+  HREF="node42.html">Telefoon</A>
+<UL>
+<LI><A NAME="tex2html95"
+  HREF="node43.html">Telefoonnummers</A>
+<LI><A NAME="tex2html96"
+  HREF="node44.html">Telefoon hardware</A>
+<LI><A NAME="tex2html97"
+  HREF="node45.html">Telefoon macro</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html98"
+  HREF="node46.html">Referenties</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node10.html b/gosa-core/doc/core/nl/html/users/node10.html
new file mode 100644
index 0000000..22c6d23
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node10.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Groep lidmaatschap</TITLE>
+<META NAME="description" CONTENT="Groep lidmaatschap">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013200000000000000">
+Groep lidmaatschap</A>
+</H3>
+
+<P>
+Gebruik de knoppen <SPAN  CLASS="textit">Toevoegen</SPAN> en <SPAN  CLASS="textit">Verwijderen</SPAN> om de gebruiker
+aan groepen toe te voegen of van groepen te verwijderen. De knop <SPAN  CLASS="textit">Toevoegen</SPAN>
+geeft de lijst met groepen die door de systeembeheerder aangemaakt
+zijn weer. De gebruiker kan lid zijn van een of meerdere groepen.
+De gebruiker is sowieso lid van de primaire groep. De primaire groep
+hoeft dan ook niet hier nogmaals gekozen te worden.
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node11.html b/gosa-core/doc/core/nl/html/users/node11.html
new file mode 100644
index 0000000..3c3b735
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node11.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Account</TITLE>
+<META NAME="description" CONTENT="Account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013300000000000000">
+Account</A>
+</H3>
+
+<P>
+Dit onderdeel gaat over het beheer van het wachtwoord van de gebruiker
+(dit betreft vanzelfsprekend alleen het UNIX account van de gebruiker).
+Let erop dat u geen conflicterende opties selecteert, aangezien dit
+het account van de gebruiker effectief onbruikbaar kan maken:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Het wachtwoord moet bij de eerste aanmelding gewijzigd worden:</SPAN>
+Met deze optie wordt afgedwongen dat de gebruiker bij de eerst volgende
+aanmelding direct het wachtwoord moet veranderen.
+</LI>
+<LI><SPAN  CLASS="textit">Het wachtwoord kan pas [Aantal] dag(en) na de laatste wijziging
+gewijzigd worden:</SPAN> Hiermee wordt afgedwongen dat een gebruiker niet
+onbeperkt het wachtwoord kan veranderen. [Aantal] geeft het aantal
+dagen aan, waarbinnen de gebruiker het wachtwoord niet kan wijzigen
+sinds de vorige wachtwoord wijziging.
+</LI>
+<LI><SPAN  CLASS="textit">Het wachtwoord moet na [Aantal] dag(en) gewijzigd worden:</SPAN>
+Met deze optie verplicht u de gebruiker om na [Aantal] dagen het
+wachtwoord te veranderen, omdat anders het account geblokeerd wordt.
+Gebruikers worden van te voren op de hoogte gesteld van het verlopen
+van het wachtwoord.
+</LI>
+<LI><SPAN  CLASS="textit">Wachtwoord verloopt op [Datum]:</SPAN> Indien u deze optie instelt,
+dan kan de gebruiker niet meer inloggen met het huidige wachtwoord
+vanaf [Datum].
+</LI>
+<LI><SPAN  CLASS="textit">Blokkeer het account na [Aantal] dag(en) inactiviteit nadat
+het wachtwoord verlopen is:</SPAN> Zodra er gedurende [Aantal] dagen inactiviteit
+is van het account (geen inloggen van de gebruiker dus), na het verlopen
+van het wachtwoord, wordt het account geblokkeerd en kan de gebruiker
+niet meer inloggen.
+</LI>
+<LI><SPAN  CLASS="textit">Waarschuw de gebruiker [Aantal] dagen voordat het wachtwoord
+verloopt:</SPAN> De gebruiker krijgt vanaf [Aantal] dagen, voordat het
+wachtwoord verloopt een waarschuwing dat het wachtwoord op de ingestelde
+datum verloopt.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node12.html b/gosa-core/doc/core/nl/html/users/node12.html
new file mode 100644
index 0000000..0c09db4
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node12.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>System vertrouwen</TITLE>
+<META NAME="description" CONTENT="System vertrouwen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013400000000000000">
+System vertrouwen</A>
+</H3>
+
+<P>
+Systeem vertrouwen wordt gebruikt om toegang tot verschillende Unix
+systemen en apparaten door de gebruiker te beheren en/of in te perken.
+
+<P>
+De vertrouwensmodus kan als volgt ingesteld worden:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">gedeactiveerd:</SPAN> De gebruiker kan zich op alle UNIX systemen
+aanmelden. 
+</LI>
+<LI><SPAN  CLASS="textit">volledige toegang:</SPAN> De gebruiker kan zich op alle UNIX systemen
+aanmelden.
+</LI>
+<LI>sta toegang op deze computers toe: De gebruiker mag zich alleen op
+de opgegeven UNIX systemen aanmelden.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toevoegen:</SPAN> Klik op de knop <SPAN  CLASS="textit">Toevoegen</SPAN> om UNIX computers
+toe te voegen, waarop de gebruiker in mag loggen. Let op dat alleen
+UNIX computers die bekend zijn binnen het systeem voor zullen komen
+in deze lijst. Druk op de knop <SPAN  CLASS="textit">Annuleren</SPAN> om de selectie af
+te breken.
+</LI>
+<LI><SPAN  CLASS="textit">Verwijderen</SPAN>: Selecteer een of meerdere UNIX computers uit de
+reeds bestaande computers waartoe de gebruiker toegang heeft en druk
+op de knop <SPAN  CLASS="textit">Verwijderen</SPAN>, om de gebruiker toegang tot deze computers
+te ontnemen.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node13.html b/gosa-core/doc/core/nl/html/users/node13.html
new file mode 100644
index 0000000..40273a6
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node13.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Omgeving</TITLE>
+<META NAME="description" CONTENT="Omgeving">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00014000000000000000">
+Omgeving</A>
+</H2>
+
+<P>
+Click on the button <SPAN  CLASS="textit">add an environment extension</SPAN> <SPAN  CLASS="textit"><SPAN  CLASS="textit">to</SPAN></SPAN>
+activate the configuration space.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html221"
+  HREF="node14.html">Profielen</A>
+<LI><A NAME="tex2html222"
+  HREF="node15.html">Kiosk profiel</A>
+<LI><A NAME="tex2html223"
+  HREF="node16.html">Inlog scripts</A>
+<LI><A NAME="tex2html224"
+  HREF="node17.html">Share verbinden</A>
+<LI><A NAME="tex2html225"
+  HREF="node18.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html226"
+  HREF="node19.html">Printer</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node14.html b/gosa-core/doc/core/nl/html/users/node14.html
new file mode 100644
index 0000000..24e21a7
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node14.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Profielen</TITLE>
+<META NAME="description" CONTENT="Profielen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014100000000000000">
+Profielen</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node15.html b/gosa-core/doc/core/nl/html/users/node15.html
new file mode 100644
index 0000000..4deef6a
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node15.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Kiosk profiel</TITLE>
+<META NAME="description" CONTENT="Kiosk profiel">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014200000000000000">
+Kiosk profiel</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node16.html b/gosa-core/doc/core/nl/html/users/node16.html
new file mode 100644
index 0000000..2aaaa25
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node16.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Inlog scripts</TITLE>
+<META NAME="description" CONTENT="Inlog scripts">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014300000000000000">
+Inlog scripts</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node17.html b/gosa-core/doc/core/nl/html/users/node17.html
new file mode 100644
index 0000000..f724f42
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node17.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Share verbinden</TITLE>
+<META NAME="description" CONTENT="Share verbinden">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014400000000000000">
+Share verbinden</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node18.html b/gosa-core/doc/core/nl/html/users/node18.html
new file mode 100644
index 0000000..ad25343
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node18.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Hotplug apparaten</TITLE>
+<META NAME="description" CONTENT="Hotplug apparaten">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014500000000000000">
+Hotplug apparaten</A>
+</H3>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node19.html b/gosa-core/doc/core/nl/html/users/node19.html
new file mode 100644
index 0000000..4c6e589
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node19.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Printer</TITLE>
+<META NAME="description" CONTENT="Printer">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00014600000000000000">
+Printer</A>
+</H3>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node2.html b/gosa-core/doc/core/nl/html/users/node2.html
new file mode 100644
index 0000000..42b0db5
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node2.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gebruikersaccount aanmaken</TITLE>
+<META NAME="description" CONTENT="Gebruikersaccount aanmaken">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00011000000000000000">
+Gebruikersaccount aanmaken</A>
+</H2>
+
+<P>
+Om een nieuw account aan te maken klikt u op de knop <IMG
+  WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
+ SRC="./list_new_user.png"
+ ALT="Image list_new_user">.
+Volg de instructies op die gegeven worden bij het aanmaken van het
+account. Op het einde van het aanmaken, dient u een wachtwoord op
+te geven voor het nieuwe account.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html109"
+  HREF="node3.html">Een bestaand account bewerken</A>
+<LI><A NAME="tex2html110"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node20.html b/gosa-core/doc/core/nl/html/users/node20.html
new file mode 100644
index 0000000..084dde2
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node20.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>E-mail</TITLE>
+<META NAME="description" CONTENT="E-mail">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00015000000000000000">
+E-mail</A>
+</H2>
+
+<P>
+Het E-mail account is gekoppeld aan de E-mail server. Om het E-mail
+account te activeren dient u op de knop <SPAN  CLASS="textit">E-mail account aanmaken</SPAN>
+te drukken.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html295"
+  HREF="node21.html">Algemeen</A>
+<LI><A NAME="tex2html296"
+  HREF="node22.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html297"
+  HREF="node23.html">E-mail opties</A>
+<LI><A NAME="tex2html298"
+  HREF="node24.html">Geavanceerde E-mail opties</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node21.html b/gosa-core/doc/core/nl/html/users/node21.html
new file mode 100644
index 0000000..b3801dc
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node21.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015100000000000000">
+Algemeen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue204">Primair adres</SPAN><SPAN ID="hue489">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het E-mail adres van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Server</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Selecteer de server waar het E-mail account van de gebruiker opgeslagen
+dient te worden</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota gebruik</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geeft de huidig gebruikte en beschikbare opslagruimte van de gebruiker
+aan</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Quota grootte</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De maximale grootte van de Mailbox</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node22.html b/gosa-core/doc/core/nl/html/users/node22.html
new file mode 100644
index 0000000..186ca3f
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node22.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternatieve adressen</TITLE>
+<META NAME="description" CONTENT="Alternatieve adressen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015200000000000000">
+Alternatieve adressen</A>
+</H3>
+
+<P>
+Alternatieve adressen zijn E-mail adressen waaronder de gebruiker
+ook E-mail kan ontvangen. De E-mail die naar deze adressen verstuurd
+worden, zullen opgeslagen worden onder het account dat opgegeven is
+bij het primaire adres. Gebruik de knop <SPAN  CLASS="textit">Toevoegen</SPAN> om aliasen
+toe te voegen en de knop <SPAN  CLASS="textit">Verwijderen</SPAN> om een alias te verwijderen.
+Let erop dat de gebruikte domein componenten in de aliasen wel door
+de opgegeven mailserver ontvangen kunnen worden. Het heeft bijvoorbeeld
+geen enkele zin om een hotmail account als alias op te geven, simpelweg
+omdat E-mail gericht aan hotmail adressen, nooit aan zullen komen
+op uw E-mail server
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node23.html b/gosa-core/doc/core/nl/html/users/node23.html
new file mode 100644
index 0000000..638602d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node23.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>E-mail opties</TITLE>
+<META NAME="description" CONTENT="E-mail opties">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015300000000000000">
+E-mail opties</A>
+</H3>
+
+<P>
+Beheer van de E-mail opties voor de gebruiker:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Geen aflevering in eigen mailbox:</SPAN> Stuur alle E-mail voor dit
+adres door naar het adres of de adressen in het <SPAN  CLASS="textit">Stuur berichten
+door naar</SPAN> deel. Er vindt geen aflevering in de eigen mailbox plaats.
+</LI>
+<LI><SPAN  CLASS="textit">Activeer afwezigheidsbericht:</SPAN> Verstuur het bericht dat opgegeven
+is in het <SPAN  CLASS="textit"><SPAN ID="hue219">Afwezigheidsbericht</SPAN></SPAN> onderdeel
+naar de afzender van een E-mail bericht, zodra dit bericht ontvangen
+wordt.
+</LI>
+<LI><SPAN  CLASS="textit">Verplaats E-mail met een spam nivo groter dan [Nivo] naar
+map [Map]:</SPAN> Verplaats E-mails met een spam nivo groter dan [Nivo]
+bij ontvangst op de mail server naar E-mail map [Map]. Zodra een
+E-mail binnenkomt bij de mailserver, wordt deze voorzien van een spam
+indicatie. Deze spamindicatie wordt o.a. aangegeven door een cijfer.
+Dit cijfer representeert de waarschijnlijkheid dat het bericht een
+SPAM bericht is. Hoe hoger dit cijfer, hoe groter de kans dat het
+een SPAM bericht betreft. Normaliter kunt u er vanuit gaan dat een
+bericht met een cijfer vanaf 5 een SPAM bericht betreft. Stel deze
+optie niet te laag in, aangezien u anders het risico loopt op normale
+E-mail berichten automatisch te laten verplaatsen naar uw SPAM map,
+waardoor de kans ontstaat dat het bericht aan uw aandacht ontsnapt!
+</LI>
+<LI><SPAN  CLASS="textit">Wijs E-mail af indien groter dan [Grootte] MB:</SPAN> Wij E-mail
+af die groter zijn dan [Grootte] MB. Dit betekent dat de gebruiker
+geen E-mail kan ontvangen die groter is dan [Grootte] MB.
+</LI>
+<LI>Gebruik de <SPAN  CLASS="textit">Toevoegen</SPAN> of <SPAN  CLASS="textit">Lokaal toevoegen</SPAN> <SPAN ID="hue230">knoppen
+om binnengekomen E-mail bericht door te sturen naar andere E-mail
+adressen (bijv Telefoon, PDA etc.): </SPAN>
+<P>
+<SPAN ID="hue232">- De</SPAN> <SPAN ID="hue493"><SPAN  CLASS="textit">Lokkaal toevoegen</SPAN></SPAN><SPAN ID="hue236">knop wordt gebruikt om te kiezen uit in het systeem
+bekende E-mail adressen. </SPAN>
+<P>
+<SPAN ID="hue238">- De</SPAN> <SPAN ID="hue494"><SPAN  CLASS="textit">Toevoegen</SPAN></SPAN> <SPAN ID="hue242">knop
+om externe adressen te kiezen.</SPAN>
+<P>
+<SPAN ID="hue244">- De</SPAN> <SPAN ID="hue495"><SPAN  CLASS="textit">Verwijderen</SPAN></SPAN> <SPAN ID="hue248">knop
+om E-mail doorstuur adressen te verwijderen.</SPAN>
+<P>
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node24.html b/gosa-core/doc/core/nl/html/users/node24.html
new file mode 100644
index 0000000..a1301f1
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node24.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Geavanceerde E-mail opties</TITLE>
+<META NAME="description" CONTENT="Geavanceerde E-mail opties">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00015400000000000000">
+Geavanceerde E-mail opties</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>De gebruiker mag alleen lokale E-mails versturen en ontvangen: Hiermee
+kan de beheerder opgeven dat de gebruiker alleen binnen het eigen
+domein/organisatie E-mail mag versturen en ontvangen. Dit betekent
+dat de gebruiker niet naar externe personen kan E-mailen of E-mail
+van externe personen kan ontvangen.
+</LI>
+<LI>Gebruik een eigen sieve script : De gebruiker kan een eigen sieve
+scripts schrijven om mailbox filtering te beheren. <SPAN  CLASS="textit">Let op!</SPAN>
+<SPAN  CLASS="textit">Dit schakelt alle E-mail opties uit</SPAN>.
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node25.html b/gosa-core/doc/core/nl/html/users/node25.html
new file mode 100644
index 0000000..62076b7
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node25.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Samba</TITLE>
+<META NAME="description" CONTENT="Samba">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00016000000000000000">
+Samba</A>
+</H2>
+
+<P>
+Om een Samba / Windows account aan te maken voor de gebruiker, klikt
+u op de knop <SPAN  CLASS="textit">Samba account toevoegen</SPAN>.
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html347"
+  HREF="node26.html">Algemeen</A>
+<LI><A NAME="tex2html348"
+  HREF="node27.html">Terminal Server</A>
+<LI><A NAME="tex2html349"
+  HREF="node28.html">Toegangsopties</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node26.html b/gosa-core/doc/core/nl/html/users/node26.html
new file mode 100644
index 0000000..3db861c
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node26.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016100000000000000">
+Algemeen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Persoonlijke map</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het pad naar de persoonlijke map van de gebruiker over het netwerk
+in UNC notatie (bijv. \\SERVER\homes\gebruikersnaam).
+Selecteer de stationsletter uit de lijst om op te geven met welk station
+de persoonlijke map verbonden moet worden bij het inloggen van de
+gebruiker.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Domein</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het Windows domein waarbinnen de gebruiker valt.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Inlogscript</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het script dat op het werkstation van de gebruiker uitgevoerd wordt,
+bij het inloggen van de gebruiker.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profielpad</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het pad op een server in UNC notatie, waar het zwervende profiel van
+de gebruiker zich bevindt (bijv. \\SERVER\profiles\gebruikersnaam).</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node27.html b/gosa-core/doc/core/nl/html/users/node27.html
new file mode 100644
index 0000000..10fc7df
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node27.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Terminal Server</TITLE>
+<META NAME="description" CONTENT="Terminal Server">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016200000000000000">
+Terminal Server</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Sta inloggen op de terminal server toe</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Persoonlijke map</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path of the user's home directory in notation UNC ex:
+\\SERVER\homes\user.
+Choose on the scroll list the letter associated to the user's home
+directory.Het pad naar de persoonlijke map van de gebruiker over het
+netwerk in UNC notatie (bijv. \\SERVER\homes\gebruikersnaam).
+Selecteer de stationsletter uit de lijst om op te geven met welk station
+de persoonlijke map verbonden moet worden bij het inloggen van de
+gebruiker.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Profile pathProfielpad</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Mention the path to the user profileHet pad op een server in UNC notatie,
+waar het zwervende profiel van de gebruiker zich bevindt (bijv. \\SERVER\profiles\gebruikersnaam).</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Client configuratie voor initieel programma overnemen</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Initi�el programma</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het programma dat bij het starten van de sessie uitgevoerd moet worden</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Werkdirectory</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De werkmap waarbinnen het initiele programma uitgevoerd wordt</TD>
+</TR>
+</TABLE> 
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Terminal Service timeouts (in minuten):</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Max. verbindingsduur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De maximale duur dat een gebruiker verbonden mag zijn. Na het verstrijken
+van deze duur wordt de sessie verbroken.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Max. verbrekingsduur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Een niet verbonden sessie van de gebruiker wordt na verstrijken van
+deze duur automatisch be�indigd.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Max. inactiviteitsduur</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Een verbonden maar inactieve sessie van de gebruiker wordt na verstrijken
+van deze duur automatisch be�indigd.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Terminal Service client apparaten:</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Verbindt client schijven bij inloggen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Verbindt lokale schijven van de Client als netwerkschijven bij inloggen</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Verbindt client printers bij inloggen</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Verbindt de lokale printer van de Client als netwerkprinter bij het
+inloggen</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Standaard printer als client printer</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De lokale standaard printer van de Client als standaard printer gebruiken</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Terminal Service diverse:</SPAN>
+</LI>
+</UL>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+Schaduwen van andere sessie  </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Deze optie is van belang voor beheer en controle op afstand:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">gedeactiveerd:</SPAN> Schaduwen is uitgeschakeld:
+</LI>
+<LI><SPAN  CLASS="textit">invoer met notificatie:</SPAN> Sessie kan overgenomen worden. Gebruiker
+wordt om toestemming gevraagd
+</LI>
+<LI><SPAN  CLASS="textit">invoer zonder notificatie:</SPAN> Sessie kan overgenomen worden. Gebruiker
+wordt niets gevraagd
+</LI>
+<LI><SPAN  CLASS="textit">geen invoer met notificatie:</SPAN> Sessie kan alleen bekeken worden.
+Gebruiker wordt om toestemming gevraagd
+</LI>
+<LI><SPAN  CLASS="textit">geen invoer zonder notificatie:</SPAN> Sessie kan alleen bekeken worden.
+Gebruiker wordt niets gevraagd
+</LI>
+</UL>
+</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Bij verbroken verbinding of timeout  </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> U kunt opgeven of een sessie die verbroken wordt (door de gebruiker,
+of door het overschreiden van de tijdslimiet) verbroken blijft of
+automatisch afgesloten wordt. Indien u verbreken kiest, dan blijft
+de sessie behouden. </TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Herstel sessie indien verbroken </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Geef op of een verbroken sessie alleen vanaf de vorige client hervat
+kan worden, of vanaf elke client</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node28.html b/gosa-core/doc/core/nl/html/users/node28.html
new file mode 100644
index 0000000..87b2b82
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node28.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Toegangsopties</TITLE>
+<META NAME="description" CONTENT="Toegangsopties">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00016300000000000000">
+Toegangsopties</A>
+</H3>
+
+<P>
+De onder toegangsopties genoemde instellingen dienen voor het aanpassen
+van wachtwoord instellingen onder Windows en voor het beperken van
+de toegang tot werkstations. U dient op te letten welke instellingen
+u van toepassing laat zijn.
+
+<P>
+
+<UL>
+<LI>De volgende wachtwoord opties zijn beschikbaar:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Gebruiker mag zijn wachtwoord vanaf een werkstation wijzigen:</SPAN>
+Zodra deze optie geselecteerd is, mag de gebruiker het wachtwoord
+vanaf een Windows werkstation wijzigen (door bijvoorbeeld Ctrl-Alt-Del
+in te drukken).
+</LI>
+<LI><SPAN  CLASS="textit">Inloggen op Windows werkstation zonder wachtwoord toestaan:</SPAN>
+Zodra deze optie geselecteerd is voor een gebruiker, mag de gebruiker
+inloggen zonder een wachtwoord te moeten gebruiken.
+</LI>
+<LI><SPAN  CLASS="textit">Blokkeer het Samba/Windows account:</SPAN> De gebruiker kan niet meer
+op een Windows werkstation inloggen.
+</LI>
+<LI><SPAN  CLASS="textit">Wachtwoord verloopt op [Datum]:</SPAN> Het wachtwoord verloopt op
+[Datum]. Het account wordt daarna automatisch geblokkeerd.
+</LI>
+<LI><SPAN  CLASS="textit">Stel laatste inlogtijd in op:</SPAN> Optie is niet nuttig! Hiermee
+kan de laatst bekende inlogtijd aangepast worden.
+</LI>
+<LI><SPAN  CLASS="textit">Stel laatste uitlogtijd in op:</SPAN> Optie is niet nuttig! Hiermee
+kan de laatst bekende uitlogtijd aangepast worden.
+</LI>
+<LI><SPAN  CLASS="textit">Het account verloopt op [Datum]:</SPAN> Geef de datum [Datum]
+op waarop het account automatisch geblokkeerd wordt.
+</LI>
+</UL>
+</LI>
+<LI><SPAN  CLASS="textit">Sta alleen verbindingen vanaf deze werkstations toe:</SPAN> Indien
+u de toegang tot werkstations wil beperken voegt u hier werkstations
+toe. De gebruiker mag op elk werkstation inloggen, zolang de lijst
+leeg is.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toevoegen:</SPAN> Om een werkstation toe te voegen, drukt u op de
+knop <SPAN  CLASS="textit">Toevoegen</SPAN> en selecteert u een of meer werkstations uit
+de lijst. Let op dat deze selectie alleen Windows werkstations betreft.
+</LI>
+<LI><SPAN  CLASS="textit">Verwijderen:</SPAN> Om werkstations waartoe de gebruiker toegang heeft
+te verwijderen, drukt u op de knop <SPAN  CLASS="textit">Verwijderen</SPAN>. Vervolgens
+selecteert u de werkstations die u wilt verwijderen.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node29.html b/gosa-core/doc/core/nl/html/users/node29.html
new file mode 100644
index 0000000..fd0290c
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node29.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Verbindingen</TITLE>
+<META NAME="description" CONTENT="Verbindingen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00017000000000000000">
+Verbindingen</A>
+</H2>
+
+<P>
+Onder dit tabblad bevinden zich diverse opties om de account eigenschappen
+en mogelijkheden van een gebruiker verder uit te breiden (afhankelijk
+van de beschikbare diensten binnen een organisatie):
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><UL>
+<LI><UL>
+<LI><A NAME="tex2html388"
+  HREF="node30.html">Proxy account</A>
+<LI><A NAME="tex2html389"
+  HREF="node31.html">FTP account</A>
+<LI><A NAME="tex2html390"
+  HREF="node32.html">Open-Xchange account</A>
+<LI><A NAME="tex2html391"
+  HREF="node33.html">WebDAV account</A>
+<LI><A NAME="tex2html392"
+  HREF="node34.html">PHPGroupware account</A>
+<LI><A NAME="tex2html393"
+  HREF="node35.html">Intranet account</A>
+</UL></UL></UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node3.html b/gosa-core/doc/core/nl/html/users/node3.html
new file mode 100644
index 0000000..34cb730
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node3.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Een bestaand account bewerken</TITLE>
+<META NAME="description" CONTENT="Een bestaand account bewerken">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011100000000000000">
+Een bestaand account bewerken</A>
+</H3>
+
+<P>
+Klik binnen de gebruikerslijst op de gebruikersnaam van de te bewerken
+gebruiker. De pagina die nu geladen wordt, bevat tabbladen die voor
+account mogelijkheden staan (momenteel zijn dat bijvoorbeeld Algemeen,
+Unix, Omgeving etc.)
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node30.html b/gosa-core/doc/core/nl/html/users/node30.html
new file mode 100644
index 0000000..311d548
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node30.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Proxy account</TITLE>
+<META NAME="description" CONTENT="Proxy account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017001000000000000">
+Proxy account</A>
+</H5>
+
+<P>
+Met deze optie kunt u de gebruiker toegang tot de Proxy server verlenen.
+Binnen veel organisaties wordt een proxy server gebruikt om toegang
+tot Internet te beperken en/of monitoren. Een gebruiker zonder Proxy
+account kan Internet niet op. Voor alle gebruikers met een Proxy account
+geldt dat de beheerder, indien gewenst, de toegang tot Internet en
+websites kan monitoren.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Filter ongewilde inhoud (bijvoorbeeld pornografische of geweld
+gerelateerde inhoud):</SPAN> Deze optie activeert het inhoudsfilter voor
+de gebruiker. Dit betekent dat het door de systeembeheerder ingestelde
+inhoudsfilter van toepassing wordt op door de gebruiker bezochte websites.
+Zodra een website inhoud bevat die door het filter herkent wordt als
+zijnde ongewenst, wordt de toegang voor de gebruiker onmiddelijk geblokkeerd.
+</LI>
+<LI><SPAN  CLASS="textit">Beperk proxy gebruik tot tijd:</SPAN> Met deze optie is het mogelijk
+om de toegang tot Internet te beperken tot een bepaalde tijdspanne
+(bijvoorbeeld tijdens kantoortijd). Let erop dat deze tijd voor alle
+dagen dezelfde is. De gebruiker krijgt een melding indien deze buiten
+de ingestelde tijd een website wil bezoeken.
+</LI>
+<LI><SPAN  CLASS="textit">Beperk proxy gebruik met quota:</SPAN> Met deze optie kunt een maximaal
+toegestane hoeveelheid dataverkeer gedurende een bepaalde periode
+opgeven. De gebruiker kan zodra de maximale hoeveelheid dataverkeer
+verbruikt is niet meer het Internet op, totdat de huidig opgegeven
+periode verstreken is.
+</LI>
+</UL>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node31.html b/gosa-core/doc/core/nl/html/users/node31.html
new file mode 100644
index 0000000..85a1452
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node31.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>FTP account</TITLE>
+<META NAME="description" CONTENT="FTP account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017002000000000000">
+FTP account</A>
+</H5>
+
+<P>
+Met deze optie geeft u de gebruiker toegang tot de FTP server(s):
+
+<P>
+
+<UL>
+<LI>Bandbreedte: Maakt beperking van bandbreedte gebruik (door de gebruiker)
+mogelijk
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Verstuur bandbreedte:</SPAN> De maximale bandbreedte voor de gebruiker
+bij het versturen van bestanden naar de server (Upload) in kb per
+seconde. De beperking is niet actief indien u hier 0 opgeeft.
+</LI>
+<LI><SPAN  CLASS="textit">Ontvangst bandbreedte:</SPAN> De maximale bandbreedte voor de gebruiker
+bij het ontvangen van bestanden van de server (Download) in kb per
+seconde. De beperking is niet actief inhdien u hier 0 opgeeft.
+</LI>
+</UL>
+</LI>
+<LI>Verhouding: Het is mogelijk de gebruiker af te dwingen om een bepaalde
+verhouding van te versturen en te ontvangen bestanden te moeten behouden.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Verstuurde / Ontvangen bestanden:</SPAN> Hier geeft u de verhouding
+op (Bijvoorbeeld: 3/1, betekent dat de gebruiker 3 bestanden moet
+versturen, alvorens er 1 bestande ontvangen kan worden).
+</LI>
+</UL>
+</LI>
+<LI>Quota: Beperking van het gebruik in hoeveelheid dataverkeer of hoeveelheid
+bestanden
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Bestanden:</SPAN> De maximale hoeveelheid bestanden die de gebruiker
+mag versturen en ontvangen. De beperking is niet actief indien u hier
+0 opgeeft.
+</LI>
+<LI><SPAN  CLASS="textit">Grootte:</SPAN> De maximale hoeveelheid dataverkeer die de gebruiker
+mag verbruiken voor versturen en ontvangen. De beperking is niet actief
+indien u hier 0 opgeeft.
+</LI>
+</UL>
+</LI>
+<LI>Diverse:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Schakel FTP toegang tijdelijk uit:</SPAN> Hiermee kunt u de toegang
+tot de FTP server(s) tijdelijk uitschakelen, zonder dat meteen alle
+FTP intstellingen van de gebruiker verloren gaan.
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node32.html b/gosa-core/doc/core/nl/html/users/node32.html
new file mode 100644
index 0000000..c24b387
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node32.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Open-Xchange account</TITLE>
+<META NAME="description" CONTENT="Open-Xchange account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017003000000000000">
+Open-Xchange account</A>
+</H5>
+
+<P>
+Met deze optie geeft u de gebruiker toegang tot de Open-Xchange groupware
+server.
+
+<P>
+
+<UL>
+<LI>Onthouden: Hier geeft u opties voor de portaal pagina van Open-Xchange
+op.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Afspraken:</SPAN> Hoeveel dagen van te voren, wilt u dat afspraken
+getoond worden.
+</LI>
+<LI><SPAN  CLASS="textit">Taken:</SPAN> Hoeveel dagen van te voren wilt u dat taken getoond
+worden.
+</LI>
+</UL>
+</LI>
+<LI>Gebruikersinformatie
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Tijdzone:</SPAN> Hier geeft u de tijdzone aan. Let erop dat u alle
+gebruikers de juiste tijdzone geeft, aangezien anders problemen op
+kunnen treden bij het plannen van afspraken onderling (tijdsverschillen).
+</LI>
+</UL>
+</LI>
+</UL>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node33.html b/gosa-core/doc/core/nl/html/users/node33.html
new file mode 100644
index 0000000..726f05c
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node33.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>WebDAV account</TITLE>
+<META NAME="description" CONTENT="WebDAV account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017004000000000000">
+WebDAV account</A>
+</H5>
+
+<P>
+Met deze optie kunt u de gebruiker toegang verlenen tot de WebDAV
+server(s).
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node34.html b/gosa-core/doc/core/nl/html/users/node34.html
new file mode 100644
index 0000000..a3d17e8
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node34.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHPGroupware account</TITLE>
+<META NAME="description" CONTENT="PHPGroupware account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017005000000000000">
+PHPGroupware account</A>
+</H5>
+
+<P>
+Met deze optie kunt u de gebruiker toegang verlenen tot de PHPGroupware
+server.
+
+<P>
+
+<P></P>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node35.html b/gosa-core/doc/core/nl/html/users/node35.html
new file mode 100644
index 0000000..4e93286
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node35.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Intranet account</TITLE>
+<META NAME="description" CONTENT="Intranet account">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H5><A NAME="SECTION00017006000000000000">
+Intranet account</A>
+</H5>
+
+<P>
+Met deze optie kunt u de gebruiker toegang verlenen tot Intranet server(s).
+Normaliter wordt deze optie gebruikt om toegang tot interne websites
+en/of webapplicaties binnen de organisatie te verschaffen.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">PPTP account</SPAN>
+
+<P>
+Met deze optie kunt u de gebruiker toegang tot de VPN server (PPTP)
+verschaffen.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">PHPScheduleit account</SPAN>
+
+<P>
+Met deze optie kunt u de gebruiker toegang tot de PHPScheduleit software
+verlenen.
+<P></P>
+
+
+<P>
+<SPAN  CLASS="textbf">GLPI account</SPAN>
+
+<P>
+Met deze optie kunt u de gebruiker toegang tot de GLPI software voor
+inventaris beheer geven.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node36.html b/gosa-core/doc/core/nl/html/users/node36.html
new file mode 100644
index 0000000..665191d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node36.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Fax</TITLE>
+<META NAME="description" CONTENT="Fax">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00018000000000000000">
+Fax</A>
+</H2>
+
+<P>
+Om Fax mogelijkheden voor een gebruiker in te schakelen, klikt u op
+de knop <SPAN  CLASS="textit">Fax account</SPAN> aanmaken<SPAN  CLASS="textit">.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html462"
+  HREF="node37.html">Algemeen</A>
+<LI><A NAME="tex2html463"
+  HREF="node38.html">Aflever methodes</A>
+<LI><A NAME="tex2html464"
+  HREF="node39.html">Alternatieve Fax nummers</A>
+<LI><A NAME="tex2html465"
+  HREF="node40.html">Blokkeerlijsten</A>
+<LI><A NAME="tex2html466"
+  HREF="node41.html">Bewerken:</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node37.html b/gosa-core/doc/core/nl/html/users/node37.html
new file mode 100644
index 0000000..d1fcc64
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node37.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018100000000000000">
+Algemeen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Fax<SPAN ID="hue505">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het Faxnummer van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Taal</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Kies de gewenste taal uit de lijst (nl_NL=Nederlands, en_EN=Engels
+etc.)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Aflever formaat</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het formaat waarmee faxen bij de gebruiker afgeleverd worden. Maak
+een keuze uit de lijst</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node38.html b/gosa-core/doc/core/nl/html/users/node38.html
new file mode 100644
index 0000000..65dbcfd
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node38.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Aflever methodes</TITLE>
+<META NAME="description" CONTENT="Aflever methodes">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018200000000000000">
+Aflever methodes</A>
+</H3>
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Schakel Fax gebruik tijdelijk uit:</SPAN> Schakel het Fax account
+van de gebruiker tijdelijk uit, zonder dat instellingen van het account
+verloren zullen gaan.
+</LI>
+<LI><SPAN  CLASS="textit">Lever Fax als E-mail af:</SPAN> Levert de fax in het geselecteerde
+formaat af in de mailbox van de gebruiker.
+</LI>
+<LI><SPAN  CLASS="textit">Lever Fax af op printer:</SPAN> Levert een fax af op de uit de lijst
+geselecteerde printer.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node39.html b/gosa-core/doc/core/nl/html/users/node39.html
new file mode 100644
index 0000000..267ba4a
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node39.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Alternatieve Fax nummers</TITLE>
+<META NAME="description" CONTENT="Alternatieve Fax nummers">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018300000000000000">
+Alternatieve Fax nummers</A>
+</H3>
+
+<P>
+Het is mogelijk meerdere Fax nummers aan de gebruiker toe te kennen.
+Alle alternatieve nummers die aan de gebruiker toegekend zijn, dienen
+in de lijst opgenomen te worden.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toevoegen:</SPAN> Om een nummer toe te voegen, geeft u een nummer
+op in het invoerveld links van de knop <SPAN  CLASS="textit">Toevoegen</SPAN> en daarna
+drukt u op de knop <SPAN  CLASS="textit">Toevoegen.</SPAN>
+</LI>
+<LI><SPAN  CLASS="textit">Lokaal toevoegen:</SPAN> Om een nummer toe te voegen dat al aan een
+andere gebruiker toegekend is, gebruikt u de knop <SPAN  CLASS="textit">Lokaal toevoegen.</SPAN>
+U kunt nu uit de lijst ��n of meerdere gebruikers selecteren, wiens
+Fax nummers toegekend moeten worden aan de huidige gebruiker.
+</LI>
+<LI><SPAN  CLASS="textit">Verwijderen:</SPAN> Selecteer ��n of meerdere regels (met de Ctrl-toets
+kunt u meerdere regels selecteren) en druk op de knop <SPAN  CLASS="textit">Verwijderen</SPAN>
+om Fax nummers te verwijderen.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node4.html b/gosa-core/doc/core/nl/html/users/node4.html
new file mode 100644
index 0000000..b7fa0f8
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node4.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemene informatie</TITLE>
+<META NAME="description" CONTENT="Algemene informatie">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00011200000000000000">
+Algemene informatie</A>
+</H3>
+
+<P>
+
+<UL>
+<LI>Om het bewerken van gebruikers (ook nieuwe gebruikers) af te sluiten
+en op te slaan, dient u op de knop Opslaan rechtsonder te drukken.
+Om de bewerkingen ongedaan te maken, drukt u op de knop annuleren,
+die u ook rechtsonder vindt.
+</LI>
+<LI>Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+Deze velden moeten pers� ingevuld worden.
+</LI>
+<LI>In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam)
+van de gebruiker die momenteel bewerkt wordt.
+</LI>
+</UL>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node40.html b/gosa-core/doc/core/nl/html/users/node40.html
new file mode 100644
index 0000000..ad2c917
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node40.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Blokkeerlijsten</TITLE>
+<META NAME="description" CONTENT="Blokkeerlijsten">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018400000000000000">
+Blokkeerlijsten</A>
+</H3>
+
+<P>
+Blokkeerlijsten dienen ervoor om zowel het ontvangen van en versturen
+naar bepaalde nummers aan banden te kunnen leggen. Dit is bijvoorbeeld
+een effectieve manier om advertentie fax-en te blokkeren. De dialogen
+voor zowel inkomende als uitgaande faxen zijn volledig identiek. We
+volstaan hier dus bij het uitleggen van de knop <SPAN  CLASS="textit">Bewerken</SPAN>.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node41.html b/gosa-core/doc/core/nl/html/users/node41.html
new file mode 100644
index 0000000..7b29920
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node41.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Bewerken:</TITLE>
+<META NAME="description" CONTENT="Bewerken:">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00018500000000000000">
+Bewerken:</A>
+</H3>
+
+<P>
+Zodra u de knop <SPAN  CLASS="textit">Bewerken</SPAN> indrukt krijgt een dialoogvenster
+dat uit twee delen bestaat. Aan de linkerzijde vindt u momenteel geldige
+nummers/lijsten, waartegen in- danwel uitgaande nummers gecontroleerd
+worden. Om een nummer toe te voegen, geeft u het nummer op in het
+tekstvelden drukt u op de knop <SPAN  CLASS="textit">Toevoegen</SPAN>. Om een reeds bestaande
+lijst uit een sub-afdeling te selecteren, selecteert u aan de rechterzijde
+de afdeling die de lijst bevat en drukt u op de knop <SPAN  CLASS="textit">Lijst aan
+blokkeerlijst toevoegen</SPAN>. Om ��n of meerdere lijsten uit de lijst
+de verwijderen, selecteert u de nummer(s)/lijst(en) en drukt u op
+de knop <SPAN  CLASS="textit">Verwijderen</SPAN>.
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node42.html b/gosa-core/doc/core/nl/html/users/node42.html
new file mode 100644
index 0000000..287b437
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node42.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefoon</TITLE>
+<META NAME="description" CONTENT="Telefoon">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00019000000000000000">
+Telefoon</A>
+</H2>
+
+<P>
+Om een telefoon account te activeren voor een gebruiker, drukt u op
+de knop <SPAN  CLASS="textit">Telefoon account aanmaken.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html525"
+  HREF="node43.html">Telefoonnummers</A>
+<LI><A NAME="tex2html526"
+  HREF="node44.html">Telefoon hardware</A>
+<LI><A NAME="tex2html527"
+  HREF="node45.html">Telefoon macro</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node43.html b/gosa-core/doc/core/nl/html/users/node43.html
new file mode 100644
index 0000000..c45fcc4
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node43.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefoonnummers</TITLE>
+<META NAME="description" CONTENT="Telefoonnummers">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019100000000000000">
+Telefoonnummers</A>
+</H3>
+
+<P>
+Hier geeft u de telefoonnummers op, die aan de gebruiker toegekend
+zijn.
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textit">Toevoegen:</SPAN> Voer een telefoonnummer links van de knop in en
+druk op de knop <SPAN  CLASS="textit">Toevoegen</SPAN> om het telefoonnummer aan de gebruiker
+toe te kennen.
+</LI>
+<LI><SPAN  CLASS="textit">Verwijderen:</SPAN> Selecteer het te verwijderen nummer in de lijst
+en druk op de knop <SPAN  CLASS="textit">Verwijderen</SPAN> om het nummer bij de gebruiker
+weg te halen.
+</LI>
+</UL>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node44.html b/gosa-core/doc/core/nl/html/users/node44.html
new file mode 100644
index 0000000..e223984
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node44.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefoon hardware</TITLE>
+<META NAME="description" CONTENT="Telefoon hardware">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019200000000000000">
+Telefoon hardware</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefoon</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Selecteer de telefoon van de gebruiker uit de lijst</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Voicemail PIN-code<SPAN ID="hue507">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geef de vier cijferige PIN-code op, die de gebruiker in moet geven
+om deVoice mailbox te kunnen beluisteren</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefoon PIN-code<SPAN ID="hue508">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geef de vier cijferige PIN-code op, die de gebruiker in moet geven
+om zich bij de telefoon aan te melden.</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node45.html b/gosa-core/doc/core/nl/html/users/node45.html
new file mode 100644
index 0000000..cc64abd
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node45.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Telefoon macro</TITLE>
+<META NAME="description" CONTENT="Telefoon macro">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00019300000000000000">
+Telefoon macro</A>
+</H3>
+
+<P>
+Selecteer uit de lijst met macro's de macro die op de gebruiker van
+toepassing moet zijn. Indien door de beheerder opgegeven bij het aanmaken
+van de macro, kan het nodig zijn om nog macro-specifieke opties in
+te moeten stellen, zoals bijvoorbeeld een Mailbox, doorschakelnummer,
+doorschakeltijd etc.).
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node46.html b/gosa-core/doc/core/nl/html/users/node46.html
new file mode 100644
index 0000000..aaa1829
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node46.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Referenties</TITLE>
+<META NAME="description" CONTENT="Referenties">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION000110000000000000000">
+Referenties</A>
+</H2>
+
+<P>
+Onder referenties vindt u de relaties van de gebruiker met andere
+objecten binnen de LDAP server (bijv. Groepen, systemen etc.).
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node47.html b/gosa-core/doc/core/nl/html/users/node47.html
new file mode 100644
index 0000000..33a61fe
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node47.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>About this document ...</TITLE>
+<META NAME="description" CONTENT="About this document ...">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H1><A NAME="SECTION00020000000000000000">
+About this document ...</A>
+</H1>
+ <STRONG><SPAN  CLASS="textbf">Gebruikers beheer</SPAN></STRONG><P>
+This document was generated using the
+<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2002-2-1 (1.71)
+<P>
+Copyright © 1993, 1994, 1995, 1996,
+<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, 
+Computer Based Learning Unit, University of Leeds.
+<BR>
+Copyright © 1997, 1998, 1999,
+<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, 
+Mathematics Department, Macquarie University, Sydney.
+<P>
+The command line arguments were: <BR>
+ <STRONG>latex2html</STRONG> <TT>-no_navigation -dir ../html/users/ users.tex</TT>
+<P>
+The translation was initiated by Jan Wenzel on 2008-03-13
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node5.html b/gosa-core/doc/core/nl/html/users/node5.html
new file mode 100644
index 0000000..07a07a3
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node5.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00012000000000000000">
+Algemeen</A>
+</H2>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html139"
+  HREF="node6.html">Persoonlijke informatie</A>
+<LI><A NAME="tex2html140"
+  HREF="node7.html">Organisatie informatie</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node6.html b/gosa-core/doc/core/nl/html/users/node6.html
new file mode 100644
index 0000000..cec5693
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node6.html
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Persoonlijke informatie</TITLE>
+<META NAME="description" CONTENT="Persoonlijke informatie">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012100000000000000">
+Persoonlijke informatie</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue91">Achternaam</SPAN><SPAN ID="hue471">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De achternaam van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue95">Voornaam</SPAN><SPAN ID="hue472">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De voornaam van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142><SPAN ID="hue99">Inlognaam</SPAN><SPAN ID="hue473">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De naam waarmee de gebruiker inlogt</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Aanhef</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De aanhef van de gebruiker (Bijv. Meneer, Dhr, Mevrouw)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Academische titel</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De academische titel van de gebruiker (Bijv. Dr., Ing, Mr)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Geboortedatum</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Klik op de knop <SPAN  CLASS="textit">Stel in</SPAN> om een keuzelijst te laten verschijnen</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Geslacht</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Maak uw keuze uit de lijst voor het geslacht van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Voorkeurstaal</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Maak uw keuze uit de lijst voor de voorkeurstaal van de gebruiker
+(nl_NL=Nederlands, en_EN=Engels, etc)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Basis</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De afdeling van de gebruiker (het aanmaken van de afdeling kan door
+middel van de <SPAN  CLASS="textbf"><SPAN ID="hue104">afdelingen</SPAN></SPAN> knop in het linkermenu
+van het beheer onderdeel).</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Plaatje</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Om een foto of plaatje van de gebruiker op te slaan, drukt op de knop
+<SPAN  CLASS="textit">Verander plaatje...</SPAN> Selecteer de gewenste afbeelding. De afbeelding
+wordt nu getoond. Om de keuze vast te leggen, drukt u op de knop <SPAN  CLASS="textit">Opslaan</SPAN>.
+Indien u de afbeelding niet wenst op te slaan, drukt u op de knop
+<SPAN  CLASS="textit">Annuleren</SPAN>.</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Adres</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het priv� adres van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Telefoon priv�</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het priv� telefoonnummer van de gebruiker. U dient dit volgens het
+internationale formaat in te voeren. Bijvoorbeeld +31 40 2390740</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Homepage</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De URL van de homepage van de gebruiker (bijv. http://www.careworks.nl)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Wachtwoord encryptie</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De manier waarop het wachtwoord intern versleuteld opgeslagen wordt.
+Maak uw keuze door uit de lijst te selecteren</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Certificaten</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue109">Klik op de knop</SPAN> <SPAN ID="hue475"><SPAN  CLASS="textit">Bewerk
+certificaten...</SPAN></SPAN> <SPAN ID="hue113">om de certificaten van de gebruiker
+te beheren. Met GOsa kunt u drie types certificaten importeren. Klik
+op</SPAN> <SPAN ID="hue476"><SPAN  CLASS="textit">Opslaan</SPAN></SPAN> <SPAN ID="hue117">om te beeindigen.</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Kerberos</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283><SPAN ID="hue119">Klik op de knop</SPAN> <SPAN ID="hue477"><SPAN  CLASS="textit">Bewerk
+eigenschappen</SPAN></SPAN> <SPAN ID="hue123">om Kerberos eigenschappen te bewerken.</SPAN></TD>
+</TR>
+</TABLE>
+<P>
+<BR>
+
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node7.html b/gosa-core/doc/core/nl/html/users/node7.html
new file mode 100644
index 0000000..375da56
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node7.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Organisatie informatie</TITLE>
+<META NAME="description" CONTENT="Organisatie informatie">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00012200000000000000">
+Organisatie informatie</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+Organisatie </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> De naam van de organisatie (bijv. CareWorks)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Afdeling </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> De naam van de afdeling (bijv. Administratie)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Afdeling nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het nummer van de afdeling (bijv. 21)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Personeel nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het personeelsnummer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Functie </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> De functie van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Kamer nr. </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het kamernummer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Telefoon </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het telefoonnumer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+GSM </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het GSM nummer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Pieper </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het pieper nummer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Fax </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het fax nummer van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Plaats </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> De plaats van het kantoor of afdeling van de medewerker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Provincie </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> De provincie waar het kantoor of de afdeling van de medewerker zich
+bevindt</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142> 
+ 
+Adres </TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283> Het postadres van het kantoor of de afdeling van de medewerker</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P><P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node8.html b/gosa-core/doc/core/nl/html/users/node8.html
new file mode 100644
index 0000000..a52ae0e
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node8.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Unix</TITLE>
+<META NAME="description" CONTENT="Unix">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H2><A NAME="SECTION00013000000000000000">
+Unix</A>
+</H2>
+
+<P>
+U dient op de knop <SPAN  CLASS="textit">POSIX Account toevoegen</SPAN> te drukken om
+een UNIX account te activeren voor de gebruiker<SPAN  CLASS="textit">.</SPAN>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html169"
+  HREF="node9.html">Algemeen</A>
+<LI><A NAME="tex2html170"
+  HREF="node10.html">Groep lidmaatschap</A>
+<LI><A NAME="tex2html171"
+  HREF="node11.html">Account</A>
+<LI><A NAME="tex2html172"
+  HREF="node12.html">System vertrouwen</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/node9.html b/gosa-core/doc/core/nl/html/users/node9.html
new file mode 100644
index 0000000..8f76f0d
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/node9.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Algemeen</TITLE>
+<META NAME="description" CONTENT="Algemeen">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<H3><A NAME="SECTION00013100000000000000">
+Algemeen</A>
+</H3>
+
+<P>
+<TABLE CELLPADDING=3 BORDER="1">
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Persoonlijke map<SPAN ID="hue480">*</SPAN></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Het pad naar de persoonlijke map van de gebruiker</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Shell</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De Unix shell die gebruikt dient te worden bij het aanmelden van de
+gebruiker. (/bin/false of /bin/true zorgt ervoor dat de gebruiker
+niet in kan loggen op een UNIX systeem).</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Primaire groep</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>De primaire groep van de gebruiker. (Voor de aanmaak van groepen,
+gaat u naar het <SPAN  CLASS="textbf">Beheer</SPAN> onderdeel en klikt u op de <SPAN  CLASS="textbf"><SPAN ID="hue146">Groepen</SPAN></SPAN>
+knop)</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Status</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Geeft aan of het account actief is of niet</TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=142>Forceer UID/GID</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=283>Hiermee kunt u de UID/GID van een gebruiker naar een bepaalde waarde
+forceren. Gebruik deze optie alleen indien u weet wat u doet en verzeker
+uzelf ervan dat de opgegeven waardes niet vergeven zijn!</TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<BR>
+
+
+<P>
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/html/users/penguin.png b/gosa-core/doc/core/nl/html/users/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/penguin.png differ
diff --git a/gosa-core/doc/core/nl/html/users/rocket.png b/gosa-core/doc/core/nl/html/users/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/rocket.png differ
diff --git a/gosa-core/doc/core/nl/html/users/search.png b/gosa-core/doc/core/nl/html/users/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/search.png differ
diff --git a/gosa-core/doc/core/nl/html/users/select_netatalk.png b/gosa-core/doc/core/nl/html/users/select_netatalk.png
new file mode 100644
index 0000000..e589720
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/select_netatalk.png differ
diff --git a/gosa-core/doc/core/nl/html/users/select_phone.png b/gosa-core/doc/core/nl/html/users/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/select_phone.png differ
diff --git a/gosa-core/doc/core/nl/html/users/select_user.png b/gosa-core/doc/core/nl/html/users/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/select_user.png differ
diff --git a/gosa-core/doc/core/nl/html/users/select_winstation.png b/gosa-core/doc/core/nl/html/users/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/select_winstation.png differ
diff --git a/gosa-core/doc/core/nl/html/users/smallenv.png b/gosa-core/doc/core/nl/html/users/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/smallenv.png differ
diff --git a/gosa-core/doc/core/nl/html/users/users.css b/gosa-core/doc/core/nl/html/users/users.css
new file mode 100644
index 0000000..5dae8ce
Binary files /dev/null and b/gosa-core/doc/core/nl/html/users/users.css differ
diff --git a/gosa-core/doc/core/nl/html/users/users.html b/gosa-core/doc/core/nl/html/users/users.html
new file mode 100644
index 0000000..a4012d8
--- /dev/null
+++ b/gosa-core/doc/core/nl/html/users/users.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Gebruikers beheer</TITLE>
+<META NAME="description" CONTENT="Gebruikers beheer">
+<META NAME="keywords" CONTENT="users">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-15">
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="users.css">
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<H1 ALIGN="CENTER"><SPAN  CLASS="textbf">Gebruikers beheer</SPAN></H1>
+<DIV CLASS="author_info">
+
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL CLASS="ChildLinks">
+<LI><A NAME="tex2html3"
+  HREF="node1.html">Gebruikerslijst</A>
+<UL>
+<LI><A NAME="tex2html4"
+  HREF="node2.html">Gebruikersaccount aanmaken</A>
+<UL>
+<LI><A NAME="tex2html5"
+  HREF="node3.html">Een bestaand account bewerken</A>
+<LI><A NAME="tex2html6"
+  HREF="node4.html">Algemene informatie</A>
+</UL>
+<LI><A NAME="tex2html7"
+  HREF="node5.html">Algemeen</A>
+<UL>
+<LI><A NAME="tex2html8"
+  HREF="node6.html">Persoonlijke informatie</A>
+<LI><A NAME="tex2html9"
+  HREF="node7.html">Organisatie informatie</A>
+</UL>
+<LI><A NAME="tex2html10"
+  HREF="node8.html">Unix</A>
+<UL>
+<LI><A NAME="tex2html11"
+  HREF="node9.html">Algemeen</A>
+<LI><A NAME="tex2html12"
+  HREF="node10.html">Groep lidmaatschap</A>
+<LI><A NAME="tex2html13"
+  HREF="node11.html">Account</A>
+<LI><A NAME="tex2html14"
+  HREF="node12.html">System vertrouwen</A>
+</UL>
+<LI><A NAME="tex2html15"
+  HREF="node13.html">Omgeving</A>
+<UL>
+<LI><A NAME="tex2html16"
+  HREF="node14.html">Profielen</A>
+<LI><A NAME="tex2html17"
+  HREF="node15.html">Kiosk profiel</A>
+<LI><A NAME="tex2html18"
+  HREF="node16.html">Inlog scripts</A>
+<LI><A NAME="tex2html19"
+  HREF="node17.html">Share verbinden</A>
+<LI><A NAME="tex2html20"
+  HREF="node18.html">Hotplug apparaten</A>
+<LI><A NAME="tex2html21"
+  HREF="node19.html">Printer</A>
+</UL>
+<LI><A NAME="tex2html22"
+  HREF="node20.html">E-mail</A>
+<UL>
+<LI><A NAME="tex2html23"
+  HREF="node21.html">Algemeen</A>
+<LI><A NAME="tex2html24"
+  HREF="node22.html">Alternatieve adressen</A>
+<LI><A NAME="tex2html25"
+  HREF="node23.html">E-mail opties</A>
+<LI><A NAME="tex2html26"
+  HREF="node24.html">Geavanceerde E-mail opties</A>
+</UL>
+<LI><A NAME="tex2html27"
+  HREF="node25.html">Samba</A>
+<UL>
+<LI><A NAME="tex2html28"
+  HREF="node26.html">Algemeen</A>
+<LI><A NAME="tex2html29"
+  HREF="node27.html">Terminal Server</A>
+<LI><A NAME="tex2html30"
+  HREF="node28.html">Toegangsopties</A>
+</UL>
+<LI><A NAME="tex2html31"
+  HREF="node29.html">Verbindingen</A>
+<LI><A NAME="tex2html32"
+  HREF="node36.html">Fax</A>
+<UL>
+<LI><A NAME="tex2html33"
+  HREF="node37.html">Algemeen</A>
+<LI><A NAME="tex2html34"
+  HREF="node38.html">Aflever methodes</A>
+<LI><A NAME="tex2html35"
+  HREF="node39.html">Alternatieve Fax nummers</A>
+<LI><A NAME="tex2html36"
+  HREF="node40.html">Blokkeerlijsten</A>
+<LI><A NAME="tex2html37"
+  HREF="node41.html">Bewerken:</A>
+</UL>
+<LI><A NAME="tex2html38"
+  HREF="node42.html">Telefoon</A>
+<UL>
+<LI><A NAME="tex2html39"
+  HREF="node43.html">Telefoonnummers</A>
+<LI><A NAME="tex2html40"
+  HREF="node44.html">Telefoon hardware</A>
+<LI><A NAME="tex2html41"
+  HREF="node45.html">Telefoon macro</A>
+</UL>
+<LI><A NAME="tex2html42"
+  HREF="node46.html">Referenties</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html43"
+  HREF="node47.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Jan Wenzel
+2008-03-13
+</ADDRESS>
+</BODY>
+</HTML>
diff --git a/gosa-core/doc/core/nl/lyx-source/departments.lyx b/gosa-core/doc/core/nl/lyx-source/departments.lyx
new file mode 100644
index 0000000..926549b
--- /dev/null
+++ b/gosa-core/doc/core/nl/lyx-source/departments.lyx
@@ -0,0 +1,467 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+Afdelingen beheer
+\layout Section
+
+Afdelingen lijst
+\layout Standard
+
+De beheerder kan afdelingen aanmaken, veranderen of bekijken door op de
+ 
+\series bold 
+\color blue
+Afdelingen
+\series default 
+\color default
+ knop in het 
+\series bold 
+Beheer
+\series default 
+ menu aan de linkerkant te klikken.
+ De
+\family sans 
+\color black
+ Afdelingen Beheer
+\family default 
+\color default
+ pagina die getoond wordt, is het uitgangspunt voor alle afdeling beheertaken
+ en is verdeeld in twee kolommen.
+\layout Itemize
+
+De eerste kolom bevat de namen van de afdelingen (alfabetisch gesorteerd).
+\layout Itemize
+
+De tweede kolom bevat knoppen voor de beschikbare acties (knippen, kopieren,
+ bewerken, verwijderen)
+\layout Standard
+
+De knoppen (
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+) dienen voor navigatie binnen de afdelingshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+ Helemaal naar boven (hoofd afdeling)
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ Een afdeling naar boven
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ Naar de basis van de afdeling
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ Huidige afdeling verversen
+\layout Standard
+
+Daarnaast is het mogelijk de weergave van afdelingen met behulp van filters
+ te beinvloeden (
+\color black
+met 
+\series bold 
+Filters
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ aan de rechter zijde):
+\layout Itemize
+
+Op namen zoeken:
+\begin_deeper 
+\layout Itemize
+
+Door op * (asterisk) te klikken worden alle afdelingen getoond
+\layout Itemize
+
+Het klikken van een letter, laat alle afdelingen zien waarvan de naam met
+ de betreffende letter begint
+\layout Itemize
+
+Het klikken van een cijfer, laat alle afdelingen zien waarvan de naam met
+ het betreffende cijfer begint
+\end_deeper 
+\layout Itemize
+
+
+\color black
+Daarnaast kan de lijst met behulp van delen van namen en complexere reguliere
+ expressies verder beperkt worden met behulp van
+\color default
+ het invoerveld achter het icoon 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+.
+ In dit veld kunt u cijfer en letter combinaties invoeren om de lijst verder
+ te beperken.
+ Om uw selectie door te voeren dient u op de knop
+\emph on 
+ Filter toepassen
+\emph default 
+ te drukken.
+\layout Subsection*
+
+Afdeling aanmaken
+\layout Standard
+
+Om een nieuw afdeling aan te maken klikt u op de knop 
+\begin_inset Graphics
+	filename images/list_new_department.png
+
+\end_inset 
+
+.
+ Volg de instructies hieronder op die gegeven worden bij het bewerken van
+ een afdeling.
+\layout Subsubsection*
+
+Een bestaande afdeling bewerken
+\layout Standard
+
+Klik binnen de afdelingen lijst op de naam van de te bewerken afdeling.
+ De pagina die nu geladen wordt, bevat eigenschappen van de afdeling
+\layout Subsubsection*
+
+Algemene informatie
+\layout Itemize
+
+Om het bewerken van afdelingen (ook nieuwe afdelingen) af te sluiten en
+ op te slaan, dient u op de knop Opslaan rechtsonder te drukken.
+ Om de bewerkingen ongedaan te maken, drukt u op de knop annuleren, die
+ u ook rechtsonder vindt.
+\layout Itemize
+
+Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+ Deze velden moeten pers� ingevuld worden.
+\layout Itemize
+
+In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam) van de
+ afdeling die momenteel bewerkt wordt.
+\layout Subsection
+\pagebreak_top 
+Algemeen
+\layout Subsubsection
+
+Eigenschappen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Naam van de afdeling
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De naam van de afdeling
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Omschrijving
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De omschrijving van of een commentaar op de afdeling
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Categorie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De categorie van de afdeling
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De basis (bovenliggende hoofdafdeling) van de afdeling
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Plaats
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Provincie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De provincie of het land waar de afdeling zich bevindt
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Plaats
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De plaats waar de afdeling zich bevindt
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adres
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het adres van de afdeling
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefoon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het centrale telefoonnummer van de afdeling
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het centrale faxnummer van de afdeling
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+
+Beheerders instellingen
+\layout Itemize
+
+
+\emph on 
+Markeer de afdeling als een onafhankelijke beheerbare eenheid:
+\emph default 
+ Hiermee kunt u opgeven dat toegangsrechten binnen GOsa binnen deze afdeling
+ afzonderlijk geregeld worden.
+ Zo kunt u beheerders per afdeling instellen indien gewenst.
+\layout Subsection
+\added_space_top bigskip 
+Referenties
+\layout Standard
+
+Onder referenties vindt u alle koppelingen die deze afdeling heeft met andere
+ objecten binnen de LDAP database.
+\the_end
diff --git a/gosa-core/doc/core/nl/lyx-source/groups.lyx b/gosa-core/doc/core/nl/lyx-source/groups.lyx
new file mode 100644
index 0000000..9275af4
--- /dev/null
+++ b/gosa-core/doc/core/nl/lyx-source/groups.lyx
@@ -0,0 +1,967 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+Groepen beheer
+\layout Section
+
+Groepenlijst
+\layout Standard
+
+De beheerder kan groep informatie aanmaken, veranderen of bekijken door
+ op de 
+\series bold 
+\color blue
+Groepen
+\series default 
+\color default
+ knop in het 
+\series bold 
+Beheer
+\series default 
+ menu aan de linkerkant te klikken.
+ De
+\family sans 
+\color black
+ Groepen Beheer
+\family default 
+\color default
+ pagina die getoond wordt, is het uitgangspunt voor alle groep beheertaken
+ en is verdeeld in drie kolommen.
+\layout Itemize
+
+De eerste kolom bevat de namen van de groepen en de afdelingen waarbinnen
+ zij ingedeeld zijn (alfabetisch gesorteerd).
+\layout Itemize
+
+De tweede kolom bevat knoppen voor snelle toegang tot verschillende groep
+ eigenschappen van de groep (alleen beschikbaar indien de betreffende eigenschap
+ geactiveerd is).
+ Daarnaast dient deze kolom voor een snel overzicht van geactiveerde eigenschapp
+en van de groep.
+\begin_deeper 
+\layout Itemize
+
+De mogelijke iconen en hun betekenis:
+\newline 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Icoon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Betekenis
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_groups.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groep beschikt over UNIX eigenschappen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/smallenv.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groep beschikt over Omgevings instellingen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/mailto.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groep beschikt over een E-mail account
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_winstation.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groep beschikt over een Samba/Windows account
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_application.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groep beschikt over programma eigenschapppen
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_deeper 
+\layout Itemize
+
+De derde kolom bevat knoppen voor de beschikbare acties (knippen, kopieren,
+ bewerken, verwijderen)
+\layout Standard
+
+De knoppen (
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+) dienen voor navigatie binnen de afdelingshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+ Helemaal naar boven (hoofd afdeling)
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ Een afdeling naar boven
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ Naar de basis van de groep
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ Huidige afdeling verversen
+\layout Standard
+
+Daarnaast is het mogelijk de weergave van groepen met behulp van filters
+ te beinvloeden (
+\color black
+met 
+\series bold 
+Filters
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ aan de rechter zijde):
+\layout Itemize
+
+Op namen zoeken:
+\begin_deeper 
+\layout Itemize
+
+Door op * (asterisk) te klikken worden alle groepen getoond
+\layout Itemize
+
+Het klikken van een letter, laat alle groepen zien waarvan de naam met de
+ betreffende letter begint
+\layout Itemize
+
+Het klikken van een cijfer, laat alle groepen zien waarvan de naam met het
+ betreffende cijfer begint
+\end_deeper 
+\layout Itemize
+
+Verder zoekopties:
+\newline 
+(De volgende filters werken zodanig dat alleen groepen getoond worden, die
+ over tenminste een van de geselecteerde opties beschikken; Standaard worden
+ alle groepen getoond).
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Toon primaire groepen:
+\emph default 
+ Groepen waarvoor geldt dat tenminste ��n gebruiker de groep als primaire
+ groep ingesteld heeft
+\layout Itemize
+
+
+\emph on 
+Toon Samba groepen:
+\emph default 
+ Groepen die over Samba/Windows mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon programma groepen:
+\emph default 
+ Groepen die over programma mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon E-mail gropen:
+\emph default 
+ Groepen die over E-mail mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon functionele groepen:
+\emph default 
+ Groepen die alleen over functionele eigenschappen beschikken
+\end_deeper 
+\layout Itemize
+
+
+\color black
+Daarnaast kan de lijst met behulp van delen van namen en complexere reguliere
+ expressies verder beperkt worden met behulpt van
+\color default
+ het invoerveld achter het icoon 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+.
+ In dit veld kunt u cijfer en letter combinaties invoeren om de lijst verder
+ te beperken.
+ Om uw selectie door te voeren dient u op de knop
+\emph on 
+ Filter toepassen
+\emph default 
+ te drukken.
+\layout Subsection*
+
+Groep aanmaken
+\layout Standard
+
+Om een nieuwe groep aan te maken klikt u op de knop 
+\begin_inset Graphics
+	filename images/list_new_group.png
+
+\end_inset 
+
+.
+ Volg de instructies op die hierna gegevn worden om een bstaand account
+ te bewerken.
+\layout Subsubsection*
+
+Een bestaande groep bewerken
+\layout Standard
+
+Klik binnen de groepenlijst op de groepsnaam van de te bewerken groep.
+ De pagina die nu geladen wordt, bevat tabbladen die voor groep mogelijkheden
+ staan (momenteel zijn dat bijvoorbeeld Algemeen, Omgeving, E-mail etc.)
+\layout Subsubsection*
+
+Algemene informatie
+\layout Itemize
+
+Om het bewerken van groepen (ook nieuwe groepen) af te sluiten en op te
+ slaan, dient u op de knop Opslaan rechtsonder te drukken.
+ Om de bewerkingen ongedaan te maken, drukt u op de knop annuleren, die
+ u ook rechtsonder vindt.
+\layout Itemize
+
+Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+ Deze velden moeten pers� ingevuld worden.
+\layout Itemize
+
+In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam) van de
+ groep die momenteel bewerkt wordt.
+\layout Subsection
+\pagebreak_top 
+Algemeen
+\layout Itemize
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+G
+\color black
+roepnaam
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De naam van de groep
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Omschrijving
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De omschrijving van of een commentaar over de groep
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De afdeling waartoe de groep hoort (het aanmaken van de afdelingen kan met
+ behul van de knop 
+\series bold 
+\color blue
+Afdelingen
+\series default 
+\color default
+ in het linkermenu).
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Forceer GID:
+\emph default 
+ Hiermee kunt u het UNIX GID op een bepaalde waarde instellen.
+ Let op bij het gebruik van deze optie! Zorg ervoor dat GID niet dubbel
+ uitgegeven worden en let er daarnaast op dat rechten op bestanden aangepast
+ worden indien de GID aangepast wordt.
+\layout Itemize
+
+
+\emph on 
+[Samba groep] in domein [Domein]:
+\emph default 
+ Met deze optie maakt u de groep beschikbaar voor Windows/Samba gebruikers.
+ Daarbij zijn de volgende instellingen mogelijk:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Samba groep: 
+\emph default 
+De groep is een normale Samba/Windows groep
+\layout Itemize
+
+
+\emph on 
+Windows beheerders:
+\emph default 
+ De groep is een speciale Windows groep voor Domein Beheerders
+\layout Itemize
+
+
+\emph on 
+Windows gebruikers:
+\emph default 
+ De groep is een speciale Windows groep voor Domein Gebruikers
+\layout Itemize
+
+
+\emph on 
+Windows gasten: 
+\emph default 
+De groep is een speciale Windows groep voor Domein Gasten
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Leden zitten in een telefoon beantwoordgroep:
+\emph default 
+ Met deze optie kunt u gebruikers in een telefoon beantwoord groep indelen.
+ Verdere documentatie zal volgen.
+\layout Itemize
+
+
+\emph on 
+Leden zitten in een systeeminformatie groep (Nagios):
+\emph default 
+ Groepsleden maken deel uit van een groep binnen Nagios systeemmonitorings
+ software, die informatie mogen bekijken en/of aanpassen.
+\layout Itemize
+
+
+\emph on 
+Groepsleden:
+\emph default 
+ De groep bestaat uit leden die in deze lijst getoond worden.
+ Groepsleden kunnen toegevoegd en verwijderd worden:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Toevoegen:
+\emph default 
+ Om een groepslid toe te voegen, drukt u op de knop 
+\emph on 
+Toevoegen
+\emph default 
+.
+ Daarna kunt u bestaande gebruikers uit de lijst selecteren, waarna u op
+ de knop 
+\emph on 
+Toevoegen
+\emph default 
+ kunt drukken om de gebruikers lid te maken van de groep.
+ Indien u het toevoegen wil afbreken, dan kunt u op de knop 
+\emph on 
+Anuuleren 
+\emph default 
+drukken.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Omgeving
+\layout Standard
+
+To activate the environment extension click on 
+\shape italic 
+Add environment
+\shape default 
+ 
+\emph on 
+extension
+\emph default 
+.
+\layout Subsubsection
+
+Profielen
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profiel
+\layout Subsubsection
+\added_space_top medskip 
+Login scripts
+\layout Subsubsection
+\added_space_top medskip 
+Shares
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug apparaten
+\layout Subsubsection
+\added_space_top medskip 
+Printers
+\layout Subsection
+\added_space_top bigskip 
+Programma's
+\layout Standard
+
+Om de Programma eigenschappen voor deze groep te activeren.
+ drukt u op de knop 
+\emph on 
+Programma's
+\emph default 
+ 
+\emph on 
+toevoegen
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+E-mail
+\layout Standard
+
+Een E-mail account voor een groep betekent een of meerdere gedeelde mappen
+ op een IMAP server.
+ Dit maakt het mogelijk om meer dan een gebruiker toegang te geven tot E-mails
+ die in deze map opgeslagen worden.
+ Deze gedeelde mappen zijn bijvoorbeeld handig om E-mail distributie mogelijk
+ te maken, maar ook om date zoals bijvoorbeeld een agenda of adresboek te
+ delen.
+ Om een E-mail account toe te voegen aan een groep, drukt u op de knop 
+\emph on 
+E-mail account aanmaken
+\emph default 
+.
+\layout Subsubsection
+
+Algemeen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Primair adres
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Het primaire E-mail adres voor de gedeelde mappen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Selecteer de mailserver waarop het account opgeslagen dient te worden
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota gebruik
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Geeft het dataverbruik van de groep aan (indien een qouta gedefinieerd is)
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota grootte
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+De grootte van de hoeveelheid opslagruimte voor E-mails van de groep (in
+ KB).
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternatieve adressen
+\layout Standard
+
+Alternatieve adressen zijn E-mail adressen, waaronder ook E-mail ontvangen
+ kan worden door de E-mail groep.
+ U kunt de knop 
+\emph on 
+Toevoegen
+\emph default 
+ gebruiken om E-mail alias adressen toe te voegen.
+\layout Subsubsection
+\added_space_top medskip 
+IMAP gedeelde mappen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Algemene rechten
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hier geeft u de rechten op die voor alle gebruikers gelden, die niet expliciet
+ genoemd worden en/of lid van deze groep zijn.
+ Indien u E-mail wil accepteren van externe adressen, dan dient u de Algemen
+ rechten op 
+\emph on 
+alleen afleveren
+\emph default 
+ in te stellen.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Groepslid rechten
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hier geeft u de rechten op die voor alle leden van deze groep gelden.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+[Extra E-mail adressen]
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hier geeft u de rechten voor extra E-mail adressen op.
+ Druk op de knop 
+\emph on 
+Toevoegen
+\emph default 
+ om het E-mail adres met de opgegeven rechten toe te voegen
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Standard
+
+Voor de rechten kunt u een selectie maken uit de volgende IMAP rechten:
+\layout Itemize
+
+
+\emph on 
+alleen afleveren:
+\emph default 
+ De gebruiker/groep mag alleen E-mail berichten via SMTP afleveren in de
+ map.
+ Dit betekent dat de gebruiker 
+\emph on 
+niet
+\emph default 
+ kan lezen in de map.
+\layout Itemize
+
+
+\emph on 
+alleen lezen:
+\emph default 
+ De gebruiker/groep mag alleen bestaande E-mail berichten die in de map
+ staan lezen.
+\layout Itemize
+
+afleveren & lezen: De gebruiker/groep mag nieuwe E-mail berichten via SMTP
+ plaatsen in de map en daarnaast alleen bestaande berichten lezen.
+\layout Itemize
+
+
+\emph on 
+afleveren, lezen & kopieren:
+\emph default 
+ De gebruiker/groep mag nieuwe E-mail berichten via SMTP plaatsen in de
+ map.
+ Daarnaast kunnen berichten gelezen en binnen de map gekopieerd worden
+\layout Itemize
+
+
+\emph on 
+afleveren, lezen en schrijven:
+\emph default 
+ De gebruiker/groep heeft alle rechten op de E-mail map, inclusief het zetten
+ van status informatie.
+\layout Subsubsection
+\added_space_top medskip 
+Stuur berichten door naar niet groepsleden
+\layout Standard
+
+Hiermee kunt u berichten die in voor deze groep bestemd zijn, automatisch
+ doorsturen naar een ander adres.
+ Druk op de knop 
+\emph on 
+Toevoegen
+\emph default 
+ om een extern E-mail adres toe te voegen, dat u in het tekstveld ingevuld
+ hebt.
+ Gebruik de knop 
+\emph on 
+Lokaal toevoegen
+\emph default 
+ om een lokaal E-mail adres toe te voegen.
+\layout Subsection
+\added_space_top bigskip 
+Rechten
+\layout Standard
+
+In dit onderdeel kunt u rechten voor de diverse onderdelen binnen GOsa voor
+ leden van de groep instellen.
+\layout Subsection
+\added_space_top bigskip 
+Referenties
+\layout Standard
+
+Onder referenties vindt u alle koppelingen die deze groep met andere objecten
+ uit de LDAP datanbase heeft.
+\the_end
diff --git a/gosa-core/doc/core/nl/lyx-source/images/action.png b/gosa-core/doc/core/nl/lyx-source/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/action.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/addr_company.png b/gosa-core/doc/core/nl/lyx-source/images/addr_company.png
new file mode 100644
index 0000000..80a173d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/addr_company.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/addr_home.png b/gosa-core/doc/core/nl/lyx-source/images/addr_home.png
new file mode 100644
index 0000000..14ee484
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/addr_home.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/addr_personal.png b/gosa-core/doc/core/nl/lyx-source/images/addr_personal.png
new file mode 100644
index 0000000..ecf17bc
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/addr_personal.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/addressbook.png b/gosa-core/doc/core/nl/lyx-source/images/addressbook.png
new file mode 100644
index 0000000..08c72ef
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/addressbook.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/alternatemail.png b/gosa-core/doc/core/nl/lyx-source/images/alternatemail.png
new file mode 100644
index 0000000..62b0534
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/alternatemail.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/application.png b/gosa-core/doc/core/nl/lyx-source/images/application.png
new file mode 100644
index 0000000..671fc7d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/application.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/back.png b/gosa-core/doc/core/nl/lyx-source/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/back.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/banana.png b/gosa-core/doc/core/nl/lyx-source/images/banana.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/banana.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/blocklists.png b/gosa-core/doc/core/nl/lyx-source/images/blocklists.png
new file mode 100644
index 0000000..8f252a4
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/blocklists.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/branch.png b/gosa-core/doc/core/nl/lyx-source/images/branch.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/branch.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/branch_small.png b/gosa-core/doc/core/nl/lyx-source/images/branch_small.png
new file mode 100644
index 0000000..d632c85
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/branch_small.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/button_cancel.png b/gosa-core/doc/core/nl/lyx-source/images/button_cancel.png
new file mode 100644
index 0000000..9691957
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/button_cancel.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/cant_editpaste.png b/gosa-core/doc/core/nl/lyx-source/images/cant_editpaste.png
new file mode 100644
index 0000000..fdcc88d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/cant_editpaste.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/certs.png b/gosa-core/doc/core/nl/lyx-source/images/certs.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/certs.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/closedlock.png b/gosa-core/doc/core/nl/lyx-source/images/closedlock.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/closedlock.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/conference.png b/gosa-core/doc/core/nl/lyx-source/images/conference.png
new file mode 100644
index 0000000..1c38f81
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/conference.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/copypaste.png b/gosa-core/doc/core/nl/lyx-source/images/copypaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/copypaste.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/crossref.png b/gosa-core/doc/core/nl/lyx-source/images/crossref.png
new file mode 100644
index 0000000..ec2ed78
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/crossref.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/cutpaste.png b/gosa-core/doc/core/nl/lyx-source/images/cutpaste.png
new file mode 100644
index 0000000..e514438
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/cutpaste.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/default.jpg b/gosa-core/doc/core/nl/lyx-source/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/default.jpg differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/default_icon.png b/gosa-core/doc/core/nl/lyx-source/images/default_icon.png
new file mode 100644
index 0000000..58d50d3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/default_icon.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/department.png b/gosa-core/doc/core/nl/lyx-source/images/department.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/department.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/dfs.png b/gosa-core/doc/core/nl/lyx-source/images/dfs.png
new file mode 100644
index 0000000..accbd8d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/dfs.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/dhcp.png b/gosa-core/doc/core/nl/lyx-source/images/dhcp.png
new file mode 100644
index 0000000..1360b6f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/dhcp.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/display.png b/gosa-core/doc/core/nl/lyx-source/images/display.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/display.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/dns.png b/gosa-core/doc/core/nl/lyx-source/images/dns.png
new file mode 100644
index 0000000..6a55d72
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/dns.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/drives.png b/gosa-core/doc/core/nl/lyx-source/images/drives.png
new file mode 100644
index 0000000..9cc127e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/drives.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/dtree.png b/gosa-core/doc/core/nl/lyx-source/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/dtree.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/edit.png b/gosa-core/doc/core/nl/lyx-source/images/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/edit.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/editcopy.png b/gosa-core/doc/core/nl/lyx-source/images/editcopy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/editcopy.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/editcut.png b/gosa-core/doc/core/nl/lyx-source/images/editcut.png
new file mode 100644
index 0000000..7ec355a
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/editcut.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/editdelete.png b/gosa-core/doc/core/nl/lyx-source/images/editdelete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/editdelete.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/editpaste.png b/gosa-core/doc/core/nl/lyx-source/images/editpaste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/editpaste.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/edittrash.png b/gosa-core/doc/core/nl/lyx-source/images/edittrash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/edittrash.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/email.png b/gosa-core/doc/core/nl/lyx-source/images/email.png
new file mode 100644
index 0000000..d53e620
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/email.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/empty.png b/gosa-core/doc/core/nl/lyx-source/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/empty.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/encrypted.png b/gosa-core/doc/core/nl/lyx-source/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/encrypted.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/env.png b/gosa-core/doc/core/nl/lyx-source/images/env.png
new file mode 100644
index 0000000..7b7bf37
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/env.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/envelope.png b/gosa-core/doc/core/nl/lyx-source/images/envelope.png
new file mode 100644
index 0000000..6053eed
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/envelope.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/expand.png b/gosa-core/doc/core/nl/lyx-source/images/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/expand.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai.png b/gosa-core/doc/core/nl/lyx-source/images/fai.png
new file mode 100644
index 0000000..f0a23d6
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_hook.png b/gosa-core/doc/core/nl/lyx-source/images/fai_hook.png
new file mode 100644
index 0000000..1930fb2
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_hook.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_hook.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_hook.png
new file mode 100644
index 0000000..f02e6a4
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_hook.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_packages.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_packages.png
new file mode 100644
index 0000000..15cad1e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_packages.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_partitionTable.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_partitionTable.png
new file mode 100644
index 0000000..9ac4600
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_partitionTable.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_profile.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_profile.png
new file mode 100644
index 0000000..6808820
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_profile.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_script.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_script.png
new file mode 100644
index 0000000..b8333c7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_script.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_template.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_template.png
new file mode 100644
index 0000000..9a88da9
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_template.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_new_variable.png b/gosa-core/doc/core/nl/lyx-source/images/fai_new_variable.png
new file mode 100644
index 0000000..d915c53
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_new_variable.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_packages.png b/gosa-core/doc/core/nl/lyx-source/images/fai_packages.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_packages.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_partitionTable.png b/gosa-core/doc/core/nl/lyx-source/images/fai_partitionTable.png
new file mode 100644
index 0000000..7e8d701
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_partitionTable.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_profile.png b/gosa-core/doc/core/nl/lyx-source/images/fai_profile.png
new file mode 100644
index 0000000..07391b6
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_profile.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_script.png b/gosa-core/doc/core/nl/lyx-source/images/fai_script.png
new file mode 100644
index 0000000..f8aaba2
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_script.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_small.png b/gosa-core/doc/core/nl/lyx-source/images/fai_small.png
new file mode 100644
index 0000000..fc716d0
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_small.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_template.png b/gosa-core/doc/core/nl/lyx-source/images/fai_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_template.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fai_variable.png b/gosa-core/doc/core/nl/lyx-source/images/fai_variable.png
new file mode 100644
index 0000000..d7915fe
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fai_variable.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/false.png b/gosa-core/doc/core/nl/lyx-source/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/false.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fax.png b/gosa-core/doc/core/nl/lyx-source/images/fax.png
new file mode 100644
index 0000000..3f58c36
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fax.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fax_small.png b/gosa-core/doc/core/nl/lyx-source/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fax_small.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/filesaveas.png b/gosa-core/doc/core/nl/lyx-source/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/filesaveas.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/flag.png b/gosa-core/doc/core/nl/lyx-source/images/flag.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/flag.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/folder.png b/gosa-core/doc/core/nl/lyx-source/images/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/folder.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/forward.png b/gosa-core/doc/core/nl/lyx-source/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/forward.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/ftp.png b/gosa-core/doc/core/nl/lyx-source/images/ftp.png
new file mode 100644
index 0000000..e5b5691
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/ftp.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/fullfolder.png b/gosa-core/doc/core/nl/lyx-source/images/fullfolder.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/fullfolder.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/gfx_hardware.png b/gosa-core/doc/core/nl/lyx-source/images/gfx_hardware.png
new file mode 100644
index 0000000..af9f6f7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/gfx_hardware.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/group.png b/gosa-core/doc/core/nl/lyx-source/images/group.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/group.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/hardware.png b/gosa-core/doc/core/nl/lyx-source/images/hardware.png
new file mode 100644
index 0000000..0ac401c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/hardware.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/hdd_linux_unmount.png b/gosa-core/doc/core/nl/lyx-source/images/hdd_linux_unmount.png
new file mode 100644
index 0000000..1b2e065
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/hdd_linux_unmount.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/head.png b/gosa-core/doc/core/nl/lyx-source/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/head.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/help.png b/gosa-core/doc/core/nl/lyx-source/images/help.png
new file mode 100644
index 0000000..9fe7652
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/help.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/hotplug.png b/gosa-core/doc/core/nl/lyx-source/images/hotplug.png
new file mode 100644
index 0000000..546c7af
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/hotplug.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/house.png b/gosa-core/doc/core/nl/lyx-source/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/house.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/img1.png b/gosa-core/doc/core/nl/lyx-source/images/img1.png
new file mode 100644
index 0000000..0388e82
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/img1.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/info.png b/gosa-core/doc/core/nl/lyx-source/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/info.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/info_small.png b/gosa-core/doc/core/nl/lyx-source/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/info_small.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/keyboard.png b/gosa-core/doc/core/nl/lyx-source/images/keyboard.png
new file mode 100644
index 0000000..cdc0306
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/keyboard.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/lamp.png b/gosa-core/doc/core/nl/lyx-source/images/lamp.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/lamp.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/launch.png b/gosa-core/doc/core/nl/lyx-source/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/launch.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/ldapserver.png b/gosa-core/doc/core/nl/lyx-source/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/ldapserver.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/ldif.png b/gosa-core/doc/core/nl/lyx-source/images/ldif.png
new file mode 100644
index 0000000..ca164a1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/ldif.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_back.png b/gosa-core/doc/core/nl/lyx-source/images/list_back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_back.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_blocklist.png b/gosa-core/doc/core/nl/lyx-source/images/list_blocklist.png
new file mode 100644
index 0000000..d89fd1d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_blocklist.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_home.png b/gosa-core/doc/core/nl/lyx-source/images/list_home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_home.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_macro.png b/gosa-core/doc/core/nl/lyx-source/images/list_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_macro.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new.png b/gosa-core/doc/core/nl/lyx-source/images/list_new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_app.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_app.png
new file mode 100644
index 0000000..b7fa9d3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_app.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_blocklist.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_blocklist.png
new file mode 100644
index 0000000..971867e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_blocklist.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_conference.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_conference.png
new file mode 100644
index 0000000..ee9cf5f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_conference.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_department.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_department.png
new file mode 100644
index 0000000..35e5b4c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_department.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_group.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_group.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_group.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_macro.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_macro.png
new file mode 100644
index 0000000..f2a6581
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_macro.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_ogroup.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_ogroup.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_ogroup.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_new_user.png b/gosa-core/doc/core/nl/lyx-source/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_new_user.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_ogroup.png b/gosa-core/doc/core/nl/lyx-source/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_ogroup.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_password.png b/gosa-core/doc/core/nl/lyx-source/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_password.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_reload.png b/gosa-core/doc/core/nl/lyx-source/images/list_reload.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_reload.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_root.png b/gosa-core/doc/core/nl/lyx-source/images/list_root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_root.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_seperator.png b/gosa-core/doc/core/nl/lyx-source/images/list_seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_seperator.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_submit.png b/gosa-core/doc/core/nl/lyx-source/images/list_submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_submit.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/list_up.png b/gosa-core/doc/core/nl/lyx-source/images/list_up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/list_up.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/log_critical.png b/gosa-core/doc/core/nl/lyx-source/images/log_critical.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/log_critical.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/log_info.png b/gosa-core/doc/core/nl/lyx-source/images/log_info.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/log_info.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/log_unknown.png b/gosa-core/doc/core/nl/lyx-source/images/log_unknown.png
new file mode 100644
index 0000000..4ed65a9
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/log_unknown.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/log_warning.png b/gosa-core/doc/core/nl/lyx-source/images/log_warning.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/log_warning.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/login.png b/gosa-core/doc/core/nl/lyx-source/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/login.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/logview.png b/gosa-core/doc/core/nl/lyx-source/images/logview.png
new file mode 100644
index 0000000..122f642
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/logview.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/macros.png b/gosa-core/doc/core/nl/lyx-source/images/macros.png
new file mode 100644
index 0000000..a9100e7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/macros.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailq_active.png b/gosa-core/doc/core/nl/lyx-source/images/mailq_active.png
new file mode 100644
index 0000000..de65ee1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailq_active.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailq_header.png b/gosa-core/doc/core/nl/lyx-source/images/mailq_header.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailq_header.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailq_hold.png b/gosa-core/doc/core/nl/lyx-source/images/mailq_hold.png
new file mode 100644
index 0000000..2083104
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailq_hold.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailq_requeue.png b/gosa-core/doc/core/nl/lyx-source/images/mailq_requeue.png
new file mode 100644
index 0000000..5c6a26d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailq_requeue.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailq_unhold.png b/gosa-core/doc/core/nl/lyx-source/images/mailq_unhold.png
new file mode 100644
index 0000000..d07edf3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailq_unhold.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailqueue.png b/gosa-core/doc/core/nl/lyx-source/images/mailqueue.png
new file mode 100644
index 0000000..9b88a59
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailqueue.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mailto.png b/gosa-core/doc/core/nl/lyx-source/images/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mailto.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mainboard.png b/gosa-core/doc/core/nl/lyx-source/images/mainboard.png
new file mode 100644
index 0000000..e6fc340
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mainboard.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/members.png b/gosa-core/doc/core/nl/lyx-source/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/members.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/memory.png b/gosa-core/doc/core/nl/lyx-source/images/memory.png
new file mode 100644
index 0000000..6ddeddb
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/memory.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/monitor.png b/gosa-core/doc/core/nl/lyx-source/images/monitor.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/monitor.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/monitoring.png b/gosa-core/doc/core/nl/lyx-source/images/monitoring.png
new file mode 100644
index 0000000..b636ff0
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/monitoring.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/mouse.png b/gosa-core/doc/core/nl/lyx-source/images/mouse.png
new file mode 100644
index 0000000..3c0d31d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/mouse.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/net_hardware.png b/gosa-core/doc/core/nl/lyx-source/images/net_hardware.png
new file mode 100644
index 0000000..72567f6
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/net_hardware.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/netatalk.png b/gosa-core/doc/core/nl/lyx-source/images/netatalk.png
new file mode 100644
index 0000000..19ab924
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/netatalk.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/network.png b/gosa-core/doc/core/nl/lyx-source/images/network.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/network.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/null.gif b/gosa-core/doc/core/nl/lyx-source/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/null.gif differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/ogroup.png b/gosa-core/doc/core/nl/lyx-source/images/ogroup.png
new file mode 100644
index 0000000..29d351f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/ogroup.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/openlock.png b/gosa-core/doc/core/nl/lyx-source/images/openlock.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/openlock.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/password.png b/gosa-core/doc/core/nl/lyx-source/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/password.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/penguin.png b/gosa-core/doc/core/nl/lyx-source/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/penguin.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/personal.png b/gosa-core/doc/core/nl/lyx-source/images/personal.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/personal.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/phone.png b/gosa-core/doc/core/nl/lyx-source/images/phone.png
new file mode 100644
index 0000000..a301fba
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/phone.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/phonereport.png b/gosa-core/doc/core/nl/lyx-source/images/phonereport.png
new file mode 100644
index 0000000..702b898
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/phonereport.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/posix.png b/gosa-core/doc/core/nl/lyx-source/images/posix.png
new file mode 100644
index 0000000..e8d33ab
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/posix.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/printer.png b/gosa-core/doc/core/nl/lyx-source/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/printer.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/processor.png b/gosa-core/doc/core/nl/lyx-source/images/processor.png
new file mode 100644
index 0000000..b7dc9b4
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/processor.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/proxy.png b/gosa-core/doc/core/nl/lyx-source/images/proxy.png
new file mode 100644
index 0000000..d8cd426
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/proxy.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/reports.png b/gosa-core/doc/core/nl/lyx-source/images/reports.png
new file mode 100644
index 0000000..1d47237
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/reports.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/rightarrow.png b/gosa-core/doc/core/nl/lyx-source/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/rightarrow.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/rocket.png b/gosa-core/doc/core/nl/lyx-source/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/rocket.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/samba.png b/gosa-core/doc/core/nl/lyx-source/images/samba.png
new file mode 100644
index 0000000..861e43c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/samba.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/save.png b/gosa-core/doc/core/nl/lyx-source/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/save.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/scanner.png b/gosa-core/doc/core/nl/lyx-source/images/scanner.png
new file mode 100644
index 0000000..627540c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/scanner.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/search.png b/gosa-core/doc/core/nl/lyx-source/images/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/search.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/search_user.png b/gosa-core/doc/core/nl/lyx-source/images/search_user.png
new file mode 100644
index 0000000..1c164f4
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/search_user.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_application.png b/gosa-core/doc/core/nl/lyx-source/images/select_application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_application.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_component.png b/gosa-core/doc/core/nl/lyx-source/images/select_component.png
new file mode 100644
index 0000000..ef289f6
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_component.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_conference.png b/gosa-core/doc/core/nl/lyx-source/images/select_conference.png
new file mode 100644
index 0000000..f331bfe
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_conference.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_default.png b/gosa-core/doc/core/nl/lyx-source/images/select_default.png
new file mode 100644
index 0000000..83f3752
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_default.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_department.png b/gosa-core/doc/core/nl/lyx-source/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_department.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_groups.png b/gosa-core/doc/core/nl/lyx-source/images/select_groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_groups.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_invalid_application.png b/gosa-core/doc/core/nl/lyx-source/images/select_invalid_application.png
new file mode 100644
index 0000000..a008801
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_invalid_application.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_macro.png b/gosa-core/doc/core/nl/lyx-source/images/select_macro.png
new file mode 100644
index 0000000..10d2a2d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_macro.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_netatalk.png b/gosa-core/doc/core/nl/lyx-source/images/select_netatalk.png
new file mode 100644
index 0000000..e589720
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_netatalk.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_component.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_component.png
new file mode 100644
index 0000000..d26a3ee
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_component.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_phone.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_phone.png
new file mode 100644
index 0000000..45714d1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_phone.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_printer.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_printer.png
new file mode 100644
index 0000000..e4618fe
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_printer.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_server.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_server.png
new file mode 100644
index 0000000..84f6570
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_server.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_terminal.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_terminal.png
new file mode 100644
index 0000000..a218480
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_terminal.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_new_workstation.png b/gosa-core/doc/core/nl/lyx-source/images/select_new_workstation.png
new file mode 100644
index 0000000..8b5d4f4
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_new_workstation.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_newsystem.png b/gosa-core/doc/core/nl/lyx-source/images/select_newsystem.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_newsystem.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_ogroup.png b/gosa-core/doc/core/nl/lyx-source/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_ogroup.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_phone.png b/gosa-core/doc/core/nl/lyx-source/images/select_phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_phone.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_phone_connected.png b/gosa-core/doc/core/nl/lyx-source/images/select_phone_connected.png
new file mode 100644
index 0000000..bd8c739
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_phone_connected.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_printer.png b/gosa-core/doc/core/nl/lyx-source/images/select_printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_printer.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_proxy.png b/gosa-core/doc/core/nl/lyx-source/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_proxy.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_server.png b/gosa-core/doc/core/nl/lyx-source/images/select_server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_server.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_template.png b/gosa-core/doc/core/nl/lyx-source/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_template.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_terminal.png b/gosa-core/doc/core/nl/lyx-source/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_terminal.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_user.png b/gosa-core/doc/core/nl/lyx-source/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_user.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_winstation.png b/gosa-core/doc/core/nl/lyx-source/images/select_winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_winstation.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/select_workstation.png b/gosa-core/doc/core/nl/lyx-source/images/select_workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/select_workstation.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/server.png b/gosa-core/doc/core/nl/lyx-source/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/server.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/service.png b/gosa-core/doc/core/nl/lyx-source/images/service.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/service.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/small_filter.png b/gosa-core/doc/core/nl/lyx-source/images/small_filter.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/small_filter.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/smallenv.png b/gosa-core/doc/core/nl/lyx-source/images/smallenv.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/smallenv.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/snd_hardware.png b/gosa-core/doc/core/nl/lyx-source/images/snd_hardware.png
new file mode 100644
index 0000000..e1c25e7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/snd_hardware.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/sort_down.png b/gosa-core/doc/core/nl/lyx-source/images/sort_down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/sort_down.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/sort_up.png b/gosa-core/doc/core/nl/lyx-source/images/sort_up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/sort_up.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/sound.png b/gosa-core/doc/core/nl/lyx-source/images/sound.png
new file mode 100644
index 0000000..cc030d3
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/sound.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/stop.png b/gosa-core/doc/core/nl/lyx-source/images/stop.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/stop.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/system.png b/gosa-core/doc/core/nl/lyx-source/images/system.png
new file mode 100644
index 0000000..c3308ee
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/system.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/terminal_small.png b/gosa-core/doc/core/nl/lyx-source/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/terminal_small.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/time.png b/gosa-core/doc/core/nl/lyx-source/images/time.png
new file mode 100644
index 0000000..1de43d5
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/time.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/tree.png b/gosa-core/doc/core/nl/lyx-source/images/tree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/tree.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/true.png b/gosa-core/doc/core/nl/lyx-source/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/true.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/user.png b/gosa-core/doc/core/nl/lyx-source/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/user.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/warning.png b/gosa-core/doc/core/nl/lyx-source/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/warning.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/images/zip.png b/gosa-core/doc/core/nl/lyx-source/images/zip.png
new file mode 100644
index 0000000..af23ddf
Binary files /dev/null and b/gosa-core/doc/core/nl/lyx-source/images/zip.png differ
diff --git a/gosa-core/doc/core/nl/lyx-source/users.lyx b/gosa-core/doc/core/nl/lyx-source/users.lyx
new file mode 100644
index 0000000..7e96bb4
--- /dev/null
+++ b/gosa-core/doc/core/nl/lyx-source/users.lyx
@@ -0,0 +1,2920 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language frenchb
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single 
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 10mm
+\topmargin 10mm
+\rightmargin 10mm
+\bottommargin 20mm
+\headheight 10mm
+\headsep 10mm
+\footskip 10mm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\bullet 0
+	1
+	20
+	-1
+\end_bullet
+\bullet 1
+	1
+	20
+	-1
+\end_bullet
+\bullet 2
+	1
+	20
+	-1
+\end_bullet
+\bullet 3
+	1
+	20
+	4
+\end_bullet
+
+\layout Title
+
+
+\series bold 
+Gebruikers beheer
+\layout Section
+
+Gebruikerslijst
+\layout Standard
+
+De beheerder kan account informatie aanmaken, veranderen of bekijken door
+ op de 
+\series bold 
+\color blue
+Gebruikers
+\series default 
+\color default
+ knop in het 
+\series bold 
+Beheer
+\series default 
+ menu aan de linkerkant te klikken.
+ De
+\family sans 
+\color black
+ Gebruikers Beheer
+\family default 
+\color default
+ pagina die getoond wordt, is het uitgangspunt voor alle account beheertaken
+ en is verdeeld in drie kolommen.
+\layout Itemize
+
+De eerste kolom bevat de namen van de gebruikers en de afdelingen waarbinnen
+ zij ingedeeld zijn (alfabetisch gesorteerd).
+\layout Itemize
+
+De tweede kolom bevat knoppen voor snelle toegang tot verschillende account
+ eigenschappen van de gebruiker (alleen beschikbaar indien de betreffende
+ eigenschap geactiveerd is).
+ Daarnaast dient deze kolom voor een snel overzicht van geactiveerde eigenschapp
+en van het account van de gebruiker.
+\begin_deeper 
+\layout Itemize
+
+De mogelijke iconen en hun betekenis:
+\newline 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="9" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Icoon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Betekenis
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/penguin.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over algemene eigenschappen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_user.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een UNIX account
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/smallenv.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over Omgevings instellingen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/mailto.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een E-mail account
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_phone.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een Telefoon account
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/fax_small.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een Fax account
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_winstation.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een Samba/Windows account
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+	filename images/select_netatalk.png
+
+\end_inset 
+
+
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gebruiker beschikt over een Netatalk account
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\end_deeper 
+\layout Itemize
+
+De derde kolom bevat knoppen voor de beschikbare acties (knippen, kopieren,
+ bewerken, verwijderen, wachtwoord)
+\layout Standard
+
+De knoppen (
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+, 
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+) dienen voor navigatie binnen de afdelingshierarchie:
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_root.png
+
+\end_inset 
+
+ Helemaal naar boven (hoofd afdeling)
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_back.png
+
+\end_inset 
+
+ Een afdeling naar boven
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_home.png
+
+\end_inset 
+
+ Naar de basis van de gebruiker
+\layout Itemize
+
+
+\begin_inset Graphics
+	filename images/list_reload.png
+
+\end_inset 
+
+ Huidige afdeling verversen
+\layout Standard
+
+Daarnaast is het mogelijk de weergave van gebruikers met behulp van filters
+ te beinvloeden (
+\color black
+met 
+\series bold 
+Filters
+\series default 
+ 
+\begin_inset Graphics
+	filename images/rocket.png
+
+\end_inset 
+
+ aan de rechter zijde):
+\layout Itemize
+
+Op namen zoeken:
+\begin_deeper 
+\layout Itemize
+
+Door op * (asterisk) te klikken worden alle namen getoond
+\layout Itemize
+
+Het klikken van een letter, laat alle gebruikers zien waarvan de naam met
+ de betreffende letter begint
+\layout Itemize
+
+Het klikken van een cijfer, laat alle gebruikers zien waarvan de naam met
+ het betreffende cijfer begint
+\end_deeper 
+\layout Itemize
+
+Verder zoekopties:
+\newline 
+(De volgende filters werken zodanig dat alleen gebruikers getoond worden,
+ die over tenminste een van de geselecteerde opties beschikken; Standaard
+ worden alle echte gebruikers getoond; ofwel geen sjablonen)
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Toon sjablonen:
+\emph default 
+ Toont sjablonen voor gebruikers (standaard uitgeschakeld)
+\layout Itemize
+
+
+\emph on 
+Toon functionele gebruikers:
+\emph default 
+ Gebruikers die alleen over de algemene informatie beschikken
+\layout Itemize
+
+
+\emph on 
+Toon Unix gebruikers:
+\emph default 
+ Gebruikers die over Unix mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon E-mail gebruikers:
+\emph default 
+ Gebruikers die over E-mail mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon Samba gebruikers:
+\emph default 
+ Gebruikers die over Samba/Windows mogelijkheden beschikken
+\layout Itemize
+
+
+\emph on 
+Toon Proxy gebruikers:
+\emph default 
+ Gebruikers die over een proxy account beschikken
+\end_deeper 
+\layout Itemize
+
+
+\color black
+Daarnaast kan de lijst met behulp van delen van namen en complexere reguliere
+ expressies verder beperkt worden met behulpt van
+\color default
+ het invoerveld achter het icoon 
+\begin_inset Graphics
+	filename images/search.png
+
+\end_inset 
+
+.
+ In dit veld kunt u cijfer en letter combinaties invoeren om de lijst verder
+ te beperken.
+ Om uw selectie door te voeren dient u op de knop
+\emph on 
+ Filter toepassen
+\emph default 
+ te drukken.
+\layout Subsection*
+
+Gebruikersaccount aanmaken
+\layout Standard
+
+Om een nieuw account aan te maken klikt u op de knop 
+\begin_inset Graphics
+	filename images/list_new_user.png
+
+\end_inset 
+
+.
+ Volg de instructies op die gegeven worden bij het aanmaken van het account.
+ Op het einde van het aanmaken, dient u een wachtwoord op te geven voor
+ het nieuwe account.
+\layout Subsubsection*
+
+Een bestaand account bewerken
+\layout Standard
+
+Klik binnen de gebruikerslijst op de gebruikersnaam van de te bewerken gebruiker.
+ De pagina die nu geladen wordt, bevat tabbladen die voor account mogelijkheden
+ staan (momenteel zijn dat bijvoorbeeld Algemeen, Unix, Omgeving etc.)
+\layout Subsubsection*
+
+Algemene informatie
+\layout Itemize
+
+Om het bewerken van gebruikers (ook nieuwe gebruikers) af te sluiten en
+ op te slaan, dient u op de knop Opslaan rechtsonder te drukken.
+ Om de bewerkingen ongedaan te maken, drukt u op de knop annuleren, die
+ u ook rechtsonder vindt.
+\layout Itemize
+
+Alle invoervelden met een rode asterisk (*) zijn verplichte velden.
+ Deze velden moeten pers� ingevuld worden.
+\layout Itemize
+
+In de rechter bovenhoek vindt u de volledige DN (unieke LDAP naam) van de
+ gebruiker die momenteel bewerkt wordt.
+\layout Subsection
+\pagebreak_top 
+Algemeen
+\layout Subsubsection
+
+Persoonlijke informatie
+\layout Standard
+\added_space_bottom medskip 
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="16" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Achternaam
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De achternaam van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Voornaam
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De voornaam van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Inlognaam
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De naam waarmee de gebruiker inlogt
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Aanhef
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De aanhef van de gebruiker (Bijv.
+ Meneer, Dhr, Mevrouw)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Academische titel
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De academische titel van de gebruiker (Bijv.
+ Dr., Ing, Mr)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geboortedatum
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Klik op de knop 
+\emph on 
+Stel in
+\emph default 
+ om een keuzelijst te laten verschijnen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geslacht
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Maak uw keuze uit de lijst voor het geslacht van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Voorkeurstaal
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Maak uw keuze uit de lijst voor de voorkeurstaal van de gebruiker (nl_NL=Nederla
+nds, en_EN=Engels, etc)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Basis
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De afdeling van de gebruiker (het aanmaken van de afdeling kan door middel
+ van de 
+\series bold 
+\color blue
+afdelingen
+\series default 
+\color default
+ knop in het linkermenu van het beheer onderdeel).
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Plaatje
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Om een foto of plaatje van de gebruiker op te slaan, drukt op de knop 
+\emph on 
+Verander plaatje...
+
+\emph default 
+ Selecteer de gewenste afbeelding.
+ De afbeelding wordt nu getoond.
+ Om de keuze vast te leggen, drukt u op de knop 
+\emph on 
+Opslaan
+\emph default 
+.
+ Indien u de afbeelding niet wenst op te slaan, drukt u op de knop 
+\emph on 
+Annuleren
+\emph default 
+.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adres
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het priv� adres van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefoon priv�
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het priv� telefoonnummer van de gebruiker.
+ U dient dit volgens het internationale formaat in te voeren.
+ Bijvoorbeeld +31 40 2390740
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Homepage
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De URL van de homepage van de gebruiker (bijv.
+ http://www.careworks.nl)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wachtwoord encryptie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De manier waarop het wachtwoord intern versleuteld opgeslagen wordt.
+ Maak uw keuze door uit de lijst te selecteren
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Certificaten
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Klik op de knop 
+\emph on 
+Bewerk certificaten...
+
+\emph default 
+ om de certificaten van de gebruiker te beheren.
+ Met GOsa kunt u drie types certificaten importeren.
+ Klik op
+\emph on 
+ Opslaan 
+\emph default 
+om te beeindigen.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kerberos
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Klik op de knop 
+\emph on 
+Bewerk eigenschappen
+\emph default 
+ om Kerberos eigenschappen te bewerken.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Organisatie informatie
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="13" columns="2">
+<features>
+<column alignment="left" valignment="top" leftline="true" width="5cm">
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Organisatie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De naam van de organisatie (bijv.
+ CareWorks)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Afdeling
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De naam van de afdeling (bijv.
+ Administratie)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Afdeling nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het nummer van de afdeling (bijv.
+ 21)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Personeel nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het personeelsnummer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Functie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De functie van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kamer nr.
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het kamernummer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefoon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het telefoonnumer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+GSM
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het GSM nummer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pieper
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het pieper nummer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het fax nummer van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Plaats
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De plaats van het kantoor of afdeling van de medewerker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Provincie
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De provincie waar het kantoor of de afdeling van de medewerker zich bevindt
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Adres
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het postadres van het kantoor of de afdeling van de medewerker
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsection
+\added_space_top bigskip 
+Unix
+\layout Standard
+
+U dient op de knop 
+\shape italic 
+POSIX Account toevoegen
+\shape default 
+ te drukken om een UNIX account te activeren voor de gebruiker
+\shape italic 
+.
+\layout Subsubsection
+
+Algemeen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Persoonlijke map
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het pad naar de persoonlijke map van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Shell
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De Unix shell die gebruikt dient te worden bij het aanmelden van de gebruiker.
+ (/bin/false of /bin/true zorgt ervoor dat de gebruiker niet in kan loggen
+ op een UNIX systeem).
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Primaire groep
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De primaire groep van de gebruiker.
+ (Voor de aanmaak van groepen, gaat u naar het 
+\series bold 
+Beheer
+\series default 
+ onderdeel en klikt u op de
+\series bold 
+\color blue
+ Groepen
+\series default 
+\color default
+ knop)
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Status
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geeft aan of het account actief is of niet
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Forceer UID/GID
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hiermee kunt u de UID/GID van een gebruiker naar een bepaalde waarde forceren.
+ Gebruik deze optie alleen indien u weet wat u doet en verzeker uzelf ervan
+ dat de opgegeven waardes niet vergeven zijn!
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Groep lidmaatschap
+\layout Standard
+
+Gebruik de knoppen 
+\emph on 
+Toevoegen
+\emph default 
+ en 
+\emph on 
+Verwijderen
+\emph default 
+ om de gebruiker aan groepen toe te voegen of van groepen te verwijderen.
+ De knop 
+\emph on 
+Toevoegen
+\emph default 
+ geeft de lijst met groepen die door de systeembeheerder aangemaakt zijn
+ weer.
+ De gebruiker kan lid zijn van een of meerdere groepen.
+ De gebruiker is sowieso lid van de primaire groep.
+ De primaire groep hoeft dan ook niet hier nogmaals gekozen te worden.
+\layout Subsubsection
+\added_space_top medskip 
+Account
+\layout Standard
+
+Dit onderdeel gaat over het beheer van het wachtwoord van de gebruiker (dit
+ betreft vanzelfsprekend alleen het UNIX account van de gebruiker).
+ Let erop dat u geen conflicterende opties selecteert, aangezien dit het
+ account van de gebruiker effectief onbruikbaar kan maken:
+\layout Itemize
+
+
+\emph on 
+Het wachtwoord moet bij de eerste aanmelding gewijzigd worden:
+\emph default 
+ Met deze optie wordt afgedwongen dat de gebruiker bij de eerst volgende
+ aanmelding direct het wachtwoord moet veranderen.
+\layout Itemize
+
+
+\emph on 
+Het wachtwoord kan pas [Aantal] dag(en) na de laatste wijziging gewijzigd
+ worden: 
+\emph default 
+Hiermee wordt afgedwongen dat een gebruiker niet onbeperkt het wachtwoord
+ kan veranderen.
+ [Aantal] geeft het aantal dagen aan, waarbinnen de gebruiker het wachtwoord
+ niet kan wijzigen sinds de vorige wachtwoord wijziging.
+\layout Itemize
+
+
+\emph on 
+Het wachtwoord moet na [Aantal] dag(en) gewijzigd worden:
+\emph default 
+ Met deze optie verplicht u de gebruiker om na [Aantal] dagen het wachtwoord
+ te veranderen, omdat anders het account geblokeerd wordt.
+ Gebruikers worden van te voren op de hoogte gesteld van het verlopen van
+ het wachtwoord.
+\layout Itemize
+
+
+\emph on 
+Wachtwoord verloopt op [Datum]:
+\emph default 
+ Indien u deze optie instelt, dan kan de gebruiker niet meer inloggen met
+ het huidige wachtwoord vanaf [Datum].
+\layout Itemize
+
+
+\emph on 
+Blokkeer het account na [Aantal] dag(en) inactiviteit nadat het wachtwoord
+ verlopen is:
+\emph default 
+ Zodra er gedurende [Aantal] dagen inactiviteit is van het account (geen
+ inloggen van de gebruiker dus), na het verlopen van het wachtwoord, wordt
+ het account geblokkeerd en kan de gebruiker niet meer inloggen.
+\layout Itemize
+
+
+\emph on 
+Waarschuw de gebruiker [Aantal] dagen voordat het wachtwoord verloopt:
+\emph default 
+ De gebruiker krijgt vanaf [Aantal] dagen, voordat het wachtwoord verloopt
+ een waarschuwing dat het wachtwoord op de ingestelde datum verloopt.
+\layout Subsubsection
+\added_space_top medskip 
+System vertrouwen
+\layout Standard
+
+Systeem vertrouwen wordt gebruikt om toegang tot verschillende Unix systemen
+ en apparaten door de gebruiker te beheren en/of in te perken.
+\layout Standard
+
+De vertrouwensmodus kan als volgt ingesteld worden:
+\layout Itemize
+
+
+\emph on 
+gedeactiveerd:
+\emph default 
+ De gebruiker kan zich op alle UNIX systemen aanmelden.
+ 
+\layout Itemize
+
+
+\emph on 
+volledige toegang:
+\emph default 
+ De gebruiker kan zich op alle UNIX systemen aanmelden.
+\layout Itemize
+
+sta toegang op deze computers toe: De gebruiker mag zich alleen op de opgegeven
+ UNIX systemen aanmelden.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Toevoegen:
+\emph default 
+ Klik op de knop 
+\emph on 
+Toevoegen
+\emph default 
+ om UNIX computers toe te voegen, waarop de gebruiker in mag loggen.
+ Let op dat alleen UNIX computers die bekend zijn binnen het systeem voor
+ zullen komen in deze lijst.
+ Druk op de knop 
+\emph on 
+Annuleren
+\emph default 
+ om de selectie af te breken.
+\layout Itemize
+
+
+\emph on 
+Verwijderen
+\emph default 
+: Selecteer een of meerdere UNIX computers uit de reeds bestaande computers
+ waartoe de gebruiker toegang heeft en druk op de knop 
+\emph on 
+Verwijderen
+\emph default 
+, om de gebruiker toegang tot deze computers te ontnemen.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Omgeving
+\layout Standard
+
+Click on the button 
+\shape italic 
+add an environment extension 
+\emph on 
+to
+\shape default 
+\emph default 
+ activate the configuration space.
+\layout Subsubsection
+
+Profielen
+\layout Subsubsection
+\added_space_top medskip 
+Kiosk profiel
+\layout Subsubsection
+\added_space_top medskip 
+Inlog scripts
+\layout Subsubsection
+\added_space_top medskip 
+Share verbinden
+\layout Subsubsection
+\added_space_top medskip 
+Hotplug apparaten
+\layout Subsubsection
+\added_space_top medskip 
+Printer
+\layout Subsection
+\added_space_top bigskip 
+E-mail
+\layout Standard
+
+Het E-mail account is gekoppeld aan de E-mail server.
+ Om het E-mail account te activeren dient u op de knop 
+\shape italic 
+E-mail account aanmaken
+\shape default 
+ te drukken.
+\layout Subsubsection
+
+Algemeen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\color black
+Primair adres
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het E-mail adres van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Server
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Selecteer de server waar het E-mail account van de gebruiker opgeslagen
+ dient te worden
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota gebruik
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geeft de huidig gebruikte en beschikbare opslagruimte van de gebruiker aan
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Quota grootte
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De maximale grootte van de Mailbox
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Alternatieve adressen
+\layout Standard
+
+Alternatieve adressen zijn E-mail adressen waaronder de gebruiker ook E-mail
+ kan ontvangen.
+ De E-mail die naar deze adressen verstuurd worden, zullen opgeslagen worden
+ onder het account dat opgegeven is bij het primaire adres.
+ Gebruik de knop 
+\emph on 
+Toevoegen
+\emph default 
+ om aliasen toe te voegen en de knop 
+\emph on 
+Verwijderen
+\emph default 
+ om een alias te verwijderen.
+ Let erop dat de gebruikte domein componenten in de aliasen wel door de
+ opgegeven mailserver ontvangen kunnen worden.
+ Het heeft bijvoorbeeld geen enkele zin om een hotmail account als alias
+ op te geven, simpelweg omdat E-mail gericht aan hotmail adressen, nooit
+ aan zullen komen op uw E-mail server
+\layout Subsubsection
+\added_space_top medskip 
+E-mail opties
+\layout Standard
+
+Beheer van de E-mail opties voor de gebruiker:
+\layout Itemize
+
+
+\emph on 
+Geen aflevering in eigen mailbox:
+\emph default 
+ Stuur alle E-mail voor dit adres door naar het adres of de adressen in
+ het 
+\emph on 
+Stuur berichten door naar 
+\emph default 
+deel.
+ Er vindt geen aflevering in de eigen mailbox plaats.
+\layout Itemize
+
+
+\emph on 
+Activeer afwezigheidsbericht:
+\emph default 
+ Verstuur het bericht dat opgegeven is in het 
+\shape italic 
+\color black
+Afwezigheidsbericht
+\shape default 
+\color default
+ onderdeel naar de afzender van een E-mail bericht, zodra dit bericht ontvangen
+ wordt.
+\layout Itemize
+
+
+\emph on 
+Verplaats E-mail met een spam nivo groter dan [Nivo] naar map [Map]:
+\emph default 
+ Verplaats E-mails met een spam nivo groter dan [Nivo] bij ontvangst op
+ de mail server naar E-mail map [Map].
+ Zodra een E-mail binnenkomt bij de mailserver, wordt deze voorzien van
+ een spam indicatie.
+ Deze spamindicatie wordt o.a.
+ aangegeven door een cijfer.
+ Dit cijfer representeert de waarschijnlijkheid dat het bericht een SPAM
+ bericht is.
+ Hoe hoger dit cijfer, hoe groter de kans dat het een SPAM bericht betreft.
+ Normaliter kunt u er vanuit gaan dat een bericht met een cijfer vanaf 5
+ een SPAM bericht betreft.
+ Stel deze optie niet te laag in, aangezien u anders het risico loopt op
+ normale E-mail berichten automatisch te laten verplaatsen naar uw SPAM
+ map, waardoor de kans ontstaat dat het bericht aan uw aandacht ontsnapt!
+\layout Itemize
+
+
+\emph on 
+Wijs E-mail af indien groter dan [Grootte] MB:
+\emph default 
+ Wij E-mail af die groter zijn dan [Grootte] MB.
+ Dit betekent dat de gebruiker geen E-mail kan ontvangen die groter is dan
+ [Grootte] MB.
+\layout Itemize
+
+Gebruik de 
+\emph on 
+Toevoegen
+\emph default 
+ of 
+\emph on 
+Lokaal toevoegen
+\emph default 
+\color black
+ knoppen om binnengekomen E-mail bericht door te sturen naar andere E-mail
+ adressen (bijv Telefoon, PDA etc.): 
+\begin_deeper 
+\layout Standard
+
+
+\color black
+- De 
+\emph on 
+Lokkaal toevoegen
+\emph default 
+ knop wordt gebruikt om te kiezen uit in het systeem bekende E-mail adressen.
+ 
+\layout Standard
+
+
+\color black
+- De 
+\emph on 
+Toevoegen
+\emph default 
+ knop om externe adressen te kiezen.
+\layout Standard
+
+
+\color black
+- De 
+\emph on 
+Verwijderen
+\emph default 
+ knop om E-mail doorstuur adressen te verwijderen.
+\end_deeper 
+\layout Subsubsection
+\added_space_top medskip 
+Geavanceerde E-mail opties
+\layout Itemize
+
+De gebruiker mag alleen lokale E-mails versturen en ontvangen: Hiermee kan
+ de beheerder opgeven dat de gebruiker alleen binnen het eigen domein/organisati
+e E-mail mag versturen en ontvangen.
+ Dit betekent dat de gebruiker niet naar externe personen kan E-mailen of
+ E-mail van externe personen kan ontvangen.
+\layout Itemize
+
+Gebruik een eigen sieve script : De gebruiker kan een eigen sieve scripts
+ schrijven om mailbox filtering te beheren.
+ 
+\emph on 
+Let op! 
+\shape italic 
+\emph default 
+Dit schakelt alle E-mail opties uit
+\shape default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Samba
+\layout Standard
+
+Om een Samba / Windows account aan te maken voor de gebruiker, klikt u op
+ de knop 
+\emph on 
+Samba account toevoegen
+\emph default 
+.
+\layout Subsubsection
+
+Algemeen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Persoonlijke map
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het pad naar de persoonlijke map van de gebruiker over het netwerk in UNC
+ notatie (bijv.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+gebruikersnaam).
+ Selecteer de stationsletter uit de lijst om op te geven met welk station
+ de persoonlijke map verbonden moet worden bij het inloggen van de gebruiker.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Domein
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het Windows domein waarbinnen de gebruiker valt.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Inlogscript
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het script dat op het werkstation van de gebruiker uitgevoerd wordt, bij
+ het inloggen van de gebruiker.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profielpad
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het pad op een server in UNC notatie, waar het zwervende profiel van de
+ gebruiker zich bevindt (bijv.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+profiles
+\backslash 
+gebruikersnaam).
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Terminal Server
+\layout Itemize
+
+
+\emph on 
+Sta inloggen op de terminal server toe
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Persoonlijke map
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path of the user's home directory in notation UNC ex: 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+user.
+ Choose on the scroll list the letter associated to the user's home directory.Het
+ pad naar de persoonlijke map van de gebruiker over het netwerk in UNC notatie
+ (bijv.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+homes
+\backslash 
+gebruikersnaam).
+ Selecteer de stationsletter uit de lijst om op te geven met welk station
+ de persoonlijke map verbonden moet worden bij het inloggen van de gebruiker.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Profile pathProfielpad
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Mention the path to the user profileHet pad op een server in UNC notatie,
+ waar het zwervende profiel van de gebruiker zich bevindt (bijv.
+ 
+\backslash 
+
+\backslash 
+SERVER
+\backslash 
+profiles
+\backslash 
+gebruikersnaam).
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Client configuratie voor initieel programma overnemen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Initi�el programma
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het programma dat bij het starten van de sessie uitgevoerd moet worden
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Werkdirectory
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De werkmap waarbinnen het initiele programma uitgevoerd wordt
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+ 
+\layout Itemize
+
+
+\emph on 
+Terminal Service timeouts (in minuten):
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Max.
+ verbindingsduur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De maximale duur dat een gebruiker verbonden mag zijn.
+ Na het verstrijken van deze duur wordt de sessie verbroken.
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Max.
+ verbrekingsduur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Een niet verbonden sessie van de gebruiker wordt na verstrijken van deze
+ duur automatisch be�indigd.
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Max.
+ inactiviteitsduur
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Een verbonden maar inactieve sessie van de gebruiker wordt na verstrijken
+ van deze duur automatisch be�indigd.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+
+
+\emph on 
+Terminal Service client apparaten:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Verbindt client schijven bij inloggen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Verbindt lokale schijven van de Client als netwerkschijven bij inloggen
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Verbindt client printers bij inloggen
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Verbindt de lokale printer van de Client als netwerkprinter bij het inloggen
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Standaard printer als client printer
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+De lokale standaard printer van de Client als standaard printer gebruiken
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Itemize
+\added_space_top medskip 
+
+\emph on 
+Terminal Service diverse:
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" leftline="true" rightline="true" width="5cm">
+<column alignment="left" valignment="top" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Schaduwen van andere sessie
+\emph on 
+ 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Deze optie is van belang voor beheer en controle op afstand:
+\layout Itemize
+
+
+\emph on 
+gedeactiveerd:
+\emph default 
+ Schaduwen is uitgeschakeld:
+\layout Itemize
+
+
+\emph on 
+invoer met notificatie:
+\emph default 
+ Sessie kan overgenomen worden.
+ Gebruiker wordt om toestemming gevraagd
+\layout Itemize
+
+
+\emph on 
+invoer zonder notificatie:
+\emph default 
+ Sessie kan overgenomen worden.
+ Gebruiker wordt niets gevraagd
+\layout Itemize
+
+
+\emph on 
+geen invoer met notificatie:
+\emph default 
+ Sessie kan alleen bekeken worden.
+ Gebruiker wordt om toestemming gevraagd
+\layout Itemize
+
+
+\emph on 
+geen invoer zonder notificatie:
+\emph default 
+ Sessie kan alleen bekeken worden.
+ Gebruiker wordt niets gevraagd
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bij verbroken verbinding of timeout 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+U kunt opgeven of een sessie die verbroken wordt (door de gebruiker, of
+ door het overschreiden van de tijdslimiet) verbroken blijft of automatisch
+ afgesloten wordt.
+ Indien u verbreken kiest, dan blijft de sessie behouden.
+ 
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Herstel sessie indien verbroken
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geef op of een verbroken sessie alleen vanaf de vorige client hervat kan
+ worden, of vanaf elke client
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Toegangsopties
+\layout Standard
+
+De onder toegangsopties genoemde instellingen dienen voor het aanpassen
+ van wachtwoord instellingen onder Windows en voor het beperken van de toegang
+ tot werkstations.
+ U dient op te letten welke instellingen u van toepassing laat zijn.
+\layout Itemize
+
+De volgende wachtwoord opties zijn beschikbaar:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Gebruiker mag zijn wachtwoord vanaf een werkstation wijzigen:
+\emph default 
+ Zodra deze optie geselecteerd is, mag de gebruiker het wachtwoord vanaf
+ een Windows werkstation wijzigen (door bijvoorbeeld Ctrl-Alt-Del in te
+ drukken).
+\layout Itemize
+
+
+\emph on 
+Inloggen op Windows werkstation zonder wachtwoord toestaan:
+\emph default 
+ Zodra deze optie geselecteerd is voor een gebruiker, mag de gebruiker inloggen
+ zonder een wachtwoord te moeten gebruiken.
+\layout Itemize
+
+
+\emph on 
+Blokkeer het Samba/Windows account:
+\emph default 
+ De gebruiker kan niet meer op een Windows werkstation inloggen.
+\layout Itemize
+
+
+\emph on 
+Wachtwoord verloopt op [Datum]:
+\emph default 
+ Het wachtwoord verloopt op [Datum].
+ Het account wordt daarna automatisch geblokkeerd.
+\layout Itemize
+
+
+\emph on 
+Stel laatste inlogtijd in op:
+\emph default 
+ Optie is niet nuttig! Hiermee kan de laatst bekende inlogtijd aangepast
+ worden.
+\layout Itemize
+
+
+\emph on 
+Stel laatste uitlogtijd in op:
+\emph default 
+ Optie is niet nuttig! Hiermee kan de laatst bekende uitlogtijd aangepast
+ worden.
+\layout Itemize
+
+
+\emph on 
+Het account verloopt op [Datum]:
+\emph default 
+ Geef de datum [Datum] op waarop het account automatisch geblokkeerd wordt.
+\end_deeper 
+\layout Itemize
+
+
+\emph on 
+Sta alleen verbindingen vanaf deze werkstations toe: 
+\emph default 
+Indien u de toegang tot werkstations wil beperken voegt u hier werkstations
+ toe.
+ De gebruiker mag op elk werkstation inloggen, zolang de lijst leeg is.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Toevoegen:
+\emph default 
+ Om een werkstation toe te voegen, drukt u op de knop 
+\emph on 
+Toevoegen
+\emph default 
+ en selecteert u een of meer werkstations uit de lijst.
+ Let op dat deze selectie alleen Windows werkstations betreft.
+\layout Itemize
+
+
+\emph on 
+Verwijderen:
+\emph default 
+ Om werkstations waartoe de gebruiker toegang heeft te verwijderen, drukt
+ u op de knop 
+\emph on 
+Verwijderen
+\emph default 
+.
+ Vervolgens selecteert u de werkstations die u wilt verwijderen.
+\end_deeper 
+\layout Subsection
+\added_space_top bigskip 
+Verbindingen
+\layout Standard
+
+Onder dit tabblad bevinden zich diverse opties om de account eigenschappen
+ en mogelijkheden van een gebruiker verder uit te breiden (afhankelijk van
+ de beschikbare diensten binnen een organisatie):
+\layout Subparagraph*
+
+Proxy account
+\layout Standard
+
+Met deze optie kunt u de gebruiker toegang tot de Proxy server verlenen.
+ Binnen veel organisaties wordt een proxy server gebruikt om toegang tot
+ Internet te beperken en/of monitoren.
+ Een gebruiker zonder Proxy account kan Internet niet op.
+ Voor alle gebruikers met een Proxy account geldt dat de beheerder, indien
+ gewenst, de toegang tot Internet en websites kan monitoren.
+\layout Itemize
+
+
+\emph on 
+Filter ongewilde inhoud (bijvoorbeeld pornografische of geweld gerelateerde
+ inhoud):
+\emph default 
+ Deze optie activeert het inhoudsfilter voor de gebruiker.
+ Dit betekent dat het door de systeembeheerder ingestelde inhoudsfilter
+ van toepassing wordt op door de gebruiker bezochte websites.
+ Zodra een website inhoud bevat die door het filter herkent wordt als zijnde
+ ongewenst, wordt de toegang voor de gebruiker onmiddelijk geblokkeerd.
+\layout Itemize
+
+
+\emph on 
+Beperk proxy gebruik tot tijd:
+\emph default 
+ Met deze optie is het mogelijk om de toegang tot Internet te beperken tot
+ een bepaalde tijdspanne (bijvoorbeeld tijdens kantoortijd).
+ Let erop dat deze tijd voor alle dagen dezelfde is.
+ De gebruiker krijgt een melding indien deze buiten de ingestelde tijd een
+ website wil bezoeken.
+\layout Itemize
+
+
+\emph on 
+Beperk proxy gebruik met quota:
+\emph default 
+ Met deze optie kunt een maximaal toegestane hoeveelheid dataverkeer gedurende
+ een bepaalde periode opgeven.
+ De gebruiker kan zodra de maximale hoeveelheid dataverkeer verbruikt is
+ niet meer het Internet op, totdat de huidig opgegeven periode verstreken
+ is.
+\layout Subparagraph
+\added_space_top smallskip 
+FTP account
+\layout Standard
+
+Met deze optie geeft u de gebruiker toegang tot de FTP server(s):
+\layout Itemize
+
+Bandbreedte: Maakt beperking van bandbreedte gebruik (door de gebruiker)
+ mogelijk
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Verstuur bandbreedte:
+\emph default 
+ De maximale bandbreedte voor de gebruiker bij het versturen van bestanden
+ naar de server (Upload) in kb per seconde.
+ De beperking is niet actief indien u hier 0 opgeeft.
+\layout Itemize
+
+
+\emph on 
+Ontvangst bandbreedte:
+\emph default 
+ De maximale bandbreedte voor de gebruiker bij het ontvangen van bestanden
+ van de server (Download) in kb per seconde.
+ De beperking is niet actief inhdien u hier 0 opgeeft.
+\end_deeper 
+\layout Itemize
+
+Verhouding: Het is mogelijk de gebruiker af te dwingen om een bepaalde verhoudin
+g van te versturen en te ontvangen bestanden te moeten behouden.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Verstuurde / Ontvangen bestanden:
+\emph default 
+ Hier geeft u de verhouding op (Bijvoorbeeld: 3/1, betekent dat de gebruiker
+ 3 bestanden moet versturen, alvorens er 1 bestande ontvangen kan worden).
+\end_deeper 
+\layout Itemize
+
+Quota: Beperking van het gebruik in hoeveelheid dataverkeer of hoeveelheid
+ bestanden
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Bestanden:
+\emph default 
+ De maximale hoeveelheid bestanden die de gebruiker mag versturen en ontvangen.
+ De beperking is niet actief indien u hier 0 opgeeft.
+\layout Itemize
+
+
+\emph on 
+Grootte:
+\emph default 
+ De maximale hoeveelheid dataverkeer die de gebruiker mag verbruiken voor
+ versturen en ontvangen.
+ De beperking is niet actief indien u hier 0 opgeeft.
+\end_deeper 
+\layout Itemize
+
+Diverse:
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Schakel FTP toegang tijdelijk uit:
+\emph default 
+ Hiermee kunt u de toegang tot de FTP server(s) tijdelijk uitschakelen,
+ zonder dat meteen alle FTP intstellingen van de gebruiker verloren gaan.
+\end_deeper 
+\layout Subparagraph
+
+Open-Xchange account
+\layout Standard
+
+Met deze optie geeft u de gebruiker toegang tot de Open-Xchange groupware
+ server.
+\layout Itemize
+
+Onthouden: Hier geeft u opties voor de portaal pagina van Open-Xchange op.
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Afspraken:
+\emph default 
+ Hoeveel dagen van te voren, wilt u dat afspraken getoond worden.
+\layout Itemize
+
+
+\emph on 
+Taken:
+\emph default 
+ Hoeveel dagen van te voren wilt u dat taken getoond worden.
+\end_deeper 
+\layout Itemize
+
+Gebruikersinformatie
+\begin_deeper 
+\layout Itemize
+
+
+\emph on 
+Tijdzone:
+\emph default 
+ Hier geeft u de tijdzone aan.
+ Let erop dat u alle gebruikers de juiste tijdzone geeft, aangezien anders
+ problemen op kunnen treden bij het plannen van afspraken onderling (tijdsversch
+illen).
+\end_deeper 
+\layout Subparagraph
+\added_space_top smallskip 
+WebDAV account
+\layout Standard
+
+Met deze optie kunt u de gebruiker toegang verlenen tot de WebDAV server(s).
+\layout Subparagraph
+\added_space_top smallskip 
+PHPGroupware account
+\layout Standard
+
+Met deze optie kunt u de gebruiker toegang verlenen tot de PHPGroupware
+ server.
+\layout Subparagraph
+\added_space_top smallskip 
+Intranet account
+\layout Standard
+\added_space_bottom smallskip 
+Met deze optie kunt u de gebruiker toegang verlenen tot Intranet server(s).
+ Normaliter wordt deze optie gebruikt om toegang tot interne websites en/of
+ webapplicaties binnen de organisatie te verschaffen.
+\layout Standard
+
+
+\series bold 
+PPTP account
+\layout Standard
+\added_space_bottom smallskip 
+Met deze optie kunt u de gebruiker toegang tot de VPN server (PPTP) verschaffen.
+\layout Standard
+
+
+\series bold 
+PHPScheduleit account
+\layout Standard
+\added_space_bottom smallskip 
+Met deze optie kunt u de gebruiker toegang tot de PHPScheduleit software
+ verlenen.
+\layout Standard
+
+
+\series bold 
+GLPI account
+\layout Standard
+
+Met deze optie kunt u de gebruiker toegang tot de GLPI software voor inventaris
+ beheer geven.
+\layout Subsection
+\added_space_top bigskip 
+Fax
+\layout Standard
+
+Om Fax mogelijkheden voor een gebruiker in te schakelen, klikt u op de knop
+ 
+\emph on 
+Fax account 
+\emph default 
+aanmaken
+\emph on 
+.
+\layout Subsubsection
+
+Algemeen
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Fax
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het Faxnummer van de gebruiker
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Taal
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Kies de gewenste taal uit de lijst (nl_NL=Nederlands, en_EN=Engels etc.)
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Aflever formaat 
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Het formaat waarmee faxen bij de gebruiker afgeleverd worden.
+ Maak een keuze uit de lijst
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Aflever methodes
+\layout Itemize
+
+
+\emph on 
+Schakel Fax gebruik tijdelijk uit:
+\emph default 
+ Schakel het Fax account van de gebruiker tijdelijk uit, zonder dat instellingen
+ van het account verloren zullen gaan.
+\layout Itemize
+
+
+\emph on 
+Lever Fax als E-mail af:
+\emph default 
+ Levert de fax in het geselecteerde formaat af in de mailbox van de gebruiker.
+\layout Itemize
+
+
+\emph on 
+Lever Fax af op printer:
+\emph default 
+ Levert een fax af op de uit de lijst geselecteerde printer.
+\layout Subsubsection
+\added_space_top medskip 
+Alternatieve Fax nummers
+\layout Standard
+
+Het is mogelijk meerdere Fax nummers aan de gebruiker toe te kennen.
+ Alle alternatieve nummers die aan de gebruiker toegekend zijn, dienen in
+ de lijst opgenomen te worden.
+\layout Itemize
+
+
+\emph on 
+Toevoegen: 
+\emph default 
+Om een nummer toe te voegen, geeft u een nummer op in het invoerveld links
+ van de knop 
+\emph on 
+Toevoegen
+\emph default 
+ en daarna drukt u op de knop 
+\emph on 
+Toevoegen.
+\layout Itemize
+
+
+\emph on 
+Lokaal toevoegen: 
+\emph default 
+Om een nummer toe te voegen dat al aan een andere gebruiker toegekend is,
+ gebruikt u de knop 
+\emph on 
+Lokaal toevoegen.
+
+\emph default 
+ U kunt nu uit de lijst ��n of meerdere gebruikers selecteren, wiens Fax
+ nummers toegekend moeten worden aan de huidige gebruiker.
+\layout Itemize
+
+
+\emph on 
+Verwijderen: 
+\emph default 
+Selecteer ��n of meerdere regels (met de Ctrl-toets kunt u meerdere regels
+ selecteren) en druk op de knop 
+\emph on 
+Verwijderen
+\emph default 
+ om Fax nummers te verwijderen.
+\layout Subsubsection
+\added_space_top medskip 
+Blokkeerlijsten
+\layout Standard
+
+Blokkeerlijsten dienen ervoor om zowel het ontvangen van en versturen naar
+ bepaalde nummers aan banden te kunnen leggen.
+ Dit is bijvoorbeeld een effectieve manier om advertentie fax-en te blokkeren.
+ De dialogen voor zowel inkomende als uitgaande faxen zijn volledig identiek.
+ We volstaan hier dus bij het uitleggen van de knop 
+\emph on 
+Bewerken
+\emph default 
+.
+\layout Subsubsection*
+
+Bewerken:
+\layout Standard
+
+Zodra u de knop 
+\emph on 
+Bewerken
+\emph default 
+ indrukt krijgt een dialoogvenster dat uit twee delen bestaat.
+ Aan de linkerzijde vindt u momenteel geldige nummers/lijsten, waartegen
+ in- danwel uitgaande nummers gecontroleerd worden.
+ Om een nummer toe te voegen, geeft u het nummer op in het tekstvelden drukt
+ u op de knop 
+\emph on 
+Toevoegen
+\emph default 
+.
+ Om een reeds bestaande lijst uit een sub-afdeling te selecteren, selecteert
+ u aan de rechterzijde de afdeling die de lijst bevat en drukt u op de knop
+ 
+\emph on 
+Lijst aan blokkeerlijst toevoegen
+\emph default 
+.
+ Om ��n of meerdere lijsten uit de lijst de verwijderen, selecteert u de
+ nummer(s)/lijst(en) en drukt u op de knop 
+\emph on 
+Verwijderen
+\emph default 
+.
+\layout Subsection
+\added_space_top bigskip 
+Telefoon
+\layout Standard
+
+Om een telefoon account te activeren voor een gebruiker, drukt u op de knop
+ 
+\emph on 
+Telefoon account aanmaken.
+\layout Subsubsection
+
+Telefoonnummers
+\layout Standard
+
+Hier geeft u de telefoonnummers op, die aan de gebruiker toegekend zijn.
+\layout Itemize
+
+
+\emph on 
+Toevoegen: 
+\emph default 
+Voer een telefoonnummer links van de knop in en druk op de knop 
+\emph on 
+Toevoegen
+\emph default 
+ om het telefoonnummer aan de gebruiker toe te kennen.
+\layout Itemize
+
+
+\emph on 
+Verwijderen: 
+\emph default 
+Selecteer het te verwijderen nummer in de lijst en druk op de knop 
+\emph on 
+Verwijderen 
+\emph default 
+om het nummer bij de gebruiker weg te halen.
+\layout Subsubsection
+\added_space_top medskip 
+Telefoon hardware
+\layout Standard
+
+
+\begin_inset  Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="block" valignment="top" leftline="true" width="5cm">
+<column alignment="block" valignment="top" leftline="true" rightline="true" width="10cm">
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefoon
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Selecteer de telefoon van de gebruiker uit de lijst
+\end_inset 
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Voicemail PIN-code
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geef de vier cijferige PIN-code op, die de gebruiker in moet geven om deVoice
+ mailbox te kunnen beluisteren
+\end_inset 
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Telefoon PIN-code
+\color red
+*
+\end_inset 
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Geef de vier cijferige PIN-code op, die de gebruiker in moet geven om zich
+ bij de telefoon aan te melden.
+\end_inset 
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset 
+
+
+\layout Subsubsection
+\added_space_top medskip 
+Telefoon macro
+\layout Standard
+
+Selecteer uit de lijst met macro's de macro die op de gebruiker van toepassing
+ moet zijn.
+ Indien door de beheerder opgegeven bij het aanmaken van de macro, kan het
+ nodig zijn om nog macro-specifieke opties in te moeten stellen, zoals bijvoorbe
+eld een Mailbox, doorschakelnummer, doorschakeltijd etc.).
+\layout Subsection
+\added_space_top bigskip 
+Referenties
+\layout Standard
+
+Onder referenties vindt u de relaties van de gebruiker met andere objecten
+ binnen de LDAP server (bijv.
+ Groepen, systemen etc.).
+\the_end
diff --git a/gosa-core/gosa-encrypt-passwords.1 b/gosa-core/gosa-encrypt-passwords.1
new file mode 100644
index 0000000..4abbd08
--- /dev/null
+++ b/gosa-core/gosa-encrypt-passwords.1
@@ -0,0 +1,154 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.05)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "GOSA-ENCRYPT-PASSWORDS 1"
+.TH GOSA-ENCRYPT-PASSWORDS 1 "2009-09-17" "perl v5.10.0" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+gosa\-encrypt\-passwords \- Encrypt your gosa.conf passwords with a master password
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+gosa-encrypt-passwords
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+gosa-encrypt-passwords is a script to encrypt your gosa.conf passwords
+with a master password. Your passwords are then only readable by the GOsa
+location.
+.SH "BUGS"
+.IX Header "BUGS"
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa\-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+.SH "LICENCE AND COPYRIGHT"
+.IX Header "LICENCE AND COPYRIGHT"
+This code is part of GOsa (<http://www.gosa\-project.org>)
+.PP
+Copyright (C) 2003\-2009 \s-1GONICUS\s0 GmbH
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\s-1GNU\s0 General Public License for more details.
diff --git a/gosa-core/gosa-encrypt-passwords.pod b/gosa-core/gosa-encrypt-passwords.pod
new file mode 100644
index 0000000..9dce86e
--- /dev/null
+++ b/gosa-core/gosa-encrypt-passwords.pod
@@ -0,0 +1,33 @@
+
+=head1 NAME
+
+gosa-encrypt-passwords - Encrypt your gosa.conf passwords with a master password
+
+=head1 SYNOPSIS
+
+gosa-encrypt-passwords
+
+=head1 DESCRIPTION
+
+gosa-encrypt-passwords is a script to encrypt your gosa.conf passwords
+with a master password. Your passwords are then only readable by the GOsa
+location. 
+
+=head1 BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
+=cut
+
diff --git a/gosa-core/html/autocomplete.php b/gosa-core/html/autocomplete.php
new file mode 100644
index 0000000..e6bbdbd
--- /dev/null
+++ b/gosa-core/html/autocomplete.php
@@ -0,0 +1,83 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: getbin.php 9255 2008-03-03 16:04:30Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Basic setup, remove eventually registered sessions */
+ at require_once ("../include/php_setup.inc");
+ at require_once ("functions.inc");
+
+session_cache_limiter("private");
+session::start();
+session::global_set('errorsAlreadyPosted',array());
+
+/* Logged in? Simple security check */
+if (!session::global_is_set('ui')){
+  new log("security","unknown","",array(),"Error: autocomplete.php called without session") ;
+  header ("Location: index.php");
+  exit;
+}
+
+/* Base completition or filter completition? */
+if (isset($_GET['type']) && $_GET['type'] == "base") {
+
+  // Find dn based on name and description
+  if (session::is_set("pathMapping") && count($_POST) == 1) {
+    $res= "";
+    $pathMapping= session::get("pathMapping");
+    $search= preg_replace('/"/', '"', current($_POST));
+
+    $config = session::global_get('config');
+    foreach ($config->department_info as $dn => $info) {
+      if (!isset($pathMapping[$dn])) {
+        continue;
+      }
+      if (mb_stristr($info['name'], $search) !== false) {
+        $res.= "<li>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $info['description'])."]</span>")."</li>";
+        continue;
+      }
+      if (mb_stristr($info['description'], $search) !== false) {
+        $res.= "<li>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $info['description'])."]</span>")."</li>";
+        continue;
+      }
+      if (mb_stristr($pathMapping[$dn], $search) !== false) {
+        $res.= "<li>".mark($search, $pathMapping[$dn]).($info['description']==''?"":"<span class='informal'> [".mark($search, $info['description'])."]</span>")."</li>";
+        continue;
+      }
+    }
+
+    /* Return results */
+    if (!empty($res)) {
+      echo "<ul>$res</ul>";
+    }
+  }
+
+} else {
+
+  $ui = session::global_get('ui');
+
+  /* Is there a filter object arround? */
+  if (session::is_set("autocomplete")){
+    $filter= session::get("autocomplete");
+    $filter->processAutocomplete();
+  }
+}
+
+?>
diff --git a/gosa-core/html/favicon.ico b/gosa-core/html/favicon.ico
new file mode 100644
index 0000000..3189acf
Binary files /dev/null and b/gosa-core/html/favicon.ico differ
diff --git a/gosa-core/html/getFAIstatus.php b/gosa-core/html/getFAIstatus.php
new file mode 100644
index 0000000..042908d
--- /dev/null
+++ b/gosa-core/html/getFAIstatus.php
@@ -0,0 +1,49 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: getbin.php 9255 2008-03-03 16:04:30Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Basic setup, remove eventually registered sessions */
+ at require_once ("../include/php_setup.inc");
+ at require_once ("functions.inc");
+
+session_cache_limiter("private");
+session::start();
+session::global_set('errorsAlreadyPosted',array());
+
+/* Logged in? Simple security check */
+if (!session::global_is_set('ui')){
+  new log("security","unknown","",array(),"Error: getFAIstatus.php called without session") ;
+  header ("Location: index.php");
+  exit;
+}
+
+/* There must be a mac address given */
+if(!isset($_GET['mac'])){
+	return;
+}
+
+$config = session::global_get("config");
+$o =  new gosaSupportDaemon();
+$res = $o->get_entries_by_mac(explode(",", $_GET['mac']));
+foreach($res as $entry){
+	echo $entry['MACADDRESS']."|".$entry['PROGRESS']."\n";
+}
+?>
diff --git a/gosa-core/html/getbin.php b/gosa-core/html/getbin.php
new file mode 100644
index 0000000..4f1a4d6
--- /dev/null
+++ b/gosa-core/html/getbin.php
@@ -0,0 +1,55 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: getbin.php 15664 2010-02-22 10:42:58Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Basic setup, remove eventually registered sessions */
+ at require_once ("../include/php_setup.inc");
+ at require_once ("functions.inc");
+error_reporting (0);
+session_cache_limiter("private");
+session::start();
+session::global_set('errorsAlreadyPosted',array());
+
+/* Logged in? Simple security check */
+if (!session::global_is_set('ui')){
+  new log("security","unknown","",array(),"Error: getbin.php called without session") ;
+  header ("Location: index.php");
+  exit;
+}
+
+header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+header("Cache-Control: no-cache");
+header("Pragma: no-cache");
+header("Cache-Control: post-check=0, pre-check=0");
+$bintype = session::is_set('binarytype')
+  ? session::get('binarytype') : "octet-stream";
+header("Content-type: " . $bintype);
+if (session::is_set('binaryfile')) {
+  header( "Content-disposition: attachment; filename="
+    . session::get('binaryfile'));
+}
+
+echo session::get('binary');
+error_reporting (E_ALL | E_STRICT);
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/html/helpviewer.php b/gosa-core/html/helpviewer.php
new file mode 100644
index 0000000..af785b2
--- /dev/null
+++ b/gosa-core/html/helpviewer.php
@@ -0,0 +1,275 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: helpviewer.php 15296 2010-01-26 08:27:39Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Include classes and configs */
+ at require_once ("../include/php_setup.inc");
+ at require_once ("functions.inc");
+ at require_once ("functions_helpviewer.inc");
+
+error_reporting(E_ALL | E_STRICT);
+restore_error_handler();
+header("Content-type: text/html; charset=UTF-8");
+
+session::start();
+
+/* If no config object is found in the session, abort help */
+if (!session::global_is_set('config')){
+  new log("security","all/all","",array(),"Help viewer called without session") ;
+  header ("Location: index.php");
+  exit;
+}
+
+$ui= session::global_get('ui');
+$config= session::global_get('config');
+
+/* Language setup */
+$lang= $config->get_cfg_value("language");
+if ($lang == ""){
+  $lang= get_browser_language();
+}
+
+$lang.=".UTF-8";
+
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+ at DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, "Setting language to");
+
+$smarty->compile_dir= $config->get_cfg_value("compile", "/var/spool/gosa/");
+$smarty->assign("title", "GOsa - "._("Help browser"));
+
+/* HELP management starts here ...
+ */
+
+/* Generate helpobject */
+if(session::global_is_set('helpobject')){
+  $helpobject = session::global_get('helpobject');
+}else{
+
+  $plist = session::global_get('plist');
+
+  $helpobject['lang']         = $lang; 
+  $helpobject['helpconf']     = array();  
+  $helpobject['currentplug']  = "";
+  $helpobject['file']         = "index.html";
+  $helpobject['helpconf']     = $plist->gen_headlines();
+}
+
+$lang = $lang[0].$lang[1];
+
+$helpobject['lang']           = $lang;  
+$defaultpage                  = "index.html";                       // alternative file, shown on error, or on first call
+$prefix                       = "node";                             // Prefix of the generated help files 
+$suffix                       = ".html";                            // Suffix of the generated helpfiles
+$maxresults                   = 10;                                 // max number of results shown in result list
+$minwordlength                = 3;                                  // Word less than 3 chars will be dropped in search
+$allowed_chars_in_searchword  = "'[^a-z0-9 %_-]'i";                 // Remove all chars that would disturb our search like < or > ...
+
+/* Default pages */
+$backward =$defaultpage;
+$index    =$defaultpage;
+$forward  ="node1.html";
+
+$helpdir ="";
+/* Every class which is called within a tab, stores its name in the Session.
+ * If session::global_is_set('current_class_for_help') is true, 
+ *  get the helpfile specified in the xml file and display it.
+ * Unset this Session entry, to avoid displaying it again.
+ */
+if(session::global_is_set('current_class_for_help')){
+
+  /* Create new XML parser with the path to the Xml file */
+  $xml = new parseXml("../doc/guide.xml");
+  
+  /* Generate help array */
+  $str = $xml->parse();
+
+  /* __LANG__ is used as placeholder for the used language*/
+  $helpdir= @preg_replace("/__LANG__/i",$lang,$str[(session::global_get('current_class_for_help'))]['PATH']);
+
+  /* If there is no entry in the xml file for this class, display an error message */
+  if($helpdir == ""){
+    
+    $smarty->assign("help_contents","<br><h2>"._("There is no helpfile specified for this class"))."</h2>";
+    $smarty->assign("iePngWorkaround", $config->get_cfg_value("iePngWorkaround","false" ) == "true");
+    $header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
+    $display= (  $header.$smarty->fetch(get_template_path('help.tpl')));
+    echo $display;
+    session::global_un_set('current_class_for_help');
+    exit();  
+  }
+ 
+  /* Save filename */
+  $helpobject['file']= $str[(session::global_get('current_class_for_help'))]['FILE'];
+  
+  /* Save path to the file */
+  $helpobject['currentplug']  = $helpdir;
+  
+  /* Avoid displaying the same help every time */
+  if(isset($_GET['pg'])){
+    session::global_un_set('current_class_for_help');
+  }
+
+}elseif(isset($_GET['plug'])){
+  /* This displays helpfiles depending on the current $_GET[plug] */
+  $ui= get_userinfo();
+  $tmp                          = new pluglist($config, $ui);
+  $path                         = $tmp->get_path($_GET['plug']);
+  $helpobject['currentplug']    = $path;
+  $helpobject['file']           = "index.html";
+  $helpdir = "../doc/core/".$helpobject['lang']."/html/".preg_replace("/^.*\//i","",$helpobject['currentplug']);
+  if(empty($helpobject['currentplug'])){
+    $helpdir= "";
+  }
+}
+/* this Post var is set if another page is requested */
+if(isset($_GET['pg'])){
+ 
+  if(preg_match("/\//",$_GET['pg'])){
+    $arr = explode("/", $_GET['pg']);
+    $helpobject['currentplug'] = "../doc/core/".$helpobject['lang']."/html/".$arr[0];
+    $helpdir = $helpobject['currentplug'];
+    $helpobject['file']= $arr[1];
+  }else{
+    /* PG should contain a filename */
+    $helpobject['file'] = $_GET['pg'];
+
+
+    /* If empty, force displaying the index */
+    if(empty($_GET['pg'])){
+      $helpobject['currentplug']  = "";
+      $helpobject['file'] = "index.html";
+    }
+    /* Create new helpdir (The path where the requested page is located)*/
+    $helpdir = "../doc/core/".$helpobject['lang']."/html/".preg_replace("/^.*\//i","",$helpobject['currentplug']);
+
+    /* If helpdir is empty, force index */
+    if(empty($helpobject['currentplug'])){
+      $helpdir= "";
+    }
+  }
+}
+$helpdir.="/";
+
+/* Save current settings */
+session::global_set('helpobject',$helpobject);
+
+/* 
+ * Display management 
+ */
+
+$files = array();
+$f = opendir($helpdir);
+while($file = readdir($f)){
+  $files[$file]=$file;
+}
+
+/* Some replacements */
+$backwardlink  = "<a href=\"?pg=%s\"  class=\"maintitlebar\">
+                  <img src='images/back.png' class=\"center\" align=\"middle\" alt=\""._("previous")."\" border=\"0\">
+                 </a>";
+
+$forwardlink   = "<a href=\"?pg=%s\"  class=\"maintitlebar\">
+                  <img src='images/forward.png' class=\"center\" align=\"middle\" alt=\""._("next")."\" border=\"0\">
+                 </a>";
+
+
+$back = $for  ="";
+if($helpobject['file'] == "index.html"){
+  $back = " ";
+  $for  = sprintf($forwardlink,   $prefix."1".$suffix);
+}else{
+  $current = preg_replace("/^".$prefix."/","",$helpobject['file']);
+  $current = preg_replace("/\.html$/","",$current);
+ 
+  if(isset($files[$prefix.($current+1).$suffix])) {
+    $for  = sprintf($forwardlink,    $prefix.($current+1).$suffix);
+  }
+  if(isset($files[$prefix.($current-1).$suffix])) {
+    $back = sprintf($backwardlink,   $prefix.($current-1).$suffix);
+  }
+  if(($current-1) == 0){
+    $back = sprintf($backwardlink,   "index.html");
+  }
+}
+
+
+/* If there is no helpdir or file defined, display the index */
+if(isset($_POST['search'])){
+  $helpdir = "../doc/core/".$helpobject['lang']."/html/";
+  /* read all available directories */
+  $index = readfiles($helpdir,$prefix,$suffix,false,false);
+  $smarty->assign("help_contents",((searchlist($index,search($index,$_POST['search_string']),10))));
+  $header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
+
+  /* I don't know why, but we must use utf8_encode to avoid dispplay errors */
+  $display= (  $header.$smarty->fetch(get_template_path('help.tpl')));
+  echo $display;
+}elseif(((empty($helpdir)))||($helpdir=="/")){
+  /* Generate Index and display it */
+  $smarty->assign("help_contents",genIndex());
+  $header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
+
+  /* I don't know why, but we must use utf8_encode to avoid dispplay errors */
+  $display= utf8_encode(  $header.$smarty->fetch(get_template_path('help.tpl')));
+  echo $display;
+
+}elseif((is_dir($helpdir))&&($fp = opendir($helpdir))){
+  
+  /* Readfile gets the content of the requested file, 
+   * parse it, rework links images and so on */
+  $index = readfiles($helpdir,$prefix,$suffix,false,$helpobject['file']);
+
+  $lastresults = session::global_get('lastresults');
+
+  /* if this page is result from a search, mark the search strings */
+  if(isset($_GET['mark'])){
+    $matches = $lastresults[preg_replace("/^.*\//i","",$helpobject['currentplug'])][$helpobject['file']];
+    $index[$helpobject['file']]['content']   = markup_page($index[$helpobject['file']]['content'],$matches);
+  }
+
+  /* Display the help contents */
+  $smarty->assign("help_contents",$index[$helpobject['file']]['content']);
+  $header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
+  
+  /* I don't know why, but we must use utf8_encode to avoid dispplay errors */
+  $smarty->assign("backward",$back);
+  $smarty->assign("forward" ,$for);
+  $display= utf8_encode(  $header.$smarty->fetch(get_template_path('help.tpl')));
+  echo $display;
+
+}else{
+  
+  /* There was a file requested which actually doesn't exists */
+  $smarty->assign("help_contents","<h2>".sprintf(_("Helpdir '%s' is not accessible, can't read any helpfiles."),$helpdir))."</h2><br>";
+  $header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
+  $display= (  $header.$smarty->fetch(get_template_path('help.tpl')));
+  echo $display;
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/html/images/action.png b/gosa-core/html/images/action.png
new file mode 100644
index 0000000..21d5e2f
Binary files /dev/null and b/gosa-core/html/images/action.png differ
diff --git a/gosa-core/html/images/back.png b/gosa-core/html/images/back.png
new file mode 100644
index 0000000..52fa887
Binary files /dev/null and b/gosa-core/html/images/back.png differ
diff --git a/gosa-core/html/images/branch.gif b/gosa-core/html/images/branch.gif
new file mode 100644
index 0000000..9fe34c0
Binary files /dev/null and b/gosa-core/html/images/branch.gif differ
diff --git a/gosa-core/html/images/branchbottom.gif b/gosa-core/html/images/branchbottom.gif
new file mode 100644
index 0000000..278f6da
Binary files /dev/null and b/gosa-core/html/images/branchbottom.gif differ
diff --git a/gosa-core/html/images/branchtop.gif b/gosa-core/html/images/branchtop.gif
new file mode 100644
index 0000000..3d469d0
Binary files /dev/null and b/gosa-core/html/images/branchtop.gif differ
diff --git a/gosa-core/html/images/date_active.gif b/gosa-core/html/images/date_active.gif
new file mode 100644
index 0000000..132a364
Binary files /dev/null and b/gosa-core/html/images/date_active.gif differ
diff --git a/gosa-core/html/images/datepicker.gif b/gosa-core/html/images/datepicker.gif
new file mode 100644
index 0000000..7b4d6bf
Binary files /dev/null and b/gosa-core/html/images/datepicker.gif differ
diff --git a/gosa-core/html/images/datepicker_ro.gif b/gosa-core/html/images/datepicker_ro.gif
new file mode 100644
index 0000000..a6caa10
Binary files /dev/null and b/gosa-core/html/images/datepicker_ro.gif differ
diff --git a/gosa-core/html/images/dtree.png b/gosa-core/html/images/dtree.png
new file mode 100644
index 0000000..7eb7909
Binary files /dev/null and b/gosa-core/html/images/dtree.png differ
diff --git a/gosa-core/html/images/empty.png b/gosa-core/html/images/empty.png
new file mode 100644
index 0000000..59fb786
Binary files /dev/null and b/gosa-core/html/images/empty.png differ
diff --git a/gosa-core/html/images/encrypted.png b/gosa-core/html/images/encrypted.png
new file mode 100644
index 0000000..d08a33c
Binary files /dev/null and b/gosa-core/html/images/encrypted.png differ
diff --git a/gosa-core/html/images/error.png b/gosa-core/html/images/error.png
new file mode 100644
index 0000000..1de7a6f
Binary files /dev/null and b/gosa-core/html/images/error.png differ
diff --git a/gosa-core/html/images/false.png b/gosa-core/html/images/false.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/html/images/false.png differ
diff --git a/gosa-core/html/images/filesaveas.png b/gosa-core/html/images/filesaveas.png
new file mode 100644
index 0000000..4d2a11e
Binary files /dev/null and b/gosa-core/html/images/filesaveas.png differ
diff --git a/gosa-core/html/images/folder-expanded.gif b/gosa-core/html/images/folder-expanded.gif
new file mode 100644
index 0000000..f779acc
Binary files /dev/null and b/gosa-core/html/images/folder-expanded.gif differ
diff --git a/gosa-core/html/images/folder.gif b/gosa-core/html/images/folder.gif
new file mode 100644
index 0000000..842989f
Binary files /dev/null and b/gosa-core/html/images/folder.gif differ
diff --git a/gosa-core/html/images/forward-arrow.png b/gosa-core/html/images/forward-arrow.png
new file mode 100644
index 0000000..4f3189a
Binary files /dev/null and b/gosa-core/html/images/forward-arrow.png differ
diff --git a/gosa-core/html/images/forward.png b/gosa-core/html/images/forward.png
new file mode 100644
index 0000000..e9cbecd
Binary files /dev/null and b/gosa-core/html/images/forward.png differ
diff --git a/gosa-core/html/images/head.png b/gosa-core/html/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/html/images/head.png differ
diff --git a/gosa-core/html/images/info.png b/gosa-core/html/images/info.png
new file mode 100644
index 0000000..3626ba7
Binary files /dev/null and b/gosa-core/html/images/info.png differ
diff --git a/gosa-core/html/images/info_small.png b/gosa-core/html/images/info_small.png
new file mode 100644
index 0000000..0d826bb
Binary files /dev/null and b/gosa-core/html/images/info_small.png differ
diff --git a/gosa-core/html/images/launch.png b/gosa-core/html/images/launch.png
new file mode 100644
index 0000000..da97aef
Binary files /dev/null and b/gosa-core/html/images/launch.png differ
diff --git a/gosa-core/html/images/layer_menu/down-arrow.png b/gosa-core/html/images/layer_menu/down-arrow.png
new file mode 100644
index 0000000..f0fb47d
Binary files /dev/null and b/gosa-core/html/images/layer_menu/down-arrow.png differ
diff --git a/gosa-core/html/images/layer_menu/forward-arrow.png b/gosa-core/html/images/layer_menu/forward-arrow.png
new file mode 100644
index 0000000..4f3189a
Binary files /dev/null and b/gosa-core/html/images/layer_menu/forward-arrow.png differ
diff --git a/gosa-core/html/images/layer_menu/transparent.png b/gosa-core/html/images/layer_menu/transparent.png
new file mode 100644
index 0000000..793f790
Binary files /dev/null and b/gosa-core/html/images/layer_menu/transparent.png differ
diff --git a/gosa-core/html/images/ldapserver.png b/gosa-core/html/images/ldapserver.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/html/images/ldapserver.png differ
diff --git a/gosa-core/html/images/lists/action.png b/gosa-core/html/images/lists/action.png
new file mode 100644
index 0000000..120f2ff
Binary files /dev/null and b/gosa-core/html/images/lists/action.png differ
diff --git a/gosa-core/html/images/lists/back.png b/gosa-core/html/images/lists/back.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/html/images/lists/back.png differ
diff --git a/gosa-core/html/images/lists/back_grey.png b/gosa-core/html/images/lists/back_grey.png
new file mode 100644
index 0000000..df2e987
Binary files /dev/null and b/gosa-core/html/images/lists/back_grey.png differ
diff --git a/gosa-core/html/images/lists/copy.png b/gosa-core/html/images/lists/copy.png
new file mode 100644
index 0000000..c3ff243
Binary files /dev/null and b/gosa-core/html/images/lists/copy.png differ
diff --git a/gosa-core/html/images/lists/csv.png b/gosa-core/html/images/lists/csv.png
new file mode 100644
index 0000000..52ac9fa
Binary files /dev/null and b/gosa-core/html/images/lists/csv.png differ
diff --git a/gosa-core/html/images/lists/cut.png b/gosa-core/html/images/lists/cut.png
new file mode 100644
index 0000000..7ec355a
Binary files /dev/null and b/gosa-core/html/images/lists/cut.png differ
diff --git a/gosa-core/html/images/lists/delete.png b/gosa-core/html/images/lists/delete.png
new file mode 100644
index 0000000..6d0d29d
Binary files /dev/null and b/gosa-core/html/images/lists/delete.png differ
diff --git a/gosa-core/html/images/lists/edit-grey.png b/gosa-core/html/images/lists/edit-grey.png
new file mode 100644
index 0000000..5d367fb
Binary files /dev/null and b/gosa-core/html/images/lists/edit-grey.png differ
diff --git a/gosa-core/html/images/lists/edit.png b/gosa-core/html/images/lists/edit.png
new file mode 100644
index 0000000..a8b69f7
Binary files /dev/null and b/gosa-core/html/images/lists/edit.png differ
diff --git a/gosa-core/html/images/lists/expand.png b/gosa-core/html/images/lists/expand.png
new file mode 100644
index 0000000..9bc3f56
Binary files /dev/null and b/gosa-core/html/images/lists/expand.png differ
diff --git a/gosa-core/html/images/lists/export.png b/gosa-core/html/images/lists/export.png
new file mode 100644
index 0000000..47609ee
Binary files /dev/null and b/gosa-core/html/images/lists/export.png differ
diff --git a/gosa-core/html/images/lists/folder-full.png b/gosa-core/html/images/lists/folder-full.png
new file mode 100644
index 0000000..3616cbb
Binary files /dev/null and b/gosa-core/html/images/lists/folder-full.png differ
diff --git a/gosa-core/html/images/lists/folder.png b/gosa-core/html/images/lists/folder.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/html/images/lists/folder.png differ
diff --git a/gosa-core/html/images/lists/folder_grey.png b/gosa-core/html/images/lists/folder_grey.png
new file mode 100644
index 0000000..07d1d42
Binary files /dev/null and b/gosa-core/html/images/lists/folder_grey.png differ
diff --git a/gosa-core/html/images/lists/home.png b/gosa-core/html/images/lists/home.png
new file mode 100644
index 0000000..e897341
Binary files /dev/null and b/gosa-core/html/images/lists/home.png differ
diff --git a/gosa-core/html/images/lists/home_grey.png b/gosa-core/html/images/lists/home_grey.png
new file mode 100644
index 0000000..9fb42ff
Binary files /dev/null and b/gosa-core/html/images/lists/home_grey.png differ
diff --git a/gosa-core/html/images/lists/import.png b/gosa-core/html/images/lists/import.png
new file mode 100644
index 0000000..43c1362
Binary files /dev/null and b/gosa-core/html/images/lists/import.png differ
diff --git a/gosa-core/html/images/lists/invalid.png b/gosa-core/html/images/lists/invalid.png
new file mode 100644
index 0000000..3240b29
Binary files /dev/null and b/gosa-core/html/images/lists/invalid.png differ
diff --git a/gosa-core/html/images/lists/key.png b/gosa-core/html/images/lists/key.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/html/images/lists/key.png differ
diff --git a/gosa-core/html/images/lists/lastnode.png b/gosa-core/html/images/lists/lastnode.png
new file mode 100644
index 0000000..f8809f8
Binary files /dev/null and b/gosa-core/html/images/lists/lastnode.png differ
diff --git a/gosa-core/html/images/lists/locked.png b/gosa-core/html/images/lists/locked.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/html/images/lists/locked.png differ
diff --git a/gosa-core/html/images/lists/new.png b/gosa-core/html/images/lists/new.png
new file mode 100644
index 0000000..43b0c6c
Binary files /dev/null and b/gosa-core/html/images/lists/new.png differ
diff --git a/gosa-core/html/images/lists/node.png b/gosa-core/html/images/lists/node.png
new file mode 100644
index 0000000..29f6c44
Binary files /dev/null and b/gosa-core/html/images/lists/node.png differ
diff --git a/gosa-core/html/images/lists/off.png b/gosa-core/html/images/lists/off.png
new file mode 100644
index 0000000..a9224a2
Binary files /dev/null and b/gosa-core/html/images/lists/off.png differ
diff --git a/gosa-core/html/images/lists/on.png b/gosa-core/html/images/lists/on.png
new file mode 100644
index 0000000..8d72794
Binary files /dev/null and b/gosa-core/html/images/lists/on.png differ
diff --git a/gosa-core/html/images/lists/paste-grey.png b/gosa-core/html/images/lists/paste-grey.png
new file mode 100644
index 0000000..fdcc88d
Binary files /dev/null and b/gosa-core/html/images/lists/paste-grey.png differ
diff --git a/gosa-core/html/images/lists/paste.png b/gosa-core/html/images/lists/paste.png
new file mode 100644
index 0000000..636a4c5
Binary files /dev/null and b/gosa-core/html/images/lists/paste.png differ
diff --git a/gosa-core/html/images/lists/pdf.png b/gosa-core/html/images/lists/pdf.png
new file mode 100644
index 0000000..9d115de
Binary files /dev/null and b/gosa-core/html/images/lists/pdf.png differ
diff --git a/gosa-core/html/images/lists/reload.png b/gosa-core/html/images/lists/reload.png
new file mode 100644
index 0000000..99fd4d7
Binary files /dev/null and b/gosa-core/html/images/lists/reload.png differ
diff --git a/gosa-core/html/images/lists/restore.png b/gosa-core/html/images/lists/restore.png
new file mode 100644
index 0000000..037c2da
Binary files /dev/null and b/gosa-core/html/images/lists/restore.png differ
diff --git a/gosa-core/html/images/lists/restore_grey.png b/gosa-core/html/images/lists/restore_grey.png
new file mode 100644
index 0000000..d10adae
Binary files /dev/null and b/gosa-core/html/images/lists/restore_grey.png differ
diff --git a/gosa-core/html/images/lists/root.png b/gosa-core/html/images/lists/root.png
new file mode 100644
index 0000000..56a6a5d
Binary files /dev/null and b/gosa-core/html/images/lists/root.png differ
diff --git a/gosa-core/html/images/lists/root_grey.png b/gosa-core/html/images/lists/root_grey.png
new file mode 100644
index 0000000..9dffb4e
Binary files /dev/null and b/gosa-core/html/images/lists/root_grey.png differ
diff --git a/gosa-core/html/images/lists/search-subtree.png b/gosa-core/html/images/lists/search-subtree.png
new file mode 100644
index 0000000..477387c
Binary files /dev/null and b/gosa-core/html/images/lists/search-subtree.png differ
diff --git a/gosa-core/html/images/lists/search-user.png b/gosa-core/html/images/lists/search-user.png
new file mode 100644
index 0000000..1c164f4
Binary files /dev/null and b/gosa-core/html/images/lists/search-user.png differ
diff --git a/gosa-core/html/images/lists/search.png b/gosa-core/html/images/lists/search.png
new file mode 100644
index 0000000..593a566
Binary files /dev/null and b/gosa-core/html/images/lists/search.png differ
diff --git a/gosa-core/html/images/lists/seperator.png b/gosa-core/html/images/lists/seperator.png
new file mode 100644
index 0000000..d6ef0eb
Binary files /dev/null and b/gosa-core/html/images/lists/seperator.png differ
diff --git a/gosa-core/html/images/lists/sort-down.png b/gosa-core/html/images/lists/sort-down.png
new file mode 100644
index 0000000..0d99fd7
Binary files /dev/null and b/gosa-core/html/images/lists/sort-down.png differ
diff --git a/gosa-core/html/images/lists/sort-up.png b/gosa-core/html/images/lists/sort-up.png
new file mode 100644
index 0000000..59e98a1
Binary files /dev/null and b/gosa-core/html/images/lists/sort-up.png differ
diff --git a/gosa-core/html/images/lists/submit.png b/gosa-core/html/images/lists/submit.png
new file mode 100644
index 0000000..19041fb
Binary files /dev/null and b/gosa-core/html/images/lists/submit.png differ
diff --git a/gosa-core/html/images/lists/trash-grey.png b/gosa-core/html/images/lists/trash-grey.png
new file mode 100644
index 0000000..030d38a
Binary files /dev/null and b/gosa-core/html/images/lists/trash-grey.png differ
diff --git a/gosa-core/html/images/lists/trash.png b/gosa-core/html/images/lists/trash.png
new file mode 100644
index 0000000..f5cb2b8
Binary files /dev/null and b/gosa-core/html/images/lists/trash.png differ
diff --git a/gosa-core/html/images/lists/unlocked.png b/gosa-core/html/images/lists/unlocked.png
new file mode 100644
index 0000000..3a1a0d3
Binary files /dev/null and b/gosa-core/html/images/lists/unlocked.png differ
diff --git a/gosa-core/html/images/lists/up.png b/gosa-core/html/images/lists/up.png
new file mode 100644
index 0000000..f258c11
Binary files /dev/null and b/gosa-core/html/images/lists/up.png differ
diff --git a/gosa-core/html/images/lists/upload.png b/gosa-core/html/images/lists/upload.png
new file mode 100644
index 0000000..91e3b24
Binary files /dev/null and b/gosa-core/html/images/lists/upload.png differ
diff --git a/gosa-core/html/images/lists/vline.png b/gosa-core/html/images/lists/vline.png
new file mode 100644
index 0000000..4c9bc6d
Binary files /dev/null and b/gosa-core/html/images/lists/vline.png differ
diff --git a/gosa-core/html/images/login-head.png b/gosa-core/html/images/login-head.png
new file mode 100644
index 0000000..45e3c35
Binary files /dev/null and b/gosa-core/html/images/login-head.png differ
diff --git a/gosa-core/html/images/login.png b/gosa-core/html/images/login.png
new file mode 100644
index 0000000..01cb4ac
Binary files /dev/null and b/gosa-core/html/images/login.png differ
diff --git a/gosa-core/html/images/logout.png b/gosa-core/html/images/logout.png
new file mode 100644
index 0000000..73b27d9
Binary files /dev/null and b/gosa-core/html/images/logout.png differ
diff --git a/gosa-core/html/images/mailto.png b/gosa-core/html/images/mailto.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/html/images/mailto.png differ
diff --git a/gosa-core/html/images/minus.gif b/gosa-core/html/images/minus.gif
new file mode 100644
index 0000000..5ecff71
Binary files /dev/null and b/gosa-core/html/images/minus.gif differ
diff --git a/gosa-core/html/images/minustop.gif b/gosa-core/html/images/minustop.gif
new file mode 100644
index 0000000..bab71e2
Binary files /dev/null and b/gosa-core/html/images/minustop.gif differ
diff --git a/gosa-core/html/images/move_object_down.png b/gosa-core/html/images/move_object_down.png
new file mode 100644
index 0000000..b6ad215
Binary files /dev/null and b/gosa-core/html/images/move_object_down.png differ
diff --git a/gosa-core/html/images/move_object_up.png b/gosa-core/html/images/move_object_up.png
new file mode 100644
index 0000000..4699e69
Binary files /dev/null and b/gosa-core/html/images/move_object_up.png differ
diff --git a/gosa-core/html/images/null.gif b/gosa-core/html/images/null.gif
new file mode 100644
index 0000000..c5b2954
Binary files /dev/null and b/gosa-core/html/images/null.gif differ
diff --git a/gosa-core/html/images/opacity_black.png b/gosa-core/html/images/opacity_black.png
new file mode 100644
index 0000000..1e1eb51
Binary files /dev/null and b/gosa-core/html/images/opacity_black.png differ
diff --git a/gosa-core/html/images/password.png b/gosa-core/html/images/password.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/html/images/password.png differ
diff --git a/gosa-core/html/images/penguin.png b/gosa-core/html/images/penguin.png
new file mode 100644
index 0000000..a99e611
Binary files /dev/null and b/gosa-core/html/images/penguin.png differ
diff --git a/gosa-core/html/images/plus.gif b/gosa-core/html/images/plus.gif
new file mode 100644
index 0000000..2671205
Binary files /dev/null and b/gosa-core/html/images/plus.gif differ
diff --git a/gosa-core/html/images/plusbottom.gif b/gosa-core/html/images/plusbottom.gif
new file mode 100644
index 0000000..ba007c6
Binary files /dev/null and b/gosa-core/html/images/plusbottom.gif differ
diff --git a/gosa-core/html/images/plustop.gif b/gosa-core/html/images/plustop.gif
new file mode 100644
index 0000000..37ef1ae
Binary files /dev/null and b/gosa-core/html/images/plustop.gif differ
diff --git a/gosa-core/html/images/rightarrow.png b/gosa-core/html/images/rightarrow.png
new file mode 100644
index 0000000..dfac4c1
Binary files /dev/null and b/gosa-core/html/images/rightarrow.png differ
diff --git a/gosa-core/html/images/rocket.png b/gosa-core/html/images/rocket.png
new file mode 100644
index 0000000..838c38b
Binary files /dev/null and b/gosa-core/html/images/rocket.png differ
diff --git a/gosa-core/html/images/save.png b/gosa-core/html/images/save.png
new file mode 100644
index 0000000..6a9adc1
Binary files /dev/null and b/gosa-core/html/images/save.png differ
diff --git a/gosa-core/html/images/select_department.png b/gosa-core/html/images/select_department.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/html/images/select_department.png differ
diff --git a/gosa-core/html/images/select_proxy.png b/gosa-core/html/images/select_proxy.png
new file mode 100644
index 0000000..3c5dbdf
Binary files /dev/null and b/gosa-core/html/images/select_proxy.png differ
diff --git a/gosa-core/html/images/setup/fai.png b/gosa-core/html/images/setup/fai.png
new file mode 100644
index 0000000..3bd55d2
Binary files /dev/null and b/gosa-core/html/images/setup/fai.png differ
diff --git a/gosa-core/html/images/setup/ldap.png b/gosa-core/html/images/setup/ldap.png
new file mode 100644
index 0000000..6380005
Binary files /dev/null and b/gosa-core/html/images/setup/ldap.png differ
diff --git a/gosa-core/html/images/setup/license.png b/gosa-core/html/images/setup/license.png
new file mode 100644
index 0000000..d7bcd78
Binary files /dev/null and b/gosa-core/html/images/setup/license.png differ
diff --git a/gosa-core/html/images/setup/locale.png b/gosa-core/html/images/setup/locale.png
new file mode 100644
index 0000000..e7defac
Binary files /dev/null and b/gosa-core/html/images/setup/locale.png differ
diff --git a/gosa-core/html/images/setup/migrate.png b/gosa-core/html/images/setup/migrate.png
new file mode 100644
index 0000000..b636ff0
Binary files /dev/null and b/gosa-core/html/images/setup/migrate.png differ
diff --git a/gosa-core/html/images/setup/server.png b/gosa-core/html/images/setup/server.png
new file mode 100644
index 0000000..313a661
Binary files /dev/null and b/gosa-core/html/images/setup/server.png differ
diff --git a/gosa-core/html/images/setup/system.png b/gosa-core/html/images/setup/system.png
new file mode 100644
index 0000000..b150572
Binary files /dev/null and b/gosa-core/html/images/setup/system.png differ
diff --git a/gosa-core/html/images/setup/user.png b/gosa-core/html/images/setup/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/html/images/setup/user.png differ
diff --git a/gosa-core/html/images/setup/welcome.png b/gosa-core/html/images/setup/welcome.png
new file mode 100644
index 0000000..0964749
Binary files /dev/null and b/gosa-core/html/images/setup/welcome.png differ
diff --git a/gosa-core/html/images/small-error.png b/gosa-core/html/images/small-error.png
new file mode 100644
index 0000000..830e2e6
Binary files /dev/null and b/gosa-core/html/images/small-error.png differ
diff --git a/gosa-core/html/images/small_error.png b/gosa-core/html/images/small_error.png
new file mode 100644
index 0000000..6b990a2
Binary files /dev/null and b/gosa-core/html/images/small_error.png differ
diff --git a/gosa-core/html/images/small_warning.png b/gosa-core/html/images/small_warning.png
new file mode 100644
index 0000000..fd49f31
Binary files /dev/null and b/gosa-core/html/images/small_warning.png differ
diff --git a/gosa-core/html/images/snapshot.png b/gosa-core/html/images/snapshot.png
new file mode 100644
index 0000000..41b3f43
Binary files /dev/null and b/gosa-core/html/images/snapshot.png differ
diff --git a/gosa-core/html/images/status_pause.png b/gosa-core/html/images/status_pause.png
new file mode 100644
index 0000000..2083104
Binary files /dev/null and b/gosa-core/html/images/status_pause.png differ
diff --git a/gosa-core/html/images/status_restart_all.png b/gosa-core/html/images/status_restart_all.png
new file mode 100644
index 0000000..99fd4d7
Binary files /dev/null and b/gosa-core/html/images/status_restart_all.png differ
diff --git a/gosa-core/html/images/status_restarting.png b/gosa-core/html/images/status_restarting.png
new file mode 100644
index 0000000..e002141
Binary files /dev/null and b/gosa-core/html/images/status_restarting.png differ
diff --git a/gosa-core/html/images/status_start.png b/gosa-core/html/images/status_start.png
new file mode 100644
index 0000000..d788511
Binary files /dev/null and b/gosa-core/html/images/status_start.png differ
diff --git a/gosa-core/html/images/status_start_all.png b/gosa-core/html/images/status_start_all.png
new file mode 100644
index 0000000..d788511
Binary files /dev/null and b/gosa-core/html/images/status_start_all.png differ
diff --git a/gosa-core/html/images/status_stop.png b/gosa-core/html/images/status_stop.png
new file mode 100644
index 0000000..00e237f
Binary files /dev/null and b/gosa-core/html/images/status_stop.png differ
diff --git a/gosa-core/html/images/status_stop_all.png b/gosa-core/html/images/status_stop_all.png
new file mode 100644
index 0000000..00e237f
Binary files /dev/null and b/gosa-core/html/images/status_stop_all.png differ
diff --git a/gosa-core/html/images/true.png b/gosa-core/html/images/true.png
new file mode 100644
index 0000000..543710f
Binary files /dev/null and b/gosa-core/html/images/true.png differ
diff --git a/gosa-core/html/images/warning.png b/gosa-core/html/images/warning.png
new file mode 100644
index 0000000..d83f349
Binary files /dev/null and b/gosa-core/html/images/warning.png differ
diff --git a/gosa-core/html/images/welcome.png b/gosa-core/html/images/welcome.png
new file mode 100644
index 0000000..fac7493
Binary files /dev/null and b/gosa-core/html/images/welcome.png differ
diff --git a/gosa-core/html/images/wizard.png b/gosa-core/html/images/wizard.png
new file mode 100644
index 0000000..9d92603
Binary files /dev/null and b/gosa-core/html/images/wizard.png differ
diff --git a/gosa-core/html/include/builder.js b/gosa-core/html/include/builder.js
new file mode 100644
index 0000000..f1f42b9
--- /dev/null
+++ b/gosa-core/html/include/builder.js
@@ -0,0 +1,136 @@
+// script.aculo.us builder.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+var Builder = {
+  NODEMAP: {
+    AREA: 'map',
+    CAPTION: 'table',
+    COL: 'table',
+    COLGROUP: 'table',
+    LEGEND: 'fieldset',
+    OPTGROUP: 'select',
+    OPTION: 'select',
+    PARAM: 'object',
+    TBODY: 'table',
+    TD: 'table',
+    TFOOT: 'table',
+    TH: 'table',
+    THEAD: 'table',
+    TR: 'table'
+  },
+  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
+  //       due to a Firefox bug
+  node: function(elementName) {
+    elementName = elementName.toUpperCase();
+
+    // try innerHTML approach
+    var parentTag = this.NODEMAP[elementName] || 'div';
+    var parentElement = document.createElement(parentTag);
+    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
+      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
+    } catch(e) {}
+    var element = parentElement.firstChild || null;
+
+    // see if browser added wrapping tags
+    if(element && (element.tagName.toUpperCase() != elementName))
+      element = element.getElementsByTagName(elementName)[0];
+
+    // fallback to createElement approach
+    if(!element) element = document.createElement(elementName);
+
+    // abort if nothing could be created
+    if(!element) return;
+
+    // attributes (or text)
+    if(arguments[1])
+      if(this._isStringOrNumber(arguments[1]) ||
+        (arguments[1] instanceof Array) ||
+        arguments[1].tagName) {
+          this._children(element, arguments[1]);
+        } else {
+          var attrs = this._attributes(arguments[1]);
+          if(attrs.length) {
+            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
+              parentElement.innerHTML = "<" +elementName + " " +
+                attrs + "></" + elementName + ">";
+            } catch(e) {}
+            element = parentElement.firstChild || null;
+            // workaround firefox 1.0.X bug
+            if(!element) {
+              element = document.createElement(elementName);
+              for(attr in arguments[1])
+                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
+            }
+            if(element.tagName.toUpperCase() != elementName)
+              element = parentElement.getElementsByTagName(elementName)[0];
+          }
+        }
+
+    // text, or array of children
+    if(arguments[2])
+      this._children(element, arguments[2]);
+
+     return $(element);
+  },
+  _text: function(text) {
+     return document.createTextNode(text);
+  },
+
+  ATTR_MAP: {
+    'className': 'class',
+    'htmlFor': 'for'
+  },
+
+  _attributes: function(attributes) {
+    var attrs = [];
+    for(attribute in attributes)
+      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
+          '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'"') + '"');
+    return attrs.join(" ");
+  },
+  _children: function(element, children) {
+    if(children.tagName) {
+      element.appendChild(children);
+      return;
+    }
+    if(typeof children=='object') { // array can hold nodes and text
+      children.flatten().each( function(e) {
+        if(typeof e=='object')
+          element.appendChild(e);
+        else
+          if(Builder._isStringOrNumber(e))
+            element.appendChild(Builder._text(e));
+      });
+    } else
+      if(Builder._isStringOrNumber(children))
+        element.appendChild(Builder._text(children));
+  },
+  _isStringOrNumber: function(param) {
+    return(typeof param=='string' || typeof param=='number');
+  },
+  build: function(html) {
+    var element = this.node('div');
+    $(element).update(html.strip());
+    return element.down();
+  },
+  dump: function(scope) {
+    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope
+
+    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
+      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
+      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
+      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
+      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
+      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);
+
+    tags.each( function(tag){
+      scope[tag] = function() {
+        return Builder.node.apply(Builder, [tag].concat($A(arguments)));
+      };
+    });
+  }
+};
\ No newline at end of file
diff --git a/gosa-core/html/include/controls.js b/gosa-core/html/include/controls.js
new file mode 100644
index 0000000..7392fb6
--- /dev/null
+++ b/gosa-core/html/include/controls.js
@@ -0,0 +1,965 @@
+// script.aculo.us controls.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005-2009 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
+//           (c) 2005-2009 Jon Tirsen (http://www.tirsen.com)
+// Contributors:
+//  Richard Livsey
+//  Rahul Bhargava
+//  Rob Wills
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+// Autocompleter.Base handles all the autocompletion functionality
+// that's independent of the data source for autocompletion. This
+// includes drawing the autocompletion menu, observing keyboard
+// and mouse events, and similar.
+//
+// Specific autocompleters need to provide, at the very least,
+// a getUpdatedChoices function that will be invoked every time
+// the text inside the monitored textbox changes. This method
+// should get the text for which to provide autocompletion by
+// invoking this.getToken(), NOT by directly accessing
+// this.element.value. This is to allow incremental tokenized
+// autocompletion. Specific auto-completion logic (AJAX, etc)
+// belongs in getUpdatedChoices.
+//
+// Tokenized incremental autocompletion is enabled automatically
+// when an autocompleter is instantiated with the 'tokens' option
+// in the options parameter, e.g.:
+// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
+// will incrementally autocomplete with a comma as the token.
+// Additionally, ',' in the above example can be replaced with
+// a token array, e.g. { tokens: [',', '\n'] } which
+// enables autocompletion on multiple tokens. This is most
+// useful when one of the tokens is \n (a newline), as it
+// allows smart autocompletion after linebreaks.
+
+if(typeof Effect == 'undefined')
+  throw("controls.js requires including script.aculo.us' effects.js library");
+
+var Autocompleter = { };
+Autocompleter.Base = Class.create({
+  baseInitialize: function(element, update, options) {
+    element          = $(element);
+    this.element     = element;
+    this.update      = $(update);
+    this.hasFocus    = false;
+    this.changed     = false;
+    this.active      = false;
+    this.index       = 0;
+    this.entryCount  = 0;
+    this.oldElementValue = this.element.value;
+
+    if(this.setOptions)
+      this.setOptions(options);
+    else
+      this.options = options || { };
+
+    this.options.paramName    = this.options.paramName || this.element.name;
+    this.options.tokens       = this.options.tokens || [];
+    this.options.frequency    = this.options.frequency || 0.4;
+    this.options.minChars     = this.options.minChars || 1;
+    this.options.onShow       = this.options.onShow ||
+      function(element, update){
+        if(!update.style.position || update.style.position=='absolute') {
+          update.style.position = 'absolute';
+          Position.clone(element, update, {
+            setHeight: false,
+            offsetTop: element.offsetHeight
+          });
+        }
+        Effect.Appear(update,{duration:0.15});
+      };
+    this.options.onHide = this.options.onHide ||
+      function(element, update){ new Effect.Fade(update,{duration:0.15}) };
+
+    if(typeof(this.options.tokens) == 'string')
+      this.options.tokens = new Array(this.options.tokens);
+    // Force carriage returns as token delimiters anyway
+    if (!this.options.tokens.include('\n'))
+      this.options.tokens.push('\n');
+
+    this.observer = null;
+
+    this.element.setAttribute('autocomplete','off');
+
+    Element.hide(this.update);
+
+    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
+    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
+  },
+
+  show: function() {
+    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
+    if(!this.iefix &&
+      (Prototype.Browser.IE) &&
+      (Element.getStyle(this.update, 'position')=='absolute')) {
+      new Insertion.After(this.update,
+       '<iframe id="' + this.update.id + '_iefix" '+
+       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
+       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
+      this.iefix = $(this.update.id+'_iefix');
+    }
+    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
+  },
+
+  fixIEOverlapping: function() {
+    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
+    this.iefix.style.zIndex = 1;
+    this.update.style.zIndex = 2;
+    Element.show(this.iefix);
+  },
+
+  hide: function() {
+    this.stopIndicator();
+    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
+    if(this.iefix) Element.hide(this.iefix);
+  },
+
+  startIndicator: function() {
+    if(this.options.indicator) Element.show(this.options.indicator);
+  },
+
+  stopIndicator: function() {
+    if(this.options.indicator) Element.hide(this.options.indicator);
+  },
+
+  onKeyPress: function(event) {
+    if(this.active)
+      switch(event.keyCode) {
+       case Event.KEY_TAB:
+       case Event.KEY_RETURN:
+         this.selectEntry();
+         Event.stop(event);
+       case Event.KEY_ESC:
+         this.hide();
+         this.active = false;
+         Event.stop(event);
+         return;
+       case Event.KEY_LEFT:
+       case Event.KEY_RIGHT:
+         return;
+       case Event.KEY_UP:
+         this.markPrevious();
+         this.render();
+         Event.stop(event);
+         return;
+       case Event.KEY_DOWN:
+         this.markNext();
+         this.render();
+         Event.stop(event);
+         return;
+      }
+     else
+       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
+         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
+
+    this.changed = true;
+    this.hasFocus = true;
+
+    if(this.observer) clearTimeout(this.observer);
+      this.observer =
+        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
+  },
+
+  activate: function() {
+    this.changed = false;
+    this.hasFocus = true;
+    this.getUpdatedChoices();
+  },
+
+  onHover: function(event) {
+    var element = Event.findElement(event, 'LI');
+    if(this.index != element.autocompleteIndex)
+    {
+        this.index = element.autocompleteIndex;
+        this.render();
+    }
+    Event.stop(event);
+  },
+
+  onClick: function(event) {
+    var element = Event.findElement(event, 'LI');
+    this.index = element.autocompleteIndex;
+    this.selectEntry();
+    this.hide();
+  },
+
+  onBlur: function(event) {
+    // needed to make click events working
+    setTimeout(this.hide.bind(this), 250);
+    this.hasFocus = false;
+    this.active = false;
+  },
+
+  render: function() {
+    if(this.entryCount > 0) {
+      for (var i = 0; i < this.entryCount; i++)
+        this.index==i ?
+          Element.addClassName(this.getEntry(i),"selected") :
+          Element.removeClassName(this.getEntry(i),"selected");
+      if(this.hasFocus) {
+        this.show();
+        this.active = true;
+      }
+    } else {
+      this.active = false;
+      this.hide();
+    }
+  },
+
+  markPrevious: function() {
+    if(this.index > 0) this.index--;
+      else this.index = this.entryCount-1;
+    this.getEntry(this.index).scrollIntoView(true);
+  },
+
+  markNext: function() {
+    if(this.index < this.entryCount-1) this.index++;
+      else this.index = 0;
+    this.getEntry(this.index).scrollIntoView(false);
+  },
+
+  getEntry: function(index) {
+    return this.update.firstChild.childNodes[index];
+  },
+
+  getCurrentEntry: function() {
+    return this.getEntry(this.index);
+  },
+
+  selectEntry: function() {
+    this.active = false;
+    this.updateElement(this.getCurrentEntry());
+  },
+
+  updateElement: function(selectedElement) {
+    if (this.options.updateElement) {
+      this.options.updateElement(selectedElement);
+      return;
+    }
+    var value = '';
+    if (this.options.select) {
+      var nodes = $(selectedElement).select('.' + this.options.select) || [];
+      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
+    } else
+      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
+
+    var bounds = this.getTokenBounds();
+    if (bounds[0] != -1) {
+      var newValue = this.element.value.substr(0, bounds[0]);
+      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
+      if (whitespace)
+        newValue += whitespace[0];
+      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
+    } else {
+      this.element.value = value;
+    }
+    this.oldElementValue = this.element.value;
+    this.element.focus();
+
+    if (this.options.afterUpdateElement)
+      this.options.afterUpdateElement(this.element, selectedElement);
+  },
+
+  updateChoices: function(choices) {
+    if(!this.changed && this.hasFocus) {
+      this.update.innerHTML = choices;
+      Element.cleanWhitespace(this.update);
+      Element.cleanWhitespace(this.update.down());
+
+      if(this.update.firstChild && this.update.down().childNodes) {
+        this.entryCount =
+          this.update.down().childNodes.length;
+        for (var i = 0; i < this.entryCount; i++) {
+          var entry = this.getEntry(i);
+          entry.autocompleteIndex = i;
+          this.addObservers(entry);
+        }
+      } else {
+        this.entryCount = 0;
+      }
+
+      this.stopIndicator();
+      this.index = 0;
+
+      if(this.entryCount==1 && this.options.autoSelect) {
+        this.selectEntry();
+        this.hide();
+      } else {
+        this.render();
+      }
+    }
+  },
+
+  addObservers: function(element) {
+    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
+    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
+  },
+
+  onObserverEvent: function() {
+    this.changed = false;
+    this.tokenBounds = null;
+    if(this.getToken().length>=this.options.minChars) {
+      this.getUpdatedChoices();
+    } else {
+      this.active = false;
+      this.hide();
+    }
+    this.oldElementValue = this.element.value;
+  },
+
+  getToken: function() {
+    var bounds = this.getTokenBounds();
+    return this.element.value.substring(bounds[0], bounds[1]).strip();
+  },
+
+  getTokenBounds: function() {
+    if (null != this.tokenBounds) return this.tokenBounds;
+    var value = this.element.value;
+    if (value.strip().empty()) return [-1, 0];
+    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
+    var offset = (diff == this.oldElementValue.length ? 1 : 0);
+    var prevTokenPos = -1, nextTokenPos = value.length;
+    var tp;
+    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
+      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
+      if (tp > prevTokenPos) prevTokenPos = tp;
+      tp = value.indexOf(this.options.tokens[index], diff + offset);
+      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
+    }
+    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
+  }
+});
+
+Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
+  var boundary = Math.min(newS.length, oldS.length);
+  for (var index = 0; index < boundary; ++index)
+    if (newS[index] != oldS[index])
+      return index;
+  return boundary;
+};
+
+Ajax.Autocompleter = Class.create(Autocompleter.Base, {
+  initialize: function(element, update, url, options) {
+    this.baseInitialize(element, update, options);
+    this.options.asynchronous  = true;
+    this.options.onComplete    = this.onComplete.bind(this);
+    this.options.defaultParams = this.options.parameters || null;
+    this.url                   = url;
+  },
+
+  getUpdatedChoices: function() {
+    this.startIndicator();
+
+    var entry = encodeURIComponent(this.options.paramName) + '=' +
+      encodeURIComponent(this.getToken());
+
+    this.options.parameters = this.options.callback ?
+      this.options.callback(this.element, entry) : entry;
+
+    if(this.options.defaultParams)
+      this.options.parameters += '&' + this.options.defaultParams;
+
+    new Ajax.Request(this.url, this.options);
+  },
+
+  onComplete: function(request) {
+    this.updateChoices(request.responseText);
+  }
+});
+
+// The local array autocompleter. Used when you'd prefer to
+// inject an array of autocompletion options into the page, rather
+// than sending out Ajax queries, which can be quite slow sometimes.
+//
+// The constructor takes four parameters. The first two are, as usual,
+// the id of the monitored textbox, and id of the autocompletion menu.
+// The third is the array you want to autocomplete from, and the fourth
+// is the options block.
+//
+// Extra local autocompletion options:
+// - choices - How many autocompletion choices to offer
+//
+// - partialSearch - If false, the autocompleter will match entered
+//                    text only at the beginning of strings in the
+//                    autocomplete array. Defaults to true, which will
+//                    match text at the beginning of any *word* in the
+//                    strings in the autocomplete array. If you want to
+//                    search anywhere in the string, additionally set
+//                    the option fullSearch to true (default: off).
+//
+// - fullSsearch - Search anywhere in autocomplete array strings.
+//
+// - partialChars - How many characters to enter before triggering
+//                   a partial match (unlike minChars, which defines
+//                   how many characters are required to do any match
+//                   at all). Defaults to 2.
+//
+// - ignoreCase - Whether to ignore case when autocompleting.
+//                 Defaults to true.
+//
+// It's possible to pass in a custom function as the 'selector'
+// option, if you prefer to write your own autocompletion logic.
+// In that case, the other options above will not apply unless
+// you support them.
+
+Autocompleter.Local = Class.create(Autocompleter.Base, {
+  initialize: function(element, update, array, options) {
+    this.baseInitialize(element, update, options);
+    this.options.array = array;
+  },
+
+  getUpdatedChoices: function() {
+    this.updateChoices(this.options.selector(this));
+  },
+
+  setOptions: function(options) {
+    this.options = Object.extend({
+      choices: 10,
+      partialSearch: true,
+      partialChars: 2,
+      ignoreCase: true,
+      fullSearch: false,
+      selector: function(instance) {
+        var ret       = []; // Beginning matches
+        var partial   = []; // Inside matches
+        var entry     = instance.getToken();
+        var count     = 0;
+
+        for (var i = 0; i < instance.options.array.length &&
+          ret.length < instance.options.choices ; i++) {
+
+          var elem = instance.options.array[i];
+          var foundPos = instance.options.ignoreCase ?
+            elem.toLowerCase().indexOf(entry.toLowerCase()) :
+            elem.indexOf(entry);
+
+          while (foundPos != -1) {
+            if (foundPos == 0 && elem.length != entry.length) {
+              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
+                elem.substr(entry.length) + "</li>");
+              break;
+            } else if (entry.length >= instance.options.partialChars &&
+              instance.options.partialSearch && foundPos != -1) {
+              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
+                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
+                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
+                  foundPos + entry.length) + "</li>");
+                break;
+              }
+            }
+
+            foundPos = instance.options.ignoreCase ?
+              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
+              elem.indexOf(entry, foundPos + 1);
+
+          }
+        }
+        if (partial.length)
+          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
+        return "<ul>" + ret.join('') + "</ul>";
+      }
+    }, options || { });
+  }
+});
+
+// AJAX in-place editor and collection editor
+// Full rewrite by Christophe Porteneuve <tdd at tddsworld.com> (April 2007).
+
+// Use this if you notice weird scrolling problems on some browsers,
+// the DOM might be a bit confused when this gets called so do this
+// waits 1 ms (with setTimeout) until it does the activation
+Field.scrollFreeActivate = function(field) {
+  setTimeout(function() {
+    Field.activate(field);
+  }, 1);
+};
+
+Ajax.InPlaceEditor = Class.create({
+  initialize: function(element, url, options) {
+    this.url = url;
+    this.element = element = $(element);
+    this.prepareOptions();
+    this._controls = { };
+    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
+    Object.extend(this.options, options || { });
+    if (!this.options.formId && this.element.id) {
+      this.options.formId = this.element.id + '-inplaceeditor';
+      if ($(this.options.formId))
+        this.options.formId = '';
+    }
+    if (this.options.externalControl)
+      this.options.externalControl = $(this.options.externalControl);
+    if (!this.options.externalControl)
+      this.options.externalControlOnly = false;
+    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
+    this.element.title = this.options.clickToEditText;
+    this._boundCancelHandler = this.handleFormCancellation.bind(this);
+    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
+    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
+    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
+    this._boundWrapperHandler = this.wrapUp.bind(this);
+    this.registerListeners();
+  },
+  checkForEscapeOrReturn: function(e) {
+    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
+    if (Event.KEY_ESC == e.keyCode)
+      this.handleFormCancellation(e);
+    else if (Event.KEY_RETURN == e.keyCode)
+      this.handleFormSubmission(e);
+  },
+  createControl: function(mode, handler, extraClasses) {
+    var control = this.options[mode + 'Control'];
+    var text = this.options[mode + 'Text'];
+    if ('button' == control) {
+      var btn = document.createElement('input');
+      btn.type = 'submit';
+      btn.value = text;
+      btn.className = 'editor_' + mode + '_button';
+      if ('cancel' == mode)
+        btn.onclick = this._boundCancelHandler;
+      this._form.appendChild(btn);
+      this._controls[mode] = btn;
+    } else if ('link' == control) {
+      var link = document.createElement('a');
+      link.href = '#';
+      link.appendChild(document.createTextNode(text));
+      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
+      link.className = 'editor_' + mode + '_link';
+      if (extraClasses)
+        link.className += ' ' + extraClasses;
+      this._form.appendChild(link);
+      this._controls[mode] = link;
+    }
+  },
+  createEditField: function() {
+    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
+    var fld;
+    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
+      fld = document.createElement('input');
+      fld.type = 'text';
+      var size = this.options.size || this.options.cols || 0;
+      if (0 < size) fld.size = size;
+    } else {
+      fld = document.createElement('textarea');
+      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
+      fld.cols = this.options.cols || 40;
+    }
+    fld.name = this.options.paramName;
+    fld.value = text; // No HTML breaks conversion anymore
+    fld.className = 'editor_field';
+    if (this.options.submitOnBlur)
+      fld.onblur = this._boundSubmitHandler;
+    this._controls.editor = fld;
+    if (this.options.loadTextURL)
+      this.loadExternalText();
+    this._form.appendChild(this._controls.editor);
+  },
+  createForm: function() {
+    var ipe = this;
+    function addText(mode, condition) {
+      var text = ipe.options['text' + mode + 'Controls'];
+      if (!text || condition === false) return;
+      ipe._form.appendChild(document.createTextNode(text));
+    };
+    this._form = $(document.createElement('form'));
+    this._form.id = this.options.formId;
+    this._form.addClassName(this.options.formClassName);
+    this._form.onsubmit = this._boundSubmitHandler;
+    this.createEditField();
+    if ('textarea' == this._controls.editor.tagName.toLowerCase())
+      this._form.appendChild(document.createElement('br'));
+    if (this.options.onFormCustomization)
+      this.options.onFormCustomization(this, this._form);
+    addText('Before', this.options.okControl || this.options.cancelControl);
+    this.createControl('ok', this._boundSubmitHandler);
+    addText('Between', this.options.okControl && this.options.cancelControl);
+    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
+    addText('After', this.options.okControl || this.options.cancelControl);
+  },
+  destroy: function() {
+    if (this._oldInnerHTML)
+      this.element.innerHTML = this._oldInnerHTML;
+    this.leaveEditMode();
+    this.unregisterListeners();
+  },
+  enterEditMode: function(e) {
+    if (this._saving || this._editing) return;
+    this._editing = true;
+    this.triggerCallback('onEnterEditMode');
+    if (this.options.externalControl)
+      this.options.externalControl.hide();
+    this.element.hide();
+    this.createForm();
+    this.element.parentNode.insertBefore(this._form, this.element);
+    if (!this.options.loadTextURL)
+      this.postProcessEditField();
+    if (e) Event.stop(e);
+  },
+  enterHover: function(e) {
+    if (this.options.hoverClassName)
+      this.element.addClassName(this.options.hoverClassName);
+    if (this._saving) return;
+    this.triggerCallback('onEnterHover');
+  },
+  getText: function() {
+    return this.element.innerHTML.unescapeHTML();
+  },
+  handleAJAXFailure: function(transport) {
+    this.triggerCallback('onFailure', transport);
+    if (this._oldInnerHTML) {
+      this.element.innerHTML = this._oldInnerHTML;
+      this._oldInnerHTML = null;
+    }
+  },
+  handleFormCancellation: function(e) {
+    this.wrapUp();
+    if (e) Event.stop(e);
+  },
+  handleFormSubmission: function(e) {
+    var form = this._form;
+    var value = $F(this._controls.editor);
+    this.prepareSubmission();
+    var params = this.options.callback(form, value) || '';
+    if (Object.isString(params))
+      params = params.toQueryParams();
+    params.editorId = this.element.id;
+    if (this.options.htmlResponse) {
+      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
+      Object.extend(options, {
+        parameters: params,
+        onComplete: this._boundWrapperHandler,
+        onFailure: this._boundFailureHandler
+      });
+      new Ajax.Updater({ success: this.element }, this.url, options);
+    } else {
+      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+      Object.extend(options, {
+        parameters: params,
+        onComplete: this._boundWrapperHandler,
+        onFailure: this._boundFailureHandler
+      });
+      new Ajax.Request(this.url, options);
+    }
+    if (e) Event.stop(e);
+  },
+  leaveEditMode: function() {
+    this.element.removeClassName(this.options.savingClassName);
+    this.removeForm();
+    this.leaveHover();
+    this.element.style.backgroundColor = this._originalBackground;
+    this.element.show();
+    if (this.options.externalControl)
+      this.options.externalControl.show();
+    this._saving = false;
+    this._editing = false;
+    this._oldInnerHTML = null;
+    this.triggerCallback('onLeaveEditMode');
+  },
+  leaveHover: function(e) {
+    if (this.options.hoverClassName)
+      this.element.removeClassName(this.options.hoverClassName);
+    if (this._saving) return;
+    this.triggerCallback('onLeaveHover');
+  },
+  loadExternalText: function() {
+    this._form.addClassName(this.options.loadingClassName);
+    this._controls.editor.disabled = true;
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        this._form.removeClassName(this.options.loadingClassName);
+        var text = transport.responseText;
+        if (this.options.stripLoadedTextTags)
+          text = text.stripTags();
+        this._controls.editor.value = text;
+        this._controls.editor.disabled = false;
+        this.postProcessEditField();
+      }.bind(this),
+      onFailure: this._boundFailureHandler
+    });
+    new Ajax.Request(this.options.loadTextURL, options);
+  },
+  postProcessEditField: function() {
+    var fpc = this.options.fieldPostCreation;
+    if (fpc)
+      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
+  },
+  prepareOptions: function() {
+    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
+    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
+    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
+      Object.extend(this.options, defs);
+    }.bind(this));
+  },
+  prepareSubmission: function() {
+    this._saving = true;
+    this.removeForm();
+    this.leaveHover();
+    this.showSaving();
+  },
+  registerListeners: function() {
+    this._listeners = { };
+    var listener;
+    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
+      listener = this[pair.value].bind(this);
+      this._listeners[pair.key] = listener;
+      if (!this.options.externalControlOnly)
+        this.element.observe(pair.key, listener);
+      if (this.options.externalControl)
+        this.options.externalControl.observe(pair.key, listener);
+    }.bind(this));
+  },
+  removeForm: function() {
+    if (!this._form) return;
+    this._form.remove();
+    this._form = null;
+    this._controls = { };
+  },
+  showSaving: function() {
+    this._oldInnerHTML = this.element.innerHTML;
+    this.element.innerHTML = this.options.savingText;
+    this.element.addClassName(this.options.savingClassName);
+    this.element.style.backgroundColor = this._originalBackground;
+    this.element.show();
+  },
+  triggerCallback: function(cbName, arg) {
+    if ('function' == typeof this.options[cbName]) {
+      this.options[cbName](this, arg);
+    }
+  },
+  unregisterListeners: function() {
+    $H(this._listeners).each(function(pair) {
+      if (!this.options.externalControlOnly)
+        this.element.stopObserving(pair.key, pair.value);
+      if (this.options.externalControl)
+        this.options.externalControl.stopObserving(pair.key, pair.value);
+    }.bind(this));
+  },
+  wrapUp: function(transport) {
+    this.leaveEditMode();
+    // Can't use triggerCallback due to backward compatibility: requires
+    // binding + direct element
+    this._boundComplete(transport, this.element);
+  }
+});
+
+Object.extend(Ajax.InPlaceEditor.prototype, {
+  dispose: Ajax.InPlaceEditor.prototype.destroy
+});
+
+Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
+  initialize: function($super, element, url, options) {
+    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
+    $super(element, url, options);
+  },
+
+  createEditField: function() {
+    var list = document.createElement('select');
+    list.name = this.options.paramName;
+    list.size = 1;
+    this._controls.editor = list;
+    this._collection = this.options.collection || [];
+    if (this.options.loadCollectionURL)
+      this.loadCollection();
+    else
+      this.checkForExternalText();
+    this._form.appendChild(this._controls.editor);
+  },
+
+  loadCollection: function() {
+    this._form.addClassName(this.options.loadingClassName);
+    this.showLoadingText(this.options.loadingCollectionText);
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        var js = transport.responseText.strip();
+        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
+          throw('Server returned an invalid collection representation.');
+        this._collection = eval(js);
+        this.checkForExternalText();
+      }.bind(this),
+      onFailure: this.onFailure
+    });
+    new Ajax.Request(this.options.loadCollectionURL, options);
+  },
+
+  showLoadingText: function(text) {
+    this._controls.editor.disabled = true;
+    var tempOption = this._controls.editor.firstChild;
+    if (!tempOption) {
+      tempOption = document.createElement('option');
+      tempOption.value = '';
+      this._controls.editor.appendChild(tempOption);
+      tempOption.selected = true;
+    }
+    tempOption.update((text || '').stripScripts().stripTags());
+  },
+
+  checkForExternalText: function() {
+    this._text = this.getText();
+    if (this.options.loadTextURL)
+      this.loadExternalText();
+    else
+      this.buildOptionList();
+  },
+
+  loadExternalText: function() {
+    this.showLoadingText(this.options.loadingText);
+    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
+    Object.extend(options, {
+      parameters: 'editorId=' + encodeURIComponent(this.element.id),
+      onComplete: Prototype.emptyFunction,
+      onSuccess: function(transport) {
+        this._text = transport.responseText.strip();
+        this.buildOptionList();
+      }.bind(this),
+      onFailure: this.onFailure
+    });
+    new Ajax.Request(this.options.loadTextURL, options);
+  },
+
+  buildOptionList: function() {
+    this._form.removeClassName(this.options.loadingClassName);
+    this._collection = this._collection.map(function(entry) {
+      return 2 === entry.length ? entry : [entry, entry].flatten();
+    });
+    var marker = ('value' in this.options) ? this.options.value : this._text;
+    var textFound = this._collection.any(function(entry) {
+      return entry[0] == marker;
+    }.bind(this));
+    this._controls.editor.update('');
+    var option;
+    this._collection.each(function(entry, index) {
+      option = document.createElement('option');
+      option.value = entry[0];
+      option.selected = textFound ? entry[0] == marker : 0 == index;
+      option.appendChild(document.createTextNode(entry[1]));
+      this._controls.editor.appendChild(option);
+    }.bind(this));
+    this._controls.editor.disabled = false;
+    Field.scrollFreeActivate(this._controls.editor);
+  }
+});
+
+//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
+//**** This only  exists for a while,  in order to  let ****
+//**** users adapt to  the new API.  Read up on the new ****
+//**** API and convert your code to it ASAP!            ****
+
+Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
+  if (!options) return;
+  function fallback(name, expr) {
+    if (name in options || expr === undefined) return;
+    options[name] = expr;
+  };
+  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
+    options.cancelLink == options.cancelButton == false ? false : undefined)));
+  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
+    options.okLink == options.okButton == false ? false : undefined)));
+  fallback('highlightColor', options.highlightcolor);
+  fallback('highlightEndColor', options.highlightendcolor);
+};
+
+Object.extend(Ajax.InPlaceEditor, {
+  DefaultOptions: {
+    ajaxOptions: { },
+    autoRows: 3,                                // Use when multi-line w/ rows == 1
+    cancelControl: 'link',                      // 'link'|'button'|false
+    cancelText: 'cancel',
+    clickToEditText: 'Click to edit',
+    externalControl: null,                      // id|elt
+    externalControlOnly: false,
+    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
+    formClassName: 'inplaceeditor-form',
+    formId: null,                               // id|elt
+    highlightColor: '#ffff99',
+    highlightEndColor: '#ffffff',
+    hoverClassName: '',
+    htmlResponse: true,
+    loadingClassName: 'inplaceeditor-loading',
+    loadingText: 'Loading...',
+    okControl: 'button',                        // 'link'|'button'|false
+    okText: 'ok',
+    paramName: 'value',
+    rows: 1,                                    // If 1 and multi-line, uses autoRows
+    savingClassName: 'inplaceeditor-saving',
+    savingText: 'Saving...',
+    size: 0,
+    stripLoadedTextTags: false,
+    submitOnBlur: false,
+    textAfterControls: '',
+    textBeforeControls: '',
+    textBetweenControls: ''
+  },
+  DefaultCallbacks: {
+    callback: function(form) {
+      return Form.serialize(form);
+    },
+    onComplete: function(transport, element) {
+      // For backward compatibility, this one is bound to the IPE, and passes
+      // the element directly.  It was too often customized, so we don't break it.
+      new Effect.Highlight(element, {
+        startcolor: this.options.highlightColor, keepBackgroundImage: true });
+    },
+    onEnterEditMode: null,
+    onEnterHover: function(ipe) {
+      ipe.element.style.backgroundColor = ipe.options.highlightColor;
+      if (ipe._effect)
+        ipe._effect.cancel();
+    },
+    onFailure: function(transport, ipe) {
+      alert('Error communication with the server: ' + transport.responseText.stripTags());
+    },
+    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
+    onLeaveEditMode: null,
+    onLeaveHover: function(ipe) {
+      ipe._effect = new Effect.Highlight(ipe.element, {
+        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
+        restorecolor: ipe._originalBackground, keepBackgroundImage: true
+      });
+    }
+  },
+  Listeners: {
+    click: 'enterEditMode',
+    keydown: 'checkForEscapeOrReturn',
+    mouseover: 'enterHover',
+    mouseout: 'leaveHover'
+  }
+});
+
+Ajax.InPlaceCollectionEditor.DefaultOptions = {
+  loadingCollectionText: 'Loading options...'
+};
+
+// Delayed observer, like Form.Element.Observer,
+// but waits for delay after last key input
+// Ideal for live-search fields
+
+Form.Element.DelayedObserver = Class.create({
+  initialize: function(element, delay, callback) {
+    this.delay     = delay || 0.5;
+    this.element   = $(element);
+    this.callback  = callback;
+    this.timer     = null;
+    this.lastValue = $F(this.element);
+    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
+  },
+  delayedListener: function(event) {
+    if(this.lastValue == $F(this.element)) return;
+    if(this.timer) clearTimeout(this.timer);
+    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
+    this.lastValue = $F(this.element);
+  },
+  onTimerEvent: function() {
+    this.timer = null;
+    this.callback(this.element, $F(this.element));
+  }
+});
\ No newline at end of file
diff --git a/gosa-core/html/include/datepicker.js b/gosa-core/html/include/datepicker.js
new file mode 100644
index 0000000..2c6d0e6
--- /dev/null
+++ b/gosa-core/html/include/datepicker.js
@@ -0,0 +1,807 @@
+/**
+ * DatePicker widget using Prototype and Scriptaculous.
+ * (c) 2007 Mathieu Jondet <mathieu at eulerian.com>
+ * Eulerian Technologies
+ *
+ * DatePicker is freely distributable under the same terms as Prototype.
+ *
+ *	Modified 10.06.2008
+ * by Manu <manu at bytefresser.de>
+ *
+ */
+
+/**
+ * DatePickerFormatter class for matching and stringifying dates.
+ *
+ * By Arturas Slajus <x11 at arturaz.net>.
+ */
+var DatePickerFormatter = Class.create();
+
+DatePickerFormatter.prototype = {
+	/**
+	 * Create a DatePickerFormatter.
+	 *
+	 * format: specify a format by passing 3 value array consisting of
+	 *   "yyyy", "mm", "dd". Default: ["yyyy", "mm", "dd"].
+	 *
+	 * separator: string for splitting the values. Default: "-".
+	 *
+	 * Use it like this:
+	 *   var df = new DatePickerFormatter(["dd", "mm", "yyyy"], "/");
+	 *   df.current_date();
+	 *   df.match("7/7/2007");
+	 */
+	initialize: function(format, separator) {
+		
+		if (Object.isUndefined(format))
+			format = ["yyyy", "mm", "dd"];
+		if (Object.isUndefined(separator))
+			separator = "-";
+		
+		this._format 				= format;
+		this.separator				= separator;
+		    
+		this._format_year_index	= format.indexOf("yyyy");
+		this._format_month_index= format.indexOf("mm");
+		this._format_day_index	= format.indexOf("dd");
+		    
+		this._year_regexp			= /^\d{4}$/;
+		this._month_regexp 		= /^0\d|1[012]|\d$/;
+		this._day_regexp 			= /^0\d|[12]\d|3[01]|\d$/;
+	},
+    
+	/**
+	* Match a string against date format.
+	* Returns: [year, month, day]
+	*/
+	match: function(str) {
+	
+		var d = str.split(this.separator);
+		
+		if (d.length < 3) {
+			return false;
+		}
+		
+		var year = d[this._format_year_index].match(this._year_regexp);
+		if (year) {
+			year = year[0]
+		} else {
+			return false
+		}
+		var month = d[this._format_month_index].match(this._month_regexp);
+		if (month) {
+			month = month[0]
+		} else {
+			return false
+		}
+		var day = d[this._format_day_index].match(this._day_regexp);
+		if (day) {
+			day = day[0]
+		} else {
+			return false
+		}
+		
+		return [year, month, day];
+	},
+    
+	/**
+	 * Return current date according to format.
+	 */
+	current_date: function() {
+		var d = new Date;
+		return this.date_to_string (
+			d.getFullYear(),
+			d.getMonth() + 1,
+			d.getDate()
+		);
+	},
+
+	/**
+	 * Return a stringified date accordint to format.
+	 */
+	date_to_string: function(year, month, day, separator) {
+		
+		if (Object.isUndefined(separator))
+			separator = this.separator;
+	
+		var a = [0, 0, 0];
+		a[this._format_year_index]	= year;
+		a[this._format_month_index]= month.toPaddedString(2);
+		a[this._format_day_index] 	= day.toPaddedString(2);
+		
+		return a.join(separator);
+	}
+}; 
+
+/**
+ * DatePicker
+ */
+var datepickers = $H();
+
+var DatePicker	= Class.create();
+
+DatePicker.prototype	= {
+	
+	Version				: '0.9.4',
+	_relative			: null,
+	_div					: null,
+	_zindex				: 1,
+	_keepFieldEmpty	: false,
+	_daysInMonth		: [31,28,31,30,31,30,31,31,30,31,30,31],
+	_dateFormat			: [ ["dd", "mm", "yyyy"], "." ],
+	
+	/* language */
+	_language			: 'de',
+	_language_month	: $H({
+		'fr'	: [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ],
+		'en'	: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
+		'es'	: [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ],
+		'it'	: [ 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' ],
+		'de'	: [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ],
+		'pt'	: [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ],
+		'hu'	: [ 'Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December' ],
+		'lt'  : [ 'Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', 'Birželis', 'Liepa', 'Rugjūtis', 'Rusėjis', 'Spalis', 'Lapkritis', 'Gruodis' ],
+		'nl'	: [ 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december' ],
+		'dk'	: [ 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December' ],
+		'no'	: [ 'Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember' ],
+		'lv'	: [ 'Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decemberis' ],
+		'ja'	: [ '1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月' ],
+		'fi'	: [ 'Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kesäkuu', 'Heinäkuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu' ],
+		'ro'	: [ 'Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Junie', 'Julie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie' ],
+		'zh'	: [ '1 月', '2 月', '3 月', '4 月', '5 月', '6 月', '7 月', '8 月', '9 月', '10月', '11月', '12月'],
+		'sv'	: [ 'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December' ]
+	}),
+	_language_day	: $H({
+		'fr'	: [ 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim' ],
+		'en'	: [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ],
+		'es'	: [ 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sàb', 'Dom' ],
+		'it'	: [ 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom' ],
+		'de'	: [ 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So' ],
+		'pt'	: [ 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sá', 'Dom' ],
+		'hu'	: [ 'Hé', 'Ke', 'Sze', 'Csü', 'Pé', 'Szo', 'Vas' ],
+		'lt'  : [ 'Pir', 'Ant', 'Tre', 'Ket', 'Pen', 'Šeš', 'Sek' ],
+		'nl'	: [ 'ma', 'di', 'wo', 'do', 'vr', 'za', 'zo' ],
+		'dk'	: [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn' ],
+		'no'	: [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Sun' ],
+		'lv'	: [ 'P', 'O', 'T', 'C', 'Pk', 'S', 'Sv' ],
+		'ja'	: [ '月', '火', '水', '木', '金', '土', '日' ],
+		'fi'	: [ 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La', 'Su' ],
+		'ro'	: [ 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam', 'Dum' ],
+		'zh'	: [ '周一', '周二', '周三', '周四', '周五', '周六', '周日' ],
+		'sv'	: [ 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön' ]
+	}),
+	_language_close	: $H({
+		'fr'	: 'fermer',
+		'en'	: 'close',
+		'es'	: 'cierre',
+		'it'	: 'fine',
+		'de'	: 'schliessen',
+		'pt'	: 'fim',
+		'hu'	: 'bezár',
+		'lt'  : 'udaryti',
+		'nl'	: 'sluiten',
+		'dk'	: 'luk',
+		'no'	: 'lukk',
+		'lv'	: 'aizvērt',
+		'ja'	: '閉じる',
+		'fi'	: 'sulje',
+		'ro'	: 'inchide',
+		'zh'	: '关 &#38381',
+		'sv'	: 'stäng'
+	}),
+	
+	/* date manipulation */
+	_todayDate				: new Date(),
+	_current_date			: null,
+	_clickCallback			: Prototype.emptyFunction,
+	_cellCallback			: Prototype.emptyFunction,
+	_id_datepicker			: null,
+	_disablePastDate		: false,
+	_disableFutureDate	: false,
+	_oneDayInMs				: 24 * 3600 * 1000,
+	
+	/* positionning */
+	_topOffset				: 20,
+	_leftOffset				: 0,
+	_isPositionned			: false,
+	_relativePosition 	: true,
+	_setPositionTop 		: 0,
+	_setPositionLeft		: 0,
+	_bodyAppend				: false,
+	
+	/* Effects Adjustment */
+	_showEffect				: "appear", 
+	_showDuration			: 1,
+	_enableShowEffect 	: true,
+	_closeEffect			: "fade", 
+	_closeEffectDuration	: 0.3,
+	_enableCloseEffect 	: true,
+	_closeTimer				: null,
+	_enableCloseOnBlur	: false,
+	
+	/* afterClose 			: called when the close function is executed */
+	_afterClose				: Prototype.emptyFunction,
+	
+	/* return the name of current month in appropriate language */
+	getMonthLocale			: function ( month ) {
+		return this._language_month.get(this._language)[month];
+	},
+	getLocaleClose			: function () {
+		return this._language_close.get(this._language);
+	},
+	_initCurrentDate : function () {
+		
+		/* Create the DateFormatter */
+		this._df = new DatePickerFormatter(this._dateFormat[0], this._dateFormat[1]);
+		
+		/* check if value in field is proper, if not set to today */
+		this._current_date = $F(this._relative);
+		
+		if (! this._df.match(this._current_date)) {
+			
+			this._current_date = this._df.current_date();
+			
+			/* set the field value ? */
+			if (!this._keepFieldEmpty)
+				$(this._relative).value = this._current_date;
+		}
+		var a_date = this._df.match(this._current_date);
+		this._current_year	= Number(a_date[0]);
+		this._current_mon		= Number(a_date[1]) - 1;
+		this._current_day		= Number(a_date[2]);
+	},
+ 
+	/* init */
+	initialize	: function ( h_p ) {
+
+		/* arguments */
+		this._relative= h_p["relative"];
+		if (h_p["language"])
+			this._language = h_p["language"];
+		this._zindex = ( h_p["zindex"] ) ? parseInt(Number(h_p["zindex"])) : 999;
+		if (!Object.isUndefined(h_p["keepFieldEmpty"]))
+			this._keepFieldEmpty	= h_p["keepFieldEmpty"];
+		if (Object.isFunction(h_p["clickCallback"])) 
+			this._clickCallback = h_p["clickCallback"];
+		if (!Object.isUndefined(h_p["leftOffset"]))
+			this._leftOffset = parseInt(h_p["leftOffset"]);
+		if (!Object.isUndefined(h_p["topOffset"]))
+			this._topOffset = parseInt(h_p["topOffset"]);
+		if (!Object.isUndefined(h_p["relativePosition"]))
+			this._relativePosition = h_p["relativePosition"];
+		if (!Object.isUndefined(h_p["showEffect"]))
+			this._showEffect = h_p["showEffect"];
+		if (!Object.isUndefined(h_p["enableShowEffect"]))
+			this._enableShowEffect = h_p["enableShowEffect"];
+		if (!Object.isUndefined(h_p["showDuration"]))
+			this._showDuration = h_p["showDuration"];
+		if (!Object.isUndefined(h_p["closeEffect"]))
+			this._closeEffect = h_p["closeEffect"];
+		if (!Object.isUndefined(h_p["enableCloseEffect"]))
+			this._enableCloseEffect	= h_p["enableCloseEffect"];
+		if (!Object.isUndefined(h_p["closeEffectDuration"]))
+			this._closeEffectDuration = h_p["closeEffectDuration"];
+		if (Object.isFunction(h_p["afterClose"]))
+			this._afterClose = h_p["afterClose"];
+		if (!Object.isUndefined(h_p["externalControl"]))
+			this._externalControl = h_p["externalControl"];
+		if (!Object.isUndefined(h_p["dateFormat"])) 
+			this._dateFormat = h_p["dateFormat"];
+		if (Object.isFunction(h_p["cellCallback"]))
+			this._cellCallback = h_p["cellCallback"];
+  		this._setPositionTop	= ( h_p["setPositionTop"] ) ? parseInt(Number(h_p["setPositionTop"])) : 0;
+		this._setPositionLeft = ( h_p["setPositionLeft"] ) ? parseInt(Number(h_p["setPositionLeft"])) : 0;
+		if (!Object.isUndefined(h_p["enableCloseOnBlur"]) && h_p["enableCloseOnBlur"])
+			this._enableCloseOnBlur	= true;
+		if (!Object.isUndefined(h_p["disablePastDate"]) && h_p["disablePastDate"])
+			this._disablePastDate = true;
+		if (!Object.isUndefined(h_p["disableFutureDate"]) && !h_p["disableFutureDate"])
+			this._disableFutureDate	= false;
+			
+		this._id_datepicker 				= 'datepicker-'+ this._relative;
+		this._id_datepicker_prev		= this._id_datepicker +'-prev';
+		this._id_datepicker_prev_year	= this._id_datepicker +'-prev-year';
+		this._id_datepicker_next		= this._id_datepicker +'-next';
+		this._id_datepicker_next_year	= this._id_datepicker +'-next-year';
+		this._id_datepicker_hdr			= this._id_datepicker +'-header';
+		this._id_datepicker_ftr			= this._id_datepicker +'-footer';
+
+		/* build up calendar skel */
+		this._div = new Element('div', { 
+			id 			: this._id_datepicker,
+			className 	: 'datepicker',
+			style 		: 'display: none; z-index:'+ this._zindex });
+   
+//		this._div.innerHTML = '<table><thead><tr><th width="10px" id="'+ this._id_datepicker_prev +'" style="cursor: pointer;"> << </th><th id="'+ this._id_datepicker_hdr +'" colspan="5"></th><th width="10px" id="'+ this._id_datepicker_next +'" style="cursor: pointer;"> >> </th></tr></thead><tbody id="'+ this._id_datepicker +'-tbody"></tbody><tfoot><td colspan="7" id="'+ this._id_datepicker_ftr +'"></td></tfoot></table>';
+  		this._div.innerHTML = '<div class="datepicker-header"><table class="header" cellspacing="0"><tr><td id="'+ this._id_datepicker_prev_year +'" class="prev_year"> << </td><td id="'+ this._id_datepicker_prev +'" class="prev"> < </td><td id="'+ this._id_datepicker_hdr +'" class="header"></td><td id="'+ this._id_datepicker_next +'" class="next"> > </td><td id="'+ this._id_datepicker_next_year +'" class="next_year"> >> </td></tr></table></div><div class="datepicker-calendar"><table class="b [...]
+		
+		/* Build the datepicker icon */
+		var datepickeropener = Builder.node('table',{className : "datepicker-opener-table", id: this._id_datepicker + '_image'});
+		var con = Builder.node('tr',{},[
+		    Builder.node('td',{className : "datepicker-opener", id : "datepicker-opener-"+ this._relative})
+		]);
+		// insert into TBODY
+		if (datepickeropener.childNodes[0] != undefined) {
+			datepickeropener.childNodes[0].appendChild(con);
+		} else {
+			datepickeropener.appendChild(con);
+		}
+	
+		Event.observe(datepickeropener,'click', this.click.bindAsEventListener(this), false);
+	
+		this.insertAfter($(this._relative).parentNode,datepickeropener,$(this._relative));
+		/* End Build the datepicker icon */
+	
+		/* finally declare the event listener on input field */
+		//Event.observe(this._relative, 'click', this.click.bindAsEventListener(this), false);
+		
+		/* need to append on body when doc is loaded for IE */
+		document.observe('dom:loaded', this.load.bindAsEventListener(this), false);
+  
+		/* automatically close when blur event is triggered */
+		if ( this._enableCloseOnBlur ) {
+			Event.observe(this._relative, 'blur', function (e) { 
+				this._closeTimer = this.close.bind(this).delay(1); 
+			}.bindAsEventListener(this));
+			Event.observe(this._div, 'click', function (e) { 
+				if (this._closeTimer) { 
+					window.clearTimeout(this._closeTimer); 
+					this._closeTimer = null; 
+				} 
+			});
+		}
+ 	},
+ 	
+	/**
+	 * load	: called when document is fully-loaded to append datepicker
+	 *		  to main object.
+	 */
+	load : function () {
+  
+		/* if externalControl defined set the observer on it */
+		if (this._externalControl) 
+			Event.observe(this._externalControl, 'click', this.click.bindAsEventListener(this), false);
+		
+		/* append to page */
+		if (this._relativeAppend) {
+		
+			/* append to parent node */
+			if ($(this._relative).parentNode) {
+				this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML);
+				$(this._relative).parentNode.appendChild( this._div );
+			}
+		} else {
+			
+			/* append to body */
+			var body	= document.getElementsByTagName("body").item(0);
+			if (body) {
+				this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML);
+				body.appendChild(this._div);
+			}
+			if ( this._relativePosition ) {
+				var a_pos = Element.cumulativeOffset($(this._relative));
+				this.setPosition(a_pos[1], a_pos[0]);
+			} else {
+				if (this._setPositionTop || this._setPositionLeft)
+					this.setPosition(this._setPositionTop, this._setPositionLeft);
+			}
+		}
+		/* init the date in field if needed */
+		this._initCurrentDate();
+		
+		/* set the close locale content */
+		$(this._id_datepicker_ftr).innerHTML = this.getLocaleClose();
+  
+		/* declare the observers for UI control */
+		Event.observe($(this._id_datepicker_prev),		'click', this.prevMonth.bindAsEventListener(this), false);
+		Event.observe($(this._id_datepicker_prev_year),	'click', this.prevYear.bindAsEventListener(this), 	false);
+		Event.observe($(this._id_datepicker_next),		'click', this.nextMonth.bindAsEventListener(this), false);
+		Event.observe($(this._id_datepicker_next_year),	'click', this.nextYear.bindAsEventListener(this), 	false);
+		Event.observe($(this._id_datepicker_ftr),			'click', this.close.bindAsEventListener(this), 		false);
+		
+ 	},
+ 	
+ 	insertAfter : function(parent, node, referenceNode) {
+		parent.insertBefore(node, referenceNode.nextSibling);
+	},
+ 	
+	/* hack for buggy form elements layering in IE */
+	_wrap_in_iframe : function ( content ) {
+		return	( Prototype.Browser.IE && msieversion() < 8 ) ? "<div style='height:167px;width:185px;background-color:white;align:left'><iframe width='100%' height='100%' marginwidth='0' marginheight='0' frameborder='0' src='about:blank' style='filter:alpha(Opacity=50);'></iframe><div style='position:absolute;background-color:white;top:2px;left:2px;width:180px'>" + content + "</div></div>" : content;
+ 	},
+ 	
+	/**
+	 * visible	: return the visibility status of the datepicker.
+	 */
+	visible : function () {
+		return $(this._id_datepicker).visible();
+	},
+	
+	/**
+	 * click	: called when input element is clicked
+	 */
+	click	: function () {
+	
+		/* init the datepicker if it doesn't exists */
+		if ( $(this._id_datepicker) == null ) this.load();
+		var a_pos = Element.cumulativeOffset($(this._relative));
+		this.setPosition(a_pos[1], a_pos[0]);
+		if (!this._isPositionned && this._relativePosition) {
+			/* position the datepicker relatively to element */
+			var a_lt = Element.positionedOffset($(this._relative));
+			$(this._id_datepicker).setStyle({
+				'left'	: Number(a_lt[0]+this._leftOffset)+'px',
+				'top'	: Number(a_lt[1]+this._topOffset)+'px'
+			});
+			this._isPositionned	= true;
+		}
+		if (!this.visible()) {
+			this._initCurrentDate();
+			this._redrawCalendar();
+		}
+  
+		/* eval the clickCallback function */
+		eval(this._clickCallback());
+		
+		/* Effect toggle to fade-in / fade-out the datepicker */
+		if ( this._enableShowEffect ) {
+			new Effect.toggle(this._id_datepicker, this._showEffect, { duration: this._showDuration });
+		} else {
+			$(this._id_datepicker).show();
+		}
+	},
+	/**
+	 * close	: called when the datepicker is closed
+	 */
+	close		: function () {
+		if ( this._enableCloseEffect ) {
+			switch(this._closeEffect) {
+				case 'puff': 
+					new Effect.Puff(this._id_datepicker, { duration : this._closeEffectDuration });
+				break;
+				case 'blindUp': 
+					new Effect.BlindUp(this._id_datepicker, { duration : this._closeEffectDuration });
+				break;
+				case 'dropOut': 
+					new Effect.DropOut(this._id_datepicker, { duration : this._closeEffectDuration }); 
+				break;
+				case 'switchOff': 
+					new Effect.SwitchOff(this._id_datepicker, { duration : this._closeEffectDuration }); 
+				break;
+				case 'squish': 
+					new Effect.Squish(this._id_datepicker, { duration : this._closeEffectDuration });
+				break;
+				case 'fold': 
+					new Effect.Fold(this._id_datepicker, { duration : this._closeEffectDuration });
+				break;
+				case 'shrink': 
+					new Effect.Shrink(this._id_datepicker, { duration : this._closeEffectDuration });
+				break;
+				default: 
+					new Effect.Fade(this._id_datepicker, {	duration : this._closeEffectDuration });
+				break;
+			};
+		} else {
+			$(this._id_datepicker).hide();
+		}
+		eval(this._afterClose());
+	},
+	
+	/**
+	 * setDateFormat
+	 */
+	setDateFormat : function ( format, separator ) {
+		if (Object.isUndefined(format))
+			format = this._dateFormat[0];
+		if (Object.isUndefined(separator))
+			separator = this._dateFormat[1];
+		this._dateFormat = [ format, separator ];
+	},
+	
+	/**
+	 * setPosition	: set the position of the datepicker.
+	 *  param : t=top | l=left
+	 */
+	setPosition	: function ( t, l ) {
+		var h_pos = { 'top' : '0px', 'left' : '0px' };
+		if (!Object.isUndefined(t))
+			h_pos['top'] = Number(t) + this._topOffset +'px';
+		if (!Object.isUndefined(l))
+			h_pos['left']= Number(l) + this._leftOffset +'px';
+		$(this._id_datepicker).setStyle(h_pos);
+		this._isPositionned = true;
+	},
+	
+	/**
+	 * _getMonthDays : given the year and month find the number of days.
+	 */
+	_getMonthDays : function ( year, month ) {
+		if (((0 == (year%4)) && ((0 != (year%100)) || (0 == (year%400)))) && (month == 1))
+			return 29;
+		return this._daysInMonth[month];
+	},
+	
+	/**
+	 * _buildCalendar	: draw the days array for current date
+	 */
+	_buildCalendar : function () {
+		
+		var _self = this;
+		var tbody = $(this._id_datepicker +'-tbody');
+		try {
+			while ( tbody.hasChildNodes() )
+			tbody.removeChild(tbody.childNodes[0]);
+		} catch ( e ) {};
+
+		/* generate day headers */
+		var trDay = new Element('tr');
+		this._language_day.get(this._language).each( function ( item ) {
+			var td = new Element('td');
+			td.innerHTML = item;
+			td.className = 'wday';
+			trDay.appendChild( td );
+		});
+		tbody.appendChild( trDay );
+	
+		/* generate the content of days */
+	
+		/* build-up days matrix */
+		var a_d	= [
+			[ 0, 0, 0, 0, 0, 0, 0 ],
+			[ 0, 0, 0, 0, 0, 0, 0 ],
+			[ 0, 0, 0, 0, 0, 0, 0 ],
+			[ 0, 0, 0, 0, 0, 0, 0 ],
+			[ 0, 0, 0, 0, 0, 0, 0 ],
+			[ 0, 0, 0, 0, 0, 0, 0 ]
+		];
+		
+		/* set date at beginning of month to display */
+		var d	= new Date(this._current_year, this._current_mon, 1, 12);
+		
+		/* start the day list on monday */
+		var startIndex	= ( !d.getDay() ) ? 6 : d.getDay() - 1;
+		var nbDaysInMonth	= this._getMonthDays(
+		this._current_year, this._current_mon);
+		var daysIndex = 1;
+		
+		for ( var j = startIndex; j < 7; j++ ) {
+			a_d[0][j] = { 
+				d : daysIndex,
+				m : this._current_mon,
+				y : this._current_year 
+			};
+			daysIndex++;
+		}
+		
+		var a_prevMY = this._prevMonthYear();
+		var nbDaysInMonthPrev = this._getMonthDays(a_prevMY[1], a_prevMY[0]);
+		for ( var j = 0; j < startIndex; j++ ) {
+			a_d[0][j] = { 
+				d : Number(nbDaysInMonthPrev - startIndex + j + 1),
+				m : Number(a_prevMY[0]),
+				y : a_prevMY[1],
+				c : 'outbound'
+			};
+		}
+		var switchNextMonth = false;
+		var currentMonth = this._current_mon;
+		var currentYear = this._current_year;
+		for ( var i = 1; i < 6; i++ ) {
+			for ( var j = 0; j < 7; j++ ) {
+				a_d[i][j] = { 
+					d : daysIndex,
+					m : currentMonth,
+					y : currentYear,
+					c : ( switchNextMonth ) ? 'outbound' : (((daysIndex == this._todayDate.getDate()) && (this._current_mon  == this._todayDate.getMonth()) && (this._current_year == this._todayDate.getFullYear())) ? 'today' : null)
+				};
+				daysIndex++;
+				
+				/* if at the end of the month : reset counter */
+				if (daysIndex > nbDaysInMonth ) {
+					daysIndex = 1;
+					switchNextMonth = true;
+					if (this._current_mon + 1 > 11 ) {
+						currentMonth = 0;
+						currentYear += 1;
+					} else {
+						currentMonth += 1;
+					}
+				}
+			}
+		}
+		
+		/* generate days for current date */
+		for ( var i = 0; i < 6; i++ ) {
+			var tr = new Element('tr');
+			for ( var j = 0; j < 7; j++ ) {
+				var h_ij	= a_d[i][j];
+				var td = new Element('td');
+				
+				/* id is : datepicker-day-mon-year or depending on language other way */
+				/* don't forget to add 1 on month for proper formmatting */
+				var id = $A([
+					this._relative,
+					this._df.date_to_string(h_ij["y"], h_ij["m"]+1, h_ij["d"], '-')
+				]).join('-');
+				
+				/* set id and classname for cell if exists */
+				td.setAttribute('id', id);
+				if (h_ij["c"])
+					td.className	= h_ij["c"];
+					
+				/* on onclick : rebuild date value from id of current cell */
+				var _curDate = new Date();
+				
+				_curDate.setFullYear(h_ij["y"], h_ij["m"], h_ij["d"]);
+				if ( this._disablePastDate || this._disableFutureDate ) {
+					if ( this._disablePastDate ) {
+						var _res	= ( _curDate >= this._todayDate ) ? true : false;
+						this._bindCellOnClick( td, true, _res, h_ij["c"] );
+					}
+					if ( this._disableFutureDate ) {
+						var _res	= ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false;
+						this._bindCellOnClick( td, true, _res,  h_ij["c"] );
+					}
+				} else {
+					this._bindCellOnClick( td, false );
+				}
+				td.innerHTML= h_ij["d"];
+				tr.appendChild( td );
+			}
+			tbody.appendChild( tr );
+		}
+		return	tbody;
+	},
+
+	/**
+	 * _bindCellOnClick	: bind the cell onclick depending on status.
+	 */
+	_bindCellOnClick : function ( td, wcompare, compareresult, h_ij_c ) {
+		var doBind	= false;
+		if ( wcompare ) {
+			if ( compareresult ) {
+				doBind	= true;
+			} else {
+				td.className= ( h_ij_c ) ? 'nclick_outbound' : 'nclick';
+			}
+		} else {
+			doBind = true;
+		}
+		if ( doBind ) {
+			var _self = this;
+			td.onclick = function () { 
+			$(_self._relative).value = String($(this).readAttribute('id')).replace(_self._relative+'-','').replace(/-/g, _self._df.separator);
+	
+			/* if we have a cellCallback defined call it and pass it the cell */
+			if (_self._cellCallback)
+				_self._cellCallback(this);
+			_self.close(); 
+			};
+		}
+	},
+ 
+	/**
+	 * nextMonth	: redraw the calendar content for next month.
+	 */
+	_nextMonthYear	: function () {
+		var c_mon	= this._current_mon;
+		var c_year	= this._current_year;
+		if (c_mon + 1 > 11) {
+			c_mon	= 0;
+			c_year	+= 1;
+		} else {
+			c_mon	+= 1;
+		}
+		return [ c_mon, c_year ];
+	},
+ 
+	nextMonth : function () {
+		var a_next		= this._nextMonthYear();
+		var _nextMon	= a_next[0];
+		var _nextYear	= a_next[1];
+		var _curDate	= new Date();
+		_curDate.setFullYear(_nextYear, _nextMon, 1);
+		var _res	= ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false;
+		if ( this._disableFutureDate && !_res )
+			return;
+		this._current_mon	= _nextMon;
+		this._current_year = _nextYear;
+		this._redrawCalendar();
+	},
+	
+	_nextYear : function () {
+		var c_mon	= this._current_mon;
+		var c_year	= this._current_year;
+		c_year	+= 1;
+		return [ c_mon, c_year ];
+	},
+	
+	nextYear	: function () {
+		var a_next = this._nextYear();
+		this._current_mon	= a_next[0];
+		this._current_year = a_next[1];
+		this._redrawCalendar();
+	},
+
+	/**
+	* prevMonth	: redraw the calendar content for previous month.
+	*/
+	_prevMonthYear	: function () {
+		var c_mon	= this._current_mon;
+		var c_year	= this._current_year;
+		if (c_mon - 1 < 0) {
+			c_mon	= 11;
+			c_year	-= 1;
+		} else {
+			c_mon	-= 1;
+		}
+		return [ c_mon, c_year ];
+	},
+ 
+	prevMonth : function () {
+		var a_prev		= this._prevMonthYear();
+		var _prevMon	= a_prev[0];
+		var _prevYear	= a_prev[1];
+		var _curDate	= new Date();
+		_curDate.setFullYear(_prevYear, _prevMon, 1);
+		var _res	= ( _curDate >= this._todayDate ) ? true : false;
+		if ( this._disablePastDate && !_res )
+			return;
+		this._current_mon	= _prevMon;
+		this._current_year = _prevYear;
+		this._redrawCalendar();
+	},
+	
+	_prevYear : function () {
+		var c_mon	= this._current_mon;
+		var c_year	= this._current_year;
+		c_year	-= 1;
+		return [ c_mon, c_year ];
+	},
+
+	prevYear	: function () {
+		var a_prev = this._prevYear();
+		this._current_mon	= a_prev[0];
+		this._current_year = a_prev[1];
+		this._redrawCalendar();
+	},
+	
+	_redrawCalendar : function () {
+		this._setLocaleHdr();
+		this._buildCalendar();
+	},
+	
+	_setLocaleHdr : function () {
+		
+		/* prev year link */
+		var a_prevy = this._prevYear();
+		$(this._id_datepicker_prev_year).setAttribute('title', this.getMonthLocale(a_prevy[0]) +' '+ a_prevy[1]);
+		
+		/* prev link */
+		var a_prev = this._prevMonthYear();
+		$(this._id_datepicker_prev).setAttribute('title', this.getMonthLocale(a_prev[0]) +' '+ a_prev[1]);
+		
+		/* next link */
+		var a_next = this._nextMonthYear();
+		$(this._id_datepicker_next).setAttribute('title', this.getMonthLocale(a_next[0]) +' '+ a_next[1]);
+		
+		/* next year link */
+		var a_nexty = this._nextYear();
+		$(this._id_datepicker_next_year).setAttribute('title', this.getMonthLocale(a_nexty[0]) +' '+ a_nexty[1]);
+		
+		/* header */
+		$(this._id_datepicker_hdr).update('   '+ this.getMonthLocale(this._current_mon) +' '+ this._current_year +'   ');
+	}
+};
+
+
+function msieversion()
+{
+   var ua = window.navigator.userAgent
+   var msie = ua.indexOf ( "MSIE " )
+   if ( msie > 0 )      // If Internet Explorer, return version number
+      return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
+   else                 // If another browser, return 0
+      return 0
+}
+
diff --git a/gosa-core/html/include/dragdrop.js b/gosa-core/html/include/dragdrop.js
new file mode 100644
index 0000000..15c6dbc
--- /dev/null
+++ b/gosa-core/html/include/dragdrop.js
@@ -0,0 +1,974 @@
+// script.aculo.us dragdrop.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+if(Object.isUndefined(Effect))
+  throw("dragdrop.js requires including script.aculo.us' effects.js library");
+
+var Droppables = {
+  drops: [],
+
+  remove: function(element) {
+    this.drops = this.drops.reject(function(d) { return d.element==$(element) });
+  },
+
+  add: function(element) {
+    element = $(element);
+    var options = Object.extend({
+      greedy:     true,
+      hoverclass: null,
+      tree:       false
+    }, arguments[1] || { });
+
+    // cache containers
+    if(options.containment) {
+      options._containers = [];
+      var containment = options.containment;
+      if(Object.isArray(containment)) {
+        containment.each( function(c) { options._containers.push($(c)) });
+      } else {
+        options._containers.push($(containment));
+      }
+    }
+
+    if(options.accept) options.accept = [options.accept].flatten();
+
+    Element.makePositioned(element); // fix IE
+    options.element = element;
+
+    this.drops.push(options);
+  },
+
+  findDeepestChild: function(drops) {
+    deepest = drops[0];
+
+    for (i = 1; i < drops.length; ++i)
+      if (Element.isParent(drops[i].element, deepest.element))
+        deepest = drops[i];
+
+    return deepest;
+  },
+
+  isContained: function(element, drop) {
+    var containmentNode;
+    if(drop.tree) {
+      containmentNode = element.treeNode;
+    } else {
+      containmentNode = element.parentNode;
+    }
+    return drop._containers.detect(function(c) { return containmentNode == c });
+  },
+
+  isAffected: function(point, element, drop) {
+    return (
+      (drop.element!=element) &&
+      ((!drop._containers) ||
+        this.isContained(element, drop)) &&
+      ((!drop.accept) ||
+        (Element.classNames(element).detect(
+          function(v) { return drop.accept.include(v) } ) )) &&
+      Position.within(drop.element, point[0], point[1]) );
+  },
+
+  deactivate: function(drop) {
+    if(drop.hoverclass)
+      Element.removeClassName(drop.element, drop.hoverclass);
+    this.last_active = null;
+  },
+
+  activate: function(drop) {
+    if(drop.hoverclass)
+      Element.addClassName(drop.element, drop.hoverclass);
+    this.last_active = drop;
+  },
+
+  show: function(point, element) {
+    if(!this.drops.length) return;
+    var drop, affected = [];
+
+    this.drops.each( function(drop) {
+      if(Droppables.isAffected(point, element, drop))
+        affected.push(drop);
+    });
+
+    if(affected.length>0)
+      drop = Droppables.findDeepestChild(affected);
+
+    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
+    if (drop) {
+      Position.within(drop.element, point[0], point[1]);
+      if(drop.onHover)
+        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
+
+      if (drop != this.last_active) Droppables.activate(drop);
+    }
+  },
+
+  fire: function(event, element) {
+    if(!this.last_active) return;
+    Position.prepare();
+
+    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
+      if (this.last_active.onDrop) {
+        this.last_active.onDrop(element, this.last_active.element, event);
+        return true;
+      }
+  },
+
+  reset: function() {
+    if(this.last_active)
+      this.deactivate(this.last_active);
+  }
+};
+
+var Draggables = {
+  drags: [],
+  observers: [],
+
+  register: function(draggable) {
+    if(this.drags.length == 0) {
+      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
+      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
+      this.eventKeypress  = this.keyPress.bindAsEventListener(this);
+
+      Event.observe(document, "mouseup", this.eventMouseUp);
+      Event.observe(document, "mousemove", this.eventMouseMove);
+      Event.observe(document, "keypress", this.eventKeypress);
+    }
+    this.drags.push(draggable);
+  },
+
+  unregister: function(draggable) {
+    this.drags = this.drags.reject(function(d) { return d==draggable });
+    if(this.drags.length == 0) {
+      Event.stopObserving(document, "mouseup", this.eventMouseUp);
+      Event.stopObserving(document, "mousemove", this.eventMouseMove);
+      Event.stopObserving(document, "keypress", this.eventKeypress);
+    }
+  },
+
+  activate: function(draggable) {
+    if(draggable.options.delay) {
+      this._timeout = setTimeout(function() {
+        Draggables._timeout = null;
+        window.focus();
+        Draggables.activeDraggable = draggable;
+      }.bind(this), draggable.options.delay);
+    } else {
+      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
+      this.activeDraggable = draggable;
+    }
+  },
+
+  deactivate: function() {
+    this.activeDraggable = null;
+  },
+
+  updateDrag: function(event) {
+    if(!this.activeDraggable) return;
+    var pointer = [Event.pointerX(event), Event.pointerY(event)];
+    // Mozilla-based browsers fire successive mousemove events with
+    // the same coordinates, prevent needless redrawing (moz bug?)
+    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
+    this._lastPointer = pointer;
+
+    this.activeDraggable.updateDrag(event, pointer);
+  },
+
+  endDrag: function(event) {
+    if(this._timeout) {
+      clearTimeout(this._timeout);
+      this._timeout = null;
+    }
+    if(!this.activeDraggable) return;
+    this._lastPointer = null;
+    this.activeDraggable.endDrag(event);
+    this.activeDraggable = null;
+  },
+
+  keyPress: function(event) {
+    if(this.activeDraggable)
+      this.activeDraggable.keyPress(event);
+  },
+
+  addObserver: function(observer) {
+    this.observers.push(observer);
+    this._cacheObserverCallbacks();
+  },
+
+  removeObserver: function(element) {  // element instead of observer fixes mem leaks
+    this.observers = this.observers.reject( function(o) { return o.element==element });
+    this._cacheObserverCallbacks();
+  },
+
+  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
+    if(this[eventName+'Count'] > 0)
+      this.observers.each( function(o) {
+        if(o[eventName]) o[eventName](eventName, draggable, event);
+      });
+    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
+  },
+
+  _cacheObserverCallbacks: function() {
+    ['onStart','onEnd','onDrag'].each( function(eventName) {
+      Draggables[eventName+'Count'] = Draggables.observers.select(
+        function(o) { return o[eventName]; }
+      ).length;
+    });
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Draggable = Class.create({
+  initialize: function(element) {
+    var defaults = {
+      handle: false,
+      reverteffect: function(element, top_offset, left_offset) {
+        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;
+        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,
+          queue: {scope:'_draggable', position:'end'}
+        });
+      },
+      endeffect: function(element) {
+        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
+        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
+          queue: {scope:'_draggable', position:'end'},
+          afterFinish: function(){
+            Draggable._dragging[element] = false
+          }
+        });
+      },
+      zindex: 1000,
+      revert: false,
+      quiet: false,
+      scroll: false,
+      scrollSensitivity: 20,
+      scrollSpeed: 15,
+      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
+      delay: 0
+    };
+
+    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
+      Object.extend(defaults, {
+        starteffect: function(element) {
+          element._opacity = Element.getOpacity(element);
+          Draggable._dragging[element] = true;
+          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
+        }
+      });
+
+    var options = Object.extend(defaults, arguments[1] || { });
+
+    this.element = $(element);
+
+    if(options.handle && Object.isString(options.handle))
+      this.handle = this.element.down('.'+options.handle, 0);
+
+    if(!this.handle) this.handle = $(options.handle);
+    if(!this.handle) this.handle = this.element;
+
+    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
+      options.scroll = $(options.scroll);
+      this._isScrollChild = Element.childOf(this.element, options.scroll);
+    }
+
+    Element.makePositioned(this.element); // fix IE
+
+    this.options  = options;
+    this.dragging = false;
+
+    this.eventMouseDown = this.initDrag.bindAsEventListener(this);
+    Event.observe(this.handle, "mousedown", this.eventMouseDown);
+
+    Draggables.register(this);
+  },
+
+  destroy: function() {
+    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
+    Draggables.unregister(this);
+  },
+
+  currentDelta: function() {
+    return([
+      parseInt(Element.getStyle(this.element,'left') || '0'),
+      parseInt(Element.getStyle(this.element,'top') || '0')]);
+  },
+
+  initDrag: function(event) {
+    if(!Object.isUndefined(Draggable._dragging[this.element]) &&
+      Draggable._dragging[this.element]) return;
+    if(Event.isLeftClick(event)) {
+      // abort on form elements, fixes a Firefox issue
+      var src = Event.element(event);
+      if((tag_name = src.tagName.toUpperCase()) && (
+        tag_name=='INPUT' ||
+        tag_name=='SELECT' ||
+        tag_name=='OPTION' ||
+        tag_name=='BUTTON' ||
+        tag_name=='TEXTAREA')) return;
+
+      var pointer = [Event.pointerX(event), Event.pointerY(event)];
+      var pos     = this.element.cumulativeOffset();
+      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });
+
+      Draggables.activate(this);
+      Event.stop(event);
+    }
+  },
+
+  startDrag: function(event) {
+    this.dragging = true;
+    if(!this.delta)
+      this.delta = this.currentDelta();
+
+    if(this.options.zindex) {
+      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
+      this.element.style.zIndex = this.options.zindex;
+    }
+
+    if(this.options.ghosting) {
+      this._clone = this.element.cloneNode(true);
+      this._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
+      if (!this._originallyAbsolute)
+        Position.absolutize(this.element);
+      this.element.parentNode.insertBefore(this._clone, this.element);
+    }
+
+    if(this.options.scroll) {
+      if (this.options.scroll == window) {
+        var where = this._getWindowScroll(this.options.scroll);
+        this.originalScrollLeft = where.left;
+        this.originalScrollTop = where.top;
+      } else {
+        this.originalScrollLeft = this.options.scroll.scrollLeft;
+        this.originalScrollTop = this.options.scroll.scrollTop;
+      }
+    }
+
+    Draggables.notify('onStart', this, event);
+
+    if(this.options.starteffect) this.options.starteffect(this.element);
+  },
+
+  updateDrag: function(event, pointer) {
+    if(!this.dragging) this.startDrag(event);
+
+    if(!this.options.quiet){
+      Position.prepare();
+      Droppables.show(pointer, this.element);
+    }
+
+    Draggables.notify('onDrag', this, event);
+
+    this.draw(pointer);
+    if(this.options.change) this.options.change(this);
+
+    if(this.options.scroll) {
+      this.stopScrolling();
+
+      var p;
+      if (this.options.scroll == window) {
+        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
+      } else {
+        p = Position.page(this.options.scroll);
+        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
+        p[1] += this.options.scroll.scrollTop + Position.deltaY;
+        p.push(p[0]+this.options.scroll.offsetWidth);
+        p.push(p[1]+this.options.scroll.offsetHeight);
+      }
+      var speed = [0,0];
+      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);
+      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);
+      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);
+      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
+      this.startScrolling(speed);
+    }
+
+    // fix AppleWebKit rendering
+    if(Prototype.Browser.WebKit) window.scrollBy(0,0);
+
+    Event.stop(event);
+  },
+
+  finishDrag: function(event, success) {
+    this.dragging = false;
+
+    if(this.options.quiet){
+      Position.prepare();
+      var pointer = [Event.pointerX(event), Event.pointerY(event)];
+      Droppables.show(pointer, this.element);
+    }
+
+    if(this.options.ghosting) {
+      if (!this._originallyAbsolute)
+        Position.relativize(this.element);
+      delete this._originallyAbsolute;
+      Element.remove(this._clone);
+      this._clone = null;
+    }
+
+    var dropped = false;
+    if(success) {
+      dropped = Droppables.fire(event, this.element);
+      if (!dropped) dropped = false;
+    }
+    if(dropped && this.options.onDropped) this.options.onDropped(this.element);
+    Draggables.notify('onEnd', this, event);
+
+    var revert = this.options.revert;
+    if(revert && Object.isFunction(revert)) revert = revert(this.element);
+
+    var d = this.currentDelta();
+    if(revert && this.options.reverteffect) {
+      if (dropped == 0 || revert != 'failure')
+        this.options.reverteffect(this.element,
+          d[1]-this.delta[1], d[0]-this.delta[0]);
+    } else {
+      this.delta = d;
+    }
+
+    if(this.options.zindex)
+      this.element.style.zIndex = this.originalZ;
+
+    if(this.options.endeffect)
+      this.options.endeffect(this.element);
+
+    Draggables.deactivate(this);
+    Droppables.reset();
+  },
+
+  keyPress: function(event) {
+    if(event.keyCode!=Event.KEY_ESC) return;
+    this.finishDrag(event, false);
+    Event.stop(event);
+  },
+
+  endDrag: function(event) {
+    if(!this.dragging) return;
+    this.stopScrolling();
+    this.finishDrag(event, true);
+    Event.stop(event);
+  },
+
+  draw: function(point) {
+    var pos = this.element.cumulativeOffset();
+    if(this.options.ghosting) {
+      var r   = Position.realOffset(this.element);
+      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
+    }
+
+    var d = this.currentDelta();
+    pos[0] -= d[0]; pos[1] -= d[1];
+
+    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
+      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
+      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
+    }
+
+    var p = [0,1].map(function(i){
+      return (point[i]-pos[i]-this.offset[i])
+    }.bind(this));
+
+    if(this.options.snap) {
+      if(Object.isFunction(this.options.snap)) {
+        p = this.options.snap(p[0],p[1],this);
+      } else {
+      if(Object.isArray(this.options.snap)) {
+        p = p.map( function(v, i) {
+          return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this));
+      } else {
+        p = p.map( function(v) {
+          return (v/this.options.snap).round()*this.options.snap }.bind(this));
+      }
+    }}
+
+    var style = this.element.style;
+    if((!this.options.constraint) || (this.options.constraint=='horizontal'))
+      style.left = p[0] + "px";
+    if((!this.options.constraint) || (this.options.constraint=='vertical'))
+      style.top  = p[1] + "px";
+
+    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
+  },
+
+  stopScrolling: function() {
+    if(this.scrollInterval) {
+      clearInterval(this.scrollInterval);
+      this.scrollInterval = null;
+      Draggables._lastScrollPointer = null;
+    }
+  },
+
+  startScrolling: function(speed) {
+    if(!(speed[0] || speed[1])) return;
+    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
+    this.lastScrolled = new Date();
+    this.scrollInterval = setInterval(this.scroll.bind(this), 10);
+  },
+
+  scroll: function() {
+    var current = new Date();
+    var delta = current - this.lastScrolled;
+    this.lastScrolled = current;
+    if(this.options.scroll == window) {
+      with (this._getWindowScroll(this.options.scroll)) {
+        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {
+          var d = delta / 1000;
+          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );
+        }
+      }
+    } else {
+      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
+      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
+    }
+
+    Position.prepare();
+    Droppables.show(Draggables._lastPointer, this.element);
+    Draggables.notify('onDrag', this);
+    if (this._isScrollChild) {
+      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);
+      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;
+      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;
+      if (Draggables._lastScrollPointer[0] < 0)
+        Draggables._lastScrollPointer[0] = 0;
+      if (Draggables._lastScrollPointer[1] < 0)
+        Draggables._lastScrollPointer[1] = 0;
+      this.draw(Draggables._lastScrollPointer);
+    }
+
+    if(this.options.change) this.options.change(this);
+  },
+
+  _getWindowScroll: function(w) {
+    var T, L, W, H;
+    with (w.document) {
+      if (w.document.documentElement && documentElement.scrollTop) {
+        T = documentElement.scrollTop;
+        L = documentElement.scrollLeft;
+      } else if (w.document.body) {
+        T = body.scrollTop;
+        L = body.scrollLeft;
+      }
+      if (w.innerWidth) {
+        W = w.innerWidth;
+        H = w.innerHeight;
+      } else if (w.document.documentElement && documentElement.clientWidth) {
+        W = documentElement.clientWidth;
+        H = documentElement.clientHeight;
+      } else {
+        W = body.offsetWidth;
+        H = body.offsetHeight;
+      }
+    }
+    return { top: T, left: L, width: W, height: H };
+  }
+});
+
+Draggable._dragging = { };
+
+/*--------------------------------------------------------------------------*/
+
+var SortableObserver = Class.create({
+  initialize: function(element, observer) {
+    this.element   = $(element);
+    this.observer  = observer;
+    this.lastValue = Sortable.serialize(this.element);
+  },
+
+  onStart: function() {
+    this.lastValue = Sortable.serialize(this.element);
+  },
+
+  onEnd: function() {
+    Sortable.unmark();
+    if(this.lastValue != Sortable.serialize(this.element))
+      this.observer(this.element)
+  }
+});
+
+var Sortable = {
+  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
+
+  sortables: { },
+
+  _findRootElement: function(element) {
+    while (element.tagName.toUpperCase() != "BODY") {
+      if(element.id && Sortable.sortables[element.id]) return element;
+      element = element.parentNode;
+    }
+  },
+
+  options: function(element) {
+    element = Sortable._findRootElement($(element));
+    if(!element) return;
+    return Sortable.sortables[element.id];
+  },
+
+  destroy: function(element){
+    element = $(element);
+    var s = Sortable.sortables[element.id];
+
+    if(s) {
+      Draggables.removeObserver(s.element);
+      s.droppables.each(function(d){ Droppables.remove(d) });
+      s.draggables.invoke('destroy');
+
+      delete Sortable.sortables[s.element.id];
+    }
+  },
+
+  create: function(element) {
+    element = $(element);
+    var options = Object.extend({
+      element:     element,
+      tag:         'li',       // assumes li children, override with tag: 'tagname'
+      dropOnEmpty: false,
+      tree:        false,
+      treeTag:     'ul',
+      overlap:     'vertical', // one of 'vertical', 'horizontal'
+      constraint:  'vertical', // one of 'vertical', 'horizontal', false
+      containment: element,    // also takes array of elements (or id's); or false
+      handle:      false,      // or a CSS class
+      only:        false,
+      delay:       0,
+      hoverclass:  null,
+      ghosting:    false,
+      quiet:       false,
+      scroll:      false,
+      scrollSensitivity: 20,
+      scrollSpeed: 15,
+      format:      this.SERIALIZE_RULE,
+
+      // these take arrays of elements or ids and can be
+      // used for better initialization performance
+      elements:    false,
+      handles:     false,
+
+      onChange:    Prototype.emptyFunction,
+      onUpdate:    Prototype.emptyFunction
+    }, arguments[1] || { });
+
+    // clear any old sortable with same element
+    this.destroy(element);
+
+    // build options for the draggables
+    var options_for_draggable = {
+      revert:      true,
+      quiet:       options.quiet,
+      scroll:      options.scroll,
+      scrollSpeed: options.scrollSpeed,
+      scrollSensitivity: options.scrollSensitivity,
+      delay:       options.delay,
+      ghosting:    options.ghosting,
+      constraint:  options.constraint,
+      handle:      options.handle };
+
+    if(options.starteffect)
+      options_for_draggable.starteffect = options.starteffect;
+
+    if(options.reverteffect)
+      options_for_draggable.reverteffect = options.reverteffect;
+    else
+      if(options.ghosting) options_for_draggable.reverteffect = function(element) {
+        element.style.top  = 0;
+        element.style.left = 0;
+      };
+
+    if(options.endeffect)
+      options_for_draggable.endeffect = options.endeffect;
+
+    if(options.zindex)
+      options_for_draggable.zindex = options.zindex;
+
+    // build options for the droppables
+    var options_for_droppable = {
+      overlap:     options.overlap,
+      containment: options.containment,
+      tree:        options.tree,
+      hoverclass:  options.hoverclass,
+      onHover:     Sortable.onHover
+    };
+
+    var options_for_tree = {
+      onHover:      Sortable.onEmptyHover,
+      overlap:      options.overlap,
+      containment:  options.containment,
+      hoverclass:   options.hoverclass
+    };
+
+    // fix for gecko engine
+    Element.cleanWhitespace(element);
+
+    options.draggables = [];
+    options.droppables = [];
+
+    // drop on empty handling
+    if(options.dropOnEmpty || options.tree) {
+      Droppables.add(element, options_for_tree);
+      options.droppables.push(element);
+    }
+
+    (options.elements || this.findElements(element, options) || []).each( function(e,i) {
+      var handle = options.handles ? $(options.handles[i]) :
+        (options.handle ? $(e).select('.' + options.handle)[0] : e);
+      options.draggables.push(
+        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
+      Droppables.add(e, options_for_droppable);
+      if(options.tree) e.treeNode = element;
+      options.droppables.push(e);
+    });
+
+    if(options.tree) {
+      (Sortable.findTreeElements(element, options) || []).each( function(e) {
+        Droppables.add(e, options_for_tree);
+        e.treeNode = element;
+        options.droppables.push(e);
+      });
+    }
+
+    // keep reference
+    this.sortables[element.identify()] = options;
+
+    // for onupdate
+    Draggables.addObserver(new SortableObserver(element, options.onUpdate));
+
+  },
+
+  // return all suitable-for-sortable elements in a guaranteed order
+  findElements: function(element, options) {
+    return Element.findChildren(
+      element, options.only, options.tree ? true : false, options.tag);
+  },
+
+  findTreeElements: function(element, options) {
+    return Element.findChildren(
+      element, options.only, options.tree ? true : false, options.treeTag);
+  },
+
+  onHover: function(element, dropon, overlap) {
+    if(Element.isParent(dropon, element)) return;
+
+    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {
+      return;
+    } else if(overlap>0.5) {
+      Sortable.mark(dropon, 'before');
+      if(dropon.previousSibling != element) {
+        var oldParentNode = element.parentNode;
+        element.style.visibility = "hidden"; // fix gecko rendering
+        dropon.parentNode.insertBefore(element, dropon);
+        if(dropon.parentNode!=oldParentNode)
+          Sortable.options(oldParentNode).onChange(element);
+        Sortable.options(dropon.parentNode).onChange(element);
+      }
+    } else {
+      Sortable.mark(dropon, 'after');
+      var nextElement = dropon.nextSibling || null;
+      if(nextElement != element) {
+        var oldParentNode = element.parentNode;
+        element.style.visibility = "hidden"; // fix gecko rendering
+        dropon.parentNode.insertBefore(element, nextElement);
+        if(dropon.parentNode!=oldParentNode)
+          Sortable.options(oldParentNode).onChange(element);
+        Sortable.options(dropon.parentNode).onChange(element);
+      }
+    }
+  },
+
+  onEmptyHover: function(element, dropon, overlap) {
+    var oldParentNode = element.parentNode;
+    var droponOptions = Sortable.options(dropon);
+
+    if(!Element.isParent(dropon, element)) {
+      var index;
+
+      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
+      var child = null;
+
+      if(children) {
+        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);
+
+        for (index = 0; index < children.length; index += 1) {
+          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
+            offset -= Element.offsetSize (children[index], droponOptions.overlap);
+          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {
+            child = index + 1 < children.length ? children[index + 1] : null;
+            break;
+          } else {
+            child = children[index];
+            break;
+          }
+        }
+      }
+
+      dropon.insertBefore(element, child);
+
+      Sortable.options(oldParentNode).onChange(element);
+      droponOptions.onChange(element);
+    }
+  },
+
+  unmark: function() {
+    if(Sortable._marker) Sortable._marker.hide();
+  },
+
+  mark: function(dropon, position) {
+    // mark on ghosting only
+    var sortable = Sortable.options(dropon.parentNode);
+    if(sortable && !sortable.ghosting) return;
+
+    if(!Sortable._marker) {
+      Sortable._marker =
+        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
+          hide().addClassName('dropmarker').setStyle({position:'absolute'});
+      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
+    }
+    var offsets = dropon.cumulativeOffset();
+    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});
+
+    if(position=='after')
+      if(sortable.overlap == 'horizontal')
+        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
+      else
+        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});
+
+    Sortable._marker.show();
+  },
+
+  _tree: function(element, options, parent) {
+    var children = Sortable.findElements(element, options) || [];
+
+    for (var i = 0; i < children.length; ++i) {
+      var match = children[i].id.match(options.format);
+
+      if (!match) continue;
+
+      var child = {
+        id: encodeURIComponent(match ? match[1] : null),
+        element: element,
+        parent: parent,
+        children: [],
+        position: parent.children.length,
+        container: $(children[i]).down(options.treeTag)
+      };
+
+      /* Get the element containing the children and recurse over it */
+      if (child.container)
+        this._tree(child.container, options, child);
+
+      parent.children.push (child);
+    }
+
+    return parent;
+  },
+
+  tree: function(element) {
+    element = $(element);
+    var sortableOptions = this.options(element);
+    var options = Object.extend({
+      tag: sortableOptions.tag,
+      treeTag: sortableOptions.treeTag,
+      only: sortableOptions.only,
+      name: element.id,
+      format: sortableOptions.format
+    }, arguments[1] || { });
+
+    var root = {
+      id: null,
+      parent: null,
+      children: [],
+      container: element,
+      position: 0
+    };
+
+    return Sortable._tree(element, options, root);
+  },
+
+  /* Construct a [i] index for a particular node */
+  _constructIndex: function(node) {
+    var index = '';
+    do {
+      if (node.id) index = '[' + node.position + ']' + index;
+    } while ((node = node.parent) != null);
+    return index;
+  },
+
+  sequence: function(element) {
+    element = $(element);
+    var options = Object.extend(this.options(element), arguments[1] || { });
+
+    return $(this.findElements(element, options) || []).map( function(item) {
+      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
+    });
+  },
+
+  setSequence: function(element, new_sequence) {
+    element = $(element);
+    var options = Object.extend(this.options(element), arguments[2] || { });
+
+    var nodeMap = { };
+    this.findElements(element, options).each( function(n) {
+        if (n.id.match(options.format))
+            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
+        n.parentNode.removeChild(n);
+    });
+
+    new_sequence.each(function(ident) {
+      var n = nodeMap[ident];
+      if (n) {
+        n[1].appendChild(n[0]);
+        delete nodeMap[ident];
+      }
+    });
+  },
+
+  serialize: function(element) {
+    element = $(element);
+    var options = Object.extend(Sortable.options(element), arguments[1] || { });
+    var name = encodeURIComponent(
+      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);
+
+    if (options.tree) {
+      return Sortable.tree(element, arguments[1]).children.map( function (item) {
+        return [name + Sortable._constructIndex(item) + "[id]=" +
+                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
+      }).flatten().join('&');
+    } else {
+      return Sortable.sequence(element, arguments[1]).map( function(item) {
+        return name + "[]=" + encodeURIComponent(item);
+      }).join('&');
+    }
+  }
+};
+
+// Returns true if child is contained within element
+Element.isParent = function(child, element) {
+  if (!child.parentNode || child == element) return false;
+  if (child.parentNode == element) return true;
+  return Element.isParent(child.parentNode, element);
+};
+
+Element.findChildren = function(element, only, recursive, tagName) {
+  if(!element.hasChildNodes()) return null;
+  tagName = tagName.toUpperCase();
+  if(only) only = [only].flatten();
+  var elements = [];
+  $A(element.childNodes).each( function(e) {
+    if(e.tagName && e.tagName.toUpperCase()==tagName &&
+      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))
+        elements.push(e);
+    if(recursive) {
+      var grandchildren = Element.findChildren(e, only, recursive, tagName);
+      if(grandchildren) elements.push(grandchildren);
+    }
+  });
+
+  return (elements.length>0 ? elements.flatten() : []);
+};
+
+Element.offsetSize = function (element, type) {
+  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
+};
\ No newline at end of file
diff --git a/gosa-core/html/include/effects.js b/gosa-core/html/include/effects.js
new file mode 100644
index 0000000..066ee59
--- /dev/null
+++ b/gosa-core/html/include/effects.js
@@ -0,0 +1,1123 @@
+// script.aculo.us effects.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// Contributors:
+//  Justin Palmer (http://encytemedia.com/)
+//  Mark Pilgrim (http://diveintomark.org/)
+//  Martin Bialasinki
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+// converts rgb() and #xxx to #xxxxxx format,
+// returns self (or first argument) if not convertable
+String.prototype.parseColor = function() {
+  var color = '#';
+  if (this.slice(0,4) == 'rgb(') {
+    var cols = this.slice(4,this.length-1).split(',');
+    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
+  } else {
+    if (this.slice(0,1) == '#') {
+      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
+      if (this.length==7) color = this.toLowerCase();
+    }
+  }
+  return (color.length==7 ? color : (arguments[0] || this));
+};
+
+/*--------------------------------------------------------------------------*/
+
+Element.collectTextNodes = function(element) {
+  return $A($(element).childNodes).collect( function(node) {
+    return (node.nodeType==3 ? node.nodeValue :
+      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
+  }).flatten().join('');
+};
+
+Element.collectTextNodesIgnoreClass = function(element, className) {
+  return $A($(element).childNodes).collect( function(node) {
+    return (node.nodeType==3 ? node.nodeValue :
+      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
+        Element.collectTextNodesIgnoreClass(node, className) : ''));
+  }).flatten().join('');
+};
+
+Element.setContentZoom = function(element, percent) {
+  element = $(element);
+  element.setStyle({fontSize: (percent/100) + 'em'});
+  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
+  return element;
+};
+
+Element.getInlineOpacity = function(element){
+  return $(element).style.opacity || '';
+};
+
+Element.forceRerendering = function(element) {
+  try {
+    element = $(element);
+    var n = document.createTextNode(' ');
+    element.appendChild(n);
+    element.removeChild(n);
+  } catch(e) { }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Effect = {
+  _elementDoesNotExistError: {
+    name: 'ElementDoesNotExistError',
+    message: 'The specified DOM element does not exist, but is required for this effect to operate'
+  },
+  Transitions: {
+    linear: Prototype.K,
+    sinoidal: function(pos) {
+      return (-Math.cos(pos*Math.PI)/2) + .5;
+    },
+    reverse: function(pos) {
+      return 1-pos;
+    },
+    flicker: function(pos) {
+      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
+      return pos > 1 ? 1 : pos;
+    },
+    wobble: function(pos) {
+      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
+    },
+    pulse: function(pos, pulses) {
+      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
+    },
+    spring: function(pos) {
+      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
+    },
+    none: function(pos) {
+      return 0;
+    },
+    full: function(pos) {
+      return 1;
+    }
+  },
+  DefaultOptions: {
+    duration:   1.0,   // seconds
+    fps:        100,   // 100= assume 66fps max.
+    sync:       false, // true for combining
+    from:       0.0,
+    to:         1.0,
+    delay:      0.0,
+    queue:      'parallel'
+  },
+  tagifyText: function(element) {
+    var tagifyStyle = 'position:relative';
+    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
+
+    element = $(element);
+    $A(element.childNodes).each( function(child) {
+      if (child.nodeType==3) {
+        child.nodeValue.toArray().each( function(character) {
+          element.insertBefore(
+            new Element('span', {style: tagifyStyle}).update(
+              character == ' ' ? String.fromCharCode(160) : character),
+              child);
+        });
+        Element.remove(child);
+      }
+    });
+  },
+  multiple: function(element, effect) {
+    var elements;
+    if (((typeof element == 'object') ||
+        Object.isFunction(element)) &&
+       (element.length))
+      elements = element;
+    else
+      elements = $(element).childNodes;
+
+    var options = Object.extend({
+      speed: 0.1,
+      delay: 0.0
+    }, arguments[2] || { });
+    var masterDelay = options.delay;
+
+    $A(elements).each( function(element, index) {
+      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
+    });
+  },
+  PAIRS: {
+    'slide':  ['SlideDown','SlideUp'],
+    'blind':  ['BlindDown','BlindUp'],
+    'appear': ['Appear','Fade']
+  },
+  toggle: function(element, effect, options) {
+    element = $(element);
+    effect  = (effect || 'appear').toLowerCase();
+    
+    return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({
+      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
+    }, options || {}));
+  }
+};
+
+Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;
+
+/* ------------- core effects ------------- */
+
+Effect.ScopedQueue = Class.create(Enumerable, {
+  initialize: function() {
+    this.effects  = [];
+    this.interval = null;
+  },
+  _each: function(iterator) {
+    this.effects._each(iterator);
+  },
+  add: function(effect) {
+    var timestamp = new Date().getTime();
+
+    var position = Object.isString(effect.options.queue) ?
+      effect.options.queue : effect.options.queue.position;
+
+    switch(position) {
+      case 'front':
+        // move unstarted effects after this effect
+        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
+            e.startOn  += effect.finishOn;
+            e.finishOn += effect.finishOn;
+          });
+        break;
+      case 'with-last':
+        timestamp = this.effects.pluck('startOn').max() || timestamp;
+        break;
+      case 'end':
+        // start effect after last queued effect has finished
+        timestamp = this.effects.pluck('finishOn').max() || timestamp;
+        break;
+    }
+
+    effect.startOn  += timestamp;
+    effect.finishOn += timestamp;
+
+    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
+      this.effects.push(effect);
+
+    if (!this.interval)
+      this.interval = setInterval(this.loop.bind(this), 15);
+  },
+  remove: function(effect) {
+    this.effects = this.effects.reject(function(e) { return e==effect });
+    if (this.effects.length == 0) {
+      clearInterval(this.interval);
+      this.interval = null;
+    }
+  },
+  loop: function() {
+    var timePos = new Date().getTime();
+    for(var i=0, len=this.effects.length;i<len;i++)
+      this.effects[i] && this.effects[i].loop(timePos);
+  }
+});
+
+Effect.Queues = {
+  instances: $H(),
+  get: function(queueName) {
+    if (!Object.isString(queueName)) return queueName;
+
+    return this.instances.get(queueName) ||
+      this.instances.set(queueName, new Effect.ScopedQueue());
+  }
+};
+Effect.Queue = Effect.Queues.get('global');
+
+Effect.Base = Class.create({
+  position: null,
+  start: function(options) {
+    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
+    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
+    this.currentFrame = 0;
+    this.state        = 'idle';
+    this.startOn      = this.options.delay*1000;
+    this.finishOn     = this.startOn+(this.options.duration*1000);
+    this.fromToDelta  = this.options.to-this.options.from;
+    this.totalTime    = this.finishOn-this.startOn;
+    this.totalFrames  = this.options.fps*this.options.duration;
+
+    this.render = (function() {
+      function dispatch(effect, eventName) {
+        if (effect.options[eventName + 'Internal'])
+          effect.options[eventName + 'Internal'](effect);
+        if (effect.options[eventName])
+          effect.options[eventName](effect);
+      }
+
+      return function(pos) {
+        if (this.state === "idle") {
+          this.state = "running";
+          dispatch(this, 'beforeSetup');
+          if (this.setup) this.setup();
+          dispatch(this, 'afterSetup');
+        }
+        if (this.state === "running") {
+          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
+          this.position = pos;
+          dispatch(this, 'beforeUpdate');
+          if (this.update) this.update(pos);
+          dispatch(this, 'afterUpdate');
+        }
+      };
+    })();
+
+    this.event('beforeStart');
+    if (!this.options.sync)
+      Effect.Queues.get(Object.isString(this.options.queue) ?
+        'global' : this.options.queue.scope).add(this);
+  },
+  loop: function(timePos) {
+    if (timePos >= this.startOn) {
+      if (timePos >= this.finishOn) {
+        this.render(1.0);
+        this.cancel();
+        this.event('beforeFinish');
+        if (this.finish) this.finish();
+        this.event('afterFinish');
+        return;
+      }
+      var pos   = (timePos - this.startOn) / this.totalTime,
+          frame = (pos * this.totalFrames).round();
+      if (frame > this.currentFrame) {
+        this.render(pos);
+        this.currentFrame = frame;
+      }
+    }
+  },
+  cancel: function() {
+    if (!this.options.sync)
+      Effect.Queues.get(Object.isString(this.options.queue) ?
+        'global' : this.options.queue.scope).remove(this);
+    this.state = 'finished';
+  },
+  event: function(eventName) {
+    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
+    if (this.options[eventName]) this.options[eventName](this);
+  },
+  inspect: function() {
+    var data = $H();
+    for(property in this)
+      if (!Object.isFunction(this[property])) data.set(property, this[property]);
+    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
+  }
+});
+
+Effect.Parallel = Class.create(Effect.Base, {
+  initialize: function(effects) {
+    this.effects = effects || [];
+    this.start(arguments[1]);
+  },
+  update: function(position) {
+    this.effects.invoke('render', position);
+  },
+  finish: function(position) {
+    this.effects.each( function(effect) {
+      effect.render(1.0);
+      effect.cancel();
+      effect.event('beforeFinish');
+      if (effect.finish) effect.finish(position);
+      effect.event('afterFinish');
+    });
+  }
+});
+
+Effect.Tween = Class.create(Effect.Base, {
+  initialize: function(object, from, to) {
+    object = Object.isString(object) ? $(object) : object;
+    var args = $A(arguments), method = args.last(),
+      options = args.length == 5 ? args[3] : null;
+    this.method = Object.isFunction(method) ? method.bind(object) :
+      Object.isFunction(object[method]) ? object[method].bind(object) :
+      function(value) { object[method] = value };
+    this.start(Object.extend({ from: from, to: to }, options || { }));
+  },
+  update: function(position) {
+    this.method(position);
+  }
+});
+
+Effect.Event = Class.create(Effect.Base, {
+  initialize: function() {
+    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
+  },
+  update: Prototype.emptyFunction
+});
+
+Effect.Opacity = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    // make this work on IE on elements without 'layout'
+    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
+      this.element.setStyle({zoom: 1});
+    var options = Object.extend({
+      from: this.element.getOpacity() || 0.0,
+      to:   1.0
+    }, arguments[1] || { });
+    this.start(options);
+  },
+  update: function(position) {
+    this.element.setOpacity(position);
+  }
+});
+
+Effect.Move = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      x:    0,
+      y:    0,
+      mode: 'relative'
+    }, arguments[1] || { });
+    this.start(options);
+  },
+  setup: function() {
+    this.element.makePositioned();
+    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
+    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
+    if (this.options.mode == 'absolute') {
+      this.options.x = this.options.x - this.originalLeft;
+      this.options.y = this.options.y - this.originalTop;
+    }
+  },
+  update: function(position) {
+    this.element.setStyle({
+      left: (this.options.x  * position + this.originalLeft).round() + 'px',
+      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
+    });
+  }
+});
+
+// for backwards compatibility
+Effect.MoveBy = function(element, toTop, toLeft) {
+  return new Effect.Move(element,
+    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
+};
+
+Effect.Scale = Class.create(Effect.Base, {
+  initialize: function(element, percent) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      scaleX: true,
+      scaleY: true,
+      scaleContent: true,
+      scaleFromCenter: false,
+      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
+      scaleFrom: 100.0,
+      scaleTo:   percent
+    }, arguments[2] || { });
+    this.start(options);
+  },
+  setup: function() {
+    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
+    this.elementPositioning = this.element.getStyle('position');
+
+    this.originalStyle = { };
+    ['top','left','width','height','fontSize'].each( function(k) {
+      this.originalStyle[k] = this.element.style[k];
+    }.bind(this));
+
+    this.originalTop  = this.element.offsetTop;
+    this.originalLeft = this.element.offsetLeft;
+
+    var fontSize = this.element.getStyle('font-size') || '100%';
+    ['em','px','%','pt'].each( function(fontSizeType) {
+      if (fontSize.indexOf(fontSizeType)>0) {
+        this.fontSize     = parseFloat(fontSize);
+        this.fontSizeType = fontSizeType;
+      }
+    }.bind(this));
+
+    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
+
+    this.dims = null;
+    if (this.options.scaleMode=='box')
+      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
+    if (/^content/.test(this.options.scaleMode))
+      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
+    if (!this.dims)
+      this.dims = [this.options.scaleMode.originalHeight,
+                   this.options.scaleMode.originalWidth];
+  },
+  update: function(position) {
+    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
+    if (this.options.scaleContent && this.fontSize)
+      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
+    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
+  },
+  finish: function(position) {
+    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
+  },
+  setDimensions: function(height, width) {
+    var d = { };
+    if (this.options.scaleX) d.width = width.round() + 'px';
+    if (this.options.scaleY) d.height = height.round() + 'px';
+    if (this.options.scaleFromCenter) {
+      var topd  = (height - this.dims[0])/2;
+      var leftd = (width  - this.dims[1])/2;
+      if (this.elementPositioning == 'absolute') {
+        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
+        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
+      } else {
+        if (this.options.scaleY) d.top = -topd + 'px';
+        if (this.options.scaleX) d.left = -leftd + 'px';
+      }
+    }
+    this.element.setStyle(d);
+  }
+});
+
+Effect.Highlight = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
+    this.start(options);
+  },
+  setup: function() {
+    // Prevent executing on elements not in the layout flow
+    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
+    // Disable background image during the effect
+    this.oldStyle = { };
+    if (!this.options.keepBackgroundImage) {
+      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
+      this.element.setStyle({backgroundImage: 'none'});
+    }
+    if (!this.options.endcolor)
+      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
+    if (!this.options.restorecolor)
+      this.options.restorecolor = this.element.getStyle('background-color');
+    // init color calculations
+    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
+    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
+  },
+  update: function(position) {
+    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
+      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
+  },
+  finish: function() {
+    this.element.setStyle(Object.extend(this.oldStyle, {
+      backgroundColor: this.options.restorecolor
+    }));
+  }
+});
+
+Effect.ScrollTo = function(element) {
+  var options = arguments[1] || { },
+  scrollOffsets = document.viewport.getScrollOffsets(),
+  elementOffsets = $(element).cumulativeOffset();
+
+  if (options.offset) elementOffsets[1] += options.offset;
+
+  return new Effect.Tween(null,
+    scrollOffsets.top,
+    elementOffsets[1],
+    options,
+    function(p){ scrollTo(scrollOffsets.left, p.round()); }
+  );
+};
+
+/* ------------- combination effects ------------- */
+
+Effect.Fade = function(element) {
+  element = $(element);
+  var oldOpacity = element.getInlineOpacity();
+  var options = Object.extend({
+    from: element.getOpacity() || 1.0,
+    to:   0.0,
+    afterFinishInternal: function(effect) {
+      if (effect.options.to!=0) return;
+      effect.element.hide().setStyle({opacity: oldOpacity});
+    }
+  }, arguments[1] || { });
+  return new Effect.Opacity(element,options);
+};
+
+Effect.Appear = function(element) {
+  element = $(element);
+  var options = Object.extend({
+  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
+  to:   1.0,
+  // force Safari to render floated elements properly
+  afterFinishInternal: function(effect) {
+    effect.element.forceRerendering();
+  },
+  beforeSetup: function(effect) {
+    effect.element.setOpacity(effect.options.from).show();
+  }}, arguments[1] || { });
+  return new Effect.Opacity(element,options);
+};
+
+Effect.Puff = function(element) {
+  element = $(element);
+  var oldStyle = {
+    opacity: element.getInlineOpacity(),
+    position: element.getStyle('position'),
+    top:  element.style.top,
+    left: element.style.left,
+    width: element.style.width,
+    height: element.style.height
+  };
+  return new Effect.Parallel(
+   [ new Effect.Scale(element, 200,
+      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
+     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
+     Object.extend({ duration: 1.0,
+      beforeSetupInternal: function(effect) {
+        Position.absolutize(effect.effects[0].element);
+      },
+      afterFinishInternal: function(effect) {
+         effect.effects[0].element.hide().setStyle(oldStyle); }
+     }, arguments[1] || { })
+   );
+};
+
+Effect.BlindUp = function(element) {
+  element = $(element);
+  element.makeClipping();
+  return new Effect.Scale(element, 0,
+    Object.extend({ scaleContent: false,
+      scaleX: false,
+      restoreAfterFinish: true,
+      afterFinishInternal: function(effect) {
+        effect.element.hide().undoClipping();
+      }
+    }, arguments[1] || { })
+  );
+};
+
+Effect.BlindDown = function(element) {
+  element = $(element);
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, 100, Object.extend({
+    scaleContent: false,
+    scaleX: false,
+    scaleFrom: 0,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makeClipping().setStyle({height: '0px'}).show();
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.undoClipping();
+    }
+  }, arguments[1] || { }));
+};
+
+Effect.SwitchOff = function(element) {
+  element = $(element);
+  var oldOpacity = element.getInlineOpacity();
+  return new Effect.Appear(element, Object.extend({
+    duration: 0.4,
+    from: 0,
+    transition: Effect.Transitions.flicker,
+    afterFinishInternal: function(effect) {
+      new Effect.Scale(effect.element, 1, {
+        duration: 0.3, scaleFromCenter: true,
+        scaleX: false, scaleContent: false, restoreAfterFinish: true,
+        beforeSetup: function(effect) {
+          effect.element.makePositioned().makeClipping();
+        },
+        afterFinishInternal: function(effect) {
+          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
+        }
+      });
+    }
+  }, arguments[1] || { }));
+};
+
+Effect.DropOut = function(element) {
+  element = $(element);
+  var oldStyle = {
+    top: element.getStyle('top'),
+    left: element.getStyle('left'),
+    opacity: element.getInlineOpacity() };
+  return new Effect.Parallel(
+    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
+      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
+    Object.extend(
+      { duration: 0.5,
+        beforeSetup: function(effect) {
+          effect.effects[0].element.makePositioned();
+        },
+        afterFinishInternal: function(effect) {
+          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
+        }
+      }, arguments[1] || { }));
+};
+
+Effect.Shake = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    distance: 20,
+    duration: 0.5
+  }, arguments[1] || {});
+  var distance = parseFloat(options.distance);
+  var split = parseFloat(options.duration) / 10.0;
+  var oldStyle = {
+    top: element.getStyle('top'),
+    left: element.getStyle('left') };
+    return new Effect.Move(element,
+      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
+    new Effect.Move(effect.element,
+      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
+        effect.element.undoPositioned().setStyle(oldStyle);
+  }}); }}); }}); }}); }}); }});
+};
+
+Effect.SlideDown = function(element) {
+  element = $(element).cleanWhitespace();
+  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
+  var oldInnerBottom = element.down().getStyle('bottom');
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, 100, Object.extend({
+    scaleContent: false,
+    scaleX: false,
+    scaleFrom: window.opera ? 0 : 1,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makePositioned();
+      effect.element.down().makePositioned();
+      if (window.opera) effect.element.setStyle({top: ''});
+      effect.element.makeClipping().setStyle({height: '0px'}).show();
+    },
+    afterUpdateInternal: function(effect) {
+      effect.element.down().setStyle({bottom:
+        (effect.dims[0] - effect.element.clientHeight) + 'px' });
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.undoClipping().undoPositioned();
+      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
+    }, arguments[1] || { })
+  );
+};
+
+Effect.SlideUp = function(element) {
+  element = $(element).cleanWhitespace();
+  var oldInnerBottom = element.down().getStyle('bottom');
+  var elementDimensions = element.getDimensions();
+  return new Effect.Scale(element, window.opera ? 0 : 1,
+   Object.extend({ scaleContent: false,
+    scaleX: false,
+    scaleMode: 'box',
+    scaleFrom: 100,
+    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
+    restoreAfterFinish: true,
+    afterSetup: function(effect) {
+      effect.element.makePositioned();
+      effect.element.down().makePositioned();
+      if (window.opera) effect.element.setStyle({top: ''});
+      effect.element.makeClipping().show();
+    },
+    afterUpdateInternal: function(effect) {
+      effect.element.down().setStyle({bottom:
+        (effect.dims[0] - effect.element.clientHeight) + 'px' });
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.hide().undoClipping().undoPositioned();
+      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
+    }
+   }, arguments[1] || { })
+  );
+};
+
+// Bug in opera makes the TD containing this element expand for a instance after finish
+Effect.Squish = function(element) {
+  return new Effect.Scale(element, window.opera ? 1 : 0, {
+    restoreAfterFinish: true,
+    beforeSetup: function(effect) {
+      effect.element.makeClipping();
+    },
+    afterFinishInternal: function(effect) {
+      effect.element.hide().undoClipping();
+    }
+  });
+};
+
+Effect.Grow = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    direction: 'center',
+    moveTransition: Effect.Transitions.sinoidal,
+    scaleTransition: Effect.Transitions.sinoidal,
+    opacityTransition: Effect.Transitions.full
+  }, arguments[1] || { });
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    height: element.style.height,
+    width: element.style.width,
+    opacity: element.getInlineOpacity() };
+
+  var dims = element.getDimensions();
+  var initialMoveX, initialMoveY;
+  var moveX, moveY;
+
+  switch (options.direction) {
+    case 'top-left':
+      initialMoveX = initialMoveY = moveX = moveY = 0;
+      break;
+    case 'top-right':
+      initialMoveX = dims.width;
+      initialMoveY = moveY = 0;
+      moveX = -dims.width;
+      break;
+    case 'bottom-left':
+      initialMoveX = moveX = 0;
+      initialMoveY = dims.height;
+      moveY = -dims.height;
+      break;
+    case 'bottom-right':
+      initialMoveX = dims.width;
+      initialMoveY = dims.height;
+      moveX = -dims.width;
+      moveY = -dims.height;
+      break;
+    case 'center':
+      initialMoveX = dims.width / 2;
+      initialMoveY = dims.height / 2;
+      moveX = -dims.width / 2;
+      moveY = -dims.height / 2;
+      break;
+  }
+
+  return new Effect.Move(element, {
+    x: initialMoveX,
+    y: initialMoveY,
+    duration: 0.01,
+    beforeSetup: function(effect) {
+      effect.element.hide().makeClipping().makePositioned();
+    },
+    afterFinishInternal: function(effect) {
+      new Effect.Parallel(
+        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
+          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
+          new Effect.Scale(effect.element, 100, {
+            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
+            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
+        ], Object.extend({
+             beforeSetup: function(effect) {
+               effect.effects[0].element.setStyle({height: '0px'}).show();
+             },
+             afterFinishInternal: function(effect) {
+               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
+             }
+           }, options)
+      );
+    }
+  });
+};
+
+Effect.Shrink = function(element) {
+  element = $(element);
+  var options = Object.extend({
+    direction: 'center',
+    moveTransition: Effect.Transitions.sinoidal,
+    scaleTransition: Effect.Transitions.sinoidal,
+    opacityTransition: Effect.Transitions.none
+  }, arguments[1] || { });
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    height: element.style.height,
+    width: element.style.width,
+    opacity: element.getInlineOpacity() };
+
+  var dims = element.getDimensions();
+  var moveX, moveY;
+
+  switch (options.direction) {
+    case 'top-left':
+      moveX = moveY = 0;
+      break;
+    case 'top-right':
+      moveX = dims.width;
+      moveY = 0;
+      break;
+    case 'bottom-left':
+      moveX = 0;
+      moveY = dims.height;
+      break;
+    case 'bottom-right':
+      moveX = dims.width;
+      moveY = dims.height;
+      break;
+    case 'center':
+      moveX = dims.width / 2;
+      moveY = dims.height / 2;
+      break;
+  }
+
+  return new Effect.Parallel(
+    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
+      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
+      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
+    ], Object.extend({
+         beforeStartInternal: function(effect) {
+           effect.effects[0].element.makePositioned().makeClipping();
+         },
+         afterFinishInternal: function(effect) {
+           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
+       }, options)
+  );
+};
+
+Effect.Pulsate = function(element) {
+  element = $(element);
+  var options    = arguments[1] || { },
+    oldOpacity = element.getInlineOpacity(),
+    transition = options.transition || Effect.Transitions.linear,
+    reverser   = function(pos){
+      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
+    };
+
+  return new Effect.Opacity(element,
+    Object.extend(Object.extend({  duration: 2.0, from: 0,
+      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
+    }, options), {transition: reverser}));
+};
+
+Effect.Fold = function(element) {
+  element = $(element);
+  var oldStyle = {
+    top: element.style.top,
+    left: element.style.left,
+    width: element.style.width,
+    height: element.style.height };
+  element.makeClipping();
+  return new Effect.Scale(element, 5, Object.extend({
+    scaleContent: false,
+    scaleX: false,
+    afterFinishInternal: function(effect) {
+    new Effect.Scale(element, 1, {
+      scaleContent: false,
+      scaleY: false,
+      afterFinishInternal: function(effect) {
+        effect.element.hide().undoClipping().setStyle(oldStyle);
+      } });
+  }}, arguments[1] || { }));
+};
+
+Effect.Morph = Class.create(Effect.Base, {
+  initialize: function(element) {
+    this.element = $(element);
+    if (!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      style: { }
+    }, arguments[1] || { });
+
+    if (!Object.isString(options.style)) this.style = $H(options.style);
+    else {
+      if (options.style.include(':'))
+        this.style = options.style.parseStyle();
+      else {
+        this.element.addClassName(options.style);
+        this.style = $H(this.element.getStyles());
+        this.element.removeClassName(options.style);
+        var css = this.element.getStyles();
+        this.style = this.style.reject(function(style) {
+          return style.value == css[style.key];
+        });
+        options.afterFinishInternal = function(effect) {
+          effect.element.addClassName(effect.options.style);
+          effect.transforms.each(function(transform) {
+            effect.element.style[transform.style] = '';
+          });
+        };
+      }
+    }
+    this.start(options);
+  },
+
+  setup: function(){
+    function parseColor(color){
+      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
+      color = color.parseColor();
+      return $R(0,2).map(function(i){
+        return parseInt( color.slice(i*2+1,i*2+3), 16 );
+      });
+    }
+    this.transforms = this.style.map(function(pair){
+      var property = pair[0], value = pair[1], unit = null;
+
+      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
+        value = value.parseColor();
+        unit  = 'color';
+      } else if (property == 'opacity') {
+        value = parseFloat(value);
+        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
+          this.element.setStyle({zoom: 1});
+      } else if (Element.CSS_LENGTH.test(value)) {
+          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
+          value = parseFloat(components[1]);
+          unit = (components.length == 3) ? components[2] : null;
+      }
+
+      var originalValue = this.element.getStyle(property);
+      return {
+        style: property.camelize(),
+        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
+        targetValue: unit=='color' ? parseColor(value) : value,
+        unit: unit
+      };
+    }.bind(this)).reject(function(transform){
+      return (
+        (transform.originalValue == transform.targetValue) ||
+        (
+          transform.unit != 'color' &&
+          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
+        )
+      );
+    });
+  },
+  update: function(position) {
+    var style = { }, transform, i = this.transforms.length;
+    while(i--)
+      style[(transform = this.transforms[i]).style] =
+        transform.unit=='color' ? '#'+
+          (Math.round(transform.originalValue[0]+
+            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
+          (Math.round(transform.originalValue[1]+
+            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
+          (Math.round(transform.originalValue[2]+
+            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
+        (transform.originalValue +
+          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
+            (transform.unit === null ? '' : transform.unit);
+    this.element.setStyle(style, true);
+  }
+});
+
+Effect.Transform = Class.create({
+  initialize: function(tracks){
+    this.tracks  = [];
+    this.options = arguments[1] || { };
+    this.addTracks(tracks);
+  },
+  addTracks: function(tracks){
+    tracks.each(function(track){
+      track = $H(track);
+      var data = track.values().first();
+      this.tracks.push($H({
+        ids:     track.keys().first(),
+        effect:  Effect.Morph,
+        options: { style: data }
+      }));
+    }.bind(this));
+    return this;
+  },
+  play: function(){
+    return new Effect.Parallel(
+      this.tracks.map(function(track){
+        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
+        var elements = [$(ids) || $$(ids)].flatten();
+        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
+      }).flatten(),
+      this.options
+    );
+  }
+});
+
+Element.CSS_PROPERTIES = $w(
+  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
+  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
+  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
+  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
+  'fontSize fontWeight height left letterSpacing lineHeight ' +
+  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
+  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
+  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
+  'right textIndent top width wordSpacing zIndex');
+
+Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
+
+String.__parseStyleElement = document.createElement('div');
+String.prototype.parseStyle = function(){
+  var style, styleRules = $H();
+  if (Prototype.Browser.WebKit)
+    style = new Element('div',{style:this}).style;
+  else {
+    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
+    style = String.__parseStyleElement.childNodes[0].style;
+  }
+
+  Element.CSS_PROPERTIES.each(function(property){
+    if (style[property]) styleRules.set(property, style[property]);
+  });
+
+  if (Prototype.Browser.IE && this.include('opacity'))
+    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
+
+  return styleRules;
+};
+
+if (document.defaultView && document.defaultView.getComputedStyle) {
+  Element.getStyles = function(element) {
+    var css = document.defaultView.getComputedStyle($(element), null);
+    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
+      styles[property] = css[property];
+      return styles;
+    });
+  };
+} else {
+  Element.getStyles = function(element) {
+    element = $(element);
+    var css = element.currentStyle, styles;
+    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
+      results[property] = css[property];
+      return results;
+    });
+    if (!styles.opacity) styles.opacity = element.getOpacity();
+    return styles;
+  };
+}
+
+Effect.Methods = {
+  morph: function(element, style) {
+    element = $(element);
+    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
+    return element;
+  },
+  visualEffect: function(element, effect, options) {
+    element = $(element);
+    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
+    new Effect[klass](element, options);
+    return element;
+  },
+  highlight: function(element, options) {
+    element = $(element);
+    new Effect.Highlight(element, options);
+    return element;
+  }
+};
+
+$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
+  'pulsate shake puff squish switchOff dropOut').each(
+  function(effect) {
+    Effect.Methods[effect] = function(element, options){
+      element = $(element);
+      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
+      return element;
+    };
+  }
+);
+
+$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
+  function(f) { Effect.Methods[f] = Element[f]; }
+);
+
+Element.addMethods(Effect.Methods);
\ No newline at end of file
diff --git a/gosa-core/html/include/gosa.js b/gosa-core/html/include/gosa.js
new file mode 100644
index 0000000..b614b56
--- /dev/null
+++ b/gosa-core/html/include/gosa.js
@@ -0,0 +1,545 @@
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2010 GONICUS GmbH
+ * 
+ * ID: $$Id: index.php 15301 2010-01-26 09:40:08Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Install event handlers */
+Event.observe(window, 'resize', resizeHandler);
+Event.observe(window, 'load', resizeHandler);
+Event.observe(window, 'keypress', keyHandler);
+
+
+/* Ask before switching a plugin with this function */
+function question(text, url)
+{
+	if(document.mainform.ignore){
+		location.href= url;
+		return true;
+	}
+	if(confirm(text)){
+		location.href= url;
+		return true;
+	}
+	return false;
+}
+
+
+/* Toggle checkbox that matches regex */
+function chk_set_all(regex,value)
+{
+	for (var i = 0; i < document.mainform.elements.length; i++) {
+		var _id=document.mainform.elements[i].id;
+		if(_id.match(regex)) {
+			document.getElementById(_id).checked= value;
+		}
+	}
+}
+
+
+function toggle_all_(regex,state_object)
+{
+	state = document.getElementById(state_object).checked;
+	chk_set_all(regex, state);
+}
+
+
+/* Scroll down the body frame */
+function scrollDown2()
+{
+	document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
+}
+
+
+/* Toggle checkbox that matches regex */
+function acl_set_all(regex,value)
+{
+	for (var i = 0; i < document.mainform.elements.length; i++) {
+		var _id=document.mainform.elements[i].id;
+		if(_id.match(regex)) {
+			document.getElementById(_id).checked= value;
+		}
+	}
+}
+
+/* Toggle checkbox that matches regex */
+function acl_toggle_all(regex)
+{
+	for (var i = 0; i < document.mainform.elements.length; i++) {
+		var _id=document.mainform.elements[i].id;
+		if(_id.match(regex)) {
+			if (document.getElementById(_id).checked == true){
+				document.getElementById(_id).checked= false;
+			} else {
+				document.getElementById(_id).checked= true;
+			}
+		}
+	}
+}
+
+
+/* Global key handler to estimate which element gets the next focus if enter is pressed */
+function keyHandler(DnEvents) {
+	// determines whether Netscape or Internet Explorer
+	k = (Prototype.Browser.Gecko) ? DnEvents.keyCode : window.event.keyCode;
+	if (k == 13) { // enter key pressed
+		if(typeof(nextfield)!='undefined') {
+			if(nextfield == 'login') {
+				return true; // submit, we finished all fields
+			} else { // we are not done yet, send focus to next box
+				eval('document.mainform.' + nextfield + '.focus()');
+				return false;
+			}
+		} else {
+			if(Prototype.Browser.Gecko) {
+				if(DnEvents.target.type == 'textarea') {
+					return true;
+				} else if (DnEvents.target.type != 'submit') {
+					// TAB
+					var thisfield = document.getElementById(DnEvents.target.id);
+					for (i = 0; i < document.forms[0].elements.length; i++) {
+						if(document.forms[0].elements[i].id==thisfield.id) {
+							// Last form element on page?
+							if(i!=document.forms[0].elements.length-1) {
+								document.forms[0].elements[i+1].focus();
+							}
+						}
+					}
+					return false;
+				} else {
+					return true;
+				}
+				// Check for konqueror
+			} else if(document.clientWidth) {
+				// do nothing ATM
+			} else {
+				if(window.event.srcElement.type == 'textarea') {
+					return true;
+				} else if (window.event.srcElement.type != 'submit') {
+					// TAB
+					var thisfield = document.getElementById(window.event.srcElement.id);
+					for (i = 0; i < document.forms[0].elements.length; i++) {
+						if(document.forms[0].elements[i].id==thisfield.id) {
+							// Last form element on page?
+							if(i!=document.forms[0].elements.length-1) {
+								document.forms[0].elements[i+1].focus();
+							}
+						}
+					}
+					return false;
+				} else {
+					return true;
+				}
+			}
+		}
+	} else if (k==9) {
+		// Tab key pressed
+		if(Prototype.Browser.Gecko) {
+			if(DnEvents.target.type == 'textarea') {
+				document.getElementById(DnEvents.target.id).value+="\t";
+				return false;
+			}
+			// Check for konqueror
+		} else if(document.clientWidth) {
+			// do nothing ATM
+		} else {
+			if(window.event.srcElement.type == 'textarea') {
+				document.getElementById(window.event.srcElement.id).value+="\t";
+				return false;
+			}
+		}
+	}
+}
+
+function changeState() {
+	for (var i = 0; i < arguments.length; i++) { 
+		var element = $(arguments[i]); 
+		if (element.hasAttribute('disabled')) { 
+			element.removeAttribute('disabled'); 
+		} else { 
+			element.setAttribute('disabled', 'disabled'); 
+		} 
+	} 
+}
+
+function changeSelectState(triggerField, myField) {
+	if (document.getElementById(triggerField).value != 2){
+		document.getElementById(myField).disabled= true;
+	} else {
+		document.getElementById(myField).disabled= false;
+	}
+}
+
+function changeSubselectState(triggerField, myField) {
+	if (document.getElementById(triggerField).checked == true){
+		document.getElementById(myField).disabled= false;
+	} else {
+		document.getElementById(myField).disabled= true;
+	}
+}
+
+function changeTripleSelectState(firstTriggerField, secondTriggerField, myField) {
+	if (
+			document.getElementById(firstTriggerField).checked == true &&
+			document.getElementById(secondTriggerField).checked == true){
+		document.getElementById(myField).disabled= false;
+	} else {
+		document.getElementById(myField).disabled= true;
+	}
+}
+
+<!-- Second field must be non-checked -->
+function changeTripleSelectState_2nd_neg(firstTriggerField, secondTriggerField, myField) {
+	if (
+			document.getElementById(firstTriggerField).checked == true &&
+			document.getElementById(secondTriggerField).checked == false){
+		document.getElementById(myField).disabled= false;
+	} else {
+		document.getElementById(myField).disabled= true;
+	}
+}
+
+// work together to analyze keystrokes
+if (Prototype.Browser.Gecko){
+	window.onkeypress= keyHandler;
+} else {
+	document.onkeydown= keyHandler;
+}
+
+
+function popup(target, name) {
+	var mypopup= 
+		window.open(
+				target,
+				name,
+				"width=600,height=700,location=no,toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes"
+			   );
+	mypopup.focus();
+	return false;
+}
+
+function js_check(form) {
+	form.javascript.value = 'true';
+}
+
+function divGOsa_toggle(element) {
+	var cell;
+	var cellname="tr_"+(element);
+
+	if (Prototype.Browser.Gecko) {
+		document.poppedLayer = document.getElementById(element);
+		cell= document.getElementById(cellname);
+
+		if (document.poppedLayer.style.visibility == "visible") {
+                        $(element).hide();
+			cell.style.height="0px";
+			document.poppedLayer.style.height="0px";
+		} else {
+                        $(element).show();
+			document.poppedLayer.style.height="";
+			if(document.defaultView) {
+				cell.style.height=document.defaultView.getComputedStyle(document.poppedLayer,"").getPropertyValue('height');
+			}
+		}
+	} else if (Prototype.Browser.IE) {
+		document.poppedLayer = document.getElementById(element);
+		cell= document.getElementById(cellname);
+		if (document.poppedLayer.style.visibility == "visible") {
+			$(element).hide();
+			cell.style.height="0px";
+			document.poppedLayer.style.height="0px";
+			document.poppedLayer.style.position="absolute";
+		} else {
+                        $(element).show();
+			cell.style.height="";
+			document.poppedLayer.style.height="";
+			document.poppedLayer.style.position="relative";
+		}
+	}
+}
+
+function resizeHandler (e) {
+	if (!e) e=window.event;
+	if (document.getElementById("menucell") && document.getElementById("d_scrollbody")) {
+		var inner_height= window.innerHeight;
+		var min_height= 450;
+		var px_height= min_height;
+		var suggested= px_height;
+
+		// document.defaultView allows access to the rendered size of elements and should be supported by modern browsers
+		if(document.defaultView) {
+			var menu_height= 0;
+			if (document.getElementById("d_height")){
+				suggested= parseInt(document.getElementById("d_height").value);
+			} else {
+				menu_height=parseInt(document.defaultView.getComputedStyle(document.getElementById("menucell"),"").getPropertyValue('height'));
+				// Minimum height for divlist should be the bottom edge of the menu
+				min_height= menu_height-197;
+				suggested= min_height;
+				if((inner_height-230)-suggested>0) {
+					suggested= inner_height-230;
+				}
+
+			}
+
+			// IE uses other height specifications
+		} else if (Prototype.Browser.IE) {
+			suggested= document.all.menucell.offsetHeight;
+			offset= absTop(d_scrollbody);
+			suggested-= offset;
+			if((inner_height-230)-suggested>0) {
+				suggested= inner_height-230;
+			}
+		}
+
+		/* Reduce height if a list footer is set */
+		if(document.getElementById("t_scrollfoot")){
+			suggested = suggested -20;
+		}
+
+		if (!document.getElementById("list_workaround")) {
+			document.getElementById("d_scrollbody").style.height=suggested+"px";
+		} else {
+			if (!Prototype.Browser.IE) {
+				current_height= parseInt(document.defaultView.getComputedStyle(document.getElementById("t_nscrollbody"),"").getPropertyValue('height'));
+				if (current_height < menu_height) {
+					document.getElementById("d_scrollbody").style.height=suggested+20+"px";
+				}
+			}
+		}
+		if (document.getElementById("t_nscrollbody")) {
+			document.getElementById("t_nscrollbody").style.height=(suggested-22)+"px";
+		}
+	}
+	return true;
+}
+
+function absTop(e) {
+	return (e.offsetParent)?e.offsetTop+absTop(e.offsetParent) : e.offsetTop;
+}
+
+/* Set focus to first valid input field
+   avoid IExplorer warning about hidding or disabled fields
+ */
+function focus_field()
+{
+	var i     = 0;
+	var e     = 0;
+	var found = false;
+	var element_name = "";
+	var element =null;
+
+	while(focus_field.arguments[i] && !found){
+
+		var tmp = document.getElementsByName(focus_field.arguments[i]);
+		for(e = 0 ; e < tmp.length ; e ++ ){
+
+			if(tmp[e].disabled != true &&  tmp[e].type != "none" && tmp[e].type != "hidden" ){
+				found = true;
+				element = tmp[e];
+				break;
+			}
+		}
+		i++;
+	}
+
+	if(element && found){
+		element.blur();
+		element.focus();
+	}
+}
+
+
+/*  This function pops up messages from message queue 
+    All messages are hidden in html output (style='display:none;').
+    This function makes single messages visible till there are no more dialogs queued.
+
+    hidden inputs: 
+    current_msg_dialogs		- Currently visible dialog
+    closed_msg_dialogs		- IDs of already closed dialogs 
+    pending_msg_dialogs		- Queued dialog IDs. 
+ */
+function next_msg_dialog()
+{
+	var s_pending = "";
+	var a_pending = new Array();
+	var i_id			= 0;
+	var i					= 0;
+	var tmp				= "";
+	var ele 			= null;
+	var ele2 			= null;
+	var cur_id 		= "";
+
+	if(document.getElementById('current_msg_dialogs')){
+		cur_id = document.getElementById('current_msg_dialogs').value;
+		if(cur_id != ""){
+			ele = document.getElementById('e_layer' + cur_id);
+			ele.onmousemove = "";
+			$('e_layer' + cur_id).hide();
+			document.getElementById('closed_msg_dialogs').value += "," + cur_id;
+			document.getElementById('current_msg_dialogs').value= ""; 
+		}
+	}
+
+	if(document.getElementById('pending_msg_dialogs')){
+		s_pending = document.getElementById('pending_msg_dialogs').value;
+		a_pending = s_pending.split(",");
+		if(a_pending.length){
+			i_id = a_pending.pop();
+			for (i = 0 ; i < a_pending.length; ++i){
+				tmp = tmp + a_pending[i] + ',';
+			}
+			tmp = tmp.replace(/,$/g,"");
+			if(i_id != ""){
+				ele = document.getElementById('e_layer' + i_id);
+				ele3 = document.getElementById('e_layerTitle' + i_id);
+				ele.style.display= 'block'	;
+				document.getElementById('pending_msg_dialogs').value= tmp;
+				document.getElementById('current_msg_dialogs').value= i_id;
+				ele2 = document.getElementById('e_layer2') ;
+				ele3.onmousedown = start_move_div_by_cursor;
+				ele2.onmouseup 	= stop_move_div_by_cursor;
+				ele2.onmousemove = move_div_by_cursor;
+			}else{
+				ele2 = document.getElementById('e_layer2') ;
+				ele2.style.display ="none";
+			}
+		}
+	}
+}
+
+
+/* Drag & drop for message dialogs */
+var enable_move_div_by_cursor = false;		// Indicates wheter the div movement is enabled or not 
+var mouse_x_on_div	= 0;									// 
+var mouse_y_on_div 	= 0;
+var div_offset_x  	= 0;
+var div_offset_y  	= 0;
+
+/* Activates msg_dialog drag & drop
+ * This function is called when clicking on a displayed msg_dialog 
+ */
+function start_move_div_by_cursor(e)
+{
+	var x = 0; 
+	var y = 0;	
+	var cur_id = 0;
+	var dialog = null;
+	var event = null;
+
+	/* Get current msg_dialog position
+	 */
+	cur_id = document.getElementById('current_msg_dialogs').value;
+	if(cur_id != ""){
+		dialog = document.getElementById('e_layer' + cur_id);
+		x = dialog.style.left;
+		y = dialog.style.top;
+		x = x.replace(/[^0-9]/g,"");
+		y = y.replace(/[^0-9]/g,"");
+		if(!y) y = 1;
+		if(!x) x = 1;
+	}
+
+	/* Get mouse position within msg_dialog 
+	 */
+	if(window.event){
+		event = window.event;
+		if(event.offsetX){
+			div_offset_x   = event.clientX -x;
+			div_offset_y   = event.clientY -y;
+			enable_move_div_by_cursor = true;
+		}
+	}else if(e){
+		event = e;
+		if(event.layerX){
+			div_offset_x	= event.screenX -x;
+			div_offset_y	= event.screenY -y;
+			enable_move_div_by_cursor = true;
+		}
+	}
+}
+
+
+/* Deactivate msg_dialog movement 
+ */
+function stop_move_div_by_cursor()
+{
+	mouse_x_on_div = 0;
+	mouse_y_on_div = 0;
+	div_offset_x = 0;
+	div_offset_y = 0;
+	enable_move_div_by_cursor = false;
+}
+
+
+/* Move msg_dialog with cursor */
+function move_div_by_cursor(e)
+{
+	var event 				= false;
+	var mouse_pos_x		= 0;
+	var mouse_pos_y 	= 0;
+	var	cur_div_x = 0;
+	var cur_div_y = 0;
+	var cur_id	= 0;
+	var dialog = null;
+
+
+	if(undefined !== enable_move_div_by_cursor && enable_move_div_by_cursor == true){
+
+		if(document.getElementById('current_msg_dialogs')){
+
+			/* Get mouse position on screen 
+			 */
+			if(window.event){
+				event = window.event;
+				mouse_pos_x  =event.clientX;
+				mouse_pos_y  =event.clientY;
+			}else if (e){
+				event = e;
+				mouse_pos_x  =event.screenX;
+				mouse_pos_y  =event.screenY;
+			}else{
+				return;
+			}
+
+			/* Get id of current msg_dialog */
+			cur_id = document.getElementById('current_msg_dialogs').value;
+			if(cur_id != ""){
+				dialog = document.getElementById('e_layer' + cur_id);
+
+				/* Calculate new position */
+				cur_div_x = mouse_pos_x - div_offset_x;
+				cur_div_y = mouse_pos_y - div_offset_y;
+
+				/* Ensure that dialog can't be moved out of screen */
+				if(cur_div_x < 0 ) cur_div_x = 0
+					if(cur_div_y < 0 ) cur_div_y = 0
+
+						/* Assign new values */
+						dialog.style.left = (cur_div_x ) + "px";
+				dialog.style.top  = (cur_div_y ) + "px";
+			}
+		}
+	}
+}
+
+
+// Global storage for baseSelector timer
+var rtimer;
+
+// vim:ts=2:syntax
diff --git a/gosa-core/html/include/png.js b/gosa-core/html/include/png.js
new file mode 100644
index 0000000..36a8bfc
--- /dev/null
+++ b/gosa-core/html/include/png.js
@@ -0,0 +1,85 @@
+if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent)
+	window.attachEvent("onload", pngLoadPngs);
+
+// parses all images //public
+function pngLoadPngs()
+{
+	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
+	var itsAllGood = (rslt != null && Number(rslt[1]) > 5.5);
+
+	if (itsAllGood) {
+		for (var i = 0; i < document.images.length; i++) {
+			pngLoad(document.images[i]);
+		}
+		for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
+			var img = document.getElementsByTagName("input")[i];
+			if(typeof img.type == "string" && img.type == "image") {
+				pngLoad(img);
+			}
+		}
+	}
+}
+
+// loads an image, src is optional // public
+function pngLoad(img,src)
+{
+	if (typeof img == "object" && typeof img.tagName == "string" && img.tagName == "IMG")
+	{
+		// this is an image
+		if (typeof src == "string")
+		{
+			// src parameter is present
+			if (src.match(/\.png$/i) != null)
+			{
+				// this is png image
+				img.style.width = null;
+				img.style.height = null;
+				img.style.filter = null;
+				img.src = src;
+				pngSwapPrepare(img);
+			}
+			else
+			{
+				// its not a png
+				img.src = src;
+			}
+		}
+		else if (img.src.match(/\.png$/i) != null)
+		{
+				// no src arameter, but its png -> simply swap
+				pngSwapPrepare(img);
+		}
+	} else if (typeof img.tagName == "string" && img.tagName == "INPUT") {
+		if(img.src.match(/\.png$/i) != null) {
+			pngSwapPrepare(img);
+		}
+	}
+
+	// swap (if complete) or shedule it to onload event // private
+	function pngSwapPrepare(img)
+	{
+		if (img.complete)
+			pngSwap(img);
+		else
+			img.attachEvent("onload",pngOnLoadSwap);
+	}
+	
+	// supposed to be called when image is loaded into memory //private
+	function pngOnLoadSwap()
+	{
+		event.srcElement.detachEvent("onload",pngOnLoadSwap);
+		pngSwap(event.srcElement);
+	}
+
+	// Swaps img and background //private
+	function pngSwap(img)
+	{
+		with (img)
+		{
+			style.width = width + "px";
+			style.height = height + "px";
+			style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale') ";
+			src = "images/null.gif";
+		}
+	}
+}
diff --git a/gosa-core/html/include/prototype.js b/gosa-core/html/include/prototype.js
new file mode 100644
index 0000000..9fe6e12
--- /dev/null
+++ b/gosa-core/html/include/prototype.js
@@ -0,0 +1,4874 @@
+/*  Prototype JavaScript framework, version 1.6.1
+ *  (c) 2005-2009 Sam Stephenson
+ *
+ *  Prototype is freely distributable under the terms of an MIT-style license.
+ *  For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+  Version: '1.6.1',
+
+  Browser: (function(){
+    var ua = navigator.userAgent;
+    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
+    return {
+      IE:             !!window.attachEvent && !isOpera,
+      Opera:          isOpera,
+      WebKit:         ua.indexOf('AppleWebKit/') > -1,
+      Gecko:          ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
+      MobileSafari:   /Apple.*Mobile.*Safari/.test(ua)
+    }
+  })(),
+
+  BrowserFeatures: {
+    XPath: !!document.evaluate,
+    SelectorsAPI: !!document.querySelector,
+    ElementExtensions: (function() {
+      var constructor = window.Element || window.HTMLElement;
+      return !!(constructor && constructor.prototype);
+    })(),
+    SpecificElementExtensions: (function() {
+      if (typeof window.HTMLDivElement !== 'undefined')
+        return true;
+
+      var div = document.createElement('div');
+      var form = document.createElement('form');
+      var isSupported = false;
+
+      if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
+        isSupported = true;
+      }
+
+      div = form = null;
+
+      return isSupported;
+    })()
+  },
+
+  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+  emptyFunction: function() { },
+  K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+  Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+var Abstract = { };
+
+
+var Try = {
+  these: function() {
+    var returnValue;
+
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      var lambda = arguments[i];
+      try {
+        returnValue = lambda();
+        break;
+      } catch (e) { }
+    }
+
+    return returnValue;
+  }
+};
+
+/* Based on Alex Arnell's inheritance implementation. */
+
+var Class = (function() {
+  function subclass() {};
+  function create() {
+    var parent = null, properties = $A(arguments);
+    if (Object.isFunction(properties[0]))
+      parent = properties.shift();
+
+    function klass() {
+      this.initialize.apply(this, arguments);
+    }
+
+    Object.extend(klass, Class.Methods);
+    klass.superclass = parent;
+    klass.subclasses = [];
+
+    if (parent) {
+      subclass.prototype = parent.prototype;
+      klass.prototype = new subclass;
+      parent.subclasses.push(klass);
+    }
+
+    for (var i = 0; i < properties.length; i++)
+      klass.addMethods(properties[i]);
+
+    if (!klass.prototype.initialize)
+      klass.prototype.initialize = Prototype.emptyFunction;
+
+    klass.prototype.constructor = klass;
+    return klass;
+  }
+
+  function addMethods(source) {
+    var ancestor   = this.superclass && this.superclass.prototype;
+    var properties = Object.keys(source);
+
+    if (!Object.keys({ toString: true }).length) {
+      if (source.toString != Object.prototype.toString)
+        properties.push("toString");
+      if (source.valueOf != Object.prototype.valueOf)
+        properties.push("valueOf");
+    }
+
+    for (var i = 0, length = properties.length; i < length; i++) {
+      var property = properties[i], value = source[property];
+      if (ancestor && Object.isFunction(value) &&
+          value.argumentNames().first() == "$super") {
+        var method = value;
+        value = (function(m) {
+          return function() { return ancestor[m].apply(this, arguments); };
+        })(property).wrap(method);
+
+        value.valueOf = method.valueOf.bind(method);
+        value.toString = method.toString.bind(method);
+      }
+      this.prototype[property] = value;
+    }
+
+    return this;
+  }
+
+  return {
+    create: create,
+    Methods: {
+      addMethods: addMethods
+    }
+  };
+})();
+(function() {
+
+  var _toString = Object.prototype.toString;
+
+  function extend(destination, source) {
+    for (var property in source)
+      destination[property] = source[property];
+    return destination;
+  }
+
+  function inspect(object) {
+    try {
+      if (isUndefined(object)) return 'undefined';
+      if (object === null) return 'null';
+      return object.inspect ? object.inspect() : String(object);
+    } catch (e) {
+      if (e instanceof RangeError) return '...';
+      throw e;
+    }
+  }
+
+  function toJSON(object) {
+    var type = typeof object;
+    switch (type) {
+      case 'undefined':
+      case 'function':
+      case 'unknown': return;
+      case 'boolean': return object.toString();
+    }
+
+    if (object === null) return 'null';
+    if (object.toJSON) return object.toJSON();
+    if (isElement(object)) return;
+
+    var results = [];
+    for (var property in object) {
+      var value = toJSON(object[property]);
+      if (!isUndefined(value))
+        results.push(property.toJSON() + ': ' + value);
+    }
+
+    return '{' + results.join(', ') + '}';
+  }
+
+  function toQueryString(object) {
+    return $H(object).toQueryString();
+  }
+
+  function toHTML(object) {
+    return object && object.toHTML ? object.toHTML() : String.interpret(object);
+  }
+
+  function keys(object) {
+    var results = [];
+    for (var property in object)
+      results.push(property);
+    return results;
+  }
+
+  function values(object) {
+    var results = [];
+    for (var property in object)
+      results.push(object[property]);
+    return results;
+  }
+
+  function clone(object) {
+    return extend({ }, object);
+  }
+
+  function isElement(object) {
+    return !!(object && object.nodeType == 1);
+  }
+
+  function isArray(object) {
+    return _toString.call(object) == "[object Array]";
+  }
+
+
+  function isHash(object) {
+    return object instanceof Hash;
+  }
+
+  function isFunction(object) {
+    return typeof object === "function";
+  }
+
+  function isString(object) {
+    return _toString.call(object) == "[object String]";
+  }
+
+  function isNumber(object) {
+    return _toString.call(object) == "[object Number]";
+  }
+
+  function isUndefined(object) {
+    return typeof object === "undefined";
+  }
+
+  extend(Object, {
+    extend:        extend,
+    inspect:       inspect,
+    toJSON:        toJSON,
+    toQueryString: toQueryString,
+    toHTML:        toHTML,
+    keys:          keys,
+    values:        values,
+    clone:         clone,
+    isElement:     isElement,
+    isArray:       isArray,
+    isHash:        isHash,
+    isFunction:    isFunction,
+    isString:      isString,
+    isNumber:      isNumber,
+    isUndefined:   isUndefined
+  });
+})();
+Object.extend(Function.prototype, (function() {
+  var slice = Array.prototype.slice;
+
+  function update(array, args) {
+    var arrayLength = array.length, length = args.length;
+    while (length--) array[arrayLength + length] = args[length];
+    return array;
+  }
+
+  function merge(array, args) {
+    array = slice.call(array, 0);
+    return update(array, args);
+  }
+
+  function argumentNames() {
+    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
+      .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
+      .replace(/\s+/g, '').split(',');
+    return names.length == 1 && !names[0] ? [] : names;
+  }
+
+  function bind(context) {
+    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+    var __method = this, args = slice.call(arguments, 1);
+    return function() {
+      var a = merge(args, arguments);
+      return __method.apply(context, a);
+    }
+  }
+
+  function bindAsEventListener(context) {
+    var __method = this, args = slice.call(arguments, 1);
+    return function(event) {
+      var a = update([event || window.event], args);
+      return __method.apply(context, a);
+    }
+  }
+
+  function curry() {
+    if (!arguments.length) return this;
+    var __method = this, args = slice.call(arguments, 0);
+    return function() {
+      var a = merge(args, arguments);
+      return __method.apply(this, a);
+    }
+  }
+
+  function delay(timeout) {
+    var __method = this, args = slice.call(arguments, 1);
+    timeout = timeout * 1000
+    return window.setTimeout(function() {
+      return __method.apply(__method, args);
+    }, timeout);
+  }
+
+  function defer() {
+    var args = update([0.01], arguments);
+    return this.delay.apply(this, args);
+  }
+
+  function wrap(wrapper) {
+    var __method = this;
+    return function() {
+      var a = update([__method.bind(this)], arguments);
+      return wrapper.apply(this, a);
+    }
+  }
+
+  function methodize() {
+    if (this._methodized) return this._methodized;
+    var __method = this;
+    return this._methodized = function() {
+      var a = update([this], arguments);
+      return __method.apply(null, a);
+    };
+  }
+
+  return {
+    argumentNames:       argumentNames,
+    bind:                bind,
+    bindAsEventListener: bindAsEventListener,
+    curry:               curry,
+    delay:               delay,
+    defer:               defer,
+    wrap:                wrap,
+    methodize:           methodize
+  }
+})());
+
+
+Date.prototype.toJSON = function() {
+  return '"' + this.getUTCFullYear() + '-' +
+    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+    this.getUTCDate().toPaddedString(2) + 'T' +
+    this.getUTCHours().toPaddedString(2) + ':' +
+    this.getUTCMinutes().toPaddedString(2) + ':' +
+    this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+var PeriodicalExecuter = Class.create({
+  initialize: function(callback, frequency) {
+    this.callback = callback;
+    this.frequency = frequency;
+    this.currentlyExecuting = false;
+
+    this.registerCallback();
+  },
+
+  registerCallback: function() {
+    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+
+  execute: function() {
+    this.callback(this);
+  },
+
+  stop: function() {
+    if (!this.timer) return;
+    clearInterval(this.timer);
+    this.timer = null;
+  },
+
+  onTimerEvent: function() {
+    if (!this.currentlyExecuting) {
+      try {
+        this.currentlyExecuting = true;
+        this.execute();
+        this.currentlyExecuting = false;
+      } catch(e) {
+        this.currentlyExecuting = false;
+        throw e;
+      }
+    }
+  }
+});
+Object.extend(String, {
+  interpret: function(value) {
+    return value == null ? '' : String(value);
+  },
+  specialChar: {
+    '\b': '\\b',
+    '\t': '\\t',
+    '\n': '\\n',
+    '\f': '\\f',
+    '\r': '\\r',
+    '\\': '\\\\'
+  }
+});
+
+Object.extend(String.prototype, (function() {
+
+  function prepareReplacement(replacement) {
+    if (Object.isFunction(replacement)) return replacement;
+    var template = new Template(replacement);
+    return function(match) { return template.evaluate(match) };
+  }
+
+  function gsub(pattern, replacement) {
+    var result = '', source = this, match;
+    replacement = prepareReplacement(replacement);
+
+    if (Object.isString(pattern))
+      pattern = RegExp.escape(pattern);
+
+    if (!(pattern.length || pattern.source)) {
+      replacement = replacement('');
+      return replacement + source.split('').join(replacement) + replacement;
+    }
+
+    while (source.length > 0) {
+      if (match = source.match(pattern)) {
+        result += source.slice(0, match.index);
+        result += String.interpret(replacement(match));
+        source  = source.slice(match.index + match[0].length);
+      } else {
+        result += source, source = '';
+      }
+    }
+    return result;
+  }
+
+  function sub(pattern, replacement, count) {
+    replacement = prepareReplacement(replacement);
+    count = Object.isUndefined(count) ? 1 : count;
+
+    return this.gsub(pattern, function(match) {
+      if (--count < 0) return match[0];
+      return replacement(match);
+    });
+  }
+
+  function scan(pattern, iterator) {
+    this.gsub(pattern, iterator);
+    return String(this);
+  }
+
+  function truncate(length, truncation) {
+    length = length || 30;
+    truncation = Object.isUndefined(truncation) ? '...' : truncation;
+    return this.length > length ?
+      this.slice(0, length - truncation.length) + truncation : String(this);
+  }
+
+  function strip() {
+    return this.replace(/^\s+/, '').replace(/\s+$/, '');
+  }
+
+  function stripTags() {
+    return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
+  }
+
+  function stripScripts() {
+    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+  }
+
+  function extractScripts() {
+    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+    return (this.match(matchAll) || []).map(function(scriptTag) {
+      return (scriptTag.match(matchOne) || ['', ''])[1];
+    });
+  }
+
+  function evalScripts() {
+    return this.extractScripts().map(function(script) { return eval(script) });
+  }
+
+  function escapeHTML() {
+    return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
+  }
+
+  function unescapeHTML() {
+    return this.stripTags().replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&');
+  }
+
+
+  function toQueryParams(separator) {
+    var match = this.strip().match(/([^?#]*)(#.*)?$/);
+    if (!match) return { };
+
+    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+      if ((pair = pair.split('='))[0]) {
+        var key = decodeURIComponent(pair.shift());
+        var value = pair.length > 1 ? pair.join('=') : pair[0];
+        if (value != undefined) value = decodeURIComponent(value);
+
+        if (key in hash) {
+          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+          hash[key].push(value);
+        }
+        else hash[key] = value;
+      }
+      return hash;
+    });
+  }
+
+  function toArray() {
+    return this.split('');
+  }
+
+  function succ() {
+    return this.slice(0, this.length - 1) +
+      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+  }
+
+  function times(count) {
+    return count < 1 ? '' : new Array(count + 1).join(this);
+  }
+
+  function camelize() {
+    var parts = this.split('-'), len = parts.length;
+    if (len == 1) return parts[0];
+
+    var camelized = this.charAt(0) == '-'
+      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+      : parts[0];
+
+    for (var i = 1; i < len; i++)
+      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+    return camelized;
+  }
+
+  function capitalize() {
+    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+  }
+
+  function underscore() {
+    return this.replace(/::/g, '/')
+               .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
+               .replace(/([a-z\d])([A-Z])/g, '$1_$2')
+               .replace(/-/g, '_')
+               .toLowerCase();
+  }
+
+  function dasherize() {
+    return this.replace(/_/g, '-');
+  }
+
+  function inspect(useDoubleQuotes) {
+    var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
+      if (character in String.specialChar) {
+        return String.specialChar[character];
+      }
+      return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
+    });
+    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+  }
+
+  function toJSON() {
+    return this.inspect(true);
+  }
+
+  function unfilterJSON(filter) {
+    return this.replace(filter || Prototype.JSONFilter, '$1');
+  }
+
+  function isJSON() {
+    var str = this;
+    if (str.blank()) return false;
+    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+  }
+
+  function evalJSON(sanitize) {
+    var json = this.unfilterJSON();
+    try {
+      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+    } catch (e) { }
+    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+  }
+
+  function include(pattern) {
+    return this.indexOf(pattern) > -1;
+  }
+
+  function startsWith(pattern) {
+    return this.indexOf(pattern) === 0;
+  }
+
+  function endsWith(pattern) {
+    var d = this.length - pattern.length;
+    return d >= 0 && this.lastIndexOf(pattern) === d;
+  }
+
+  function empty() {
+    return this == '';
+  }
+
+  function blank() {
+    return /^\s*$/.test(this);
+  }
+
+  function interpolate(object, pattern) {
+    return new Template(this, pattern).evaluate(object);
+  }
+
+  return {
+    gsub:           gsub,
+    sub:            sub,
+    scan:           scan,
+    truncate:       truncate,
+    strip:          String.prototype.trim ? String.prototype.trim : strip,
+    stripTags:      stripTags,
+    stripScripts:   stripScripts,
+    extractScripts: extractScripts,
+    evalScripts:    evalScripts,
+    escapeHTML:     escapeHTML,
+    unescapeHTML:   unescapeHTML,
+    toQueryParams:  toQueryParams,
+    parseQuery:     toQueryParams,
+    toArray:        toArray,
+    succ:           succ,
+    times:          times,
+    camelize:       camelize,
+    capitalize:     capitalize,
+    underscore:     underscore,
+    dasherize:      dasherize,
+    inspect:        inspect,
+    toJSON:         toJSON,
+    unfilterJSON:   unfilterJSON,
+    isJSON:         isJSON,
+    evalJSON:       evalJSON,
+    include:        include,
+    startsWith:     startsWith,
+    endsWith:       endsWith,
+    empty:          empty,
+    blank:          blank,
+    interpolate:    interpolate
+  };
+})());
+
+var Template = Class.create({
+  initialize: function(template, pattern) {
+    this.template = template.toString();
+    this.pattern = pattern || Template.Pattern;
+  },
+
+  evaluate: function(object) {
+    if (object && Object.isFunction(object.toTemplateReplacements))
+      object = object.toTemplateReplacements();
+
+    return this.template.gsub(this.pattern, function(match) {
+      if (object == null) return (match[1] + '');
+
+      var before = match[1] || '';
+      if (before == '\\') return match[2];
+
+      var ctx = object, expr = match[3];
+      var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+      match = pattern.exec(expr);
+      if (match == null) return before;
+
+      while (match != null) {
+        var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
+        ctx = ctx[comp];
+        if (null == ctx || '' == match[3]) break;
+        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+        match = pattern.exec(expr);
+      }
+
+      return before + String.interpret(ctx);
+    });
+  }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = (function() {
+  function each(iterator, context) {
+    var index = 0;
+    try {
+      this._each(function(value) {
+        iterator.call(context, value, index++);
+      });
+    } catch (e) {
+      if (e != $break) throw e;
+    }
+    return this;
+  }
+
+  function eachSlice(number, iterator, context) {
+    var index = -number, slices = [], array = this.toArray();
+    if (number < 1) return array;
+    while ((index += number) < array.length)
+      slices.push(array.slice(index, index+number));
+    return slices.collect(iterator, context);
+  }
+
+  function all(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result = true;
+    this.each(function(value, index) {
+      result = result && !!iterator.call(context, value, index);
+      if (!result) throw $break;
+    });
+    return result;
+  }
+
+  function any(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result = false;
+    this.each(function(value, index) {
+      if (result = !!iterator.call(context, value, index))
+        throw $break;
+    });
+    return result;
+  }
+
+  function collect(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var results = [];
+    this.each(function(value, index) {
+      results.push(iterator.call(context, value, index));
+    });
+    return results;
+  }
+
+  function detect(iterator, context) {
+    var result;
+    this.each(function(value, index) {
+      if (iterator.call(context, value, index)) {
+        result = value;
+        throw $break;
+      }
+    });
+    return result;
+  }
+
+  function findAll(iterator, context) {
+    var results = [];
+    this.each(function(value, index) {
+      if (iterator.call(context, value, index))
+        results.push(value);
+    });
+    return results;
+  }
+
+  function grep(filter, iterator, context) {
+    iterator = iterator || Prototype.K;
+    var results = [];
+
+    if (Object.isString(filter))
+      filter = new RegExp(RegExp.escape(filter));
+
+    this.each(function(value, index) {
+      if (filter.match(value))
+        results.push(iterator.call(context, value, index));
+    });
+    return results;
+  }
+
+  function include(object) {
+    if (Object.isFunction(this.indexOf))
+      if (this.indexOf(object) != -1) return true;
+
+    var found = false;
+    this.each(function(value) {
+      if (value == object) {
+        found = true;
+        throw $break;
+      }
+    });
+    return found;
+  }
+
+  function inGroupsOf(number, fillWith) {
+    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+    return this.eachSlice(number, function(slice) {
+      while(slice.length < number) slice.push(fillWith);
+      return slice;
+    });
+  }
+
+  function inject(memo, iterator, context) {
+    this.each(function(value, index) {
+      memo = iterator.call(context, memo, value, index);
+    });
+    return memo;
+  }
+
+  function invoke(method) {
+    var args = $A(arguments).slice(1);
+    return this.map(function(value) {
+      return value[method].apply(value, args);
+    });
+  }
+
+  function max(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result;
+    this.each(function(value, index) {
+      value = iterator.call(context, value, index);
+      if (result == null || value >= result)
+        result = value;
+    });
+    return result;
+  }
+
+  function min(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var result;
+    this.each(function(value, index) {
+      value = iterator.call(context, value, index);
+      if (result == null || value < result)
+        result = value;
+    });
+    return result;
+  }
+
+  function partition(iterator, context) {
+    iterator = iterator || Prototype.K;
+    var trues = [], falses = [];
+    this.each(function(value, index) {
+      (iterator.call(context, value, index) ?
+        trues : falses).push(value);
+    });
+    return [trues, falses];
+  }
+
+  function pluck(property) {
+    var results = [];
+    this.each(function(value) {
+      results.push(value[property]);
+    });
+    return results;
+  }
+
+  function reject(iterator, context) {
+    var results = [];
+    this.each(function(value, index) {
+      if (!iterator.call(context, value, index))
+        results.push(value);
+    });
+    return results;
+  }
+
+  function sortBy(iterator, context) {
+    return this.map(function(value, index) {
+      return {
+        value: value,
+        criteria: iterator.call(context, value, index)
+      };
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }).pluck('value');
+  }
+
+  function toArray() {
+    return this.map();
+  }
+
+  function zip() {
+    var iterator = Prototype.K, args = $A(arguments);
+    if (Object.isFunction(args.last()))
+      iterator = args.pop();
+
+    var collections = [this].concat(args).map($A);
+    return this.map(function(value, index) {
+      return iterator(collections.pluck(index));
+    });
+  }
+
+  function size() {
+    return this.toArray().length;
+  }
+
+  function inspect() {
+    return '#<Enumerable:' + this.toArray().inspect() + '>';
+  }
+
+
+
+
+
+
+
+
+
+  return {
+    each:       each,
+    eachSlice:  eachSlice,
+    all:        all,
+    every:      all,
+    any:        any,
+    some:       any,
+    collect:    collect,
+    map:        collect,
+    detect:     detect,
+    findAll:    findAll,
+    select:     findAll,
+    filter:     findAll,
+    grep:       grep,
+    include:    include,
+    member:     include,
+    inGroupsOf: inGroupsOf,
+    inject:     inject,
+    invoke:     invoke,
+    max:        max,
+    min:        min,
+    partition:  partition,
+    pluck:      pluck,
+    reject:     reject,
+    sortBy:     sortBy,
+    toArray:    toArray,
+    entries:    toArray,
+    zip:        zip,
+    size:       size,
+    inspect:    inspect,
+    find:       detect
+  };
+})();
+function $A(iterable) {
+  if (!iterable) return [];
+  if ('toArray' in Object(iterable)) return iterable.toArray();
+  var length = iterable.length || 0, results = new Array(length);
+  while (length--) results[length] = iterable[length];
+  return results;
+}
+
+function $w(string) {
+  if (!Object.isString(string)) return [];
+  string = string.strip();
+  return string ? string.split(/\s+/) : [];
+}
+
+Array.from = $A;
+
+
+(function() {
+  var arrayProto = Array.prototype,
+      slice = arrayProto.slice,
+      _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
+
+  function each(iterator) {
+    for (var i = 0, length = this.length; i < length; i++)
+      iterator(this[i]);
+  }
+  if (!_each) _each = each;
+
+  function clear() {
+    this.length = 0;
+    return this;
+  }
+
+  function first() {
+    return this[0];
+  }
+
+  function last() {
+    return this[this.length - 1];
+  }
+
+  function compact() {
+    return this.select(function(value) {
+      return value != null;
+    });
+  }
+
+  function flatten() {
+    return this.inject([], function(array, value) {
+      if (Object.isArray(value))
+        return array.concat(value.flatten());
+      array.push(value);
+      return array;
+    });
+  }
+
+  function without() {
+    var values = slice.call(arguments, 0);
+    return this.select(function(value) {
+      return !values.include(value);
+    });
+  }
+
+  function reverse(inline) {
+    return (inline !== false ? this : this.toArray())._reverse();
+  }
+
+  function uniq(sorted) {
+    return this.inject([], function(array, value, index) {
+      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+        array.push(value);
+      return array;
+    });
+  }
+
+  function intersect(array) {
+    return this.uniq().findAll(function(item) {
+      return array.detect(function(value) { return item === value });
+    });
+  }
+
+
+  function clone() {
+    return slice.call(this, 0);
+  }
+
+  function size() {
+    return this.length;
+  }
+
+  function inspect() {
+    return '[' + this.map(Object.inspect).join(', ') + ']';
+  }
+
+  function toJSON() {
+    var results = [];
+    this.each(function(object) {
+      var value = Object.toJSON(object);
+      if (!Object.isUndefined(value)) results.push(value);
+    });
+    return '[' + results.join(', ') + ']';
+  }
+
+  function indexOf(item, i) {
+    i || (i = 0);
+    var length = this.length;
+    if (i < 0) i = length + i;
+    for (; i < length; i++)
+      if (this[i] === item) return i;
+    return -1;
+  }
+
+  function lastIndexOf(item, i) {
+    i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+    var n = this.slice(0, i).reverse().indexOf(item);
+    return (n < 0) ? n : i - n - 1;
+  }
+
+  function concat() {
+    var array = slice.call(this, 0), item;
+    for (var i = 0, length = arguments.length; i < length; i++) {
+      item = arguments[i];
+      if (Object.isArray(item) && !('callee' in item)) {
+        for (var j = 0, arrayLength = item.length; j < arrayLength; j++)
+          array.push(item[j]);
+      } else {
+        array.push(item);
+      }
+    }
+    return array;
+  }
+
+  Object.extend(arrayProto, Enumerable);
+
+  if (!arrayProto._reverse)
+    arrayProto._reverse = arrayProto.reverse;
+
+  Object.extend(arrayProto, {
+    _each:     _each,
+    clear:     clear,
+    first:     first,
+    last:      last,
+    compact:   compact,
+    flatten:   flatten,
+    without:   without,
+    reverse:   reverse,
+    uniq:      uniq,
+    intersect: intersect,
+    clone:     clone,
+    toArray:   clone,
+    size:      size,
+    inspect:   inspect,
+    toJSON:    toJSON
+  });
+
+  var CONCAT_ARGUMENTS_BUGGY = (function() {
+    return [].concat(arguments)[0][0] !== 1;
+  })(1,2)
+
+  if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
+
+  if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
+  if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
+})();
+function $H(object) {
+  return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+  function initialize(object) {
+    this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+  }
+
+  function _each(iterator) {
+    for (var key in this._object) {
+      var value = this._object[key], pair = [key, value];
+      pair.key = key;
+      pair.value = value;
+      iterator(pair);
+    }
+  }
+
+  function set(key, value) {
+    return this._object[key] = value;
+  }
+
+  function get(key) {
+    if (this._object[key] !== Object.prototype[key])
+      return this._object[key];
+  }
+
+  function unset(key) {
+    var value = this._object[key];
+    delete this._object[key];
+    return value;
+  }
+
+  function toObject() {
+    return Object.clone(this._object);
+  }
+
+  function keys() {
+    return this.pluck('key');
+  }
+
+  function values() {
+    return this.pluck('value');
+  }
+
+  function index(value) {
+    var match = this.detect(function(pair) {
+      return pair.value === value;
+    });
+    return match && match.key;
+  }
+
+  function merge(object) {
+    return this.clone().update(object);
+  }
+
+  function update(object) {
+    return new Hash(object).inject(this, function(result, pair) {
+      result.set(pair.key, pair.value);
+      return result;
+    });
+  }
+
+  function toQueryPair(key, value) {
+    if (Object.isUndefined(value)) return key;
+    return key + '=' + encodeURIComponent(String.interpret(value));
+  }
+
+  function toQueryString() {
+    return this.inject([], function(results, pair) {
+      var key = encodeURIComponent(pair.key), values = pair.value;
+
+      if (values && typeof values == 'object') {
+        if (Object.isArray(values))
+          return results.concat(values.map(toQueryPair.curry(key)));
+      } else results.push(toQueryPair(key, values));
+      return results;
+    }).join('&');
+  }
+
+  function inspect() {
+    return '#<Hash:{' + this.map(function(pair) {
+      return pair.map(Object.inspect).join(': ');
+    }).join(', ') + '}>';
+  }
+
+  function toJSON() {
+    return Object.toJSON(this.toObject());
+  }
+
+  function clone() {
+    return new Hash(this);
+  }
+
+  return {
+    initialize:             initialize,
+    _each:                  _each,
+    set:                    set,
+    get:                    get,
+    unset:                  unset,
+    toObject:               toObject,
+    toTemplateReplacements: toObject,
+    keys:                   keys,
+    values:                 values,
+    index:                  index,
+    merge:                  merge,
+    update:                 update,
+    toQueryString:          toQueryString,
+    inspect:                inspect,
+    toJSON:                 toJSON,
+    clone:                  clone
+  };
+})());
+
+Hash.from = $H;
+Object.extend(Number.prototype, (function() {
+  function toColorPart() {
+    return this.toPaddedString(2, 16);
+  }
+
+  function succ() {
+    return this + 1;
+  }
+
+  function times(iterator, context) {
+    $R(0, this, true).each(iterator, context);
+    return this;
+  }
+
+  function toPaddedString(length, radix) {
+    var string = this.toString(radix || 10);
+    return '0'.times(length - string.length) + string;
+  }
+
+  function toJSON() {
+    return isFinite(this) ? this.toString() : 'null';
+  }
+
+  function abs() {
+    return Math.abs(this);
+  }
+
+  function round() {
+    return Math.round(this);
+  }
+
+  function ceil() {
+    return Math.ceil(this);
+  }
+
+  function floor() {
+    return Math.floor(this);
+  }
+
+  return {
+    toColorPart:    toColorPart,
+    succ:           succ,
+    times:          times,
+    toPaddedString: toPaddedString,
+    toJSON:         toJSON,
+    abs:            abs,
+    round:          round,
+    ceil:           ceil,
+    floor:          floor
+  };
+})());
+
+function $R(start, end, exclusive) {
+  return new ObjectRange(start, end, exclusive);
+}
+
+var ObjectRange = Class.create(Enumerable, (function() {
+  function initialize(start, end, exclusive) {
+    this.start = start;
+    this.end = end;
+    this.exclusive = exclusive;
+  }
+
+  function _each(iterator) {
+    var value = this.start;
+    while (this.include(value)) {
+      iterator(value);
+      value = value.succ();
+    }
+  }
+
+  function include(value) {
+    if (value < this.start)
+      return false;
+    if (this.exclusive)
+      return value < this.end;
+    return value <= this.end;
+  }
+
+  return {
+    initialize: initialize,
+    _each:      _each,
+    include:    include
+  };
+})());
+
+
+
+var Ajax = {
+  getTransport: function() {
+    return Try.these(
+      function() {return new XMLHttpRequest()},
+      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+    ) || false;
+  },
+
+  activeRequestCount: 0
+};
+
+Ajax.Responders = {
+  responders: [],
+
+  _each: function(iterator) {
+    this.responders._each(iterator);
+  },
+
+  register: function(responder) {
+    if (!this.include(responder))
+      this.responders.push(responder);
+  },
+
+  unregister: function(responder) {
+    this.responders = this.responders.without(responder);
+  },
+
+  dispatch: function(callback, request, transport, json) {
+    this.each(function(responder) {
+      if (Object.isFunction(responder[callback])) {
+        try {
+          responder[callback].apply(responder, [request, transport, json]);
+        } catch (e) { }
+      }
+    });
+  }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+  onCreate:   function() { Ajax.activeRequestCount++ },
+  onComplete: function() { Ajax.activeRequestCount-- }
+});
+Ajax.Base = Class.create({
+  initialize: function(options) {
+    this.options = {
+      method:       'post',
+      asynchronous: true,
+      contentType:  'application/x-www-form-urlencoded',
+      encoding:     'UTF-8',
+      parameters:   '',
+      evalJSON:     true,
+      evalJS:       true
+    };
+    Object.extend(this.options, options || { });
+
+    this.options.method = this.options.method.toLowerCase();
+
+    if (Object.isString(this.options.parameters))
+      this.options.parameters = this.options.parameters.toQueryParams();
+    else if (Object.isHash(this.options.parameters))
+      this.options.parameters = this.options.parameters.toObject();
+  }
+});
+Ajax.Request = Class.create(Ajax.Base, {
+  _complete: false,
+
+  initialize: function($super, url, options) {
+    $super(options);
+    this.transport = Ajax.getTransport();
+    this.request(url);
+  },
+
+  request: function(url) {
+    this.url = url;
+    this.method = this.options.method;
+    var params = Object.clone(this.options.parameters);
+
+    if (!['get', 'post'].include(this.method)) {
+      params['_method'] = this.method;
+      this.method = 'post';
+    }
+
+    this.parameters = params;
+
+    if (params = Object.toQueryString(params)) {
+      if (this.method == 'get')
+        this.url += (this.url.include('?') ? '&' : '?') + params;
+      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+        params += '&_=';
+    }
+
+    try {
+      var response = new Ajax.Response(this);
+      if (this.options.onCreate) this.options.onCreate(response);
+      Ajax.Responders.dispatch('onCreate', this, response);
+
+      this.transport.open(this.method.toUpperCase(), this.url,
+        this.options.asynchronous);
+
+      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+      this.transport.onreadystatechange = this.onStateChange.bind(this);
+      this.setRequestHeaders();
+
+      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+      this.transport.send(this.body);
+
+      /* Force Firefox to handle ready state 4 for synchronous requests */
+      if (!this.options.asynchronous && this.transport.overrideMimeType)
+        this.onStateChange();
+
+    }
+    catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  onStateChange: function() {
+    var readyState = this.transport.readyState;
+    if (readyState > 1 && !((readyState == 4) && this._complete))
+      this.respondToReadyState(this.transport.readyState);
+  },
+
+  setRequestHeaders: function() {
+    var headers = {
+      'X-Requested-With': 'XMLHttpRequest',
+      'X-Prototype-Version': Prototype.Version,
+      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+    };
+
+    if (this.method == 'post') {
+      headers['Content-type'] = this.options.contentType +
+        (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+      /* Force "Connection: close" for older Mozilla browsers to work
+       * around a bug where XMLHttpRequest sends an incorrect
+       * Content-length header. See Mozilla Bugzilla #246651.
+       */
+      if (this.transport.overrideMimeType &&
+          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+            headers['Connection'] = 'close';
+    }
+
+    if (typeof this.options.requestHeaders == 'object') {
+      var extras = this.options.requestHeaders;
+
+      if (Object.isFunction(extras.push))
+        for (var i = 0, length = extras.length; i < length; i += 2)
+          headers[extras[i]] = extras[i+1];
+      else
+        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+    }
+
+    for (var name in headers)
+      this.transport.setRequestHeader(name, headers[name]);
+  },
+
+  success: function() {
+    var status = this.getStatus();
+    return !status || (status >= 200 && status < 300);
+  },
+
+  getStatus: function() {
+    try {
+      return this.transport.status || 0;
+    } catch (e) { return 0 }
+  },
+
+  respondToReadyState: function(readyState) {
+    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+    if (state == 'Complete') {
+      try {
+        this._complete = true;
+        (this.options['on' + response.status]
+         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+         || Prototype.emptyFunction)(response, response.headerJSON);
+      } catch (e) {
+        this.dispatchException(e);
+      }
+
+      var contentType = response.getHeader('Content-type');
+      if (this.options.evalJS == 'force'
+          || (this.options.evalJS && this.isSameOrigin() && contentType
+          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+        this.evalResponse();
+    }
+
+    try {
+      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+    } catch (e) {
+      this.dispatchException(e);
+    }
+
+    if (state == 'Complete') {
+      this.transport.onreadystatechange = Prototype.emptyFunction;
+    }
+  },
+
+  isSameOrigin: function() {
+    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+      protocol: location.protocol,
+      domain: document.domain,
+      port: location.port ? ':' + location.port : ''
+    }));
+  },
+
+  getHeader: function(name) {
+    try {
+      return this.transport.getResponseHeader(name) || null;
+    } catch (e) { return null; }
+  },
+
+  evalResponse: function() {
+    try {
+      return eval((this.transport.responseText || '').unfilterJSON());
+    } catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
+  dispatchException: function(exception) {
+    (this.options.onException || Prototype.emptyFunction)(this, exception);
+    Ajax.Responders.dispatch('onException', this, exception);
+  }
+});
+
+Ajax.Request.Events =
+  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+
+
+
+
+
+
+
+Ajax.Response = Class.create({
+  initialize: function(request){
+    this.request = request;
+    var transport  = this.transport  = request.transport,
+        readyState = this.readyState = transport.readyState;
+
+    if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+      this.status       = this.getStatus();
+      this.statusText   = this.getStatusText();
+      this.responseText = String.interpret(transport.responseText);
+      this.headerJSON   = this._getHeaderJSON();
+    }
+
+    if(readyState == 4) {
+      var xml = transport.responseXML;
+      this.responseXML  = Object.isUndefined(xml) ? null : xml;
+      this.responseJSON = this._getResponseJSON();
+    }
+  },
+
+  status:      0,
+
+  statusText: '',
+
+  getStatus: Ajax.Request.prototype.getStatus,
+
+  getStatusText: function() {
+    try {
+      return this.transport.statusText || '';
+    } catch (e) { return '' }
+  },
+
+  getHeader: Ajax.Request.prototype.getHeader,
+
+  getAllHeaders: function() {
+    try {
+      return this.getAllResponseHeaders();
+    } catch (e) { return null }
+  },
+
+  getResponseHeader: function(name) {
+    return this.transport.getResponseHeader(name);
+  },
+
+  getAllResponseHeaders: function() {
+    return this.transport.getAllResponseHeaders();
+  },
+
+  _getHeaderJSON: function() {
+    var json = this.getHeader('X-JSON');
+    if (!json) return null;
+    json = decodeURIComponent(escape(json));
+    try {
+      return json.evalJSON(this.request.options.sanitizeJSON ||
+        !this.request.isSameOrigin());
+    } catch (e) {
+      this.request.dispatchException(e);
+    }
+  },
+
+  _getResponseJSON: function() {
+    var options = this.request.options;
+    if (!options.evalJSON || (options.evalJSON != 'force' &&
+      !(this.getHeader('Content-type') || '').include('application/json')) ||
+        this.responseText.blank())
+          return null;
+    try {
+      return this.responseText.evalJSON(options.sanitizeJSON ||
+        !this.request.isSameOrigin());
+    } catch (e) {
+      this.request.dispatchException(e);
+    }
+  }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+  initialize: function($super, container, url, options) {
+    this.container = {
+      success: (container.success || container),
+      failure: (container.failure || (container.success ? null : container))
+    };
+
+    options = Object.clone(options);
+    var onComplete = options.onComplete;
+    options.onComplete = (function(response, json) {
+      this.updateContent(response.responseText);
+      if (Object.isFunction(onComplete)) onComplete(response, json);
+    }).bind(this);
+
+    $super(url, options);
+  },
+
+  updateContent: function(responseText) {
+    var receiver = this.container[this.success() ? 'success' : 'failure'],
+        options = this.options;
+
+    if (!options.evalScripts) responseText = responseText.stripScripts();
+
+    if (receiver = $(receiver)) {
+      if (options.insertion) {
+        if (Object.isString(options.insertion)) {
+          var insertion = { }; insertion[options.insertion] = responseText;
+          receiver.insert(insertion);
+        }
+        else options.insertion(receiver, responseText);
+      }
+      else receiver.update(responseText);
+    }
+  }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+  initialize: function($super, container, url, options) {
+    $super(options);
+    this.onComplete = this.options.onComplete;
+
+    this.frequency = (this.options.frequency || 2);
+    this.decay = (this.options.decay || 1);
+
+    this.updater = { };
+    this.container = container;
+    this.url = url;
+
+    this.start();
+  },
+
+  start: function() {
+    this.options.onComplete = this.updateComplete.bind(this);
+    this.onTimerEvent();
+  },
+
+  stop: function() {
+    this.updater.options.onComplete = undefined;
+    clearTimeout(this.timer);
+    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+  },
+
+  updateComplete: function(response) {
+    if (this.options.decay) {
+      this.decay = (response.responseText == this.lastText ?
+        this.decay * this.options.decay : 1);
+
+      this.lastText = response.responseText;
+    }
+    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+  },
+
+  onTimerEvent: function() {
+    this.updater = new Ajax.Updater(this.container, this.url, this.options);
+  }
+});
+
+
+
+function $(element) {
+  if (arguments.length > 1) {
+    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+      elements.push($(arguments[i]));
+    return elements;
+  }
+  if (Object.isString(element))
+    element = document.getElementById(element);
+  return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+  document._getElementsByXPath = function(expression, parentElement) {
+    var results = [];
+    var query = document.evaluate(expression, $(parentElement) || document,
+      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+    for (var i = 0, length = query.snapshotLength; i < length; i++)
+      results.push(Element.extend(query.snapshotItem(i)));
+    return results;
+  };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+  Object.extend(Node, {
+    ELEMENT_NODE: 1,
+    ATTRIBUTE_NODE: 2,
+    TEXT_NODE: 3,
+    CDATA_SECTION_NODE: 4,
+    ENTITY_REFERENCE_NODE: 5,
+    ENTITY_NODE: 6,
+    PROCESSING_INSTRUCTION_NODE: 7,
+    COMMENT_NODE: 8,
+    DOCUMENT_NODE: 9,
+    DOCUMENT_TYPE_NODE: 10,
+    DOCUMENT_FRAGMENT_NODE: 11,
+    NOTATION_NODE: 12
+  });
+}
+
+
+(function(global) {
+
+  var SETATTRIBUTE_IGNORES_NAME = (function(){
+    var elForm = document.createElement("form");
+    var elInput = document.createElement("input");
+    var root = document.documentElement;
+    elInput.setAttribute("name", "test");
+    elForm.appendChild(elInput);
+    root.appendChild(elForm);
+    var isBuggy = elForm.elements
+      ? (typeof elForm.elements.test == "undefined")
+      : null;
+    root.removeChild(elForm);
+    elForm = elInput = null;
+    return isBuggy;
+  })();
+
+  var element = global.Element;
+  global.Element = function(tagName, attributes) {
+    attributes = attributes || { };
+    tagName = tagName.toLowerCase();
+    var cache = Element.cache;
+    if (SETATTRIBUTE_IGNORES_NAME && attributes.name) {
+      tagName = '<' + tagName + ' name="' + attributes.name + '">';
+      delete attributes.name;
+      return Element.writeAttribute(document.createElement(tagName), attributes);
+    }
+    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+    return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+  };
+  Object.extend(global.Element, element || { });
+  if (element) global.Element.prototype = element.prototype;
+})(this);
+
+Element.cache = { };
+Element.idCounter = 1;
+
+Element.Methods = {
+  visible: function(element) {
+    return $(element).style.display != 'none';
+  },
+
+  toggle: function(element) {
+    element = $(element);
+    Element[Element.visible(element) ? 'hide' : 'show'](element);
+    return element;
+  },
+
+
+  hide: function(element) {
+    element = $(element);
+    element.style.display = 'none';
+    return element;
+  },
+
+  show: function(element) {
+    element = $(element);
+    element.style.display = '';
+    return element;
+  },
+
+  remove: function(element) {
+    element = $(element);
+    element.parentNode.removeChild(element);
+    return element;
+  },
+
+  update: (function(){
+
+    var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
+      var el = document.createElement("select"),
+          isBuggy = true;
+      el.innerHTML = "<option value=\"test\">test</option>";
+      if (el.options && el.options[0]) {
+        isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION";
+      }
+      el = null;
+      return isBuggy;
+    })();
+
+    var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
+      try {
+        var el = document.createElement("table");
+        if (el && el.tBodies) {
+          el.innerHTML = "<tbody><tr><td>test</td></tr></tbody>";
+          var isBuggy = typeof el.tBodies[0] == "undefined";
+          el = null;
+          return isBuggy;
+        }
+      } catch (e) {
+        return true;
+      }
+    })();
+
+    var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
+      var s = document.createElement("script"),
+          isBuggy = false;
+      try {
+        s.appendChild(document.createTextNode(""));
+        isBuggy = !s.firstChild ||
+          s.firstChild && s.firstChild.nodeType !== 3;
+      } catch (e) {
+        isBuggy = true;
+      }
+      s = null;
+      return isBuggy;
+    })();
+
+    function update(element, content) {
+      element = $(element);
+
+      if (content && content.toElement)
+        content = content.toElement();
+
+      if (Object.isElement(content))
+        return element.update().insert(content);
+
+      content = Object.toHTML(content);
+
+      var tagName = element.tagName.toUpperCase();
+
+      if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
+        element.text = content;
+        return element;
+      }
+
+      if (SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY) {
+        if (tagName in Element._insertionTranslations.tags) {
+          while (element.firstChild) {
+            element.removeChild(element.firstChild);
+          }
+          Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+            .each(function(node) {
+              element.appendChild(node)
+            });
+        }
+        else {
+          element.innerHTML = content.stripScripts();
+        }
+      }
+      else {
+        element.innerHTML = content.stripScripts();
+      }
+
+      content.evalScripts.bind(content).defer();
+      return element;
+    }
+
+    return update;
+  })(),
+
+  replace: function(element, content) {
+    element = $(element);
+    if (content && content.toElement) content = content.toElement();
+    else if (!Object.isElement(content)) {
+      content = Object.toHTML(content);
+      var range = element.ownerDocument.createRange();
+      range.selectNode(element);
+      content.evalScripts.bind(content).defer();
+      content = range.createContextualFragment(content.stripScripts());
+    }
+    element.parentNode.replaceChild(content, element);
+    return element;
+  },
+
+  insert: function(element, insertions) {
+    element = $(element);
+
+    if (Object.isString(insertions) || Object.isNumber(insertions) ||
+        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+          insertions = {bottom:insertions};
+
+    var content, insert, tagName, childNodes;
+
+    for (var position in insertions) {
+      content  = insertions[position];
+      position = position.toLowerCase();
+      insert = Element._insertionTranslations[position];
+
+      if (content && content.toElement) content = content.toElement();
+      if (Object.isElement(content)) {
+        insert(element, content);
+        continue;
+      }
+
+      content = Object.toHTML(content);
+
+      tagName = ((position == 'before' || position == 'after')
+        ? element.parentNode : element).tagName.toUpperCase();
+
+      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+      if (position == 'top' || position == 'after') childNodes.reverse();
+      childNodes.each(insert.curry(element));
+
+      content.evalScripts.bind(content).defer();
+    }
+
+    return element;
+  },
+
+  wrap: function(element, wrapper, attributes) {
+    element = $(element);
+    if (Object.isElement(wrapper))
+      $(wrapper).writeAttribute(attributes || { });
+    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+    else wrapper = new Element('div', wrapper);
+    if (element.parentNode)
+      element.parentNode.replaceChild(wrapper, element);
+    wrapper.appendChild(element);
+    return wrapper;
+  },
+
+  inspect: function(element) {
+    element = $(element);
+    var result = '<' + element.tagName.toLowerCase();
+    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+      var property = pair.first(), attribute = pair.last();
+      var value = (element[property] || '').toString();
+      if (value) result += ' ' + attribute + '=' + value.inspect(true);
+    });
+    return result + '>';
+  },
+
+  recursivelyCollect: function(element, property) {
+    element = $(element);
+    var elements = [];
+    while (element = element[property])
+      if (element.nodeType == 1)
+        elements.push(Element.extend(element));
+    return elements;
+  },
+
+  ancestors: function(element) {
+    return Element.recursivelyCollect(element, 'parentNode');
+  },
+
+  descendants: function(element) {
+    return Element.select(element, "*");
+  },
+
+  firstDescendant: function(element) {
+    element = $(element).firstChild;
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    return $(element);
+  },
+
+  immediateDescendants: function(element) {
+    if (!(element = $(element).firstChild)) return [];
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    if (element) return [element].concat($(element).nextSiblings());
+    return [];
+  },
+
+  previousSiblings: function(element) {
+    return Element.recursivelyCollect(element, 'previousSibling');
+  },
+
+  nextSiblings: function(element) {
+    return Element.recursivelyCollect(element, 'nextSibling');
+  },
+
+  siblings: function(element) {
+    element = $(element);
+    return Element.previousSiblings(element).reverse()
+      .concat(Element.nextSiblings(element));
+  },
+
+  match: function(element, selector) {
+    if (Object.isString(selector))
+      selector = new Selector(selector);
+    return selector.match($(element));
+  },
+
+  up: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(element.parentNode);
+    var ancestors = Element.ancestors(element);
+    return Object.isNumber(expression) ? ancestors[expression] :
+      Selector.findElement(ancestors, expression, index);
+  },
+
+  down: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return Element.firstDescendant(element);
+    return Object.isNumber(expression) ? Element.descendants(element)[expression] :
+      Element.select(element, expression)[index || 0];
+  },
+
+  previous: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+    var previousSiblings = Element.previousSiblings(element);
+    return Object.isNumber(expression) ? previousSiblings[expression] :
+      Selector.findElement(previousSiblings, expression, index);
+  },
+
+  next: function(element, expression, index) {
+    element = $(element);
+    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+    var nextSiblings = Element.nextSiblings(element);
+    return Object.isNumber(expression) ? nextSiblings[expression] :
+      Selector.findElement(nextSiblings, expression, index);
+  },
+
+
+  select: function(element) {
+    var args = Array.prototype.slice.call(arguments, 1);
+    return Selector.findChildElements(element, args);
+  },
+
+  adjacent: function(element) {
+    var args = Array.prototype.slice.call(arguments, 1);
+    return Selector.findChildElements(element.parentNode, args).without(element);
+  },
+
+  identify: function(element) {
+    element = $(element);
+    var id = Element.readAttribute(element, 'id');
+    if (id) return id;
+    do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id));
+    Element.writeAttribute(element, 'id', id);
+    return id;
+  },
+
+  readAttribute: function(element, name) {
+    element = $(element);
+    if (Prototype.Browser.IE) {
+      var t = Element._attributeTranslations.read;
+      if (t.values[name]) return t.values[name](element, name);
+      if (t.names[name]) name = t.names[name];
+      if (name.include(':')) {
+        return (!element.attributes || !element.attributes[name]) ? null :
+         element.attributes[name].value;
+      }
+    }
+    return element.getAttribute(name);
+  },
+
+  writeAttribute: function(element, name, value) {
+    element = $(element);
+    var attributes = { }, t = Element._attributeTranslations.write;
+
+    if (typeof name == 'object') attributes = name;
+    else attributes[name] = Object.isUndefined(value) ? true : value;
+
+    for (var attr in attributes) {
+      name = t.names[attr] || attr;
+      value = attributes[attr];
+      if (t.values[attr]) name = t.values[attr](element, value);
+      if (value === false || value === null)
+        element.removeAttribute(name);
+      else if (value === true)
+        element.setAttribute(name, name);
+      else element.setAttribute(name, value);
+    }
+    return element;
+  },
+
+  getHeight: function(element) {
+    return Element.getDimensions(element).height;
+  },
+
+  getWidth: function(element) {
+    return Element.getDimensions(element).width;
+  },
+
+  classNames: function(element) {
+    return new Element.ClassNames(element);
+  },
+
+  hasClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    var elementClassName = element.className;
+    return (elementClassName.length > 0 && (elementClassName == className ||
+      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+  },
+
+  addClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    if (!Element.hasClassName(element, className))
+      element.className += (element.className ? ' ' : '') + className;
+    return element;
+  },
+
+  removeClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    element.className = element.className.replace(
+      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+    return element;
+  },
+
+  toggleClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    return Element[Element.hasClassName(element, className) ?
+      'removeClassName' : 'addClassName'](element, className);
+  },
+
+  cleanWhitespace: function(element) {
+    element = $(element);
+    var node = element.firstChild;
+    while (node) {
+      var nextNode = node.nextSibling;
+      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+        element.removeChild(node);
+      node = nextNode;
+    }
+    return element;
+  },
+
+  empty: function(element) {
+    return $(element).innerHTML.blank();
+  },
+
+  descendantOf: function(element, ancestor) {
+    element = $(element), ancestor = $(ancestor);
+
+    if (element.compareDocumentPosition)
+      return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+    if (ancestor.contains)
+      return ancestor.contains(element) && ancestor !== element;
+
+    while (element = element.parentNode)
+      if (element == ancestor) return true;
+
+    return false;
+  },
+
+  scrollTo: function(element) {
+    element = $(element);
+    var pos = Element.cumulativeOffset(element);
+    window.scrollTo(pos[0], pos[1]);
+    return element;
+  },
+
+  getStyle: function(element, style) {
+    element = $(element);
+    style = style == 'float' ? 'cssFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value || value == 'auto') {
+      var css = document.defaultView.getComputedStyle(element, null);
+      value = css ? css[style] : null;
+    }
+    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+    return value == 'auto' ? null : value;
+  },
+
+  getOpacity: function(element) {
+    return $(element).getStyle('opacity');
+  },
+
+  setStyle: function(element, styles) {
+    element = $(element);
+    var elementStyle = element.style, match;
+    if (Object.isString(styles)) {
+      element.style.cssText += ';' + styles;
+      return styles.include('opacity') ?
+        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+    }
+    for (var property in styles)
+      if (property == 'opacity') element.setOpacity(styles[property]);
+      else
+        elementStyle[(property == 'float' || property == 'cssFloat') ?
+          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+            property] = styles[property];
+
+    return element;
+  },
+
+  setOpacity: function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1 || value === '') ? '' :
+      (value < 0.00001) ? 0 : value;
+    return element;
+  },
+
+  getDimensions: function(element) {
+    element = $(element);
+    var display = Element.getStyle(element, 'display');
+    if (display != 'none' && display != null) // Safari bug
+      return {width: element.offsetWidth, height: element.offsetHeight};
+
+    var els = element.style;
+    var originalVisibility = els.visibility;
+    var originalPosition = els.position;
+    var originalDisplay = els.display;
+    els.visibility = 'hidden';
+    if (originalPosition != 'fixed') // Switching fixed to absolute causes issues in Safari
+      els.position = 'absolute';
+    els.display = 'block';
+    var originalWidth = element.clientWidth;
+    var originalHeight = element.clientHeight;
+    els.display = originalDisplay;
+    els.position = originalPosition;
+    els.visibility = originalVisibility;
+    return {width: originalWidth, height: originalHeight};
+  },
+
+  makePositioned: function(element) {
+    element = $(element);
+    var pos = Element.getStyle(element, 'position');
+    if (pos == 'static' || !pos) {
+      element._madePositioned = true;
+      element.style.position = 'relative';
+      if (Prototype.Browser.Opera) {
+        element.style.top = 0;
+        element.style.left = 0;
+      }
+    }
+    return element;
+  },
+
+  undoPositioned: function(element) {
+    element = $(element);
+    if (element._madePositioned) {
+      element._madePositioned = undefined;
+      element.style.position =
+        element.style.top =
+        element.style.left =
+        element.style.bottom =
+        element.style.right = '';
+    }
+    return element;
+  },
+
+  makeClipping: function(element) {
+    element = $(element);
+    if (element._overflow) return element;
+    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+    if (element._overflow !== 'hidden')
+      element.style.overflow = 'hidden';
+    return element;
+  },
+
+  undoClipping: function(element) {
+    element = $(element);
+    if (!element._overflow) return element;
+    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+    element._overflow = null;
+    return element;
+  },
+
+  cumulativeOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  positionedOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+      if (element) {
+        if (element.tagName.toUpperCase() == 'BODY') break;
+        var p = Element.getStyle(element, 'position');
+        if (p !== 'static') break;
+      }
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  absolutize: function(element) {
+    element = $(element);
+    if (Element.getStyle(element, 'position') == 'absolute') return element;
+
+    var offsets = Element.positionedOffset(element);
+    var top     = offsets[1];
+    var left    = offsets[0];
+    var width   = element.clientWidth;
+    var height  = element.clientHeight;
+
+    element._originalLeft   = left - parseFloat(element.style.left  || 0);
+    element._originalTop    = top  - parseFloat(element.style.top || 0);
+    element._originalWidth  = element.style.width;
+    element._originalHeight = element.style.height;
+
+    element.style.position = 'absolute';
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.width  = width + 'px';
+    element.style.height = height + 'px';
+    return element;
+  },
+
+  relativize: function(element) {
+    element = $(element);
+    if (Element.getStyle(element, 'position') == 'relative') return element;
+
+    element.style.position = 'relative';
+    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
+    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.height = element._originalHeight;
+    element.style.width  = element._originalWidth;
+    return element;
+  },
+
+  cumulativeScrollOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.scrollTop  || 0;
+      valueL += element.scrollLeft || 0;
+      element = element.parentNode;
+    } while (element);
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  getOffsetParent: function(element) {
+    if (element.offsetParent) return $(element.offsetParent);
+    if (element == document.body) return $(element);
+
+    while ((element = element.parentNode) && element != document.body)
+      if (Element.getStyle(element, 'position') != 'static')
+        return $(element);
+
+    return $(document.body);
+  },
+
+  viewportOffset: function(forElement) {
+    var valueT = 0, valueL = 0;
+
+    var element = forElement;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+
+      if (element.offsetParent == document.body &&
+        Element.getStyle(element, 'position') == 'absolute') break;
+
+    } while (element = element.offsetParent);
+
+    element = forElement;
+    do {
+      if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
+        valueT -= element.scrollTop  || 0;
+        valueL -= element.scrollLeft || 0;
+      }
+    } while (element = element.parentNode);
+
+    return Element._returnOffset(valueL, valueT);
+  },
+
+  clonePosition: function(element, source) {
+    var options = Object.extend({
+      setLeft:    true,
+      setTop:     true,
+      setWidth:   true,
+      setHeight:  true,
+      offsetTop:  0,
+      offsetLeft: 0
+    }, arguments[2] || { });
+
+    source = $(source);
+    var p = Element.viewportOffset(source);
+
+    element = $(element);
+    var delta = [0, 0];
+    var parent = null;
+    if (Element.getStyle(element, 'position') == 'absolute') {
+      parent = Element.getOffsetParent(element);
+      delta = Element.viewportOffset(parent);
+    }
+
+    if (parent == document.body) {
+      delta[0] -= document.body.offsetLeft;
+      delta[1] -= document.body.offsetTop;
+    }
+
+    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
+    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
+    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
+    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+    return element;
+  }
+};
+
+Object.extend(Element.Methods, {
+  getElementsBySelector: Element.Methods.select,
+
+  childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+  write: {
+    names: {
+      className: 'class',
+      htmlFor:   'for'
+    },
+    values: { }
+  }
+};
+
+if (Prototype.Browser.Opera) {
+  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+    function(proceed, element, style) {
+      switch (style) {
+        case 'left': case 'top': case 'right': case 'bottom':
+          if (proceed(element, 'position') === 'static') return null;
+        case 'height': case 'width':
+          if (!Element.visible(element)) return null;
+
+          var dim = parseInt(proceed(element, style), 10);
+
+          if (dim !== element['offset' + style.capitalize()])
+            return dim + 'px';
+
+          var properties;
+          if (style === 'height') {
+            properties = ['border-top-width', 'padding-top',
+             'padding-bottom', 'border-bottom-width'];
+          }
+          else {
+            properties = ['border-left-width', 'padding-left',
+             'padding-right', 'border-right-width'];
+          }
+          return properties.inject(dim, function(memo, property) {
+            var val = proceed(element, property);
+            return val === null ? memo : memo - parseInt(val, 10);
+          }) + 'px';
+        default: return proceed(element, style);
+      }
+    }
+  );
+
+  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+    function(proceed, element, attribute) {
+      if (attribute === 'title') return element.title;
+      return proceed(element, attribute);
+    }
+  );
+}
+
+else if (Prototype.Browser.IE) {
+  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+    function(proceed, element) {
+      element = $(element);
+      try { element.offsetParent }
+      catch(e) { return $(document.body) }
+      var position = element.getStyle('position');
+      if (position !== 'static') return proceed(element);
+      element.setStyle({ position: 'relative' });
+      var value = proceed(element);
+      element.setStyle({ position: position });
+      return value;
+    }
+  );
+
+  $w('positionedOffset viewportOffset').each(function(method) {
+    Element.Methods[method] = Element.Methods[method].wrap(
+      function(proceed, element) {
+        element = $(element);
+        try { element.offsetParent }
+        catch(e) { return Element._returnOffset(0,0) }
+        var position = element.getStyle('position');
+        if (position !== 'static') return proceed(element);
+        var offsetParent = element.getOffsetParent();
+        if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+          offsetParent.setStyle({ zoom: 1 });
+        element.setStyle({ position: 'relative' });
+        var value = proceed(element);
+        element.setStyle({ position: position });
+        return value;
+      }
+    );
+  });
+
+  Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
+    function(proceed, element) {
+      try { element.offsetParent }
+      catch(e) { return Element._returnOffset(0,0) }
+      return proceed(element);
+    }
+  );
+
+  Element.Methods.getStyle = function(element, style) {
+    element = $(element);
+    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+    var value = element.style[style];
+    if (!value && element.currentStyle) value = element.currentStyle[style];
+
+    if (style == 'opacity') {
+      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+        if (value[1]) return parseFloat(value[1]) / 100;
+      return 1.0;
+    }
+
+    if (value == 'auto') {
+      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+        return element['offset' + style.capitalize()] + 'px';
+      return null;
+    }
+    return value;
+  };
+
+  Element.Methods.setOpacity = function(element, value) {
+    function stripAlpha(filter){
+      return filter.replace(/alpha\([^\)]*\)/gi,'');
+    }
+    element = $(element);
+    var currentStyle = element.currentStyle;
+    if ((currentStyle && !currentStyle.hasLayout) ||
+      (!currentStyle && element.style.zoom == 'normal'))
+        element.style.zoom = 1;
+
+    var filter = element.getStyle('filter'), style = element.style;
+    if (value == 1 || value === '') {
+      (filter = stripAlpha(filter)) ?
+        style.filter = filter : style.removeAttribute('filter');
+      return element;
+    } else if (value < 0.00001) value = 0;
+    style.filter = stripAlpha(filter) +
+      'alpha(opacity=' + (value * 100) + ')';
+    return element;
+  };
+
+  Element._attributeTranslations = (function(){
+
+    var classProp = 'className';
+    var forProp = 'for';
+
+    var el = document.createElement('div');
+
+    el.setAttribute(classProp, 'x');
+
+    if (el.className !== 'x') {
+      el.setAttribute('class', 'x');
+      if (el.className === 'x') {
+        classProp = 'class';
+      }
+    }
+    el = null;
+
+    el = document.createElement('label');
+    el.setAttribute(forProp, 'x');
+    if (el.htmlFor !== 'x') {
+      el.setAttribute('htmlFor', 'x');
+      if (el.htmlFor === 'x') {
+        forProp = 'htmlFor';
+      }
+    }
+    el = null;
+
+    return {
+      read: {
+        names: {
+          'class':      classProp,
+          'className':  classProp,
+          'for':        forProp,
+          'htmlFor':    forProp
+        },
+        values: {
+          _getAttr: function(element, attribute) {
+            return element.getAttribute(attribute);
+          },
+          _getAttr2: function(element, attribute) {
+            return element.getAttribute(attribute, 2);
+          },
+          _getAttrNode: function(element, attribute) {
+            var node = element.getAttributeNode(attribute);
+            return node ? node.value : "";
+          },
+          _getEv: (function(){
+
+            var el = document.createElement('div');
+            el.onclick = Prototype.emptyFunction;
+            var value = el.getAttribute('onclick');
+            var f;
+
+            if (String(value).indexOf('{') > -1) {
+              f = function(element, attribute) {
+                attribute = element.getAttribute(attribute);
+                if (!attribute) return null;
+                attribute = attribute.toString();
+                attribute = attribute.split('{')[1];
+                attribute = attribute.split('}')[0];
+                return attribute.strip();
+              };
+            }
+            else if (value === '') {
+              f = function(element, attribute) {
+                attribute = element.getAttribute(attribute);
+                if (!attribute) return null;
+                return attribute.strip();
+              };
+            }
+            el = null;
+            return f;
+          })(),
+          _flag: function(element, attribute) {
+            return $(element).hasAttribute(attribute) ? attribute : null;
+          },
+          style: function(element) {
+            return element.style.cssText.toLowerCase();
+          },
+          title: function(element) {
+            return element.title;
+          }
+        }
+      }
+    }
+  })();
+
+  Element._attributeTranslations.write = {
+    names: Object.extend({
+      cellpadding: 'cellPadding',
+      cellspacing: 'cellSpacing'
+    }, Element._attributeTranslations.read.names),
+    values: {
+      checked: function(element, value) {
+        element.checked = !!value;
+      },
+
+      style: function(element, value) {
+        element.style.cssText = value ? value : '';
+      }
+    }
+  };
+
+  Element._attributeTranslations.has = {};
+
+  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
+    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+  });
+
+  (function(v) {
+    Object.extend(v, {
+      href:        v._getAttr2,
+      src:         v._getAttr2,
+      type:        v._getAttr,
+      action:      v._getAttrNode,
+      disabled:    v._flag,
+      checked:     v._flag,
+      readonly:    v._flag,
+      multiple:    v._flag,
+      onload:      v._getEv,
+      onunload:    v._getEv,
+      onclick:     v._getEv,
+      ondblclick:  v._getEv,
+      onmousedown: v._getEv,
+      onmouseup:   v._getEv,
+      onmouseover: v._getEv,
+      onmousemove: v._getEv,
+      onmouseout:  v._getEv,
+      onfocus:     v._getEv,
+      onblur:      v._getEv,
+      onkeypress:  v._getEv,
+      onkeydown:   v._getEv,
+      onkeyup:     v._getEv,
+      onsubmit:    v._getEv,
+      onreset:     v._getEv,
+      onselect:    v._getEv,
+      onchange:    v._getEv
+    });
+  })(Element._attributeTranslations.read.values);
+
+  if (Prototype.BrowserFeatures.ElementExtensions) {
+    (function() {
+      function _descendants(element) {
+        var nodes = element.getElementsByTagName('*'), results = [];
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.tagName !== "!") // Filter out comment nodes.
+            results.push(node);
+        return results;
+      }
+
+      Element.Methods.down = function(element, expression, index) {
+        element = $(element);
+        if (arguments.length == 1) return element.firstDescendant();
+        return Object.isNumber(expression) ? _descendants(element)[expression] :
+          Element.select(element, expression)[index || 0];
+      }
+    })();
+  }
+
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1) ? 0.999999 :
+      (value === '') ? '' : (value < 0.00001) ? 0 : value;
+    return element;
+  };
+}
+
+else if (Prototype.Browser.WebKit) {
+  Element.Methods.setOpacity = function(element, value) {
+    element = $(element);
+    element.style.opacity = (value == 1 || value === '') ? '' :
+      (value < 0.00001) ? 0 : value;
+
+    if (value == 1)
+      if(element.tagName.toUpperCase() == 'IMG' && element.width) {
+        element.width++; element.width--;
+      } else try {
+        var n = document.createTextNode(' ');
+        element.appendChild(n);
+        element.removeChild(n);
+      } catch (e) { }
+
+    return element;
+  };
+
+  Element.Methods.cumulativeOffset = function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      if (element.offsetParent == document.body)
+        if (Element.getStyle(element, 'position') == 'absolute') break;
+
+      element = element.offsetParent;
+    } while (element);
+
+    return Element._returnOffset(valueL, valueT);
+  };
+}
+
+if ('outerHTML' in document.documentElement) {
+  Element.Methods.replace = function(element, content) {
+    element = $(element);
+
+    if (content && content.toElement) content = content.toElement();
+    if (Object.isElement(content)) {
+      element.parentNode.replaceChild(content, element);
+      return element;
+    }
+
+    content = Object.toHTML(content);
+    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+    if (Element._insertionTranslations.tags[tagName]) {
+      var nextSibling = element.next();
+      var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+      parent.removeChild(element);
+      if (nextSibling)
+        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+      else
+        fragments.each(function(node) { parent.appendChild(node) });
+    }
+    else element.outerHTML = content.stripScripts();
+
+    content.evalScripts.bind(content).defer();
+    return element;
+  };
+}
+
+Element._returnOffset = function(l, t) {
+  var result = [l, t];
+  result.left = l;
+  result.top = t;
+  return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+  var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+  if (t) {
+    div.innerHTML = t[0] + html + t[1];
+    t[2].times(function() { div = div.firstChild });
+  } else div.innerHTML = html;
+  return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+  before: function(element, node) {
+    element.parentNode.insertBefore(node, element);
+  },
+  top: function(element, node) {
+    element.insertBefore(node, element.firstChild);
+  },
+  bottom: function(element, node) {
+    element.appendChild(node);
+  },
+  after: function(element, node) {
+    element.parentNode.insertBefore(node, element.nextSibling);
+  },
+  tags: {
+    TABLE:  ['<table>',                '</table>',                   1],
+    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
+    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
+    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+    SELECT: ['<select>',               '</select>',                  1]
+  }
+};
+
+(function() {
+  var tags = Element._insertionTranslations.tags;
+  Object.extend(tags, {
+    THEAD: tags.TBODY,
+    TFOOT: tags.TBODY,
+    TH:    tags.TD
+  });
+})();
+
+Element.Methods.Simulated = {
+  hasAttribute: function(element, attribute) {
+    attribute = Element._attributeTranslations.has[attribute] || attribute;
+    var node = $(element).getAttributeNode(attribute);
+    return !!(node && node.specified);
+  }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+(function(div) {
+
+  if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) {
+    window.HTMLElement = { };
+    window.HTMLElement.prototype = div['__proto__'];
+    Prototype.BrowserFeatures.ElementExtensions = true;
+  }
+
+  div = null;
+
+})(document.createElement('div'))
+
+Element.extend = (function() {
+
+  function checkDeficiency(tagName) {
+    if (typeof window.Element != 'undefined') {
+      var proto = window.Element.prototype;
+      if (proto) {
+        var id = '_' + (Math.random()+'').slice(2);
+        var el = document.createElement(tagName);
+        proto[id] = 'x';
+        var isBuggy = (el[id] !== 'x');
+        delete proto[id];
+        el = null;
+        return isBuggy;
+      }
+    }
+    return false;
+  }
+
+  function extendElementWith(element, methods) {
+    for (var property in methods) {
+      var value = methods[property];
+      if (Object.isFunction(value) && !(property in element))
+        element[property] = value.methodize();
+    }
+  }
+
+  var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object');
+
+  if (Prototype.BrowserFeatures.SpecificElementExtensions) {
+    if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) {
+      return function(element) {
+        if (element && typeof element._extendedByPrototype == 'undefined') {
+          var t = element.tagName;
+          if (t && (/^(?:object|applet|embed)$/i.test(t))) {
+            extendElementWith(element, Element.Methods);
+            extendElementWith(element, Element.Methods.Simulated);
+            extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
+          }
+        }
+        return element;
+      }
+    }
+    return Prototype.K;
+  }
+
+  var Methods = { }, ByTag = Element.Methods.ByTag;
+
+  var extend = Object.extend(function(element) {
+    if (!element || typeof element._extendedByPrototype != 'undefined' ||
+        element.nodeType != 1 || element == window) return element;
+
+    var methods = Object.clone(Methods),
+        tagName = element.tagName.toUpperCase();
+
+    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+    extendElementWith(element, methods);
+
+    element._extendedByPrototype = Prototype.emptyFunction;
+    return element;
+
+  }, {
+    refresh: function() {
+      if (!Prototype.BrowserFeatures.ElementExtensions) {
+        Object.extend(Methods, Element.Methods);
+        Object.extend(Methods, Element.Methods.Simulated);
+      }
+    }
+  });
+
+  extend.refresh();
+  return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+  if (element.hasAttribute) return element.hasAttribute(attribute);
+  return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+  if (!methods) {
+    Object.extend(Form, Form.Methods);
+    Object.extend(Form.Element, Form.Element.Methods);
+    Object.extend(Element.Methods.ByTag, {
+      "FORM":     Object.clone(Form.Methods),
+      "INPUT":    Object.clone(Form.Element.Methods),
+      "SELECT":   Object.clone(Form.Element.Methods),
+      "TEXTAREA": Object.clone(Form.Element.Methods)
+    });
+  }
+
+  if (arguments.length == 2) {
+    var tagName = methods;
+    methods = arguments[1];
+  }
+
+  if (!tagName) Object.extend(Element.Methods, methods || { });
+  else {
+    if (Object.isArray(tagName)) tagName.each(extend);
+    else extend(tagName);
+  }
+
+  function extend(tagName) {
+    tagName = tagName.toUpperCase();
+    if (!Element.Methods.ByTag[tagName])
+      Element.Methods.ByTag[tagName] = { };
+    Object.extend(Element.Methods.ByTag[tagName], methods);
+  }
+
+  function copy(methods, destination, onlyIfAbsent) {
+    onlyIfAbsent = onlyIfAbsent || false;
+    for (var property in methods) {
+      var value = methods[property];
+      if (!Object.isFunction(value)) continue;
+      if (!onlyIfAbsent || !(property in destination))
+        destination[property] = value.methodize();
+    }
+  }
+
+  function findDOMClass(tagName) {
+    var klass;
+    var trans = {
+      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+      "FrameSet", "IFRAME": "IFrame"
+    };
+    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName + 'Element';
+    if (window[klass]) return window[klass];
+    klass = 'HTML' + tagName.capitalize() + 'Element';
+    if (window[klass]) return window[klass];
+
+    var element = document.createElement(tagName);
+    var proto = element['__proto__'] || element.constructor.prototype;
+    element = null;
+    return proto;
+  }
+
+  var elementPrototype = window.HTMLElement ? HTMLElement.prototype :
+   Element.prototype;
+
+  if (F.ElementExtensions) {
+    copy(Element.Methods, elementPrototype);
+    copy(Element.Methods.Simulated, elementPrototype, true);
+  }
+
+  if (F.SpecificElementExtensions) {
+    for (var tag in Element.Methods.ByTag) {
+      var klass = findDOMClass(tag);
+      if (Object.isUndefined(klass)) continue;
+      copy(T[tag], klass.prototype);
+    }
+  }
+
+  Object.extend(Element, Element.Methods);
+  delete Element.ByTag;
+
+  if (Element.extend.refresh) Element.extend.refresh();
+  Element.cache = { };
+};
+
+
+document.viewport = {
+
+  getDimensions: function() {
+    return { width: this.getWidth(), height: this.getHeight() };
+  },
+
+  getScrollOffsets: function() {
+    return Element._returnOffset(
+      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+      window.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop);
+  }
+};
+
+(function(viewport) {
+  var B = Prototype.Browser, doc = document, element, property = {};
+
+  function getRootElement() {
+    if (B.WebKit && !doc.evaluate)
+      return document;
+
+    if (B.Opera && window.parseFloat(window.opera.version()) < 9.5)
+      return document.body;
+
+    return document.documentElement;
+  }
+
+  function define(D) {
+    if (!element) element = getRootElement();
+
+    property[D] = 'client' + D;
+
+    viewport['get' + D] = function() { return element[property[D]] };
+    return viewport['get' + D]();
+  }
+
+  viewport.getWidth  = define.curry('Width');
+
+  viewport.getHeight = define.curry('Height');
+})(document.viewport);
+
+
+Element.Storage = {
+  UID: 1
+};
+
+Element.addMethods({
+  getStorage: function(element) {
+    if (!(element = $(element))) return;
+
+    var uid;
+    if (element === window) {
+      uid = 0;
+    } else {
+      if (typeof element._prototypeUID === "undefined")
+        element._prototypeUID = [Element.Storage.UID++];
+      uid = element._prototypeUID[0];
+    }
+
+    if (!Element.Storage[uid])
+      Element.Storage[uid] = $H();
+
+    return Element.Storage[uid];
+  },
+
+  store: function(element, key, value) {
+    if (!(element = $(element))) return;
+
+    if (arguments.length === 2) {
+      Element.getStorage(element).update(key);
+    } else {
+      Element.getStorage(element).set(key, value);
+    }
+
+    return element;
+  },
+
+  retrieve: function(element, key, defaultValue) {
+    if (!(element = $(element))) return;
+    var hash = Element.getStorage(element), value = hash.get(key);
+
+    if (Object.isUndefined(value)) {
+      hash.set(key, defaultValue);
+      value = defaultValue;
+    }
+
+    return value;
+  },
+
+  clone: function(element, deep) {
+    if (!(element = $(element))) return;
+    var clone = element.cloneNode(deep);
+    clone._prototypeUID = void 0;
+    if (deep) {
+      var descendants = Element.select(clone, '*'),
+          i = descendants.length;
+      while (i--) {
+        descendants[i]._prototypeUID = void 0;
+      }
+    }
+    return Element.extend(clone);
+  }
+});
+/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license.  Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+  initialize: function(expression) {
+    this.expression = expression.strip();
+
+    if (this.shouldUseSelectorsAPI()) {
+      this.mode = 'selectorsAPI';
+    } else if (this.shouldUseXPath()) {
+      this.mode = 'xpath';
+      this.compileXPathMatcher();
+    } else {
+      this.mode = "normal";
+      this.compileMatcher();
+    }
+
+  },
+
+  shouldUseXPath: (function() {
+
+    var IS_DESCENDANT_SELECTOR_BUGGY = (function(){
+      var isBuggy = false;
+      if (document.evaluate && window.XPathResult) {
+        var el = document.createElement('div');
+        el.innerHTML = '<ul><li></li></ul><div><ul><li></li></ul></div>';
+
+        var xpath = ".//*[local-name()='ul' or local-name()='UL']" +
+          "//*[local-name()='li' or local-name()='LI']";
+
+        var result = document.evaluate(xpath, el, null,
+          XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+
+        isBuggy = (result.snapshotLength !== 2);
+        el = null;
+      }
+      return isBuggy;
+    })();
+
+    return function() {
+      if (!Prototype.BrowserFeatures.XPath) return false;
+
+      var e = this.expression;
+
+      if (Prototype.Browser.WebKit &&
+       (e.include("-of-type") || e.include(":empty")))
+        return false;
+
+      if ((/(\[[\w-]*?:|:checked)/).test(e))
+        return false;
+
+      if (IS_DESCENDANT_SELECTOR_BUGGY) return false;
+
+      return true;
+    }
+
+  })(),
+
+  shouldUseSelectorsAPI: function() {
+    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
+
+    if (Selector.CASE_INSENSITIVE_CLASS_NAMES) return false;
+
+    if (!Selector._div) Selector._div = new Element('div');
+
+    try {
+      Selector._div.querySelector(this.expression);
+    } catch(e) {
+      return false;
+    }
+
+    return true;
+  },
+
+  compileMatcher: function() {
+    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+        c = Selector.criteria, le, p, m, len = ps.length, name;
+
+    if (Selector._cache[e]) {
+      this.matcher = Selector._cache[e];
+      return;
+    }
+
+    this.matcher = ["this.matcher = function(root) {",
+                    "var r = root, h = Selector.handlers, c = false, n;"];
+
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i = 0; i<len; i++) {
+        p = ps[i].re;
+        name = ps[i].name;
+        if (m = e.match(p)) {
+          this.matcher.push(Object.isFunction(c[name]) ? c[name](m) :
+            new Template(c[name]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.matcher.push("return h.unique(n);\n}");
+    eval(this.matcher.join('\n'));
+    Selector._cache[this.expression] = this.matcher;
+  },
+
+  compileXPathMatcher: function() {
+    var e = this.expression, ps = Selector.patterns,
+        x = Selector.xpath, le, m, len = ps.length, name;
+
+    if (Selector._cache[e]) {
+      this.xpath = Selector._cache[e]; return;
+    }
+
+    this.matcher = ['.//*'];
+    while (e && le != e && (/\S/).test(e)) {
+      le = e;
+      for (var i = 0; i<len; i++) {
+        name = ps[i].name;
+        if (m = e.match(ps[i].re)) {
+          this.matcher.push(Object.isFunction(x[name]) ? x[name](m) :
+            new Template(x[name]).evaluate(m));
+          e = e.replace(m[0], '');
+          break;
+        }
+      }
+    }
+
+    this.xpath = this.matcher.join('');
+    Selector._cache[this.expression] = this.xpath;
+  },
+
+  findElements: function(root) {
+    root = root || document;
+    var e = this.expression, results;
+
+    switch (this.mode) {
+      case 'selectorsAPI':
+        if (root !== document) {
+          var oldId = root.id, id = $(root).identify();
+          id = id.replace(/([\.:])/g, "\\$1");
+          e = "#" + id + " " + e;
+        }
+
+        results = $A(root.querySelectorAll(e)).map(Element.extend);
+        root.id = oldId;
+
+        return results;
+      case 'xpath':
+        return document._getElementsByXPath(this.xpath, root);
+      default:
+       return this.matcher(root);
+    }
+  },
+
+  match: function(element) {
+    this.tokens = [];
+
+    var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+    var le, p, m, len = ps.length, name;
+
+    while (e && le !== e && (/\S/).test(e)) {
+      le = e;
+      for (var i = 0; i<len; i++) {
+        p = ps[i].re;
+        name = ps[i].name;
+        if (m = e.match(p)) {
+          if (as[name]) {
+            this.tokens.push([name, Object.clone(m)]);
+            e = e.replace(m[0], '');
+          } else {
+            return this.findElements(document).include(element);
+          }
+        }
+      }
+    }
+
+    var match = true, name, matches;
+    for (var i = 0, token; token = this.tokens[i]; i++) {
+      name = token[0], matches = token[1];
+      if (!Selector.assertions[name](element, matches)) {
+        match = false; break;
+      }
+    }
+
+    return match;
+  },
+
+  toString: function() {
+    return this.expression;
+  },
+
+  inspect: function() {
+    return "#<Selector:" + this.expression.inspect() + ">";
+  }
+});
+
+if (Prototype.BrowserFeatures.SelectorsAPI &&
+ document.compatMode === 'BackCompat') {
+  Selector.CASE_INSENSITIVE_CLASS_NAMES = (function(){
+    var div = document.createElement('div'),
+     span = document.createElement('span');
+
+    div.id = "prototype_test_id";
+    span.className = 'Test';
+    div.appendChild(span);
+    var isIgnored = (div.querySelector('#prototype_test_id .test') !== null);
+    div = span = null;
+    return isIgnored;
+  })();
+}
+
+Object.extend(Selector, {
+  _cache: { },
+
+  xpath: {
+    descendant:   "//*",
+    child:        "/*",
+    adjacent:     "/following-sibling::*[1]",
+    laterSibling: '/following-sibling::*',
+    tagName:      function(m) {
+      if (m[1] == '*') return '';
+      return "[local-name()='" + m[1].toLowerCase() +
+             "' or local-name()='" + m[1].toUpperCase() + "']";
+    },
+    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+    id:           "[@id='#{1}']",
+    attrPresence: function(m) {
+      m[1] = m[1].toLowerCase();
+      return new Template("[@#{1}]").evaluate(m);
+    },
+    attr: function(m) {
+      m[1] = m[1].toLowerCase();
+      m[3] = m[5] || m[6];
+      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+    },
+    pseudo: function(m) {
+      var h = Selector.xpath.pseudos[m[1]];
+      if (!h) return '';
+      if (Object.isFunction(h)) return h(m);
+      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+    },
+    operators: {
+      '=':  "[@#{1}='#{3}']",
+      '!=': "[@#{1}!='#{3}']",
+      '^=': "[starts-with(@#{1}, '#{3}')]",
+      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+      '*=': "[contains(@#{1}, '#{3}')]",
+      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+    },
+    pseudos: {
+      'first-child': '[not(preceding-sibling::*)]',
+      'last-child':  '[not(following-sibling::*)]',
+      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
+      'empty':       "[count(*) = 0 and (count(text()) = 0)]",
+      'checked':     "[@checked]",
+      'disabled':    "[(@disabled) and (@type!='hidden')]",
+      'enabled':     "[not(@disabled) and (@type!='hidden')]",
+      'not': function(m) {
+        var e = m[6], p = Selector.patterns,
+            x = Selector.xpath, le, v, len = p.length, name;
+
+        var exclusion = [];
+        while (e && le != e && (/\S/).test(e)) {
+          le = e;
+          for (var i = 0; i<len; i++) {
+            name = p[i].name
+            if (m = e.match(p[i].re)) {
+              v = Object.isFunction(x[name]) ? x[name](m) : new Template(x[name]).evaluate(m);
+              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+              e = e.replace(m[0], '');
+              break;
+            }
+          }
+        }
+        return "[not(" + exclusion.join(" and ") + ")]";
+      },
+      'nth-child':      function(m) {
+        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+      },
+      'nth-last-child': function(m) {
+        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+      },
+      'nth-of-type':    function(m) {
+        return Selector.xpath.pseudos.nth("position() ", m);
+      },
+      'nth-last-of-type': function(m) {
+        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+      },
+      'first-of-type':  function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+      },
+      'last-of-type':   function(m) {
+        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+      },
+      'only-of-type':   function(m) {
+        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+      },
+      nth: function(fragment, m) {
+        var mm, formula = m[6], predicate;
+        if (formula == 'even') formula = '2n+0';
+        if (formula == 'odd')  formula = '2n+1';
+        if (mm = formula.match(/^(\d+)$/)) // digit only
+          return '[' + fragment + "= " + mm[1] + ']';
+        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+          if (mm[1] == "-") mm[1] = -1;
+          var a = mm[1] ? Number(mm[1]) : 1;
+          var b = mm[2] ? Number(mm[2]) : 0;
+          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+          "((#{fragment} - #{b}) div #{a} >= 0)]";
+          return new Template(predicate).evaluate({
+            fragment: fragment, a: a, b: b });
+        }
+      }
+    }
+  },
+
+  criteria: {
+    tagName:      'n = h.tagName(n, r, "#{1}", c);      c = false;',
+    className:    'n = h.className(n, r, "#{1}", c);    c = false;',
+    id:           'n = h.id(n, r, "#{1}", c);           c = false;',
+    attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
+    attr: function(m) {
+      m[3] = (m[5] || m[6]);
+      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
+    },
+    pseudo: function(m) {
+      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+    },
+    descendant:   'c = "descendant";',
+    child:        'c = "child";',
+    adjacent:     'c = "adjacent";',
+    laterSibling: 'c = "laterSibling";'
+  },
+
+  patterns: [
+    { name: 'laterSibling', re: /^\s*~\s*/ },
+    { name: 'child',        re: /^\s*>\s*/ },
+    { name: 'adjacent',     re: /^\s*\+\s*/ },
+    { name: 'descendant',   re: /^\s/ },
+
+    { name: 'tagName',      re: /^\s*(\*|[\w\-]+)(\b|$)?/ },
+    { name: 'id',           re: /^#([\w\-\*]+)(\b|$)/ },
+    { name: 'className',    re: /^\.([\w\-\*]+)(\b|$)/ },
+    { name: 'pseudo',       re: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/ },
+    { name: 'attrPresence', re: /^\[((?:[\w-]+:)?[\w-]+)\]/ },
+    { name: 'attr',         re: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ }
+  ],
+
+  assertions: {
+    tagName: function(element, matches) {
+      return matches[1].toUpperCase() == element.tagName.toUpperCase();
+    },
+
+    className: function(element, matches) {
+      return Element.hasClassName(element, matches[1]);
+    },
+
+    id: function(element, matches) {
+      return element.id === matches[1];
+    },
+
+    attrPresence: function(element, matches) {
+      return Element.hasAttribute(element, matches[1]);
+    },
+
+    attr: function(element, matches) {
+      var nodeValue = Element.readAttribute(element, matches[1]);
+      return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
+    }
+  },
+
+  handlers: {
+    concat: function(a, b) {
+      for (var i = 0, node; node = b[i]; i++)
+        a.push(node);
+      return a;
+    },
+
+    mark: function(nodes) {
+      var _true = Prototype.emptyFunction;
+      for (var i = 0, node; node = nodes[i]; i++)
+        node._countedByPrototype = _true;
+      return nodes;
+    },
+
+    unmark: (function(){
+
+      var PROPERTIES_ATTRIBUTES_MAP = (function(){
+        var el = document.createElement('div'),
+            isBuggy = false,
+            propName = '_countedByPrototype',
+            value = 'x'
+        el[propName] = value;
+        isBuggy = (el.getAttribute(propName) === value);
+        el = null;
+        return isBuggy;
+      })();
+
+      return PROPERTIES_ATTRIBUTES_MAP ?
+        function(nodes) {
+          for (var i = 0, node; node = nodes[i]; i++)
+            node.removeAttribute('_countedByPrototype');
+          return nodes;
+        } :
+        function(nodes) {
+          for (var i = 0, node; node = nodes[i]; i++)
+            node._countedByPrototype = void 0;
+          return nodes;
+        }
+    })(),
+
+    index: function(parentNode, reverse, ofType) {
+      parentNode._countedByPrototype = Prototype.emptyFunction;
+      if (reverse) {
+        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+          var node = nodes[i];
+          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+        }
+      } else {
+        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+      }
+    },
+
+    unique: function(nodes) {
+      if (nodes.length == 0) return nodes;
+      var results = [], n;
+      for (var i = 0, l = nodes.length; i < l; i++)
+        if (typeof (n = nodes[i])._countedByPrototype == 'undefined') {
+          n._countedByPrototype = Prototype.emptyFunction;
+          results.push(Element.extend(n));
+        }
+      return Selector.handlers.unmark(results);
+    },
+
+    descendant: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, node.getElementsByTagName('*'));
+      return results;
+    },
+
+    child: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        for (var j = 0, child; child = node.childNodes[j]; j++)
+          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+      }
+      return results;
+    },
+
+    adjacent: function(nodes) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        var next = this.nextElementSibling(node);
+        if (next) results.push(next);
+      }
+      return results;
+    },
+
+    laterSibling: function(nodes) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        h.concat(results, Element.nextSiblings(node));
+      return results;
+    },
+
+    nextElementSibling: function(node) {
+      while (node = node.nextSibling)
+        if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    previousElementSibling: function(node) {
+      while (node = node.previousSibling)
+        if (node.nodeType == 1) return node;
+      return null;
+    },
+
+    tagName: function(nodes, root, tagName, combinator) {
+      var uTagName = tagName.toUpperCase();
+      var results = [], h = Selector.handlers;
+      if (nodes) {
+        if (combinator) {
+          if (combinator == "descendant") {
+            for (var i = 0, node; node = nodes[i]; i++)
+              h.concat(results, node.getElementsByTagName(tagName));
+            return results;
+          } else nodes = this[combinator](nodes);
+          if (tagName == "*") return nodes;
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.tagName.toUpperCase() === uTagName) results.push(node);
+        return results;
+      } else return root.getElementsByTagName(tagName);
+    },
+
+    id: function(nodes, root, id, combinator) {
+      var targetNode = $(id), h = Selector.handlers;
+
+      if (root == document) {
+        if (!targetNode) return [];
+        if (!nodes) return [targetNode];
+      } else {
+        if (!root.sourceIndex || root.sourceIndex < 1) {
+          var nodes = root.getElementsByTagName('*');
+          for (var j = 0, node; node = nodes[j]; j++) {
+            if (node.id === id) return [node];
+          }
+        }
+      }
+
+      if (nodes) {
+        if (combinator) {
+          if (combinator == 'child') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (targetNode.parentNode == node) return [targetNode];
+          } else if (combinator == 'descendant') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Element.descendantOf(targetNode, node)) return [targetNode];
+          } else if (combinator == 'adjacent') {
+            for (var i = 0, node; node = nodes[i]; i++)
+              if (Selector.handlers.previousElementSibling(targetNode) == node)
+                return [targetNode];
+          } else nodes = h[combinator](nodes);
+        }
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node == targetNode) return [targetNode];
+        return [];
+      }
+      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+    },
+
+    className: function(nodes, root, className, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      return Selector.handlers.byClassName(nodes, root, className);
+    },
+
+    byClassName: function(nodes, root, className) {
+      if (!nodes) nodes = Selector.handlers.descendant([root]);
+      var needle = ' ' + className + ' ';
+      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+        nodeClassName = node.className;
+        if (nodeClassName.length == 0) continue;
+        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+          results.push(node);
+      }
+      return results;
+    },
+
+    attrPresence: function(nodes, root, attr, combinator) {
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      var results = [];
+      for (var i = 0, node; node = nodes[i]; i++)
+        if (Element.hasAttribute(node, attr)) results.push(node);
+      return results;
+    },
+
+    attr: function(nodes, root, attr, value, operator, combinator) {
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      var handler = Selector.operators[operator], results = [];
+      for (var i = 0, node; node = nodes[i]; i++) {
+        var nodeValue = Element.readAttribute(node, attr);
+        if (nodeValue === null) continue;
+        if (handler(nodeValue, value)) results.push(node);
+      }
+      return results;
+    },
+
+    pseudo: function(nodes, name, value, root, combinator) {
+      if (nodes && combinator) nodes = this[combinator](nodes);
+      if (!nodes) nodes = root.getElementsByTagName("*");
+      return Selector.pseudos[name](nodes, value, root);
+    }
+  },
+
+  pseudos: {
+    'first-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.previousElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'last-child': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (Selector.handlers.nextElementSibling(node)) continue;
+          results.push(node);
+      }
+      return results;
+    },
+    'only-child': function(nodes, value, root) {
+      var h = Selector.handlers;
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+          results.push(node);
+      return results;
+    },
+    'nth-child':        function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root);
+    },
+    'nth-last-child':   function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true);
+    },
+    'nth-of-type':      function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, false, true);
+    },
+    'nth-last-of-type': function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, formula, root, true, true);
+    },
+    'first-of-type':    function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, false, true);
+    },
+    'last-of-type':     function(nodes, formula, root) {
+      return Selector.pseudos.nth(nodes, "1", root, true, true);
+    },
+    'only-of-type':     function(nodes, formula, root) {
+      var p = Selector.pseudos;
+      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+    },
+
+    getIndices: function(a, b, total) {
+      if (a == 0) return b > 0 ? [b] : [];
+      return $R(1, total).inject([], function(memo, i) {
+        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+        return memo;
+      });
+    },
+
+    nth: function(nodes, formula, root, reverse, ofType) {
+      if (nodes.length == 0) return [];
+      if (formula == 'even') formula = '2n+0';
+      if (formula == 'odd')  formula = '2n+1';
+      var h = Selector.handlers, results = [], indexed = [], m;
+      h.mark(nodes);
+      for (var i = 0, node; node = nodes[i]; i++) {
+        if (!node.parentNode._countedByPrototype) {
+          h.index(node.parentNode, reverse, ofType);
+          indexed.push(node.parentNode);
+        }
+      }
+      if (formula.match(/^\d+$/)) { // just a number
+        formula = Number(formula);
+        for (var i = 0, node; node = nodes[i]; i++)
+          if (node.nodeIndex == formula) results.push(node);
+      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+        if (m[1] == "-") m[1] = -1;
+        var a = m[1] ? Number(m[1]) : 1;
+        var b = m[2] ? Number(m[2]) : 0;
+        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+          for (var j = 0; j < l; j++)
+            if (node.nodeIndex == indices[j]) results.push(node);
+        }
+      }
+      h.unmark(nodes);
+      h.unmark(indexed);
+      return results;
+    },
+
+    'empty': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++) {
+        if (node.tagName == '!' || node.firstChild) continue;
+        results.push(node);
+      }
+      return results;
+    },
+
+    'not': function(nodes, selector, root) {
+      var h = Selector.handlers, selectorType, m;
+      var exclusions = new Selector(selector).findElements(root);
+      h.mark(exclusions);
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node._countedByPrototype) results.push(node);
+      h.unmark(exclusions);
+      return results;
+    },
+
+    'enabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (!node.disabled && (!node.type || node.type !== 'hidden'))
+          results.push(node);
+      return results;
+    },
+
+    'disabled': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.disabled) results.push(node);
+      return results;
+    },
+
+    'checked': function(nodes, value, root) {
+      for (var i = 0, results = [], node; node = nodes[i]; i++)
+        if (node.checked) results.push(node);
+      return results;
+    }
+  },
+
+  operators: {
+    '=':  function(nv, v) { return nv == v; },
+    '!=': function(nv, v) { return nv != v; },
+    '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
+    '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
+    '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
+    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+    '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
+     '-').include('-' + (v || "").toUpperCase() + '-'); }
+  },
+
+  split: function(expression) {
+    var expressions = [];
+    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+      expressions.push(m[1].strip());
+    });
+    return expressions;
+  },
+
+  matchElements: function(elements, expression) {
+    var matches = $$(expression), h = Selector.handlers;
+    h.mark(matches);
+    for (var i = 0, results = [], element; element = elements[i]; i++)
+      if (element._countedByPrototype) results.push(element);
+    h.unmark(matches);
+    return results;
+  },
+
+  findElement: function(elements, expression, index) {
+    if (Object.isNumber(expression)) {
+      index = expression; expression = false;
+    }
+    return Selector.matchElements(elements, expression || '*')[index || 0];
+  },
+
+  findChildElements: function(element, expressions) {
+    expressions = Selector.split(expressions.join(','));
+    var results = [], h = Selector.handlers;
+    for (var i = 0, l = expressions.length, selector; i < l; i++) {
+      selector = new Selector(expressions[i].strip());
+      h.concat(results, selector.findElements(element));
+    }
+    return (l > 1) ? h.unique(results) : results;
+  }
+});
+
+if (Prototype.Browser.IE) {
+  Object.extend(Selector.handlers, {
+    concat: function(a, b) {
+      for (var i = 0, node; node = b[i]; i++)
+        if (node.tagName !== "!") a.push(node);
+      return a;
+    }
+  });
+}
+
+function $$() {
+  return Selector.findChildElements(document, $A(arguments));
+}
+
+var Form = {
+  reset: function(form) {
+    form = $(form);
+    form.reset();
+    return form;
+  },
+
+  serializeElements: function(elements, options) {
+    if (typeof options != 'object') options = { hash: !!options };
+    else if (Object.isUndefined(options.hash)) options.hash = true;
+    var key, value, submitted = false, submit = options.submit;
+
+    var data = elements.inject({ }, function(result, element) {
+      if (!element.disabled && element.name) {
+        key = element.name; value = $(element).getValue();
+        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
+            submit !== false && (!submit || key == submit) && (submitted = true)))) {
+          if (key in result) {
+            if (!Object.isArray(result[key])) result[key] = [result[key]];
+            result[key].push(value);
+          }
+          else result[key] = value;
+        }
+      }
+      return result;
+    });
+
+    return options.hash ? data : Object.toQueryString(data);
+  }
+};
+
+Form.Methods = {
+  serialize: function(form, options) {
+    return Form.serializeElements(Form.getElements(form), options);
+  },
+
+  getElements: function(form) {
+    var elements = $(form).getElementsByTagName('*'),
+        element,
+        arr = [ ],
+        serializers = Form.Element.Serializers;
+    for (var i = 0; element = elements[i]; i++) {
+      arr.push(element);
+    }
+    return arr.inject([], function(elements, child) {
+      if (serializers[child.tagName.toLowerCase()])
+        elements.push(Element.extend(child));
+      return elements;
+    })
+  },
+
+  getInputs: function(form, typeName, name) {
+    form = $(form);
+    var inputs = form.getElementsByTagName('input');
+
+    if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+      var input = inputs[i];
+      if ((typeName && input.type != typeName) || (name && input.name != name))
+        continue;
+      matchingInputs.push(Element.extend(input));
+    }
+
+    return matchingInputs;
+  },
+
+  disable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('disable');
+    return form;
+  },
+
+  enable: function(form) {
+    form = $(form);
+    Form.getElements(form).invoke('enable');
+    return form;
+  },
+
+  findFirstElement: function(form) {
+    var elements = $(form).getElements().findAll(function(element) {
+      return 'hidden' != element.type && !element.disabled;
+    });
+    var firstByIndex = elements.findAll(function(element) {
+      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+    }).sortBy(function(element) { return element.tabIndex }).first();
+
+    return firstByIndex ? firstByIndex : elements.find(function(element) {
+      return /^(?:input|select|textarea)$/i.test(element.tagName);
+    });
+  },
+
+  focusFirstElement: function(form) {
+    form = $(form);
+    form.findFirstElement().activate();
+    return form;
+  },
+
+  request: function(form, options) {
+    form = $(form), options = Object.clone(options || { });
+
+    var params = options.parameters, action = form.readAttribute('action') || '';
+    if (action.blank()) action = window.location.href;
+    options.parameters = form.serialize(true);
+
+    if (params) {
+      if (Object.isString(params)) params = params.toQueryParams();
+      Object.extend(options.parameters, params);
+    }
+
+    if (form.hasAttribute('method') && !options.method)
+      options.method = form.method;
+
+    return new Ajax.Request(action, options);
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+
+Form.Element = {
+  focus: function(element) {
+    $(element).focus();
+    return element;
+  },
+
+  select: function(element) {
+    $(element).select();
+    return element;
+  }
+};
+
+Form.Element.Methods = {
+
+  serialize: function(element) {
+    element = $(element);
+    if (!element.disabled && element.name) {
+      var value = element.getValue();
+      if (value != undefined) {
+        var pair = { };
+        pair[element.name] = value;
+        return Object.toQueryString(pair);
+      }
+    }
+    return '';
+  },
+
+  getValue: function(element) {
+    element = $(element);
+    var method = element.tagName.toLowerCase();
+    return Form.Element.Serializers[method](element);
+  },
+
+  setValue: function(element, value) {
+    element = $(element);
+    var method = element.tagName.toLowerCase();
+    Form.Element.Serializers[method](element, value);
+    return element;
+  },
+
+  clear: function(element) {
+    $(element).value = '';
+    return element;
+  },
+
+  present: function(element) {
+    return $(element).value != '';
+  },
+
+  activate: function(element) {
+    element = $(element);
+    try {
+      element.focus();
+      if (element.select && (element.tagName.toLowerCase() != 'input' ||
+          !(/^(?:button|reset|submit)$/i.test(element.type))))
+        element.select();
+    } catch (e) { }
+    return element;
+  },
+
+  disable: function(element) {
+    element = $(element);
+    element.disabled = true;
+    return element;
+  },
+
+  enable: function(element) {
+    element = $(element);
+    element.disabled = false;
+    return element;
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+  input: function(element, value) {
+    switch (element.type.toLowerCase()) {
+      case 'checkbox':
+      case 'radio':
+        return Form.Element.Serializers.inputSelector(element, value);
+      default:
+        return Form.Element.Serializers.textarea(element, value);
+    }
+  },
+
+  inputSelector: function(element, value) {
+    if (Object.isUndefined(value)) return element.checked ? element.value : null;
+    else element.checked = !!value;
+  },
+
+  textarea: function(element, value) {
+    if (Object.isUndefined(value)) return element.value;
+    else element.value = value;
+  },
+
+  select: function(element, value) {
+    if (Object.isUndefined(value))
+      return this[element.type == 'select-one' ?
+        'selectOne' : 'selectMany'](element);
+    else {
+      var opt, currentValue, single = !Object.isArray(value);
+      for (var i = 0, length = element.length; i < length; i++) {
+        opt = element.options[i];
+        currentValue = this.optionValue(opt);
+        if (single) {
+          if (currentValue == value) {
+            opt.selected = true;
+            return;
+          }
+        }
+        else opt.selected = value.include(currentValue);
+      }
+    }
+  },
+
+  selectOne: function(element) {
+    var index = element.selectedIndex;
+    return index >= 0 ? this.optionValue(element.options[index]) : null;
+  },
+
+  selectMany: function(element) {
+    var values, length = element.length;
+    if (!length) return null;
+
+    for (var i = 0, values = []; i < length; i++) {
+      var opt = element.options[i];
+      if (opt.selected) values.push(this.optionValue(opt));
+    }
+    return values;
+  },
+
+  optionValue: function(opt) {
+    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+  initialize: function($super, element, frequency, callback) {
+    $super(callback, frequency);
+    this.element   = $(element);
+    this.lastValue = this.getValue();
+  },
+
+  execute: function() {
+    var value = this.getValue();
+    if (Object.isString(this.lastValue) && Object.isString(value) ?
+        this.lastValue != value : String(this.lastValue) != String(value)) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+  initialize: function(element, callback) {
+    this.element  = $(element);
+    this.callback = callback;
+
+    this.lastValue = this.getValue();
+    if (this.element.tagName.toLowerCase() == 'form')
+      this.registerFormCallbacks();
+    else
+      this.registerCallback(this.element);
+  },
+
+  onElementEvent: function() {
+    var value = this.getValue();
+    if (this.lastValue != value) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  },
+
+  registerFormCallbacks: function() {
+    Form.getElements(this.element).each(this.registerCallback, this);
+  },
+
+  registerCallback: function(element) {
+    if (element.type) {
+      switch (element.type.toLowerCase()) {
+        case 'checkbox':
+        case 'radio':
+          Event.observe(element, 'click', this.onElementEvent.bind(this));
+          break;
+        default:
+          Event.observe(element, 'change', this.onElementEvent.bind(this));
+          break;
+      }
+    }
+  }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+(function() {
+
+  var Event = {
+    KEY_BACKSPACE: 8,
+    KEY_TAB:       9,
+    KEY_RETURN:   13,
+    KEY_ESC:      27,
+    KEY_LEFT:     37,
+    KEY_UP:       38,
+    KEY_RIGHT:    39,
+    KEY_DOWN:     40,
+    KEY_DELETE:   46,
+    KEY_HOME:     36,
+    KEY_END:      35,
+    KEY_PAGEUP:   33,
+    KEY_PAGEDOWN: 34,
+    KEY_INSERT:   45,
+
+    cache: {}
+  };
+
+  var docEl = document.documentElement;
+  var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
+    && 'onmouseleave' in docEl;
+
+  var _isButton;
+  if (Prototype.Browser.IE) {
+    var buttonMap = { 0: 1, 1: 4, 2: 2 };
+    _isButton = function(event, code) {
+      return event.button === buttonMap[code];
+    };
+  } else if (Prototype.Browser.WebKit) {
+    _isButton = function(event, code) {
+      switch (code) {
+        case 0: return event.which == 1 && !event.metaKey;
+        case 1: return event.which == 1 && event.metaKey;
+        default: return false;
+      }
+    };
+  } else {
+    _isButton = function(event, code) {
+      return event.which ? (event.which === code + 1) : (event.button === code);
+    };
+  }
+
+  function isLeftClick(event)   { return _isButton(event, 0) }
+
+  function isMiddleClick(event) { return _isButton(event, 1) }
+
+  function isRightClick(event)  { return _isButton(event, 2) }
+
+  function element(event) {
+    event = Event.extend(event);
+
+    var node = event.target, type = event.type,
+     currentTarget = event.currentTarget;
+
+    if (currentTarget && currentTarget.tagName) {
+      if (type === 'load' || type === 'error' ||
+        (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
+          && currentTarget.type === 'radio'))
+            node = currentTarget;
+    }
+
+    if (node.nodeType == Node.TEXT_NODE)
+      node = node.parentNode;
+
+    return Element.extend(node);
+  }
+
+  function findElement(event, expression) {
+    var element = Event.element(event);
+    if (!expression) return element;
+    var elements = [element].concat(element.ancestors());
+    return Selector.findElement(elements, expression, 0);
+  }
+
+  function pointer(event) {
+    return { x: pointerX(event), y: pointerY(event) };
+  }
+
+  function pointerX(event) {
+    var docElement = document.documentElement,
+     body = document.body || { scrollLeft: 0 };
+
+    return event.pageX || (event.clientX +
+      (docElement.scrollLeft || body.scrollLeft) -
+      (docElement.clientLeft || 0));
+  }
+
+  function pointerY(event) {
+    var docElement = document.documentElement,
+     body = document.body || { scrollTop: 0 };
+
+    return  event.pageY || (event.clientY +
+       (docElement.scrollTop || body.scrollTop) -
+       (docElement.clientTop || 0));
+  }
+
+
+  function stop(event) {
+    Event.extend(event);
+    event.preventDefault();
+    event.stopPropagation();
+
+    event.stopped = true;
+  }
+
+  Event.Methods = {
+    isLeftClick: isLeftClick,
+    isMiddleClick: isMiddleClick,
+    isRightClick: isRightClick,
+
+    element: element,
+    findElement: findElement,
+
+    pointer: pointer,
+    pointerX: pointerX,
+    pointerY: pointerY,
+
+    stop: stop
+  };
+
+
+  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+    m[name] = Event.Methods[name].methodize();
+    return m;
+  });
+
+  if (Prototype.Browser.IE) {
+    function _relatedTarget(event) {
+      var element;
+      switch (event.type) {
+        case 'mouseover': element = event.fromElement; break;
+        case 'mouseout':  element = event.toElement;   break;
+        default: return null;
+      }
+      return Element.extend(element);
+    }
+
+    Object.extend(methods, {
+      stopPropagation: function() { this.cancelBubble = true },
+      preventDefault:  function() { this.returnValue = false },
+      inspect: function() { return '[object Event]' }
+    });
+
+    Event.extend = function(event, element) {
+      if (!event) return false;
+      if (event._extendedByPrototype) return event;
+
+      event._extendedByPrototype = Prototype.emptyFunction;
+      var pointer = Event.pointer(event);
+
+      Object.extend(event, {
+        target: event.srcElement || element,
+        relatedTarget: _relatedTarget(event),
+        pageX:  pointer.x,
+        pageY:  pointer.y
+      });
+
+      return Object.extend(event, methods);
+    };
+  } else {
+    Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
+    Object.extend(Event.prototype, methods);
+    Event.extend = Prototype.K;
+  }
+
+  function _createResponder(element, eventName, handler) {
+    var registry = Element.retrieve(element, 'prototype_event_registry');
+
+    if (Object.isUndefined(registry)) {
+      CACHE.push(element);
+      registry = Element.retrieve(element, 'prototype_event_registry', $H());
+    }
+
+    var respondersForEvent = registry.get(eventName);
+    if (Object.isUndefined(respondersForEvent)) {
+      respondersForEvent = [];
+      registry.set(eventName, respondersForEvent);
+    }
+
+    if (respondersForEvent.pluck('handler').include(handler)) return false;
+
+    var responder;
+    if (eventName.include(":")) {
+      responder = function(event) {
+        if (Object.isUndefined(event.eventName))
+          return false;
+
+        if (event.eventName !== eventName)
+          return false;
+
+        Event.extend(event, element);
+        handler.call(element, event);
+      };
+    } else {
+      if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &&
+       (eventName === "mouseenter" || eventName === "mouseleave")) {
+        if (eventName === "mouseenter" || eventName === "mouseleave") {
+          responder = function(event) {
+            Event.extend(event, element);
+
+            var parent = event.relatedTarget;
+            while (parent && parent !== element) {
+              try { parent = parent.parentNode; }
+              catch(e) { parent = element; }
+            }
+
+            if (parent === element) return;
+
+            handler.call(element, event);
+          };
+        }
+      } else {
+        responder = function(event) {
+          Event.extend(event, element);
+          handler.call(element, event);
+        };
+      }
+    }
+
+    responder.handler = handler;
+    respondersForEvent.push(responder);
+    return responder;
+  }
+
+  function _destroyCache() {
+    for (var i = 0, length = CACHE.length; i < length; i++) {
+      Event.stopObserving(CACHE[i]);
+      CACHE[i] = null;
+    }
+  }
+
+  var CACHE = [];
+
+  if (Prototype.Browser.IE)
+    window.attachEvent('onunload', _destroyCache);
+
+  if (Prototype.Browser.WebKit)
+    window.addEventListener('unload', Prototype.emptyFunction, false);
+
+
+  var _getDOMEventName = Prototype.K;
+
+  if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) {
+    _getDOMEventName = function(eventName) {
+      var translations = { mouseenter: "mouseover", mouseleave: "mouseout" };
+      return eventName in translations ? translations[eventName] : eventName;
+    };
+  }
+
+  function observe(element, eventName, handler) {
+    element = $(element);
+
+    var responder = _createResponder(element, eventName, handler);
+
+    if (!responder) return element;
+
+    if (eventName.include(':')) {
+      if (element.addEventListener)
+        element.addEventListener("dataavailable", responder, false);
+      else {
+        element.attachEvent("ondataavailable", responder);
+        element.attachEvent("onfilterchange", responder);
+      }
+    } else {
+      var actualEventName = _getDOMEventName(eventName);
+
+      if (element.addEventListener)
+        element.addEventListener(actualEventName, responder, false);
+      else
+        element.attachEvent("on" + actualEventName, responder);
+    }
+
+    return element;
+  }
+
+  function stopObserving(element, eventName, handler) {
+    element = $(element);
+
+    var registry = Element.retrieve(element, 'prototype_event_registry');
+
+    if (Object.isUndefined(registry)) return element;
+
+    if (eventName && !handler) {
+      var responders = registry.get(eventName);
+
+      if (Object.isUndefined(responders)) return element;
+
+      responders.each( function(r) {
+        Element.stopObserving(element, eventName, r.handler);
+      });
+      return element;
+    } else if (!eventName) {
+      registry.each( function(pair) {
+        var eventName = pair.key, responders = pair.value;
+
+        responders.each( function(r) {
+          Element.stopObserving(element, eventName, r.handler);
+        });
+      });
+      return element;
+    }
+
+    var responders = registry.get(eventName);
+
+    if (!responders) return;
+
+    var responder = responders.find( function(r) { return r.handler === handler; });
+    if (!responder) return element;
+
+    var actualEventName = _getDOMEventName(eventName);
+
+    if (eventName.include(':')) {
+      if (element.removeEventListener)
+        element.removeEventListener("dataavailable", responder, false);
+      else {
+        element.detachEvent("ondataavailable", responder);
+        element.detachEvent("onfilterchange",  responder);
+      }
+    } else {
+      if (element.removeEventListener)
+        element.removeEventListener(actualEventName, responder, false);
+      else
+        element.detachEvent('on' + actualEventName, responder);
+    }
+
+    registry.set(eventName, responders.without(responder));
+
+    return element;
+  }
+
+  function fire(element, eventName, memo, bubble) {
+    element = $(element);
+
+    if (Object.isUndefined(bubble))
+      bubble = true;
+
+    if (element == document && document.createEvent && !element.dispatchEvent)
+      element = document.documentElement;
+
+    var event;
+    if (document.createEvent) {
+      event = document.createEvent('HTMLEvents');
+      event.initEvent('dataavailable', true, true);
+    } else {
+      event = document.createEventObject();
+      event.eventType = bubble ? 'ondataavailable' : 'onfilterchange';
+    }
+
+    event.eventName = eventName;
+    event.memo = memo || { };
+
+    if (document.createEvent)
+      element.dispatchEvent(event);
+    else
+      element.fireEvent(event.eventType, event);
+
+    return Event.extend(event);
+  }
+
+
+  Object.extend(Event, Event.Methods);
+
+  Object.extend(Event, {
+    fire:          fire,
+    observe:       observe,
+    stopObserving: stopObserving
+  });
+
+  Element.addMethods({
+    fire:          fire,
+
+    observe:       observe,
+
+    stopObserving: stopObserving
+  });
+
+  Object.extend(document, {
+    fire:          fire.methodize(),
+
+    observe:       observe.methodize(),
+
+    stopObserving: stopObserving.methodize(),
+
+    loaded:        false
+  });
+
+  if (window.Event) Object.extend(window.Event, Event);
+  else window.Event = Event;
+})();
+
+(function() {
+  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+     Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
+
+  var timer;
+
+  function fireContentLoadedEvent() {
+    if (document.loaded) return;
+    if (timer) window.clearTimeout(timer);
+    document.loaded = true;
+    document.fire('dom:loaded');
+  }
+
+  function checkReadyState() {
+    if (document.readyState === 'complete') {
+      document.stopObserving('readystatechange', checkReadyState);
+      fireContentLoadedEvent();
+    }
+  }
+
+  function pollDoScroll() {
+    try { document.documentElement.doScroll('left'); }
+    catch(e) {
+      timer = pollDoScroll.defer();
+      return;
+    }
+    fireContentLoadedEvent();
+  }
+
+  if (document.addEventListener) {
+    document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
+  } else {
+    document.observe('readystatechange', checkReadyState);
+    if (window == top)
+      timer = pollDoScroll.defer();
+  }
+
+  Event.observe(window, 'load', fireContentLoadedEvent);
+})();
+
+Element.addMethods();
+
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+  Before: function(element, content) {
+    return Element.insert(element, {before:content});
+  },
+
+  Top: function(element, content) {
+    return Element.insert(element, {top:content});
+  },
+
+  Bottom: function(element, content) {
+    return Element.insert(element, {bottom:content});
+  },
+
+  After: function(element, content) {
+    return Element.insert(element, {after:content});
+  }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+var Position = {
+  includeScrollOffsets: false,
+
+  prepare: function() {
+    this.deltaX =  window.pageXOffset
+                || document.documentElement.scrollLeft
+                || document.body.scrollLeft
+                || 0;
+    this.deltaY =  window.pageYOffset
+                || document.documentElement.scrollTop
+                || document.body.scrollTop
+                || 0;
+  },
+
+  within: function(element, x, y) {
+    if (this.includeScrollOffsets)
+      return this.withinIncludingScrolloffsets(element, x, y);
+    this.xcomp = x;
+    this.ycomp = y;
+    this.offset = Element.cumulativeOffset(element);
+
+    return (y >= this.offset[1] &&
+            y <  this.offset[1] + element.offsetHeight &&
+            x >= this.offset[0] &&
+            x <  this.offset[0] + element.offsetWidth);
+  },
+
+  withinIncludingScrolloffsets: function(element, x, y) {
+    var offsetcache = Element.cumulativeScrollOffset(element);
+
+    this.xcomp = x + offsetcache[0] - this.deltaX;
+    this.ycomp = y + offsetcache[1] - this.deltaY;
+    this.offset = Element.cumulativeOffset(element);
+
+    return (this.ycomp >= this.offset[1] &&
+            this.ycomp <  this.offset[1] + element.offsetHeight &&
+            this.xcomp >= this.offset[0] &&
+            this.xcomp <  this.offset[0] + element.offsetWidth);
+  },
+
+  overlap: function(mode, element) {
+    if (!mode) return 0;
+    if (mode == 'vertical')
+      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+        element.offsetHeight;
+    if (mode == 'horizontal')
+      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+        element.offsetWidth;
+  },
+
+
+  cumulativeOffset: Element.Methods.cumulativeOffset,
+
+  positionedOffset: Element.Methods.positionedOffset,
+
+  absolutize: function(element) {
+    Position.prepare();
+    return Element.absolutize(element);
+  },
+
+  relativize: function(element) {
+    Position.prepare();
+    return Element.relativize(element);
+  },
+
+  realOffset: Element.Methods.cumulativeScrollOffset,
+
+  offsetParent: Element.Methods.getOffsetParent,
+
+  page: Element.Methods.viewportOffset,
+
+  clone: function(source, target, options) {
+    options = options || { };
+    return Element.clonePosition(target, source, options);
+  }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+  function iter(name) {
+    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+  }
+
+  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+  function(element, className) {
+    className = className.toString().strip();
+    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+  } : function(element, className) {
+    className = className.toString().strip();
+    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+    if (!classNames && !className) return elements;
+
+    var nodes = $(element).getElementsByTagName('*');
+    className = ' ' + className + ' ';
+
+    for (var i = 0, child, cn; child = nodes[i]; i++) {
+      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+          (classNames && classNames.all(function(name) {
+            return !name.toString().blank() && cn.include(' ' + name + ' ');
+          }))))
+        elements.push(Element.extend(child));
+    }
+    return elements;
+  };
+
+  return function(className, parentElement) {
+    return $(parentElement || document.body).getElementsByClassName(className);
+  };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+  initialize: function(element) {
+    this.element = $(element);
+  },
+
+  _each: function(iterator) {
+    this.element.className.split(/\s+/).select(function(name) {
+      return name.length > 0;
+    })._each(iterator);
+  },
+
+  set: function(className) {
+    this.element.className = className;
+  },
+
+  add: function(classNameToAdd) {
+    if (this.include(classNameToAdd)) return;
+    this.set($A(this).concat(classNameToAdd).join(' '));
+  },
+
+  remove: function(classNameToRemove) {
+    if (!this.include(classNameToRemove)) return;
+    this.set($A(this).without(classNameToRemove).join(' '));
+  },
+
+  toString: function() {
+    return $A(this).join(' ');
+  }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
diff --git a/gosa-core/html/include/pulldown.js b/gosa-core/html/include/pulldown.js
new file mode 100644
index 0000000..1889a70
--- /dev/null
+++ b/gosa-core/html/include/pulldown.js
@@ -0,0 +1,230 @@
+/**
+ * dropDownMenu v0.5 sw edition
+ * An easy to implement dropDown Menu for Websites, that may be based on styled list tags
+ *
+ * Works for IE 5.5+ PC, Mozilla 1+ all Plattforms, Opera 7+
+ *
+ * Copyright (c) 2004 Knallgrau New Medias Solutions GmbH, Vienna - Austria
+ *
+ * Original written by Matthias Platzer at http://knallgrau.at
+ *
+ * Modified by Sven Wappler http://www.wappler.eu
+ *
+ * Use it as you need it
+ * It is distributed under a BSD style license
+ */
+
+
+/**
+ * Container Class (Prototype) for the dropDownMenu
+ *
+ * @param idOrElement     String|HTMLElement  root Node of the menu (ul)
+ * @param name            String              name of the variable that stores the result
+ *                                            of this constructor function
+ * @param customConfigFunction  Function            optional config function to override the default settings
+ *                                            for an example see Menu.prototype.config
+ */
+var Menu = Class.create();
+Menu.prototype = {
+
+	initialize: function(idOrElement, name, customConfigFunction) {
+
+		this.name = name;
+		this.type = "menu";
+		this.closeDelayTimer = null;
+		this.closingMenuItem = null;
+
+		this.config();
+		if (typeof customConfigFunction == "function") {
+			this.customConfig = customConfigFunction;
+			this.customConfig();
+		}
+		this.rootContainer = new MenuContainer(idOrElement, this);
+	},
+
+	config: function() {
+	  this.collapseBorders = true;
+	  this.quickCollapse = true;
+	  this.closeDelayTime = 500;
+	}
+
+}
+
+var MenuContainer = Class.create();
+MenuContainer.prototype = {
+	initialize: function(idOrElement, parent) {
+		this.type = "menuContainer";
+  		this.menuItems = [];
+		this.init(idOrElement, parent);
+	},
+
+	init: function(idOrElement, parent) {
+	  this.element = $(idOrElement);
+          if (!this.element) return;
+	  this.parent = parent;
+	  this.parentMenu = (this.type == "menuContainer") ? ((parent) ? parent.parent : null) : parent;
+	  this.root = parent instanceof Menu ? parent : parent.root;
+	  this.id = this.element.id;
+
+	  if (this.type == "menuContainer") {
+	  	if (this.element.hasClassName("level1")) this.menuType = "horizontal";
+		else if (this.element.hasClassName("level2")) this.menuType = "dropdown";
+		else this.menuType = "flyout";
+
+	    if (this.menuType == "flyout" || this.menuType == "dropdown") {
+	      this.isOpen = false;
+		  Element.setStyle(this.element,{
+	      	position: "absolute",
+	      	top: "0px",
+	      	left: "0px",
+	      	visibility: "hidden"});
+	    } else {
+	      this.isOpen = true;
+	    }
+	  } else {
+	    this.isOpen = this.parentMenu.isOpen;
+	  }
+
+	  var childNodes = this.element.childNodes;
+	  if (childNodes == null) return;
+
+	  for (var i = 0; i < childNodes.length; i++) {
+	    var node = childNodes[i];
+	    if (node.nodeType == 1) {
+	      if (this.type == "menuContainer") {
+	        if (node.tagName.toLowerCase() == "li") {
+	          this.menuItems.push(new MenuItem(node, this));
+	        }
+	      } else {
+	        if (node.tagName.toLowerCase() == "ul") {
+	          this.subMenu = new MenuContainer(node, this);
+	        }
+	      }
+	    }
+	  }
+	},
+
+	getBorders: function(element) {
+	  var ltrb = ["Left","Top","Right","Bottom"];
+	  var result = {};
+	  for (var i = 0; i < ltrb.length; ++i) {
+	    if (this.element.currentStyle)
+	      var value = parseInt(this.element.currentStyle["border"+ltrb[i]+"Width"]);
+	    else if (window.getComputedStyle)
+	      var value = parseInt(window.getComputedStyle(this.element, "").getPropertyValue("border-"+ltrb[i].toLowerCase()+"-width"));
+	    else
+	      var value = parseInt(this.element.style["border"+ltrb[i]]);
+	    result[ltrb[i].toLowerCase()] = isNaN(value) ? 0 : value;
+	  }
+	  return result;
+	},
+
+	open: function() {
+	  if (this.root.closeDelayTimer) window.clearTimeout(this.root.closeDelayTimer);
+	  this.parentMenu.closeAll(this);
+	  this.isOpen = true;
+	  if (this.menuType == "dropdown") {
+		Element.setStyle(this.element,{
+			left: (Position.positionedOffset(this.parent.element)[0]) + "px",
+			top: (Position.positionedOffset(this.parent.element)[1] + Element.getHeight(this.parent.element)) + "px"
+		});
+
+	  } else if (this.menuType == "flyout") {
+	    var parentMenuBorders = this.parentMenu ? this.parentMenu.getBorders() : new Object();
+	    var thisBorders = this.getBorders();
+	    if (
+	      (Position.positionedOffset(this.parentMenu.element)[0] + this.parentMenu.element.offsetWidth + this.element.offsetWidth + 20) >
+	      (window.innerWidth ? window.innerWidth : document.body.offsetWidth)
+	    ) {
+			Element.setStyle(this.element,{
+	      		left: (- this.element.offsetWidth - (this.root.collapseBorders ?  0 : parentMenuBorders["left"])) + "px"
+			});
+	    } else {
+			Element.setStyle(this.element,{
+	    		left: (this.parentMenu.element.offsetWidth - parentMenuBorders["left"] - (this.root.collapseBorders ?  Math.min(parentMenuBorders["right"], thisBorders["left"]) : 0)) + "px"
+			});
+	    }
+		Element.setStyle(this.element,{
+	    	top: (this.parent.element.offsetTop - parentMenuBorders["top"] - this.menuItems[0].element.offsetTop) + "px"
+		});
+	  }
+	  Element.setStyle(this.element,{visibility: "visible"});
+	},
+
+	close: function() {
+		Element.setStyle(this.element,{visibility: "hidden"});
+		this.isOpen = false;
+		this.closeAll();
+	},
+
+	closeAll: function(trigger) {
+		for (var i = 0; i < this.menuItems.length; ++i) {
+			this.menuItems[i].closeItem(trigger);
+		}
+	}
+
+}
+
+
+var MenuItem = Class.create();
+
+Object.extend(Object.extend(MenuItem.prototype, MenuContainer.prototype), {
+	initialize: function(idOrElement, parent) {
+		var menuItem = this;
+		this.type = "menuItem";
+		this.subMenu;
+		this.init(idOrElement, parent);
+		if (this.subMenu) {
+			this.element.onmouseover = function() {
+				menuItem.subMenu.open();
+			}
+		} else {
+		if (this.root.quickCollapse) {
+		  this.element.onmouseover = function() {
+			menuItem.parentMenu.closeAll();
+		  }
+		}
+		  }
+		  var linkTag = this.element.getElementsByTagName("A")[0];
+		  if (linkTag) {
+		 linkTag.onfocus = this.element.onmouseover;
+		 this.link = linkTag;
+		 this.text = linkTag.text;
+		  }
+		  if (this.subMenu) {
+		this.element.onmouseout = function() {
+		  if (menuItem.root.openDelayTimer) window.clearTimeout(menuItem.root.openDelayTimer);
+		  if (menuItem.root.closeDelayTimer) window.clearTimeout(menuItem.root.closeDelayTimer);
+		  eval(menuItem.root.name + ".closingMenuItem = menuItem");
+		  menuItem.root.closeDelayTimer = window.setTimeout(menuItem.root.name + ".closingMenuItem.subMenu.close()", menuItem.root.closeDelayTime);
+		}
+		  }
+	},
+
+	openItem: function() {
+	  this.isOpen = true;
+	  if (this.subMenu) { this.subMenu.open(); }
+	},
+
+	closeItem: function(trigger) {
+	  this.isOpen = false;
+	  if (this.subMenu) {
+	    if (this.subMenu != trigger) this.subMenu.close();
+	  }
+	}
+});
+
+
+var menu;
+
+
+function configMenu() {
+  this.closeDelayTime = 300;
+}
+
+function initMenu() {
+  menu = new Menu('root', 'menu', configMenu);
+}
+
+
+Event.observe(window, 'load', initMenu, false);
diff --git a/gosa-core/html/include/pwdStrength.js b/gosa-core/html/include/pwdStrength.js
new file mode 100644
index 0000000..f4c08d0
--- /dev/null
+++ b/gosa-core/html/include/pwdStrength.js
@@ -0,0 +1,161 @@
+/*************************************************************
+Created: 20060120
+Author:  Steve Moitozo <god at zilla dot us>
+Description: This is a quick and dirty password quality meter 
+		 written in JavaScript
+License: MIT License (see below)
+=================================
+Revision Author: Dick Ervasti (dick dot ervasti at quty dot com)
+Revision Description: Exchanged text based prompts for a graphic thermometer
+=================================
+Revision Author: Jay Bigam jayb <o> tearupyourlawn <o> com
+Revision Date: Feb. 26, 2007
+Revision Description: Changed D. Ervasti's table based "thermometer" to CSS.
+Revision Notes: - Verified to work in FF2, IE7 and Safari2
+                - Modified messages to reflect Minimum strength requirement
+                - Added formSubmit button disabled until minimum requirement met
+=================================
+Modified: 20061111 - Steve Moitozo corrected regex for letters and numbers
+                     Thanks to Zack Smith -- zacksmithdesign.com
+                     and put MIT License back in
+Modified: 20100201 - Cajus Pollmeier stripped parts unnessesary for GOsa and
+                     moved to prototype. Stripped comments.
+---------------------------------------------------------------
+Copyright (c) 2006 Steve Moitozo <god at zilla dot us>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall
+be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
+---------------------------------------------------------------
+ 
+************************************************************ */
+function testPasswordCss(passwd)
+{
+		var intScore   = 0
+		
+		// PASSWORD LENGTH
+		if (passwd.length==0 || !passwd.length)                         // length 0
+		{
+			intScore = -1
+		}
+		else if (passwd.length>0 && passwd.length<5) // length between 1 and 4
+		{
+			intScore = (intScore+3)
+		}
+		else if (passwd.length>4 && passwd.length<8) // length between 5 and 7
+		{
+			intScore = (intScore+6)
+		}
+		else if (passwd.length>7 && passwd.length<12)// length between 8 and 15
+		{
+			intScore = (intScore+12)
+		}
+		else if (passwd.length>11)                    // length 16 or more
+		{
+			intScore = (intScore+18)
+		}
+		
+		
+		// LETTERS (Not exactly implemented as dictacted above because of my limited understanding of Regex)
+		if (passwd.match(/[a-z]/))                              // [verified] at least one lower case letter
+		{
+			intScore = (intScore+1)
+		}
+		
+		if (passwd.match(/[A-Z]/))                              // [verified] at least one upper case letter
+		{
+			intScore = (intScore+5)
+		}
+		
+		// NUMBERS
+		if (passwd.match(/\d+/))                                 // [verified] at least one number
+		{
+			intScore = (intScore+5)
+		}
+		
+		if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/))             // [verified] at least three numbers
+		{
+			intScore = (intScore+5)
+		}
+		
+		
+		// SPECIAL CHAR
+		if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))            // [verified] at least one special character
+		{
+			intScore = (intScore+5)
+		}
+		
+																 // [verified] at least two special characters
+		if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))
+		{
+			intScore = (intScore+5)
+		}
+	
+		
+		// COMBOS
+		if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))        // [verified] both upper and lower case
+		{
+			intScore = (intScore+2)
+		}
+
+	        if (passwd.match(/([a-zA-Z])/) && passwd.match(/([0-9])/)) // [verified] both letters and numbers
+	        {
+	                intScore = (intScore+2)
+	        }
+
+		// [verified] letters, numbers, and special characters
+		if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))
+		{
+			intScore = (intScore+2)
+		}
+
+	
+		if(intScore == -1)
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '0%'});
+		}
+		else if(intScore > -1 && intScore < 16)
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '0%'});
+		}
+		else if (intScore > 15 && intScore < 25)
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '25%'});
+		}
+		else if (intScore > 24 && intScore < 35)
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '50%'});
+		}
+		else if (intScore > 34 && intScore < 45)
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '75%'});
+		}
+		else
+		{
+		   $('meterEmpty').setStyle({width: '100%'});
+   		   $('meterFull').setStyle({width: '100%'});
+		}
+}
diff --git a/gosa-core/html/include/scriptaculous.js b/gosa-core/html/include/scriptaculous.js
new file mode 100644
index 0000000..6bf437a
--- /dev/null
+++ b/gosa-core/html/include/scriptaculous.js
@@ -0,0 +1,68 @@
+// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+var Scriptaculous = {
+  Version: '1.8.3',
+  require: function(libraryName) {
+    try{
+      // inserting via DOM fails in Safari 2.0, so brute force approach
+      document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
+    } catch(e) {
+      // for xhtml+xml served content, fall back to DOM methods
+      var script = document.createElement('script');
+      script.type = 'text/javascript';
+      script.src = libraryName;
+      document.getElementsByTagName('head')[0].appendChild(script);
+    }
+  },
+  REQUIRED_PROTOTYPE: '1.6.0.3',
+  load: function() {
+    function convertVersionString(versionString) {
+      var v = versionString.replace(/_.*|\./g, '');
+      v = parseInt(v + '0'.times(4-v.length));
+      return versionString.indexOf('_') > -1 ? v-1 : v;
+    }
+
+    if((typeof Prototype=='undefined') ||
+       (typeof Element == 'undefined') ||
+       (typeof Element.Methods=='undefined') ||
+       (convertVersionString(Prototype.Version) <
+        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
+       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
+        Scriptaculous.REQUIRED_PROTOTYPE);
+
+    var js = /scriptaculous\.js(\?.*)?$/;
+    $$('head script[src]').findAll(function(s) {
+      return s.src.match(js);
+    }).each(function(s) {
+      var path = s.src.replace(js, ''),
+      includes = s.src.match(/\?.*load=([a-z,]*)/);
+      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
+       function(include) { Scriptaculous.require(path+include+'.js') });
+    });
+  }
+};
+
+Scriptaculous.load();
\ No newline at end of file
diff --git a/gosa-core/html/include/slider.js b/gosa-core/html/include/slider.js
new file mode 100644
index 0000000..eb83055
--- /dev/null
+++ b/gosa-core/html/include/slider.js
@@ -0,0 +1,275 @@
+// script.aculo.us slider.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Marty Haught, Thomas Fuchs
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+if (!Control) var Control = { };
+
+// options:
+//  axis: 'vertical', or 'horizontal' (default)
+//
+// callbacks:
+//  onChange(value)
+//  onSlide(value)
+Control.Slider = Class.create({
+  initialize: function(handle, track, options) {
+    var slider = this;
+
+    if (Object.isArray(handle)) {
+      this.handles = handle.collect( function(e) { return $(e) });
+    } else {
+      this.handles = [$(handle)];
+    }
+
+    this.track   = $(track);
+    this.options = options || { };
+
+    this.axis      = this.options.axis || 'horizontal';
+    this.increment = this.options.increment || 1;
+    this.step      = parseInt(this.options.step || '1');
+    this.range     = this.options.range || $R(0,1);
+
+    this.value     = 0; // assure backwards compat
+    this.values    = this.handles.map( function() { return 0 });
+    this.spans     = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;
+    this.options.startSpan = $(this.options.startSpan || null);
+    this.options.endSpan   = $(this.options.endSpan || null);
+
+    this.restricted = this.options.restricted || false;
+
+    this.maximum   = this.options.maximum || this.range.end;
+    this.minimum   = this.options.minimum || this.range.start;
+
+    // Will be used to align the handle onto the track, if necessary
+    this.alignX = parseInt(this.options.alignX || '0');
+    this.alignY = parseInt(this.options.alignY || '0');
+
+    this.trackLength = this.maximumOffset() - this.minimumOffset();
+
+    this.handleLength = this.isVertical() ?
+      (this.handles[0].offsetHeight != 0 ?
+        this.handles[0].offsetHeight : this.handles[0].style.height.replace(/px$/,"")) :
+      (this.handles[0].offsetWidth != 0 ? this.handles[0].offsetWidth :
+        this.handles[0].style.width.replace(/px$/,""));
+
+    this.active   = false;
+    this.dragging = false;
+    this.disabled = false;
+
+    if (this.options.disabled) this.setDisabled();
+
+    // Allowed values array
+    this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
+    if (this.allowedValues) {
+      this.minimum = this.allowedValues.min();
+      this.maximum = this.allowedValues.max();
+    }
+
+    this.eventMouseDown = this.startDrag.bindAsEventListener(this);
+    this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
+    this.eventMouseMove = this.update.bindAsEventListener(this);
+
+    // Initialize handles in reverse (make sure first handle is active)
+    this.handles.each( function(h,i) {
+      i = slider.handles.length-1-i;
+      slider.setValue(parseFloat(
+        (Object.isArray(slider.options.sliderValue) ?
+          slider.options.sliderValue[i] : slider.options.sliderValue) ||
+         slider.range.start), i);
+      h.makePositioned().observe("mousedown", slider.eventMouseDown);
+    });
+
+    this.track.observe("mousedown", this.eventMouseDown);
+    document.observe("mouseup", this.eventMouseUp);
+    document.observe("mousemove", this.eventMouseMove);
+
+    this.initialized = true;
+  },
+  dispose: function() {
+    var slider = this;
+    Event.stopObserving(this.track, "mousedown", this.eventMouseDown);
+    Event.stopObserving(document, "mouseup", this.eventMouseUp);
+    Event.stopObserving(document, "mousemove", this.eventMouseMove);
+    this.handles.each( function(h) {
+      Event.stopObserving(h, "mousedown", slider.eventMouseDown);
+    });
+  },
+  setDisabled: function(){
+    this.disabled = true;
+  },
+  setEnabled: function(){
+    this.disabled = false;
+  },
+  getNearestValue: function(value){
+    if (this.allowedValues){
+      if (value >= this.allowedValues.max()) return(this.allowedValues.max());
+      if (value <= this.allowedValues.min()) return(this.allowedValues.min());
+
+      var offset = Math.abs(this.allowedValues[0] - value);
+      var newValue = this.allowedValues[0];
+      this.allowedValues.each( function(v) {
+        var currentOffset = Math.abs(v - value);
+        if (currentOffset <= offset){
+          newValue = v;
+          offset = currentOffset;
+        }
+      });
+      return newValue;
+    }
+    if (value > this.range.end) return this.range.end;
+    if (value < this.range.start) return this.range.start;
+    return value;
+  },
+  setValue: function(sliderValue, handleIdx){
+    if (!this.active) {
+      this.activeHandleIdx = handleIdx || 0;
+      this.activeHandle    = this.handles[this.activeHandleIdx];
+      this.updateStyles();
+    }
+    handleIdx = handleIdx || this.activeHandleIdx || 0;
+    if (this.initialized && this.restricted) {
+      if ((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
+        sliderValue = this.values[handleIdx-1];
+      if ((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
+        sliderValue = this.values[handleIdx+1];
+    }
+    sliderValue = this.getNearestValue(sliderValue);
+    this.values[handleIdx] = sliderValue;
+    this.value = this.values[0]; // assure backwards compat
+
+    this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] =
+      this.translateToPx(sliderValue);
+
+    this.drawSpans();
+    if (!this.dragging || !this.event) this.updateFinished();
+  },
+  setValueBy: function(delta, handleIdx) {
+    this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
+      handleIdx || this.activeHandleIdx || 0);
+  },
+  translateToPx: function(value) {
+    return Math.round(
+      ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) *
+      (value - this.range.start)) + "px";
+  },
+  translateToValue: function(offset) {
+    return ((offset/(this.trackLength-this.handleLength) *
+      (this.range.end-this.range.start)) + this.range.start);
+  },
+  getRange: function(range) {
+    var v = this.values.sortBy(Prototype.K);
+    range = range || 0;
+    return $R(v[range],v[range+1]);
+  },
+  minimumOffset: function(){
+    return(this.isVertical() ? this.alignY : this.alignX);
+  },
+  maximumOffset: function(){
+    return(this.isVertical() ?
+      (this.track.offsetHeight != 0 ? this.track.offsetHeight :
+        this.track.style.height.replace(/px$/,"")) - this.alignY :
+      (this.track.offsetWidth != 0 ? this.track.offsetWidth :
+        this.track.style.width.replace(/px$/,"")) - this.alignX);
+  },
+  isVertical:  function(){
+    return (this.axis == 'vertical');
+  },
+  drawSpans: function() {
+    var slider = this;
+    if (this.spans)
+      $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
+    if (this.options.startSpan)
+      this.setSpan(this.options.startSpan,
+        $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
+    if (this.options.endSpan)
+      this.setSpan(this.options.endSpan,
+        $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
+  },
+  setSpan: function(span, range) {
+    if (this.isVertical()) {
+      span.style.top = this.translateToPx(range.start);
+      span.style.height = this.translateToPx(range.end - range.start + this.range.start);
+    } else {
+      span.style.left = this.translateToPx(range.start);
+      span.style.width = this.translateToPx(range.end - range.start + this.range.start);
+    }
+  },
+  updateStyles: function() {
+    this.handles.each( function(h){ Element.removeClassName(h, 'selected') });
+    Element.addClassName(this.activeHandle, 'selected');
+  },
+  startDrag: function(event) {
+    if (Event.isLeftClick(event)) {
+      if (!this.disabled){
+        this.active = true;
+
+        var handle = Event.element(event);
+        var pointer  = [Event.pointerX(event), Event.pointerY(event)];
+        var track = handle;
+        if (track==this.track) {
+          var offsets  = this.track.cumulativeOffset();
+          this.event = event;
+          this.setValue(this.translateToValue(
+           (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)
+          ));
+          var offsets  = this.activeHandle.cumulativeOffset();
+          this.offsetX = (pointer[0] - offsets[0]);
+          this.offsetY = (pointer[1] - offsets[1]);
+        } else {
+          // find the handle (prevents issues with Safari)
+          while((this.handles.indexOf(handle) == -1) && handle.parentNode)
+            handle = handle.parentNode;
+
+          if (this.handles.indexOf(handle)!=-1) {
+            this.activeHandle    = handle;
+            this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
+            this.updateStyles();
+
+            var offsets  = this.activeHandle.cumulativeOffset();
+            this.offsetX = (pointer[0] - offsets[0]);
+            this.offsetY = (pointer[1] - offsets[1]);
+          }
+        }
+      }
+      Event.stop(event);
+    }
+  },
+  update: function(event) {
+   if (this.active) {
+      if (!this.dragging) this.dragging = true;
+      this.draw(event);
+      if (Prototype.Browser.WebKit) window.scrollBy(0,0);
+      Event.stop(event);
+   }
+  },
+  draw: function(event) {
+    var pointer = [Event.pointerX(event), Event.pointerY(event)];
+    var offsets = this.track.cumulativeOffset();
+    pointer[0] -= this.offsetX + offsets[0];
+    pointer[1] -= this.offsetY + offsets[1];
+    this.event = event;
+    this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
+    if (this.initialized && this.options.onSlide)
+      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
+  },
+  endDrag: function(event) {
+    if (this.active && this.dragging) {
+      this.finishDrag(event, true);
+      Event.stop(event);
+    }
+    this.active = false;
+    this.dragging = false;
+  },
+  finishDrag: function(event, success) {
+    this.active = false;
+    this.dragging = false;
+    this.updateFinished();
+  },
+  updateFinished: function() {
+    if (this.initialized && this.options.onChange)
+      this.options.onChange(this.values.length>1 ? this.values : this.value, this);
+    this.event = null;
+  }
+});
\ No newline at end of file
diff --git a/gosa-core/html/include/sound.js b/gosa-core/html/include/sound.js
new file mode 100644
index 0000000..a286eb9
--- /dev/null
+++ b/gosa-core/html/include/sound.js
@@ -0,0 +1,59 @@
+// script.aculo.us sound.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//
+// Based on code created by Jules Gravinese (http://www.webveteran.com/)
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+Sound = {
+  tracks: {},
+  _enabled: true,
+  template:
+    new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'),
+  enable: function(){
+    Sound._enabled = true;
+  },
+  disable: function(){
+    Sound._enabled = false;
+  },
+  play: function(url){
+    if(!Sound._enabled) return;
+    var options = Object.extend({
+      track: 'global', url: url, replace: false
+    }, arguments[1] || {});
+
+    if(options.replace && this.tracks[options.track]) {
+      $R(0, this.tracks[options.track].id).each(function(id){
+        var sound = $('sound_'+options.track+'_'+id);
+        sound.Stop && sound.Stop();
+        sound.remove();
+      });
+      this.tracks[options.track] = null;
+    }
+
+    if(!this.tracks[options.track])
+      this.tracks[options.track] = { id: 0 };
+    else
+      this.tracks[options.track].id++;
+
+    options.id = this.tracks[options.track].id;
+    $$('body')[0].insert(
+      Prototype.Browser.IE ? new Element('bgsound',{
+        id: 'sound_'+options.track+'_'+options.id,
+        src: options.url, loop: 1, autostart: true
+      }) : Sound.template.evaluate(options));
+  }
+};
+
+if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){
+  if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
+    Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>');
+  else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 }))
+    Sound.template = new Template('<object id="sound_#{track}_#{id}" type="application/x-mplayer2" data="#{url}"></object>');
+  else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 }))
+    Sound.template = new Template('<embed type="audio/x-pn-realaudio-plugin" style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>');
+  else
+    Sound.play = function(){};
+} 
\ No newline at end of file
diff --git a/gosa-core/html/include/unittest.js b/gosa-core/html/include/unittest.js
new file mode 100644
index 0000000..33a0c71
--- /dev/null
+++ b/gosa-core/html/include/unittest.js
@@ -0,0 +1,568 @@
+// script.aculo.us unittest.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
+
+// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005-2009 Jon Tirsen (http://www.tirsen.com)
+//           (c) 2005-2009 Michael Schuerig (http://www.schuerig.de/michael/)
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+// experimental, Firefox-only
+Event.simulateMouse = function(element, eventName) {
+  var options = Object.extend({
+    pointerX: 0,
+    pointerY: 0,
+    buttons:  0,
+    ctrlKey:  false,
+    altKey:   false,
+    shiftKey: false,
+    metaKey:  false
+  }, arguments[2] || {});
+  var oEvent = document.createEvent("MouseEvents");
+  oEvent.initMouseEvent(eventName, true, true, document.defaultView, 
+    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
+    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element));
+  
+  if(this.mark) Element.remove(this.mark);
+  this.mark = document.createElement('div');
+  this.mark.appendChild(document.createTextNode(" "));
+  document.body.appendChild(this.mark);
+  this.mark.style.position = 'absolute';
+  this.mark.style.top = options.pointerY + "px";
+  this.mark.style.left = options.pointerX + "px";
+  this.mark.style.width = "5px";
+  this.mark.style.height = "5px;";
+  this.mark.style.borderTop = "1px solid red;";
+  this.mark.style.borderLeft = "1px solid red;";
+  
+  if(this.step)
+    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
+  
+  $(element).dispatchEvent(oEvent);
+};
+
+// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
+// You need to downgrade to 1.0.4 for now to get this working
+// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
+Event.simulateKey = function(element, eventName) {
+  var options = Object.extend({
+    ctrlKey: false,
+    altKey: false,
+    shiftKey: false,
+    metaKey: false,
+    keyCode: 0,
+    charCode: 0
+  }, arguments[2] || {});
+
+  var oEvent = document.createEvent("KeyEvents");
+  oEvent.initKeyEvent(eventName, true, true, window, 
+    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
+    options.keyCode, options.charCode );
+  $(element).dispatchEvent(oEvent);
+};
+
+Event.simulateKeys = function(element, command) {
+  for(var i=0; i<command.length; i++) {
+    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
+  }
+};
+
+var Test = {};
+Test.Unit = {};
+
+// security exception workaround
+Test.Unit.inspect = Object.inspect;
+
+Test.Unit.Logger = Class.create();
+Test.Unit.Logger.prototype = {
+  initialize: function(log) {
+    this.log = $(log);
+    if (this.log) {
+      this._createLogTable();
+    }
+  },
+  start: function(testName) {
+    if (!this.log) return;
+    this.testName = testName;
+    this.lastLogLine = document.createElement('tr');
+    this.statusCell = document.createElement('td');
+    this.nameCell = document.createElement('td');
+    this.nameCell.className = "nameCell";
+    this.nameCell.appendChild(document.createTextNode(testName));
+    this.messageCell = document.createElement('td');
+    this.lastLogLine.appendChild(this.statusCell);
+    this.lastLogLine.appendChild(this.nameCell);
+    this.lastLogLine.appendChild(this.messageCell);
+    this.loglines.appendChild(this.lastLogLine);
+  },
+  finish: function(status, summary) {
+    if (!this.log) return;
+    this.lastLogLine.className = status;
+    this.statusCell.innerHTML = status;
+    this.messageCell.innerHTML = this._toHTML(summary);
+    this.addLinksToResults();
+  },
+  message: function(message) {
+    if (!this.log) return;
+    this.messageCell.innerHTML = this._toHTML(message);
+  },
+  summary: function(summary) {
+    if (!this.log) return;
+    this.logsummary.innerHTML = this._toHTML(summary);
+  },
+  _createLogTable: function() {
+    this.log.innerHTML =
+    '<div id="logsummary"></div>' +
+    '<table id="logtable">' +
+    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
+    '<tbody id="loglines"></tbody>' +
+    '</table>';
+    this.logsummary = $('logsummary');
+    this.loglines = $('loglines');
+  },
+  _toHTML: function(txt) {
+    return txt.escapeHTML().replace(/\n/g,"<br/>");
+  },
+  addLinksToResults: function(){ 
+    $$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
+      td.title = "Run only this test";
+      Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
+    });
+    $$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
+      td.title = "Run all tests";
+      Event.observe(td, 'click', function(){ window.location.search = "";});
+    });
+  }
+};
+
+Test.Unit.Runner = Class.create();
+Test.Unit.Runner.prototype = {
+  initialize: function(testcases) {
+    this.options = Object.extend({
+      testLog: 'testlog'
+    }, arguments[1] || {});
+    this.options.resultsURL = this.parseResultsURLQueryParameter();
+    this.options.tests      = this.parseTestsQueryParameter();
+    if (this.options.testLog) {
+      this.options.testLog = $(this.options.testLog) || null;
+    }
+    if(this.options.tests) {
+      this.tests = [];
+      for(var i = 0; i < this.options.tests.length; i++) {
+        if(/^test/.test(this.options.tests[i])) {
+          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
+        }
+      }
+    } else {
+      if (this.options.test) {
+        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
+      } else {
+        this.tests = [];
+        for(var testcase in testcases) {
+          if(/^test/.test(testcase)) {
+            this.tests.push(
+               new Test.Unit.Testcase(
+                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, 
+                 testcases[testcase], testcases["setup"], testcases["teardown"]
+               ));
+          }
+        }
+      }
+    }
+    this.currentTest = 0;
+    this.logger = new Test.Unit.Logger(this.options.testLog);
+    setTimeout(this.runTests.bind(this), 1000);
+  },
+  parseResultsURLQueryParameter: function() {
+    return window.location.search.parseQuery()["resultsURL"];
+  },
+  parseTestsQueryParameter: function(){
+    if (window.location.search.parseQuery()["tests"]){
+        return window.location.search.parseQuery()["tests"].split(',');
+    };
+  },
+  // Returns:
+  //  "ERROR" if there was an error,
+  //  "FAILURE" if there was a failure, or
+  //  "SUCCESS" if there was neither
+  getResult: function() {
+    var hasFailure = false;
+    for(var i=0;i<this.tests.length;i++) {
+      if (this.tests[i].errors > 0) {
+        return "ERROR";
+      }
+      if (this.tests[i].failures > 0) {
+        hasFailure = true;
+      }
+    }
+    if (hasFailure) {
+      return "FAILURE";
+    } else {
+      return "SUCCESS";
+    }
+  },
+  postResults: function() {
+    if (this.options.resultsURL) {
+      new Ajax.Request(this.options.resultsURL, 
+        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
+    }
+  },
+  runTests: function() {
+    var test = this.tests[this.currentTest];
+    if (!test) {
+      // finished!
+      this.postResults();
+      this.logger.summary(this.summary());
+      return;
+    }
+    if(!test.isWaiting) {
+      this.logger.start(test.name);
+    }
+    test.run();
+    if(test.isWaiting) {
+      this.logger.message("Waiting for " + test.timeToWait + "ms");
+      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
+    } else {
+      this.logger.finish(test.status(), test.summary());
+      this.currentTest++;
+      // tail recursive, hopefully the browser will skip the stackframe
+      this.runTests();
+    }
+  },
+  summary: function() {
+    var assertions = 0;
+    var failures = 0;
+    var errors = 0;
+    var messages = [];
+    for(var i=0;i<this.tests.length;i++) {
+      assertions +=   this.tests[i].assertions;
+      failures   +=   this.tests[i].failures;
+      errors     +=   this.tests[i].errors;
+    }
+    return (
+      (this.options.context ? this.options.context + ': ': '') + 
+      this.tests.length + " tests, " + 
+      assertions + " assertions, " + 
+      failures   + " failures, " +
+      errors     + " errors");
+  }
+};
+
+Test.Unit.Assertions = Class.create();
+Test.Unit.Assertions.prototype = {
+  initialize: function() {
+    this.assertions = 0;
+    this.failures   = 0;
+    this.errors     = 0;
+    this.messages   = [];
+  },
+  summary: function() {
+    return (
+      this.assertions + " assertions, " + 
+      this.failures   + " failures, " +
+      this.errors     + " errors" + "\n" +
+      this.messages.join("\n"));
+  },
+  pass: function() {
+    this.assertions++;
+  },
+  fail: function(message) {
+    this.failures++;
+    this.messages.push("Failure: " + message);
+  },
+  info: function(message) {
+    this.messages.push("Info: " + message);
+  },
+  error: function(error) {
+    this.errors++;
+    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
+  },
+  status: function() {
+    if (this.failures > 0) return 'failed';
+    if (this.errors > 0) return 'error';
+    return 'passed';
+  },
+  assert: function(expression) {
+    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
+    try { expression ? this.pass() : 
+      this.fail(message); }
+    catch(e) { this.error(e); }
+  },
+  assertEqual: function(expected, actual) {
+    var message = arguments[2] || "assertEqual";
+    try { (expected == actual) ? this.pass() :
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
+        '", actual "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertInspect: function(expected, actual) {
+    var message = arguments[2] || "assertInspect";
+    try { (expected == actual.inspect()) ? this.pass() :
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
+        '", actual "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertEnumEqual: function(expected, actual) {
+    var message = arguments[2] || "assertEnumEqual";
+    try { $A(expected).length == $A(actual).length && 
+      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
+        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + 
+          ', actual ' + Test.Unit.inspect(actual)); }
+    catch(e) { this.error(e); }
+  },
+  assertNotEqual: function(expected, actual) {
+    var message = arguments[2] || "assertNotEqual";
+    try { (expected != actual) ? this.pass() : 
+      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertIdentical: function(expected, actual) { 
+    var message = arguments[2] || "assertIdentical"; 
+    try { (expected === actual) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
+    catch(e) { this.error(e); } 
+  },
+  assertNotIdentical: function(expected, actual) { 
+    var message = arguments[2] || "assertNotIdentical"; 
+    try { !(expected === actual) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
+    catch(e) { this.error(e); } 
+  },
+  assertNull: function(obj) {
+    var message = arguments[1] || 'assertNull';
+    try { (obj==null) ? this.pass() : 
+      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertMatch: function(expected, actual) {
+    var message = arguments[2] || 'assertMatch';
+    var regex = new RegExp(expected);
+    try { (regex.exec(actual)) ? this.pass() :
+      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertHidden: function(element) {
+    var message = arguments[1] || 'assertHidden';
+    this.assertEqual("none", element.style.display, message);
+  },
+  assertNotNull: function(object) {
+    var message = arguments[1] || 'assertNotNull';
+    this.assert(object != null, message);
+  },
+  assertType: function(expected, actual) {
+    var message = arguments[2] || 'assertType';
+    try { 
+      (actual.constructor == expected) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + (actual.constructor) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertNotOfType: function(expected, actual) {
+    var message = arguments[2] || 'assertNotOfType';
+    try { 
+      (actual.constructor != expected) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + (actual.constructor) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertInstanceOf: function(expected, actual) {
+    var message = arguments[2] || 'assertInstanceOf';
+    try { 
+      (actual instanceof expected) ? this.pass() : 
+      this.fail(message + ": object was not an instance of the expected type"); }
+    catch(e) { this.error(e); } 
+  },
+  assertNotInstanceOf: function(expected, actual) {
+    var message = arguments[2] || 'assertNotInstanceOf';
+    try { 
+      !(actual instanceof expected) ? this.pass() : 
+      this.fail(message + ": object was an instance of the not expected type"); }
+    catch(e) { this.error(e); } 
+  },
+  assertRespondsTo: function(method, obj) {
+    var message = arguments[2] || 'assertRespondsTo';
+    try {
+      (obj[method] && typeof obj[method] == 'function') ? this.pass() : 
+      this.fail(message + ": object doesn't respond to [" + method + "]"); }
+    catch(e) { this.error(e); }
+  },
+  assertReturnsTrue: function(method, obj) {
+    var message = arguments[2] || 'assertReturnsTrue';
+    try {
+      var m = obj[method];
+      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
+      m() ? this.pass() : 
+      this.fail(message + ": method returned false"); }
+    catch(e) { this.error(e); }
+  },
+  assertReturnsFalse: function(method, obj) {
+    var message = arguments[2] || 'assertReturnsFalse';
+    try {
+      var m = obj[method];
+      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
+      !m() ? this.pass() : 
+      this.fail(message + ": method returned true"); }
+    catch(e) { this.error(e); }
+  },
+  assertRaise: function(exceptionName, method) {
+    var message = arguments[2] || 'assertRaise';
+    try { 
+      method();
+      this.fail(message + ": exception expected but none was raised"); }
+    catch(e) {
+      ((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e); 
+    }
+  },
+  assertElementsMatch: function() {
+    var expressions = $A(arguments), elements = $A(expressions.shift());
+    if (elements.length != expressions.length) {
+      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
+      return false;
+    }
+    elements.zip(expressions).all(function(pair, index) {
+      var element = $(pair.first()), expression = pair.last();
+      if (element.match(expression)) return true;
+      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
+    }.bind(this)) && this.pass();
+  },
+  assertElementMatches: function(element, expression) {
+    this.assertElementsMatch([element], expression);
+  },
+  benchmark: function(operation, iterations) {
+    var startAt = new Date();
+    (iterations || 1).times(operation);
+    var timeTaken = ((new Date())-startAt);
+    this.info((arguments[2] || 'Operation') + ' finished ' + 
+       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
+    return timeTaken;
+  },
+  _isVisible: function(element) {
+    element = $(element);
+    if(!element.parentNode) return true;
+    this.assertNotNull(element);
+    if(element.style && Element.getStyle(element, 'display') == 'none')
+      return false;
+    
+    return this._isVisible(element.parentNode);
+  },
+  assertNotVisible: function(element) {
+    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
+  },
+  assertVisible: function(element) {
+    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
+  },
+  benchmark: function(operation, iterations) {
+    var startAt = new Date();
+    (iterations || 1).times(operation);
+    var timeTaken = ((new Date())-startAt);
+    this.info((arguments[2] || 'Operation') + ' finished ' + 
+       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
+    return timeTaken;
+  }
+};
+
+Test.Unit.Testcase = Class.create();
+Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
+  initialize: function(name, test, setup, teardown) {
+    Test.Unit.Assertions.prototype.initialize.bind(this)();
+    this.name           = name;
+    
+    if(typeof test == 'string') {
+      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
+      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
+      this.test = function() {
+        eval('with(this){'+test+'}');
+      }
+    } else {
+      this.test = test || function() {};
+    }
+    
+    this.setup          = setup || function() {};
+    this.teardown       = teardown || function() {};
+    this.isWaiting      = false;
+    this.timeToWait     = 1000;
+  },
+  wait: function(time, nextPart) {
+    this.isWaiting = true;
+    this.test = nextPart;
+    this.timeToWait = time;
+  },
+  run: function() {
+    try {
+      try {
+        if (!this.isWaiting) this.setup.bind(this)();
+        this.isWaiting = false;
+        this.test.bind(this)();
+      } finally {
+        if(!this.isWaiting) {
+          this.teardown.bind(this)();
+        }
+      }
+    }
+    catch(e) { this.error(e); }
+  }
+});
+
+// *EXPERIMENTAL* BDD-style testing to please non-technical folk
+// This draws many ideas from RSpec http://rspec.rubyforge.org/
+
+Test.setupBDDExtensionMethods = function(){
+  var METHODMAP = {
+    shouldEqual:     'assertEqual',
+    shouldNotEqual:  'assertNotEqual',
+    shouldEqualEnum: 'assertEnumEqual',
+    shouldBeA:       'assertType',
+    shouldNotBeA:    'assertNotOfType',
+    shouldBeAn:      'assertType',
+    shouldNotBeAn:   'assertNotOfType',
+    shouldBeNull:    'assertNull',
+    shouldNotBeNull: 'assertNotNull',
+    
+    shouldBe:        'assertReturnsTrue',
+    shouldNotBe:     'assertReturnsFalse',
+    shouldRespondTo: 'assertRespondsTo'
+  };
+  var makeAssertion = function(assertion, args, object) { 
+   	this[assertion].apply(this,(args || []).concat([object]));
+  };
+  
+  Test.BDDMethods = {};   
+  $H(METHODMAP).each(function(pair) { 
+    Test.BDDMethods[pair.key] = function() { 
+       var args = $A(arguments); 
+       var scope = args.shift(); 
+       makeAssertion.apply(scope, [pair.value, args, this]); }; 
+  });
+  
+  [Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
+    function(p){ Object.extend(p, Test.BDDMethods) }
+  );
+};
+
+Test.context = function(name, spec, log){
+  Test.setupBDDExtensionMethods();
+  
+  var compiledSpec = {};
+  var titles = {};
+  for(specName in spec) {
+    switch(specName){
+      case "setup":
+      case "teardown":
+        compiledSpec[specName] = spec[specName];
+        break;
+      default:
+        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
+        var body = spec[specName].toString().split('\n').slice(1);
+        if(/^\{/.test(body[0])) body = body.slice(1);
+        body.pop();
+        body = body.map(function(statement){ 
+          return statement.strip()
+        });
+        compiledSpec[testName] = body.join('\n');
+        titles[testName] = specName;
+    }
+  }
+  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
+};
\ No newline at end of file
diff --git a/gosa-core/html/index.php b/gosa-core/html/index.php
new file mode 100644
index 0000000..fc65b2a
--- /dev/null
+++ b/gosa-core/html/index.php
@@ -0,0 +1,460 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ * 
+ * ID: $$Id: index.php 15301 2010-01-26 09:40:08Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Load required includes */
+require_once ("../include/php_setup.inc");
+require_once ("functions.inc");
+require_once ("class_log.inc");
+header("Content-type: text/html; charset=UTF-8");
+
+
+/**
+ * Display the login page and exit().
+ *
+ */
+function displayLogin()
+{
+  global $smarty,$message,$config,$ssl,$error_collector;
+  error_reporting(E_ALL | E_STRICT);
+  /* Fill template with required values */
+  $username = "";
+  if(isset($_POST["username"])){
+    $username= $_POST["username"];
+  }
+  $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'));
+
+  /* Some error to display? */
+  if (!isset($message)){
+    $message= "";
+  }
+  $smarty->assign ("message", $message);
+
+  /* Displasy SSL mode warning? */
+  if ($ssl != "" && $config->get_cfg_value('warnssl') == 'true'){
+    $smarty->assign ("ssl", _("Warning").": <a style=\"color:red;\" href=\"$ssl\">"._("Session is not encrypted!")."</a>");
+  } else {
+    $smarty->assign ("ssl", "");
+  }
+
+  if(!$config->check_session_lifetime()){
+    $smarty->assign ("lifetime", _("Warning").": ".
+        _("The session lifetime configured in your gosa.conf will be overridden by php.ini settings."));
+  }else{
+    $smarty->assign ("lifetime", "");
+  }
+
+  /* Generate server list */
+  $servers= array();
+  if (isset($_POST['server'])){
+    $selected= validate($_POST['server']);
+  } else {
+    $selected= $config->data['MAIN']['DEFAULT'];
+  }
+  foreach ($config->data['LOCATIONS'] as $key => $ignored){
+    $servers[$key]= $key;
+  }
+  $smarty->assign ("server_options", $servers);
+  $smarty->assign ("server_id", $selected);
+
+  /* show login screen */
+  $smarty->assign ("PHPSESSID", session_id());
+  if (session::is_set('errors')){
+    $smarty->assign("errors", session::get('errors'));
+  }
+  if ($error_collector != ""){
+    $smarty->assign("php_errors", $error_collector."</div>");
+  } else {
+    $smarty->assign("php_errors", "");
+  }
+  $smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
+  $smarty->assign("iePngWorkaround", $config->get_cfg_value("iePngWorkaround","false" ) == "true");
+  $smarty->assign("usePrototype", "false");
+  $smarty->display (get_template_path('headers.tpl'));
+  $smarty->assign("version",get_gosa_version());
+  $smarty->display(get_template_path('login.tpl'));
+  exit();
+}
+
+
+
+/*****************************************************************************
+ *                               M   A   I   N                               *
+ *****************************************************************************/
+
+/* Set error handler to own one, initialize time calculation
+   and start session. */
+session::start();
+session::set('errorsAlreadyPosted',array());
+
+/* Destroy old session if exists. 
+   Else you will get your old session back, if you not logged out correctly. */
+if(is_array(session::get_all()) && count(session::get_all())){
+  session::destroy();
+  session::start();
+}
+
+$username= "";
+
+/* Reset errors */
+session::set('errors',"");
+session::set('errorsAlreadyPosted',"");
+session::set('LastError',"");
+
+/* Check if we need to run setup */
+if (!file_exists(CONFIG_DIR."/".CONFIG_FILE)){
+  header("location:setup.php");
+  exit();
+}
+
+/* Reset errors */
+session::set('errors',"");
+
+/* Check for java script */
+if(isset($_POST['javascript']) && $_POST['javascript'] == "true") {
+  session::global_set('js',TRUE);
+}elseif(isset($_POST['javascript'])) {
+  session::global_set('js',FALSE);
+}
+
+/* Check if gosa.conf (.CONFIG_FILE) is accessible */
+if (!is_readable(CONFIG_DIR."/".CONFIG_FILE)){
+  msg_dialog::display(_("Configuration error"),sprintf(_("GOsa configuration %s/%s is not readable. Aborted."), CONFIG_DIR,CONFIG_FILE),FATAL_ERROR_DIALOG);
+  exit();
+}
+
+/* Parse configuration file */
+$config= new config(CONFIG_DIR."/".CONFIG_FILE, $BASE_DIR);
+session::global_set('DEBUGLEVEL',$config->get_cfg_value('DEBUGLEVEL'));
+if ($_SERVER["REQUEST_METHOD"] != "POST"){
+  @DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
+}
+
+/* Enable compressed output */
+if ($config->get_cfg_value("sendCompressedOutput") != ""){
+  ob_start("ob_gzhandler");
+}
+
+/* Set template compile directory */
+$smarty->compile_dir= $config->get_cfg_value("templateCompileDirectory", '/var/spool/gosa');
+
+/* Check for compile directory */
+if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))){
+  msg_dialog::display(_("Smarty error"),sprintf(_("Directory '%s' specified as compile directory is not accessible!"),
+        $smarty->compile_dir),FATAL_ERROR_DIALOG);
+  exit();
+}
+
+/* Check for old files in compile directory */
+clean_smarty_compile_dir($smarty->compile_dir);
+
+/* Language setup */
+$lang= get_browser_language();
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+$smarty->assign ('nextfield', 'username');
+
+if ($_SERVER["REQUEST_METHOD"] != "POST"){
+  @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, "Setting language to");
+}
+
+
+/* Check for SSL connection */
+$ssl= "";
+if (!isset($_SERVER['HTTPS']) ||
+    !stristr($_SERVER['HTTPS'], "on")) {
+
+  if (empty($_SERVER['REQUEST_URI'])) {
+    $ssl= "https://".$_SERVER['HTTP_HOST'].
+      $_SERVER['PATH_INFO'];
+  } else {
+    $ssl= "https://".$_SERVER['HTTP_HOST'].
+      $_SERVER['REQUEST_URI'];
+  }
+}
+
+/* If SSL is forced, just forward to the SSL enabled site */
+if ($config->get_cfg_value("forcessl") == 'true' && $ssl != ''){
+  header ("Location: $ssl");
+  exit;
+}
+
+/* Do we have htaccess authentification enabled? */
+$htaccess_authenticated= FALSE;
+if ($config->get_cfg_value("htaccessAuthentication") == "true" ){
+  if (!isset($_SERVER['REMOTE_USER'])){
+    msg_dialog::display(_("Configuration error"), _("There is a problem with the authentication setup!"), FATAL_ERROR_DIALOG);
+    exit;
+  }
+
+  $tmp= process_htaccess($_SERVER['REMOTE_USER'], isset($_SERVER['KRB5CCNAME']));
+  $username= $tmp['username'];
+  $server= $tmp['server'];
+  if ($username == ""){
+    msg_dialog::display(_("Error"), _("Cannot find a valid user for the current authentication setup!"), FATAL_ERROR_DIALOG);
+    exit;
+  }
+  if ($server == ""){
+    msg_dialog::display(_("Error"), _("User information is not unique accross the configured LDAP trees!"), FATAL_ERROR_DIALOG);
+    exit;
+  }
+
+  $htaccess_authenticated= TRUE;
+}
+
+/* Got a formular answer, validate and try to log in */
+if (($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) || $htaccess_authenticated){
+
+  /* Reset error messages */
+  $message= "";
+
+  /* Destroy old sessions, they cause a successfull login to relog again ...*/
+  if(session::global_is_set('_LAST_PAGE_REQUEST')){
+    session::global_set('_LAST_PAGE_REQUEST',time());
+  }
+
+  if (!$htaccess_authenticated){
+    $server= validate($_POST["server"]);
+  }
+  $config->set_current($server);
+
+  /* Admin-logon and verify */
+  $ldap = $config->get_ldap_link();
+  if (is_null($ldap) || (is_int($ldap) && $ldap == 0)){
+    msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+    displayLogin();
+    exit();
+  }
+
+  /* Check for schema file presence */
+  if ($config->get_cfg_value("schemaCheck") == "true"){
+    $recursive = ($config->get_cfg_value("ldapFollowReferrals") == "true");
+    $tls =       ($config->get_cfg_value("ldapTLS") == "true");
+
+    if(!count($ldap->get_objectclasses())){
+      msg_dialog::display(_("LDAP error"), _("Cannot detect information about the installed LDAP schema!"), ERROR_DIALOG);
+      displayLogin();
+      exit()  ;
+    }else{
+      $cfg = array();
+      $cfg['admin']     = $config->current['ADMINDN'];
+      $cfg['password']  = $config->current['ADMINPASSWORD'];
+      $cfg['connection']= $config->current['SERVER'];
+      $cfg['tls']       = $tls;
+      $str = check_schema($cfg, $config->get_cfg_value("rfc2307bis") == "true");
+      $checkarr = array();
+      foreach($str as $tr){
+        if(isset($tr['IS_MUST_HAVE']) && !$tr['STATUS']){
+          msg_dialog::display(_("LDAP error"), _("Your LDAP setup contains old schema definitions:")."<br><br><i>".$tr['MSG']."</i>", ERROR_DIALOG);
+          displayLogin();
+          exit();
+        }
+      }
+    }
+  }
+
+  /* Check for locking area */
+  $ldap->cat($config->get_cfg_value("config"), array("dn"));
+  $attrs= $ldap->fetch();
+  if (!count ($attrs)){
+    $ldap->cd($config->current['BASE']);
+    $ldap->create_missing_trees($config->get_cfg_value("config"));
+  }
+
+  /* Check for valid input */
+  $ok= true;
+  if (!$htaccess_authenticated){
+    $username= $_POST["username"];
+    if (!preg_match("/^[@A-Za-z0-9_.-]+$/", $username)){
+      $message= _("Please specify a valid username!");
+      $ok= false;
+    } elseif (mb_strlen($_POST["password"], 'UTF-8') == 0){
+      $message= _("Please specify your password!");
+      $smarty->assign ('nextfield', 'password');
+      $ok= false;
+    }
+  }
+
+  if ($ok) {
+
+    /* Login as user, initialize user ACL's */
+    if ($htaccess_authenticated){
+      $ui= ldap_login_user_htaccess($username);
+      if ($ui === NULL || !$ui){
+        msg_dialog::display(_("Authentication error"), _("Cannot retrieve user information for htaccess authentication!"), FATAL_ERROR_DIALOG);
+        exit;
+      }
+    } else {
+      $ui= ldap_login_user($username, $_POST["password"]);
+    }
+    if ($ui === NULL || !$ui){
+      $message= _("Please check the username/password combination.");
+      $smarty->assign ('nextfield', 'password');
+      session::global_set('config',$config);
+      new log("security","login","",array(),"Authentication failed for user \"$username\"");
+    } else {
+      /* Remove all locks of this user */
+      del_user_locks($ui->dn);
+
+      /* Save userinfo and plugin structure */
+      session::global_set('ui',$ui);
+      session::global_set('session_cnt',0);
+
+      /* Let GOsa trigger a new connection for each POST, save
+         config to session. */
+      $config->get_departments();
+      $config->make_idepartments();
+      session::global_set('config',$config);
+
+      /* Restore filter settings from cookie, if available */
+      if($config->get_cfg_value("storeFilterSettings") == "true"){
+
+        if(isset($_COOKIE['GOsa_Filter_Settings']) || isset($HTTP_COOKIE_VARS['GOsa_Filter_Settings'])){
+
+          if(isset($_COOKIE['GOsa_Filter_Settings'])){
+            $cookie_all = unserialize(base64_decode($_COOKIE['GOsa_Filter_Settings']));
+          }else{
+            $cookie_all = unserialize(base64_decode($HTTP_COOKIE_VARS['GOsa_Filter_Settings']));
+          }
+          if(isset($cookie_all[$ui->dn])){
+            $cookie = $cookie_all[$ui->dn];
+            $cookie_vars= array("MultiDialogFilters","CurrentMainBase","plug");
+            foreach($cookie_vars as $var){
+              if(isset($cookie[$var])){
+                session::global_set($var,$cookie[$var]);
+              }
+            }
+            if(isset($cookie['plug'])){
+              $plug =$cookie['plug'];
+            }
+          }
+        }
+      }
+
+      /* are we using accountexpiration */
+      if ($config->get_cfg_value("handleExpiredAccounts") == "true"){
+        $expired= ldap_expired_account($config, $ui->dn, $ui->username);
+
+        if ($expired == 1){
+          $message= _("Account locked. Please contact your system administrator!");
+          $smarty->assign ('nextfield', 'password');
+          new log("security","login","",array(),"Account for user \"$username\" has expired") ;
+        } elseif ($expired == 3){
+          $plist= new pluglist($config, $ui);
+          foreach ($plist->dirlist as $key => $value){
+            if (preg_match("/\bpassword\b/i",$value)){
+              $plug=$key;
+              new log("security","login","",array(),"User \"$username\" password forced to change") ;
+              header ("Location: main.php?plug=$plug&reset=1");
+              exit;
+            }
+          }
+        }
+      }
+
+      /* Not account expired or password forced change go to main page */
+      new log("security","login","",array(),"User \"$username\" logged in successfully") ;
+      $plist= new pluglist($config, $ui);
+      if(isset($plug) && isset($plist->dirlist[$plug])){
+        header ("Location: main.php?plug=".$plug."&global_check=1");
+      }else{
+        header ("Location: main.php?global_check=1");
+      }
+      exit;
+    }
+  }
+}
+
+/* Fill template with required values */
+$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'));
+
+/* Some error to display? */
+if (!isset($message)){
+  $message= "";
+}
+
+$smarty->assign ("message", $message);
+
+/* Displasy SSL mode warning? */
+if ($ssl != "" && $config->get_cfg_value('WARNSSL') == 'true'){
+  $smarty->assign ("ssl", "<b>"._("Warning").":<\/b> "._("Session will not be encrypted.")." <a style=\"color:red;\" href=\"$ssl\"><b>"._("Enter SSL session")."<\/b></a>!");
+} else {
+  $smarty->assign ("ssl", "");
+}
+
+/* Translation of cookie-warning. Whether to display it, is determined by JavaScript */
+$smarty->assign ("cookies", "<b>"._("Warning").":<\/b> "._("Your browser has cookies disabled. Please enable cookies and reload this page before logging in!"));
+
+/* Generate server list */
+$servers= array();
+if (isset($_POST['server'])){
+  $selected= validate($_POST['server']);
+} else {
+  $selected= $config->data['MAIN']['DEFAULT'];
+}
+foreach ($config->data['LOCATIONS'] as $key => $ignored){
+  $servers[$key]= $key;
+}
+$smarty->assign ("server_options", $servers);
+$smarty->assign ("server_id", $selected);
+
+/* show login screen */
+$smarty->assign ("PHPSESSID", session_id());
+if (session::is_set('errors')){
+  $smarty->assign("errors", session::get('errors'));
+}
+if ($error_collector != ""){
+  $smarty->assign("php_errors", preg_replace("/%BUGBODY%/",$error_collector_mailto,$error_collector)."</div>");
+} else {
+  $smarty->assign("php_errors", "");
+}
+
+/* Set focus to the error button if we've an error message */
+$focus= "";
+if (session::is_set('errors') && session::get('errors') != ""){
+  $focus= '<script language="JavaScript" type="text/javascript">';
+  $focus.= 'document.forms[0].error_accept.focus();';
+  $focus.= '</script>';
+}
+$smarty->assign("focus", $focus);
+displayLogin();
+
+// vim:tabstop=2:expandtab:shiftwidth=2:softtabstop=2:filetype=php:syntax:ruler:
+?>
+
+</body>
+</html>
diff --git a/gosa-core/html/logout.php b/gosa-core/html/logout.php
new file mode 100644
index 0000000..693a5cb
--- /dev/null
+++ b/gosa-core/html/logout.php
@@ -0,0 +1,102 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: logout.php 14369 2009-09-28 11:22:11Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Basic setup, remove eventually registered sessions */
+require_once ("../include/php_setup.inc");
+require_once ("functions.inc");
+header("Content-type: text/html; charset=UTF-8");
+
+/* try to start session, so we can remove userlocks, 
+  if the old session is still available */
+ at session::start();
+session::set('errorsAlreadyPosted',array());
+if(session::global_is_set('ui')){
+  
+  /* Get config & ui informations */
+  $ui= session::global_get("ui");
+  
+  /* config used for del_user_locks & some lines below to detect the language */  
+  $config= session::global_get("config");
+
+  /* Remove all locks of this user */
+  del_user_locks($ui->dn);
+  
+  /* Write something to log */  
+  new log("security","logout","",array(),"User \"".$ui->username."\" logged out") ;
+}
+
+/* Language setup */
+if ((!isset($config)) || $config->get_cfg_value("language") == ""){
+  $lang= get_browser_language();
+} else {
+  $lang= $config->get_cfg_value("language");
+}
+
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+
+/* Create smarty & Set template compile directory */
+$smarty= new smarty();
+if (isset($config)){
+	$smarty->compile_dir= $config->get_cfg_value("compile", '/var/spool/gosa/');
+} else {
+	$smarty->compile_dir= '/var/spool/gosa/';
+}
+    
+/* If GET request is posted, the logout was forced by pressing the link */
+if (isset($_GET['request'])){
+  
+  /* destroy old session */
+  session::destroy ();
+  
+  /* If we're not using htaccess authentication, just redirect... */
+  if (isset($config) && $config->get_cfg_value("htaccessAuthentication") == "true"){
+
+    /* Else notice that the user has to close the browser... */
+    $smarty->assign("iePngWorkaround", FALSE);
+    $smarty->assign("usePrototype", "false");
+    $smarty->display (get_template_path('headers.tpl'));
+    $smarty->display (get_template_path('logout-close.tpl'));
+    exit;
+  }
+
+  header ("Location: index.php");
+  exit();
+
+}else{  // The logout wasn't forced, so the session is invalid 
+  
+  $smarty->assign("usePrototype", "false");
+  $smarty->display (get_template_path('headers.tpl'));
+  $smarty->display (get_template_path('logout.tpl'));
+  exit;
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
+</html>
diff --git a/gosa-core/html/main.php b/gosa-core/html/main.php
new file mode 100644
index 0000000..fdf40d1
--- /dev/null
+++ b/gosa-core/html/main.php
@@ -0,0 +1,448 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.php 14431 2009-10-01 11:02:22Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Save start time */
+$start = microtime();
+
+/* Basic setup, remove eventually registered sessions */
+require_once ("../include/php_setup.inc");
+require_once ("functions.inc");
+
+/* Set header */
+header("Content-type: text/html; charset=UTF-8");
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+
+/* Remember everything we did after the last click */
+session::start();
+session::set('errorsAlreadyPosted',array());
+session::global_set('runtime_cache',array());
+session::set('limit_exceeded',FALSE);
+
+if ($_SERVER["REQUEST_METHOD"] == "POST"){
+  @DEBUG (DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, $_POST, "_POST");
+}
+ at DEBUG (DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, session::get_all(), "_SESSION");
+
+/* Logged in? Simple security check */
+if (!session::global_is_set('config')){
+  new log("security","login","",array(),"main.php called without session - logging out") ;
+  header ("Location: logout.php");
+  exit;
+} 
+
+/* Check for uniqe ip address */
+$ui= session::global_get('ui');
+if ($_SERVER['REMOTE_ADDR'] != $ui->ip){
+  new log("security","login","",array(),"main.php called with session which has a changed IP address.") ;
+  header ("Location: logout.php");
+  exit;
+}
+$config= session::global_get('config');
+$config->check_and_reload();
+
+/* Enable compressed output */
+if ($config->get_cfg_value("sendCompressedOutput") == "true"){
+  ob_start("ob_gzhandler");
+}
+
+/* Check for invalid sessions */
+if(session::global_get('_LAST_PAGE_REQUEST') == ""){
+  session::global_set('_LAST_PAGE_REQUEST',time());
+}else{
+
+  /* check GOsa.conf for defined session lifetime */
+  $max_life= $config->get_cfg_value("sessionLifetime", 60*60*2);
+
+  /* get time difference between last page reload */
+  $request_time = (time()- session::global_get('_LAST_PAGE_REQUEST'));
+
+  /* If page wasn't reloaded for more than max_life seconds 
+   * kill session
+   */
+  if($request_time > $max_life){
+    session::destroy();
+    new log("security","login","",array(),"main.php called without session - logging out") ;
+    header ("Location: logout.php");
+    exit;
+  }
+  session::global_set('_LAST_PAGE_REQUEST',time());
+}
+
+
+ at DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
+
+/* Set template compile directory */
+$smarty->compile_dir= $config->get_cfg_value("templateCompileDirectory", '/var/spool/gosa');
+
+/* Set default */
+$reload_navigation = false;
+
+/* Set last initialised language to current, browser settings */
+if(!session::global_is_set('Last_init_lang')){
+  $reload_navigation = true;
+  session::global_set('Last_init_lang',get_browser_language());
+}
+
+/* If last language != current force navi reload */
+$lang= get_browser_language();
+if(session::global_get('Last_init_lang') != $lang){
+  $reload_navigation = true;
+}
+
+/* Language setup */
+session::global_set('Last_init_lang',$lang);
+
+/* Preset current main base */
+if(!session::global_is_set('CurrentMainBase')){
+  session::global_set('CurrentMainBase',get_base_from_people($ui->dn));
+}
+
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+/* Check if the config is up to date */
+$config->check_config_version();
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+ at DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, "Setting language to");
+
+/* Prepare plugin list */
+if (!session::global_is_set('plist')){
+  /* Initially load all classes */
+  $class_list= get_declared_classes();
+  foreach ($class_mapping as $class => $path){
+    if (!in_array($class, $class_list)){
+      if (is_readable("$BASE_DIR/$path")){
+        require_once("$BASE_DIR/$path");
+      } else {
+        msg_dialog::display(_("Fatal error"),
+            sprintf(_("Cannot locate file '%s' - please run '%s' to fix this"),
+              "$BASE_DIR/$path", "<b>update-gosa</b>"), FATAL_ERROR_DIALOG);
+        exit;
+      }
+    }
+  }
+
+  session::global_set('plist', new pluglist($config, $ui));
+
+  /* Load ocMapping into userinfo */
+  $tmp= new acl($config, NULL, $ui->dn);
+  $ui->ocMapping= $tmp->ocMapping;
+  session::global_set('ui',$ui);
+}
+$plist= session::global_get('plist');
+
+/* Check for register globals */
+if (isset($global_check) && $config->get_cfg_value("forceglobals") == "true"){
+  msg_dialog::display(
+            _("PHP configuration"),
+            _("FATAL: Register globals is on. GOsa will refuse to login unless this is fixed by an administrator."),
+            FATAL_ERROR_DIALOG);
+
+  new log("security","login","",array(),"Register globals is on. For security reasons, this should be turned off.") ;
+  session::destroy ();
+  exit;
+}
+
+/* Check Plugin variable */
+if (session::global_is_set('plugin_dir')){
+  $old_plugin_dir= session::global_get('plugin_dir');
+} else {
+  $old_plugin_dir= "";
+}
+if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])){
+  $plug= validate($_GET['plug']);
+  $plugin_dir= $plist->get_path($plug);
+  session::global_set('plugin_dir',$plugin_dir);
+  if ($plugin_dir == ""){
+    new log("security","gosa","",array(),"main.php called with invalid plug parameter \"$plug\"") ;
+    header ("Location: logout.php");
+    exit;
+  }
+} else {
+
+  /* set to welcome page as default plugin */
+  session::global_set('plugin_dir',"welcome");
+  $plugin_dir= "$BASE_DIR/plugins/generic/welcome";
+}
+
+/* Handle plugin locks.
+    - Remove the plugin from session if we switched to another. (cleanup) 
+    - Remove all created locks if "reset" was posted.
+    - Remove all created locks if we switched to another plugin.
+*/
+$cleanup    = FALSE;
+$remove_lock= FALSE;
+
+/* Check if we have changed the selected plugin 
+*/
+if($old_plugin_dir != $plugin_dir && $old_plugin_dir != ""){
+  if (is_file("$old_plugin_dir/main.inc")){
+    $cleanup = $remove_lock = TRUE;
+    require ("$old_plugin_dir/main.inc");
+    $cleanup = $remove_lock = FALSE;
+  }
+}else // elseif
+
+/* Reset was posted, remove all created locks for the current plugin
+*/
+if((isset($_GET['reset']) && $_GET['reset'] == 1) || isset($_POST['delete_lock'])){
+  $remove_lock = TRUE;
+}
+
+/* Check for sizelimits */
+eval_sizelimit();
+
+/* Check for memory */
+if (function_exists("memory_get_usage")){
+  if (memory_get_usage() > (to_byte(ini_get('memory_limit')) - 2048000 )){
+    msg_dialog::display(_("Configuration error"), _("Running out of memory!"), WARNING_DIALOG);
+  }
+}
+
+/* Redirect on back event */
+if ($_SERVER["REQUEST_METHOD"] == "POST"){
+
+  /* Look for button events that match /^back[0-9]+$/,
+     extract the number and step the correct plugin. */
+  foreach ($_POST as $key => $value){
+    if (preg_match("/^back[0-9]+$/", $key)){
+      $back= substr($key, 4);
+      header ("Location: main.php?plug=$back");
+      exit;
+    }
+  }
+}
+
+/* Redirect on password back event */
+if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['password_back'])){
+  header ("Location: main.php");
+  exit;
+}
+
+/* Check for multiple windows logout */
+if ($_SERVER["REQUEST_METHOD"] == "POST"){
+  if (isset($_POST['reset_session'])){
+    header ("Location: logout.php");
+    exit;
+  }
+}
+
+
+/* Load department list when plugin has changed. That is some kind of
+   compromise between speed and beeing up to date */
+if (isset($_GET['reset'])){
+  set_object_info();
+}
+
+/* show web frontend */
+$smarty->assign ("date", date("l, dS F Y H:i:s O"));
+$smarty->assign ("lang", preg_replace('/_.*$/', '', $lang));
+$smarty->assign ("must", "<font class=\"must\">*</font>");
+if (isset($plug)){
+  $plug= "?plug=$plug";
+} else {
+  $plug= "";
+}
+if (session::global_get('js')==FALSE){
+  $smarty->assign("javascript", "false");
+  $smarty->assign("help_method", "href='helpviewer.php$plug' target='_blank'");
+} else {
+  $smarty->assign("javascript", "true");
+  $smarty->assign("help_method"," onclick=\"return popup('helpviewer.php$plug','GOsa help');\"");
+}
+
+if($ui->ignore_acl_for_current_user()){
+  $smarty->assign ("username", "<font color='#FF0000';>"._("User ACL checks disabled")."</font> ".$ui->username);
+}else{
+  $smarty->assign ("username", $ui->username);
+}
+$smarty->assign ("go_logo", get_template_path('images/go_logo.png'));
+$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 ("go_help", get_template_path('images/help.png'));
+
+/* reload navigation if language changed*/  
+if($reload_navigation){
+  $plist->menu="";
+}
+$plist->gen_headlines();
+$plist->gen_menu();
+$smarty->assign ("menu", $plist->menu);
+$smarty->assign ("plug", "$plug");
+
+$smarty->assign("iePngWorkaround", $config->get_cfg_value("iePngWorkaround","false" ) == "true");
+$smarty->assign("usePrototype", "false");
+
+/* React on clicks */
+if ($_SERVER["REQUEST_METHOD"] == "POST"){
+  if (isset($_POST['delete_lock']) || isset($_POST['open_readonly'])){
+
+    /* Set old Post data */
+    if(session::global_is_set('LOCK_VARS_USED_GET')){
+      foreach(session::global_get('LOCK_VARS_USED_GET') as $name => $value){
+        $_GET[$name]  = $value;
+      } 
+    } 
+    if(session::global_is_set('LOCK_VARS_USED_POST')){
+      foreach(session::global_get('LOCK_VARS_USED_POST') as $name => $value){
+        $_POST[$name] = $value;
+      } 
+    }
+    if(session::global_is_set('LOCK_VARS_USED_REQUEST')){
+      foreach(session::global_get('LOCK_VARS_USED_REQUEST') as $name => $value){
+        $_REQUEST[$name] = $value;
+      } 
+    }
+  }
+}
+
+/* check if we are using account expiration */
+if ($config->get_cfg_value("handleExpiredAccounts") == "true"){
+  $expired= ldap_expired_account($config, $ui->dn, $ui->username);
+
+  if ($expired == 2){
+    new log("security","gosa","",array(),"password for user \"$ui->username\" is about to expire") ;
+    msg_dialog::display(_("Password change"), _("Your password is about to expire, please change your password!"), INFO_DIALOG);
+  }
+}
+
+/* Load plugin */
+if (is_file("$plugin_dir/main.inc")){
+  $display ="";
+  require ("$plugin_dir/main.inc");
+} else {
+  msg_dialog::display(
+      _("Plugin"),
+      sprintf(_("FATAL: Cannot find any plugin definitions for plugin '%s'!"), $plug),
+      FATAL_ERROR_DIALOG);
+  exit();
+}
+
+
+/* Print_out last ErrorMessage repeated string. */
+$smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
+$smarty->assign("contents", $display);
+
+/* If there's some post, take a look if everything is there... */
+if (isset($_POST) && count($_POST)){
+  if (!isset($_POST['php_c_check'])){
+    msg_dialog::display(
+            _("Configuration Error"),
+            sprintf(_("FATAL: not all POST variables have been transfered by PHP - please inform your administrator!")),
+            FATAL_ERROR_DIALOG);
+    exit();
+  }
+}
+
+/* Assign erros to smarty */
+if (session::is_set('errors')){
+  $smarty->assign("errors", session::get('errors'));
+}
+if ($error_collector != ""){
+  $smarty->assign("php_errors", preg_replace("/%BUGBODY%/",$error_collector_mailto,$error_collector)."</div>");
+} else {
+  $smarty->assign("php_errors", "");
+}
+
+/* Set focus to the error button if we've an error message */
+$focus= "";
+if (session::is_set('errors') && session::get('errors') != ""){
+  $focus= '<script language="JavaScript" type="text/javascript">';
+  $focus.= 'document.forms[0].error_accept.focus();';
+  $focus.= '</script>';
+}
+
+$focus= '<script language="JavaScript" type="text/javascript">';
+$focus.= 'next_msg_dialog();';
+$focus.= '</script>';
+$smarty->assign("focus", $focus);
+
+/* Set channel if needed */
+#TODO: * move all global session calls to global_
+#      * create a new channel where needed (mostly management dialogues)
+#      * remove regulary created channels when not needed anymore
+#      * take a look at external php calls (i.e. get fax, ldif, etc.)
+#      * handle aborted sessions (by pressing anachors i.e. Main, Menu, etc.)
+#      * check lock removals, is "dn" global or not in this case?
+#      * last page request -> global or not?
+#      * check that filters are still global
+#      * maxC global?
+if (isset($_POST['_channel_'])){
+	echo "DEBUG - current channel: ".$_POST['_channel_'];
+	$smarty->assign("channel", $_POST['_channel_']);
+} else {
+	$smarty->assign("channel", "");
+}
+
+$display= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl')).
+          $smarty->fetch(get_template_path('framework.tpl'));
+
+/* Save dialog filters and selected base in a cookie. 
+   So we may be able to restore the filter an base settings on reload.
+*/
+$cookie = array();
+
+if(isset($_COOKIE['GOsa_Filter_Settings'])){
+  $cookie = unserialize(base64_decode($_COOKIE['GOsa_Filter_Settings']));
+}elseif(isset($HTTP_COOKIE_VARS['GOsa_Filter_Settings'])){
+  $cookie = unserialize(base64_decode($HTTP_COOKIE_VARS['GOsa_Filter_Settings']));
+}
+
+/* Save filters? */
+if($config->get_cfg_value("storeFilterSettings") == "true"){
+  $cookie_vars = array("MultiDialogFilters","CurrentMainBase");
+  foreach($cookie_vars as $var){
+    if(session::global_is_set($var)){
+      $cookie[$ui->dn][$var] = session::global_get($var);
+    }
+  }
+  if(isset($_GET['plug'])){
+    $cookie[$ui->dn]['plug'] = $_GET['plug'];
+  }
+  @setcookie("GOsa_Filter_Settings",base64_encode(serialize($cookie)),time() + (60*60*24));
+}
+
+/* Show page... */
+echo $display;
+
+/* Save plist and config */
+session::global_set('plist',$plist);
+session::global_set('config',$config);
+session::set('errorsAlreadyPosted',array());
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/html/password.php b/gosa-core/html/password.php
new file mode 100644
index 0000000..3651b80
--- /dev/null
+++ b/gosa-core/html/password.php
@@ -0,0 +1,304 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: password.php 17970 2010-04-29 14:12:17Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+function displayPWchanger()
+{
+  global $smarty;
+
+  $smarty->display(get_template_path('password.tpl'));
+  exit();
+}
+
+/* Load required includes */
+require_once ("../include/php_setup.inc");
+require_once ("functions.inc");
+
+if(!class_exists("log")){
+  require_once("class_log.inc");
+}
+
+header("Content-type: text/html; charset=UTF-8");
+
+session::start();
+
+/* Destroy old session if exists.
+    Else you will get your old session back, if you not logged out correctly. */
+if(is_array(session::get_all()) && count(session::get_all())){
+  session::destroy();
+  session::start();
+}
+
+/* Reset errors */
+session::global_set('js',true);
+session::set('errors',"");
+session::set('errorsAlreadyPosted',array());
+session::set('LastError',"");
+
+/* Check if CONFIG_FILE is accessible */
+if (!is_readable(CONFIG_DIR."/".CONFIG_FILE)){
+  msg_dialog::display(_("Fatal error"), sprintf(_("GOsa configuration %s/%s is not readable. Aborted."),CONFIG_DIR,CONFIG_FILE), FATAL_ERROR_DIALOG);
+  exit;
+}
+
+/* Parse configuration file */
+$config= new config(CONFIG_DIR."/".CONFIG_FILE, $BASE_DIR);
+session::global_set('DEBUGLEVEL', $config->get_cfg_value("debuglevel"));
+if ($_SERVER["REQUEST_METHOD"] != "POST"){
+  @DEBUG (DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
+}
+
+/* Set template compile directory */
+$smarty->compile_dir= $config->get_cfg_value("templateCompileDirectory", '/var/spool/gosa');
+
+/* Check for compile directory */
+if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))){
+  msg_dialog::display(_("Configuration error"), sprintf(_("Directory '%s' specified as compile directory is not accessible!"),
+        $smarty->compile_dir), FATAL_ERROR_DIALOG);
+  exit;
+}
+
+/* Check for old files in compile directory */
+clean_smarty_compile_dir($smarty->compile_dir);
+
+/* Language setup */
+if ($config->get_cfg_value("language") == ""){
+  $lang= get_browser_language();
+} else {
+  $lang= $config->get_cfg_value("language");
+}
+$lang.=".UTF-8";
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+
+/* Generate server list */
+$servers= array();
+foreach ($config->data['LOCATIONS'] as $key => $ignored){
+	$servers[$key]= $key;
+}
+if (isset($_POST['server'])){
+	$directory= validate($_POST['server']);
+} else {
+	$directory= $config->data['MAIN']['DEFAULT'];
+
+  if(!isset($servers[$directory])){
+    $directory = key($servers);
+  }
+}
+if (isset($_GET['directory']) && isset($servers[$_GET['directory']])){
+	$smarty->assign ("show_directory_chooser", false);
+	$directory= validate($_GET['directory']);
+} else {
+	$smarty->assign ("server_options", $servers);
+	$smarty->assign ("server_id", $directory);
+	$smarty->assign ("show_directory_chooser", true);
+}
+
+/* Set config to selected one */
+$config->set_current($directory);
+session::global_set('config',$config);
+
+if ($_SERVER["REQUEST_METHOD"] != "POST"){
+  @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, "Setting language to");
+}
+
+
+/* Check for SSL connection */
+$ssl= "";
+if (!isset($_SERVER['HTTPS']) ||
+    !stristr($_SERVER['HTTPS'], "on")) {
+
+  if (empty($_SERVER['REQUEST_URI'])) {
+    $ssl= "https://".$_SERVER['HTTP_HOST'].
+      $_SERVER['PATH_INFO'];
+  } else {
+    $ssl= "https://".$_SERVER['HTTP_HOST'].
+      $_SERVER['REQUEST_URI'];
+  }
+}
+
+/* If SSL is forced, just forward to the SSL enabled site */
+if ($config->get_cfg_value("forcessl") == 'true' && $ssl != ''){
+  header ("Location: $ssl");
+  exit;
+}
+
+/* Check for selected password method */
+$method= $config->get_cfg_value("passwordDefaultHash", "crypt/md5");
+if (isset($_GET['method'])){
+	$method= validate($_GET['method']);
+	$tmp = new passwordMethod($config);
+	$available = $tmp->get_available_methods();
+	if (!isset($available[$method])){
+    msg_dialog::display(_("Password method"),_("Error: Password method not available!"),FATAL_ERROR_DIALOG);
+		exit;
+	}
+}
+
+
+/* Check for selected user... */
+if (isset($_GET['uid']) && $_GET['uid'] != ""){
+	$uid= validate($_GET['uid']);
+	$smarty->assign('display_username', false);
+} elseif (isset($_POST['uid'])){
+	$uid= validate($_POST['uid']);
+	$smarty->assign('display_username', true);
+} else {
+	$uid= "";
+	$smarty->assign('display_username', true);
+}
+$current_password= "";
+$smarty->assign("changed", false);
+
+/* Got a formular answer, validate and try to log in */
+if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['apply'])){
+
+  /* Destroy old sessions, they cause a successfull login to relog again ...*/
+  if(session::global_is_set('_LAST_PAGE_REQUEST')){
+    session::global_set('_LAST_PAGE_REQUEST',time());
+  }
+
+  $message= array();
+  $current_password= $_POST['current_password'];
+
+  /* Do new and repeated password fields match? */
+  $new_password= $_POST['new_password'];
+  if ($_POST['new_password'] != $_POST['new_password_repeated']){
+	  $message[]= _("The passwords you've entered as 'New password' and 'Repeated new password' do not match.");
+  } else {
+	  if ($_POST['new_password'] == ""){
+      $message[]= msgPool::required(_("New password"));
+	  }
+  }
+
+  /* Password policy fulfilled? */
+  if ($config->get_cfg_value("passwordMinDiffer") != ""){
+	  $l= $config->get_cfg_value("passwordMinDiffer");
+	  if (substr($_POST['current_password'], 0, $l) == substr($_POST['new_password'], 0, $l)){
+		  $message[]= _("The password used as new and current are too similar.");
+	  }
+  }
+  if ($config->get_cfg_value("passwordMinLength") != ""){
+	  if (strlen($_POST['new_password']) < $config->get_cfg_value("passwordMinLength")){
+		  $message[]= _("The password used as new is to short.");
+	  }
+  }
+
+  /* Validate */
+  if (!tests::is_uid($uid)){
+	  $message[]= msgPool::invalid(_("Login"));
+  } elseif (mb_strlen($_POST["current_password"], 'UTF-8') == 0){
+    $message[]= msgPool::required(_("Current password"));
+  } else {
+
+    /* Do we have the selected user somewhere? */
+    $ui= ldap_login_user ($uid, $current_password);
+
+    if ($ui === NULL){
+      $message[]= _("Please check the username/password combination.");
+    } else {
+      $acls = $ui->get_permissions($ui->dn,"users/password");
+      if(!preg_match("/w/i",$acls)){
+        $message[]= _("You have no permissions to change your password.");
+      }
+    }
+  }
+
+  /* Do we need to show error messages? */
+  if (count ($message) != 0){
+	  /* Show error message and continue editing */
+	  msg_dialog::displayChecks($message);
+  } else {
+
+	  /* Passed quality check, just try to change the password now */
+	  $output= "";
+	  if ($config->get_cfg_value("passwordHook") != ""){
+		  exec($config->get_cfg_value("passwordHook")." ".$ui->username." ".
+				  $_POST['current_password']." ".$_POST['new_password'], $resarr);
+		  if(count($resarr) > 0) {
+			  $output= join('\n', $resarr);
+		  }
+	  }
+	  if ($output != ""){
+		  $message[]= _("External password changer reported a problem: ".$output);
+		  msg_dialog::displayChecks($message);
+	  } else {
+		  if ($method != ""){
+			  change_password ($ui->dn, $_POST['new_password'], 0, $method);
+		  } else {
+			  change_password ($ui->dn, $_POST['new_password']);
+		  }
+		  gosa_log ("User/password has been changed");
+		  $smarty->assign("changed", true);
+	  }
+  }
+
+
+}
+
+/* Parameter fill up */
+$params= "";
+foreach (array('uid', 'method', 'directory') as $index){
+	$params.= "&$index=".urlencode($$index);
+}
+$params= preg_replace('/^&/', '?', $params);
+$smarty->assign('params', $params);
+
+/* Fill template with required values */
+$smarty->assign ('date', gmdate("D, d M Y H:i:s"));
+$smarty->assign ('uid', $uid);
+$smarty->assign ('password_img', get_template_path('images/password.png'));
+
+/* Displasy SSL mode warning? */
+if ($ssl != "" && $config->get_cfg_value("warnssl") == 'true'){
+  $smarty->assign ("ssl", "<b>"._("Warning").":</b> "._("Session will not be encrypted.")." <a style=\"color:red;\" href=\"".htmlentities($ssl)."\"><b>"._("Enter SSL session")."</b></a>!");
+} else {
+  $smarty->assign ("ssl", "");
+}
+
+/* show login screen */
+$smarty->assign("JS",session::global_get('js'));
+$smarty->assign ("PHPSESSID", session_id());
+if (session::is_set('errors')){
+  $smarty->assign("errors", session::get('errors'));;
+}
+if ($error_collector != ""){
+  $smarty->assign("php_errors", $error_collector."</div>");
+} else {
+  $smarty->assign("php_errors", "");
+}
+
+$smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
+displayPWchanger();
+
+?>
+
+</body>
+</html>
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
diff --git a/gosa-core/html/plugins/acl/images/acl.png b/gosa-core/html/plugins/acl/images/acl.png
new file mode 100644
index 0000000..04a05c1
Binary files /dev/null and b/gosa-core/html/plugins/acl/images/acl.png differ
diff --git a/gosa-core/html/plugins/acl/images/new-role.png b/gosa-core/html/plugins/acl/images/new-role.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/html/plugins/acl/images/new-role.png differ
diff --git a/gosa-core/html/plugins/acl/images/plugin.png b/gosa-core/html/plugins/acl/images/plugin.png
new file mode 100644
index 0000000..40b868f
Binary files /dev/null and b/gosa-core/html/plugins/acl/images/plugin.png differ
diff --git a/gosa-core/html/plugins/acl/images/role.png b/gosa-core/html/plugins/acl/images/role.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/html/plugins/acl/images/role.png differ
diff --git a/gosa-core/html/plugins/bugsubmitter/images/bugsubmitter.png b/gosa-core/html/plugins/bugsubmitter/images/bugsubmitter.png
new file mode 100644
index 0000000..3ed096d
Binary files /dev/null and b/gosa-core/html/plugins/bugsubmitter/images/bugsubmitter.png differ
diff --git a/gosa-core/html/plugins/departments/images/country.png b/gosa-core/html/plugins/departments/images/country.png
new file mode 100644
index 0000000..0dfece4
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/country.png differ
diff --git a/gosa-core/html/plugins/departments/images/dc.png b/gosa-core/html/plugins/departments/images/dc.png
new file mode 100644
index 0000000..4d13927
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/dc.png differ
diff --git a/gosa-core/html/plugins/departments/images/department.png b/gosa-core/html/plugins/departments/images/department.png
new file mode 100644
index 0000000..f7e8c35
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/department.png differ
diff --git a/gosa-core/html/plugins/departments/images/department_alias.png b/gosa-core/html/plugins/departments/images/department_alias.png
new file mode 100644
index 0000000..e002141
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/department_alias.png differ
diff --git a/gosa-core/html/plugins/departments/images/department_referal.png b/gosa-core/html/plugins/departments/images/department_referal.png
new file mode 100644
index 0000000..43c1362
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/department_referal.png differ
diff --git a/gosa-core/html/plugins/departments/images/domain.png b/gosa-core/html/plugins/departments/images/domain.png
new file mode 100644
index 0000000..5abd754
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/domain.png differ
diff --git a/gosa-core/html/plugins/departments/images/locality.png b/gosa-core/html/plugins/departments/images/locality.png
new file mode 100644
index 0000000..2eeff8e
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/locality.png differ
diff --git a/gosa-core/html/plugins/departments/images/organization.png b/gosa-core/html/plugins/departments/images/organization.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/organization.png differ
diff --git a/gosa-core/html/plugins/departments/images/plugin.png b/gosa-core/html/plugins/departments/images/plugin.png
new file mode 100644
index 0000000..d5ac437
Binary files /dev/null and b/gosa-core/html/plugins/departments/images/plugin.png differ
diff --git a/gosa-core/html/plugins/generic/images/head.png b/gosa-core/html/plugins/generic/images/head.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/html/plugins/generic/images/head.png differ
diff --git a/gosa-core/html/plugins/generic/images/house.png b/gosa-core/html/plugins/generic/images/house.png
new file mode 100644
index 0000000..3d26af5
Binary files /dev/null and b/gosa-core/html/plugins/generic/images/house.png differ
diff --git a/gosa-core/html/plugins/generic/images/plugin.png b/gosa-core/html/plugins/generic/images/plugin.png
new file mode 100644
index 0000000..6cc482b
Binary files /dev/null and b/gosa-core/html/plugins/generic/images/plugin.png differ
diff --git a/gosa-core/html/plugins/groups/images/asterisk.png b/gosa-core/html/plugins/groups/images/asterisk.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/asterisk.png differ
diff --git a/gosa-core/html/plugins/groups/images/environment.png b/gosa-core/html/plugins/groups/images/environment.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/environment.png differ
diff --git a/gosa-core/html/plugins/groups/images/groups.png b/gosa-core/html/plugins/groups/images/groups.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/groups.png differ
diff --git a/gosa-core/html/plugins/groups/images/mail.png b/gosa-core/html/plugins/groups/images/mail.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/mail.png differ
diff --git a/gosa-core/html/plugins/groups/images/menu.png b/gosa-core/html/plugins/groups/images/menu.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/menu.png differ
diff --git a/gosa-core/html/plugins/groups/images/new.png b/gosa-core/html/plugins/groups/images/new.png
new file mode 100644
index 0000000..95f99c0
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/new.png differ
diff --git a/gosa-core/html/plugins/groups/images/plugin.png b/gosa-core/html/plugins/groups/images/plugin.png
new file mode 100644
index 0000000..1ce41bd
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/plugin.png differ
diff --git a/gosa-core/html/plugins/groups/images/samba.png b/gosa-core/html/plugins/groups/images/samba.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/html/plugins/groups/images/samba.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/application.png b/gosa-core/html/plugins/ogroups/images/application.png
new file mode 100644
index 0000000..dd6de2f
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/application.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/asterisk.png b/gosa-core/html/plugins/ogroups/images/asterisk.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/asterisk.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/generic.png b/gosa-core/html/plugins/ogroups/images/generic.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/generic.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/list_ogroup.png b/gosa-core/html/plugins/ogroups/images/list_ogroup.png
new file mode 100644
index 0000000..e50de8b
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/list_ogroup.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/mail.png b/gosa-core/html/plugins/ogroups/images/mail.png
new file mode 100644
index 0000000..92d602c
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/mail.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/new.png b/gosa-core/html/plugins/ogroups/images/new.png
new file mode 100644
index 0000000..318715a
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/new.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/ogroup.png b/gosa-core/html/plugins/ogroups/images/ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/ogroup.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/phone.png b/gosa-core/html/plugins/ogroups/images/phone.png
new file mode 100644
index 0000000..b9bc82e
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/phone.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/plugin.png b/gosa-core/html/plugins/ogroups/images/plugin.png
new file mode 100644
index 0000000..eb720b7
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/plugin.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/printer.png b/gosa-core/html/plugins/ogroups/images/printer.png
new file mode 100644
index 0000000..1128748
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/printer.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/select_ogroup.png b/gosa-core/html/plugins/ogroups/images/select_ogroup.png
new file mode 100644
index 0000000..a4acb09
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/select_ogroup.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/select_terminal.png b/gosa-core/html/plugins/ogroups/images/select_terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/select_terminal.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/server.png b/gosa-core/html/plugins/ogroups/images/server.png
new file mode 100644
index 0000000..c7c34a1
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/server.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/terminal.png b/gosa-core/html/plugins/ogroups/images/terminal.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/terminal.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/winstation.png b/gosa-core/html/plugins/ogroups/images/winstation.png
new file mode 100644
index 0000000..ec747e5
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/winstation.png differ
diff --git a/gosa-core/html/plugins/ogroups/images/workstation.png b/gosa-core/html/plugins/ogroups/images/workstation.png
new file mode 100644
index 0000000..33df4ef
Binary files /dev/null and b/gosa-core/html/plugins/ogroups/images/workstation.png differ
diff --git a/gosa-core/html/plugins/password/images/plugin.png b/gosa-core/html/plugins/password/images/plugin.png
new file mode 100644
index 0000000..cfe82a9
Binary files /dev/null and b/gosa-core/html/plugins/password/images/plugin.png differ
diff --git a/gosa-core/html/plugins/posix/images/members.png b/gosa-core/html/plugins/posix/images/members.png
new file mode 100644
index 0000000..8f69e2b
Binary files /dev/null and b/gosa-core/html/plugins/posix/images/members.png differ
diff --git a/gosa-core/html/plugins/posix/images/plugin.png b/gosa-core/html/plugins/posix/images/plugin.png
new file mode 100644
index 0000000..0b06a53
Binary files /dev/null and b/gosa-core/html/plugins/posix/images/plugin.png differ
diff --git a/gosa-core/html/plugins/posix/images/terminal_small.png b/gosa-core/html/plugins/posix/images/terminal_small.png
new file mode 100644
index 0000000..3b82c19
Binary files /dev/null and b/gosa-core/html/plugins/posix/images/terminal_small.png differ
diff --git a/gosa-core/html/plugins/users/images/default.jpg b/gosa-core/html/plugins/users/images/default.jpg
new file mode 100644
index 0000000..c20b084
Binary files /dev/null and b/gosa-core/html/plugins/users/images/default.jpg differ
diff --git a/gosa-core/html/plugins/users/images/fax_small.png b/gosa-core/html/plugins/users/images/fax_small.png
new file mode 100644
index 0000000..bb676f8
Binary files /dev/null and b/gosa-core/html/plugins/users/images/fax_small.png differ
diff --git a/gosa-core/html/plugins/users/images/list_new_user.png b/gosa-core/html/plugins/users/images/list_new_user.png
new file mode 100644
index 0000000..34ee112
Binary files /dev/null and b/gosa-core/html/plugins/users/images/list_new_user.png differ
diff --git a/gosa-core/html/plugins/users/images/list_password.png b/gosa-core/html/plugins/users/images/list_password.png
new file mode 100644
index 0000000..ca93f0d
Binary files /dev/null and b/gosa-core/html/plugins/users/images/list_password.png differ
diff --git a/gosa-core/html/plugins/users/images/select_template.png b/gosa-core/html/plugins/users/images/select_template.png
new file mode 100644
index 0000000..7ef47b3
Binary files /dev/null and b/gosa-core/html/plugins/users/images/select_template.png differ
diff --git a/gosa-core/html/plugins/users/images/select_user.png b/gosa-core/html/plugins/users/images/select_user.png
new file mode 100644
index 0000000..83e5b31
Binary files /dev/null and b/gosa-core/html/plugins/users/images/select_user.png differ
diff --git a/gosa-core/html/plugins/users/images/small_environment.png b/gosa-core/html/plugins/users/images/small_environment.png
new file mode 100644
index 0000000..f4ef81c
Binary files /dev/null and b/gosa-core/html/plugins/users/images/small_environment.png differ
diff --git a/gosa-core/html/plugins/users/images/user.png b/gosa-core/html/plugins/users/images/user.png
new file mode 100644
index 0000000..4a5332b
Binary files /dev/null and b/gosa-core/html/plugins/users/images/user.png differ
diff --git a/gosa-core/html/plugins/users/images/wizard.png b/gosa-core/html/plugins/users/images/wizard.png
new file mode 100644
index 0000000..9d92603
Binary files /dev/null and b/gosa-core/html/plugins/users/images/wizard.png differ
diff --git a/gosa-core/html/progress.php b/gosa-core/html/progress.php
new file mode 100644
index 0000000..2564a6e
--- /dev/null
+++ b/gosa-core/html/progress.php
@@ -0,0 +1,102 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: progress.php 15664 2010-02-22 10:42:58Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+session_cache_limiter("private");
+
+/* Check for parameter completenes */
+if (!isset($_GET['x']) || !isset($_GET['y']) || !isset($_GET['p'])){
+  die ("Missing parameters!");
+}
+if (!is_numeric($_GET['x']) || !is_numeric($_GET['y'])){
+  die ("Parameters must be numeric!");
+}
+
+$p= (int)($_GET['p']);
+$x= (int)($_GET['x']);
+$y= (int)($_GET['y']);
+
+/* Check percentage */
+if ($p < 0){
+  $p= 0;
+} elseif ($p > 100){
+  $p= 100;
+}
+$p= intval ($p);
+
+/* Check dimensions */
+if ($x < 3 || $x > 1000){
+  $x= 180;
+}
+if ($y < 3 || $y > 700){
+  $y= 20;
+}
+
+if(!function_exists("imagecreate")){
+  syslog(LOG_ERR, "GOsa is missing the gd library, please install php5-gd to be able to see progress images.");
+  echo "Please install the php5-gd library, GOsa can't create images without it.";
+  exit();
+}else{
+
+  $x_matches= FALSE;
+  $y_matches= FALSE;
+  foreach (array(7,6,5,4,3,2,1,0) as $font){
+    $fx= ImageFontWidth($font) * strlen("$p%");
+    $fy= ImageFontHeight($font);
+
+    /* Look if font size matches image size */
+    if ($fx < ($x-2)){
+      $x_matches= TRUE;
+    }
+    if ($fy < ($y-2)){
+      $y_matches= TRUE;
+    }
+    if ($x_matches && $y_matches){
+      break;
+    }
+  }
+
+  /* Draw image in GD image stream */
+  $im = imagecreate ($x, $y)
+    or die ("Cannot Initialize new GD image stream");
+
+  /* Set colors */
+  $bg_color= imagecolorallocate ($im, 255, 255, 255);
+  $br_color= imagecolorallocate ($im, 0,0,0);
+  $fi_color= imagecolorallocate ($im, 0,0,180);
+  $tx_color= imagecolorallocate ($im, 240, 10, 90);
+
+  /* Draw progress bar */
+  imagerectangle ($im, 0, 0, $x-1, $y-1, $br_color);
+  imagefilledrectangle ($im, 1, 1, (($x - 2) * $p / 100),
+      $y - 2, $fi_color);
+
+  /* Is font to big for progress bar? */
+  if ($font != 0){
+    imagestring ($im, $font, ($x - $fx) / 2, ($y - $fy) / 2, "$p%", $tx_color);
+  }
+
+  /* Finally draw the image and remove context */
+  header ("Content-type: image/png");
+  imagepng ($im);
+  imagedestroy ($im);
+}
+?>
diff --git a/gosa-core/html/robots.txt b/gosa-core/html/robots.txt
new file mode 100644
index 0000000..1f53798
--- /dev/null
+++ b/gosa-core/html/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/gosa-core/html/setup.php b/gosa-core/html/setup.php
new file mode 100644
index 0000000..0cfcb93
--- /dev/null
+++ b/gosa-core/html/setup.php
@@ -0,0 +1,154 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: setup.php 16508 2010-03-15 08:28:01Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Get standard functions */
+require_once ("../include/php_setup.inc");
+require_once ("functions.inc");
+
+require_once("../setup/class_setup.inc");
+require_once("../setup/class_setupStep.inc");
+require_once("../setup/class_setupStep_Welcome.inc");
+require_once("../setup/class_setupStep_Language.inc");
+require_once("../setup/class_setupStep_Checks.inc");
+require_once("../setup/class_setupStep_License.inc");
+require_once("../setup/class_setupStep_Ldap.inc");
+require_once("../setup/class_setupStep_Config1.inc");
+require_once("../setup/class_setupStep_Config2.inc");
+require_once("../setup/class_setupStep_Config3.inc");
+require_once("../setup/class_setupStep_Schema.inc");
+require_once("../setup/class_setupStep_Migrate.inc");
+require_once("../setup/class_setupStep_Feedback.inc");
+require_once("../setup/class_setupStep_Finish.inc");
+
+
+/* Set header */
+header("Content-type: text/html; charset=UTF-8");
+
+/* Set cookie lifetime to one day (The parameter is in seconds ) */
+session_set_cookie_params(24*60*60);
+session_cache_expire(60*24);  // default is 180
+ini_set("session.gc_maxlifetime",24*60*60);
+
+/* Start session */
+session::start();
+session::global_set('DEBUGLEVEL',1);
+session::set('errorsAlreadyPosted',array());
+
+/* Attribute initialization, reset errors */
+session::set('errors',"");
+session::set('errorsAlreadyPosted',array());
+session::set('LastError',"");
+
+/* Set template compile directory */
+$smarty->compile_dir= '/var/spool/gosa/';
+
+/* Check for compile directory */
+if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))){
+  msg_dialog::display(_("Smarty"),sprintf(_("Directory '%s' specified as compile directory is not accessible!"),
+    $smarty->compile_dir),FATAL_ERROR_DIALOG);
+  exit();
+}
+
+/* Get posted language */
+if(!session::global_is_set('lang')){
+  session::global_set('lang',get_browser_language());
+}
+if(isset($_POST['lang_selected'])){
+  if($_POST['lang_selected'] != ""){
+    session::global_set('lang',$_POST['lang_selected']);
+  }else{
+    session::global_set('lang',get_browser_language());
+  }
+}
+
+/* Check for js */
+if (!isset($_GET['js']) && !session::global_is_set('js')){
+  echo '<script language="JavaScript" type="text/javascript">';
+  echo '  location = "setup.php?js=true";';
+  echo '</script>';
+
+  session::global_set('js',FALSE);
+} elseif(isset($_GET['js'])) {
+  session::global_set('js',TRUE);
+}
+
+
+$lang = session::global_get('lang');
+/* Append .UTF-8 to language string if necessary */
+if(!preg_match("/utf(-)8$/i",$lang)){
+  $lang .= ".UTF-8";
+}
+putenv("LANGUAGE=");
+putenv("LANG=$lang");
+setlocale(LC_ALL, $lang);
+$GLOBALS['t_language']= $lang;
+$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
+
+/* Set the text domain as 'messages' */
+$domain = 'messages';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+
+
+/* Call setup */
+$display = "";
+require_once("../setup/main.inc");
+
+$smarty->assign("date", date("l, dS F Y H:i:s O"));
+$header= "<!-- headers.tpl-->".$smarty->fetch(get_template_path('setup_headers.tpl'));
+
+
+
+/* Set focus to the error button if we've an error message */
+$focus= "";
+if (session::is_set('errors') && session::get('errors') != ""){
+  $focus= '<script language="JavaScript" type="text/javascript">';
+  $focus.= 'document.forms[0].error_accept.focus();';
+  $focus.= '</script>';
+}
+
+$focus= '<script language="JavaScript" type="text/javascript">';
+$focus.= 'next_msg_dialog();';
+$focus.= '</script>';
+
+/* show web frontend */
+$setup = session::global_get('setup');
+$smarty->assign("contents"  , $display);
+$smarty->assign("navigation", $setup->get_navigation_html());
+$smarty->assign("header", $setup->get_header_html());
+$smarty->assign("bottom", $focus.$setup->get_bottom_html());
+$smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
+
+if ($error_collector != ""){
+  $smarty->assign("php_errors", preg_replace("/%BUGBODY%/",$error_collector_mailto,$error_collector)."</div>");
+} else {
+  $smarty->assign("php_errors", "");
+}
+if(function_exists("get_gosa_version")){
+  $smarty->assign("version",get_gosa_version());
+}else{
+  $smarty->assign("version","");
+}
+
+echo $header.$smarty->fetch("../setup/setup_frame.tpl");
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/html/themes/default/images/accountexpired.png b/gosa-core/html/themes/default/images/accountexpired.png
new file mode 100644
index 0000000..c2b1a1f
Binary files /dev/null and b/gosa-core/html/themes/default/images/accountexpired.png differ
diff --git a/gosa-core/html/themes/default/images/border.png b/gosa-core/html/themes/default/images/border.png
new file mode 100644
index 0000000..a287c2b
Binary files /dev/null and b/gosa-core/html/themes/default/images/border.png differ
diff --git a/gosa-core/html/themes/default/images/go_logo.png b/gosa-core/html/themes/default/images/go_logo.png
new file mode 100644
index 0000000..913201c
Binary files /dev/null and b/gosa-core/html/themes/default/images/go_logo.png differ
diff --git a/gosa-core/html/themes/default/images/gohome.png b/gosa-core/html/themes/default/images/gohome.png
new file mode 100644
index 0000000..37a5231
Binary files /dev/null and b/gosa-core/html/themes/default/images/gohome.png differ
diff --git a/gosa-core/html/themes/default/images/help.png b/gosa-core/html/themes/default/images/help.png
new file mode 100644
index 0000000..644347b
Binary files /dev/null and b/gosa-core/html/themes/default/images/help.png differ
diff --git a/gosa-core/html/themes/default/images/stop.png b/gosa-core/html/themes/default/images/stop.png
new file mode 100644
index 0000000..73b27d9
Binary files /dev/null and b/gosa-core/html/themes/default/images/stop.png differ
diff --git a/gosa-core/html/themes/default/password-style.css b/gosa-core/html/themes/default/password-style.css
new file mode 100644
index 0000000..6d26305
--- /dev/null
+++ b/gosa-core/html/themes/default/password-style.css
@@ -0,0 +1,56 @@
+body {
+margin-left:0;
+margin-right:0;
+margin-top:0;
+margin-bottom:0;
+background-color:#FFF;
+color:#00008F;
+font-family:arial,helvetica,sans-serif;
+font-size:12px;
+}
+
+h1 {
+margin:0;
+background-color:#A9FBA6;
+border-bottom:1px solid #AAA;
+padding-top:.2em;
+padding-bottom:.2em;
+}
+
+img.center {
+text-align:center;
+vertical-align:middle;
+}
+
+h1.headline {
+font-size:2em;
+}
+
+div.success {
+padding:1em;
+}
+
+p.infotext {
+padding:.5em;
+}
+
+table {
+border-spacing:.5em;
+}
+
+div.change {
+margin-right:.5em;
+text-align:right;
+}
+
+div.ruler {
+border-top:1px solid #AAA;
+width:100%;
+height:1px;
+margin-top:.5em;
+margin-bottom:.5em;
+}
+
+table.iesucks {
+width:60%;
+}
\ No newline at end of file
diff --git a/gosa-core/html/themes/default/printer.css b/gosa-core/html/themes/default/printer.css
new file mode 100644
index 0000000..19e6b5b
--- /dev/null
+++ b/gosa-core/html/themes/default/printer.css
@@ -0,0 +1,28 @@
+/* Disable header and menu block, for printers. */
+td#menucell {
+display:none;
+}
+
+div.plugtop {
+display:none;
+}
+
+p.plugbottom {
+display:none;
+}
+
+table.framework {
+width:100%;
+}
+
+div.setup_header {
+display:none;
+}
+
+div.setup_menu {
+display:none;
+}
+
+div.setup_bottom {
+display:none;
+}
\ No newline at end of file
diff --git a/gosa-core/html/themes/default/style.css b/gosa-core/html/themes/default/style.css
new file mode 100644
index 0000000..8bf92d7
--- /dev/null
+++ b/gosa-core/html/themes/default/style.css
@@ -0,0 +1,2013 @@
+body {
+margin-left:0;
+margin-right:0;
+margin-top:0;
+margin-bottom:0;
+background-color:#FFF;
+color:#00008F;
+font-family:arial,helvetica,sans-serif;
+font-size:12px;
+}
+
+h1 {
+font-size:14px;
+color:#00378a;
+}
+
+h2,h3,h4,h5,h6 {
+font-size:13px;
+color:#00378a;
+}
+
+td,p,b {
+font-size:12px;
+}
+
+tr.rowxp {
+}
+
+tr.rowxp:hover {
+background-color:#D8D8D8;
+}
+
+td.listheader {
+background:#F0F0F0;
+font-weight:bold;
+border-right:1px solid #AAA;
+border-bottom:1px solid #AAA;
+padding:3px;
+height:22px;
+}
+
+td#menucell {
+border:1px solid #AAA;
+}
+
+td.listfooter {
+background:#E5E5E5;
+border-top:1px solid silver;
+padding:3px;
+height:16px;
+}
+
+td.scrollhead {
+vertical-align:top;
+padding:0;
+}
+
+td.scrollbody {
+vertical-align:top;
+padding:0;
+}
+
+div.scrollbody {
+background-color:#FFF;
+overflow:auto;
+text-align:left;
+}
+
+tr.rowxp0 {
+background:#FFF;
+}
+
+tr.rowxp0:hover {
+background-color:#D8D8D8;
+}
+
+td.list0 {
+background:transparent;
+border-right:1px solid #B0B0B0;
+padding:3px;
+height:22px;
+}
+
+td.list0#icon {
+width:20px;
+text-align:center;
+}
+
+td.list0#entry {
+}
+
+td.list0#info {
+width:200px;
+}
+
+td.list0#property {
+width:50px;
+}
+
+td.list0#properties7 {
+width:136px;
+}
+
+td.list0#properties8 {
+width:152px;
+}
+
+td.list0#properties9 {
+width:168px;
+}
+
+td.list0#properties10 {
+width:186px;
+}
+
+td.list0#actions {
+width:52px;
+border-right:0;
+text-align:right;
+}
+
+tr.rowxp1 {
+background:#F0F0F0;
+}
+
+tr.rowxp1:hover {
+background-color:#D8D8D8;
+}
+
+td.list1 {
+background:transparent;
+border-right:1px solid silver;
+padding:3px;
+height:22px;
+}
+
+td.list1nohighlight {
+background:#FFF;
+border-right:1px solid silver;
+padding:3px;
+height:22px;
+}
+
+td.list1nohighlightdisabled {
+background-color:#DFDBD7;
+border-right:1px solid silver;
+padding:3px;
+height:22px;
+}
+
+td.list1#fill {
+height:100%;
+}
+
+td.list1#icon {
+width:0;
+text-align:center;
+}
+
+td.list1#entry {
+}
+
+td.list1#info {
+width:200px;
+}
+
+td.list1#property {
+width:50px;
+}
+
+td.list1#properties7 {
+width:136px;
+}
+
+td.list1#properties8 {
+width:152px;
+}
+
+td.list1#properties9 {
+width:168px;
+}
+
+td.list1#properties10 {
+width:186px;
+}
+
+td.list1#actions {
+width:52px;
+border-right:0;
+text-align:right;
+}
+
+/* Title bar */
+a.maintitlebar,div.maintitlebar {
+font-family:arial,helvetica,sans-serif;
+text-decoration:none;
+color:#00348B;
+font-size:12px;
+text-align:center;
+vertical-align:middle;
+cursor:pointer;
+}
+
+a.maintitlebar:hover {
+text-decoration:none;
+background-color:#B0D3A0;
+cursor:pointer;
+}
+
+p.menuheader {
+font-family:arial,helvetica,sans-serif;
+color:#00008F;
+text-decoration:none;
+border-bottom:1px solid #AAA;
+font-weight:bold;
+background-color:#F0F0F0;
+font-size:12px;
+text-align:center;
+vertical-align:middle;
+padding:5px;
+margin-top:0;
+margin-bottom:3px;
+}
+
+p.menuitem {
+font-family:arial,helvetica,sans-serif;
+color:#00008F;
+text-decoration:none;
+font-weight:normal;
+font-size:12px;
+text-align:left;
+cursor:pointer;
+padding-left:15px;
+padding-top:2px;
+padding-bottom:2px;
+vertical-align:middle;
+margin:2px;
+background-color:#FFF;
+padding-right:5px;
+}
+
+p.menuitem:hover {
+background-color:#F0F0F0;
+cursor:pointer;
+}
+
+table.menuitem {
+width:100%;
+margin-top:10px;
+margin-bottom:10px;
+margin-right:10px;
+background-color:#f0f0f0;
+}
+
+table.menuitem:hover {
+background-color:#F0F0F0;
+cursor:pointer;
+}
+
+td.phonelist:hover {
+background-color:#d2d2d2;
+}
+
+td.phonelist {
+border-right:1px solid #B0B0B0;
+}
+
+h1.menuheader {
+border-style:solid;
+border-color:#AAA;
+width:100%;
+border-top-width:1px;
+border-bottom-width:0;
+border-left-width:0;
+border-right-width:0;
+padding-top:10px;
+padding-bottom:0;
+}
+
+div.copynotice {
+border-style:solid;
+border-color:#AAA;
+width:100%;
+border-top-width:1px;
+border-bottom-width:0;
+border-left-width:0;
+border-right-width:0;
+padding-top:3px;
+padding-bottom:0;
+text-align:right;
+font-family:arial,helvetica,sans-serif;
+font-size:10px;
+}
+
+a:link {
+text-decoration:none;
+color:#00008f;
+}
+
+a:visited {
+text-decoration:none;
+color:#00008f;
+}
+
+a.menuitem:link {
+text-decoration:none;
+color:#00008f;
+}
+
+a.menuitem:visited {
+text-decoration:none;
+color:#00008f;
+}
+
+a.menuitem:hover {
+text-decoration:none;
+}
+
+td.iconmenu {
+cursor:pointer;
+}
+
+a.iconmenu:link {
+text-decoration:none;
+color:#00008f;
+}
+
+td.iconmenu:hover {
+background-color:#F0F0F0;
+}
+
+a.iconmenu:visited {
+text-decoration:none;
+color:#00008f;
+}
+
+a.iconmenu:hover {
+text-decoration:none;
+}
+
+h1.plugtop {
+width:100%;
+padding-bottom:6px;
+text-align:left;
+font-family:arial,helvetica,sans-serif;
+font-size:24px;
+}
+
+div.plugtop {
+width:100%;
+border-bottom:1px solid #B0B0B0;
+padding-top:0;
+padding-bottom:6px;
+margin-bottom:0;
+text-align:left;
+vertical-align:middle;
+background-color:#F0F0F0;
+font-family:arial,helvetica,sans-serif;
+font-weight:bold;
+font-size:24px;
+}
+
+div.pluginfo {
+border-bottom:1px solid #AAA;
+width:100%;
+padding-top:2px;
+padding-bottom:2px;
+margin-bottom:10px;
+text-align:right;
+vertical-align:middle;
+background-color:#F8F8F8;
+font-family:arial,helvetica,sans-serif;
+font-size:11px;
+}
+
+p.seperator {
+border-style:solid;
+border-color:#AAA;
+width:100%;
+border-top-width:0;
+border-bottom-width:1px;
+border-left-width:0;
+border-right-width:0;
+padding-top:0;
+padding-bottom:0;
+margin-top:0;
+margin-bottom:0;
+text-align:left;
+}
+
+p.plugbottom {
+border-style:solid;
+border-color:#a0a0a0;
+width:100%;
+border-top-width:1px;
+border-bottom-width:0;
+border-left-width:0;
+border-right-width:0;
+padding-top:10px;
+padding-bottom:0;
+text-align:right;
+font-family:arial,helvetica,sans-serif;
+}
+
+font.must {
+color:red;
+font-family:arial,helvetica,sans-serif;
+}
+
+div.tab_active {
+text-align:center;
+background-color:#f8f8f8;
+border-style:solid;
+border-color:#999;
+border-top-width:1px;
+border-bottom-width:0;
+border-left-width:1px;
+border-right-width:1px;
+margin-top:0;
+padding-top:2px;
+padding-bottom:8px;
+padding-left:8px;
+padding-right:8px;
+}
+
+div#notify {
+background-image:url(../../images/lists/on.png);
+background-repeat:no-repeat;
+background-position:1px 1px;
+padding-left:18px;
+}
+
+div.tab_left {
+text-align:center;
+background-color:#D0D0D0;
+border-style:solid;
+border-color:#999;
+border-top-width:1px;
+border-bottom-width:1px;
+border-left-width:1px;
+border-right-width:0;
+margin-top:5px;
+padding-top:1px;
+padding-bottom:5px;
+padding-left:8px;
+padding-right:8px;
+}
+
+div.tab_right {
+text-align:center;
+background-color:#D0D0D0;
+border-style:solid;
+border-color:#999;
+border-top-width:1px;
+border-bottom-width:1px;
+border-left-width:0;
+border-right-width:1px;
+margin-top:5px;
+padding-top:1px;
+padding-left:8px;
+padding-right:8px;
+padding-bottom:5px;
+}
+
+div.tab_near_active {
+text-align:center;
+background-color:#D0D0D0;
+border-style:solid;
+border-color:#999;
+border-top-width:1px;
+border-bottom-width:1px;
+border-left-width:1px;
+border-right-width:1px;
+margin-top:5px;
+padding-top:1px;
+padding-left:8px;
+padding-right:8px;
+padding-bottom:5px;
+}
+
+div.tab_border {
+width:100%;
+border-style:solid;
+border-color:#999;
+border-top-width:0;
+border-bottom-width:1px;
+border-left-width:0;
+border-right-width:0;
+}
+
+a.tab_active,input.tab_active {
+border:0;
+margin:0;
+height:22px;
+font-family:arial,helvetica,sans-serif;
+text-decoration:none;
+color:#00008F;
+font-size:13px;
+font-weight:bold;
+}
+
+a.tab_right,input.tab_right {
+height:20px;
+border:0;
+margin:0;
+font-family:arial,helvetica,sans-serif;
+text-decoration:none;
+color:#00008F;
+font-size:13px;
+font-weight:bold;
+}
+
+a.tab_left,input.tab_left {
+height:20px;
+border:0;
+margin:0;
+font-family:arial,helvetica,sans-serif;
+text-decoration:none;
+color:#00008F;
+font-size:13px;
+font-weight:bold;
+}
+
+a.tab_near_active,input.tab_near_active {
+height:20px;
+border:0;
+margin:0;
+font-family:arial,helvetica,sans-serif;
+background-color:#D0D0D0;
+text-decoration:none;
+color:#00008F;
+font-size:13px;
+font-weight:bold;
+}
+
+img.center {
+text-align:center;
+vertical-align:middle;
+}
+
+input.center {
+text-align:left;
+vertical-align:middle;
+}
+
+select.center {
+text-align:left;
+vertical-align:middle;
+}
+
+a.center {
+text-align:left;
+vertical-align:middle;
+}
+
+/********************** Template migration *********************/
+/* Login screen */
+div.gosaLoginSpacer {
+height:100px;
+}
+
+table.gosaLoginMask {
+background-color:#8b898b;
+text-align:center;
+border:0;
+}
+
+td.gosaLoginBack {
+width:606px;
+height:406px;
+background:url(images/login.png);
+vertical-align:top;
+}
+
+div.gosaLoginBack {
+padding-top:35px;
+margin-left:100px;
+margin-right:50px;
+padding-bottom:0;
+vertical-align:top;
+}
+
+p.gosaLoginHeader {
+text-align:center;
+font-size:14px;
+font-weight:bold;
+margin-bottom:15px;
+}
+
+p.gosaLoginWarning {
+text-align:center;
+color:red;
+font-weight:bold;
+font-size:12px;
+}
+
+/* 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:100%;
+border:0;
+border-spacing:0;
+padding:0;
+margin-left:3px;
+vertical-align:top;
+}
+
+table.maintab {
+width:100%;
+height:100%;
+border:0;
+border-spacing:0;
+padding:0;
+margin:0;
+background-color:#A9FBA6;
+vertical-align:top;
+}
+
+input {
+font-size:12px;
+}
+
+input[type=text] {
+border:1px solid #AAA;
+padding:2px;
+}
+
+input[type=text]:focus,input[type=password]:focus {
+border:1px solid #333;
+}
+
+input[type=password] {
+border:1px solid #AAA;
+padding:2px;
+}
+
+input:focus {
+font-size:12px;
+}
+
+select {
+font-size:12px;
+}
+
+textarea {
+border:1px solid #AAA;
+font-size:12px;
+}
+
+textarea:focus {
+font-size:12px;
+}
+
+div.contentboxh {
+background-color:#F0F0F0;
+border:1px solid #AAA;
+border-bottom-width:0;
+height:26px;
+vertical-align:middle;
+width:100%;
+}
+
+p.contentboxh {
+margin:2px;
+font-family:arial,helvetica,sans-serif;
+font-size:16px;
+font-weight:bold;
+vertical-align:middle;
+}
+
+div.contentboxb {
+border:1px solid #b0b0b0;
+border-top-width:0;
+vertical-align:middle;
+width:100%;
+}
+
+p.contentboxb {
+padding-bottom:0;
+margin:0;
+border:4px solid #f8f8f8;
+vertical-align:middle;
+}
+
+a.alphaselect:hover {
+text-decoration:none;
+background-color:#a0a0a0;
+color:#FFF;
+}
+
+table.check {
+background-color:#e1e1f1;
+color:#000;
+border:1px solid #AAA;
+width:95%;
+margin-left:20px;
+}
+
+td.check {
+border-right:1px solid #AAA;
+}
+
+option.select {
+background-repeat:no-repeat;
+background-position:0 top;
+border:0;
+padding-left:20px;
+padding-bottom:1px;
+height:18px;
+}
+
+input.menubar {
+text-decoration:none;
+height:19px;
+padding:0;
+width:100%;
+}
+
+td.tbhead {
+border-right:1px solid #B0B0B0;
+border-bottom:1px solid #B0B0B0;
+}
+
+td.tbrhead {
+border-bottom:1px solid #B0B0B0;
+}
+
+/*********
+ * Setup
+ *********/
+/* The body style */
+body.setup_body {
+margin-left:0;
+margin-right:0;
+margin-top:0;
+margin-bottom:0;
+color:#00008F;
+font-family:arial,helvetica,sans-serif;
+font-size:12px;
+background-color:#FFF;
+background-image:none;
+}
+
+/* The setup complete setup dialog */
+div.setup_dialog {
+background-color:#FFF;
+text-align:left;
+}
+
+/* Header col */
+div.setup_header {
+background-color:#A9FBA6;
+height:30px;
+padding:4px 5px 2px;
+border-bottom:1px solid #999;
+}
+
+div.setup_menu {
+background-color:#F8F8F8;
+padding:4px 5px;
+border-bottom:1px solid #B0B0B0;
+}
+
+/* Setup content header container */
+div.setup_plug_header_container {
+}
+
+/* Setup content container */
+div.setup_contents_container {
+}
+
+/* Setup footer */
+div.setup_bottom {
+clear:left;
+background-color:#DDD;
+border-top:solid 1px red;
+}
+
+/* Header col */
+div.setup_plug_header {
+padding:10px;
+border-bottom:solid 1px #D0D0D0;
+background-color:#E0E0F0;
+border:10px solid #FFF;
+}
+
+/* Content col */
+div.setup_contents {
+margin-right:2px;
+background-color:#FFF;
+width:80%;
+margin-left:20%;
+border:1px solid #AAA;
+padding:2px;
+}
+
+/* default.*/
+div.default {
+padding:2px;
+vertical-align:middle;
+}
+
+/* Navigation col */
+div.setup_navigation {
+width:19%;
+background-color:#FFF;
+padding-left:2px;
+padding-right:2px;
+border:1px solid #AAA;
+float:left;
+}
+
+/* Navigation title */
+div.setup_navigation_title {
+font-size:1.2em;
+font-weight:bold;
+text-decoration:none;
+width:100%;
+padding-top:8px;
+padding-bottom:8px;
+border-top:1px solid #AAA;
+}
+
+/* The box used for each setup step */
+a.navigation_element,div.navigation_element {
+text-decoration:none;
+padding-top:8px;
+padding-bottom:8px;
+border-top:1px solid #AAA;
+width:100%;
+}
+
+/* The box used for each setup step */
+a.navigation_element_active,div.navigation_element_active {
+text-decoration:none;
+width:100%;
+padding-top:8px;
+padding-bottom:8px;
+border-top:1px solid #AAA;
+background-color:#F0F0F0;
+}
+
+/* An enabled setup step will use this style in navigation*/
+div.navigation_title_active {
+font-size:1.2em;
+background-color:#F0F0F0;
+font-weight:bold;
+cursor:default;
+padding:3px;
+}
+
+/* Disabled setup steps */
+div.navigation_title_disabled {
+font-size:1.2em;
+font-weight:bold;
+padding:3px;
+cursor:default;
+text-decoration:none;
+color:#AAA;
+}
+
+/* Disabled setup steps */
+div.navigation_title_inactive {
+font-size:1.2em;
+font-weight:bold;
+text-decoration:none;
+cursor:pointer;
+padding:3px;
+}
+
+/* The style for the info of an active setup */
+div.navigation_info {
+font-size:1em;
+color:#000;
+padding:4px 4px 3px 23px;
+margin:0;
+cursor:default;
+}
+
+/*
+	Setup step 2 styles
+*/
+/* used to hide display info div */
+div.solution_visible {
+display:block;
+width:100%;
+text-align:left;
+}
+
+/* Container headline */
+h2.step2_container_title {
+background-color:#F0F0F0;
+border:solid 1px #CCC;
+width:100%;
+padding:3px;
+}
+
+/* Container for name and status */
+div.step2_entry_container {
+padding:3px;
+width:99%;
+cursor:default;
+}
+
+/* Container for name and status, when status is failed */
+div.step2_entry_container_info {
+padding:3px;
+border:1px solid #AAA;
+width:99%;
+cursor:default;
+}
+
+/* Text shown for each entry */
+div.step2_entry_name {
+float:left;
+padding-bottom:4px;
+vertical-align:middle;
+}
+
+/* Status container */
+div.step2_entry_status {
+float:none;
+text-align:right;
+padding-bottom:4px;
+vertical-align:middle;
+}
+
+/* Status failed */
+div.step2_failed {
+color:red;
+padding-bottom:4px;
+}
+
+/* Status failed but not necessary for setup */
+div.step2_warning {
+color:orange;
+padding-bottom:4px;
+}
+
+/* Status successful */
+div.step2_successful {
+color:green;
+}
+
+/* Text used in info div. */
+div.step2_failed_text {
+background-repeat:no-repeat;
+padding-left:25px;
+}
+
+/* Text used in info div. On warnings */
+div.step2_warning_text {
+background-repeat:no-repeat;
+padding-left:25px;
+}
+
+/*
+	Setup step 4 styles
+*/
+li.step4_name,div.step4_name {
+float:left;
+width:33%;
+height:2em;
+}
+
+li.step4_value,div.step4_value {
+float:left;
+width:50%;
+height:2em;
+}
+
+ul.step4_container,div.step4_container {
+height:2em;
+margin-top:2px;
+margin-left:2px;
+margin-right:2px;
+}
+
+/************************
+ * Sieve
+ *  The following styles are
+ *  used to display the sieve
+ *  management user interface
+ ************************/
+/* Editing dialog styles
+ */
+table.sieve_default_table {
+width:100%;
+margin:0;
+border-spacing:0;
+padding:0;
+}
+
+/* Editing surface */
+table.editing_surface {
+width:100%;
+margin:0;
+padding:0;
+}
+
+/* Editing surface menu */
+td.editing_surface_menu {
+background-color:#EEE;
+border:1px solid #BBB;
+padding:5px;
+}
+
+/* Editing surface content */
+td.editing_surface_content {
+background-color:#FFF;
+margin:0;
+padding:0;
+}
+
+/* Error message will be displayed as follows */
+div.sieve_error_msgs {
+background-color:#ff8d00;
+color:#000;
+padding:5px;
+background-image:url(images/warning.png);
+background-repeat:no-repeat;
+font-weight:bold;
+}
+
+/* Source editing area */
+textarea.editing_source {
+width:100%;
+height:330px;
+}
+
+/*************
+ * Object container
+ *************/
+/* The container itself */
+table.object_container_container {
+width:100%;
+border-spacing:0;
+background-color:#F8F8F8;
+border:solid 1px #AAA;
+}
+
+/* Container cell top left */
+td.object_container_cell_top_left {
+background-color:#EEE;
+text-align:center;
+}
+
+/* Container cell top right */
+td.object_container_cell_top_right {
+background-color:#EEE;
+text-align:left;
+padding:2px;
+border-bottom:solid 1px #AAA;
+}
+
+/* Container cell bottom left */
+td.object_container_cell_bottom_left {
+width:5px;
+background-color:#EEE;
+text-align:center;
+border-right:solid 1px #AAA;
+}
+
+/*************
+ * Sieve comment
+ *************/
+/* Container */
+table.sieve_comment_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+textarea.sieve_comment_area {
+width:100%;
+height:80px;
+}
+
+/*************
+ * Sieve require
+ *************/
+/* Container */
+table.sieve_require_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+input.sieve_require_input {
+width:100%;
+border-spacing:0;
+}
+
+/*************
+ * Sieve fileinto
+ *************/
+/* Container */
+table.sieve_fileinto_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+input.sieve_fileinto_input {
+width:300px;
+}
+
+select.sieve_fileinto_input {
+width:300px;
+}
+
+/*************
+ * Sieve keep
+ *************/
+/* Container */
+table.sieve_keep_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_keep_input {
+padding-left:20px;
+}
+
+/*************
+ * Sieve discard
+ *************/
+/* Container */
+table.sieve_discard_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_discard_input {
+padding-left:20px;
+}
+
+/*************
+ * Sieve redirect
+ *************/
+/* Container */
+table.sieve_redirect_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_redirect_input {
+padding-left:20px;
+}
+
+textarea.sieve_redirect_input {
+width:100%;
+height:30px;
+}
+
+/*************
+ * Sieve reject
+ *************/
+/* Container */
+table.sieve_reject_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_reject_input {
+padding-left:20px;
+}
+
+textarea.sieve_reject_input {
+width:100%;
+height:55px;
+}
+
+/*************
+ * Sieve end
+ *************/
+/* Container */
+table.sieve_stop_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_stop_input {
+padding-left:20px;
+}
+
+/*************
+ * Sieve vacation
+ *************/
+/* Container */
+table.sieve_vacation_container {
+margin:0;
+padding:0;
+border-spacing:0;
+width:100%;
+background-color:#F8F8F8;
+}
+
+/* Editing area */
+td.sieve_vacation_input {
+padding-left:20px;
+}
+
+/* Editing area */
+textarea.sieve_vacation_input {
+width:100%;
+height:55px;
+}
+
+/*************
+ * Sieve allof
+ *************/
+table.sieve_allof_container {
+width:100%;
+border-spacing:0;
+margin:0;
+padding:0;
+border:solid 1px #999;
+}
+
+/* Container */
+td.sieve_allof_left {
+text-align:center;
+vertical-align:middle;
+width:35px;
+background-color:#CCC;
+border:solid 0 #EEE;
+}
+
+/* Container */
+td.sieve_allof_right {
+background-color:#BDBDBD;
+}
+
+/*************
+ * Sieve anyof
+ *************/
+table.sieve_anyof_container {
+width:100%;
+margin:0;
+border-spacing:0;
+padding:0;
+border:solid 2px #CCC;
+}
+
+/* Container */
+td.sieve_anyof_left {
+text-align:center;
+vertical-align:middle;
+width:35px;
+background-color:#CCC;
+border:solid 0 #EEE;
+}
+
+/* Container */
+td.sieve_anyof_right {
+background-color:#BDBDBD;
+border:solid 1px #AAA;
+}
+
+/*************
+ * Sieve Test Cases
+ *************/
+table.sieve_test_container {
+width:100%;
+background-color:#F8F8F8;
+margin:0;
+border-spacing:0;
+padding:0;
+border:solid 1px #AAA;
+}
+
+table.sieve_test_case {
+width:100%;
+margin:0;
+border-spacing:0;
+padding:0;
+}
+
+td.container_,div.container_ {
+padding-left:2px;
+border-left:solid 2px #F8F8F8;
+}
+
+td.container_:hover,div.container_:hover {
+border-left:solid 2px #000;
+display:block;
+}
+
+/************
+ * PHP Layers Menu - used in MultiSelectDialog -> ManagementLists
+ ************/
+.khorbar {
+color:#000;
+background-color:#FFF;
+border:1px outset #666663;
+padding:2px;
+}
+
+.khorbaritem {
+float:left;
+white-space:nowrap;
+font-family:bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
+font-size:12px;
+}
+
+.khorbaritem a {
+display:block;
+text-decoration:none;
+}
+
+.khorbaritem a:link {
+color:#000;
+text-decoration:none;
+}
+
+.khorbaritem a:visited {
+color:#000;
+text-decoration:none;
+}
+
+.khorbaritem a:hover {
+color:#000;
+background-color:#FFF;
+text-decoration:none;
+}
+
+.khorbaritem a:active {
+color:red;
+text-decoration:none;
+}
+
+.kverbar {
+color:#000;
+border:1px outset #666663;
+}
+
+.ksubmenu {
+position:absolute;
+left:0;
+top:0;
+visibility:hidden;
+}
+
+.submenu {
+position:absolute;
+left:0;
+top:0;
+visibility:hidden;
+}
+
+.subframe {
+position:relative;
+display:block;
+background-color:#FFF;
+border:1px outset #666663;
+padding:2px;
+}
+
+.item {
+text-align:left;
+white-space:nowrap;
+font-family:bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
+font-size:12px;
+padding-top:2px;
+}
+
+.item div {
+position:relative;
+display:block;
+text-decoration:none;
+}
+
+.item :hover {
+color:#FFF;
+background-color:#4b6983;
+text-decoration:none;
+}
+
+.ksubframe {
+position:relative;
+display:block;
+background-color:#f9f9f0;
+}
+
+.kitem {
+text-align:left;
+white-space:nowrap;
+font-family:bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
+font-size:12px;
+}
+
+.separator {
+background-color:red;
+border-top:1px solid #c6c6bf;
+border-bottom:1px solid #FFF;
+margin:2px 5px;
+/* top right bottom left */
+height:0;
+font-size:1px;
+line-height:0;
+}
+
+div.errorMsgTitle {
+width:100%;
+font-size:1.4em;
+padding-bottom:.3em;
+padding-top:.3em;
+font-weight:bold;
+background-color:#F0F0F0;
+}
+
+div.errorMsgDialog {
+width:60%;
+background-color:#FFF;
+border:4px solid red;
+z-index:150;
+display:none;
+position:absolute;
+}
+
+div.infoMsgDialog {
+width:60%;
+background-color:#FFF;
+border:2px solid #000;
+z-index:150;
+display:none;
+position:absolute;
+}
+
+div.autocomplete {
+position:absolute;
+background-color:#FFF;
+border:1px solid #AAA;
+margin:0;
+padding:0;
+z-index:600;
+overflow:hidden;
+word-wrap:break-word;
+}
+
+div.autocomplete ul {
+list-style-type:none;
+margin:0;
+padding:0;
+}
+
+div.autocomplete ul li {
+list-style-type:none;
+display:block;
+margin:0;
+padding:2px;
+padding-left:4px;
+cursor:pointer;
+}
+
+div.autocomplete li:hover {
+background-color:#F0F0F0;
+}
+
+div.autocomplete ul li.selected {
+background-color:#F0F0F0;
+}
+
+#pulldown {
+background:#FFF;
+height:23px;
+border-top:1px #D0D0D0 solid;
+border-left:1px #D0D0D0 solid;
+border-bottom:1px gray solid;
+border-right:1px gray solid;
+}
+
+#pulldown ul {
+display:block;
+margin:0;
+padding:0;
+line-height:1em;
+list-style:none;
+z-index:90;
+}
+
+#pulldown ul li {
+float:left;
+margin:0 3px 0 0;
+padding:0;
+font-size:12px;
+line-height:1 5em;
+list-style-type:none;
+}
+
+#pulldown ul li a {
+float:left;
+display:block;
+width:auto;
+font-weight:normal;
+background:transparent;
+text-decoration:none;
+margin:0;
+padding:5px;
+}
+
+#pulldown ul li a:hover {
+text-decoration:none;
+}
+
+#pulldown ul li.sep {
+color:#AAA;
+padding:.8em 0 .5em;
+}
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+#pulldown ul li a {
+float:none;
+}
+
+/* End IE5-Mac hack */
+#pulldown ul.level2,#pulldown ul.level3 {
+position:absolute;
+top:0;
+left:0;
+visibility:hidden;
+border-top:1px #D0D0D0 solid;
+border-left:1px #D0D0D0 solid;
+border-bottom:1px gray solid;
+border-right:1px gray solid;
+background:#FFF;
+}
+
+#pulldown ul.level2 li,#pulldown ul.level3 li {
+border-bottom:1px solid #fff;
+float:none;
+margin:0;
+padding:0;
+width:200px;
+}
+
+#pulldown ul.level2 li a,#pulldown ul.level3 li a {
+padding:5px 9px 5px 5px;
+}
+
+#pulldown ul.level2 li a:hover,#pulldown ul.level3 li a:hover {
+font-weight:normal;
+background-color:#418DD4;
+background-image:none;
+}
+
+input[disabled] {
+color:#888;
+background-color:#DDD;
+}
+
+textarea[disabled] {
+color:#000;
+background-color:#DDD;
+}
+
+select[disabled] {
+color:#000;
+background-color:#DDD;
+}
+
+div.datepicker {
+position:absolute;
+text-align:center;
+border:1px #AAA solid;
+font-family:arial;
+background:#FFF;
+font-size:10px;
+padding:0;
+}
+
+div.datepicker-calendar table {
+font-size:10px;
+border:1px solid #FFF;
+margin:0;
+padding:0;
+text-align:center;
+}
+
+div.datepicker div.datepicker-header {
+font-size:11px;
+font-weight:bold;
+background:#F0F0F0;
+border-bottom:1px solid #AAA;
+padding:2px;
+text-align:center;
+}
+
+div.datepicker table.header {
+width:175px;
+border:0;
+padding:0;
+text-align:center;
+}
+
+td.prev,td.prev_year,td.next,td.next_year {
+width:8%;
+cursor:pointer;
+font-weight:bold;
+line-height:16px;
+}
+
+td.prev:hover,td.prev_year:hover,td.next:hover,td.next_year:hover {
+background-color:#D0D0D0;
+}
+
+td.header {
+text-align:center;
+width:68%;
+font-weight:bold;
+line-height:16px;
+}
+
+div.datepicker-header {
+height:16px;
+}
+
+div.datepicker-calendar table tbody tr {
+border:1px solid #FFF;
+margin:0;
+padding:0;
+}
+
+div.datepicker-calendar table tbody tr td {
+border:1px #EAEAEA solid;
+margin:0;
+padding:0;
+text-align:center;
+height:16px;
+line-height:16px;
+width:21px;
+cursor:pointer;
+}
+
+div.datepicker-calendar table tbody tr td:hover,div.datepicker-calendar table tbody tr td.outbound:hover,div.datepicker-calendar table tbody tr td.today:hover {
+border:1px #CCE9FF solid;
+background:#E9F5FF;
+cursor:pointer;
+}
+
+div.datepicker-calendar table tbody tr td.wday {
+border:1px #AAA solid;
+background:#CCC;
+cursor:text;
+width:21px;
+height:16px;
+line-height:16px;
+font-weight:bold;
+}
+
+div.datepicker-calendar table tbody tr td.outbound {
+background:#F4F3F3;
+}
+
+div.datepicker-calendar table tbody tr td.today {
+border:1px #CCE9FF solid;
+background:#E9F5FF;
+background-image:url(../../images/date_active.gif);
+background-repeat:no-repeat;
+position:top left;
+width:21px;
+height:16px;
+line-height:16px;
+}
+
+div.datepicker-calendar table tbody tr td.today:hover {
+border:1px #CCE9FF solid;
+background:#E9F5FF;
+background-image:url(../../images/date_active.gif);
+background-repeat:no-repeat;
+position:top left;
+}
+
+div.datepicker-calendar table tbody tr td.nclick,div.datepicker-calendar table tbody tr td.nclick_outbound {
+cursor:default;
+color:#aaa;
+width:21px;
+height:16px;
+line-height:16px;
+}
+
+div.datepicker-calendar table tbody tr td.nclick_outbound {
+background:#E8E4E4;
+width:21px;
+height:16px;
+line-height:16px;
+}
+
+div.datepicker-calendar table tbody tr td.nclick:hover,div.datepicker-calendar table tbody tr td.nclick_outbound:hover {
+border:1px #EAEAEA solid;
+background:#FFF;
+}
+
+div.datepicker-calendar table tbody tr td.nclick_outbound:hover {
+background:#E8E4E4;
+}
+
+div.datepicker div.datepicker-footer {
+font-size:10px;
+background:#F0F0F0;
+border-top:1px solid #AAA;
+cursor:pointer;
+text-align:center;
+padding:2px;
+}
+
+.date {
+float:left;
+}
+
+.datepicker-opener-table {
+border:1px solid transparent;
+padding:0;
+border-spacing:0;
+margin:0 0 0 3px;
+background:transparent url(../../images/datepicker.gif) no-repeat 0 0;
+width:18px;
+height:18px;
+cursor:pointer;
+}
+
+.Opera .datepicker-opener-table {
+float:right;
+}
+
+.IE7 .datepicker-opener-table {
+position:relative;
+top:0;
+left:3px;
+}
+
+.datepicker-opener-table:hover {
+background:transparent url(../../images/datepicker_ro.gif) no-repeat 0 0;
+}
+
+.datepicker-opener {
+width:16px;
+height:16px;
+margin:0 0 0 3px;
+cursor:pointer;
+}
+
+/********************************
+ *           L i s t s          *
+ ********************************/
+/* List border */
+div.listContainer {
+border-top:1px solid #AAA;
+border-bottom:1px solid #AAA;
+border-left:1px solid #AAA;
+}
+
+.fixedListHeader tr {
+position:relative;
+height:auto;
+}
+
+.listHeaderFormat {
+margin:3px;
+padding:1px;
+white-space:nowrap;
+}
+
+.listHeaderFormat tr td {
+border-right:1px solid #AAA;
+padding:2px;
+background-color:#F5F5F5;
+}
+
+.listScrollContent {
+height:100%;
+overflow-x:hidden;
+overflow-y:auto;
+}
+
+.listScrollContent tr {
+height:auto;
+white-space:nowrap;
+}
+
+.listScrollContent tr td:last-child {
+padding-right:20px;
+}
+
+.listBodyFormat tr td {
+color:#000;
+margin:3px;
+padding:2px;
+border-right:1px solid #AAA;
+word-wrap:break-word;
+white-space:normal;
+max-width:500px;
+}
+
+div.nlistFooter {
+background-color:#E5E5E5;
+border-left:1px solid silver;
+border-right:1px solid silver;
+border-bottom:1px solid silver;
+padding:0;
+width:100%;
+}
+
+/* Sortable Lists */
+div.sortableListContainer {
+border:1px solid #AAA;
+overflow:auto;
+margin-bottom:2px;
+}
+
+.sortableListContainer th {
+background-color:#D8D8D8;
+padding:3px;
+text-align:left;
+border-left:1px solid #AAA;
+}
+
+.sortableListContainer td {
+padding:3px;
+text-align:left;
+border-left:1px solid #AAA;
+}
+
+tr.sortableListItem {
+background-color:#FFF;
+cursor:move;
+color:#000;
+}
+
+tr.sortableListItemFill {
+background-color:#FFF;
+cursor:default;
+}
+
+tr.sortableListItemOdd ::-moz-selection,tr.sortableListItem ::-moz-selection {
+background:transparent;
+}
+
+tr.sortableListItemOdd ::selection,tr.sortableListItem ::selection {
+background:transparent;
+}
+
+tr.sortableListItemOdd code::-moz-selection,tr.sortableListItem code::-moz-selection {
+background:transparent;
+}
+
+tr.sortableListItemOdd code::selection,tr.sortableListItem code::selection {
+background:transparent;
+}
+
+tr.sortableListItemOdd {
+background-color:#F5F5F5;
+cursor:move;
+color:#000;
+}
+
+tr.sortableListItem:hover,tr.sortableListItemOdd:hover {
+background-color:#EEE;
+}
+
+tr.sortableListItemDisabled {
+cursor:default;
+color:#CCC;
+}
+
+table.sortableListTable {
+border:0;
+}
+
+tr.sortableListItemMarked {
+background-color:#FFD;
+}
+
+/* Tree List */
+ul.treeList,ul.treeList ul {
+list-style-type:none;
+background:url(../../images/lists/vline.png) repeat-y;
+margin:0;
+padding:0;
+}
+
+ul.treeList ul {
+margin-left:10px;
+}
+
+ul.treeList a:hover {
+background-color:#DDD;
+}
+
+a.treeList {
+padding:2px;
+cursor:pointer;
+}
+
+a.treeListSelected {
+font-weight:bold;
+color:#1010AF;
+background-color:#DDD;
+padding:2px;
+cursor:pointer;
+}
+
+a.treeList:hover,a.treeListSelected:hover {
+background-color:#DDD;
+padding:2px;
+}
+
+ul.treeList a {
+padding:2px;
+cursor:pointer;
+}
+
+ul.treeList li {
+margin:0;
+padding:0 12px;
+line-height:20px;
+background:url(../../images/lists/node.png) no-repeat;
+}
+
+/* IE workaround - results in even more strange display problems in IE8
+ul.treeList li {
+background: expression((this.parentNode.lastChild == this)? '#fff url(images/lists/lastnode.png) no-repeat' : '#fff url(images/lists/node.png) no-repeat');
+}
+*/
+
+li.treeListSelected a {
+font-weight:bold;
+color:#1010AF;
+padding:2px;
+}
+
+ul.treeList li.last {
+background:#fff url(../../images/lists/lastnode.png) no-repeat;
+}
+
+ul.treeList li:last-child {
+background:#fff url(../../images/lists/lastnode.png) no-repeat;
+}
+
+div.treeList {
+background-color:#FFF;
+border:1px solid #AAA;
+padding:5px;
+position:absolute;
+z-index:500;
+overflow-y:auto;
+float:left;
+}
+
+span.informal {
+color:#444;
+font-style:italic;
+}
+
+/* Max height for IE */
+* html div.treeList {
+height: expression( this.scrollHeight > 500 ? "500px" : "auto" );
+}
+
+span.mark {
+color:#B22;
+}
diff --git a/gosa-core/ihtml/themes/default/GOsa_MultiSelectHeader.ihtml b/gosa-core/ihtml/themes/default/GOsa_MultiSelectHeader.ihtml
new file mode 100644
index 0000000..9f71d5c
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/GOsa_MultiSelectHeader.ihtml
@@ -0,0 +1,35 @@
+<!-- BEGIN template -->
+<!-- beginning of horizontal menu bar -->
+
+
+<TABLE border="0" cellspacing="0" cellpadding="0">
+  <TR>
+    <TD>
+      <DIV class="khorbar">
+		<TABLE border="0" cellspacing="0" cellpadding="0">
+		  <TR>
+			<!-- BEGIN horizontal_menu_cell -->
+			<TD>
+			  <!-- BEGIN cell_link -->
+			  <DIV id="{menu_layer_label}" class="khorbaritem" onmouseover="clearLMTO();" onmouseout="setLMTO();">
+				<A href="{href}"{onmouseover}{title}{target}>
+			  	<IMG align="top" src="{imgwww}{transparent}" width="1" height="16" border="0"   alt="" />
+			  		<!-- BEGIN cell_icon -->
+			  		<IMG align="top" src="{iconsrc}" width="{iconwidth}" height="{iconheight}" border="0"  alt="{iconalt}" /> 
+			  		<!-- END cell_icon -->
+			  		{text}
+			  	<!-- BEGIN cell_arrow --> 
+				<IMG src="{imgwww}{downsrc}" width="{downwidth}" height="{downheight}"	border="0" alt=">>" />
+				<!-- END cell_arrow -->   </A> 
+			  </DIV>
+			  <!-- END cell_link -->
+			</TD>
+			<!-- END horizontal_menu_cell -->
+		  </TR>
+		</TABLE>
+      </DIV>
+    </TD>
+  </TR>
+</TABLE>
+<!-- end of horizontal menu bar -->
+<!-- END template -->
diff --git a/gosa-core/ihtml/themes/default/accountexpired.tpl b/gosa-core/ihtml/themes/default/accountexpired.tpl
new file mode 100644
index 0000000..9755ce5
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/accountexpired.tpl
@@ -0,0 +1,74 @@
+<body style="background-color: #8B858B;background-image:none;">
+{* GOsa login - smarty template *}
+{$php_errors}
+{$errors}
+
+<!-- Spacer for some browsers -->
+<div class='gosaLoginSpacer'></div>
+
+<table summary="" 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 summary="" 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>
+		<input type='hidden' name='javascript' value='false'/>		
+    </form>
+
+   </div>
+  </td>
+ </tr>
+</table>
+
+<!-- Place cursor in username field -->
+<script language="JavaScript" 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/gosa-core/ihtml/themes/default/acl.tpl b/gosa-core/ihtml/themes/default/acl.tpl
new file mode 100644
index 0000000..de2a248
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/acl.tpl
@@ -0,0 +1,145 @@
+{if !$acl_readable}
+
+	<h2>{msgPool type=permView}</h2>
+
+{else}
+	{if $dialogState eq 'head'}
+	<h1>{t}Assigned ACL for current entry{/t}</h1>
+	{$aclList}
+
+
+	{if $acl_createable}
+	<input type="submit" name="new_acl" value="{t}New ACL{/t}" >
+	{/if}
+	{/if}
+
+	{if $dialogState eq 'create'}
+	<h1>{t}ACL type{/t}
+		{if !$acl_writeable}
+			<select size="1" name="dummy_t" title="{t}Select an acl type{/t}" disabled>
+				{html_options options=$aclTypes selected=$aclType}
+				<option disabled> </option>
+			</select> 
+		{else} 
+			<select size="1" name="aclType" title="{t}Select an acl type{/t}" onChange="document.mainform.submit()">
+				{html_options options=$aclTypes selected=$aclType}
+				<option disabled> </option>
+			</select> 
+			{if $javascript eq 'false'}
+				<input type="submit" value="{t}Apply{/t}" name="refresh">
+			{/if}
+		{/if}
+	</h1>
+
+	<p class="seperator"> </p>
+	<div style='padding:3px;'>
+	{t}Additional filter options{/t}  
+		{if !$acl_writeable}
+		<input type='text' value='{$aclFilter}' disabled name='dummy_f' style='width:600px;'>
+		{else}
+		<input type='text' value='{$aclFilter}' name='aclFilter' style='width:600px;'>
+		{/if}
+	</div>
+
+	<table style="width:100%">
+	 <tr>
+	  <td style="width:48%; vertical-align:top;">
+	   {t}Use members from{/t}
+	   <select name="target" onChange="document.mainform.submit()">
+			{html_options options=$targets selected=$target}
+			<option disabled> </option>
+	   </select>
+	   {if $javascript eq 'false'}<input type="submit" value="{t}Apply{/t}" name="refresh">{/if}<br><br>
+	  </td>
+	  <td>
+	  </td>
+	  <td>
+	  </td>
+	 </tr>
+	 <tr>
+	  <td style="width:48%">
+	   {t}Available members{/t}<br>
+		{if !$acl_writeable}
+	   <select style="width:100%;height:180px;" disabled name="dummy_s[]" size="20" multiple title="{t}List message possible targets{/t}">
+				{html_options options=$sources}
+				<option disabled> </option>
+	   </select>
+		{else}
+	   <select style="width:100%;height:180px;" name="source[]" size="20" multiple title="{t}List message possible targets{/t}">
+				{html_options options=$sources}
+				<option disabled> </option>
+	   </select>
+		{/if}
+	  </td>
+	  <td style="vertical-align:center; text-align:center">
+		{if $acl_writeable}
+	   <input type="submit" value=">" name="add">
+	   <br><br>
+	   <input type="submit" value="<" name="del">
+		{/if}
+	  </td>
+	  <td style="width:48%; vertical-align:top;">
+	   {t}Members{/t}<br>
+		{if !$acl_writeable}
+	   <select style="width:100%;height:180px;" disabled name="dummy_r[]" size="20" multiple title="{t}List message recipients{/t}">
+				{html_options options=$recipients}
+				<option disabled> </option>
+	   </select>
+
+		{else}
+	   <select style="width:100%;height:180px;" name="recipient[]" size="20" multiple title="{t}List message recipients{/t}">
+				{html_options options=$recipients}
+				<option disabled> </option>
+	   </select>
+		{/if}
+	  </td>
+	 </tr>
+	</table>
+
+	{if $aclType ne 'reset'}
+	{if $aclType ne 'role'}
+	{if $aclType ne 'base'}
+	<p class="seperator"> </p>
+
+	<h1>{t}List of available ACL categories{/t}</h1>
+	{$aclList}
+	{/if}
+	{/if}
+	{/if}
+
+	{if $aclType eq 'base'}
+	<p class="seperator"> </p>
+	<h1>{t}ACL for this object{/t}</h1>
+	{$aclSelector}
+	{/if}
+
+	{if $aclType eq 'role'}
+	<p class="seperator"> </p>
+	<h1>{t}Available roles{/t}</h1>
+	{$roleSelector}
+	{/if}
+
+	<p class="seperator"> </p>
+	<div style='text-align:right;margin-top:5px'>
+		{if $acl_writeable}
+		<input type="submit" name="submit_new_acl" value="{t}Apply{/t}">
+		 
+		{/if}
+		<input type="submit" name="cancel_new_acl" value="{t}Cancel{/t}">
+	</div>
+	{/if}
+
+	{if $dialogState eq 'edit'}
+
+	<h1>{$headline}</h1>
+
+	{$aclSelector}
+
+	<p class="seperator"> </p>
+	<div style='text-align:right;margin-top:5px'>
+		<input type="submit" name="submit_edit_acl" value="{t}Apply{/t}">
+		 
+		<input type="submit" name="cancel_edit_acl" value="{t}Cancel{/t}">
+	</div>
+	{/if}
+{/if}
diff --git a/gosa-core/ihtml/themes/default/colors.txt b/gosa-core/ihtml/themes/default/colors.txt
new file mode 100644
index 0000000..55539aa
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/colors.txt
@@ -0,0 +1,13 @@
+Color guide
+===========
+
+Background:        #FFFFFF
+Header-background: #A9FBA6
+Font colors:       #000000
+                   #00008F
+Menu:              #F8F8F8
+Highlight:         #F0F0F0
+Borders:           #AAAAAA
+Font Error:        #FF0000
+Font Warning:      #FFA500
+Font OK:           #008000
diff --git a/gosa-core/ihtml/themes/default/conflict.tpl b/gosa-core/ihtml/themes/default/conflict.tpl
new file mode 100644
index 0000000..48add53
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/conflict.tpl
@@ -0,0 +1,16 @@
+<div class="plugtop">
+  {t}Session conflict detected{/t}
+</div>
+
+<p>
+ <b>{t}Warning{/t}:</b> {t}Probably there's another active instance of your session. Multiple window operation is technical not possible and heavily depends on the browser you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is possible. Pressing the Logout button will close this session.{/t}
+</p>
+
+<p>
+  <b style="color:red;">{t}Ignoring this message will change/destroy the data you're currently editing, so please close multiple windows and log in again.{/t}</b>
+</p>
+
+<p class="plugbottom">
+  <input type="submit" name="reset_session" value="{t}Logout{/t}">
+</p>
+
diff --git a/gosa-core/ihtml/themes/default/copyPasteDialog.tpl b/gosa-core/ihtml/themes/default/copyPasteDialog.tpl
new file mode 100644
index 0000000..a43275e
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/copyPasteDialog.tpl
@@ -0,0 +1,34 @@
+<h2>{t}Copy & paste wizard{/t}</h2>
+
+<b>{$message}</b>
+<br>
+<br>
+{if $Complete == false}
+	{t}Some values need to be unique in the complete directory while some combinations make no sense. GOsa shows the relevant attributes. Please maintain the values below to fullfill the policies.{/t}
+	<br>
+{t}Remember that some properties like taken snapshots will not be copied!{/t} 
+{t}Or if you copy or cut an entry within GOsa and delete the source object, you may get errors while pasting this object again!{/t}
+
+	<p class='seperator'> </p>
+	<br>
+	{$AttributesToFix}
+	{if $SubDialog == false}
+	<br>
+
+	<div style='text-align:right;width:100%;'>
+		<input type='submit' name='PerformCopyPaste' value='{t}Save{/t}'> 
+	{if $type == "modified"}
+		<input type='submit' name='abort_current_cut-copy_operation' value='{t}Cancel{/t}'>
+	{/if}
+	
+		<input type='submit' name='abort_all_cut-copy_operations' value='{t}Cancel all{/t}'>
+	</div>
+	{/if}
+{else}
+	<p class='seperator'> </p>
+	<br>
+	<h2>{t}Operation complete{/t}</h2>
+	<div style='text-align:right;width:100%;'>
+		<input type='submit' name='Back' value='{t}Finish{/t}'> 
+	</div>
+{/if}
diff --git a/gosa-core/ihtml/themes/default/filter.xsd b/gosa-core/ihtml/themes/default/filter.xsd
new file mode 100644
index 0000000..f22926a
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/filter.xsd
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+	<xsd:element name="filterdef">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="definition" minOccurs="1" maxOccurs="1"/>
+				<xsd:element ref="search" minOccurs="1" maxOccurs="1"/>
+				<xsd:element ref="element" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:simpleType name="regexA">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="true|false"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexB">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([a-zA-Z0-9/.-])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexC">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([a-zA-Z0-9])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexD">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([A-Z])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:element name="definition">
+		<xsd:complexType mixed="true">
+			<xsd:all>
+				<xsd:element ref="category" minOccurs="1"/>
+				<xsd:element ref="template" minOccurs="1"/>
+				<xsd:element ref="initial" minOccurs="0"/>
+			</xsd:all>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="category" type="regexB"/>
+	<xsd:element name="template" type="regexB"/>
+	<xsd:element name="initial" type="regexA"/>
+	<xsd:element name="search">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="query" maxOccurs="unbounded"/>
+				<xsd:element ref="scope"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="query">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="backend"/>
+				<xsd:element ref="filter"/>
+				<xsd:element ref="attribute" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="backend" type="regexD"/>
+	<xsd:element name="filter" type="xsd:string"/>
+	<xsd:element name="attribute" type="regexC"/>
+	<xsd:element name="scope">
+		<xsd:simpleType>
+			<xsd:restriction base="xsd:string">
+				<xsd:pattern value="auto|sub|one"/>
+			</xsd:restriction>
+		</xsd:simpleType>
+	</xsd:element>
+	<xsd:element name="element">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="type"/>
+				<xsd:element ref="tag"/>
+				<xsd:element ref="alphabet" minOccurs="0"/>
+				<xsd:element ref="default" minOccurs="0"/>
+				<xsd:element ref="unset"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="value" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="autocomplete" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="type">
+		<xsd:simpleType>
+			<xsd:restriction base="xsd:string">
+				<xsd:enumeration value="textfield"/>
+				<xsd:enumeration value="combobox"/>
+				<xsd:enumeration value="checkbox"/>
+			</xsd:restriction>
+		</xsd:simpleType>
+	</xsd:element>
+	<xsd:element name="tag" type="regexD"/>
+	<xsd:element name="alphabet" type="regexA"/>
+	<xsd:element name="default" type="xsd:string"/>
+	<xsd:element name="unset" type="xsd:string"/>
+	<xsd:element name="set" type="xsd:string"/>
+	<xsd:element name="autocomplete">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="backend"/>
+				<xsd:element ref="filter"/>
+				<xsd:element ref="attribute"/>
+				<xsd:element ref="frequency" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="characters" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="base" minOccurs="0"/>
+				<xsd:element ref="scope" minOccurs="0"/>
+				<xsd:element ref="category" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="objectbase" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="key" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="frequency" type="xsd:float"/>
+	<xsd:element name="characters" type="xsd:int"/>
+	<xsd:element name="base" type="xsd:string"/>
+	<xsd:element name="objectbase" type="xsd:string"/>
+	<xsd:element name="value">
+		<xsd:complexType mixed="true">
+			<xsd:all>
+				<xsd:element ref="key" minOccurs="1"/>
+				<xsd:element ref="label" minOccurs="1"/>
+			</xsd:all>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="key" type="xsd:string"/>
+	<xsd:element name="label" type="xsd:string"/>
+</xsd:schema>
diff --git a/gosa-core/ihtml/themes/default/framework.tpl b/gosa-core/ihtml/themes/default/framework.tpl
new file mode 100644
index 0000000..c02e265
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/framework.tpl
@@ -0,0 +1,58 @@
+<!-- Headline -->
+<body>
+{$php_errors}
+<form action='main.php{$plug}' name='mainform' method='post' enctype='multipart/form-data'>
+<div class='setup_header'>
+  <div style="float:left;"><img src='themes/default/images/go_logo.png' class='center' alt='GOsa' style="padding-left:2px; padding-right:25px;">
+   {if !$javascript}
+    <a class="maintitlebar" href='main.php?reset=1' onClick='return question("{t}You are currently editing a database entry. Do you want to dismiss the changes?{/t}", "main.php?reset=1");' ><img src='{$go_home}' class='center' border="0" alt="Main"> {t}Main{/t}
+    </a>
+   {else}
+    <a class="maintitlebar" onClick='return question("{t}You are currently editing a database entry. Do you want to dismiss the changes?{/t}", "main.php?reset=1");' ><img src='{$go_home}' class='center' border="0" alt="Main"> {t}Main{/t}
+    </a>
+   {/if}
+     
+    <a class="maintitlebar" style="margin-left:35px" {$help_method}>
+       <img src='{$go_help}' class='center' border="0" alt="Help"> {t}Help{/t}
+    </a>
+     
+   {if !$javascript}
+    <a class="maintitlebar" href='logout.php?request' onClick='return question("{t}You are currently editing a database entry. Do you want to dismiss the changes?{/t}", "logout.php?request");' style="margin-left:35px;">
+      <img src='{$go_out}' class='center' border="0" alt="Sign out"> {t}Sign out{/t}
+    </a>
+    {else}
+    <a class="maintitlebar" onClick='return question("{t}You are currently editing a database entry. Do you want to dismiss the changes?{/t}", "logout.php?request");' style="margin-left:35px;">
+      <img src='{$go_out}' class='center' border="0" alt="Sign out"> {t}Sign out{/t}
+    </a>
+    {/if}
+  </div>
+  <div style="padding-top:8px;text-align:right;height:28px"><a>{t}Signed in:{/t} <b>{$username}</b></a></div>
+</div>
+<!--<div class='setup_menu'>
+  <b>{t}GOsa main menu{/t}</b>
+</div>-->
+
+<table summary="" class="framework" cellspacing="0" cellpadding="0" style='margin-top:7px'>
+  <tr style="vertical-align:top;">
+    <!-- Menu -->
+    <td style="background-color:white; vertical-align:top;" id="menucell">
+      {$menu}
+	  <br />
+	  <div style="height:1px; width:140px;"></div>
+    </td>
+    <!-- Plugin window -->
+    <td style="background-color:white; width:100%; vertical-align:top; height:15px;" colspan="2">
+      <table style="vertical-align:top; text-align:justify; background-color: white; border:1px solid #AAA; margin-top:0px; margin-left:7px; margin-right:7px; width:99%" summary="">
+       <tr>
+        <td>
+	{$msg_dialogs}
+	 {$contents}
+       </td>
+      </tr>
+     </table>
+    </td>
+  </tr>
+ {if $channel != ""}
+	<input type="hidden" name="_channel_" value="{$channel}">
+ {/if}
+</table>{$errors}{$focus}<input type="hidden" name="php_c_check" value="1"></form></body></html>
diff --git a/gosa-core/ihtml/themes/default/headers.tpl b/gosa-core/ihtml/themes/default/headers.tpl
new file mode 100644
index 0000000..8edfd21
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/headers.tpl
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/transitional.dtd">
+<html>
+
+<head>
+  <title>{if isset($title)}{$title}{else}GOsa{/if}</title>
+
+  <meta name="generator" content="my hands">
+  <meta name="description" content="GOsa - Login">
+  <meta name="author" lang="de" content="Cajus Pollmeier">
+
+  <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
+  <meta http-equiv="Last-Modified" content="{$date} GMT">
+  <meta http-equiv="Cache-Control" content="no-cache">
+  <meta http-equiv="Pragma" content="no-cache">
+  <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+  <style type="text/css">@import url('themes/default/style.css');</style>
+  <link rel="stylesheet" type="text/css" href="themes/default/printer.css" media="print">
+
+  <!--[if IE]>
+  <style type="text/css">
+  div.listContainer { height: 121px; overflow-x:hidden; overflow-y:auto; }
+  </style>
+  <![endif]-->
+
+  <link rel="shortcut icon" href="favicon.ico">
+
+{if $iePngWorkaround}
+  <script language="javascript" src="include/png.js" type="text/javascript"></script>
+{/if}
+  <script language="javascript" src="include/prototype.js" type="text/javascript"></script>
+  <script language="javascript" src="include/gosa.js" type="text/javascript"></script>
+{if $usePrototype == 'true'}
+  <script language="javascript" src="include/scriptaculous.js" type="text/javascript"></script>
+  <script language="javascript" src="include/effects.js" type="text/javascript"></script>
+  <script language="javascript" src="include/dragdrop.js" type="text/javascript"></script>
+  <script language="javascript" src="include/controls.js" type="text/javascript"></script>
+  <script language="javascript" src="include/pulldown.js" type="text/javascript"></script>
+  <script language="javascript" src="include/datepicker.js" type="text/javascript"></script>
+{/if}
+</head>
+
diff --git a/gosa-core/ihtml/themes/default/help.tpl b/gosa-core/ihtml/themes/default/help.tpl
new file mode 100644
index 0000000..d8bf3e9
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/help.tpl
@@ -0,0 +1,39 @@
+<body style='background-color:#F1F1F1;background-image:none;'>
+{$php_errors}
+
+<form action='helpviewer.php' name='mainform' method='post' enctype='multipart/form-data'>
+<div style='background-color:#CDF6BD;width:100%;border-bottom:1px solid #909090;'>
+  <table summary="" style="width:99%;">
+   <tr>
+    <td style="width:33%;">
+     <b>{t}GOsa help viewer{/t}</b>
+	</td>
+    <td style="width:33%;text-align:center">
+		{$backward}
+		  
+		<a href="?pg={$index}"  class="maintitlebar">
+			{t}Index{/t}
+		</a>
+		  
+		{$forward}
+	</td>
+	<td style="text-align:right;">
+	 <input type='text' name="search_string" size="15" value="{$search_string}" maxlength="50"> <input type="submit" name="search" value="{t}Search{/t}">
+	</td>
+   </tr>
+  </table>
+</div>
+<div style="height:100%;width:98%;padding:5px;margin:0px;background-color:#F1F1F1;">
+{$help_contents}
+</div>
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+<!-- // First input field on page
+  focus_field('search_string');
+-->
+</script>
+
+</form>
+</body>
+</html>
diff --git a/gosa-core/ihtml/themes/default/islocked.tpl b/gosa-core/ihtml/themes/default/islocked.tpl
new file mode 100644
index 0000000..75de1c4
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/islocked.tpl
@@ -0,0 +1,23 @@
+<div style="font-size:20px;">
+  <img alt="" src="images/encrypted.png" style="vertical-align:top;"> {t}Locking conflict detected{/t}
+</div>
+
+<p>
+  <b>{t}Warning{/t}:</b> {$message}
+</p>
+<p>
+  {t}If this lock detection is false, the other person has obviously closed the webbrowser during the edit operation. You may want to take over the lock by pressing the 'Edit anyway' button.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type="submit" name="delete_lock" value="{$action}">
+	{if $allow_readonly}
+   
+  <input type="submit" name="open_readonly" value="{t}Read only{/t}">
+	{/if}
+   
+  <input type="submit" name="cancel_lock" value="{t}Cancel{/t}">
+</p>
+      
+<input type="hidden" name="dn" value="{$dn}">
+
diff --git a/gosa-core/ihtml/themes/default/list.xsd b/gosa-core/ihtml/themes/default/list.xsd
new file mode 100644
index 0000000..8d1c532
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/list.xsd
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+<!-- general declarations multiple times used in this document-->
+	<xsd:element name="label" type="regexB"/>
+	<xsd:simpleType name="regexB">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([a-zA-Z0-9/. _-])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexC">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([a-zA-Z0-9])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexE">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="(!)?([a-zA-Z0-9])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexF">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([0-9|px%;rlc])+"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexType">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="sub|entry|snapshot|copypaste|separator|exporter|daemon"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="regexAcl">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="(([a-zA-Z0-9])+)?(/([a-zA-Z0-9])+)?(\[([cdrwm])+\])?"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+<!-- first element of xml tree -->
+	<xsd:element name="list">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="definition"/>
+				<xsd:element ref="table"/>
+				<xsd:element ref="actionmenu" minOccurs="0"/>
+				<xsd:element ref="actiontriggers" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="definition">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element name="departmentBrowser" type="xsd:boolean" minOccurs="0" default="true"/>
+				<xsd:element name="departmentRootVisible" type="xsd:boolean" minOccurs="0" default="true"/>
+				<xsd:element name="baseMode" type="xsd:boolean" minOccurs="0"/>
+				<xsd:element name="multiSelect" type="xsd:boolean" minOccurs="0"/>
+				<xsd:element name="template" type="regexB"/>
+				<xsd:element name="module" type="regexC"/>
+				<xsd:element ref="label"/>
+				<xsd:element name="defaultSortColumn" type="xsd:integer" minOccurs="0" maxOccurs="1" default="1"/>
+				<xsd:element ref="objectType" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="objectType">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="label"/>
+				<xsd:element name="objectClass" type="regexE" maxOccurs="unbounded"/>
+				<xsd:element name="category" type="regexB"/>
+				<xsd:element name="class" type="regexC"/>
+				<xsd:element name="image" type="regexB"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="table">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element name="layout" type="regexF"/>
+				<xsd:element ref="department" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="column" maxOccurs="unbounded"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="department">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element name="value" type="xsd:string"/>
+				<xsd:element name="span" type="xsd:integer" minOccurs="0"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="column">
+		<xsd:complexType mixed="true">
+			<xsd:sequence>
+				<xsd:element ref="label"/>
+				<xsd:element name="value" type="xsd:string"/>
+				<xsd:element name="sortAttribute" type="regexC" minOccurs="0"/>
+				<xsd:element name="sortType" type="regexSortType" minOccurs="0"/>
+				<xsd:element name="export" type="xsd:boolean" minOccurs="0" default="true"/>
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:simpleType name="regexSortType">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="int|string|date"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:element name="export" type="xsd:string"/><!--
+
+actionmenu -->
+	<xsd:element name="actionmenu">
+		<xsd:complexType>
+			<xsd:choice maxOccurs="unbounded" minOccurs="0">
+				<xsd:element ref="action"/>
+			</xsd:choice>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="action">
+		<xsd:complexType mixed="true">
+			<xsd:choice maxOccurs="unbounded" minOccurs="0">
+				<xsd:element name="type" type="regexType"/>
+				<xsd:element name="label" type="xsd:string"/>
+				<xsd:element name="image" minOccurs="0"/>
+				<xsd:element name="name" type="xsd:string" minOccurs="0"/>
+				<xsd:element name="acl" type="regexAcl" minOccurs="0"/>
+				<xsd:element ref="objectclass" minOccurs="0"/>
+				<xsd:element ref="action"/>
+			</xsd:choice>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="objectclass" type="xsd:string"/><!--
+	
+actiontriggers -->
+	<xsd:element name="actiontriggers">
+		<xsd:complexType>
+			<xsd:choice maxOccurs="unbounded" minOccurs="0">
+				<xsd:element ref="action"/>
+			</xsd:choice>
+			<xsd:attribute name="snapshot" type="xsd:boolean" use="required"/>
+			<xsd:attribute name="copypaste" type="xsd:boolean" use="required"/>
+		</xsd:complexType>
+	</xsd:element>
+</xsd:schema>
diff --git a/gosa-core/ihtml/themes/default/login.tpl b/gosa-core/ihtml/themes/default/login.tpl
new file mode 100644
index 0000000..7772a31
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/login.tpl
@@ -0,0 +1,101 @@
+<body style="background-color:white;background-image:none;">
+
+{$php_errors}
+<div>
+        <div class='setup_header'>
+                <div style="float:left;"><img src='themes/default/images/go_logo.png' class='center' alt='GOsa' /></div>
+                <div style="padding-top:8px;text-align:right;height:28px">{$version}</div>
+        </div>
+        <div class='setup_menu'>
+                <b>{t}GOsa login screen{/t}</b>
+        </div>
+</div>
+
+{* GOsa login - smarty template *}
+
+<!-- Spacer for some browsers -->
+<div class='gosaLoginSpacer'></div>
+
+<div style='float:left; width:25%;'> </div>
+<div style='float:left; width:50%; border:1px solid #AAAAAA;background-color:white'>
+<form action='index.php' method='post' name='mainform' onSubmit='js_check(this);return true;'>
+
+{$msg_dialogs}
+	<div style='border-bottom:1px solid #AAAAAA'>
+		<div style='padding:3px; background-color:#F8F8F8'>
+		<p class="center" style="margin:0px 0px 0px 5px;padding:5px;font-size:24px;font-weight:bold;">
+			{t}Login screen{/t}
+		</p>
+		</div>
+	</div>
+	<div style='border-bottom:1px solid #AAAAAA'>
+
+	    <div style='padding:12px;text-align:center;'>
+		{t}Please use your username and your password to log into the site administration system.{/t}<br />
+		{if $ssl}<b>{$ssl}</b>{/if}
+		{if $lifetime}<b><font style="color:red";>{$lifetime}</font></b>{/if}
+	    </div>
+  
+
+	    	<input id='focus' name='focus' type='image' src='images/empty.png' style='width:0px; height:0px;' />
+		<div style='text-align:center; padding:10px;'>	
+		<img class='center' align='middle' src='{$personal_img}' alt='{t}Username{/t}' title='{t}Username{/t}' /> 
+		<input type='text' name='username' maxlength='40' value='{$username}'
+			 title='{t}Username{/t}' onFocus="nextfield= 'password';" />
+		<br />
+		<br />
+		<img class='center' align='middle' src='{$password_img}' alt='{t}Password{/t}' title='{t}Password{/t}' /> 
+		<input type='password' name='password' maxlength='40' value=''
+			 title='{t}Password{/t}' onFocus="nextfield= 'login';" />
+		</div>	
+		<div style='text-align:center; padding:15px;'>
+		        <img class='center' align='middle' src='{$directory_img}' alt='{t}Directory{/t}' title='{t}Directory{/t}' /> 
+			<select name='server'  title='{t}Directory{/t}'>
+				{html_options options=$server_options selected=$server_id}
+			</select>
+		</div>
+
+	    <!-- check, if cookies are enabled -->
+	    <p class='gosaLoginWarning'>
+	     <script language="JavaScript" type="text/javascript">
+		<!--
+		    document.cookie = "gosatest=empty;path=/";
+		    if (document.cookie.indexOf( "gosatest=") > -1 )
+			document.cookie = "gosatest=empty;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
+		    else
+			document.write("{$cookies}");
+		-->
+	     </script>
+	    </p>
+	</div>
+	<div style='padding:10px;'>
+		<div style='float:left; color:red; font-weight:bold'>
+		{$message}
+		</div>
+		<div style='float:right; text-align:right;'>
+			<!-- Display error message on demand -->
+			  <input type='submit' name='login' value='{t}Sign in{/t}'
+				 title='{t}Click here to log in{/t}' onFocus="nextfield='login';" />
+			<input type='hidden' name='javascript' value='false' />		
+			<input type='hidden' name='login' value='{t}Sign in{/t}' />		
+		</div>
+		<div style="clear:both"></div>
+	</div>
+
+</form>
+</div>
+
+<div style="clear:both"></div>
+
+{$errors}
+
+<script language="JavaScript" type="text/javascript">
+<!-- 
+  enable_keyPress = false;
+  nextfield= "{$nextfield}";
+  focus_field("{$nextfield}");
+  next_msg_dialog();
+-->
+</script>
+</body>
+</html>
diff --git a/gosa-core/ihtml/themes/default/logout-close.tpl b/gosa-core/ihtml/themes/default/logout-close.tpl
new file mode 100644
index 0000000..b980707
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/logout-close.tpl
@@ -0,0 +1,13 @@
+<body style="background-color: white;background-image:none;">
+
+<form action='index.php' method='post' name='mainform'>
+<div style="margin-left:10%; margin-right:10%; margin-top:5%; border:2px solid red;padding-left:10px;padding-right:10px;padding-top:5px;padding-bottom:20px;">
+ <h1>{t}Your GOsa session has been closed!{/t}</h1>
+ <p>
+ {t}Please close this browser window and clean the authentication caches to avoid an automatic re-authentication by your browser.{/t}
+ </p>
+</div>
+</form>
+
+</body>
+</html>
diff --git a/gosa-core/ihtml/themes/default/logout.tpl b/gosa-core/ihtml/themes/default/logout.tpl
new file mode 100644
index 0000000..bf00c46
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/logout.tpl
@@ -0,0 +1,22 @@
+<body style="background-color: white;background-image:none;">
+
+<form action='index.php' method='post' name='mainform'>
+<div style="margin-left:10%; margin-right:10%; margin-top:5%; border:2px solid red;padding-left:10px;padding-right:10px;padding-top:5px;padding-bottom:20px;">
+ <h1>{t}Your GOsa session has expired!{/t}</h1>
+ <p>
+ {t}The last interaction with the GOsa web interface has been some time ago in the past. For security reasons, the session has been closed. To continue with administrative tasks, please sign in again.{/t}
+ </p>
+ <br>
+ <center><input type="submit" name="dummy" value="{t}Sign in again{/t}"></center>
+</div>
+</form>
+
+</body>
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  focus_field('dummy');
+  -->
+</script>
+
+</html>
diff --git a/gosa-core/ihtml/themes/default/msg_dialog.tpl b/gosa-core/ihtml/themes/default/msg_dialog.tpl
new file mode 100644
index 0000000..f13fc45
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/msg_dialog.tpl
@@ -0,0 +1,155 @@
+{if $frame}
+	{if $IE}
+		<iframe id='e_layer3'
+			style="
+				position:absolute;
+				width:100%;
+				height:100%;
+				top:0px;
+				left:0px;
+				border:none;
+				border-style:none;
+				border-width:0pt;
+				display:block;
+				allowtransparency='true';
+				background-color: #FFFFFF;
+				filter:chroma(color=#FFFFFF);
+				z-index:100; ">
+		</iframe>
+		<div  id='e_layer2'
+			style="
+				position: absolute;
+				left: 0px;
+				top: 0px;
+				right:0px;
+				bottom:0px;
+				z-index:100;
+				width:100%;
+				height:100%;
+				filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='images/opacity_black.png'); "
+	>
+	{else}
+		<div  id='e_layer2'
+			style="
+				position: absolute;
+				left: 0px;
+				top: 0px;
+				right:0px;
+				bottom:0px;
+				z-index:100;
+				background-image: url(images/opacity_black.png);">
+
+	{/if}
+{else}
+
+
+	{if !$JS}
+
+		{if $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG || $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+		<div id='e_layer{$i_ID}' class="infoMsgDialog" style='top:200px;left:200px;'>
+    {else}
+		<div id='e_layer{$i_ID}' class="errorMsgDialog" style='top:200px;left:200px;'>
+    {/if}
+
+			<div id="e_layerTitle{$i_ID}" class="errorMsgTitle">
+			<table><tr><td>
+		{if $i_Type == $smarty.const.ERROR_DIALOG}
+						<img src='images/error.png' alt='{t}Error{/t}'>
+		{elseif $i_Type == $smarty.const.WARNING_DIALOG}
+						<img src='images/warning.png'  alt='{t}Warning{/t}'>
+		{elseif $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG || $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+						<img src='images/info.png' alt='{t}Information{/t}'>
+		{/if}
+			</td><td style='font-size: 1.1em; font-weight:bold;'>{$s_Title}</td></tr>
+			</table>
+			</div>
+			<table style='width:100%; border-top: solid 1px #BBBBBB;' cellspacing=0 cellpadding=2 summary='' border=0>
+				<tr>
+					<td style='width:100%;padding:7px; padding-bottom:14px'>
+						{$s_Message}
+						<br>
+					</td>
+				</tr>
+				<tr>
+					<td colspan='2' align='center'>
+		{if $i_Type == $smarty.const.ERROR_DIALOG || $i_Type == $smarty.const.WARNING_DIALOG || $i_Type == $smarty.const.INFO_DIALOG}
+						<input type='button' type='submit' name='MSG_OK{$i_ID}' value='{t}Ok{/t}'> 
+		{elseif $i_Type == $smarty.const.CONFIRM_DIALOG || $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+						<input type='button' type='submit' name='MSG_OK{$i_ID}' value='{t}Ok{/t}'>
+						<input type='button' type='submit' name='MSG_CANCEL{$i_ID}' value='{t}Cancel{/t}'>
+		{/if}
+					</td>
+				</tr>
+			</table>
+		</div>
+
+	{else}
+
+		{if $s_Trace != "" && $i_TraceCnt != 0}
+		<div id='trace_{$i_ID}' style='display:none;'>
+			{$s_Trace}
+		</div>
+		
+		{/if}
+
+    {if $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG || $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+    <div id='e_layer{$i_ID}' class="infoMsgDialog" style='top:200px;left:200px;'>
+    {else}
+    <div id='e_layer{$i_ID}' class="errorMsgDialog" style='top:200px;left:200px;'>
+    {/if}
+
+		<div id="e_layerTitle{$i_ID}" class="errorMsgTitle">
+			<table><tr><td>
+		{if $i_Type == $smarty.const.ERROR_DIALOG}
+						<img src='images/error.png' alt='{t}Error{/t}'>
+		{elseif $i_Type == $smarty.const.WARNING_DIALOG}
+						<img src='images/warning.png'  alt='{t}Warning{/t}'>
+		{elseif $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG || $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+						<img src='images/info.png' alt='{t}Information{/t}'>
+		{/if}
+			</td><td style='font-size: 1.1em; font-weight:bold;'>{$s_Title}</td></tr>
+		</table>
+		</div>
+
+			<table style='z-index:250;width:100%; border-top: solid 1px #BBBBBB;' cellspacing=0 cellpadding=2 summary='' border=0>
+				<tr>
+					<td style='width:100%; padding:7px; padding-bottom:14px;'>
+						{$s_Message}
+						<br>
+					</td>
+					{if $s_Trace != "" && $i_TraceCnt != 0}
+					<td style='width:20px; vertical-align:top; cursor:pointer;'>
+						<div onClick="$('trace_{$i_ID}').toggle();"><u>Trace</u></div>
+					</td>
+					{/if}
+				</tr>
+				<tr>
+					{if $s_Trace != "" && $i_TraceCnt != 0}
+					<td colspan='3' align='center' style="border-top: solid 1px #BBBBBB;">
+					{else}
+					<td colspan='2' align='center' style="border-top: solid 1px #BBBBBB;">
+					{/if}
+		{if $i_Type == $smarty.const.ERROR_DIALOG || $i_Type == $smarty.const.WARNING_DIALOG || $i_Type == $smarty.const.INFO_DIALOG}
+						<input type='button' id='MSG_OK{$i_ID}' type='button' name='MSG_OK{$i_ID}' 
+              onClick='next_msg_dialog();' value='{t}Ok{/t}'>
+		{elseif $i_Type == $smarty.const.CONFIRM_DIALOG}
+						<input type='button' id='MSG_OK{$i_ID}' type='submit' name='MSG_OK{$i_ID}' 
+              onClick='next_msg_dialog();' value='{t}Ok{/t}'>
+						<input type='button' type='button' name='MSG_CANCEL{$i_ID}' 
+              onClick='next_msg_dialog();' value='{t}Cancel{/t}'>
+		{elseif $i_Type == $smarty.const.OK_CANCEL_DIALOG}
+						<input type='button' id='MSG_OK{$i_ID}' type='submit' name='MSG_OK{$i_ID}' 
+              onClick='next_msg_dialog();' value='{t}Ok{/t}'>
+						<input type='button' type='submit' name='MSG_CANCEL{$i_ID}' 
+              onClick='next_msg_dialog();' value='{t}Cancel{/t}'>
+		{/if}
+					</td>
+				</tr>
+			</table>
+      </div>
+    <script language="JavaScript" type="text/javascript">
+      focus_field('MSG_OK{$i_ID}');
+    </script>
+
+	{/if}
+{/if}
diff --git a/gosa-core/ihtml/themes/default/password.tpl b/gosa-core/ihtml/themes/default/password.tpl
new file mode 100644
index 0000000..0dfc2f5
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/password.tpl
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/transitional.dtd">
+<html>
+
+<head>
+  <title>GOsa - {t}Change your password{/t}</title>
+
+  <meta name="generator" content="my hands">
+  <meta name="description" content="GOsa - Password changer">
+  <meta name="author" lang="de" content="Cajus Pollmeier">
+
+  <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
+  <meta http-equiv="Last-Modified" content="{$date} GMT">
+  <meta http-equiv="Cache-Control" content="no-cache">
+  <meta http-equiv="Pragma" content="no-cache">
+  <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+  <style type="text/css">@import url('themes/default/style.css');</style>
+  <style type="text/css">@import url('themes/default/password-style.css');</style>
+  <link rel="shortcut icon" href="favicon.ico">
+
+  {if isset($ieworkaround)}<script language="javascript"src="include/png.js" type="text/javascript"></script>{/if}
+  <script language="javascript" src="include/prototype.js" type="text/javascript"></script>
+  <script language="javascript" src="include/gosa.js" type="text/javascript"></script>
+  <script language="javascript" src="include/pwdStrength.js" type="text/javascript"></script>
+</head>
+
+<body style='height:100%; width:100%;'>
+{* GOsa login - smarty template *}
+{$php_errors}
+
+{if $changed}
+<div class='success'">
+<img class='center' src='images/true.png' alt='{t}Success{/t}' title='{t}Success{/t}'> <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;'>
+    <h1 class='headline'>
+    <img class='center' src='{$password_img}' alt='{t}Password{/t}' title='{t}Password{/t}'>
+    {t}Password change{/t}
+    </h1>
+
+    <!-- Display SSL warning message on demand -->
+    <p class='warning'> {$ssl} </p>
+    <input type='hidden' name='javascript' value='false'/>		
+
+    <!-- Display error message on demand -->
+    <p class='warning'> {$message} </p>
+
+
+    <p class="infotext">
+	{t}This dialog provides a simple way to change your password. Enter the current password and the new password (twice) in the fields below and press the 'Change' button.{/t}
+    </p>
+
+    <div class="ruler"></div>
+    <table>
+      {if $show_directory_chooser}
+      <tr>
+       <td>{t}Directory{/t}</td>
+       <td>
+          <select name='server'  title='{t}Directory{/t}'>
+            {html_options options=$server_options selected=$server_id}
+          </select>
+	</td>
+      </tr>
+      {/if}
+      <tr>
+       <td>{t}Username{/t}</td>
+       <td>{if $display_username}
+           <input type='text' name='uid' maxlength='40' value='{$uid}' title='{t}Username{/t}' onFocus="nextfield= 'current_password';">
+           {else}
+           <i>{$uid}</i>
+           {/if}
+       </td>
+      </tr>
+      <tr>
+       <td>{t}Current password{/t}</td>
+       <td><input type='password' name='current_password' maxlength='40' value='' title='{t}Current password{/t}' onFocus="nextfield= 'new_password';"></td>
+      </tr>
+      <tr>
+       <td>{t}New password{/t}</td>
+       <td><input type='password' name='new_password' id="new_password" maxlength='40' value='' title='{t}New password{/t}' onFocus="nextfield= 'new_password_repeated';" onkeyup="testPasswordCss(document.getElementById('new_password').value);"></td>
+      </tr>
+      <tr>
+       <td>{t}New password repeated{/t}</td>
+       <td><input type='password' name='new_password_repeated' maxlength='40' value='' title='{t}New password repeated{/t}' onFocus="nextfield= 'apply';"></td>
+      </tr>
+      <tr>
+       <td>{t}Password strength{/t}</td>
+       <td>
+        <span id="meterEmpty" style="padding:0;margin:0;width:100%;background-color:#DC143C;display:block;height:5px;">
+        <span id="meterFull" style="padding:0;margin:0;z-index:100;width:0;background-color:#006400;display:block;height:5px;"></span></span>
+       </td>
+      </tr>
+    </table>
+
+    <div class="ruler"></div>
+
+    <div class="change">
+    <input type='submit' name='apply'  value='{t}Change{/t}'
+                 title='{t}Click here to change your password{/t}'>
+    <input type='hidden' id='formSubmit'>
+    </div>
+    <!-- check, if cookies are enabled -->
+    <p class='warning'>
+     <script language="JavaScript" type="text/javascript">
+        <!--
+            document.cookie = "gosatest=empty;path=/";
+            if (document.cookie.indexOf( "gosatest=") > -1 )
+                document.cookie = "gosatest=empty;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
+            else
+                document.write("{$cookies}");
+        -->
+     </script>
+    </p>
+
+</form>
+
+{/if}
+
+{$msg_dialogs}
+
+<table class='iesucks'><tr><td>{$errors}</td></tr></table>
+
+<!-- Place cursor in username field -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  focus_field('error_accept','uid','directory', 'username', 'current_password');
+  next_msg_dialog();
+  -->
+</script>
+
+</body>
+</html>
diff --git a/gosa-core/ihtml/themes/default/remove.tpl b/gosa-core/ihtml/themes/default/remove.tpl
new file mode 100644
index 0000000..d413bea
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/remove.tpl
@@ -0,0 +1,17 @@
+<div style="font-size:18px;">
+  <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+ {$intro}
+ {t}This may be used by several groups. Please double check if your really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+<p>
+ {t}So - if you're sure - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+ <input type=submit name="delete_confirm" value="{msgPool type=delButton}">
+  
+ <input type=submit name="delete_cancel" value="{t}Cancel{/t}">
+</p>
+
diff --git a/gosa-core/ihtml/themes/default/setup_headers.tpl b/gosa-core/ihtml/themes/default/setup_headers.tpl
new file mode 100644
index 0000000..25c0f38
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/setup_headers.tpl
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+
+<head>
+  <title>{if isset($title)}{$title}{else}GOsa{/if}</title>
+
+  <meta name="generator" content="my hands">
+  <meta name="description" content="GOsa - Login">
+  <meta name="author" lang="de" content="Cajus Pollmeier">
+
+  <meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
+  <meta http-equiv="Last-Modified" content="{$date} GMT">
+  <meta http-equiv="Cache-Control" content="no-cache">
+  <meta http-equiv="Pragma" content="no-cache">
+  <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+  <style type="text/css">@import url('themes/default/style.css');</style>
+  <link rel="shortcut icon" href="favicon.ico">
+
+  <script language="javascript" src="include/png.js" type="text/javascript"></script>
+  <script language="javascript" src="include/prototype.js" type="text/javascript"></script>
+  <script language="javascript" src="include/gosa.js" type="text/javascript"></script>
+</head>
diff --git a/gosa-core/ihtml/themes/default/sizelimit.tpl b/gosa-core/ihtml/themes/default/sizelimit.tpl
new file mode 100644
index 0000000..276404d
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/sizelimit.tpl
@@ -0,0 +1,17 @@
+<h1>{$warning}</h1>
+<p>
+{t}The size limit option makes LDAP operations faster and saves the LDAP server from getting too much load. The easiest way to handle big databases without long timeouts would be to limit your search to smaller values and use filters to get the entries you are looking for.{/t}
+</p>
+<p>
+<b>{t}Please choose the way to react for this session{/t}:</b>
+</p>
+
+<input type="radio" name="action" value="ignore">{t}ignore this error and show all entries the LDAP server returns{/t}<br>
+<input type="radio" name="action" value="limited" checked>{t}ignore this error and show all entries that fit into the defined sizelimit and let me use filters instead{/t}<br>
+<input type="radio" name="action" value="newlimit">{$limit_message}
+
+<p class="plugbottom">
+ <input type=submit name="set_size_action" value="{t}Set{/t}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/ihtml/themes/default/snapshotdialog.tpl b/gosa-core/ihtml/themes/default/snapshotdialog.tpl
new file mode 100644
index 0000000..5ca8958
--- /dev/null
+++ b/gosa-core/ihtml/themes/default/snapshotdialog.tpl
@@ -0,0 +1,97 @@
+{if $RestoreMode}
+
+<h2>{t}Restoring object snapshots{/t}</h2>
+<p class="seperator"> </p>
+<br>
+{t}This procedure will restore a snapshot of the selected object. It will replace the existing object after pressing the restore button.{/t}
+<br>
+<br>
+{t}Remember that DNS configuration and database entries could not be restored. For some objects it is only nescessary to open and save them again (goFon), but some entries must be recreated manually (glpi).{/t}
+<br>
+<br>
+{t}Don't forget to check references to other objects, for example does the selected printer still exists ?{/t}
+<br>
+<p class="seperator"> </p>
+<br>
+<table summary="" style="width:100%">
+	{if !$restore_deleted}
+	<tr>
+		<td>
+		<b>{t}Object{/t}</b> 
+		{$CurrentDN}
+		</td>
+	</tr>
+	{/if}
+	<tr>
+		<td>
+			<br>
+			{if $CountSnapShots==0}
+				{t}There is no snapshot available that could be restored{/t}
+			{else}
+				{t}Choose a snapshot and click the folder image, to restore the snapshot{/t}
+			{/if}
+		</td>
+	</tr>
+	<tr>
+		<td>
+			{$SnapShotDivlist}
+		</td>
+	</tr>
+</table>
+
+<p class="seperator"> </p>
+<div style="width:100%; text-align:right;">
+    <input type='submit' name='CancelSnapshot' value='{t}Cancel{/t}'>
+</div>
+
+{else}
+
+<h2>{t}Creating object snapshots{/t}</h2>
+<p class="seperator"> </p>
+<br>
+{t}This procedure will create a snapshot of the selected object. It will be stored inside a special branch of your directory system and can be restored later on.{/t}
+<br>
+<br>
+{t}Remember that database entries, DNS configurations and possibly created zones in server extensions will not be stored in the snapshot.{/t}
+<br>
+<p class="seperator"> </p>
+<br>
+<table summary="" style="width:100%">
+	<tr>
+		<td>
+			<b>{t}Object{/t}</b>
+		</td>
+		<td style="width:95%"> 
+		   {$CurrentDN}
+		</td>
+	</tr>
+	<tr>
+		<td>
+			<b>{t}Timestamp{/t}</b> 
+		</td>
+		<td> 
+		   {$CurrentDate}
+		</td>
+	</tr>
+	<tr>
+		<td style="vertical-align:top;" colspan="2">
+			<br>
+			{t}Reason for generating this snapshot{/t}<br> 
+			<textarea name="CurrentDescription" style="width:100%;height:160px;" rows=10 cols=100>{$CurrentDescription}</textarea>
+		</td>
+	</tr>
+</table>
+
+<p class="seperator"> </p>
+<div style="width:100%; text-align:right;">
+    <input type='submit' name='CreateSnapshot' value='{t}Continue{/t}'>
+     
+    <input type='submit' name='CancelSnapshot' value='{t}Cancel{/t}'>
+</div>
+
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  document.mainform.CurrentDescription.focus();
+  -->
+</script>
+{/if}
diff --git a/gosa-core/include/accept-to-gettext.inc b/gosa-core/include/accept-to-gettext.inc
new file mode 100644
index 0000000..5913a50
--- /dev/null
+++ b/gosa-core/include/accept-to-gettext.inc
@@ -0,0 +1,212 @@
+<?php
+/*
+ * accept-to-gettext.inc -- convert information in 'Accept-*' headers to
+ * gettext language identifiers.
+ * Copyright (c) 2003, Wouter Verhelst <wouter at debian.org>
+ * 
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Usage:
+ *
+ *  $locale=al2gt(<array of supported languages/charsets in gettext syntax>,
+ *                <MIME type of document>);
+ *  setlocale('LC_ALL', $locale); // or 'LC_MESSAGES', or whatever...
+ *
+ * Example:
+ *
+ *  $langs=array('nl_BE.ISO-8859-15','nl_BE.UTF-8','en_US.UTF-8','en_GB.UTF-8');
+ *  $locale=al2gt($langs, 'text/html');
+ *  setlocale('LC_ALL', $locale);
+ *
+ * Note that this will send out header information (to be
+ * RFC2616-compliant), so it must be called before anything is sent to
+ * the user.
+ * 
+ * Assumptions made:
+ * * Charset encodings are written the same way as the Accept-Charset
+ *   HTTP header specifies them (RFC2616), except that they're parsed
+ *   case-insensitive.
+ * * Country codes and language codes are the same in both gettext and
+ *   the Accept-Language syntax (except for the case differences, which
+ *   are dealt with easily). If not, some input may be ignored.
+ * * The provided gettext-strings are fully qualified; i.e., no "en_US";
+ *   always "en_US.ISO-8859-15" or "en_US.UTF-8", or whichever has been
+ *   used. "en.ISO-8859-15" is OK, though.
+ * * The language is more important than the charset; i.e., if the
+ *   following is given:
+ * 
+ *   Accept-Language: nl-be, nl;q=0.8, en-us;q=0.5, en;q=0.3
+ *   Accept-Charset: ISO-8859-15, utf-8;q=0.5
+ *
+ *   And the supplied parameter contains (amongst others) nl_BE.UTF-8
+ *   and nl.ISO-8859-15, then nl_BE.UTF-8 will be picked.
+ * 
+ * $Log: accept-to-gettext.inc,v $
+ * Revision 1.1.1.1  2003/11/19 19:31:15  wouter
+ * * moved to new CVS repo after death of the old
+ * * Fixed code to apply a default to both Accept-Charset and
+ *   Accept-Language if none of those headers are supplied; patch from
+ *   Dominic Chambers <dominic at encasa.com>
+ *
+ * Revision 1.2  2003/08/14 10:23:59  wouter
+ * Removed little error in Content-Type header syntaxis.
+ *
+ */
+
+/* not really important, this one; perhaps I could've put it inline with
+ * the rest. */
+function find_match($curlscore,$curcscore,$curgtlang,$langval,$charval,
+                    $gtlang)
+{
+  if($curlscore < $langval) {
+    $curlscore=$langval;
+    $curcscore=$charval;
+    $curgtlang=$gtlang;
+  } else if ($curlscore == $langval) {
+    if($curcscore < $charval) {
+      $curcscore=$charval;
+      $curgtlang=$gtlang;
+    }
+  }
+  return array($curlscore, $curcscore, $curgtlang);
+}
+
+
+function al2gt($gettextlangs, $mime) 
+{
+  /* Check if ACCEPT_LANGUAGE isset */
+  if(!isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])){
+    $_SERVER["HTTP_ACCEPT_LANGUAGE"] = "";
+  }
+  if(!isset($_SERVER["HTTP_ACCEPT_CHARSET"])){
+    $_SERVER["HTTP_ACCEPT_CHARSET"] = "";
+  }
+
+  /* default to "everything is acceptable", as RFC2616 specifies */
+  $acceptLang=(($_SERVER["HTTP_ACCEPT_LANGUAGE"] == '') ? '*' :
+    $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
+  $acceptChar=(($_SERVER["HTTP_ACCEPT_CHARSET"] == '') ? 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' :
+    $_SERVER["HTTP_ACCEPT_CHARSET"]);
+  $alparts=@preg_split("/,/",$acceptLang);
+  $acparts=@preg_split("/,/",$acceptChar);
+  
+  /* Parse the contents of the Accept-Language header.*/
+  foreach($alparts as $part) {
+    $part=trim($part);
+    if(preg_match("/;/", $part)) {
+      $lang=@preg_split("/;/",$part);
+      $score=@preg_split("/=/",$lang[1]);
+      $alscores[$lang[0]]=$score[1];
+    } else {
+      $alscores[$part]=1;
+    }
+  }
+
+  /* Do the same for the Accept-Charset header. */
+
+  /* RFC2616: ``If no "*" is present in an Accept-Charset field, then
+   * all character sets not explicitly mentioned get a quality value of
+   * 0, except for ISO-8859-1, which gets a quality value of 1 if not
+   * explicitly mentioned.''
+   * 
+   * Making it 2 for the time being, so that we
+   * can distinguish between "not specified" and "specified as 1" later
+   * on. */
+  $acscores["ISO-8859-1"]=2;
+
+  foreach($acparts as $part) {
+    $part=trim($part);
+    if(preg_match("/;/", $part)) {
+      $cs=@preg_split("/;/",$part);
+      $score=@preg_split("/=/",$cs[1]);
+      $acscores[strtoupper($cs[0])]=$score[1];
+    } else {
+      $acscores[strtoupper($part)]=1;
+    }
+  }
+  if($acscores["ISO-8859-1"]==2) {
+    $acscores["ISO-8859-1"]=(isset($acscores["*"])?$acscores["*"]:1);
+  }
+
+  /* 
+   * Loop through the available languages/encodings, and pick the one
+   * with the highest score, excluding the ones with a charset the user
+   * did not include.
+   */
+  $curlscore=0;
+  $curcscore=0;
+  $curgtlang=NULL;
+  foreach($gettextlangs as $gtlang) {
+
+    $tmp1=preg_replace("/\_/","-",$gtlang);
+    $tmp2=@preg_split("/\./",$tmp1);
+    $allang=strtolower($tmp2[0]);
+    $gtcs=strtoupper($tmp2[1]);
+    $noct=@preg_split("/-/",$allang);
+
+    if(!isset($alscores["*"])){
+      $alscores["*"] = "";
+    }
+
+    if(!isset($alscores[$allang])){
+      $alscores[$allang] = "";
+    }
+    
+    if(!isset($alscores[$noct[0]])){
+      $alscores[$noct[0]] = "";
+    }
+  
+    if(!isset($acscores[$gtcs])){
+      $acscores[$gtcs] = "";
+    }
+    $testvals=array(
+        array($alscores[$allang], $acscores[$gtcs]),
+        array($alscores[$noct[0]], $acscores[$gtcs]),
+        array($alscores[$allang], $acscores["*"]),
+        array($alscores[$noct[0]], $acscores["*"]),
+        array($alscores["*"], $acscores[$gtcs]),
+        array($alscores["*"], $acscores["*"]));
+
+    $found=FALSE;
+    foreach($testvals as $tval) {
+      if(!$found && isset($tval[0]) && isset($tval[1])) {
+        $arr=find_match($curlscore, $curcscore, $curgtlang, $tval[0],
+            $tval[1], $gtlang);
+        $curlscore=$arr[0];
+        $curcscore=$arr[1];
+        $curgtlang=$arr[2];
+        $found=TRUE;
+      }
+    }
+  }
+
+  /* We must re-parse the gettext-string now, since we may have found it
+   * through a "*" qualifier.*/
+  
+  $gtparts=@preg_split("/\./",$curgtlang);
+  $tmp=strtolower($gtparts[0]);
+  $lang=preg_replace("/\_/", "-", $tmp);
+  if (!headers_sent()){
+    header("Content-Language: $lang");
+    if(isset($gtparts[1])){
+      $charset=$gtparts[1];
+      header("Content-Type: $mime; charset=$charset");
+    }
+  }
+  return $curgtlang;
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_CopyPasteHandler.inc b/gosa-core/include/class_CopyPasteHandler.inc
new file mode 100644
index 0000000..9be0f4d
--- /dev/null
+++ b/gosa-core/include/class_CopyPasteHandler.inc
@@ -0,0 +1,578 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_CopyPasteHandler.inc 17913 2010-04-28 14:03:29Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define("LDAP_DUMP_PATH","/var/cache/gosa/tmp");
+
+class CopyPasteHandler {
+
+  var $config;
+  var $current;
+
+  /* This array contains all dns of the currently copyied objects */
+  var $queue       = array(); 
+
+  /* Attributes that should be overwritten */
+  var $setvar_array= array();
+
+  /* The dn of the last edited object */
+  var $lastdn      = "";
+  
+  var $disallowed_objects = array();
+  var $objects_to_fix     = array();
+  var $clean_objects      = array();
+  var $require_update     = FALSE;
+
+
+
+  /* Create CP handler  */
+  function CopyPasteHandler(&$config)
+  {
+    $this->config = &$config;	
+    $this->current= NULL;
+    $this->queue  = array();
+    $this->setvar_array = array();
+  }
+
+
+  /* Entry entry to Copy & Paste queue.
+   * A Queue entry is represented as follows.
+   *  array['file_name']  - Position on hdd 
+   *  array['method']     - copy/cut
+   *  array['dn']         - the dn of the object added to the queue 
+   *  array['tab_class']  - Tab object that should be used to initialize the new object
+   *  array['tab_object'] - Tab object name used to initialize correct object Type like USERTABS
+   */
+  function add_to_queue($dn,$action,$tab_class,$tab_object,$tab_acl_category,&$parent = NULL)
+  {
+    if(!class_available($tab_class)){
+      trigger_error(sprintf("Specified class object '%s' does not exists.",$tab_class));
+      return(FALSE);
+    }
+
+    if(!isset($this->config->data['TABS'][$tab_object])){
+      trigger_error(sprintf("Specified tab object '%s' does not exists.",$tab_object));
+      return(FALSE);
+    }
+
+    if(!in_array($action,array("cut","copy"))){
+      trigger_error(sprintf("Specified action '%s' does not exists for copy & paste.",$action));
+      return(FALSE);
+    } 
+
+    if($file_name = $this->save_dn_attributes_to_hdd($dn)){
+      $tmp = array();
+      $tmp['file_name'] = $file_name;
+      $tmp['method']    = $action;  
+      $tmp['dn']        = $dn;
+      $tmp['tab_class'] = $tab_class;
+      $tmp['tab_object']= $tab_object;
+      $tmp['tab_acl_category']= $tab_acl_category;
+      $tmp['parent']    = $parent;
+      $this->queue[]    = $tmp; 
+      $this->require_update = TRUE;
+    }
+  }
+
+
+  /* This removes all objects from queue.
+   * Remove hdd dumps of current entries too.
+   * Remove entries older than 24 hours.
+   */
+  function cleanup_queue()
+  {
+    $this->current = FALSE;
+    $this->require_update = TRUE;
+    $this->setvar_array = array();
+
+    /* Remove all entries from queue */  
+    foreach($this->queue as $key => $entry){
+      @rmdir($entry['file_name']);  
+      unset($this->queue[$key]);
+    }
+
+    /* Create patch if it doesn't exists */
+    if(!is_dir(LDAP_DUMP_PATH)){
+      @mkdir(LDAP_DUMP_PATH);
+
+      /* Update folder permissions */
+      if(!@chmod(LDAP_DUMP_PATH,0700)){
+        $msg= sprintf(_("Copy and paste failed!")."<br><br>"._("Error").": <i>"._("Cannot set permission for '%s'")."</i>" ,LDAP_DUMP_PATH);
+        msg_dialog::display(_("Configuration error"), $msg, ERROR_DIALOG);
+        new log("copy","all/all","copy & paste, event queue.",array(), $msg);
+        return(FALSE);
+      }
+    }    
+    
+    /* check if we are able to create a new file the given directory */
+    if(!is_writeable(LDAP_DUMP_PATH)){
+      $msg= _("Copy and paste failed!")."<br><br>"._("Error").": <i>".msgPool::cannotWriteFile(LDAP_DUMP_PATH)."</i>";
+      msg_dialog::display(_("Configuration error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all","copy & paste, event queue.",array(), $msg);
+      return(FALSE);
+    }
+
+    /* Remove entries from hdd that are older than24 hours */
+    $fp = opendir(LDAP_DUMP_PATH);
+    while($file = readdir($fp)){
+      if(is_file(LDAP_DUMP_PATH."/".$file) && !preg_match("/^\./",$file)){
+        $file_time = fileatime(LDAP_DUMP_PATH."/".$file);
+        if($file_time < (time() - (24* 60 *60))){
+          @unlink(LDAP_DUMP_PATH."/".$file);
+        }
+      }
+    }
+  }
+
+
+  /* To increase performance we save the ldap dump on hdd 
+   * This function automatically creates the dumps and returns 
+   *  the name of the dumpfile we created 
+   */
+  function save_dn_attributes_to_hdd($dn)
+  {
+    $filename = "Should not be returned";
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $res  = $ldap->cat($dn);
+
+    /* Check if given dn is valid and ldap search was succesfull */ 
+    if(!$res){
+      $msg= sprintf(_("Copy and paste failed!")."<br><br>"._("Error").": <i>"._("'%s' is no vaild LDAP object"), LDAP::fix($dn));
+      msg_dialog::display(_("Internal error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all",$dn,array(), $msg);
+      return(FALSE);
+    }
+
+    /* Create data to save given ldap dump on the hdd */
+    $filename = "gosa_copy-paste_dump_".preg_replace("/[^0-9]/","",microtime());
+    $path     = LDAP_DUMP_PATH;
+
+    /* Create patch if it doesn't exists */
+    if(!is_dir($path)){
+      @mkdir($path);
+    }    
+
+    /* check if we are able to create a new file the given directory */
+    if(!is_writeable($path)){
+      $msg= sprintf(_("Copy and paste failed!")."<br><br>"._("Error").": <i>"._("No write permission in '%s'"),LDAP_DUMP_PATH);
+      msg_dialog::display(_("Configuration error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all",$dn,array(), $msg);
+      return(FALSE);
+    }  
+
+    /* Create file handle */
+    $fp = @fopen($path."/".$filename,"w+");
+    if(!$fp){
+      $msg= _("Copy and paste failed!")."<br><br>"._("Error").": <i>".msgPool::cannotWriteFile("$path/$filename")."</i>";
+      msg_dialog::display(_("Configuration error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all",$dn,array(), $msg);
+      return(FALSE);
+    }    
+
+    /* Update folder permissions */
+    if(!@chmod($path."/".$filename,0700)){
+      $msg= sprintf(_("Copy and paste failed!")."<br><br>"._("Error").": <i>"._("Cannot set permission for '%s'"),LDAP_DUMP_PATH);
+      msg_dialog::display(_("Configuration error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all","copy & paste, event queue.",array(), $msg);
+      return(FALSE);
+    }
+
+    $data = serialize($ldap->fetch());
+    fwrite($fp,$data,strlen($data));
+    fclose($fp);
+
+    /* Only the webserver should be able to read those files */
+    @chmod($path."/".$filename,0600); 
+    return($path."/".$filename);
+  }
+
+
+  /* Check if there are still entries the object queue */
+  function entries_queued()
+  {
+    return( count($this->queue) >=1 || $this->current != FALSE);
+  }
+
+
+  /* Paste one entry from queue */
+  function load_entry_from_queue($entry)
+  {
+    if(!isset($entry['tab_class'])){
+      return(array());
+    }
+
+
+    $tab_c = $entry['tab_class'];
+    $tab_o = $entry['tab_object'];
+    $tab_a = $entry['tab_acl_category'];
+    $parent = $entry['parent'];
+
+    if($entry['method'] == "copy"){
+      $entry['object']      = new $tab_c($this->config,$this->config->data['TABS'][$tab_o],"new",$tab_a);
+    }else{
+      $entry['object']      = new $tab_c($this->config,$this->config->data['TABS'][$tab_o],$entry['dn'],$tab_a);
+    }
+
+    if($parent ){
+      $entry['object']->parent = $parent;
+    }
+    $entry['source_data'] = $this->load_attributes_from_hdd($entry['file_name']);
+
+    if($entry['method'] == "copy"){
+
+      /* Prepare each plugin of this tab object to be posted */
+      foreach($entry['object']->by_object as $name => $obj){
+
+        /* Prepare every single class, to be copied  */
+        $entry['object']->by_object[$name]->PrepareForCopyPaste($entry['source_data']);
+
+        /* handle some special vars */
+        foreach(array("is_account") as $attr){
+          if(isset($entry['source_data'][$attr])){
+            $entry['object']->by_object[$name]->$attr = $entry['source_data'][$attr];
+          }
+        }
+      }
+    }
+    return($entry);
+  }
+
+
+  /* Load dumped ldap entry specified by $filename and 
+   *  return data an unserailized data array
+   */
+  function load_attributes_from_hdd($filename)
+  {
+    $fp = @fopen($filename,"r");
+    if(is_file($filename) && is_readable($filename) && $fp){
+      $data = "";
+      while($str = fgets($fp,512)){
+        $data .= $str;
+      }
+      return(unserialize($data));
+    }else{
+      $msg= sprintf(_("Copy and paste failed!")."<br><br>"._("Error").": <i>".msgPool::cannotReadFile($filename)."</i>");
+      msg_dialog::display(_("Internal error"), $msg, ERROR_DIALOG);
+      new log("copy","all/all",$dn,array(), $msg);
+      return(FALSE);
+    }
+  }
+
+
+  /* Displays a dialog which allows the user to fix all dependencies of this object.
+     Create unique names, ids, or what ever */
+  function execute()
+  {
+    $ui = get_userinfo();
+    $type = $this->current['method'];
+
+    /* Check which entries can be pasted directly.
+     * Create a list of all entries that can be pasted directly.
+     */
+    if($this->require_update){
+      $this->clean_objects      = array();
+      $this->objects_to_fix     = array();
+      $this->disallowed_objects = array();
+
+      /* Put each queued object in one of the above arrays 
+       */
+      foreach($this->queue as $key => $entry){
+
+        /* Update entries on demand 
+         */
+        if(!isset($entry['object'])){
+          $entry = $this->load_entry_from_queue($entry);
+          $this->queue[$key] = $entry;
+        }
+        $entry= $this->_update_vars($entry);
+        $msgs = $entry['object']->check();
+
+        /* To copy an object we require full read access to the object category 
+         */
+        $copy_acl = preg_match("/r/",$ui->has_complete_category_acls($entry['dn'], $entry['tab_acl_category']));
+
+        /* In order to copy an object we require read an delete acls 
+         */
+        $cut_acl  = preg_match("/d/",$ui->has_complete_category_acls($entry['dn'], $entry['tab_acl_category']));
+        $cut_acl &= preg_match("/r/",$ui->has_complete_category_acls($entry['dn'], $entry['tab_acl_category']));
+
+        /* Check permissions */
+        if($entry['method'] == "copy" && !$copy_acl){
+          $this->disallowed_objects[$key] = $entry;
+        }elseif($entry['method'] == "cut" && !$cut_acl){
+          $this->disallowed_objects[$key] = $entry;
+        }elseif(!count($msgs)){
+          $this->clean_objects[$key]  = $entry;
+        }else{
+          $this->objects_to_fix[$key] = $entry;
+        }
+      }
+      if(count($this->disallowed_objects)){
+        $dns = array();
+        foreach($this->disallowed_objects as $entry){
+          $dns[] = $entry['dn'];
+        }
+#        msg_dialog::display(_("Permission"),msgPool::permCreate($dns),INFO_DIALOG);
+      }
+      $this->require_update = FALSE;
+    }
+
+    /* Save objects that can be pasted directly 
+     */
+    if(isset($_POST['PerformCopyPaste']) && count($this->clean_objects)){
+      $this->save_object();
+      $this->current = FALSE;
+      foreach($this->clean_objects as $key => $entry){
+
+        /* Remove from queue -> avoid saving twice */
+        unset($this->queue[$key]);
+        unset($this->clean_objects[$key]);
+
+        /* Load next queue entry */
+        $this->current = $entry;
+        $this->lastdn = $this->current['object']->dn;
+        $this->current= $this->_update_vars($this->current);
+        $this->current['object']->save();
+        $this->handleReferences();
+        $this->current = FALSE;
+      } 
+    }
+
+    /* Save edited entry and force loading new one 
+     */
+    if(isset($this->current['object']) && method_exists($this->current['object'],"saveCopyDialog")) {
+      $this->current['object']->saveCopyDialog();
+    }
+
+    if(isset($_POST['PerformCopyPaste']) && $this->current){
+      $msgs = $this->check();
+
+      /* Load next queue entry */
+      if(!count($msgs)){
+        $this->current['object']->save();
+        $this->handleReferences();
+        $this->lastdn = $this->current['object']->dn;
+        $this->current = FALSE;
+      }else{
+        foreach( $msgs as $msg){
+          msg_dialog::display(_("Error"), $msg, ERROR_DIALOG);
+        }
+      }
+    }
+      
+    /* Display a list of all pastable entries 
+     */
+    if(count($this->clean_objects)){
+      
+      $dns = array();
+      foreach($this->clean_objects as $object){
+        $dns[] = $object['dn'];
+      }
+
+      $smarty = get_smarty();
+      $smarty->assign("type","directly");
+      $smarty->assign("Complete",false);
+      $smarty->assign("AttributesToFix"," ");
+      $smarty->assign("SubDialog","");
+      $smarty->assign("message"  , sprintf(_("These objects will be pasted: %s"), "<br>".msgPool::buildList($dns)));
+      return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE)));
+    }
+
+    /* Display a list of all pastable entries 
+     */
+    if($this->current || count($this->objects_to_fix)){
+      $this->save_object(); 
+      if(!$this->current){
+        $key = key($this->objects_to_fix);
+        if(isset($this->objects_to_fix[$key])){
+          $this->current = $this->objects_to_fix[$key];
+          $this->current= $this->_update_vars($this->current);
+          unset($this->objects_to_fix[$key]);
+          unset($this->queue[$key]); 
+        }
+      }
+      if($this->current){
+        $smarty = get_smarty();
+        $smarty->assign("type","modified");
+        $smarty->assign("Complete",false);
+        $smarty->assign("AttributesToFix",$this->generateAttributesToFix());
+        $smarty->assign("SubDialog",$this->current['object']->SubDialog);
+        $smarty->assign("objectDN",$this->current['source_data']['dn']);
+        $smarty->assign("message", sprintf(_("This object will be pasted: %s"), "<br><br>".$this->current['source_data']['dn']));
+        return($smarty->fetch(get_template_path("copyPasteDialog.tpl",FALSE)));
+      }
+    }
+    return("");
+  }
+
+
+  /* Return the dn of the last edited entry */
+  function last_entry()
+  {
+    return($this->lastdn);
+  }
+
+
+  /* Save new values posted by copy & paste dialog */
+  function save_object()
+  {
+    if(isset($_POST['abort_current_cut-copy_operation'])){
+      $this->current = FALSE;
+    }
+
+    if(isset($_POST['abort_all_cut-copy_operations'])){
+      $this->cleanup_queue();
+      $this->current = FALSE;
+    }
+  }
+
+
+  /* Create dialog which asks unique attributes/values ... 
+   *  call tabs -> getCopyDialog() 
+   *    which calls tab -> getCopyDialog()  */
+  function generateAttributesToFix()
+  {
+    if($this->current){
+      return($this->current['object']->getCopyDialog());  
+    }
+  }
+
+
+  /* Set a single attribute to specified value
+   *  example :   ("base", $newBase );    */
+  function SetVar($name,$value)
+  {
+    $this->setvar_array[$name]=$value; 
+  }
+
+
+  /* Update current object attributes, collected via SetVar */
+  function _update_vars($entry)
+  {
+    /* Update all attributes specified with SetVar */
+    foreach($this->setvar_array as $name => $value){
+      if(isset($entry['object']->$name)){
+        $entry['object']->$name = $value;
+      }
+    }
+
+    /* Walk through tabs */
+    foreach($entry['object']->by_object as $key => $obj){
+
+      /* Update all attributes specified with SetVar */
+      foreach($this->setvar_array as $name => $value){
+
+        /* Do not update parent for plugins, this may break things */
+        if($name == "parent") continue;
+
+        if(isset($entry['object']->by_object[$key]->$name)){
+          $entry['object']->by_object[$key]->$name = $value;
+        }
+      }
+    }
+    return($entry);
+  }
+
+
+  /* Returns errors from including tabs. */
+  function check()
+  {
+    $ret = array();
+    foreach($this->current['object']->by_object as $obj){
+      if($obj->is_account || $obj->ignore_account){
+        $ret = array_merge($ret , $obj->check());
+      }
+    }
+    return($ret);
+  }
+
+
+  function handleReferences()
+  {
+    $dst_dn = $this->current['object']->dn;
+    $src_dn = $this->current['dn'];
+
+    // Only copy references if required 
+    if($this->current['method'] != 'copy') return;
+
+    // Migrate objectgroups
+    $ogroups = get_sub_list("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter(LDAP::fix($src_dn))."))",
+            "ogroups", array(get_ou("ogroupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+    // Walk through all objectGroups
+    foreach($ogroups as $ogroup){
+        $o_ogroup= new ogroup($this->config,$ogroup['dn']);
+        $o_ogroup->member[$dst_dn]= $dst_dn;
+        $o_ogroup->save();
+    }
+
+    // Update roles 
+    $roles = get_sub_list("(&(objectClass=organizationalRole)(roleOccupant=".LDAP::prepare4filter(LDAP::fix($src_dn))."))",
+            "roles", array(get_ou("roleRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+    // Walk through all roles
+    foreach($roles as $role){
+        $role = new roleGeneric($this->config,$role['dn']);
+        $role->roleOccupant[] = $dst_dn;
+        $role->save();
+    }
+
+    // Update groups
+    if(isset($this->current['object']->uid) && !empty($this->current['object']->uid)){
+
+        $ldap = $this->config->get_ldap_link();
+        $ldap->cd($this->config->current['BASE']);
+        $ldap->cat($src_dn);
+        $attrs = $ldap->fetch();
+        if(isset($attrs['uid'][0])){
+            $suid = $attrs['uid'][0];
+
+            $uid = $this->current['object']->uid;
+            $groups = get_sub_list("(&(objectClass=posixGroup)(memberUid={$suid}))",
+                    "groups",array(get_ou("groupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+            // Walk through all POSIX groups
+            foreach($groups as $group){
+                $o_group= new group($this->config,$group['dn']);
+                $o_group->addUser($uid);
+                $o_group->save();
+            }
+        }
+    }
+  }
+
+  /* returns the paste icon for headpages */ 
+  function generatePasteIcon()
+  {
+    $Copy_Paste= " <img class='center' src='images/lists/seperator.png' align='middle' alt='' height='16' width='1'> ";
+    if($this->entries_queued()){
+      $img= "images/lists/paste.png";
+      $Copy_Paste.= "<input type='image' name='editPaste' class='center'
+        src='".$img."' alt='"._("Paste")."'> ";
+    }else{
+      $Copy_Paste.= "<img class='center' src='images/lists/paste-grey.png' alt=\""._("Cannot paste")."\"> ";
+    }
+    return ($Copy_Paste);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_SnapShotDialog.inc b/gosa-core/include/class_SnapShotDialog.inc
new file mode 100644
index 0000000..98f53a5
--- /dev/null
+++ b/gosa-core/include/class_SnapShotDialog.inc
@@ -0,0 +1,190 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_SnapShotDialog.inc 15567 2010-02-02 07:26:40Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Snap shot dialog class */
+class SnapShotDialog extends plugin 
+{
+	var $config;
+	var $attributes= array("CurrentDescription");
+	var $CurrentDescription= "";
+	var $parent= NULL;
+	var $display_restore_dialog= false;		      /* Defines the restore mode */
+	var $display_all_removed_objects= false; 		/* Specifies which objects will be listed, all
+                                                 snapshots for a single entry or all snapshots
+                                                 of already deleted objects  */	
+	var $dialog= true;
+	var $del_dn= "";
+	var $ui;
+	var $acl;
+  var $dns = array();
+  var $snap_shot_bases = array();
+  var $last_list = array();
+
+	
+	function SnapShotDialog(&$config, $dn, &$parent)
+	{
+    plugin::plugin($config,$dn);
+    $this->parent 	= &$parent;
+		$this->ui 		  = get_userinfo();
+	}
+
+  
+  /* Show deleted snapshots from these bases */
+  function set_snapshot_bases($bases)
+  {
+    $this->snap_shot_bases = $bases;
+  }
+	
+	
+	/* Display snapshot dialog */
+	function execute()
+	{
+		plugin::execute();
+		$smarty = get_smarty();
+
+    $ui = get_userinfo();
+		$once = true;
+		foreach($_POST as $name => $value){
+			if((preg_match("/^RemoveSnapShot_/",$name)) && ($once)){
+				$once = false;
+        $entry = preg_replace("/^RemoveSnapShot_/","",$name);
+        $entry = base64_decode(preg_replace("/_[xy]$/","",$entry));
+        $found = false;
+        foreach($this->last_list as $t_stamp => $obj){
+          if($obj['dn'] == $entry){
+            $found = true;
+            break;
+          }
+        }
+
+        if($found){
+          $this->del_dn 	= $entry;
+          $smarty= get_smarty();
+          $smarty->assign("intro", sprintf(_("You're about to delete the snapshot '%s'."), LDAP::fix($this->del_dn)));
+          return($smarty->fetch (get_template_path('remove.tpl')));
+        }
+      }
+    }
+
+    /* Remove snapshot */
+    if(isset($_POST['delete_confirm']) && !empty($this->del_dn)){
+      $this->remove_snapshot($this->del_dn);
+      $this->del_dn = "";
+		}
+
+		/* We must restore a snapshot */
+
+		if($this->display_restore_dialog){
+
+			/* Should we only display all snapshots of already deleted objects 
+                or the snapshots for the given object dn */
+			$res = array();
+			$tmp = array();
+			if($this->display_all_removed_objects){
+				if(count($this->snap_shot_bases)){
+					foreach($this->snap_shot_bases as $dn){
+						$tmp = array_merge($tmp,$this->getAllDeletedSnapshots($dn,true));
+					}
+				}else{
+					$tmp = $this->getAllDeletedSnapshots($this->snap_shot_bases,true);
+				}
+			}else{
+				$tmp = $this->Available_SnapsShots($this->dn,true);
+			}
+
+			$DivListSnapShots = new divSelectBox("SnapShotRestore");
+			$DivListSnapShots->SetHeight(180);
+
+			$list_of_elements = array();			
+			
+			/* Walk through all entries and setup the display text */
+			foreach($tmp as $key => $entry){
+    
+        /* Check permissions */
+        $TimeStamp = $entry['gosaSnapshotTimestamp'][0];
+        $list_of_elements[$TimeStamp] = $entry;
+			}
+
+			/* Sort generated list */
+			krsort($list_of_elements);
+	
+			/* Add Elements to divlist */	
+      $this->last_list = $list_of_elements;
+			foreach($list_of_elements as $entry){
+
+        $actions= "<input type='image' src='images/lists/restore.png' name='RestoreSnapShot_%KEY' 
+          class='center' title='"._("Restore snapshot")."'> ";
+        $actions.= "<input type='image' src='images/lists/trash.png' name='RemoveSnapShot_%KEY' 
+          class='center' title='"._("Remove snapshot")."'> ";
+
+				$time_stamp 	= date(_("Y-m-d, H:i:s"),preg_replace("/\-.*$/","",$entry['gosaSnapshotTimestamp'][0]));
+				$display_data 	= $entry['description'][0];
+
+				if($this->display_all_removed_objects){
+					$display_data.= " - ".$entry['gosaSnapshotDN'][0];
+				}
+
+				$field0 = array("string"=> $time_stamp , "attach"=> "style='vertical-align:top;width:120px;'");
+				$field1 = array("string"=> htmlentities (utf8_decode(LDAP::fix($display_data))), "attach"=> "");
+				$field2 = array("string"=> str_replace("%KEY",base64_encode($entry['dn']),$actions) , 
+								"attach"=> "style='border-right:0px;vertical-align:top;width:40px;text-align:right;'");
+				$DivListSnapShots->AddEntry(array($field0,$field1,$field2));
+			}		
+
+			$smarty->assign("SnapShotDivlist",$DivListSnapShots->DrawList());	
+			$smarty->assign("CountSnapShots",count($list_of_elements));
+		}
+
+		$smarty->assign("restore_deleted",$this->display_all_removed_objects);
+		$smarty->assign("RestoreMode",$this->display_restore_dialog);
+		$smarty->assign("CurrentDate",date(_("Y-m-d, H:i:s")));
+		$smarty->assign("CurrentDN",LDAP::fix($this->dn));
+		$smarty->assign("CurrentDescription",$this->CurrentDescription);
+		return($smarty->fetch(get_template_path("snapshotdialog.tpl")));
+	}
+
+
+	function check()
+	{
+		$message = plugin::check();
+		if(!$this->display_restore_dialog){
+			if(empty($this->CurrentDescription)){
+        $message[]= msgPool::invalid(_("Description"));
+			}
+		}
+		return($message);
+	}
+
+
+	function save_object()
+	{	
+		plugin::save_object();
+		foreach($this->attributes as $name){
+			if(isset($_POST[$name])){
+				$this->$name = stripslashes($_POST[$name]);
+			}
+		}
+	}
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_SnapshotHandler.inc b/gosa-core/include/class_SnapshotHandler.inc
new file mode 100644
index 0000000..e3221d1
--- /dev/null
+++ b/gosa-core/include/class_SnapshotHandler.inc
@@ -0,0 +1,525 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_SnapshotHandler.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+class SnapshotHandler {
+
+  var $config;
+  var $isEnabled= false;
+  var $snapshotBases= array();
+
+
+  /* Create handler  */
+  function SnapshotHandler(&$config)
+  {
+    $this->config = &$config;	
+    $config = $this->config;
+
+    if($config->get_cfg_value("enableSnapshots") == "true"){
+
+      /* Check if the snapshot_base is defined */
+      if ($config->get_cfg_value("snapshotBase") == ""){
+
+        /* Send message if not done already */
+        if(!session::is_set("snapshotFailMessageSend")){
+          session::set("snapshotFailMessageSend",TRUE);
+          msg_dialog::display(_("Configuration error"),
+              sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),
+                "snapshotBase"), ERROR_DIALOG);
+        }
+        return;
+      }
+
+      /* Check if the snapshot_base is defined */
+      if (!is_callable("gzcompress")){
+
+        /* Send message if not done already */
+        if(!session::is_set("snapshotFailMessageSend")){
+          session::set("snapshotFailMessageSend",TRUE);
+          msg_dialog::display(_("Configuration error"),
+              sprintf(_("The snapshot functionality is enabled, but the required compression module is missing. Please install '%s'."),"php5-zip / php5-gzip"), ERROR_DIALOG);
+        }
+        return;
+      }
+
+      /* check if there are special server configurations for snapshots */
+      if ($config->get_cfg_value("snapshotURI") != ""){
+
+        /* check if all required vars are available to create a new ldap connection */
+        $missing = "";
+        foreach(array("snapshotURI","snapshotAdminDn","snapshotAdminPassword","snapshotBase") as $var){
+          if($config->get_cfg_value($var) == ""){
+            $missing .= $var." ";
+
+            /* Send message if not done already */
+            if(!session::is_set("snapshotFailMessageSend")){
+              session::set("snapshotFailMessageSend",TRUE);
+              msg_dialog::display(_("Configuration error"),
+                  sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),
+                    $missing), ERROR_DIALOG);
+            }
+            return;
+          }
+        }
+      }
+      $this->isEnabled= true;
+      return;
+    }
+  }
+
+
+  function enabled()
+  {
+    return $this->isEnabled;
+  }   
+
+
+  function setSnapshotBases($bases)
+  {
+    $this->snapshotBases= $bases;
+  }
+
+
+  function getSnapshotBases()
+  {
+    return $this->snapshotBases;
+  }
+
+
+  function get_snapshot_link()
+  {
+    $snapshotLdap= null;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") != ""){
+      $server= $this->config->get_cfg_value("snapshotURI");
+      $user= $this->config->get_cfg_value("snapshotAdminDn");
+      $password= $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapshotLdap= new ldapMultiplexer(new LDAP($user,$password, $server));
+    }
+
+    /* Prepare bases */
+    $this->snapshotLdapBase= $this->config->get_cfg_value("snapshotBase");
+    $snapshotLdap->cd($this->snapshotLdapBase);
+    if (!$snapshotLdap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($snapshotLdap->get_error(), $this->snapshotLdapBase, "", get_class()));
+    }
+
+    return $snapshotLdap;
+  }
+
+
+  function getDeletedSnapshots($objectBase, $raw= false)
+  {
+    // Skip if not enabled
+    if(!$this->enabled()){
+      return(array());
+    }
+
+    // Load user info
+    $ui= get_userinfo();
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $snapshotLdap= $this->get_snapshot_link();
+    if (!$snapshotLdap) {
+      $snapshotLdap= $ldap;
+    }
+
+    // Initialize base
+    $base= preg_replace("/".preg_quote($this->config->current['BASE'], '/')."$/",
+                        "", $objectBase).$this->snapshotLdapBase;
+
+    /* Fetch all objects and check if they do not exist anymore */
+    $objects= array();
+    $snapshotLdap->cd($base);
+    $snapshotLdap->ls("(objectClass=gosaSnapshotObject)", $base,
+                      array("gosaSnapshotType", "gosaSnapshotTimestamp", "gosaSnapshotDN", "description"));
+    while($entry = $snapshotLdap->fetch()){
+
+      $chk =  str_replace($base,"",$entry['dn']);
+      if(preg_match("/,ou=/",$chk)) continue;
+
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $objects[] = $entry;
+    }
+
+    /* Check if entry still exists */
+    foreach($objects as $key => $entry){
+      $ldap->cat($entry['gosaSnapshotDN'][0]);
+      if($ldap->count()){
+        unset($objects[$key]);
+      }
+    }
+
+    /* Format result as requested */
+    if($raw) {
+      return($objects);
+    }else{
+      $tmp = array();
+      foreach($objects as $key => $entry){
+        $tmp[base64_encode($entry['dn'])] = $entry['description'][0];
+      }
+    }
+    return($tmp);
+  }
+
+
+  function hasSnapshots($dn)
+  {
+    return (count($this->getSnapshots($dn)) > 0);
+  }
+
+
+  function getSnapshots($dn, $raw= false)
+  {
+    // Empty if disabled
+    if(!$this->enabled()){
+      return(array());
+    }
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+
+    // Load snapshot LDAP connection
+    $snapshotLdap= $this->get_snapshot_link();
+    if (!$snapshotLdap) {
+      $snapshotLdap= $ldap;
+    }
+
+    $objectBase= preg_replace("/^[^,]*./","",$dn);
+
+    // Initialize base
+    $base= preg_replace("/".preg_quote($this->config->current['BASE'], '/')."$/",
+                        "", $objectBase).$this->snapshotLdapBase;
+
+    /* Fetch all objects with  gosaSnapshotDN=$dn */
+    $snapshotLdap->cd($base);
+    $snapshotLdap->ls("(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=".$dn."))",$base,
+        array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description"));
+
+    /* Put results into a list and add description if missing */
+    $objects= array();
+    while($entry = $snapshotLdap->fetch()){
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $objects[] = $entry;
+    }
+
+    /* Return the raw array, or format the result */
+    if($raw){
+      return($objects);
+    }else{
+      $tmp = array();
+      foreach($objects as $entry){
+        $tmp[base64_encode($entry['dn'])] = $entry['description'][0];
+      }
+    }
+    return($tmp);
+  }
+
+
+   /* Create a snapshot of the current object */
+  function create_snapshot($dn, $description= array())
+  {
+
+    /* Check if snapshot functionality is enabled */
+    if(!$this->snapshotEnabled()){
+      return;
+    }
+
+    /* Get configuration from gosa.conf */
+    $config = $this->config;
+
+    /* Create lokal ldap connection */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+
+    /* check if there are special server configurations for snapshots */
+    if($config->get_cfg_value("snapshotURI") == ""){
+
+      /* Source and destination server are both the same, just copy source to dest obj */
+      $ldap_to      = $ldap;
+      $snapldapbase = $this->config->current['BASE'];
+
+    }else{
+      $server         = $config->get_cfg_value("snapshotURI");
+      $user           = $config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $config->get_cfg_value("snapshotBase");
+
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+
+    }
+
+    /* check if the dn exists */
+    if ($ldap->dn_exists($dn)){
+
+      /* Extract seconds & mysecs, they are used as entry index */
+      list($usec, $sec)= explode(" ", microtime());
+
+      /* Collect some infos */
+      $base           = $this->config->current['BASE'];
+      $snap_base      = $config->get_cfg_value("snapshotBase");
+      $base_of_object = preg_replace ('/^[^,]+,/i', '', $dn);
+      $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+
+      /* Create object */
+#$data             = preg_replace('/^dn:.*\n/', '', $ldap->gen_ldif($dn,"(!(objectClass=gosaDepartment))"));
+      $data             = $ldap->gen_ldif($dn,"(&(!(objectClass=gosaDepartment))(!(objectClass=FAIclass)))");
+      $newName          = str_replace(".", "", $sec."-".$usec);
+      $target= array();
+      $target['objectClass']            = array("top", "gosaSnapshotObject");
+      $target['gosaSnapshotData']       = gzcompress($data, 6);
+      $target['gosaSnapshotType']       = "snapshot";
+      $target['gosaSnapshotDN']         = $dn;
+      $target['description']            = $description;
+      $target['gosaSnapshotTimestamp']  = $newName;
+
+      /* Insert the new snapshot
+         But we have to check first, if the given gosaSnapshotTimestamp
+         is already used, in this case we should increment this value till there is
+         an unused value. */
+      $new_dn                           = "gosaSnapshotTimestamp=".$newName.",".$new_base;
+      $ldap_to->cat($new_dn);
+      while($ldap_to->count()){
+        $ldap_to->cat($new_dn);
+        $newName = str_replace(".", "", $sec."-".($usec++));
+        $new_dn                           = "gosaSnapshotTimestamp=".$newName.",".$new_base;
+        $target['gosaSnapshotTimestamp']  = $newName;
+      }
+      /* Inset this new snapshot */
+      $ldap_to->cd($snapldapbase);
+      $ldap_to->create_missing_trees($snapldapbase);
+      $ldap_to->create_missing_trees($new_base);
+      $ldap_to->cd($new_dn);
+      $ldap_to->add($target);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $new_dn, LDAP_ADD, get_class()));
+      }
+
+      if (!$ldap->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $new_base, "", get_class()));
+      }
+
+    }
+  }
+
+  function remove_snapshot($dn)
+  {
+    $ui       = get_userinfo();
+    $old_dn   = $this->dn;
+    $this->dn = $dn;
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->rmdir_recursive($this->dn);
+    if(!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn));
+    }
+    $this->dn = $old_dn;
+  }
+ /* returns true if snapshots are enabled, and false if it is disalbed
+     There will also be some errors psoted, if the configuration failed */
+  function snapshotEnabled()
+  {
+    return $this->config->snapshotEnabled();
+  }
+
+
+  /* Return available snapshots for the given base
+   */
+  function Available_SnapsShots($dn,$raw = false)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+    /* Prepare bases and some other infos */
+    $base           = $this->config->current['BASE'];
+    $snap_base      = $this->config->get_cfg_value("snapshotBase");
+    $base_of_object = preg_replace ('/^[^,]+,/i', '', $dn);
+    $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+    $tmp            = array();
+
+    /* Fetch all objects with  gosaSnapshotDN=$dn */
+    $ldap_to->cd($new_base);
+    $ldap_to->ls("(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=".$dn."))",$new_base,
+        array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description"));
+
+    /* Put results into a list and add description if missing */
+    while($entry = $ldap_to->fetch()){
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $tmp[] = $entry;
+    }
+
+    /* Return the raw array, or format the result */
+    if($raw){
+      return($tmp);
+    }else{
+      $tmp2 = array();
+      foreach($tmp as $entry){
+        $tmp2[base64_encode($entry['dn'])] = $entry['description'][0];
+      }
+    }
+    return($tmp2);
+  }
+ function getAllDeletedSnapshots($base_of_object,$raw = false)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+
+    /* Prepare bases */
+    $base           = $this->config->current['BASE'];
+    $snap_base      = $this->config->get_cfg_value("snapshotBase");
+    $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+  /* Fetch all objects and check if they do not exist anymore */
+    $ui = get_userinfo();
+    $tmp = array();
+    $ldap_to->cd($new_base);
+    $ldap_to->ls("(objectClass=gosaSnapshotObject)",$new_base,array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description"));
+    while($entry = $ldap_to->fetch()){
+
+      $chk =  str_replace($new_base,"",$entry['dn']);
+      if(preg_match("/,ou=/",$chk)) continue;
+
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $tmp[] = $entry;
+    }
+
+    /* Check if entry still exists */
+    foreach($tmp as $key => $entry){
+      $ldap->cat($entry['gosaSnapshotDN'][0]);
+      if($ldap->count()){
+        unset($tmp[$key]);
+      }
+    }
+
+    /* Format result as requested */
+    if($raw) {
+      return($tmp);
+    }else{
+      $tmp2 = array();
+      foreach($tmp as $key => $entry){
+        $tmp2[base64_encode($entry['dn'])] = $entry['description'][0];
+      }
+    }
+    return($tmp2);
+  }
+
+
+ /* Restore selected snapshot */
+  function restore_snapshot($dn)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+
+    /* Get the snapshot */
+    $ldap_to->cat($dn);
+    $restoreObject = $ldap_to->fetch();
+
+    /* Prepare import string */
+    $data  = gzuncompress($ldap_to->get_attribute($dn,'gosaSnapshotData'));
+
+    /* Import the given data */
+    $err = "";
+    $ldap->import_complete_ldif($data,$err,false,false);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, "", get_class()));
+    }
+  }
+
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_acl.inc b/gosa-core/include/class_acl.inc
new file mode 100644
index 0000000..0a10ca7
--- /dev/null
+++ b/gosa-core/include/class_acl.inc
@@ -0,0 +1,1365 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_acl.inc 15616 2010-02-12 13:26:55Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \brief ACL management plugin */ 
+class acl extends plugin
+{
+  /* Definitions */
+  var $plHeadline= "Access control";
+  var $plDescription= "Manage access control lists";
+
+  /* attribute list for save action */
+  var $attributes= array('gosaAclEntry');
+  var $objectclasses= array('gosaAcl');
+
+  /* Helpers */
+  var $dialogState= "head";
+  var $gosaAclEntry= array();
+  var $aclType= "";
+  var $aclObject= "";
+  var $aclContents= array();
+  var $target= "group";
+  var $aclTypes= array();
+  var $aclObjects= array();
+  var $aclFilter= "";
+  var $aclMyObjects= array();
+  var $users= array();
+  var $roles= array();
+  var $groups= array();
+  var $recipients= array();
+  var $isContainer= FALSE;
+  var $currentIndex= 0;
+  var $wasNewEntry= FALSE;
+  var $ocMapping= array();
+  var $savedAclContents= array();
+  var $myAclObjects = array();
+  var $acl_category = "acl/";
+
+  function acl (&$config, $parent, $dn= NULL)
+  {
+    /* Include config object */
+    plugin::plugin($config, $dn);
+
+    /* Load ACL's */
+    $this->gosaAclEntry= array();
+    if (isset($this->attrs['gosaAclEntry'])){
+      for ($i= 0; $i<$this->attrs['gosaAclEntry']['count']; $i++){
+        $acl= $this->attrs['gosaAclEntry'][$i];
+        $this->gosaAclEntry= array_merge($this->gosaAclEntry, acl::explodeACL($acl));
+      }
+    }
+    ksort($this->gosaAclEntry);
+
+    /* Save parent - we've to know more about it than other plugins... */
+    $this->parent= &$parent;
+
+    /* Container? */
+    if (preg_match('/^(o|ou|c|l|dc)=/i', $dn)){
+      $this->isContainer= TRUE;
+    }
+
+    /* Users */
+    $ui= get_userinfo();
+    $tag= $ui->gosaUnitTag;
+    $ldap= $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    if ($tag == ""){
+      $ldap->search('(objectClass=gosaAccount)', array('uid', 'cn'));
+    } else {
+      $ldap->search('(&(objectClass=gosaAccount)(gosaUnitTag='.$tag.'))', array('uid', 'cn'));
+    }
+    while ($attrs= $ldap->fetch()){
+
+      // Allow objects without cn to be listed without causing an error.
+      if(!isset($attrs['cn'][0]) && isset($attrs['uid'][0])){
+        $this->users['U:'.$attrs['dn']]=  $attrs['uid'][0];
+      }elseif(!isset($attrs['uid'][0]) && isset($attrs['cn'][0])){
+        $this->users['U:'.$attrs['dn']]=  $attrs['cn'][0];
+      }elseif(!isset($attrs['uid'][0]) && !isset($attrs['cn'][0])){
+        $this->users['U:'.$attrs['dn']]= $attrs['dn'];
+      }else{
+        $this->users['U:'.$attrs['dn']]= $attrs['cn'][0].' ['.$attrs['uid'][0].']';
+      }
+
+    }
+    ksort($this->users);
+
+    /* Groups */
+    $ldap->cd($config->current['BASE']);
+#    if ($tag == ""){
+      $ldap->search('(objectClass=posixGroup)', array('cn', 'description'));
+#    } else {
+#      $ldap->search('(&(objectClass=posixGroup)(gosaUnitTag='.$tag.'))', array('cn', 'description'));
+#    }
+    while ($attrs= $ldap->fetch()){
+      $dsc= "";
+      if (isset($attrs['description'][0])){
+        $dsc= $attrs['description'][0];
+      }
+      $this->groups['G:'.$attrs['dn']]= $attrs['cn'][0].' ['.$dsc.']';
+    }
+    $this->groups['G:*']= _("All users");
+    ksort($this->groups);
+
+    /* Roles */
+    $ldap->cd($config->current['BASE']);
+#    if ($tag == ""){
+      $ldap->search('(objectClass=gosaRole)', array('cn', 'description','gosaAclTemplate','dn'));
+#    } else {
+#     $ldap->search('(&(objectClass=gosaRole)(gosaUnitTag='.$tag.'))', array('cn', 'description','gosaAclTemplate','dn'));
+#    }
+    while ($attrs= $ldap->fetch()){
+      $dsc= "";
+      if (isset($attrs['description'][0])){
+        $dsc= $attrs['description'][0];
+      }
+
+      $role_id = $attrs['dn'];
+
+      $this->roles[$role_id]['acls'] =array();
+      for ($i= 0; $i < $attrs['gosaAclTemplate']['count']; $i++){
+        $acl= $attrs['gosaAclTemplate'][$i];
+        $this->roles[$role_id]['acls'] = array_merge($this->roles[$role_id]['acls'],acl::explodeACL($acl));
+      }
+      $this->roles[$role_id]['description'] = $dsc;
+      $this->roles[$role_id]['cn'] = $attrs['cn'][0];
+    }
+
+    /* Objects */
+    $tmp= session::global_get('plist');
+    $plist= $tmp->info;
+    $cats = array();
+    if (isset($this->parent) && $this->parent !== NULL){
+      $oc= array();
+      foreach ($this->parent->by_object as $key => $obj){
+        $oc= array_merge($oc, $obj->objectclasses);
+        if(isset($obj->acl_category)){
+					$tmp= str_replace("/","",$obj->acl_category);
+          $cats[$tmp] = $tmp;
+        }
+      }
+      if (in_array_ics('organizationalUnit', $oc)){
+        $this->isContainer= TRUE;
+      }
+    } else {
+      $oc=  $this->attrs['objectClass'];
+    }
+
+    /* Extract available categories from plugin info list */
+    foreach ($plist as $class => $acls){
+
+      /* Only feed categories */
+      if (isset($acls['plCategory'])){
+
+        /* Walk through supplied list and feed only translated categories */
+        foreach($acls['plCategory'] as $idx => $data){
+
+          /* Non numeric index means -> base object containing more informations */
+          if (preg_match('/^[0-9]+$/', $idx)){
+
+            if (!isset($this->ocMapping[$data])){
+              $this->ocMapping[$data]= array();
+              $this->ocMapping[$data][]= '0';
+            }
+
+            if(isset($cats[$data])){
+              $this->myAclObjects[$data.'/'.$class]= $acls['plDescription'];
+            }
+            $this->ocMapping[$data][]= $class;
+          } else {
+            if (!isset($this->ocMapping[$idx])){
+              $this->ocMapping[$idx]= array();
+              $this->ocMapping[$idx][]= '0';
+            }
+            $this->ocMapping[$idx][]= $class;
+            $this->aclObjects[$idx]= $data['description'];
+
+            /* Additionally filter the classes we're interested in in "self edit" mode */
+            if (is_array($data['objectClass'])){
+              foreach($data['objectClass'] as $objectClass){
+                if (in_array_ics($objectClass, $oc)){
+                  $this->myAclObjects[$idx.'/'.$class]= $acls['plDescription'];
+                  break;
+                }
+              }
+            } else {
+              if (in_array_ics($data['objectClass'], $oc)){
+                $this->myAclObjects[$idx.'/'.$class]= $acls['plDescription'];
+              }
+            }
+          }
+
+        }
+      }
+    }
+    $this->aclObjects['all']= '* '._("All categories");
+    $this->ocMapping['all']= array('0' => 'all');
+
+    /* Sort categories */
+    asort($this->aclObjects);
+
+    /* Fill acl types */
+    if ($this->isContainer){
+      $this->aclTypes= array("reset" => _("Reset ACLs"),
+                             "one" => _("One level"),
+                             "base" => _("Current object"),
+                             "sub" => _("Complete subtree"),
+                             "psub" => _("Complete subtree (permanent)"),
+                             "role" => _("Use ACL defined in role"));
+    } else {
+      $this->aclTypes= array("base" => _("Current object"),
+          "role" => _("Use ACL defined in role"));
+    }
+    asort($this->aclTypes);
+    $this->targets= array("user" => _("Users"), "group" => _("Groups"));
+    asort($this->targets);
+
+    /* Finally - we want to get saved... */
+    $this->is_account= TRUE;
+  }
+
+
+  function execute()
+  {
+    /* Call parent execute */
+    plugin::execute();
+
+    $tmp= session::global_get('plist');
+    $plist= $tmp->info;
+
+    /* Handle posts */
+    if (isset($_POST['new_acl'])){
+      $this->dialogState= 'create';
+      $this->dialog= TRUE;
+      $this->currentIndex= count($this->gosaAclEntry);
+      $this->loadAclEntry(TRUE);
+    }
+
+    $new_acl= array();
+    $aclDialog= FALSE;
+    $firstedit= FALSE;
+
+    /* Act on HTML post and gets here.
+     */
+    if(isset($_GET['id']) && isset($_GET['act']) && $_GET['act'] == "edit"){
+      $id = trim($_GET['id']);
+      $this->dialogState= 'create';
+      $firstedit= TRUE;
+      $this->dialog= TRUE;
+      $this->currentIndex= $id;
+      $this->loadAclEntry();
+    }
+
+    foreach($_POST as $name => $post){
+
+      /* Actions... */
+      if (preg_match('/^acl_edit_.*_x/', $name)){
+        $this->dialogState= 'create';
+        $firstedit= TRUE;
+        $this->dialog= TRUE;
+        $this->currentIndex= preg_replace('/^acl_edit_([0-9]+).*$/', '\1', $name);
+        $this->loadAclEntry();
+        continue;
+      }
+
+      if (preg_match('/^cat_edit_.*_x/', $name)){
+        $this->aclObject= preg_replace('/^cat_edit_([^_]+)_.*$/', '\1', $name);
+        $this->dialogState= 'edit';
+        foreach ($this->ocMapping[$this->aclObject] as $oc){
+          if (isset($this->aclContents[$oc])){
+            $this->savedAclContents[$oc]= $this->aclContents[$oc];
+          }
+        }
+        continue;
+      }
+
+      /* Only handle posts, if we allowed to modify ACLs */
+      if(!$this->acl_is_writeable("")){
+        continue;
+      }
+
+      if (preg_match('/^acl_del_.*_x/', $name)){
+        unset($this->gosaAclEntry[preg_replace('/^acl_del_([0-9]+).*$/', '\1', $name)]);
+        continue;
+      }
+
+      if (preg_match('/^cat_del_.*_x/', $name)){
+        $idx= preg_replace('/^cat_del_([^_]+)_.*$/', '\1', $name);
+        foreach ($this->ocMapping[$idx] as $key){
+          unset($this->aclContents["$idx/$key"]);
+        }
+        continue;
+      }
+
+      /* Sorting... */
+      if (preg_match('/^sortup_.*_x/', $name)){
+        $index= preg_replace('/^sortup_([0-9]+).*$/', '\1', $name);
+        if ($index > 0){
+          $tmp= $this->gosaAclEntry[$index];
+          $this->gosaAclEntry[$index]= $this->gosaAclEntry[$index-1];
+          $this->gosaAclEntry[$index-1]= $tmp;
+        }
+        continue;
+      }
+      if (preg_match('/^sortdown_.*_x/', $name)){
+        $index= preg_replace('/^sortdown_([0-9]+).*$/', '\1', $name);
+        if ($index < count($this->gosaAclEntry)-1){
+          $tmp= $this->gosaAclEntry[$index];
+          $this->gosaAclEntry[$index]= $this->gosaAclEntry[$index+1];
+          $this->gosaAclEntry[$index+1]= $tmp;
+        }
+        continue;
+      }
+
+      /* ACL saving... */
+      if (preg_match('/^acl_.*_[^xy]$/', $name)){
+        list($dummy, $object, $attribute, $value)= explode('_', $name);
+
+        /* Skip for detection entry */
+        if ($object == 'dummy') {
+          continue;
+        }
+
+        /* Ordinary ACLs */
+        if (!isset($new_acl[$object])){
+          $new_acl[$object]= array();
+        }
+        if (isset($new_acl[$object][$attribute])){
+          $new_acl[$object][$attribute].= $value;
+        } else {
+          $new_acl[$object][$attribute]= $value;
+        }
+      }
+
+      // Remember the selected ACL role.
+      if(isset($_POST['selected_role']) && $_POST['aclType'] == 'role'){
+        $this->aclContents = "";
+        $this->aclContents = base64_decode($_POST['selected_role']);
+      }
+    }
+
+    if(isset($_POST['acl_dummy_0_0_0'])){
+      $aclDialog= TRUE;
+    }
+
+    if($this->acl_is_writeable("")){
+      
+      /* Only be interested in new acl's, if we're in the right _POST place */
+      if ($aclDialog && $this->aclObject != "" && is_array($this->ocMapping[$this->aclObject])){
+
+        foreach ($this->ocMapping[$this->aclObject] as $oc){
+
+          if(isset($this->aclContents[$oc]) && is_array($this->aclContents)){
+            unset($this->aclContents[$oc]);
+          }elseif(isset($this->aclContents[$this->aclObject.'/'.$oc]) && is_array($this->aclContents)){
+            unset($this->aclContents[$this->aclObject.'/'.$oc]);
+          }else{
+#          trigger_error("Huhm?");
+          }
+          if (isset($new_acl[$oc]) && is_array($new_acl)){
+            $this->aclContents[$oc]= $new_acl[$oc];
+          }
+          if (isset($new_acl[$this->aclObject.'/'.$oc]) && is_array($new_acl)){
+            $this->aclContents[$this->aclObject.'/'.$oc]= $new_acl[$this->aclObject.'/'.$oc];
+          }
+        }
+      }
+
+      /* Save new acl in case of base edit mode */
+      if ($this->aclType == 'base' && !$firstedit){
+        $this->aclContents= $new_acl;
+      }
+    }
+
+    /* Cancel new acl? */
+    if (isset($_POST['cancel_new_acl'])){
+      $this->dialogState= 'head';
+      $this->dialog= FALSE;
+      if ($this->wasNewEntry){
+        unset ($this->gosaAclEntry[$this->currentIndex]);
+      }
+    }
+
+    /* Save common values */
+    if($this->acl_is_writeable("")){
+      foreach (array("aclType","aclFilter", "aclObject", "target") as $key){
+        if (isset($_POST[$key])){
+          $this->$key= validate($_POST[$key]);
+        }
+      }
+    }
+
+    /* Store ACL in main object? */
+    if (isset($_POST['submit_new_acl'])){
+      $this->gosaAclEntry[$this->currentIndex]['type']= $this->aclType;
+      $this->gosaAclEntry[$this->currentIndex]['members']= $this->recipients;
+      $this->gosaAclEntry[$this->currentIndex]['acl']= $this->aclContents;
+      $this->gosaAclEntry[$this->currentIndex]['filter']= $this->aclFilter;
+      $this->dialogState= 'head';
+      $this->dialog= FALSE;
+    }
+
+    /* Cancel edit acl? */
+    if (isset($_POST['cancel_edit_acl'])){
+      $this->dialogState= 'create';
+      foreach ($this->ocMapping[$this->aclObject] as $oc){
+        if (isset($this->savedAclContents[$oc])){
+          $this->aclContents[$oc]= $this->savedAclContents[$oc];
+        }
+      }
+    }
+
+    /* Save edit acl? */
+    if (isset($_POST['submit_edit_acl'])){
+      $this->dialogState= 'create';
+    }
+
+    /* Add acl? */
+    if (isset($_POST['add_acl']) && $_POST['aclObject'] != ""){
+      $this->dialogState= 'edit';
+      $this->savedAclContents= array();
+      foreach ($this->ocMapping[$this->aclObject] as $oc){
+        if (isset($this->aclContents[$oc])){
+          $this->savedAclContents[$oc]= $this->aclContents[$oc];
+        }
+      }
+    }
+
+    /* Add to list? */
+    if (isset($_POST['add']) && isset($_POST['source'])){
+      foreach ($_POST['source'] as $key){
+        if ($this->target == 'user'){
+          $this->recipients[$key]= $this->users[$key];
+        }
+        if ($this->target == 'group'){
+          $this->recipients[$key]= $this->groups[$key];
+        }
+      }
+      ksort($this->recipients);
+    }
+
+    /* Remove from list? */
+    if (isset($_POST['del']) && isset($_POST['recipient'])){
+      foreach ($_POST['recipient'] as $key){
+          unset($this->recipients[$key]);
+      }
+    }
+
+    /* Create templating instance */
+    $smarty= get_smarty();
+    $smarty->assign("acl_readable",$this->acl_is_readable(""));
+    if(!$this->acl_is_readable("")){
+      return ($smarty->fetch (get_template_path('acl.tpl')));
+    }
+
+    if ($this->dialogState == 'head'){
+      /* Draw list */
+      $aclList= new divSelectBox("aclList");
+      $aclList->SetHeight(450);
+      
+      /* Fill in entries */
+      foreach ($this->gosaAclEntry as $key => $entry){
+        if(!$this->acl_is_readable("")) continue;
+
+        $action ="";      
+
+        if($this->acl_is_readable("")){
+          $link = "<a href=?plug=".$_GET['plug']."&id=".$key."&act=edit>".$this->assembleAclSummary($entry)."</a>";
+        }else{
+          $link = $this->assembleAclSummary($entry);
+        }
+  
+        $field1= array("string" => $this->aclTypes[$entry['type']], "attach" => "style='width:150px'");
+        $field2= array("string" => $link);
+
+        if($this->acl_is_writeable("")){
+          $action.= "<input type='image' name='sortup_$key' alt='up' 
+            title='"._("Up")."' src='images/lists/sort-up.png' align='top'>";
+          $action.= "<input type='image' name='sortdown_$key' alt='down' 
+            title='"._("Down")."' src='images/lists/sort-down.png'>";
+        } 
+    
+        if($this->acl_is_readable("")){
+          $action.= "<input class='center' type='image' src='images/lists/edit.png' 
+            alt='"._("Edit")."' name='acl_edit_$key' title='".msgPool::editButton(_("ACL"))."'>";
+        }
+        if($this->acl_is_removeable("")){
+          $action.= "<input class='center' type='image' src='images/lists/trash.png' 
+            alt='"._("Delete")."' name='acl_del_$key' title='".msgPool::delButton(_("ACL"))."'>";
+        }
+
+        $field3= array("string" => $action, "attach" => "style='border-right:0px;width:50px;text-align:right;'");
+        $aclList->AddEntry(array($field1, $field2, $field3));
+      }
+
+      $smarty->assign("aclList", $aclList->DrawList());
+    }
+
+    if ($this->dialogState == 'create'){
+      /* Draw list */
+      $aclList= new divSelectBox("aclList");
+      $aclList->SetHeight(150);
+
+      /* Add settings for all categories to the (permanent) list */
+      foreach ($this->aclObjects as $section => $dsc){
+        $summary= "";
+        foreach($this->ocMapping[$section] as $oc){
+          if (isset($this->aclContents[$oc]) && count($this->aclContents[$oc]) && isset($this->aclContents[$oc][0]) &&
+              $this->aclContents[$oc][0] != ""){
+
+            $summary.= "$oc, ";
+            continue;
+          }
+          if (isset($this->aclContents["$section/$oc"]) && count($this->aclContents["$section/$oc"])){
+            $summary.= "$oc, ";
+            continue;
+          }
+          if (isset($this->aclContents[$oc]) && !isset($this->aclContents[$oc][0]) && count($this->aclContents[$oc])){
+            $summary.= "$oc, ";
+          }
+        }
+
+        /* Set summary... */
+        if ($summary == ""){
+          $summary= '<i>'._("No ACL settings for this category!").'</i>';
+        } else {
+          $summary= sprintf(_("Contains ACLs for these objects: %s"), preg_replace('/, $/', '', $summary));
+        }
+
+        $actions ="";
+        if($this->acl_is_readable("")){
+          $actions= "<input class='center' type='image' src='images/lists/edit.png' 
+            alt='"._("Edit")."' name='cat_edit_$section' title='".msgPool::editButton(_("category ACL"))."'>";
+        }
+        if($this->acl_is_removeable()){
+          $actions.= "<input class='center' type='image' src='images/lists/trash.png' 
+            alt='"._("Delete")."' name='cat_del_$section' title='".msgPool::delButton(_("category ACL"))."'>";
+        }   
+
+        $field1= array("string" => $dsc, "attach" => "style='width:100px'");
+        $field2= array("string" => $summary);
+        $field3= array("string" => $actions, "attach" => "style='border-right:0px;width:50px'");
+        $aclList->AddEntry(array($field1, $field2, $field3));
+      }
+
+      $smarty->assign("aclList", $aclList->DrawList());
+      $smarty->assign("aclType", $this->aclType);
+      $smarty->assign("aclFilter", $this->aclFilter);
+      $smarty->assign("aclTypes", $this->aclTypes);
+      $smarty->assign("target", $this->target);
+      $smarty->assign("targets", $this->targets);
+
+      /* Assign possible target types */
+      $smarty->assign("targets", $this->targets);
+      foreach ($this->attributes as $attr){
+        $smarty->assign($attr, $this->$attr);
+      }
+
+
+      /* Generate list */
+      $tmp= array();
+      if ($this->target == "group" && !isset($this->recipients["G:*"])){
+        $tmp["G:*"]= _("All users");
+      }
+      foreach (array("user" => "users", "group" => "groups") as $field => $arr){
+        if ($this->target == $field){
+          foreach ($this->$arr as $key => $value){
+            if (!isset($this->recipients[$key])){
+              $tmp[$key]= $value;
+            }
+          }
+        }
+      }
+      $smarty->assign('sources', $tmp);
+      $smarty->assign('recipients', $this->recipients);
+
+      /* Acl selector if scope is base */
+      if ($this->aclType == 'base'){
+        $smarty->assign('aclSelector', $this->buildAclSelector($this->myAclObjects));
+      }
+
+      /* Role selector if scope is base */
+      if ($this->aclType == 'role'){
+        $smarty->assign('roleSelector', "Role selector");#, $this->buildRoleSelector($this->myAclObjects));
+        $smarty->assign('roleSelector', $this->buildRoleSelector($this->roles));
+      }
+    }
+
+    if ($this->dialogState == 'edit'){
+      $smarty->assign('headline', sprintf(_("Edit ACL for '%s' - scope is '%s'"), $this->aclObjects[$this->aclObject], $this->aclTypes[$this->aclType]));
+
+      /* Collect objects for selected category */
+      foreach ($this->ocMapping[$this->aclObject] as $idx => $class){
+        if ($idx == 0){
+          continue;
+        }
+        $aclObjects[$this->aclObject.'/'.$class]= $plist[$class]['plDescription'];
+      }
+      if ($this->aclObject == 'all'){
+        $aclObjects['all']= _("All objects in current subtree");
+      }
+
+      /* Role selector if scope is base */
+      if ($this->aclType == 'role'){
+        $smarty->assign('roleSelector', $this->buildRoleSelector($this->roles));
+      } else {
+        $smarty->assign('aclSelector', $this->buildAclSelector($aclObjects));
+      }
+    }
+
+    /* Show main page */
+    $smarty->assign("dialogState", $this->dialogState);
+   
+    /* Assign acls */ 
+    $smarty->assign("acl_createable",$this->acl_is_createable());
+    $smarty->assign("acl_writeable" ,$this->acl_is_writeable(""));
+    $smarty->assign("acl_readable"  ,$this->acl_is_readable(""));
+    $smarty->assign("acl_removeable",$this->acl_is_removeable());
+
+    return ($smarty->fetch (get_template_path('acl.tpl')));
+  }
+
+
+  function sort_by_priority($list)
+  {
+    $tmp= session::global_get('plist');
+    $plist= $tmp->info;
+    asort($plist);
+    $newSort = array();
+
+    foreach($list as $name => $translation){
+      $na  =  preg_replace("/^.*\//","",$name);
+      $prio = 0;
+      if(isset($plist[$na]['plPriority'])){
+        $prio=  $plist[$na]['plPriority'] ;
+      }
+
+      $newSort[$name] = $prio;
+    }
+
+    asort($newSort);
+
+    $ret = array();
+    foreach($newSort as $name => $prio){
+      $ret[$name] = $list[$name];
+    }
+    return($ret);
+  }
+
+
+  function buildRoleSelector($list)
+  {
+    $D_List =new divSelectBox("Acl_Roles");
+ 
+    $selected = $this->aclContents;
+    if(!is_string($this->aclContents) || !isset($list[$this->aclContents])){
+      $selected = key($list);
+    }
+
+    $str ="";
+    foreach($list as $dn => $values){
+
+      if($dn == $selected){    
+        $option = "<input type='radio' name='selected_role' value='".base64_encode($dn)."' checked>";
+      }else{
+        $option = "<input type='radio' name='selected_role' value='".base64_encode($dn)."'>";
+      }
+ 
+      $field1 = array("string" => $option) ;
+      $field2 = array("string" => $values['cn'], "attach" => "style='width:200px;'") ;
+      $field3 = array("string" => $values['description'],"attach" => "style='border-right:0px;'") ;
+
+      $D_List->AddEntry(array($field1,$field2,$field3));
+    }
+    return($D_List->DrawList());
+  } 
+
+
+  function buildAclSelector($list)
+  {
+    $display= "<input type='hidden' name='acl_dummy_0_0_0' value='1'>";
+    $cols= 3;
+    $tmp= session::global_get('plist');
+    $plist= $tmp->info;
+    asort($plist);
+
+    /* Add select all/none buttons */
+    $style = "style='width:100px;'";
+
+    if($this->acl_is_writeable("")){
+      $display .= "<input ".$style." type='button' name='toggle_all_create' onClick=\"acl_toggle_all('_0_c$');\" value='Toggle C'>";
+      $display .= "<input ".$style." type='button' name='toggle_all_move'   onClick=\"acl_toggle_all('_0_m$');\" value='Toggle M'>";
+      $display .= "<input ".$style." type='button' name='toggle_all_remove' onClick=\"acl_toggle_all('_0_d$');\" value='Toggle D'> - ";
+      $display .= "<input ".$style." type='button' name='toggle_all_read'   onClick=\"acl_toggle_all('_0_r$');\" value='Toggle R'>";
+      $display .= "<input ".$style." type='button' name='toggle_all_write'  onClick=\"acl_toggle_all('_0_w$');\" value='Toggle W'> - ";
+
+      $display .= "<input ".$style." type='button' name='toggle_all_sub_read'  onClick=\"acl_toggle_all('[^0]_r$');\" value='R+'>";
+      $display .= "<input ".$style." type='button' name='toggle_all_sub_write'  onClick=\"acl_toggle_all('[^0]_w$');\" value='W+'>";
+
+      $display .= "<br>";
+
+      $style = "style='width:50px;'";
+      $display .= "<input ".$style." type='button' name='set_true_all_create' onClick=\"acl_set_all('_0_c$',true);\" value='C+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_create' onClick=\"acl_set_all('_0_c$',false);\" value='C-'>";
+      $display .= "<input ".$style." type='button' name='set_true_all_move' onClick=\"acl_set_all('_0_m$',true);\" value='M+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_move' onClick=\"acl_set_all('_0_m$',false);\" value='M-'>";
+      $display .= "<input ".$style." type='button' name='set_true_all_remove' onClick=\"acl_set_all('_0_d$',true);\" value='D+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_remove' onClick=\"acl_set_all('_0_d$',false);\" value='D-'> - ";
+      $display .= "<input ".$style." type='button' name='set_true_all_read' onClick=\"acl_set_all('_0_r$',true);\" value='R+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_read' onClick=\"acl_set_all('_0_r$',false);\" value='R-'>";
+      $display .= "<input ".$style." type='button' name='set_true_all_write' onClick=\"acl_set_all('_0_w$',true);\" value='W+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_write' onClick=\"acl_set_all('_0_w$',false);\" value='W-'> - ";
+
+      $display .= "<input ".$style." type='button' name='set_true_all_read' onClick=\"acl_set_all('[^0]_r$',true);\" value='R+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_read' onClick=\"acl_set_all('[^0]_r$',false);\" value='R-'>";
+      $display .= "<input ".$style." type='button' name='set_true_all_write' onClick=\"acl_set_all('[^0]_w$',true);\" value='W+'>";
+      $display .= "<input ".$style." type='button' name='set_false_all_write' onClick=\"acl_set_all('[^0]_w$',false);\" value='W-'>";
+    }
+
+    /* Build general objects */
+    $list =$this->sort_by_priority($list);
+    foreach ($list as $key => $name){
+
+      /* Create sub acl if it does not exist */
+      if (!isset($this->aclContents[$key])){
+        $this->aclContents[$key]= array();
+      }
+      if(!isset($this->aclContents[$key][0])){
+        $this->aclContents[$key][0]= '';
+      }
+
+      $currentAcl= $this->aclContents[$key];
+
+      /* Get the overall plugin acls 
+       */
+      $overall_acl ="";
+      if(isset($currentAcl[0])){
+        $overall_acl = $currentAcl[0];
+      }
+
+      // Detect configured plugins
+      $expand = count($currentAcl) > 1 || $currentAcl[0] != "";
+
+      /* Object header */
+			$tname= preg_replace("/[^a-z0-9]/i","_",$name);
+
+      if($expand){
+        $back_color = "#C8C8FF";
+      }else{
+        $back_color = "#C8C8C8";
+      }
+
+      if(session::global_get('js')) {
+        if(isset($_SERVER['HTTP_USER_AGENT']) && 
+             (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || 
+             (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) {
+          $display.= "\n<table style='width:100%;border:1px solid #A0A0A0' cellspacing=0 cellpadding=2>".
+                     "\n  <tr>".
+                     "\n    <td style='background-color:{$back_color};height:1.8em;' colspan=".($cols-1)."><b>"._("Object").": $name</b></td>".
+                     "\n    <td align='right' style='background-color:{$back_color};height:1.8em;'>".
+                     "\n    <input type='button' onclick=\"$('{$tname}').toggle();\" value='"._("Show/hide advanced settings")."' /></td>".
+                     "\n  </tr>";
+        } else if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT'])) {
+          $display.= "\n<table style='width:100%;border:1px solid #A0A0A0' cellspacing=0 cellpadding=2>".
+                     "\n  <tr>".
+                     "\n    <td style='background-color:#C8C8C8;height:1.8em;' colspan=".($cols-1)."><b>"._("Object").": $name</b></td>".
+                     "\n    <td align='right' style='background-color:#C8C8C8;height:1.8em;'>".
+                     "\n    <input type='button' onclick=\"$('{$tname}').toggle();\" value='"._("Show/hide advanced settings")."' /></td>".
+                     "\n  </tr>";
+        } else {
+          $display.= "\n<table style='width:100%;border:1px solid #A0A0A0' cellspacing=0 cellpadding=2>".
+                     "\n  <tr>".
+                     "\n    <td style='background-color:#C8C8C8;height:1.8em;' colspan=$cols><b>"._("Object").": $name</b></td>".
+                     "\n  </tr>";
+        }
+      } else {
+          $display.= "\n<table style='width:100%;border:1px solid #A0A0A0' cellspacing=0 cellpadding=2>".
+                     "\n  <tr>".
+                     "\n    <td style='background-color:#C8C8C8;height:1.8em;' colspan=$cols><b>"._("Object").": $name</b></td>".
+                     "\n  </tr>";
+      }
+
+      /* Generate options */
+      $spc= "  ";
+      $options= $this->mkchkbx($key."_0_c",  _("Create objects"), preg_match('/c/', $overall_acl)).$spc;
+      $options.= $this->mkchkbx($key."_0_m", _("Move objects"), preg_match('/m/', $overall_acl)).$spc;
+      $options.= $this->mkchkbx($key."_0_d", _("Remove objects"), preg_match('/d/', $overall_acl)).$spc;
+      if ($plist[preg_replace('%^.*/%', '', $key)]['plSelfModify']){
+        $options.= $this->mkchkbx($key."_0_s", _("Grant permission to owner"), preg_match('/s/', $overall_acl)).$spc;
+      }
+
+      /* Global options */
+      $more_options= $this->mkchkbx($key."_0_r",  _("read"), preg_match('/r/', $overall_acl)).$spc;
+      $more_options.= $this->mkchkbx($key."_0_w", _("write"), preg_match('/w/', $overall_acl));
+
+      $display.= "\n  <tr>".
+                 "\n    <td style='background-color:#E0E0E0' colspan=".($cols-1).">$options</td>".
+                 "\n    <td style='background-color:#D4D4D4'> "._("Complete object").": $more_options</td>".
+                 "\n  </tr>";
+
+      /* Walk through the list of attributes */
+      $cnt= 1;
+      $splist= $plist[preg_replace('%^.*/%', '', $key)]['plProvidedAcls'];
+      if(session::global_get('js')) {
+        if(isset($_SERVER['HTTP_USER_AGENT']) && 
+            (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT']))) {
+          $display.= "\n  <tr id='tr_$tname' style='vertical-align:top;height:0px;'>".
+                     "\n    <td colspan=".$cols.">".
+                     "\n      <div id='$tname' style='overflow:hidden; display:none;vertical-align:top;width:100%;'>".
+                     "\n        <table style='width:100%;'>";
+        } else if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT'])) {
+          $display.= "\n  <tr id='tr_$tname' style='vertical-align:top;height:0px;'>".
+                     "\n    <td colspan=".$cols.">".
+                     "\n      <div id='$tname' style='position:absolute;overflow:hidden;display:none;;vertical-align:top;width:100%;'>".
+                     "\n        <table style='width:100%;'>";
+        }else{
+        }
+      }
+
+  
+      foreach($splist as $attr => $dsc){
+
+        /* Skip pl* attributes, they are internal... */
+        if (preg_match('/^pl[A-Z]+.*$/', $attr)){
+          continue;
+        }
+
+        /* Open table row */
+        if ($cnt == 1){
+          $display.= "\n  <tr>";
+        }
+
+        /* Close table row */
+        if ($cnt == $cols){
+          $cnt= 1;
+          $rb= "";
+          $end= "\n  </tr>";
+        } else {
+          $cnt++;
+          $rb= "border-right:1px solid #A0A0A0;";
+          $end= "";
+        }
+
+        /* Collect list of attributes */
+        $state= "";
+        if (isset($currentAcl[$attr])){
+          $state= $currentAcl[$attr];
+        }
+        $display.= "\n    <td style='border-top:1px solid #A0A0A0;${rb}width:".(int)(100/$cols)."%'>".
+                   "\n      <b>$dsc</b> ($attr)<br>".$this->mkrwbx($key."_".$attr, $state)."</td>$end";
+      }
+      
+      /* Fill missing td's if needed */
+      if (--$cnt != $cols && $cnt != 0){
+       $display.= str_repeat("\n    <td style='border-top:1px solid #A0A0A0; width:".(int)(100/$cols)."%'> </td>", $cols-$cnt); 
+      }
+
+      if(session::global_get('js')) {
+        if(isset($_SERVER['HTTP_USER_AGENT']) && 
+            (preg_match("/gecko/i",$_SERVER['HTTP_USER_AGENT'])) || 
+            (preg_match("/presto/i",$_SERVER['HTTP_USER_AGENT'])) || 
+            (preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT']))) {
+          $display.= "\n        </table>".
+                     "\n      </div>".
+                     "\n    </td>".
+                     "\n  </tr>";
+        }
+      }
+
+      $display.= "\n</table><br />\n";
+    }
+
+    return ($display);
+  }
+
+
+  function mkchkbx($name, $text, $state= FALSE)
+  {
+    $state= $state?"checked":"";
+    if($this->acl_is_writeable("")){
+			$tname= preg_replace("/[^a-z0-9]/i","_",$name);
+      return "\n      <input id='acl_$tname' type=checkbox name='acl_$name' $state>".
+        "\n      <label for='acl_$tname'>$text</label>";
+    }else{
+      return "\n <input type='checkbox' disabled name='dummy_".microtime(1)."' $state>$text";
+    }
+  }
+
+
+  function mkrwbx($name, $state= "")
+  {
+    $rstate= preg_match('/r/', $state)?'checked':'';
+    $wstate= preg_match('/w/', $state)?'checked':'';
+		$tname= preg_replace("/[^a-z0-9]/i","_",$name);
+      
+    if($this->acl_is_writeable("")){
+      return ("\n      <input id='acl_".$tname."_r' type=checkbox name='acl_${name}_r' $rstate>".
+          "\n      <label for='acl_".$tname."_r'>"._("read")."</label>".
+          "\n      <input id='acl_".$tname."_w' type=checkbox name='acl_${name}_w' $wstate>".
+          "\n      <label for='acl_".$tname."_w'>"._("write")."</label>");
+    }else{
+      return ("\n      <input disabled type=checkbox name='dummy_".microtime(1)."' $rstate>"._("read").
+          "\n      <input disabled type=checkbox name='dummy_".microtime(1)."' $wstate>"._("write"));
+    }
+  }
+
+
+  static function explodeACL($acl)
+  {
+
+    $list= explode(':', $acl);
+    if(count($list) == 5){
+      list($index, $type,$member,$permission,$filter)= $list;
+      $filter = base64_decode($filter);
+    }else{
+      $filter = "";
+      list($index, $type,$member,$permission)= $list;
+    }
+
+    $a= array( $index => array("type" => $type,
+                               "filter"=> $filter,
+                               "members" => acl::extractMembers($acl,$type == "role")));
+   
+    /* Handle different types */
+    switch ($type){
+
+      case 'psub':
+      case 'sub':
+      case 'one':
+      case 'base':
+        $a[$index]['acl']= acl::extractACL($acl);
+        break;
+      
+      case 'role':
+        $a[$index]['acl']= base64_decode(preg_replace('/^[^:]+:[^:]+:([^:]+).*$/', '\1', $acl));
+        break;
+
+      case 'reset':
+        break;
+      
+      default:
+        msg_dialog::display(_("Internal error"), sprintf(_("Unkown ACL type '%s'!"), $type), ERROR_DIALOG);
+        $a= array();
+    }
+    return ($a);
+  }
+
+
+  static function extractMembers($acl,$role = FALSE)
+  {
+    global $config;
+    $a= array();
+
+    /* Rip acl off the string, seperate by ',' and place it in an array */
+    if($role){
+      $ms= preg_replace('/^[^:]+:[^:]+:[^:]+:([^:]+).*$/', '\1', $acl);
+    }else{
+      $ms= preg_replace('/^[^:]+:[^:]+:([^:]+).*$/', '\1', $acl);
+    }
+    if ($ms == $acl){
+      return $a;
+    }
+    $ma= explode(',', $ms);
+
+    /* Decode dn's, fill with informations from LDAP */
+    $ldap= $config->get_ldap_link();
+    foreach ($ma as $memberdn){
+      // Check for wildcard here
+      $dn= base64_decode($memberdn);
+      if ($dn != "*") {
+        $ldap->cat($dn, array('cn', 'objectClass', 'description', 'uid'));
+
+        /* Found entry... */
+        if ($ldap->count()){
+          $attrs= $ldap->fetch();
+          if (in_array_ics('gosaAccount', $attrs['objectClass'])){
+            $a['U:'.$dn]= $attrs['cn'][0]." [".$attrs['uid'][0]."]";
+          } else {
+            $a['G:'.$dn]= $attrs['cn'][0];
+            if (isset($attrs['description'][0])){
+              $a['G:'.$dn].= " [".$attrs['description'][0]."]";
+            }
+          }
+
+        /* ... or not */
+        } else {
+          $a['U:'.$dn]= sprintf(_("Unknown entry '%s'!"), $dn);
+        }
+
+      } else {
+        $a['G:*']= sprintf(_("All users"));
+      }
+    }
+
+    return ($a);
+  }
+
+
+  static function extractACL($acl)
+  {
+    /* Rip acl off the string, seperate by ',' and place it in an array */
+    $as= preg_replace('/^[^:]+:[^:]+:[^:]*:([^:]*).*$/', '\1', $acl);
+    $aa= explode(',', $as);
+    $a= array();
+
+    /* Dis-assemble single ACLs */
+    foreach($aa as $sacl){
+      
+      /* Dis-assemble field ACLs */
+      $ao= explode('#', $sacl);
+      $gobject= "";
+      foreach($ao as $idx => $ssacl){
+
+        /* First is department with global acl */
+        $object= preg_replace('/^([^;]+);.*$/', '\1', $ssacl);
+        $gacl=   preg_replace('/^[^;]+;(.*)$/', '\1', $ssacl);
+        if ($idx == 0){
+          /* Create hash for this object */
+          $gobject= $object;
+          $a[$gobject]= array();
+
+          /* Append ACL if set */
+          if ($gacl != ""){
+            $a[$gobject]= array($gacl);
+          }
+        } else {
+
+          /* All other entries get appended... */
+          list($field, $facl)= explode(';', $ssacl);
+          $a[$gobject][$field]= $facl;
+        }
+
+      }
+    }
+
+    return ($a);
+  }
+
+  
+  function assembleAclSummary($entry)
+  {
+    $summary= "";
+
+    /* Summarize ACL */
+    if (isset($entry['acl'])){
+      $acl= "";
+
+      if($entry['type'] == "role"){
+
+        if(isset($this->roles[$entry['acl']])){  
+          $summary.= sprintf(_("Role: %s"), $this->roles[$entry['acl']]['cn']);
+        }else{
+          $summary.= sprintf(_("Role: %s"), "<i>"._("unknown role")."</i>");
+        }
+      }else{
+        foreach ($entry['acl'] as $name => $object){
+          if (count($object)){
+            $acl.= "$name, ";
+          }
+        }
+        $summary.= sprintf(_("Contains settings for these objects: %s"), preg_replace('/, $/', '', $acl));
+      }
+    }
+
+
+    /* Summarize members */
+    if(!($this instanceOf aclrole)){
+      if ($summary != ""){
+        $summary.= ", ";
+      }
+      if (count($entry['members'])){
+        $summary.= _("Members").": ";
+        foreach ($entry['members'] as $cn){
+          $cn= preg_replace('/ \[.*$/', '', $cn);
+          $summary.= $cn.", ";
+        }
+      } else {
+        $summary.= "<font color='red'><i>"._("inactive")." - "._("No members")."</i></font>";
+      }
+    }
+    return (preg_replace('/, $/', '', $summary));
+  }
+
+
+  function loadAclEntry($new= FALSE)
+  {
+    /* New entry gets presets... */
+    if ($new){
+      $this->aclType= 'base';
+      $this->aclFilter= "";
+      $this->recipients= array();
+      $this->aclContents= array();
+    } else {
+      $acl= $this->gosaAclEntry[$this->currentIndex];
+      $this->aclType= $acl['type'];
+      $this->recipients= $acl['members'];
+      $this->aclContents= $acl['acl'];
+      $this->aclFilter= $acl['filter'];
+    }
+
+    $this->wasNewEntry= $new;
+  }
+
+
+  function aclPostHandler()
+  {
+    if (isset($_POST['save_acl'])){
+      $this->save();
+      return TRUE;
+    }
+
+    return FALSE;
+  }
+
+  
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+    
+    $dn = $source['dn'];
+    $acl_c = new acl($this->config, $this->parent,$dn);
+    $this->gosaAclEntry = $acl_c->gosaAclEntry;
+  }
+
+
+  function save()
+  {
+    /* Assemble ACL's */
+    $tmp_acl= array();
+  
+    foreach ($this->gosaAclEntry as $prio => $entry){
+      $final= "";
+      $members= "";
+      if (isset($entry['members'])){
+        foreach ($entry['members'] as $key => $dummy){
+          $members.= base64_encode(preg_replace('/^.:/', '', $key)).',';
+        }
+      }
+
+      if($entry['type'] != "role"){
+        $final= $prio.":".$entry['type'].":".preg_replace('/,$/', '', $members);
+      }else{
+        $final= $prio.":".$entry['type'].":".base64_encode($entry['acl']).":".preg_replace('/,$/', '', $members);
+      }
+
+      /* ACL's if needed */
+      if ($entry['type'] != "reset" && $entry['type'] != "role"){
+        $acl= ":";
+        if (isset($entry['acl'])){
+          foreach ($entry['acl'] as $object => $contents){
+
+            /* Only save, if we've some contents in there... */
+            if (count($contents)){
+              $acl.= $object.";";
+
+              foreach($contents as $attr => $permission){
+
+                /* First entry? Its the one for global settings... */
+                if ($attr == '0'){
+                  $acl.= $permission;
+                } else {
+                  $acl.= '#'.$attr.';'.$permission;
+                }
+
+              }
+              $acl.= ',';
+            }
+            
+          }
+        }
+        $final.= preg_replace('/,$/', '', $acl);
+      }
+
+      /* Append additional filter options 
+       */
+      if(!empty($entry['filter'])){
+        $final .= ":".base64_encode($entry['filter']);
+      }
+
+      $tmp_acl[]= $final;
+    } 
+
+    /* Call main method */
+    plugin::save();
+
+    /* Finally (re-)assign it... */
+    $this->attrs['gosaAclEntry']= $tmp_acl;
+
+    /* Remove acl from this entry if it is empty... */
+    if (!count($tmp_acl)){
+      /* Remove attribute */
+      if ($this->initially_was_account){
+        $this->attrs['gosaAclEntry']= array();
+      } else {
+        if (isset($this->attrs['gosaAclEntry'])){
+          unset($this->attrs['gosaAclEntry']);
+        }
+      }
+
+      /* Remove object class */
+      $this->attrs['objectClass']= array_remove_entries(array('gosaAcl'), $this->attrs['objectClass']);
+    }    
+
+    /* Do LDAP modifications */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->modify ($this->attrs);
+
+    if(count($this->attrs)){
+      new log("modify","acls/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()), ERROR_DIALOG);
+    }
+
+    /* Refresh users ACLs */
+    $ui= get_userinfo();
+    $ui->loadACL();
+    session::global_set('ui',$ui);
+  }
+
+
+  function remove_from_parent()
+  {
+    plugin::remove_from_parent();
+
+    /* include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->modify ($this->attrs);
+
+    new log("remove","acls/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+
+    /* Optionally execute a command after we're done */
+    $this->handle_post_events("remove",array("uid" => $this->uid));
+  }
+
+  
+  /* Return plugin informations for acl handling */
+  static function plInfo()
+  {
+    return (array(
+          "plShortName"   => _("ACL"),
+          "plDescription" => _("ACL")." ("._("Access control list").")",
+          "plSelfModify"  => FALSE,
+          "plDepends"     => array(),
+          "plPriority"    => 0,
+          "plSection"     => array("administration"),
+          "plCategory"    => array("acl" => array("description"  => _("ACL")." & "._("ACL roles"),
+                                                          "objectClass"  => array("gosaAcl","gosaRole"))),
+          "plProvidedAcls"=> array(
+//            "cn"          => _("Role name"),
+//            "description" => _("Role description")
+            )
+
+          ));
+  }
+
+
+  /* Remove acls defined for $src */
+  function remove_acl()
+  {
+    acl::remove_acl_for($this->dn);
+  }
+
+
+  /* Remove acls defined for $src */
+  static function remove_acl_for($dn)
+  {                                  
+    global $config;                  
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    $ldap->search("(&(objectClass=gosaAcl)(gosaAclEntry=*".base64_encode($dn)."*))",array("gosaAclEntry","dn"));
+    $new_entries= array();                                                                                      
+    while($attrs = $ldap->fetch()){                                                                             
+      if (!isset($attrs['gosaAclEntry'])) {                                                                     
+        continue;                                                                                               
+      }                                                                                                         
+      unset($attrs['gosaAclEntry']['count']);                                                                   
+
+      // Remove entry directly
+      foreach($attrs['gosaAclEntry'] as $id => $entry){
+        $parts= explode(':',$entry);                     
+        $members= explode(',',$parts[2]);                
+        $new_members= array();                         
+        foreach($members as $member) {                 
+          if (base64_decode($member) != $dn) {         
+            $new_members[]= $member;                   
+          } else {                                     
+            gosa_log("modify","users/acl",$attrs['dn'],array(),sprintf("Removed acl for %s on object %s.",$dn,$attrs['dn']));
+          }                                                                                                                  
+        }                                                                                                                    
+
+        /* We can completely remove the entry if there are no members anymore */
+        if (count($new_members)) {                                              
+          $parts[2]= implode(",", $new_members);                                
+          $new_entries[]= implode(":", $parts);                                 
+        }                                                                       
+      }                                                                         
+
+      // There should be a modification, so write it back
+      $ldap->cd($attrs['dn']);
+      $new_attrs= array("gosaAclEntry" => $new_entries);
+      $ldap->modify($new_attrs);
+      if (!$ldap->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, get_class()), ERROR_DIALOG);
+      }
+    }
+  }
+
+
+  function update_acl_membership($src,$dst)
+  {
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=gosaAcl)(gosaAclEntry=*".base64_encode($src)."*))",array("gosaAclEntry","dn"));
+    while($attrs = $ldap->fetch()){
+      $acl = new acl($this->config,$this->parent,$attrs['dn']);
+      foreach($acl->gosaAclEntry as $id => $entry){
+        foreach($entry['members'] as $m_id => $member){
+          if($m_id == "U:".$src){
+            unset($acl->gosaAclEntry[$id]['members'][$m_id]);
+            $new = "U:".$dst;
+            $acl->gosaAclEntry[$id]['members'][$new] = $new;
+            gosa_log("modify","users/acl",$attrs['dn'],array(),sprintf("Updated acl for user %s on object %s.",$src,$attrs['dn']));
+          }
+          if($m_id == "G:".$src){
+            unset($acl->gosaAclEntry[$id]['members'][$m_id]);
+            $new = "G:".$dst;
+            $acl->gosaAclEntry[$id]['members'][$new] = $new;
+            gosa_log("modify","groups/acl",$attrs['dn'],array(),sprintf("Updated acl for group %s on object %s.",$src,$attrs['dn']));
+          }
+        }
+      }
+      $acl -> save();
+    }
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_baseSelector.inc b/gosa-core/include/class_baseSelector.inc
new file mode 100644
index 0000000..d0b9eab
--- /dev/null
+++ b/gosa-core/include/class_baseSelector.inc
@@ -0,0 +1,251 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2010 GONICUS GmbH
+ *
+ * ID: $$Id: class_listing.inc 15296 2010-01-26 08:27:39Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class baseSelector {
+
+  private $base;
+  private $pid;
+  private $action;
+  private $height= 500;
+  private $submitButton= true;
+  protected $tree;
+  protected $pathMapping;
+  protected $lastState;
+
+
+  function __construct($bases, $base= "")
+  {
+    // Initialize pid
+    $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE));
+
+    // Transfer data
+    $this->setBases($bases);
+    $this->setBase($base);
+  }
+
+
+  function setSubmitButton($flag)
+  {
+    $this->submitButton= $flag;
+  }
+
+
+  function setHeight($value)
+  {
+    $this->height= $value;
+  }
+
+
+  function setBase($base)
+  {
+    if (isset($this->pathMapping[$base])) {
+      $this->base= $base;
+      $this->update(true);
+    }
+  }
+
+
+  function checkBase($base)
+  {
+    return isset($this->pathMapping[$base]);
+  }
+
+
+  function checkLastBaseUpdate()
+  {
+    return $this->lastState;
+  }
+
+
+  function setBases($bases)
+  {
+    global $config;
+
+    $this->pathMapping= array();
+    $selected= $this->base == $config->current['BASE']?"Selected":"";
+    $first= true;
+    $last_indent= 2;
+
+    foreach ($bases as $base => $dummy) {
+
+      // Build path style display
+      $elements= explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE'])));
+      $elements= array_reverse($elements, true);
+
+      $this->pathMapping[$base]= $base == $config->current['BASE']? '/' : ldap::fix(preg_replace('/(^|,)[a-z0-9]+=/i', '/', implode(',', $elements)));
+    }
+
+    // Save bases to session for autocompletion
+    session::global_set('pathMapping', $this->pathMapping);
+  }
+
+
+  function update($force= false)
+  {
+    global $config;
+
+    // Analyze for base changes if needed
+    $this->action= null;
+    $last_base= $this->base;
+    if(isset($_REQUEST['BPID']) && $_REQUEST['BPID'] == $this->pid) {
+      if (isset($_POST['bs_rebase_'.$this->pid]) && !empty($_POST['bs_rebase_'.$this->pid])) {
+        $new_base= base64_decode($_POST['bs_rebase_'.$this->pid]);
+        if (isset($this->pathMapping[$new_base])) {
+          $this->base= $new_base;
+          $this->action= 'rebase';
+        } else {
+          $this->lastState= false;
+          return false;
+        }
+      }else{
+        // Input field set?
+        if (isset($_POST['bs_input_'.$this->pid])) {
+
+          // Take over input field base
+          if ($this->submitButton && isset($_POST['submit_base_'.$this->pid.'_x']) || !$this->submitButton) {
+
+            // Check if base is available
+            $this->lastState= false;
+            foreach ($this->pathMapping as $key => $path) {
+              if (mb_strtolower($path) == mb_strtolower($_POST['bs_input_'.$this->pid])) {
+                $this->base= $key;
+                $this->lastState= true;
+                break;
+              }
+            }
+          }
+        }
+      } 
+
+    }
+
+    /* Skip if there's no change */
+    if (($this->tree && $this->base == $last_base) && !$force) {
+      return true;
+    }
+
+    $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($config->current['BASE'])."';  $('submit_tree_base_".$this->pid."').click();\"";
+    $this->tree= "<input type='text' size='35' name='bs_input_".$this->pid."' id='bs_input_".$this->pid."' onkeydown=\"\$('bs_".$this->pid."').hide()\" onfocus=\"\$('bs_".$this->pid."').hide()\" onmouseover=\"Element.clonePosition(\$('bs_".$this->pid."'), 'bs_input_".$this->pid."', {setHeight: false, setWidth: false, offsetTop:(Element.getHeight('bs_input_".$this->pid."'))});\$('bs_".$this->pid."').show();\" onmouseout=\"rtimer= Element.hide.delay(0.25, 'bs_".$this->pid."')\" value=\"".p [...]
+
+    // Autocompleter
+    $this->tree.= "<div id='autocomplete_".$this->pid."' class='autocomplete'></div>".
+                  "<script type='text/javascript'>".
+                  "new Ajax.Autocompleter('bs_input_".$this->pid."', 'autocomplete_".$this->pid."', 'autocomplete.php?type=base', { minChars: 3, frequency: 0.5 });";
+    if ($this->submitButton) {
+      $this->tree.= "$('bs_input_".$this->pid."').observe('keypress', function(event) { if(event.keyCode == Event.KEY_RETURN) { $('submit_base_".$this->pid."').click(); } });";
+    }
+    $this->tree.= "</script>";
+
+    $selected= $this->base == $config->current['BASE']?"Selected":"";
+    $this->tree.= "<div class='treeList' style='display:none;max-height:".$this->height."px' id='bs_".$this->pid."' onmouseover=\"window.clearTimeout(rtimer);\" onmouseout=\"rtimer= Element.hide.delay(0.25, 'bs_".$this->pid."')\"><a class='treeList$selected' $link>/ ["._("Root")."]</a><ul class='treeList'>\n";
+    $first= true;
+    $last_indent= 2;
+
+    foreach ($this->pathMapping as $base => $dummy) {
+
+      // Skip root for tree
+      if ($base == $config->current['BASE']) {
+        continue;
+      }
+
+      // Build path style display
+      $elements= explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE'])));
+
+      $indent= count($elements);
+      if (!$first && ($indent == $last_indent)) {
+        $this->tree.= "</li>\n";
+      }
+      if ($indent > $last_indent) {
+        $this->tree.= "<ul>\n";
+      }
+      if ($indent < $last_indent) {
+        for ($i= 0; $i < ($last_indent-$indent); $i++) {
+          $this->tree.= "</li></ul>\n";
+        }
+        $this->tree.= "</li>\n";
+      }
+      $selected= $this->base == $base?" class='treeListSelected'":"";
+      $link= "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($base)."';$('submit_tree_base_".$this->pid."').click();\"";
+      $this->tree.= "<li><a$selected $link>".
+                    "<img class='center' src='".$config->department_info[$base]['img']."'> ".
+                    $this->gennonbreaks($config->department_info[$base]['name']).
+                    ($config->department_info[$base]['description']==''?'':' <span class="informal">['.$this->gennonbreaks($config->department_info[$base]['description']).']</span>').
+                    "</a>";
+
+      $last_indent= $indent;
+      $first= false;
+    }
+
+    // Close tree
+    for ($i= 0; $i<$last_indent; $i++) {
+      $this->tree.= "</li></ul>\n";
+    }
+    $this->tree.= "</div>\n";
+
+    // Draw submitter if required
+    if ($this->submitButton) {
+      $this->tree.= " <input class='center' type='image' src='images/lists/submit.png' align='middle' title='"._("Submit")."' name='submit_base_".$this->pid."' id='submit_base_".$this->pid."' alt='"._("Submit")."'>";
+    }
+    $this->tree.= "<input type='submit' style='display:none' name='submit_tree_base_".$this->pid."' id='submit_tree_base_".$this->pid."'>";
+    $this->tree.= "<input type='hidden' name='bs_rebase_".$this->pid."' id='bs_rebase_".$this->pid."'>";
+    $this->tree.= "<input type='hidden' name='BPID' id='BPID' value='".$this->pid."'>";
+
+    $this->lastState= true;
+    return true;
+  }
+
+
+  function gennonbreaks($string)
+  {
+    return str_replace('-', '‑', str_replace(' ', ' ', $string));
+  }
+
+
+  function render()
+  {
+    return $this->tree;
+  }
+
+
+  function getBase()
+  {
+    return $this->base;
+  }
+
+
+  function getAction()
+  {
+    // Do not do anything if this is not our BPID, or there's even no BPID available...
+    if(!isset($_REQUEST['BPID']) || $_REQUEST['BPID'] != $this->pid) {
+      return;
+    }
+
+    if ($this->action) {
+      return array("targets" => array($this->base), "action" => $this->action);
+    }
+
+    return null;
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/class_certificate.inc b/gosa-core/include/class_certificate.inc
new file mode 100644
index 0000000..00932fd
--- /dev/null
+++ b/gosa-core/include/class_certificate.inc
@@ -0,0 +1,276 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_certificate.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* definitions */
+
+/* certificates */
+define("PEM","pem");
+define("DER","der");
+
+class certificate 
+{
+  /* vars */
+  var $data;
+  var $type;
+  var $error;
+
+  /* Initialize all vars*/ 
+  function certificate()
+  {
+    $this->data= "";
+    $this->type= false;
+    $this->error="";  
+    $this->info = array();
+  } 
+
+  /* Reads specified Certfile/string and convert it to PEM*/
+  function import($data,$type=false)
+  {
+    /* if is file read from file, else use string as it is*/
+    if(is_file($data))  {
+      $fp = fopen($data,"r+");
+      $str = "";
+
+      if(!$fp){
+        $this->certificate();
+        $this->error= msgPool::cannotReadFile($data);
+        return(false);
+      }else{
+        /* Reading data*/
+        while(!feof($fp)){
+          $str.=fgets($fp,1024);
+        }
+      }
+      /* Filename given, so we use the data from the file */
+      $this->data = $str;
+    } else {
+      /* Cert as String, use this string */
+      $this->data = $data;
+    }
+
+    /* Data can't be empty */
+    if($data = ""){
+      $this->certificate();
+      $this->error = _("Certificate is empty!"); 
+      return(false);
+    }
+
+    /* Prefer specified certtype*/
+    if($type) {
+      $this->type = $type;  
+    }else{
+      /* Detect certtype, cause there is none specified */      
+
+      /* PEM allways starts with ----BEGIN CERTIFICATE-----*/
+      if(strstr($this->data,"CERTIFICATE"))  {
+        $this->type=PEM;
+      } else {
+        /* We test DER now, on fail abort */
+        $this->type=DER;
+      }
+    }
+
+    /* Convert to PEM to give $this->info the ability to read the cert */  
+    if($this->type == DER )    {
+      $this->derTOpem();
+    }
+
+    /* If cert is loaded correctly and is PEM now, we could read some data out of it */
+    if(count($this->info()) <=1)  {
+      $this->certificate();
+      $this->error = _("Cannot load certificate - only PEM/DER is supported!");
+      /* Reset*/
+      return(false);
+    }
+
+    $this->info(false);
+
+    /* Loaded a readable cert */
+    return(true);
+  }
+
+  /* Returns Array with all containing data */
+  function info($ret = true)
+  {
+    if($this->type != PEM){
+      $this->error = _("Cannot extract information for non PEM certificates!");
+      return(false);
+    } else {
+      /* return an array with all given information */
+      $this->info=openssl_x509_parse($this->data);
+
+      if($ret)
+        return($this->info);
+    }
+  }
+
+  /* Return Functions */
+  function getvalidto_date()
+  {
+    if(isset($this->info['validTo_time_t'])){
+      return($this->info['validTo_time_t']);
+    }else{
+      return(false);
+    }
+  } 
+
+  function getvalidfrom_date()
+  {
+    if(isset($this->info['validFrom_time_t'])){
+      return($this->info['validFrom_time_t']);
+    }else{
+      return(false);
+    }
+
+  }
+
+  function getname()
+  {
+    if(isset($this->info['name'])){
+      return($this->info['name']);
+    }else{
+      return(false);
+    }
+  }
+
+  function getCN()
+  {
+    if(isset($this->info['subject']['CN'])){
+      return($this->info['subject']['CN']);
+    }else{
+      return(false);
+    }
+  }
+
+  function getO()
+  {
+    if(isset($this->info['subject']['O'])){
+      return($this->info['subject']['O']);
+    }else{
+      return(false);
+    }
+  }
+
+  function getOU()
+  {
+    if(isset($this->info['subject']['OU'])){
+      return($this->info['subject']['OU']);
+    }else{
+      return(false);
+    }
+  }
+
+  function getSerialNumber()
+  {
+    if(isset($this->info['serialNumber'])){
+      return($this->info['serialNumber']);
+    }else{
+      return(false);
+    }
+  }
+
+  function isvalid()
+  {
+    return (($this->type != false)&&(count($this->info)>1));
+  }
+  
+
+  /* Export Certificate to specified file, with specified method*/
+  function export($type,$filename="temp")
+  {
+    /* Check if valid cert is loaded*/
+    if($this->type!=false){
+      /* Check if we must convert the cert */
+      if($this->type!= $type){
+        $strConv = $this->type."TO".$type;
+        $this->$strConv();
+      }    
+
+      /* open file for writing */
+      $fp = fopen($filename,"w+");
+
+      if(!$fp){
+        $this->error= msgPool::cannotWriteFile($filename);
+        return(false);
+      }else{
+        fwrite($fp,$this->data,strlen($this->data));        
+      }
+      return(true);
+    }else{
+      $this->error= _("No valid certificate loaded!");
+      return(false);    
+    }
+    return(false);
+  } 
+
+
+  /* Convert der to pem Certificate */
+  function derTOpem()
+  {
+    /* if type is DER start convert */
+    if($this->type == DER)    {
+      /* converting */
+      $this->type= PEM; 
+      $str = base64_encode($this->data);
+      $len = strlen($str);
+
+      $end = "";
+
+      while($len > 0 )      {
+        $len = $len - 64;
+        $str1 = substr($str,0,64)."\n";
+        $str  = substr($str,64,$len);
+        $end.= $str1;
+      }
+
+      $strend = "-----BEGIN CERTIFICATE-----\n".$end;
+      $strend .= "-----END CERTIFICATE-----";
+
+      $this->data     = $strend;
+      return(true); 
+    }
+    return(false);
+  }
+
+  /*Convert pem to der Certificate */
+  function pemTOder()
+  {
+    if($this->type == PEM)    {
+      $this->type= DER;
+
+      $str = $this->data;
+
+      $str = str_replace("-----BEGIN CERTIFICATE-----","",$str);
+      $str = str_replace("-----END CERTIFICATE-----","",$str);
+
+      $str = base64_decode($str);
+
+      $this->data = $str;
+      return(true);
+    }
+    return(false);
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_config.inc b/gosa-core/include/class_config.inc
new file mode 100644
index 0000000..ea32e21
--- /dev/null
+++ b/gosa-core/include/class_config.inc
@@ -0,0 +1,1193 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_config.inc 15595 2010-02-05 13:51:35Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \brief Configuration class
+ *  \ingroup coreclasses
+ *
+ * The configuration class, responsible for parsing and querying the
+ * gosa configuration file.
+ */
+
+class config  {
+
+  /* XML parser */
+  var $parser;
+  var $config_found= FALSE;
+  var $tags= array();
+  var $level= 0;
+  var $gpc= 0;
+  var $section= "";
+  var $currentLocation= "";
+
+  /*! \brief Store configuration for current location */
+  var $current= array(); 
+
+  /* Link to LDAP-server */
+  var $ldap= NULL;
+  var $referrals= array();
+
+  /* \brief Configuration data
+   *
+   * - $data['SERVERS'] contains server informations.
+   * */
+  var $data= array( 'TABS' => array(), 'LOCATIONS' => array(), 'SERVERS' => array(),
+      'MAIN' => array(),
+      'MENU' => array(), 'SERVICE' => array());
+  var $basedir= "";
+  var $config_version ="NOT SET";
+
+  /* Keep a copy of the current deparment list */
+  var $departments= array();
+  var $idepartments= array();
+  var $adepartments= array();
+  var $tdepartments= array();
+  var $department_info= array();
+  var $filename = "";
+  var $last_modified = 0;
+
+  /*! \brief Class constructor of the config class
+   *  
+   *  \param string 'filename' path to the configuration file
+   *  \param string 'basedir' base directory
+   *
+   * */
+  function config($filename, $basedir= "")
+  {
+    $this->parser = xml_parser_create();
+    $this->basedir= $basedir;
+
+    xml_set_object($this->parser, $this);
+    xml_set_element_handler($this->parser, "tag_open", "tag_close");
+
+    /* Parse config file directly? */
+    if ($filename != ""){
+      $this->parse($filename);
+    }
+  }
+
+
+  /*! \brief Check and reload the configuration
+   * 
+   * This function checks if the configuration has changed, since it was
+   * read the last time and reloads it. It uses the file mtime to check
+   * weither the file changed or not.
+   *
+   * */ 
+  function check_and_reload()
+  {
+    global $ui;
+
+    /* Check if class_location.inc has changed, this is the case 
+        if we have installed or removed plugins. 
+     */
+    if(session::global_is_set("class_location.inc:timestamp")){
+      $tmp = stat("../include/class_location.inc");
+      if($tmp['mtime'] != session::global_get("class_location.inc:timestamp")){
+        session::global_un_set("plist");
+      }
+    }
+    $tmp = stat("../include/class_location.inc");
+    session::global_set("class_location.inc:timestamp",$tmp['mtime']);
+
+    if($this->filename != "" && filemtime($this->filename) != $this->last_modified){
+
+      $this->config_found= FALSE;
+      $this->tags= array();
+      $this->level= 0;
+      $this->gpc= 0;
+      $this->section= "";
+      $this->currentLocation= "";
+
+      $this->parser = xml_parser_create();
+      xml_set_object($this->parser, $this);
+      xml_set_element_handler($this->parser, "tag_open", "tag_close");
+      $this->parse($this->filename);
+      $this->set_current($this->current['NAME']);
+    }
+  }  
+
+
+  /*! \brief Parse the given configuration file 
+   *
+   *  Parses the configuration file and displays errors if there
+   *  is something wrong with it.
+   *
+   *  \param string 'filename' The filename of the configuration file.
+   * */
+
+  function parse($filename)
+  {
+    $this->data = array(
+        "TABS"      => array(), 
+        "LOCATIONS" => array(), 
+        "MAIN"      => array(), 
+        "MENU"      => array(), 
+        "SERVICE"   => array());
+
+    $this->last_modified = filemtime($filename);
+    $this->filename = $filename;
+    $fh= fopen($filename, "r"); 
+    $xmldata= fread($fh, 100000);
+    fclose($fh);
+    if(!xml_parse($this->parser, chop($xmldata))){
+      $msg = sprintf(_("XML error in gosa.conf: %s at line %d"),
+            xml_error_string(xml_get_error_code($this->parser)),
+            xml_get_current_line_number($this->parser));
+      msg_dialog::display(_("Configuration error"), $msg, FATAL_ERROR_DIALOG);
+      exit;
+    }
+
+    // Default schemacheck to "true"
+    if(!isset($this->data['MAIN']['SCHEMACHECK'])){
+      $this->data['MAIN']['SCHEMACHECK'] = "true";
+    }
+  }
+
+  function tag_open($parser, $tag, $attrs)
+  {
+    /* Save last and current tag for reference */
+    $this->tags[$this->level]= $tag;
+    $this->level++;
+
+    /* Trigger on CONF section */
+    if ($tag == 'CONF'){
+      $this->config_found= TRUE;
+      if(isset($attrs['CONFIGVERSION'])){
+        $this->config_version = $attrs['CONFIGVERSION'];
+      }
+    }
+
+    /* Return if we're not in config section */
+    if (!$this->config_found){
+      return;
+    }
+
+    /* yes/no to true/false and upper case TRUE to true and so on*/
+    foreach($attrs as $name => $value){
+      if(preg_match("/^(true|yes)$/i",$value)){
+        $attrs[$name] = "true";
+      }elseif(preg_match("/^(false|no)$/i",$value)){
+        $attrs[$name] = "false";
+      } 
+    }
+
+    /* Look through attributes */
+    switch ($this->tags[$this->level-1]){
+
+
+      /* Handle tab section */
+      case 'TAB':	$name= $this->tags[$this->level-2];
+
+                  /* Create new array? */
+                  if (!isset($this->data['TABS'][$name])){
+                    $this->data['TABS'][$name]= array();
+                  }
+
+                  /* Add elements */
+                  $this->data['TABS'][$name][]= $attrs;
+                  break;
+
+                  /* Handle location */
+      case 'LOCATION':
+                  if ($this->tags[$this->level-2] == 'MAIN'){
+                    $name= $attrs['NAME'];
+                    $name = preg_replace("/[<>\"']/","",$name);
+                    $attrs['NAME'] = $name;
+                    $this->currentLocation= $name;
+
+                    /* Add location elements */
+                    $this->data['LOCATIONS'][$name]= $attrs;
+                  }
+                  break;
+
+                  /* Handle referral tags */
+      case 'REFERRAL':
+                  if ($this->tags[$this->level-2] == 'LOCATION'){
+                    $url= $attrs['URI'];
+                    $server= preg_replace('!^([^:]+://[^/]+)/.*$!', '\\1', $url);
+
+                    /* Add location elements */
+                    if (!isset($this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'])){
+                      $this->data['LOCATIONS'][$this->currentLocation]['REFERRAL']= array();
+                    }
+
+                    $this->data['LOCATIONS'][$this->currentLocation]['REFERRAL'][$server]= $attrs;
+                  }
+                  break;
+
+                  /* Load main parameters */
+      case 'MAIN':
+                  $this->data['MAIN']= array_merge ($this->data['MAIN'], $attrs);
+                  break;
+
+                  /* Load menu */
+      case 'SECTION':
+                  if ($this->tags[$this->level-2] == 'MENU'){
+                    $this->section= $attrs['NAME'];
+                    $this->data['MENU'][$this->section]= array(); ;
+                  }
+                  break;
+
+                  /* Inser plugins */
+      case 'PLUGIN':
+                  if ($this->tags[$this->level-3] == 'MENU' &&
+                      $this->tags[$this->level-2] == 'SECTION'){
+
+                    $this->data['MENU'][$this->section][$this->gpc++]= $attrs;
+                  }
+                  if ($this->tags[$this->level-2] == 'SERVICEMENU'){
+                    $this->data['SERVICE'][$attrs['CLASS']]= $attrs;
+                  }
+                  break;
+    }
+  }
+
+  function tag_close($parser, $tag)
+  {
+    /* Close config section */
+    if ($tag == 'CONF'){
+      $this->config_found= FALSE;
+    }
+    $this->level--;
+  }
+
+
+  function get_credentials($creds)
+  {
+    if (isset($_SERVER['HTTP_GOSA_KEY'])){
+      if (!session::global_is_set('HTTP_GOSA_KEY_CACHE')){
+        session::global_set('HTTP_GOSA_KEY_CACHE',array());
+      }
+      $cache = session::global_get('HTTP_GOSA_KEY_CACHE');
+      if(!isset($cache[$creds])){
+        $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_GOSA_KEY']);
+        session::global_set('HTTP_GOSA_KEY_CACHE',$cache);
+      }
+      return ($cache[$creds]);
+    }
+    return ($creds);
+  }
+
+
+  /*! \brief Get a LDAP link object
+   *
+   * This function can be used to get an ldap object, which in turn can
+   * be used to query the LDAP. See the LDAP class for more information
+   * on how to use it.
+   *
+   * Example usage:
+   * \code
+   * $ldap = $this->config->get_ldap_link();
+   * \endcode
+   *
+   * \param boolean sizelimit Weither to impose a sizelimit on the LDAP object or not.
+   * Defaults to false. If set to true, the size limit in the configuration
+   * file will be used to set the option LDAP_OPT_SIZELIMIT.
+   * \return ldapMultiplexer object
+   */
+  function get_ldap_link($sizelimit= FALSE)
+  {
+    if($this->ldap === NULL || !is_resource($this->ldap->cid)){
+
+      /* Build new connection */
+      $this->ldap= ldap_init ($this->current['SERVER'], $this->current['BASE'],
+          $this->current['ADMINDN'], $this->get_credentials($this->current['ADMINPASSWORD']));
+
+      /* Check for connection */
+      if (is_null($this->ldap) || (is_int($this->ldap) && $this->ldap == 0)){
+        $smarty= get_smarty();
+        msg_dialog::display(_("LDAP error"), _("Cannot bind to LDAP. Please contact the system administrator."), FATAL_ERROR_DIALOG);
+        exit();
+      }
+
+      /* Move referrals */
+      if (!isset($this->current['REFERRAL'])){
+        $this->ldap->referrals= array();
+      } else {
+        $this->ldap->referrals= $this->current['REFERRAL'];
+      }
+
+      if (!session::global_is_set('size_limit')){
+        session::global_set('size_limit',$this->current['LDAPSIZELIMIT']);
+        session::global_set('size_ignore',$this->current['LDAPSIZEIGNORE']);
+      }
+    }
+
+    $obj  = new ldapMultiplexer($this->ldap);
+    if ($sizelimit){
+      $obj->set_size_limit(session::global_get('size_limit'));
+    } else {
+      $obj->set_size_limit(0);
+    }
+    return($obj);
+  }
+
+  /*! \brief Set the current location
+   *  
+   *  \param string name the name of the location
+   */
+  function set_current($name)
+  {
+    $this->current= $this->data['LOCATIONS'][$name];
+
+    if (!isset($this->current['USERRDN'])){
+      $this->current['USERRDN']= "ou=people";
+    }
+    if (!isset($this->current['GROUPRDN'])){
+      $this->current['GROUPS']= "ou=groups";
+    }
+
+    if (isset($this->current['INITIAL_BASE'])){
+      session::global_set('CurrentMainBase',$this->current['INITIAL_BASE']);
+    }
+  
+    /* Remove possibly added ',' from end of group and people ou */
+    $this->current['GROUPS'] = preg_replace("/,*$/","",$this->current['GROUPRDN']);
+    $this->current['USERRDN'] = preg_replace("/,*$/","",$this->current['USERRDN']);
+
+    if (!isset($this->current['SAMBAMACHINEACCOUNTRDN'])){
+      $this->current['SAMBAMACHINEACCOUNTRDN']= "ou=winstations,ou=systems";
+    }
+    if (!isset($this->current['ACCOUNTPRIMARYATTRIBUTE'])){
+      $this->current['ACCOUNTPRIMARYATTRIBUTE']= "cn";
+    }
+    if (!isset($this->current['MINID'])){
+      $this->current['MINID']= 100;
+    }
+    if (!isset($this->current['LDAPSIZELIMIT'])){
+      $this->current['LDAPSIZELIMIT']= 200;
+    }
+    if (!isset($this->current['SIZEINGORE'])){
+      $this->current['LDAPSIZEIGNORE']= TRUE;
+    } else {
+      if (preg_match("/true/i", $this->current['LDAPSIZEIGNORE'])){
+        $this->current['LDAPSIZEIGNORE']= TRUE;
+      } else {
+        $this->current['LDAPSIZEIGNORE']= FALSE;
+      }
+    }
+
+    /* Sort referrals, if present */
+    if (isset ($this->current['REFERRAL'])){
+      $bases= array();
+      $servers= array();
+      foreach ($this->current['REFERRAL'] as $ref){
+        $server= preg_replace('%^(.*://[^/]+)/.*$%', '\\1', $ref['URI']);
+        $base= preg_replace('%^.*://[^/]+/(.*)$%', '\\1', $ref['URI']);
+        $bases[$base]= strlen($base);
+        $servers[$base]= $server;
+      }
+      asort($bases);
+      reset($bases);
+    }
+
+    /* SERVER not defined? Load the one with the shortest base */
+    if (!isset($this->current['SERVER'])){
+      $this->current['SERVER']= $servers[key($bases)];
+    }
+
+    /* BASE not defined? Load the one with the shortest base */
+    if (!isset($this->current['BASE'])){
+      $this->current['BASE']= key($bases);
+    }
+
+    /* Convert BASE to have escaped special characters */
+    $this->current['BASE']= @LDAP::convert($this->current['BASE']);
+
+    /* Parse LDAP referral informations */
+    if (!isset($this->current['ADMINDN']) || !isset($this->current['ADMINPASSWORD'])){
+      $url= $this->current['SERVER'];
+      $referral= $this->current['REFERRAL'][$url];
+      $this->current['ADMINDN']= $referral['ADMINDN'];
+      $this->current['ADMINPASSWORD']= $referral['ADMINPASSWORD'];
+    }
+
+    /* Load server informations */
+    $this->load_servers();
+  }
+
+
+  /*! \brief Load server information from config/LDAP
+   *
+   *  This function searches the LDAP for servers (e.g. goImapServer, goMailServer etc.)
+   *  and stores information about them $this->data['SERVERS']. In the case of mailservers
+   *  the main section of the configuration file is searched, too.
+   */
+  function load_servers ()
+  {
+    /* Only perform actions if current is set */
+    if ($this->current === NULL){
+      return;
+    }
+
+    /* Fill imap servers */
+    $ldap= $this->get_ldap_link();
+    $ldap->cd ($this->current['BASE']);
+
+    /* Search mailMethod konfiguration in main section too 
+     */
+    $this->current['MAILMETHOD'] = $this->get_cfg_value("mailMethod","");
+    if (!isset($this->current['MAILMETHOD'])){
+      $this->current['MAILMETHOD']= "";
+    }
+    if ($this->current['MAILMETHOD'] == ""){
+      $ldap->search ("(objectClass=goMailServer)", array('cn'));
+      $this->data['SERVERS']['IMAP']= array();
+      while ($attrs= $ldap->fetch()){
+        $name= $attrs['cn'][0];
+        $this->data['SERVERS']['IMAP'][$name]= 
+          array( 
+              "server_dn"   => $attrs['dn'],
+              "connect"     => "",
+              "admin"       => "",
+              "password"    => "",
+              "sieve_server"=> "",
+              "sieve_option"=> "",
+              "sieve_port"  => "");
+      }
+    } else {
+      $ldap->search ("(&(objectClass=goImapServer)(goImapSieveServer=*))", 
+                    array('goImapName', 'goImapConnect', 'goImapAdmin', 'goImapPassword',
+            'goImapSieveServer', 'goImapSievePort'));
+
+      $this->data['SERVERS']['IMAP']= array();
+
+      while ($attrs= $ldap->fetch()){
+
+        /* Check if the given goImapSieveServer is in the new style "{cn:port/option}"
+           or the old style just "cn".
+         */
+        if(preg_match("/\{/",$attrs['goImapSieveServer'][0])){
+          $sieve_server = preg_replace("/^\{([^:]*).*$/","\\1",$attrs['goImapSieveServer'][0]);
+          $sieve_option = preg_replace("/^[^:]*[^\/]*+\/(.*)\}$/","\\1",$attrs['goImapSieveServer'][0]);
+        }else{
+          $sieve_server = $attrs['goImapSieveServer'][0];
+          $sieve_option = "";
+        }
+
+        $pwd            = $attrs['goImapPassword'][0];
+        $imap_admin     = $attrs['goImapAdmin'][0];
+        $imap_connect   = $attrs['goImapConnect'][0];
+        $imap_server    = $attrs['goImapName'][0];
+        $sieve_port     = $attrs['goImapSievePort'][0];
+        
+        $this->data['SERVERS']['IMAP'][$imap_server]= 
+            array( 
+            "server_dn"   => $attrs['dn'],
+            "connect"     => $imap_connect,
+            "admin"       => $imap_admin,
+            "password"    => $pwd,
+            "sieve_server"=> $sieve_server,
+            "sieve_option"=> $sieve_option,
+            "sieve_port"  => $sieve_port);
+      }
+    }
+
+    /* Get kerberos server. FIXME: only one is supported currently */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(&(goKrbRealm=*)(goKrbAdmin=*)(objectClass=goKrbServer))");
+    if ($ldap->count()){
+      $attrs= $ldap->fetch();
+      $this->data['SERVERS']['KERBEROS']= array( 'SERVER' => $attrs['cn'][0],
+          'REALM' => $attrs['goKrbRealm'][0],
+          'ADMIN' => $attrs['goKrbAdmin'][0]);
+    }
+
+    /* Get cups server. FIXME: only one is supported currently */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goCupsServer)");
+    if ($ldap->count()){
+      $attrs= $ldap->fetch();
+      $this->data['SERVERS']['CUPS']= $attrs['cn'][0];	
+    }
+
+    /* Get fax server. FIXME: only one is supported currently */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goFaxServer)");
+    if ($ldap->count()){
+      $attrs= $ldap->fetch();
+      $this->data['SERVERS']['FAX']= array( 'SERVER' => $attrs['cn'][0],
+          'LOGIN' => $attrs['goFaxAdmin'][0],
+          'PASSWORD' => $attrs['goFaxPassword'][0]);
+    }
+
+
+    /* Get asterisk servers */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goFonServer)");
+    $this->data['SERVERS']['FON']= array();
+    if ($ldap->count()){
+      while ($attrs= $ldap->fetch()){
+
+        /* Add 0 entry for development */
+        if(count($this->data['SERVERS']['FON']) == 0){
+          $this->data['SERVERS']['FON'][0]= array(
+              'DN'      => $attrs['dn'],
+              'SERVER'  => $attrs['cn'][0],
+              'LOGIN'   => $attrs['goFonAdmin'][0],
+              'PASSWORD'  => $attrs['goFonPassword'][0],
+              'DB'    => "gophone",
+              'SIP_TABLE'   => "sip_users",
+              'EXT_TABLE'   => "extensions",
+              'VOICE_TABLE' => "voicemail_users",
+              'QUEUE_TABLE' => "queues",
+              'QUEUE_MEMBER_TABLE'  => "queue_members");
+        }
+
+        /* Add entry with 'dn' as index */
+        $this->data['SERVERS']['FON'][$attrs['dn']]= array(
+            'DN'      => $attrs['dn'],
+            'SERVER'  => $attrs['cn'][0],
+            'LOGIN'   => $attrs['goFonAdmin'][0],
+            'PASSWORD'  => $attrs['goFonPassword'][0],
+            'DB'    => "gophone",
+            'SIP_TABLE'   => "sip_users",
+            'EXT_TABLE'   => "extensions",
+            'VOICE_TABLE' => "voicemail_users",
+            'QUEUE_TABLE' => "queues",
+            'QUEUE_MEMBER_TABLE'  => "queue_members");
+      }
+    }
+
+
+    /* Get glpi server */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(&(objectClass=goGlpiServer)(cn=*)(goGlpiAdmin=*)(goGlpiDatabase=*))",array("cn","goGlpiPassword","goGlpiAdmin","goGlpiDatabase"));
+    if ($ldap->count()){
+      $attrs= $ldap->fetch();
+      if(!isset($attrs['goGlpiPassword'])){
+        $attrs['goGlpiPassword'][0] ="";
+      }
+      $this->data['SERVERS']['GLPI']= array( 
+          'SERVER' 	=> $attrs['cn'][0],
+          'LOGIN' 	=> $attrs['goGlpiAdmin'][0],
+          'PASSWORD' 	=> $attrs['goGlpiPassword'][0],
+          'DB'		=> $attrs['goGlpiDatabase'][0]);
+    }
+
+
+    /* Get logdb server */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goLogDBServer)");
+    if ($ldap->count()){
+      $attrs= $ldap->fetch();
+      if(!isset($attrs['gosaLogDB'][0])){
+        $attrs['gosaLogDB'][0] = "gomon";
+      }
+      $this->data['SERVERS']['LOG']= array( 'SERVER' => $attrs['cn'][0],
+          'LOGIN' => $attrs['goLogAdmin'][0],
+          'DB' => $attrs['gosaLogDB'][0],
+          'PASSWORD' => $attrs['goLogPassword'][0]);
+    }
+
+
+    /* GOsa logging databases */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=gosaLogServer)");
+    if ($ldap->count()){
+      while($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['LOGGING'][$attrs['cn'][0]]= 
+          array(
+          'DN'    => $attrs['dn'],
+          'USER'  => $attrs['goLogDBUser'][0],
+          'DB'    => $attrs['goLogDB'][0],
+          'PWD'   => $attrs['goLogDBPassword'][0]);
+      }
+    }
+
+
+    /* Get NFS server lists */
+    $tmp= array("default");
+    $tmp2= array("default");
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(&(objectClass=goShareServer)(goExportEntry=*))");
+    while ($attrs= $ldap->fetch()){
+      for ($i= 0; $i<$attrs["goExportEntry"]["count"]; $i++){
+        if(preg_match('/^[^|]+\|[^|]+\|NFS\|.*$/', $attrs["goExportEntry"][$i])){
+          $path= preg_replace ("/^[^|]+\|[^|]+\|[^|]+\|[^|]+\|([^|]+).*$/", '\1', $attrs["goExportEntry"][$i]);
+          $tmp[]= $attrs["cn"][0].":$path";
+	}
+        if(preg_match('/^[^|]+\|[^|]+\|NBD\|.*$/', $attrs["goExportEntry"][$i])){
+          $path= preg_replace ("/^[^|]+\|[^|]+\|[^|]+\|[^|]+\|([^|]+).*$/", '\1', $attrs["goExportEntry"][$i]);
+          $tmp2[]= $attrs["cn"][0].":$path";
+	}
+      }
+    }
+    $this->data['SERVERS']['NFS']= $tmp;
+    $this->data['SERVERS']['NBD']= $tmp2;
+
+    /* Load Terminalservers */
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goTerminalServer)",array("cn","gotoSessionType"));
+    $this->data['SERVERS']['TERMINAL']= array();
+    $this->data['SERVERS']['TERMINAL'][]= "default";
+    $this->data['SERVERS']['TERMINAL_SESSION_TYPES'] = array();
+
+
+    while ($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['TERMINAL'][]= $attrs["cn"][0];
+      if(isset( $attrs["gotoSessionType"]['count'])){
+        for($i =0 ; $i < $attrs["gotoSessionType"]['count'] ; $i++){
+          $this->data['SERVERS']['TERMINAL_SESSION_TYPES'][$attrs["cn"][0]][] = $attrs["gotoSessionType"][$i]; 
+        }
+      }
+    }
+
+    /* Ldap Server 
+     */
+    $this->data['SERVERS']['LDAP']= array();
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(&(objectClass=goLdapServer)(goLdapBase=*))");
+    while ($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['LDAP'][$attrs['dn']] = $attrs;
+    }
+
+    /* Get misc server lists */
+    $this->data['SERVERS']['SYSLOG']= array("default");
+    $this->data['SERVERS']['NTP']= array("default");
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goNtpServer)");
+    while ($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['NTP'][]= $attrs["cn"][0];
+    }
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=goSyslogServer)");
+    while ($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['SYSLOG'][]= $attrs["cn"][0];
+    }
+
+    /* Get samba servers from LDAP, in case of samba3 */
+    $this->data['SERVERS']['SAMBA']= array();
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ("(objectClass=sambaDomain)");
+    while ($attrs= $ldap->fetch()){
+      $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]= array( "SID" =>"","RIDBASE" =>"");
+      if(isset($attrs["sambaSID"][0])){
+        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["SID"]  = $attrs["sambaSID"][0];
+      }
+      if(isset($attrs["sambaAlgorithmicRidBase"][0])){
+        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]["RIDBASE"] = $attrs["sambaAlgorithmicRidBase"][0];
+      }
+    }
+
+    /* If no samba servers are found, look for configured sid/ridbase */
+    if (count($this->data['SERVERS']['SAMBA']) == 0){
+      if (!isset($this->current["SAMBASID"]) || !isset($this->current["SAMBARIDBASE"])){
+        msg_dialog::display(_("Configuration error"), _("sambaSID and/or sambaRidBase missing in the configuration!"), ERROR_DIALOG);
+      } else {
+        $this->data['SERVERS']['SAMBA']['DEFAULT']= array(
+            "SID" => $this->current["SAMBASID"],
+            "RIDBASE" => $this->current["SAMBARIDBASE"]);
+      }
+    }
+    
+  }
+
+
+  function get_departments($ignore_dn= "")
+  {
+    global $config;
+
+    /* Initialize result hash */
+    $result= array();
+    $administrative= array();
+    $result['/']= $this->current['BASE'];
+    $this->tdepartments= array();
+
+    /* Get all department types from department Management, to be able detect the department type.
+        -It is possible that differnty department types have the same name, 
+         in this case we have to mark the department name to be able to differentiate.
+          (e.g l=Name  or   o=Name)
+     */    
+    $types = departmentManagement::get_support_departments();
+    
+    /* Create a list of attributes to fetch */
+    $ldap_values = array("objectClass","gosaUnitTag", "description");
+    $filter = "";
+    foreach($types as $type){
+      $ldap_values[] = $type['ATTR'];
+      $filter .= "(objectClass=".$type['OC'].")";
+    }
+    $filter = "(&(objectClass=gosaDepartment)(|".$filter."))";
+
+    /* Get list of department objects */
+    $ldap= $this->get_ldap_link();
+    $ldap->cd ($this->current['BASE']);
+    $ldap->search ($filter, $ldap_values);
+    while ($attrs= $ldap->fetch()){
+
+      /* Detect department type */
+      $type_data = array();
+      foreach($types as $t => $data){
+        if(in_array($data['OC'],$attrs['objectClass'])){
+          $type_data = $data;
+          break;
+        }
+      }
+
+      /* Unknown department type -> skip */
+      if(!count($type_data)) continue;
+
+      $dn= $ldap->getDN();
+      $this->tdepartments[$dn]= "";
+      $this->department_info[$dn]= array("img" => $type_data['IMG'],
+                                         "description" => isset($attrs['description'][0])?$attrs['description'][0]:"",
+                                         "name" => $attrs[$type_data['ATTR']][0]);
+
+      /* Save administrative departments */
+      if (in_array_ics("gosaAdministrativeUnit", $attrs['objectClass']) &&
+          isset($attrs['gosaUnitTag'][0])){
+        $administrative[$dn]= $attrs['gosaUnitTag'][0];
+        $this->tdepartments[$dn]= $attrs['gosaUnitTag'][0];
+      }
+    
+      if (in_array_ics("gosaAdministrativeUnitTag", $attrs['objectClass']) &&
+          isset($attrs['gosaUnitTag'][0])){
+        $this->tdepartments[$dn]= $attrs['gosaUnitTag'][0];
+      }
+    
+      if ($dn == $ignore_dn){
+        continue;
+      }
+      $c_dn = convert_department_dn($dn)." (".$type_data['ATTR'].")";
+
+      /* Only assign non-root departments */
+      if ($dn != $result['/']){
+        $result[$c_dn]= $dn;
+      }
+    }
+
+    $this->adepartments= $administrative;
+    $this->departments= $result;
+  }
+
+
+  function make_idepartments($max_size= 28)
+  {
+    global $config;
+    $base = $config->current['BASE'];
+		$qbase = preg_quote($base, '/');
+    $utags= isset($config->current['HONOURUNITTAGS']) && preg_match('/true/i', $config->current['HONOURUNITTAGS']);
+
+    $arr = array();
+    $ui= get_userinfo();
+
+    $this->idepartments= array();
+
+    /* Create multidimensional array, with all departments. */
+    foreach ($this->departments as $key => $val){
+
+      /* When using strict_units, filter non relevant parts */
+      if ($utags){
+        if ($ui->gosaUnitTag != '' && isset($this->tdepartments[$val]) &&
+            $this->tdepartments[$val] != $ui->gosaUnitTag){
+
+						#TODO: link with strict*
+						#continue;
+        }
+      }
+
+      /* Split dn into single department pieces */
+      $elements = array_reverse(explode(',',preg_replace("/$qbase$/",'',$val))); 		
+
+      /* Add last ou element of current dn to our array */
+      $last = &$arr;
+      foreach($elements as $key => $ele){
+
+        /* skip empty */
+        if(empty($ele)) continue;
+
+        /* Extract department name */		
+        $elestr = trim(preg_replace('/^[^=]*+=/','', $ele),',');
+        $nameA  = trim(preg_replace('/=.*$/','', $ele),',');
+        if($nameA != 'ou'){
+          $nameA = " ($nameA)";
+        }else{
+          $nameA = '';
+        }
+    
+        /* Add to array */	
+        if($key == (count($elements)-1)){
+          $last[$elestr.$nameA]['ENTRY'] = $val;
+        }
+
+        /* Set next array appending position */
+        $last = &$last[$elestr.$nameA]['SUB'];
+      }
+    }
+
+
+    /* Add base entry */
+    $ret['/']['ENTRY'] 	= $base;
+    $ret['/']['SUB']	= $arr;
+    $this->idepartments= $this->generateDepartmentArray($ret,-1,$max_size);
+  }
+
+
+  /* Creates display friendly output from make_idepartments */
+  function generateDepartmentArray($arr,$depth = -1,$max_size = 256)
+  {
+    $ret = array();
+    $depth ++;
+
+    /* Walk through array */	
+    ksort($arr);
+    foreach($arr as $name => $entries){
+
+      /* If this department is the last in the current tree position 
+       * remove it, to avoid generating output for it */
+      if(count($entries['SUB'])==0){
+        unset($entries['SUB']);
+      }
+
+      /* Fix name, if it contains a replace tag */
+      $name= preg_replace('/\\\\,/', ',', LDAP::fix($name));
+
+      /* Check if current name is too long, then cut it */
+      if(mb_strlen($name, 'UTF-8')> $max_size){
+        $name = mb_substr($name,0,($max_size-3), 'UTF-8')." ...";
+      }
+
+      /* Append the name to the list */	
+      if(isset($entries['ENTRY'])){
+        $a = "";
+        for($i = 0 ; $i < $depth ; $i ++){
+          $a.=".";
+        }
+        $ret[$entries['ENTRY']]=$a." ".$name;
+      }	
+
+      /* recursive add of subdepartments */
+      if(isset($entries['SUB'])){
+        $ret = array_merge($ret,$this->generateDepartmentArray($entries['SUB'],$depth,$max_size));
+      }
+    }
+
+    return($ret);
+  }
+
+  /*! \brief Get all available shares defined in the current LDAP
+   *
+   *  This function returns all available Shares defined in this ldap
+   *  
+   *  \param boolean listboxEntry If set to TRUE, only name and path are
+   *  attached to the array. If FALSE, the whole entry will be parsed an atached to the result.
+   *  \return array
+   */
+  function getShareList($listboxEntry = false)
+  {
+    $tmp = get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))","server",get_ou("serverRDN"),
+        $this->current['BASE'],array("goExportEntry","cn"), GL_NONE);
+    $return =array();
+    foreach($tmp as $entry){
+
+      if(isset($entry['goExportEntry']['count'])){
+        unset($entry['goExportEntry']['count']);
+      }
+      if(isset($entry['goExportEntry'])){
+        foreach($entry['goExportEntry'] as $export){
+          $shareAttrs = explode("|",$export);
+          if($listboxEntry) {
+            $return[$shareAttrs[0]."|".$entry['cn'][0]] = $shareAttrs[0]." - ".$entry['cn'][0];
+          }else{
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['server']       = $entry['cn'][0];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['name']         = $shareAttrs[0];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['description']  = $shareAttrs[1];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['type']         = $shareAttrs[2];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['charset']      = $shareAttrs[3];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['path']         = $shareAttrs[4];
+            $return[$shareAttrs[0]."|".$entry['cn'][0]]['option']       = $shareAttrs[5];
+          }
+        }
+      }
+    }
+    return($return);
+  }
+
+
+  /*! \brief Return al available share servers
+   *
+   * This function returns all available ShareServers.
+   *
+   * \return array
+   * */
+  function getShareServerList()
+  {
+    global $config;
+    $return = array();
+    $ui = get_userinfo();
+    $base = $config->current['BASE'];
+    $res= get_sub_list("(&(objectClass=goShareServer)(goExportEntry=*))", "server",
+          get_ou("serverRDN"), $base,array("goExportEntry","cn"),GL_NONE | GL_NO_ACL_CHECK);
+
+    foreach($res as $entry){
+        
+        $acl = $ui->get_permissions($entry['dn'],"server","");
+        if(isset($entry['goExportEntry']['count'])){
+          unset($entry['goExportEntry']['count']);
+        }
+        foreach($entry['goExportEntry'] as $share){
+          $a_share = explode("|",$share);
+          $sharename = $a_share[0];
+          $data= array();
+          $data['NAME']   = $sharename;
+          $data['ACL']    = $acl;
+          $data['SERVER'] = $entry['cn']['0'];
+          $data['SHARE']  = $sharename;
+          $data['DISPLAY']= $entry['cn'][0]." [".$sharename."]";
+          $return[$entry['cn'][0]."|".$sharename] = $data;
+        }
+    }
+    return($return);
+  }
+
+
+  /*! \brief Check if there's the specified bool value set in the configuration
+   *
+   *  The function checks, weither the specified bool value is set to a true
+   *  value in the configuration file. Considered true are either true or yes,
+   *  case-insensitive.
+   *
+   *  Example usage:
+   *  \code
+   *  if ($this->config->boolValueIsTrue("main", "copyPaste")) {
+   *    echo "Copy Paste Handling is enabled";
+   *  }
+   *  \endcode
+   *
+   *  \param string 'section' Section in the configuration file.
+   *  \param string 'value' Key in the given section, which is subject to check
+   *
+   *
+   * */
+  function boolValueIsTrue($section, $value)
+  {
+    $section= strtoupper($section);
+    $value= strtoupper($value);
+    if (isset($this->data[$section][$value])){
+    
+      $data= $this->data[$section][$value];
+      if (preg_match("/^true$/i", $data) || preg_match("/yes/i", $data)){
+        return TRUE;
+      }
+
+    }
+
+    return FALSE;
+  }
+
+
+  function __search(&$arr, $name, $return)
+  {
+    $return= strtoupper($return);
+    if (is_array($arr)){
+      foreach ($arr as &$a){
+        if (isset($a['CLASS']) && strcasecmp($name, $a['CLASS']) == 0){
+          return(isset($a[$return])?$a[$return]:"");
+        } else {
+          $res= $this->__search ($a, $name, $return);
+          if ($res != ""){
+            return $res;
+          }
+        }
+      }
+    }
+    return ("");
+  }
+
+
+  /*! Search for a configuration setting in different categories
+   *
+   *  Searches for the value of a given key in the configuration data.
+   *  Optionally the list of categories to search (tabs, main, locations) can
+   *  be specified. The first value that matches is returned.
+   *
+   *  Example usage:
+   *  \code
+   *  $postcmd = $this->config->search(get_class($this), "POSTCOMMAND", array("menu", "tabs"));
+   *  \endcode
+   *
+   * */
+  function search($class, $value, $categories= "")
+  {
+    if (is_array($categories)){
+      foreach ($categories as $category){
+        $res= $this->__search($this->data[strtoupper($category)], $class, $value);
+        if ($res != ""){
+          return $res;
+        }
+      }
+    } else {
+      if ($categories == "") {
+        return $this->__search($this->data, $class, $value);
+      } else {
+        return $this->__search($this->data[strtoupper($categories)], $class, $value);
+      }
+    } 
+
+    return ("");
+  }
+
+
+  /*! \brief Get a configuration value from the config
+   *
+   *  This returns a configuration value from the config. It either
+   *  uses the data of the current location ($this->current),
+   *  if it contains the value (e.g. current['BASE']) or otherwise
+   *  uses the data from the main configuration section.
+   *
+   *  If no value is found and an optional default has been specified,
+   *  then the default is returned.
+   *
+   *  \param string 'name' the configuration key (case-insensitive)
+   *  \param string 'default' a default that is returned, if no value is found
+   *
+   *
+   */
+  function get_cfg_value($name, $default= "") {
+    $name= strtoupper($name);
+
+    /* Check if we have a current value for $name */
+    if (isset($this->current[$name])){
+      return ($this->current[$name]);
+    }
+
+    /* Check if we have a global value for $name */
+    if (isset($this->data["MAIN"][$name])){
+      return ($this->data["MAIN"][$name]);
+    }
+
+    return ($default);
+  }
+
+
+  /*! \brief Check if current configuration version matches the GOsa version
+   *
+   *  This function checks if the configuration file version matches the
+   *  version of the gosa version, by comparing it with the configuration
+   *  file version of the example gosa.conf that comes with GOsa.
+   *  If a version mismatch occurs an error is triggered.
+   * */
+  function check_config_version()
+  {
+    /* Skip check, if we've already mentioned the mismatch 
+     */
+    if(session::global_is_set("LastChecked") && session::global_get("LastChecked") == $this->config_version) return;
+  
+    /* Remember last checked version 
+     */
+    session::global_set("LastChecked",$this->config_version);
+
+    $current = md5(file_get_contents(CONFIG_TEMPLATE_DIR."/gosa.conf"));
+
+    /* Check contributed config version and current config version.
+     */
+    if(($this->config_version == "NOT SET") || ($this->config_version != $current && !empty($this->config_version))){
+      msg_dialog::display(_("Configuration"),_("The configuration file you are using seems to be outdated. Please move the GOsa configuration file away to run the GOsa setup again."));
+    }
+  }
+
+
+  /*! \brief Check if session lifetime matches session.gc_maxlifetime 
+   *
+   *  On debian systems the session files are deleted with
+   *  a cronjob, which detects all files older than specified 
+   *  in php.ini:'session.gc_maxlifetime' and removes them.
+   *  This function checks if the gosa.conf value matches the range
+   *  defined by session.gc_maxlifetime.
+   *
+   *  \return boolean TRUE or FALSE depending on weither the settings match
+   *  or not. If SESSIONLIFETIME is not configured in GOsa it always returns
+   *  TRUE.
+   */
+  function check_session_lifetime()
+  {
+    if(isset($this->data['MAIN']['SESSIONLIFETIME'])){
+      $cfg_lifetime = $this->data['MAIN']['SESSIONLIFETIME'];
+      $ini_lifetime = ini_get('session.gc_maxlifetime');
+      $deb_system   = file_exists('/etc/debian_version');
+      return(!($deb_system && ($ini_lifetime < $cfg_lifetime)));  
+    }else{
+      return(TRUE);
+    }
+  }
+
+  /* Returns true if snapshots are enabled, and false if it is disalbed
+     There will also be some errors psoted, if the configuration failed */
+  function snapshotEnabled()
+  {
+    if($this->get_cfg_value("enableSnapshots") == "true"){
+
+      /* Check if the snapshot_base is defined */
+      if ($this->get_cfg_value("snapshotBase") == ""){
+
+        /* Send message if not done already */
+        if(!session::is_set("snapshotFailMessageSend")){
+          session::set("snapshotFailMessageSend",TRUE);
+          msg_dialog::display(_("Configuration error"),
+              sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),
+                      "snapshotBase"), ERROR_DIALOG);
+        }
+        return(FALSE);
+      }
+
+      /* Check if the snapshot_base is defined */
+      if (!is_callable("gzcompress")){
+
+        /* Send message if not done already */
+        if(!session::is_set("snapshotFailMessageSend")){
+          session::set("snapshotFailMessageSend",TRUE);
+          msg_dialog::display(_("Configuration error"),
+              sprintf(_("The snapshot functionality is enabled, but the required compression module is missing. Please install '%s'."),"php5-zip / php5-gzip"), ERROR_DIALOG);
+        }
+        return(FALSE);
+      }
+
+      /* check if there are special server configurations for snapshots */
+      if ($this->get_cfg_value("snapshotURI") != ""){
+
+        /* check if all required vars are available to create a new ldap connection */
+        $missing = "";
+        foreach(array("snapshotURI","snapshotAdminDn","snapshotAdminPassword","snapshotBase") as $var){
+          if($this->get_cfg_value($var) == ""){
+            $missing .= $var." ";
+
+            /* Send message if not done already */
+            if(!session::is_set("snapshotFailMessageSend")){
+              session::set("snapshotFailMessageSend",TRUE);
+              msg_dialog::display(_("Configuration error"),
+                  sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),
+                    $missing), ERROR_DIALOG);
+            }
+            return(FALSE);
+          }
+                    }
+            }
+            return(TRUE);
+    }
+    return(FALSE);
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_departmentSortIterator.inc b/gosa-core/include/class_departmentSortIterator.inc
new file mode 100644
index 0000000..0b2c315
--- /dev/null
+++ b/gosa-core/include/class_departmentSortIterator.inc
@@ -0,0 +1,84 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentSortIterator.inc 14081 2009-08-17 15:53:30Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class departmentSortIterator implements Iterator {
+  private $data;
+
+  public function __construct($data, $direction) {
+
+    function depSort($ao, $bo) {
+      // Override sort attribute from data if needed
+      $attribute_a= $ao['sort-attribute'];
+      $attribute_b= $bo['sort-attribute'];
+
+      // Extract values from ao and bo
+      $a= $b= "";
+      if (isset($ao[$attribute_a])) {
+        $a= $ao[$attribute_a];
+        if (is_array($a)) {
+          $a= $a[0];
+        }
+      }
+      if (isset($bo[$attribute_b])) {
+        $b= $bo[$attribute_b];
+        if (is_array($b)) {
+          $b= $b[0];
+        }
+      }
+
+      // Sort for string by default
+      return strnatcmp($a, $b);
+    }
+
+    // Sort for attribute
+    uasort($data, "depSort");
+
+    // Invert if direction is set
+    if ($direction) {
+      $this->data= array_reverse($data, true);
+    } else {
+      $this->data= $data;
+    }
+  }
+
+  function rewind() {
+    return reset($this->data);
+  }
+
+  function current() {
+    return current($this->data);
+  }
+
+  function key() {
+    return key($this->data);
+  }
+
+  function next() {
+    return next($this->data);
+  }
+
+  function valid() {
+    return key($this->data) !== null;
+  }
+}
+
+?>
diff --git a/gosa-core/include/class_divSelectBox.inc b/gosa-core/include/class_divSelectBox.inc
new file mode 100644
index 0000000..2de7a21
--- /dev/null
+++ b/gosa-core/include/class_divSelectBox.inc
@@ -0,0 +1,143 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_divSelectBox.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class divSelectBox {
+
+	var $a_entries;
+	var $summary;
+	var $cols;
+
+	// Members for page managment
+  var $height=200;
+
+	// Added php 4 constructor
+	function divSelectBox(){
+		$this->s_summary                = "";
+		$this->a_entries                = array();
+		$this->cols                     = 0;
+	}
+
+  function setHeight($h){
+    $this->height=$h;
+  }
+
+	function AddEntry($a_entriedata) {
+		$this->a_entries[] = $a_entriedata;
+	}
+
+  function DrawList(){
+    $s_return  = "";
+    $s_return .= "<div style=\"height:2px; overflow:hidden;background:#888888;width:100%;margin-right:0px;\"></div>\n";
+    $s_return .= "<div style=\"padding-right:1px;padding-bottom:2px;height:".$this->height.";width:100%\">\n";
+    $s_return .= "<div style=\"overflow: auto;width:100%;height:".($this->height)."px;\">\n";
+    $s_return .= "<table ".
+                    "summary='".$this->s_summary."' ".
+                    "width='100%' ".
+                    "cellspacing='0' ".
+                    "style='overflow:scroll; ".
+                    "height:".($this->height-2)."px;".
+                    "padding-right:1px; ".
+                    "padding-bottom:2px; ".
+                    "border-left:solid 2px; ".
+                    "border-top:solid 0px; ".
+                    "border-color:#888888; ".
+                    "'>\n";
+    $s_return.=$this->_generatePage();
+    $s_return.= "</table></div></div>";
+    return ($s_return);
+  }
+	
+	function _numentries(){
+		$cnt = count($this->a_entries);
+		return $cnt;
+	}
+	
+	function SetSummary($msg){
+		$this->s_summary = $msg;
+	}
+
+	function _generatePage(){
+		
+		$s_value 	= "";
+		$s_key 		= "";
+		$s_return 	= "";
+		$i_alternate=0;
+    $str = "";
+	
+    /* If divlist is empty, append a single white entry */
+    if(count($this->a_entries)==0){
+      $str.="<tr class='rowxp1'
+                ><td class='list1nohighlight' style='height:100%; border-right:0px;'> </td></tr>";
+      return($str);
+    }
+
+    $i = $this->_numEntries();
+    foreach($this->a_entries as $s_key => $s_value){
+      $i--;
+
+      if($i_alternate!=0){ 
+        $i_alternate=0; 
+      } else {
+        $i_alternate=1;
+      }
+
+      $s_return .= "\n<tr class='rowxp".($i_alternate)."'>";
+
+      $cnt = 0; 					
+    
+      foreach($s_value as $s_key2 => $s_value2 ){				
+        $this->cols = count($s_value) ;						
+        $cnt++;					
+
+        if(!isset($s_value2['class'])){
+          $class = "list".$i_alternate; 
+        } else {
+          $class = $s_value2['class'];
+        }
+
+        if(!isset($s_value2['attach'])){
+          $style = "";
+        } else {
+          $style = " ".$s_value2['attach']." "	;
+        }
+
+        $s_return .= "\n<td ".$style." class='".$class."'>";
+        $s_return .= $s_value2['string'];
+        $s_return .= "</td>";
+      }
+      $s_return.="\n</tr>";
+    }
+    $s_return.="\n<tr>";
+    for($i = 0 ; $i < ($this->cols) ; $i ++){
+      if($i >= ($this->cols-1)){
+        $s_return .= "<td class='list1nohighlight' style='height:100%;border:0px;'><div style='font-size:1px;'> </div></td>";
+      }else{
+        $s_return .= "<td class='list1nohighlight' style='height:100%;'><div style='font-size:1px;'> </div></td>";
+      }
+      
+    }
+    $s_return.="</tr>";
+    return $s_return;
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_divlist.inc b/gosa-core/include/class_divlist.inc
new file mode 100644
index 0000000..135d9ef
--- /dev/null
+++ b/gosa-core/include/class_divlist.inc
@@ -0,0 +1,381 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_divlist.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class divlist {
+
+	var $a_entries;
+	var $a_header;
+	var $b_displayPageNums; 	
+	var $s_summary;
+	var $cols;
+	var $pageid;
+  //FIXME: Ignoring the fact, that they were missing - height and width are numeric...
+  var $s_height;
+  var $s_width;
+  
+	// Members for page managment
+	var $i_currentPage;
+	var $i_entriesPerPage;
+
+  var $force_height = false;
+  var $list_footer = "";
+  var $fix_list_for_plugins = FALSE;
+  
+	// Added php 4 constructor
+	function divlist($pageid){
+
+		$this->i_currentPage    = 0;
+		$this->i_entriesPerPage = 10;
+    $this->s_height         = "450";
+    $this->s_width          = "600px";
+		$this->s_summary        = "";
+		$this->a_entries        = array();
+		$this->a_header         = array();
+		$this->b_displayPageNums= true;
+		$this->cols             = 0;
+		$this->pageid           = $pageid;
+	}
+
+	function __destruct(){
+	
+	}
+
+  function SetPluginMode($val = TRUE)
+  {
+    $this->fix_list_for_plugins = $val;
+  }
+
+  function SetFooter($str)
+  {
+    $this->list_footer = $str;
+  }
+
+	function AddEntry($a_entriedata) {
+		$this->a_entries[] = $a_entriedata;
+	}
+
+	function DisablePageNums() {
+		$this->b_displayPageNums =false;
+	}
+
+	function SetHeader($a_headerdata) {
+		$this->a_header[] = $a_headerdata ;
+	}
+	
+  function SetHeight($s_height) {
+		$this->s_height= $s_height;
+    $this->force_height = true;
+	}
+  
+  function SetWidth($s_width) {
+		$this->s_width= $s_width;
+    if(preg_match("/^[0-9]*$/",$this->s_width)){
+      $this->s_width .="px";
+    }
+	}
+
+	function SetEntriesPerPage($i_num){
+		$this->i_entriesPerPage=$i_num;
+	}
+	
+	function DrawList(){
+		$s_return = "";
+    if(!$this->force_height){
+		  $s_return.= "<table summary='".$this->s_summary."' style='width:".
+                  $this->s_width.";height:".$this->s_height.
+                  "px;' cellspacing='0' id='t_scrolltable'>";
+    } else {
+		  $s_return.= "<table summary='".$this->s_summary."' style='width:".
+                  $this->s_width.";height:".$this->s_height.
+                  "px;' cellspacing='0' id='t_scrolltable_onlywidth'>";
+    }
+
+    $s_return.= $this->_generateHeader();
+    $s_return.= $this->_generatePage();
+	  $s_return.= $this->_generateFooter();	
+		$s_return.= "</table>";
+		
+		return ($s_return);
+	}
+	
+	function _numpages(){
+		$cnt = count($this->a_entries);
+		
+		$pages 	= (int) ($cnt / $this->i_entriesPerPage);
+		if($cnt % $this->i_entriesPerPage){
+      $pages++;
+    }
+		
+		return $pages;
+	}
+	
+	function _numentries(){
+		return count($this->a_entries);
+	}
+
+  function _generateFooter()
+  {
+    $s_return = "";
+    if(!empty($this->list_footer)){
+
+      // Using scrolltable?
+      if($this->i_entriesPerPage == 0) {
+        if(!$this->force_height) {
+          $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0' id='t_scrollfoot'>";
+        } else {
+          $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:100%' cellspacing='0'                      id='t_scrollfoot_onlywidth'>";
+        }
+      }
+      $s_return .= "<tr><td class='listfooter' style='border-bottom:0px;'>".$this->list_footer."</td>";
+          // Attach a 13px-wide column (used as scrollbar space in body-table),
+    // but do this only if we are really using scrolltables.
+    if($this->i_entriesPerPage == 0) {
+      $s_return.= "\n<td class='listfooter' style='width:13px;border-right:0px;'> </td>";
+      $s_return.= "\n</table></td>";
+    }
+
+    $s_return.= "\n</tr>";
+
+    }
+    return($s_return);
+  }
+	
+	function _generateHeader(){
+		$s_return = "";
+		$s_value 	= "";
+		$s_key 		= "";
+		
+    // Using scrolltable?
+    if($this->i_entriesPerPage == 0) {
+      if(!$this->force_height) {
+        $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:".$this->s_width.";' cellspacing='0' id='t_scrollhead'>";
+      } else {
+        $s_return.= "\n<tr><td class='scrollhead'><table summary='' style='width:".$this->s_width.";' cellspacing='0' id='t_scrollhead_onlywidth'>";
+      }
+    }
+
+		$s_return.= "\n<tr>";
+
+		foreach($this->a_header[0] as $s_key => $s_value ){
+			if(!isset($s_value['attach'])){
+				$s_value['attach'] = "";
+			}
+
+  		$s_return.= "\n<td class='listheader' ".$s_value['attach'].">".$s_value['string']."</td>";
+
+      // Increment column counter
+      $this->cols++;
+
+		}
+		
+    // Attach a 13px-wide column (used as scrollbar space in body-table),
+    // but do this only if we are really using scrolltables.
+    if($this->i_entriesPerPage == 0) {
+      $s_return.= "\n<td class='listheader' style='width:13px;border-right:0px;'> </td>";
+      $s_return.= "\n</table></td>";
+    }
+
+  	$s_return.= "\n</tr>";
+		return $s_return;
+	}
+	
+	function SetSummary($msg){
+		$this->s_summary = $msg;
+	}
+
+	function _generatePage(){
+		
+		$s_value 	= "";
+		$s_key 		= "";
+		$s_return 	= "";
+   
+    if($this->i_entriesPerPage == 0) {
+      // We need to construct a "body"-table that is width-of-scrollbar thinner than the "head"-table.
+      if(!$this->force_height || $this->fix_list_for_plugins) {
+        $s_return .= "\n<tr><td colspan='".$this->cols."' class='scrollbody'><div style='width:".$this->s_width.";height:".($this->s_height-20)."px;' id='d_scrollbody' class='scrollbody'>";
+        $s_return .= "<table summary='' style='height:100%;width:581px;' cellspacing='0' id='t_scrollbody'>";
+      } else {
+        $s_return .= "\n<tr><td colspan='".$this->cols."' class='scrollbody'><div style='width:".$this->s_width.";height:".($this->s_height-20)."px;' id='d_scrollbody_onlywidth' class='scrollbody'>";
+        $s_return .= "<table summary='' style='height:100%;width:581px;' cellspacing='0' id='t_scrollbody_onlywidth'>";
+      }
+  	}
+ 
+    $i_alternate=0;
+		if(isset($_GET['start'])){
+			session::set('start'.$this->pageid,$_GET['start']);
+			$start = $_GET['start'];
+		} else {
+			if(session::is_set('start'.$this->pageid)){
+				$start = session::get('start'.$this->pageid);
+			} else {
+				$start=0;
+			}
+		}
+
+    /* If divlist is empty, append a single white entry */
+    if(count($this->a_entries)==0){
+      $str = $s_return."<tr>";
+      $str.="<td class='list1nohighlight' colspan='".$this->cols."' style='height:100%;border-right:0px;width:100%;'> </td>";
+      $str.="</tr>";
+      if($this->i_entriesPerPage == 0) {
+        $str.="</table></div></td></tr>";
+      }
+      return($str);
+    } else {
+    
+      //FIXME: Ahrg. I'd like to read this code without wasting my time.
+      if ($this->i_entriesPerPage > 0) {
+    		while($start > $this->_numentries()){
+    			$start = $start - $this->i_entriesPerPage;
+    		}	
+    
+    		$stop  = $start + $this->i_entriesPerPage;
+    
+    		$appendempty = ($this->_numentries() -$start);
+    
+    		for($i = $start ; $i < $stop;$i++){
+    			
+    			if(isset($this->a_entries[$i])){
+    							
+    				$s_value = $this->a_entries[$i];
+    				
+    		    // Alternation of background color		
+    				if($i_alternate) $i_alternate=0; else $i_alternate=1;
+    				
+          $s_return .= "\n<tr class='rowxp".$i_alternate."'>";
+    				
+    				$cnt = 0; 					
+    					
+    				foreach($s_value as $s_key2 => $s_value2 ){				
+    
+    					$cnt++;					
+    
+    					if(!isset($s_value2['class'])){
+    						$class = "list".$i_alternate; 
+    					}else{
+    						$class = $s_value2['class'];
+    					}
+    
+    					if(!isset($s_value2['attach'])){
+    						$style = "";
+    					}else{
+    						$style = " ".$s_value2['attach']." "	;
+    					}
+    
+    					$s_return .= "\n<td ".$style." class='".$class."'>";
+    					$s_return .= $s_value2['string'];
+    					$s_return .= "\n</td>";
+    				}
+    				if($cnt == 0 ){
+    					$s_return.="\n<td> </td>";
+    				}
+  
+    				$s_return .= "\n</tr>";
+    			}	
+    		}
+    
+    		if(!(($stop)<$this->_numentries())){
+    			$nums = $stop - $this->_numentries();// - $stop;
+    			for($i = 0 ; $i < $nums ; $i ++ ){
+    				$s_return.="<tr>";
+    				$cnt=0;
+    				for($a = 0, $l= count($this->a_header[0]); $a < $l ; $a ++ ) {
+    					if($a ==(count($this->a_header[0])-1)){
+    						$s_return.="\n<td class='list1' style='border:0px;height:26px;'> </td>";
+    					} else {
+    						$s_return.="\n<td class='list1' style='height:26px;'> </td>";
+    					}
+    				}
+    				$s_return.="\n</tr>";
+    			}	
+    		}
+    
+    		if($this->b_displayPageNums){
+    			$s_return .= "<tr><td colspan='".$this->cols."' align='center'>".range_selector($this->_numentries(),$start,$this->i_entriesPerPage)."</td></tr>";
+    		}
+      } else {
+        // $this->i_entriesPerPage <= 0
+        // We should display all entries on one page
+  
+        $i = $this->_numEntries();
+  	    foreach($this->a_entries as $s_key => $s_value){
+  			  $i--;
+  
+          if($i_alternate!=0){ 
+            $i_alternate=0; 
+          } else {
+            $i_alternate=1;
+          }
+  		  
+          $s_return .= "\n<tr class='rowxp".$i_alternate."'>";
+  				  
+  		    $cnt = 0; 					
+  					  
+  			  foreach($s_value as $s_key2 => $s_value2 ){				
+  
+  				  $this->cols = count($s_value) ;						
+  				  $cnt++;					
+  
+  				  if(!isset($s_value2['class'])){
+  					  $class = "list".$i_alternate; 
+  				  } else {
+  					  $class = $s_value2['class'];
+  				  }
+  
+  				  if(!isset($s_value2['attach'])){
+  					  $style = "";
+  				  } else {
+  					  $style = " ".$s_value2['attach']." "	;
+  				  }
+            
+            $s_return .= "\n<td ".$style." class='".$class."'>";
+  				  $s_return .= $s_value2['string'];
+  				  $s_return .= "</td>";
+  			  }
+  			  $s_return .= "\n</tr>";
+  		  }
+      }
+  
+      // if fewer than 22 Entries (list not full), print row to fill empty space
+      //FIXME: Why 22? Isn't the size dynamic
+      if($this->_numEntries()<=22){
+        $fill= "";
+        for ($i= 1; $i <= $this->cols; $i++){
+          if ($i == $this->cols){
+           $fill.= "<td class='list1nohighlight' style='height:100%;border-right:0px;'> </td>";
+          } else {
+           $fill.= "<td class='list1nohighlight' style='height:100%;'> </td>";
+          }
+        }
+        $s_return.="\n<tr>$fill";
+      }
+      if($this->i_entriesPerPage == 0) {
+        $s_return .= "\n</table></div></td>";
+      }
+      $s_return .= "</tr>";
+      return $s_return;
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_filter.inc b/gosa-core/include/class_filter.inc
new file mode 100644
index 0000000..0ace9b1
--- /dev/null
+++ b/gosa-core/include/class_filter.inc
@@ -0,0 +1,589 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_filter.inc 16945 2010-03-19 08:40:29Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class filter {
+
+  var $xmlData;
+  var $elements= array();
+  var $elementValues= array();
+  var $alphabetElements= array();
+  var $autocompleter= array();
+  var $category= "";
+  var $objectStorage= array();
+  var $base= "";
+  var $scope= "";
+  var $query;
+  var $initial= false;
+  var $scopeMode= "auto";
+  var $alphabet= null;
+  var $converter= array();
+  var $pid;
+  var $headpage;
+
+
+  function filter($filename)
+  {
+    global $config;
+
+    // Load eventually passed filename
+    if (!$this->load($filename)) {
+      die("Cannot parse $filename!");
+    }
+
+    $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE)); 
+  }
+
+
+  function load($filename)
+  {
+    $contents = file_get_contents($filename);
+    $this->xmlData= xml::xml2array($contents, 1);
+
+    if (!isset($this->xmlData['filterdef'])) {
+      return false;
+    }
+
+    $this->xmlData= $this->xmlData["filterdef"];
+
+    // Load filter
+    if (isset($this->xmlData['search'])) {
+      if (!isset($this->xmlData['search']['query'][0])){
+        $this->xmlData['search']['query']= array($this->xmlData['search']['query']);
+      }
+
+      // Move information
+      $entry= $this->xmlData['search'];
+      $this->scopeMode= $entry['scope'];
+      if ($entry['scope'] == "auto") {
+        $this->scope= "one";
+      } else {
+        $this->scope= $entry['scope'];
+      }
+      $this->query= $entry['query'];
+    } else {
+      return false;
+    }
+
+    // Transfer initial value
+    if (isset($this->xmlData['definition']['initial']) && $this->xmlData['definition']['initial'] == "true"){
+      $this->initial= true;
+    }
+
+    // Transfer category
+    if (isset($this->xmlData['definition']['category'])){
+      $this->category= $this->xmlData['definition']['category'];
+    }
+
+    // Generate formular data
+    if (isset($this->xmlData['element'])) {
+      if (!isset($this->xmlData['element'][0])){
+        $this->xmlData['element']= array($this->xmlData['element']);
+      }
+      foreach ($this->xmlData['element'] as $element) {
+
+        // Ignore elements without type
+        if (!isset($element['type']) || !isset($element['tag'])) {
+          next;
+        }
+
+        $tag= $element['tag'];
+
+        // Fix arrays
+        if (isset($element['value']) && !isset($element['value'][0])) {
+          $element['value']= array($element['value']);
+        }
+
+        // Store element for quick access
+        $this->elements[$tag] = $element;
+
+        // Preset elementValues with default values if exist
+        if (isset($element['default']) && !is_array($element['default'])) {
+          $this->elementValues[$tag] = $element['default'];
+        } else {
+          $this->elementValues[$tag] = "";
+        }
+
+        // Does this element react on alphabet links?
+        if (isset($element['alphabet']) && $element['alphabet'] == "true") {
+          $this->alphabetElements[]= $tag;
+        }
+      }
+
+      uasort($this->elements, 'strlenSort');
+      $this->elements= array_reverse($this->elements);
+
+    }
+
+    return true;  
+  }
+
+
+  function getTextfield($element)
+  {
+    $tag= $element['tag'];
+    $size= 30;
+    if (isset($element['size'])){
+      $size= $element['size'];
+    }
+    $maxlength= 30;
+    if (isset($element['maxlength'])){
+      $maxlength= $element['maxlength'];
+    }
+    $result= "<input class='filter_textfield' id='$tag' name='$tag' type='text' size='$size' maxlength='{$maxlength}' value='".$this->elementValues[$tag]."'>";
+    if (isset($element['autocomplete'])) {
+      $frequency= "0.5";
+      $characters= "1";
+      if (isset($element['autocomplete']['frequency'])) {
+        $frequency= $element['autocomplete']['frequency'];
+      }
+      if (isset($element['autocomplete']['characters'])) {
+        $characters= $element['autocomplete']['characters'];
+      }
+      $result.= "<div id='autocomplete$tag' class='autocomplete'></div>".
+                "<script type='text/javascript'>".
+                "new Ajax.Autocompleter('$tag', 'autocomplete$tag', 'autocomplete.php', { minChars: $characters, frequency: $frequency });".
+                "</script>";
+
+       $this->autocompleters[$tag]= $element['autocomplete'];
+    }
+    return $result;
+  }
+
+
+  function getCheckbox($element)
+  {
+    $tag= $element['tag'];
+    $checked= "";
+    if ($this->elementValues[$tag] == "true") {
+      $checked= " checked";
+    }
+
+    $result= "<input class='filter_checkbox' id='$tag' name='$tag' type='checkbox' onClick='document.mainform.submit();' value='true'$checked>";
+    return $result;
+  }
+
+
+  function getCombobox($element)
+  {
+    $result= "<select name='".$element['tag']."' size='1' onChange='document.mainform.submit();'>";
+
+    // Fill with presets
+    foreach ($element['value'] as $value) {
+      $selected= "";
+      if ($this->elementValues[$element['tag']] == $value['key']) {
+        $selected= " selected";
+      }
+
+      // Handle translations
+      $result.= "<option value='".$value['key']."'$selected>"._($value['label'])."</option>";
+    }
+
+    // Use autocompleter for additional data
+    if (isset($element['autocomplete'])) {
+      $list= $this->getCompletitionList($element['autocomplete'], $element['tag']);
+      foreach ($list as $value) {
+        $selected= "";
+        if ($this->elementValues[$element['tag']] == $value) {
+          $selected= " selected";
+        }
+        $result.= "<option value='$value'$selected>$value</option>";
+      }
+    }
+
+    $result.= "</select>";
+
+    return $result;
+  }
+
+
+  function setComboBoxOptions($tag, $options)
+  {
+    if (isset($this->elements[$tag]) && $this->elements[$tag]['type'] == "combobox") {
+      
+      $this->elements[$tag]['value']= array();
+      foreach ($options as $key => $label) {
+        $this->elements[$tag]['value'][]= array('label' => $label, 'key' => $key);
+      }
+    }
+  }
+
+
+  function getCurrentBase()
+  {
+    if (isset($this->search->base) && (string)$this->search->scope != "auto") {
+      return false;
+    }
+
+    return $this->base;
+  }
+
+
+  function getCurrentScope()
+  {
+    if (isset($this->search->scope) && (string)$this->search->scope != "auto") {
+      return (string)$this->search->scope;
+    }
+
+    return $this->scope;
+  }
+
+
+  function setConverter($field, $hook)
+  {
+    $this->converter[$field]= $hook;
+  }
+
+
+  function setObjectStorage($storage)
+  {
+    $this->objectStorage= $storage;    
+  }
+
+
+  function setBase($base)
+  {
+    $this->base= $base;
+  }
+
+
+  function setCurrentScope($scope)
+  {
+    $this->scope= $scope;
+  }
+
+
+  function renderAlphabet($columns= 10)
+  {
+    // Return pre-rendered alphabet if available
+    if ($this->alphabet) {
+      return ($this->alphabet);
+    }
+
+    $characters= _("*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
+    $alphabet= "";
+    $c= 0;
+
+    /* Fill cells with charaters */
+    for ($i= 0, $l= mb_strlen($characters, 'UTF8'); $i<$l; $i++){
+      if ($c == 0){
+        $alphabet.= "<tr>";
+      }
+
+      $ch = mb_substr($characters, $i, 1, "UTF8");
+      $alphabet.= "<td><a class=\"alphaselect\" href=\"main.php?plug=".
+        validate($_GET['plug'])."&filter=".$ch."\"> ".$ch." </a></td>";
+
+      if ($c++ == $columns){
+        $alphabet.= "</tr>";
+        $c= 0;
+      }
+    }
+
+    /* Fill remaining cells */
+    while ($c++ <= $columns){
+      $alphabet.= "<td> </td>";
+    }
+
+    /* Save alphabet */
+    $this->alphabet= "<table width='100%'>$alphabet</table>";
+
+    return ($this->alphabet);
+  }
+
+
+  function renderApply()
+  {
+    return ("<input type='submit' name='apply' value='"._("Apply filter")."'>");
+  }
+
+
+  function renderScope()
+  {
+    $checked= $this->scope == "sub"?" checked":"";
+    return "<input type='checkbox' id='SCOPE' name='SCOPE' value='1' onClick='document.mainform.submit();'$checked> <LABEL for='SCOPE'>"._("Search in subtrees")."</LABEL>";
+  }
+
+
+  function render()
+  {
+    $smarty= get_smarty();
+    $smarty->assign("ALPHABET", $this->renderAlphabet());
+    $smarty->assign("APPLY", $this->renderApply());
+    $smarty->assign("SCOPE", $this->renderScope());
+
+    // Load template and replace elementsHtml[]
+    foreach ($this->elements as $tag => $element) {
+      $htmlCode= "";
+      switch ($element['type']) {
+        case "textfield":
+          $htmlCode = $this->getTextfield($element);
+          break;
+
+        case "checkbox":
+          $htmlCode = $this->getCheckbox($element);
+          break;
+
+        case "combobox":
+          $htmlCode = $this->getCombobox($element);
+          break;
+
+        default:
+          die ("Unknown element type specified!");
+      }
+      $smarty->assign("$tag", $htmlCode);
+    }
+
+    // Try to load template from plugin the folder first...
+    $file = get_template_path($this->xmlData['definition']['template'], true);
+
+    // ... if this fails, try to load the file from the theme folder.
+    if(!file_exists($file)){
+      $file = get_template_path($this->xmlData['definition']['template']);
+    }
+
+    // Load template
+    return ("<input type='hidden' name='FILTER_PID' value='".$this->pid."'>".$smarty->fetch($file));
+  }
+
+
+  function query()
+  {
+    global $class_mapping;
+    $result= array();
+
+    // Return empty list if initial is not set
+    if (!$this->initial) {
+      $this->initial= true;
+      return $result;
+    }
+
+    // Go thru all queries and merge results
+    foreach ($this->query as $query) {
+      if (!isset($query['backend']) || !isset($query['filter']) || !isset($query['attribute'])) {
+        die("No backend specified in search config.");
+      }
+
+      // Is backend available?
+      $backend= "filter".$query['backend'];
+      if (!isset($class_mapping["$backend"])) {
+        die("Invalid backend specified in search config.");
+      }
+
+      // Load filter and attributes
+      $filter= $query['filter'];
+      $attributes= $query['attribute'];
+
+      // ObjectClass is required to check permissions later.
+      if(!in_array('objectClass', $attributes)) $attributes[] = 'objectClass';
+
+      // Generate final filter
+      foreach ($this->elements as $tag => $element) {
+        if (!isset($element['set']) || !isset($element['unset'])) {
+          continue;
+        }
+
+        // Handle converters if present
+        if (isset($this->converter[$tag])) {
+          preg_match('/([^:]+)::(.*)$/', $this->converter[$tag], $m);
+          $e_set= call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->elementValues[$tag], is_array($element['set'])?"":$element['set']));
+          $e_unset= call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->elementValues[$tag], is_array($element['unset'])?"":$element['unset']));
+        } else {
+          $e_set= is_array($element['set'])?"":$element['set'];
+          $e_unset= is_array($element['unset'])?"":$element['unset'];
+        }
+
+        // Do not replace escaped \$ - This is required to be able to search for e.g. windows machines.
+        if ($this->elementValues[$tag] == "") {
+          $e_unset= preg_replace('/([^\\\\])\$/', '${1}'.normalizeLdap($this->elementValues[$tag]), $e_unset);
+          $e_unset= preg_replace('/\\\\\$/','$', $e_unset);
+          $filter= preg_replace("/\\$$tag/", $e_unset, $filter);
+        } else {
+          $e_set= preg_replace('/([^\\\\])\$/', '${1}'.normalizeLdap($this->elementValues[$tag]), $e_set);
+          $e_set= preg_replace('/\\\\\$/','$', $e_set);
+          $filter= preg_replace("/\\$$tag/", $e_set, $filter);
+        }
+      }
+
+      // Now call filter method and merge resulting entries. 
+      $result= array_merge($result, call_user_func(array($backend, 'query'),
+            $this, $this->base, $this->scope, $filter, $attributes, $this->category, $this->objectStorage));
+    }
+    
+    return ($result);
+  }
+
+
+  function isValid()
+  {
+    foreach ($this->elements as $tag => $element) {
+      if (isset($element->regex)){
+        if (!preg_match('/'.(string)$element->regex.'/', $this->elementValues[$tag])){
+          return false;
+        }
+      }
+    }
+    return true;
+  }
+
+
+  function update()
+  {
+    /* React on alphabet links if needed */
+    if (isset($_GET['filter'])){
+      $s= mb_substr(validate($_GET['filter']), 0, 1, "UTF8");
+      foreach ($this->alphabetElements as $tag) {
+        $this->elementValues[$tag]= $s;
+      }
+    }
+
+    if (isset($_POST['FILTER_PID']) && $_POST['FILTER_PID'] == $this->pid) {
+      // Load post values and adapt filter, base and scope accordingly - but
+      // only if we didn't get a _GET
+      foreach ($this->elements as $tag => $element) {
+        if (isset($_POST[$tag])){
+          $this->elementValues[$tag]= validate($_POST[$tag]);
+        } else {
+          $this->elementValues[$tag]= "";
+        }
+      }
+
+      // Save scope if needed
+      if ($this->scopeMode == "auto") {
+        $this->scope= isset($_POST['SCOPE'])?"sub":"one";
+      }
+    }
+
+  }
+
+
+  function getCompletitionList($config, $tag, $value="*")
+  {
+    global $class_mapping;
+    $res= array();
+
+    // Is backend available?
+    $backend= "filter".$config['backend'];
+    if (!isset($class_mapping["$backend"])) {
+      die("Invalid backend specified in search config.");
+    }
+
+    // Load filter and attributes
+    $filter= $config['filter'];
+    $attributes= $config['attribute'];
+    if (!is_array($attributes)) {
+      $attributes= array($attributes);
+    }
+
+    // ObjectClass is required to check permissions later.
+    if(!in_array('objectClass', $attributes)) $attributes[] = 'objectClass';
+
+    // Make filter
+    $filter= preg_replace("/\\$$tag/", normalizeLdap($value), $filter);
+    if (isset($config['base']) && isset($config['scope']) && isset($config['category'])) {
+      $result= call_user_func(array($backend, 'query'), $this,$config['base'], $config['scope'], $filter, $attributes,
+                           $config["category"], $config["objectStorage"]);
+    } else {
+      $result= call_user_func(array($backend, 'query'), $this,$this->base, $this->scope, $filter, $attributes,
+                           $this->category, $this->objectStorage);
+    }
+
+    foreach ($result as $entry) {
+      foreach ($attributes as $attribute) {
+        if (is_array($entry[$attribute])) {
+          for ($i= 0; $i<$entry[$attribute]['count']; $i++) {
+            if (mb_stristr($entry[$attribute][$i], $value)) {
+              $res[]= $entry[$attribute][$i];
+            }
+          }
+        } else {
+          $res[]= $entry[$attribute];
+        }
+      }
+    }
+
+    return $res;
+  }
+
+
+  function processAutocomplete()
+  {
+    global $class_mapping;
+    $result= array();
+
+    // Introduce maximum number of entries
+    $max= 25;
+
+    foreach ($this->autocompleters as $tag => $config) {
+      if(isset($_POST[$tag])){
+        $result= $this->getCompletitionList($config, $tag, $_POST[$tag]);
+        $result= array_unique($result);
+        asort($result);
+
+        echo '<ul>';
+        foreach ($result as $entry) {
+          echo '<li>'.mark($_POST[$tag], $entry).'</li>';
+          if ($max-- == 0) {
+            break;
+          }
+        }
+
+        echo '</ul>';
+      }
+    }
+  }
+
+
+  function getObjectBase($dn)
+  {
+    global $config;
+    $base= "";
+
+    // Try every object storage
+    $storage= $this->objectStorage;
+    if (!is_array($storage)){
+      $storage= array($storage);
+    }
+    foreach ($storage as $location) {
+      $pattern= "/^[^,]+,".preg_quote($location, '/')."/i";
+      $base= preg_replace($pattern, '', $dn);
+    }
+
+    /* Set to base, if we're not on a correct subtree */
+    if (!isset($config->idepartments[$base])){
+      $base= $config->current['BASE'];
+    }
+
+    return $base;
+  }
+
+
+}
+
+// Sort elements for element length to allow proper replacing later on
+function strlenSort($a, $b) {
+  if (strlen($a['tag']) == strlen($b['tag'])) {
+    return 0;
+  }
+  return (strlen($a['tag']) < strlen($b['tag']) ? -1 : 1);
+} 
+
+?>
diff --git a/gosa-core/include/class_filterLDAP.inc b/gosa-core/include/class_filterLDAP.inc
new file mode 100644
index 0000000..4fa1e2a
--- /dev/null
+++ b/gosa-core/include/class_filterLDAP.inc
@@ -0,0 +1,134 @@
+<?php
+
+class filterLDAP {
+
+  static function query($parent,$base, $scope, $filter, $attributes, $category, $objectStorage= array(""))
+  {
+    $config= session::global_get('config');
+    $ldap= $config->get_ldap_link(TRUE);
+    $flag= ($scope == "sub")?GL_SUBSEARCH:0;
+    $result= filterLDAP::get_list($parent,$base, $filter, $attributes, $category, $objectStorage, $flag | GL_SIZELIMIT);
+    return $result;
+  }
+
+
+  static function get_list($parent,$base, $filter, $attributes, $category, $objectStorage, $flags= GL_SUBSEARCH)
+  {
+    $ui= session::global_get('ui');
+    $config= session::global_get('config');
+
+    // Move to arrays for category and objectStorage
+    if (!is_array($category)) {
+      $category= array($category);
+    }
+
+    // Store in base - i.e. is a rdn value empty?
+    $storeOnBase= count($objectStorage) == 1 && empty($objectStorage[0]);
+
+    $method= ($storeOnBase && !($flags & GL_SUBSEARCH))?"ls":"search";
+
+    // Initialize search bases
+    $bases= array();
+    
+    // Get list of sub bases to search on
+    if ($storeOnBase) {
+      $bases[$base]= "";
+    } else {
+      foreach ($objectStorage as $oc) {
+        $oc= preg_replace('/,$/', '', $oc);
+        $tmp= explode(',', $oc);
+        if (count($tmp) == 1) {
+          preg_match('/([^=]+)=(.*)$/', $oc, $m);
+          if ($flags & GL_SUBSEARCH) {
+            $bases[$base][]= $m[1].":dn:=".$m[2];
+          } else {
+            $bases["$oc,$base"][]= $m[1].":dn:=".$m[2];
+          }
+        } else {
+          // No, there's no \, in pre defined RDN values
+          preg_match('/^([^,]+),(.*)$/', $oc, $matches);
+          preg_match('/([^=]+)=(.*)$/', $matches[1], $m);
+          if ($flags & GL_SUBSEARCH) {
+            $bases[$base][]= $m[1].":dn:=".$m[2];
+          } else {
+            $bases[$matches[2].",$base"][]= $m[1].":dn:=".$m[2];
+          }
+        }
+      }
+    }
+
+    // Get LDAP link
+    $ldap= $config->get_ldap_link($flags & GL_SIZELIMIT);
+
+    // Do search for every base
+    $result= array();
+    $limit_exceeded = FALSE;
+    foreach($bases as $base => $dnFilters) {
+
+      // Break if the size limit is exceeded
+      if($limit_exceeded){
+        return($result);
+      }
+
+      // Switch to new base and search
+      if (is_array($dnFilters)){
+        $dnFilter= "(|";
+        foreach ($dnFilters as $df) {
+          $dnFilter.= "($df)";
+        }
+        $dnFilter.= ")";
+      } else {
+        $dnFilter= "";
+      }
+      $ldap->cd($base);
+      if ($method == "ls") {
+        $ldap->ls("(&$filter$dnFilter)", $base, $attributes);
+      } else {
+        $ldap->search("(&$filter$dnFilter)", $attributes);
+      }
+
+      // Check for size limit exceeded messages for GUI feedback
+      if (preg_match("/size limit/i", $ldap->get_error())){
+        session::set('limit_exceeded', TRUE);
+        $limit_exceeded = TRUE;
+      } 
+
+      /* Crawl through result entries and perform the migration to the
+         result array */
+      while($attrs = $ldap->fetch()) {
+        $dn= $ldap->getDN();
+
+        /* Convert dn into a printable format */
+        if ($flags & GL_CONVERT){
+          $attrs["dn"]= convert_department_dn($dn);
+        } else {
+          $attrs["dn"]= $dn;
+        }
+
+        /* Skip ACL checks if we are forced to skip those checks */
+        if($flags & GL_NO_ACL_CHECK){
+          $result[]= $attrs;
+        }else{
+
+          // Check entry permission
+          $obj = $parent->headpage->getObjectType($parent->headpage->objectTypes, $attrs['objectClass']);
+          if(isset($obj['category'])){
+            $o = $obj['category']."/".$obj['class'];
+            if(preg_match("/r/",$ui->get_permissions($dn,$o))){
+              $result[]= $attrs;
+            }
+          }else{
+            //trigger_error("Invalid objectType given, please check listing.xml '{$dn}'!");
+          }
+        }
+      }
+
+    }
+
+    return $result;
+  }
+
+
+}
+
+?>
diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc
new file mode 100644
index 0000000..04d5e2e
--- /dev/null
+++ b/gosa-core/include/class_gosaSupportDaemon.inc
@@ -0,0 +1,1951 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_gosaSupportDaemon.inc 15275 2010-01-25 09:04:37Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class gosaSupportDaemon
+{
+  private $s_host       = "";
+  private $i_port       = 0;
+  private $s_encryption_key = "";
+
+  private $o_sock       = NULL;
+  private $f_timeout    = 2;
+  private $s_error      = "";
+  private $b_error      = FALSE;
+
+  private $is_connected   = FALSE;
+  private $is_configured  = FALSE;
+  protected $use_alternative_xml_parse_method = FALSE;
+
+  public function get_host()
+  {
+    return($this->s_host);
+  }
+
+  public function get_port()
+  {
+    return($this->i_port);
+  }
+
+  /*! \brief  Creates a new gosaSupportDaemon object.
+    @param string   Host    The Host where the daemon is running on.  
+    @param integer  Port    The port which the daemon use.
+    @param string   Key     The encryption string.
+    @param boolean  Connect Directly connect to daemon socket.
+    @param float    Timeout The timelimit for all socket actions.
+   */
+  public function __construct($connect=TRUE,$timeout=null)
+  {
+    #FIXME: bad idea about referencing global variables from within classes
+    global $config;
+    if(!isset($config) || !$config){
+      $config = session::global_get('config');
+    }
+
+    // Detect timeout 
+    if($timeout == null){
+      $timeout = $config->get_cfg_value("gosaSupportTimeout",15);
+    }
+
+    /* This should only be the case if we call this from setup.
+        __autoload() 
+     */
+    if(!is_object($config)) { return; }
+
+    # load from config, store statically
+    if ($config->get_cfg_value("gosaSupportURI") != ""){
+
+      if ($this->s_host == ""){
+        $this->s_host= preg_replace("/^.*@([^:]+):.*$/", "$1", $config->get_cfg_value("gosaSupportURI"));
+        $this->i_port= preg_replace("/^.*@[^:]+:(.*)$/", "$1", $config->get_cfg_value("gosaSupportURI"));
+        $this->s_encryption_key = preg_replace("/^(.*)@[^:]+:.*$/", "$1", $config->get_cfg_value("gosaSupportURI"));
+      }
+      $this->is_configured = TRUE;
+      $this->f_timeout = $timeout;
+      if($connect){
+        $this->connect();
+      }
+    }
+  }
+
+
+  public function is_configured()
+  {
+    return($this->is_configured);
+  }
+
+
+  /*! \brief  Establish daemon connection. 
+    @return boolean Returns true if the connection was succesfully established. 
+   */
+  public function connect()
+  {
+    if(!empty($this->s_host) && !empty($this->i_port)){
+      $this->o_sock = new Socket_Client($this->s_host,$this->i_port,TRUE,$this->f_timeout);
+      if($this->o_sock->connected()){ 
+        $this->o_sock->setEncryptionKey($this->s_encryption_key); 
+        $this->is_connected = TRUE;
+      }else{
+        $this->set_error($this->o_sock->get_error());
+        $this->disconnect();
+        new log("debug","gosaSupportDaemon::connect()", "Cannot connect to si-server", array(),$this->get_error());
+      }
+    }else{
+      $this->set_error(msgPool::cmdnotfound("gosaSupportURI",_("GOsa support daemon")));
+    }
+    return($this->is_connected);
+  }
+
+  
+  /*! \brief  Returns TRUE whether we are connected or not 
+      @return BOOLEAN  Returns TRUE when connected else FALSE
+   */
+  public function is_connected()
+  {
+    return($this->is_connected);
+  }
+ 
+
+  /*! \brief  */
+  public function get_hosts_with_module($mod)
+  {
+    $data = array("module_name" => $mod);
+    $res = $this->send_data("gosa_get_hosts_with_module",$this->s_host.":".$this->i_port,$data,TRUE);
+    $hosts = array();
+    if(isset($res['XML'][0])){
+      foreach($res['XML'][0] as $name => $data){
+        if(preg_match("/^ANSWER[0-9]*$/",$name)){
+          if(isset($data[0]['MAC'][0]['VALUE']) && $data[0]['MAC'][0]['VALUE'] != ""){
+            $hosts[] = $data[0]['MAC'][0]['VALUE'];
+          } elseif(isset($data[0]['IP'][0]['VALUE']) && $data[0]['IP'][0]['VALUE'] != "") {
+            $hosts[] = $data[0]['IP'][0]['VALUE'];
+          }
+        }
+      }
+    }
+
+    if(count($hosts) == 0){
+      @DEBUG(DEBUG_SI, __LINE__, "<b>".__CLASS__."::".__FUNCTION__."</b>" , 
+        __FILE__, "<font color='red'><i>Found: 0</i></font>", $info=$mod);
+    }else{
+      @DEBUG(DEBUG_SI, __LINE__, "<b>".__CLASS__."::".__FUNCTION__."</b>" , 
+        __FILE__, "<i>Found: ".count($hosts)."</i>", $info=$mod);
+    }
+
+    return($hosts);
+  }
+
+
+  /*! \brief  Disconnect from gosa daemon.
+   */
+  public function disconnect()
+  {
+    $this->o_sock->close();
+    $this->is_connected = FALSE;
+  }
+
+
+  /*! \brief  Sets an error message, which can be returned with get_error().
+    @param  string  The Error message,
+   */
+  private function set_error($str)
+  {
+    /******
+      Debug handling
+     ******/
+    $debug = debug_backtrace();
+    $file = __FILE__;
+    $function = __FUNCTION__;
+    $line = __LINE__;
+    $class = __CLASS__;
+    foreach($debug as $info){
+      if(!in_array($info['function'],array("send_data","_send","set_error","connect"))){
+        $file = $info['file'];
+        $line = $info['line'];
+        $class = get_class($this);
+        $function = $info['function'];
+        break;
+      }
+    }
+    @DEBUG(DEBUG_SI, $line, "<b>".$class."::".$function."</b>" , $file, "<font color='red'><i>".htmlentities($str)."</i></font>", $info="");
+
+    /******
+      Set error string.
+     ******/
+  
+    $this->b_error = TRUE;
+    $this->s_error = $str;
+  }
+
+
+  /*! \brief  Sets an error message, which can be returned with get_error().
+    @param  string  The Error message,
+   */
+  private function reset_error()
+  {
+    $this->b_error = FALSE;
+    $this->s_error = "";
+  }
+
+
+  /*! \brief  Checks if an error occured.
+    @return boolean returns TRUE or FALSE, whether there is an error or not.
+   */
+  public function is_error()
+  {
+    return($this->b_error);
+  }
+
+
+  /*! \brief  Returns the last error. 
+    @return Returns the last error.
+   */
+  public function get_error()
+  {
+    $str = $this->s_error;
+    $ret = "";
+    if(is_string($str)){
+      $ret = $str;
+    }else{
+      foreach($str as $msg){
+        $ret .= $msg." ";
+      }
+    }
+    $ret = str_replace(" "," ",$ret);
+    return($ret);
+  }
+
+
+  public function FAI_get_kernels($release)
+  {
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_get_available_kernel</header>".
+      "<source>GOSA</source>".
+      "<target>GOSA</target>".
+      "<fai_release>".$release."</fai_release>".
+      "</xml>";
+
+    $ret = array();
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+
+      /* Check if returned values represent a valid answer */
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+        if(isset($entries['XML'])){
+          $ret = $entries['XML'];
+          foreach($ret as $key => $entry){
+            if(!preg_match("/^answer/i",$key)){
+              unset($ret[$key]);
+            }
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+
+  public function FAI_get_package_sections($release)
+  {
+    $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
+      "<select>distinct section</select>".
+      "<where><clause><phrase><distribution>".$release."</distribution></phrase></clause></where></xml>";
+
+    $ret = array();
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+
+        /* Unset header tags */
+        foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+          if(isset($entries['XML'][$type])){
+            unset($entries['XML'][$type]);
+          }
+        }
+        $ret = $entries['XML'];
+      }
+    }
+    return($ret);
+  }
+
+
+  public function FAI_get_packages($release,$attrs,$package,$from=-1,$to=-1)
+  {
+    $ret = array();
+
+    /* Check Parameter */
+    if(!is_array($attrs) || !count($attrs)){
+      trigger_error("Second parameter must be an array. With at least one attribute name.");
+      return($ret);
+    }
+
+    /* Check Parameter */
+    if(!is_array($package)){
+      trigger_error("Third parameter must be an array. With at least one attribute name.");
+      return($ret);
+    }
+
+    /* Create list of attributes to fetch */
+    $attr = ""; 
+    foreach($attrs as $at){
+      $attr.= "<select>".$at."</select>";
+    }
+
+    /* If no package is given, search for all */
+    if(!count($package)) $package = array("%");
+
+    /* Create limit tag */
+    if($from == -1){
+      $limit =""; 
+    }else{
+      $limit = "<limit><from>".$from."</from><to>".$to."</to></limit>";
+    }
+
+    /* Create list of attributes to fetch */
+    $pkgs = ""; 
+    foreach($package as $pkg){
+      $pkgs .="<phrase><operator>like</operator><package>".$pkg."</package></phrase>";
+    }
+
+    $xml_msg = "<xml><header>gosa_query_packages_list</header><target>GOSA</target><source>GOSA</source>".
+      $attr.
+      "<where>
+      <clause><phrase><distribution>".$release."</distribution></phrase></clause>
+      <clause><connector>OR</connector>
+      ".$pkgs."
+      </clause>
+      </where>".
+      $limit.
+      "</xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+
+        /* Check if returned values represent a valid answer */
+        if(isset($entries['XML'])){
+
+          /* Unset header tags */
+          foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+            if(isset($entries['XML'][$type])){
+              unset($entries['XML'][$type]);
+            }
+          }
+          $ret = $entries['XML'];
+        }
+      }
+    }
+    return($ret);
+
+    
+  }
+
+
+  public function FAI_get_server($name = "")
+  {
+
+    $xml_msg = "<xml><header>gosa_query_fai_server</header><target>GOSA</target><source>GOSA</source></xml>";
+    $ret = array();
+    if($this->connect()){
+
+      /* Check if returned values represent a valid answer */
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+
+        /* Unset header tags */
+        foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+          if(isset($entries['XML'][$type])){
+            unset($entries['XML'][$type]);
+          }
+        }
+        $ret = $entries['XML']; 
+      }
+    }
+    return($ret);
+  }
+
+
+  public function FAI_get_classes($name)
+  {
+    $xml_msg = "<xml><header>gosa_query_fai_release</header><target>GOSA</target><source>GOSA</source>".
+                  "<where><clause><phrase><fai_release>".$name."</fai_release></phrase></clause></where></xml>";;
+    $ret = array();
+    if($this->connect()){
+
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+
+        /* Unset header tags */
+        foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+          if(isset($entries['XML'][$type])){
+            unset($entries['XML'][$type]);
+          }
+        }
+        $ret = $entries['XML']; 
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Returns an array containing all queued entries.
+    @return Array All queued entries as an array.
+   */
+  public function get_queued_entries($event_types = array("*"),$from=-1,$to=-1,$sort="timestamp DESC")
+  {
+    $ret = array();
+
+    $tags = "";
+    foreach($event_types as $type){
+      $tags .= "<phrase><headertag>".$type."</headertag></phrase>";
+    }
+    if(count($event_types) > 1){
+      $tags = "<connector>or</connector>".$tags;
+    }
+    if(count($event_types)){
+      $tags = "<where><clause>".$tags."</clause></where>";
+    }
+
+    $xml_msg = 
+      "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      ".$tags."
+
+      <orderby>".$sort."</orderby>";
+    if($from != -1 && $to != -1){
+      $xml_msg.= "
+        <limit>
+        <from>".$from."</from>
+        <to>".$to."</to>
+        </limit>";
+    }
+    $xml_msg.= "
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+
+        /* Unset header tags */
+        foreach(array("HEADER","SOURCE","TARGET","SESSION_ID") as $type){
+          unset($entries['XML'][$type]);
+        }
+        $ret = $entries['XML']; 
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Checks if the given ids are used queue ids.
+    @param  Array   The ids we want to check..
+    @return Array   An array containing all ids as index and TRUE/FALSE as value. 
+   */
+  public function ids_exist($ids)
+  {
+    if(!is_array($ids)){
+      trigger_error("Requires an array as parameter.");
+      return;
+    }
+
+    $ret = array();
+
+    $xml_msg = "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <connector>or</connector>";
+    foreach($ids as $id){
+      $xml_msg .= "<phrase>
+        <operator>eq</operator>
+        <id>".$id."</id>
+        </phrase>";
+    }
+    $xml_msg .= "</clause>
+      </where>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) && is_array($entries['XML'])){
+        foreach($entries['XML'] as $entry){
+          if(is_array($entry) && array_key_exists("ID",$entry)){
+            $ret[] = $entry['ID'];
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Returns an entry containing all requested ids.
+    @param  Array   The IDs of the entries we want to return.
+    @return Array   Of the requested entries. 
+   */
+  public function get_entries_by_mac($macs)
+  {
+    if(!is_array($macs)){
+      trigger_error("Requires an array as parameter.");
+      return;
+    }
+
+    $ret = array();
+
+    $xml_msg = "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <connector>or</connector>";
+    foreach($macs as $mac){
+      $xml_msg .= "<phrase>
+        <operator>eq</operator>
+        <macaddress>".$mac."</macaddress>
+        </phrase>";
+    }
+    $xml_msg .= "</clause>
+      </where>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML'])){
+        foreach($entries['XML'] as $name => $entry){
+          if(preg_match("/^ANSWER[0-9]*$/",$name)){
+            $ret[$name] = $entry;
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Returns an entry containing all requested ids.
+    @param  Array   The IDs of the entries we want to return.
+    @return Array   Of the requested entries. 
+   */
+  public function get_entries_by_id($ids)
+  {
+    if(!is_array($ids)){
+      trigger_error("Requires an array as parameter.");
+      return;
+    }
+
+    $ret = array();
+
+    $xml_msg = "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <connector>or</connector>";
+    foreach($ids as $id){
+      $xml_msg .= "<phrase>
+        <operator>eq</operator>
+        <id>".$id."</id>
+        </phrase>";
+    }
+    $xml_msg .= "</clause>
+      </where>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML'])){
+        foreach($entries['XML'] as $name => $entry){
+          if(preg_match("/^ANSWER[0-9]*$/",$name)){
+            $ret[$name] = $entry;
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Checks if the given id is in use.
+    @param  Integer The ID of the entry.
+    @return Boolean TRUE if entry exists. 
+   */
+  public function id_exists($id)
+  {
+    if(!is_numeric($id)){
+      trigger_error("Requires an integer as parameter.");
+      return;
+    }
+
+
+    $xml_msg = "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <phrase>
+      <operator>eq</operator>
+      <id>".$id."</id>
+      </phrase>
+      </clause>
+      </where>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if( isset($entries['XML']['HEADER']) && 
+          $entries['XML']['HEADER']=="answer" && 
+          isset($entries['XML']['ANSWER1'])){
+        return(TRUE);
+      }
+    }
+    return(FALSE);
+  }
+
+
+  /*! \brief  Returns an entry from the gosaSupportQueue
+    @param  Integer The ID of the entry we want to return.
+    @return Array   Of the requested entry. 
+   */
+  public function get_entry_by_id($id)
+  {
+    if(!is_numeric($id)){
+      trigger_error("Requires an integer as parameter.");
+      return;
+    }
+  
+    $ret = array();
+    $xml_msg = "<xml>
+      <header>gosa_query_jobdb</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <phrase>
+      <operator>eq</operator>
+      <id>".$id."</id>
+      </phrase>
+      </clause>
+      </where>
+      </xml>";
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if( isset($entries['XML']['HEADER']) &&
+          $entries['XML']['HEADER']=="answer" &&
+          isset($entries['XML']['ANSWER1'])){
+        $ret = $entries['XML']['ANSWER1'];
+      }
+    }
+    return($ret);
+  }
+
+
+  /*! \brief  Removes a set of entries from the GOsa support queue. 
+    @param  Array The IDs to remove.
+    @return Boolean True on success.
+   */
+  public function remove_entries($ids)
+  {
+    if(!is_array($ids)){
+      trigger_error("Requires an array as parameter.");
+      return;
+    }
+
+
+    $ret = array();
+
+    $xml_msg = "<xml>
+      <header>gosa_delete_jobdb_entry</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <connector>or</connector>";
+    foreach($ids as $id){
+      $xml_msg .= "<phrase>
+        <operator>eq</operator>
+        <id>".$id."</id>
+        </phrase>";
+    }
+    $xml_msg .= "</clause>
+      </where>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML']) || isset($entries['COUNT'])){
+        new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::remove_entries()", $ids,"SUCCESS");
+        return(TRUE);
+      }else{
+        new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::remove_entries()", $ids,"FAILED ".$this->get_error());
+      }
+    }
+    return(FALSE);
+  }
+
+
+
+  /*! \brief  Removes an entry from the GOsa support queue. 
+    @param  Integer The ID of the entry we want to remove.
+    @return Boolean True on success.
+   */
+  public function remove_entry($id)
+  {
+    return($this->remove_entries(array($id)));
+  }
+
+
+  /*! \brief  Parses the given xml string into an array 
+    @param  String XML string  
+    @return Array Returns an array containing the xml structure. 
+   */
+  private function xml_to_array($xml,$alternative_method = FALSE)
+  {
+    $params = array();
+    $level = array();
+    $parser  = xml_parser_create_ns();
+    xml_parse_into_struct($parser, $xml, $vals, $index);
+
+    $err_id = xml_get_error_code($parser);
+    if($err_id){
+      xml_parser_free($parser);
+    }else{
+      xml_parser_free($parser);
+
+      if($this->use_alternative_xml_parse_method) {
+        $params = $this->build_xml_array($vals);
+      } else {
+
+        foreach ($vals as $xml_elem) {
+          if ($xml_elem['type'] == 'open') {
+            if (array_key_exists('attributes',$xml_elem)) {
+              list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
+            } else {
+              $level[$xml_elem['level']] = $xml_elem['tag'];
+            }
+          }
+          if ($xml_elem['type'] == 'complete') {
+
+            $start_level = 1;
+            $test2 = &$params;
+            while($start_level < $xml_elem['level']) {
+              $test2 = &$test2[$level[$start_level]];
+              $start_level++;
+            }
+
+            /* Save tag attributes too. 
+               e.g. <tag attr="val">
+             */
+            if(isset($xml_elem['attributes'])){
+              foreach($xml_elem['attributes'] as $name => $value){
+                $test2['ATTRIBUTES'][$name] = $value;
+              }
+            }
+
+            if(!isset($test2[$xml_elem['tag']])){
+              if(isset($xml_elem['value'])){
+                $test2[$xml_elem['tag']] = $xml_elem['value'];
+              }
+            }else{
+              if(!is_array($test2[$xml_elem['tag']])){
+                $test2[$xml_elem['tag']] = array($test2[$xml_elem['tag']]);
+              }
+              $test2[$xml_elem['tag']][] = $xml_elem['value'];
+            }
+          }
+        }
+      }
+    }
+
+    if(!isset($params['XML'])){
+      if (!array_key_exists('XML', $params)){
+        $this->set_error(_("Cannot not parse XML!"));
+      }
+      $params = array("COUNT" => 0);
+    }
+
+    return($params); 
+  }
+
+
+  function build_xml_array(&$vals)
+  {
+    $array = array();
+    while(count($vals)){
+      $key = key($vals);
+      $val = $vals[$key];
+      unset($vals[$key]);
+      if($val['type'] == "close"){
+        return($array);
+      }elseif($val['type']=="open"){
+        $array[$val['tag']][] = $this->build_xml_array($vals);
+      }elseif($val['type'] != "cdata"){
+        $data = array("VALUE" => "","ATTRIBUTES" => "");
+        foreach(array("value" => "VALUE", "attributes" => "ATTRIBUTES") as $name => $attr){
+          if(isset($val[$name])){
+            $data[$attr] = $val[$name];
+          }
+        }
+        $array[$val['tag']][] = $data;
+      }else{
+#print_a($val);
+      }
+    }
+    return($array);
+  }
+
+
+
+
+
+
+  /*! \brief  Updates an entry with a set of new values, 
+    @param  Integer The ID of the entry, we want to update.
+    @param  Array   The variables to update.   
+    @return Boolean Returns TRUE on success. 
+   */
+  public function update_entries($ids,$data)
+  {
+    if(!is_array($ids)){
+      trigger_error("Requires an array as first parameter.");
+      return;
+    }
+
+    if(!is_array($data)){
+      trigger_error("Requires an array as second parameter.");
+      return;
+    }
+
+    $attr = "";
+    foreach($data as $key => $value){
+      $key = strtolower($key);
+      if(is_array($value)){
+        foreach($value as $sub_value){
+          $attr.= "<$key>".strtolower($sub_value)."</$key>\n";
+        }
+      }else{
+        $attr.= "<$key>".strtolower($value)."</$key>\n";
+      }
+    }
+
+    $xml_msg = "<xml>
+      <header>gosa_update_status_jobdb_entry</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <where>
+      <clause>
+      <connector>or</connector>";
+    foreach($ids as $id){
+      $xml_msg .= "<phrase>
+        <operator>eq</operator>
+        <id>".$id."</id>
+        </phrase>";
+    }
+    $xml_msg .= "</clause>
+      </where>
+      <update>
+      ".$attr." 
+      </update>
+      </xml>";
+
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if(isset($entries['XML'])){
+        if(isset($entries['XML']['ERROR_STRING'])) {
+          $this->set_error($entries['XML']['ERROR_STRING']);
+          new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::update_entries()", $ids,"FAILED setting (".$attr.") error was ".$this->get_error());
+          return(FALSE);
+        }
+        new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::update_entries()", $ids,"SUCCESS");
+        return(TRUE);
+      }
+    }
+    return(FALSE);
+  }
+
+
+  /*! \brief  Returns the number of currently queued objects.
+      @return Integer  
+   */
+  public function number_of_queued_entries($event_types)
+  {
+    $tags = "";
+    foreach($event_types as $type){
+      $tags .= "<phrase><headertag>".$type."</headertag></phrase>";
+    }
+    if(count($event_types) > 1){
+      $tags = "<connector>or</connector>".$tags;
+    }
+    if(count($event_types)){
+      $tags = "<where><clause>".$tags."</clause></where>";
+    }
+
+
+    $xml_msg =
+      "<xml>".
+      "<header>gosa_query_jobdb</header>".
+      "<target>GOSA</target>".
+      "<source>GOSA</source>".
+      "<select> count ID</select>".
+      $tags.
+      "</xml>";
+
+    $xml_msg ="<xml><header>gosa_count_jobdb</header><target>GOSA</target><source>GOSA</source></xml>";
+    $this->connect();
+    if($this->connect()){
+      $entries = $this->_send($xml_msg,TRUE);
+      if($this->o_sock->is_error()){
+        $this->set_error($this->o_sock->get_error());
+        return(0);
+      }
+      if(isset($entries['XML'])){
+        return($entries['XML']['COUNT']);
+      }
+    }
+    return(-1);
+  } 
+
+
+  public function send_data($header, $to, $data= array(), $answer_expected = FALSE)
+  {
+    $xml_message= "";
+
+    /* Prepare data */
+    foreach ($data as $key => $value){
+      if(is_array($value)){
+        foreach($value as $sub_value){
+          $xml_message.= "<$key>$sub_value</$key>";
+        }
+      }else{
+        $xml_message.= "<$key>$value</$key>";
+      }
+    }
+
+    /* Multiple targets? */
+    if (!is_array($to)){
+      $to_targets= array($to);
+    } else {
+      $to_targets= $to;
+    }
+
+    /* Build target strings */
+    $target ="";
+    foreach($to_targets as $to){
+      $target.= "<target>$to</target>";
+    }
+
+    return $this->_send("<xml><header>$header</header><source>GOSA</source>$target".$xml_message."</xml>",$answer_expected);
+  }
+
+
+  /* Allows simply appending a new DaemonEvent 
+   */
+  public function append($event, $skip_add_mac = FALSE)
+  {
+    if(!($event instanceof DaemonEvent)){
+      return(FALSE);
+    }
+  
+
+    /* Add to queue if new 
+     */
+    if($event->is_new()){
+
+      $request_answer = FALSE;
+      if($event->get_type() == SCHEDULED_EVENT){
+        $action = $event->get_schedule_action();
+      }elseif($event->get_type() == TRIGGERED_EVENT){
+        $action = $event->get_trigger_action();
+      }else{
+        trigger_error("Unknown type of queue event given.");
+        return(FALSE);
+      }
+
+      /* Get event informations, like targets..
+       */
+      $targets    = $event->get_targets();
+      $data       = $event->save();
+
+      /* Append an entry for each target 
+       */
+      foreach($targets as $target){
+        if(!$skip_add_mac){
+          $data['macaddress'] = $target;
+        }
+        $this->send_data($action,$target,$data,$request_answer);
+
+        if($this->is_error()){
+          return(FALSE);
+        }
+      }
+      return(TRUE);
+    }else{
+
+      /* Updated edited entry.
+       */
+      $id                 = $event->get_id();
+      $data               = $event->save();
+      return($this->update_entries(array($id),$data));
+    }
+
+    return(FALSE);
+  }
+
+
+  /*! \brief  Returns an array containing all queued entries.
+    @return Array All queued entries as an array.
+   */
+  public function _send($data, $answer_expected= FALSE)
+  {
+
+    $ret = array();
+    if(!$this->connect()){
+      return($ret);
+    }
+  
+    $this->reset_error();
+
+    /******
+      Debug handling
+     ******/
+    $debug = debug_backtrace();
+    $file = __FILE__;
+    $function = __FUNCTION__;
+    $line = __LINE__;
+    $class = __CLASS__;
+    foreach($debug as $info){
+      if(!in_array($info['function'],array("send_data","_send"))){
+        $file = $info['file'];
+        $line = $info['line'];
+        $class = get_class($this);
+        $function = $info['function'];
+        break;
+      }
+    }
+    @DEBUG(DEBUG_SI, $line, "<b>".$class."::".$function."</b>" , $file, "<i>".htmlentities($data)."</i>", $info="");
+
+    $start = microtime(1);
+
+    /*******
+      Start sending data 
+     *******/
+    if($this->connect()){
+      $this->o_sock->write($data);
+      if ($answer_expected){
+        $str = trim($this->o_sock->read());
+
+        /* Check if something went wrong while reading */
+        if($this->o_sock->is_error()){
+          $this->set_error($this->o_sock->get_error());
+          @DEBUG(DEBUG_SI, $line, "<b>".$class."::".$function."</b>" , $file, sprintf('%.7f', microtime(1) - $start) , "<b>FAILED Duration:</b>");
+          return($ret);
+        }
+
+        $entries = $this->xml_to_array($str);
+        if(isset($entries['XML']) && is_array($entries['XML'])){
+          $ret = $entries;
+          if($this->use_alternative_xml_parse_method) {
+
+            // --------- Seems broken, check for 'ERROR' but using 'ERROR_STRING'
+            if(isset($entries['XML'][0]['ERROR'][0]['VALUE']) && $entries['XML'][0]['ERROR'][0]['VALUE'] == "1"){
+              $this->set_error($entries['XML'][0]['ERROR_STRING'][0]['VALUE']);
+              new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+                  array($data=>$data),"FAILED ".$this->get_error());
+            // ---------
+      
+          
+            }elseif(isset($entries['XML'][0]['ERROR'][0]['VALUE'])){
+              $this->set_error($entries['XML'][0]['ERROR'][0]['VALUE']);
+              new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+                  array($data=>$data),"FAILED ".$this->get_error());
+            }
+          }else{
+            if(isset($entries['XML']['ERROR_STRING'])) {
+              $this->set_error($entries['XML']['ERROR_STRING']);
+              new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+                  array($data=>$data),"FAILED ".$this->get_error());
+            }elseif(isset($entries['XML']['ERROR'])){
+              $this->set_error($entries['XML']['ERROR']);
+              new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+                  array($data=>$data),"FAILED ".$this->get_error());
+            }
+          }
+          new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+              array($data=>$data),"SUCCESS");
+        }
+      }else{
+        new log("debug","DaemonEvent (IDS) ", "gosaSupportDaemon::_send()", 
+            array($data=>$data),"Fire & forget, not result.! ".$this->get_error());
+      }
+    }
+
+    @DEBUG(DEBUG_SI, $line, "<b>".$class."::".$function."</b>" , $file, sprintf('%.7f', microtime(1) - $start) , "<b>Duration:</b>");
+    return($ret);
+  }
+
+
+  static function send($header, $to, $data= array(), $answer_expected = FALSE)
+  {
+    $xml_message= "";
+
+    /* Get communication object */
+    $d= new gosaSupportDaemon(TRUE,10);
+
+    /* Prepare data */
+    foreach ($data as $key => $value){
+      if(is_array($value)){
+        foreach($value as $sub_val){
+          $xml_message.= "<$key>$sub_val</$key>";
+        }
+      }else{
+        $xml_message.= "<$key>$value</$key>";
+      }
+    }
+
+    /* Multiple targets? */
+    if (!is_array($to)){
+      $to_targets= array($to);
+    } else {
+      $to_targets= $to;
+    }
+
+    /* Build target strings */
+    $target ="";
+    foreach($to_targets as $to){
+      $target.= "<target>$to</target>";
+    }
+
+    return $d->_send("<xml><header>$header</header><source>GOSA</source>$target".$xml_message."</xml>",$answer_expected);
+  }
+
+
+  /*! \brief  Removes all jobs from the queue that are tiggered with a specific macAddress.
+      @param  String  $mac  The mac address for which we want to remove all jobs.      
+   */
+  function clean_queue_from_mac($mac)
+  {
+    global $config;
+    if(!isset($config) || !$config){
+      $config = session::global_get('config');
+    }
+
+    /* First of all we have to check which jobs are startet 
+     *  for $mac 
+     */
+    $xml_msg ="<xml><header>gosa_query_jobdb</header><target>GOSA</target><source>GOSA</source><where><clause><phrase><macaddress>".$mac."</macaddress></phrase></clause></where></xml>";  
+    
+    new log("debug","DaemonEvent ", "gosaSupportDaemon::clean_queue_from_mac()", array($mac => $mac)," start cleaning.");
+ 
+    $data = $this->_send($xml_msg,TRUE);
+    if(is_array($data) && isset($data['XML'])){
+      $already_aborted = FALSE;
+      foreach($data['XML']  as $name => $entry){
+        if(preg_match("/answer[0-9]*/i",$name)){
+          $entry['STATUS'] = strtoupper($entry['STATUS']);
+          switch($entry['STATUS']){
+
+            case 'PROCESSING' :
+
+              /* Send abort event, but only once 
+               */
+              if($already_aborted){
+                break;
+              }elseif(class_available("DaemonEvent_faireboot")){
+                $already_aborted = TRUE;
+                $tmp = new DaemonEvent_faireboot($config);
+                $tmp->add_targets(array($mac));
+                $tmp->set_type(TRIGGERED_EVENT);
+                if(!$this->append($tmp)){
+                  msg_dialog::display(_("Error"), sprintf(_("Cannot send abort event for entry %s!"),$entry['ID']) , ERROR_DIALOG);
+                  new log("debug","DaemonEvent ", "gosaSupportDaemon::clean_queue_from_mac()", array($mac => $mac),
+                      "FAILED, could not send 'DaemonEvent_faireboot' for entry ID (".$entry['ID'].") - ".$this->get_error());
+                }else{
+                  new log("debug","DaemonEvent ", "gosaSupportDaemon::clean_queue_from_mac()", array($mac => $mac),
+                      "SUCCESS, send 'DaemonEvent_faireboot' for entry ID (".$entry['ID'].")");
+                }
+                ;break;
+              }else{
+                /* Couldn't find abort event, just remove entry */
+              }
+
+            case 'WAITING':
+            case 'ERROR':
+            default :
+            
+              /* Simply remove entries from queue. 
+               *  Failed or waiting events, can be removed without any trouble.
+               */ 
+              if(!$this->remove_entries(array($entry['ID']))){
+                msg_dialog::display(_("Error"), sprintf(_("Cannot remove entry %s!"),$entry['ID']) , ERROR_DIALOG);
+              }
+              ;break;
+          }
+    
+        }
+      }
+    }
+  }
+
+
+  static function ping($target)
+  {
+    if (tests::is_mac($target)){
+      /* Get communication object */
+      $d= new gosaSupportDaemon(TRUE,2);
+      $answer= $d->_send("<xml><header>gosa_ping</header><source>GOSA</source><target>$target</target></xml>", TRUE);
+      return (count($answer) ? TRUE:FALSE);
+    }
+    return (FALSE);
+  }
+
+
+
+  /*! \brief  Returns a list of all configured principals. 
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @return Array  A list containing the names of all configured principals.
+   */
+  public function krb5_list_principals($server)
+  {
+    $res = array();  
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_list_principals</header>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+    
+    $tmp = $this->_send($xml_msg,TRUE);
+    if(isset($tmp['XML']['PRINCIPAL'])){
+      return($tmp['XML']['PRINCIPAL']);
+    }else{
+      return($res);
+    }
+  }
+
+
+  /*! \brief  Returns the configuration settings for a given principal name. 
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the requested principal. (e.g. peter at EXAMPLE.DE)
+      @return Array  A list containing the names of all configured principals.
+   */
+  public function krb5_get_principal($server,$name)
+  {
+    $ret = array();
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given principal name is not of type string or it is empty.");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_get_principal</header>".
+      "<principal>".$name."</principal>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    $res = $this->_send($xml_msg,TRUE);
+    if(isset($res['XML'])){
+      return($res['XML']);
+    }else{
+      return($ret);
+    }
+  }
+
+
+  /*! \brief  Creates a given principal with a set of configuration settings.
+              For a list of configurable attributes have a look at 'krb5_get_principal()'.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the principal to update. (e.g. peter at EXAMPLE.DE)
+      @return Boolean   TRUE on success else FALSE. 
+   */
+  public function krb5_add_principal($server,$name,$values)
+  {
+    $ret = FALSE;  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given principal name is not of type string or it is empty.");
+      return($ret);
+    }
+    if(!is_array($values)){
+      trigger_error("No valid update settings given. The parameter must be of type array and must contain at least one entry");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    $attrs = "";
+    foreach($values as $key => $value){
+      if(empty($key) || is_numeric($key)){
+        trigger_error("Invalid configuration attribute given '".$key."=".$value."'.");
+        return($ret);
+      }
+      $key = strtolower($key);
+      if(is_array($value)){
+        foreach($value as $val){
+          $attrs.= "<$key>$val</$key>\n";
+        }
+      }else{
+        $attrs.= "<$key>$value</$key>\n";
+      }
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_create_principal</header>".
+      "<principal>".$name."</principal>".
+      $attrs.
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  function krb5_ramdomize_key($server,$name)  
+  {
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_randomize_key</header>".
+      "<principal>".$name."</principal>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+  
+
+
+  /*! \brief  Updates a given principal with a set of configuration settings.
+              For a list of configurable attributes have a look at 'krb5_get_principal()'.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the principal to update. (e.g. peter at EXAMPLE.DE)
+      @return Boolean   TRUE on success else FALSE. 
+   */
+  public function krb5_set_principal($server,$name,$values)
+  {
+    $ret = FALSE;  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given principal name is not of type string or it is empty.");
+      return($ret);
+    }
+    if(!is_array($values) || !count($values)){
+      trigger_error("No valid update settings given. The parameter must be of type array and must contain at least one entry");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    $attrs = "";
+    foreach($values as $key => $value){
+      if(empty($key) || is_numeric($key)){
+        trigger_error("Invalid configuration attribute given '".$key."=".$value."'.");
+        return($ret);
+      }
+      $key = strtolower($key);
+      if(is_array($value)){
+        foreach($value as $val){
+          $attrs.= "<$key>$val</$key>\n";
+        }
+      }else{
+        $attrs.= "<$key>$value</$key>\n";
+      }
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_modify_principal</header>".
+      "<principal>".$name."</principal>".
+      $attrs.
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  /*! \brief  Removes the given principal.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the principal. (e.g. peter at EXAMPLE.DE)
+      @return Boollean   TRUE on success else FALSE
+   */
+  public function krb5_del_principal($server,$name)
+  {
+    $ret = FALSE;  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given principal name is not of type string or it is empty.");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_del_principal</header>".
+      "<principal>".$name."</principal>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+    
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  /*! \brief  Returns a list of configured password policies.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @return Array A list of all configured password policies.
+   */
+  public function krb5_list_policies($server)
+  {
+    $res = array();  
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_list_policies</header>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+    
+    $res = $this->_send($xml_msg,TRUE);
+    
+    /* Check if there are results for POLICY 
+     */
+    if(isset($res['XML']['POLICY'])){
+      
+      /* Ensure that we return an array 
+       */
+      $tmp = $res['XML']['POLICY'];
+      if(!is_array($tmp)){
+        $tmp = array($tmp);
+      }
+      return($tmp);
+    }else{
+      return(array());
+    }
+  }
+
+
+  /*! \brief  Returns a list of configured password policies.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @return Array The policy settings for the given policy name.
+   */
+  public function krb5_get_policy($server,$name)
+  {
+    $ret = array();  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given policy name is not of type string or it is empty.");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_get_policy</header>".
+      "<policy>".$name."</policy>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    /* Possible attributes */
+    $attrs = array("MASK","POLICY","PW_HISTORY_NUM","PW_MAX_LIFE",
+        "PW_MIN_CLASSES","PW_MIN_LENGTH","PW_MIN_LIFE","POLICY_REFCNT");
+
+  
+    $tmp = $this->_send($xml_msg,TRUE);
+    if(isset($tmp['XML'])){
+      foreach($attrs as $attr){
+        if(isset($tmp['XML'][$attr])){
+          $ret[$attr] = $tmp['XML'][$attr];
+        }else{
+          $ret[$attr] = "";
+        }
+      }
+    }
+    return($ret);
+  }
+
+  
+  /*! \brief  Creates a new policy with a given set of configuration settings.
+              For a list of configurable attributes have a look at 'krb5_get_policy()'.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the policy to update.
+      @pram   Array  The attributes to update
+      @return Boolean   TRUE on success else FALSE. 
+   */
+  public function krb5_add_policy($server,$name,$values)
+  {
+    $ret = FALSE;  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given policy name is not of type string or it is empty.");
+      return($ret);
+    }
+    if(!is_array($values) || !count($values)){
+      trigger_error("No valid policy settings given. The parameter must be of type array and must contain at least one entry");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+
+    /* Transform array into <xml>
+     */
+    $attrs = "";
+    foreach($values as $id => $value){
+      if(empty($id) || is_numeric($id)){
+        trigger_error("Invalid policy configuration attribute given '".$id."=".$value."'.");
+        return($ret);
+      }
+      $id = strtolower($id);
+      $attrs.= "<$id>$value</$id>\n";
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_create_policy</header>".
+      "<policy>".$name."</policy>".
+      $attrs.
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  /*! \brief  Updates a given policy with a set of configuration settings.
+              For a list of configurable attributes have a look at 'krb5_get_policy()'.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @pram   String The name of the policy to update.
+      @return Boolean   TRUE on success else FALSE. 
+   */
+  public function krb5_set_policy($server,$name,$values)
+  {
+    $ret = FALSE;  
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given policy name is not of type string or it is empty.");
+      return($ret);
+    }
+    if(!is_array($values) || !count($values)){
+      trigger_error("No valid policy settings given. The parameter must be of type array and must contain at least one entry");
+      return($ret);
+    }
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Transform array into <xml>
+     */
+    $attrs = "";
+    foreach($values as $id => $value){
+      if(preg_match("/^policy$/i",$id)) continue;
+      if(empty($id) || is_numeric($id)){
+        trigger_error("Invalid policy configuration attribute given '".$id."=".$value."'.");
+        return($ret);
+      }
+      $id = strtolower($id);
+      $attrs.= "<$id>$value</$id>\n";
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_modify_policy</header>".
+      "<policy>".$name."</policy>".
+      $attrs.
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+  
+  /*! \brief  Removes the given password policy. 
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @return Boolean  TRUE on success else FALSE
+   */
+  public function krb5_del_policy($server,$name)
+  {
+    $ret = FALSE;
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Check if the given name is a valid request value 
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given policy name is not of type string or it is empty.");
+      return($ret);
+    }
+
+    /* Prepare request event 
+     */ 
+    $xml_msg = 
+      "<xml>".
+      "<header>gosa_krb5_del_policy</header>".
+      "<policy>".$name."</policy>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  /*! \brief  Sets the password of for the given principal.
+              (Uses the GOsa support daemon instead of the ldap database.)
+      @param  String  The servers mac
+      @param  String  The principals name
+      @param  String  $the new password.   
+      @return Boolean  TRUE on success else FALSE
+   */
+  public function krb5_set_password($server,$name,$password)
+  {
+    $ret = FALSE;
+
+    /* Check if the given server is a valid mac address
+     */
+    if(!tests::is_mac($server)){
+      trigger_error("The given server address '".$server."' is invalid, it must be a valid mac address");
+      return($ret);
+    }
+
+    /* Check if the given name is a valid request value
+     */
+    if(!is_string($name) || empty($name)){
+      trigger_error("The given principal name is not of type string or it is empty.");
+      return($ret);
+    }
+
+    /* Prepare request event
+     */
+    $xml_msg =
+      "<xml>".
+      "<header>gosa_krb5_set_password</header>".
+      "<principal>".$name."</principal>".
+      "<password>".$password."</password>".
+      "<source>GOSA</source>".
+      "<target>".$server."</target>".
+      "</xml>";
+    return($this->_send($xml_msg,TRUE) == TRUE && !$this->is_error());
+  }
+
+
+  /*! \brief  Returns log file informations for a given mac address 
+      @param  $mac The mac address to fetch logs for.
+      @retrun Array A Multidimensional array containing log infos.
+        MAC_00_01_6C_9D_B9_FA['install_20080311_090900'][0]=debconf.log
+        MAC_00_01_6C_9D_B9_FA['install_20080311_090900'][1]=syslog.log
+                               install_20080313_144450   ...
+   */
+  public function get_log_info_for_mac($mac)
+  {
+    $xml_msg = "
+      <xml>
+      <header>gosa_show_log_by_mac</header>
+      <target>GOSA</target>
+      <source>GOSA</source>
+      <mac>".$mac."</mac>
+      </xml>";
+
+    $res = $this->_send($xml_msg,TRUE);
+    $ret = array();
+    if(isset($res['XML'])){
+
+      /* Filter all entry that look like this 
+          MAC_00_01_6C_9D_B9_FA
+       */
+      foreach($res['XML'] as $name => $entry){
+        if(preg_match("/^MAC/",$name)){
+
+          /* Get list of available log files 
+           */
+          if(!is_array($entry)){
+            $entry = array($entry);
+          }
+          foreach($entry as $log_date){
+            $xml_msg2 = "<xml> 
+              <header>gosa_show_log_files_by_date_and_mac</header> 
+              <target>GOSA</target> 
+              <source>GOSA</source>                        
+              <date>".$log_date."</date> 
+              <mac>".$mac."</mac> 
+              </xml>";
+   
+            $ret[$mac][$log_date] = array();
+            $res = $this->_send($xml_msg2,TRUE);
+            $ret[$mac][$log_date]['DATE_STR']  = $log_date; 
+            $ret[$mac][$log_date]['REAL_DATE'] = strtotime(preg_replace("/[^0-9]*/","",$log_date));
+            if(isset($res['XML']['SHOW_LOG_FILES_BY_DATE_AND_MAC'])){
+              $ret[$mac][$log_date]['FILES']     = $res['XML']['SHOW_LOG_FILES_BY_DATE_AND_MAC'];
+            }
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+  public function get_log_file($mac,$date,$file)
+  {
+    $xml_msg ="
+      <xml> 
+      <header>gosa_get_log_file_by_date_and_mac</header> 
+      <target>GOSA</target> 
+      <source>GOSA</source>
+      <date>".$date."</date> 
+      <mac>".$mac."</mac> 
+      <log_file>".$file."</log_file>
+      </xml>";
+
+    $res = $this->_send($xml_msg,TRUE);
+    if(isset($res['XML'][strtoupper($file)])){
+      return(base64_decode($res['XML'][strtoupper($file)]));
+    }
+    return("");
+  }
+
+
+
+
+
+  /*****************
+   * DAK - Functions 
+   *****************/
+
+  /*! \brief  Returns all currenlty queued entries for a given DAK repository 
+      @param  ...
+      @return Array   All queued entries.
+   */
+  public function DAK_keyring_entries($server)  
+  {
+    /* Ensure that we send the event to a valid mac address 
+     */
+    if(!is_string($server) || !tests::is_mac($server)){
+      trigger_error("No valid mac address given '".$server."'.");
+      return;
+    }
+
+    /* Create query
+     */
+    $xml_msg = "<xml> 
+                  <header>gosa_get_dak_keyring</header> 
+                  <target>".$server."</target> 
+                  <source>GOSA</source>
+                </xml>";
+        
+    $res = $this->_send($xml_msg,TRUE);
+
+    /* Check if there are results for POLICY
+     */
+    if(isset($res['XML'])){
+      $ret = array();
+      foreach($res['XML'] as $key => $entry){
+        if(preg_match("/^ANSWER/",$key)){
+          $ret[] = $entry;
+        }
+      }
+      return($ret);
+    }else{
+      return(array());
+    }
+  }
+
+
+  /*! \brief  Imports the given key into the specified keyring (Servers mac address)
+      @param  String  The servers mac address 
+      @param  String  The gpg key.
+      @return Boolean TRUE on success else FALSE 
+   */
+  public function DAK_import_key($server,$key)  
+  {
+    /* Ensure that we send the event to a valid mac address 
+     */
+    if(!is_string($server) || !tests::is_mac($server)){
+      trigger_error("No valid mac address given '".$server."'.");
+      return;
+    }
+
+    /* Check if there is some cleanup required before importing the key.
+        There may be some Header lines like:
+        -----BEGIN PGP PUBLIC KEY BLOCK-----   Version: GnuPG v1.4.6 (GNU/Linux)
+     */
+    if(preg_match("/BEGIN PGP PUBLIC KEY BLOCK/",$key)){
+
+      /* Remove header */
+      $key = preg_replace("/^.*\n\n/sim","",$key);
+      /* Remove footer */
+      $key = preg_replace("/-----.*$/sim","",$key);
+    }elseif (!preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $key)) {
+      
+      /* Encode key if it is raw.
+       */
+      $key = base64_encode($key);
+    }
+
+    /* Create query
+     */
+    $xml_msg = "<xml> 
+                  <header>gosa_import_dak_key</header> 
+                  <target>".$server."</target> 
+                  <key>".$key."</key> 
+                  <source>GOSA</source>
+                </xml>";
+        
+    $res = $this->_send($xml_msg,TRUE);
+    return($this->is_error());
+  }
+
+
+  /*! \brief Removes a key from the keyring on the given server. 
+      @param  String  The servers mac address 
+      @param  String  The gpg key uid.
+      @return Boolean TRUE on success else FALSE 
+   */
+  public function DAK_remove_key($server,$key)  
+  {
+    /* Ensure that we send the event to a valid mac address 
+     */
+    if(!is_string($server) || !tests::is_mac($server)){
+      trigger_error("No valid mac address given '".$server."'.");
+      return;
+    }
+
+    /* Create query
+     */
+    $xml_msg = "<xml> 
+                  <header>gosa_remove_dak_key</header> 
+                  <target>".$server."</target> 
+                  <keyid>".$key."</keyid> 
+                  <source>GOSA</source>
+                </xml>";
+       
+    $res = $this->_send($xml_msg,TRUE);
+    return($this->is_error());
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_ldap.inc b/gosa-core/include/class_ldap.inc
new file mode 100644
index 0000000..db4a237
--- /dev/null
+++ b/gosa-core/include/class_ldap.inc
@@ -0,0 +1,1438 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ * Copyright (C) 2003 Alejandro Escanero Blanco <aescanero at chaosdimension.org>
+ * Copyright (C) 1998  Eric Kilfoil <eric at ipass.net>
+ *
+ * ID: $$Id: class_ldap.inc 16510 2010-03-15 08:45:03Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define("ALREADY_EXISTING_ENTRY",-10001);
+define("UNKNOWN_TOKEN_IN_LDIF_FILE",-10002);
+define("NO_FILE_UPLOADED",10003);
+define("INSERT_OK",10000);
+define("SPECIALS_OVERRIDE", TRUE);
+
+class LDAP{
+
+  var $hascon   =false;
+  var $reconnect=false;
+  var $tls      = false;
+  var $cid;
+  var $hasres   = array();
+  var $sr       = array();
+  var $re       = array();
+  var $basedn   ="";
+  var $start    = array(); // 0 if we are fetching the first entry, otherwise 1
+  var $error    = ""; // Any error messages to be returned can be put here
+  var $srp      = 0;
+  var $objectClasses = array(); // Information read from slapd.oc.conf
+  var $binddn   = "";
+  var $bindpw   = "";
+  var $hostname = "";
+  var $follow_referral = FALSE;
+  var $referrals= array();
+  var $max_ldap_query_time = 0;   // 0, empty or negative values will disable this check 
+
+  function LDAP($binddn,$bindpw, $hostname, $follow_referral= FALSE, $tls= FALSE)
+  {
+    global $config;
+    $this->follow_referral= $follow_referral;
+    $this->tls=$tls;
+    $this->binddn=LDAP::convert($binddn);
+
+    $this->bindpw=$bindpw;
+    $this->hostname=$hostname;
+
+    /* Check if MAX_LDAP_QUERY_TIME is defined */ 
+    if(is_object($config) && $config->get_cfg_value("ldapMaxQueryTime") != ""){
+      $str = $config->get_cfg_value("ldapMaxQueryTime");
+      $this->max_ldap_query_time = (float)($str);
+    }
+
+    $this->connect();
+  }
+
+
+  function getSearchResource()
+  {
+    $this->sr[$this->srp]= NULL;
+    $this->start[$this->srp]= 0;
+    $this->hasres[$this->srp]= false;
+    return $this->srp++;
+  }
+
+
+  /* Function to replace all problematic characters inside a DN by \001XX, where
+     \001 is decoded to chr(1) [ctrl+a]. It is not impossible, but very unlikely
+     that this character is inside a DN.
+
+     Currently used codes:
+     ,   => CO
+     \2C => CO
+     (   => OB
+     )   => CB
+     /   => SL                                                                  
+     \22 => DQ                                                                  */
+  static function convert($dn)
+  {
+    if (SPECIALS_OVERRIDE == TRUE){
+      $tmp= preg_replace(array("/\\\\,/", "/\\\\2C/", "/\(/", "/\)/", "/\//", "/\\\\22/", '/\\\\"/'),
+          array("\001CO", "\001CO", "\001OB", "\001CB", "\001SL", "\001DQ", "\001DQ"),
+          $dn);
+      return (preg_replace('/,\s+/', ',', $tmp));
+    } else {
+      return ($dn);
+    }
+  }
+
+
+  /* Function to fix all problematic characters inside a DN by replacing \001XX
+     codes to their original values. See "convert" for mor information. 
+     ',' characters are always expanded to \, (not \2C), since all tested LDAP
+     servers seem to take it the correct way.                                  */
+  static function fix($dn)
+  {
+    if (SPECIALS_OVERRIDE == TRUE){
+      return (preg_replace(array("/\001CO/", "/\001OB/", "/\001CB/", "/\001SL/", "/\001DQ/"),
+            array("\,", "(", ")", "/", '\"'),
+            $dn));
+    } else {
+      return ($dn);
+    }
+  }
+
+  /* Function to fix problematic characters in DN's that are used for search
+     requests. I.e. member=....                                               */
+  static function prepare4filter($dn)
+  {
+    $fixed= normalizeLdap(str_replace('\\\\', '\\\\\\', LDAP::fix($dn)));
+    return str_replace('\\,', '\\\\,', $fixed);
+  }
+
+
+  function connect()
+  {
+    $this->hascon=false;
+    $this->reconnect=false;
+    if ($this->cid= @ldap_connect($this->hostname)) {
+      @ldap_set_option($this->cid, LDAP_OPT_PROTOCOL_VERSION, 3);
+      if (function_exists("ldap_set_rebind_proc") && $this->follow_referral) {
+        @ldap_set_option($this->cid, LDAP_OPT_REFERRALS, 1);
+        @ldap_set_rebind_proc($this->cid, array(&$this, "rebind"));
+      }
+      if (function_exists("ldap_start_tls") && $this->tls){
+        @ldap_start_tls($this->cid);
+      }
+
+      $this->error = "No Error";
+      if ($bid = @ldap_bind($this->cid, LDAP::fix($this->binddn), $this->bindpw)) {
+        $this->error = "Success";
+        $this->hascon=true;
+      } else {
+        if ($this->reconnect){
+          if ($this->error != "Success"){
+            $this->error = "Could not rebind to " . $this->binddn;
+          }
+        } else {
+          $this->error = "Could not bind to " . $this->binddn;
+        }
+      }
+    } else {
+      $this->error = "Could not connect to LDAP server";
+    }
+  }
+
+  function rebind($ldap, $referral)
+  {
+    $credentials= $this->get_credentials($referral);
+    if (@ldap_bind($ldap, LDAP::fix($credentials['ADMINDN']), $credentials['ADMINPASSWORD'])) {
+      $this->error = "Success";
+      $this->hascon=true;
+      $this->reconnect= true;
+      return (0);
+    } else {
+      $this->error = "Could not bind to " . $credentials['ADMINDN'];
+      return NULL;
+    }
+  }
+
+  function reconnect()
+  {
+    if ($this->reconnect){
+      @ldap_unbind($this->cid);
+      $this->cid = NULL;
+    }
+  }
+
+  function unbind()
+  {
+    @ldap_unbind($this->cid);
+    $this->cid = NULL;
+  }
+
+  function disconnect()
+  {
+    if($this->hascon){
+      @ldap_close($this->cid);
+      $this->hascon=false;
+    }
+  }
+
+  function cd($dir)
+  {
+    if ($dir == ".."){
+      $this->basedn = $this->getParentDir();
+    } else {
+      $this->basedn = LDAP::convert($dir);
+    }
+  }
+
+  function getParentDir($basedn = "")
+  {
+    if ($basedn==""){
+      $basedn = $this->basedn;
+    } else {
+      $basedn = LDAP::convert($basedn);
+    }
+    return(preg_replace("/[^,]*[,]*[ ]*(.*)/", "$1", $basedn));
+  }
+
+  
+  function search($srp, $filter, $attrs= array())
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+
+      $start = microtime(true);
+      $this->clearResult($srp);
+      $this->sr[$srp] = @ldap_search($this->cid, LDAP::fix($this->basedn), $filter, $attrs);
+      $this->error = @ldap_error($this->cid);
+      $this->resetResult($srp);
+      $this->hasres[$srp]=true;
+   
+      /* Check if query took longer as specified in max_ldap_query_time */
+      if($this->max_ldap_query_time){
+        $diff = microtime(true) - $start;
+        if($diff > $this->max_ldap_query_time){
+          msg_dialog::display(_("Performance warning"), sprintf(_("LDAP performance is poor: last query took about %.2fs!"), $diff), WARNING_DIALOG);
+        }
+      }
+
+      $this->log("LDAP operation: time=".(microtime(true)-$start)." operation=search('".LDAP::fix($this->basedn)."', '$filter')");
+      return($this->sr[$srp]);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function ls($srp, $filter = "(objectclass=*)", $basedn = "",$attrs = array("*"))
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+
+      $this->clearResult($srp);
+      if ($basedn == "")
+        $basedn = $this->basedn;
+      else
+        $basedn= LDAP::convert($basedn);
+  
+      $start = microtime(true);
+      $this->sr[$srp] = @ldap_list($this->cid, LDAP::fix($basedn), $filter,$attrs);
+      $this->error = @ldap_error($this->cid);
+      $this->resetResult($srp);
+      $this->hasres[$srp]=true;
+
+       /* Check if query took longer as specified in max_ldap_query_time */
+      if($this->max_ldap_query_time){
+        $diff = microtime(true) - $start;
+        if($diff > $this->max_ldap_query_time){
+          msg_dialog::display(_("Performance warning"), sprintf(_("LDAP performance is poor: last query took about %.2fs!"), $diff), WARNING_DIALOG);
+        }
+      }
+
+      $this->log("LDAP operation: time=".(microtime(true) - $start)." operation=ls('".LDAP::fix($basedn)."', '$filter')");
+
+      return($this->sr[$srp]);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function cat($srp, $dn,$attrs= array("*"), $filter = "(objectclass=*)")
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+
+      $this->clearResult($srp);
+      $this->sr[$srp] = @ldap_read($this->cid, LDAP::fix($dn), $filter,$attrs);
+      $this->error = @ldap_error($this->cid);
+      $this->resetResult($srp);
+      $this->hasres[$srp]=true;
+      return($this->sr[$srp]);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function object_match_filter($dn,$filter)
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $res =  @ldap_read($this->cid, LDAP::fix($dn), $filter, array("objectClass"));
+      $rv =   @ldap_count_entries($this->cid, $res);
+      return($rv);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return(FALSE);
+    }
+  }
+
+  function set_size_limit($size)
+  {
+    /* Ignore zero settings */
+    if ($size == 0){
+      @ldap_set_option($this->cid, LDAP_OPT_SIZELIMIT, 10000000);
+    }
+    if($this->hascon){
+      @ldap_set_option($this->cid, LDAP_OPT_SIZELIMIT, $size);
+    } else {
+      $this->error = "Could not connect to LDAP server";
+    }
+  }
+
+  function fetch($srp)
+  {
+    $att= array();
+    if($this->hascon){
+      if($this->hasres[$srp]){
+        if ($this->start[$srp] == 0)
+        {
+          if ($this->sr[$srp]){
+            $this->start[$srp] = 1;
+            $this->re[$srp]= @ldap_first_entry($this->cid, $this->sr[$srp]);
+          } else {
+            return array();
+          }
+        } else {
+          $this->re[$srp]= @ldap_next_entry($this->cid, $this->re[$srp]);
+        }
+        if ($this->re[$srp])
+        {
+          $att= @ldap_get_attributes($this->cid, $this->re[$srp]);
+          $att['dn']= trim(LDAP::convert(@ldap_get_dn($this->cid, $this->re[$srp])));
+        }
+        $this->error = @ldap_error($this->cid);
+        if (!isset($att)){
+          $att= array();
+        }
+        return($att);
+      }else{
+        $this->error = "Perform a fetch with no search";
+        return("");
+      }
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function resetResult($srp)
+  {
+    $this->start[$srp] = 0;
+  }
+
+  function clearResult($srp)
+  {
+    if($this->hasres[$srp]){
+      $this->hasres[$srp] = false;
+      @ldap_free_result($this->sr[$srp]);
+    }
+  }
+
+  function getDN($srp)
+  {
+    if($this->hascon){
+      if($this->hasres[$srp]){
+
+        if(!$this->re[$srp])
+          {
+          $this->error = "Perform a Fetch with no valid Result";
+          }
+          else
+          {
+          $rv = @ldap_get_dn($this->cid, $this->re[$srp]);
+        
+          $this->error = @ldap_error($this->cid);
+          return(trim(LDAP::convert($rv)));
+           }
+      }else{
+        $this->error = "Perform a Fetch with no Search";
+        return("");
+      }
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function count($srp)
+  {
+    if($this->hascon){
+      if($this->hasres[$srp]){
+        $rv = @ldap_count_entries($this->cid, $this->sr[$srp]);
+        $this->error = @ldap_error($this->cid);
+        return($rv);
+      }else{
+        $this->error = "Perform a Fetch with no Search";
+        return("");
+      }
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function rm($attrs = "", $dn = "")
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      if ($dn == "")
+        $dn = $this->basedn;
+
+      $r = ldap_mod_del($this->cid, LDAP::fix($dn), $attrs);
+      $this->error = @ldap_error($this->cid);
+      return($r);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function mod_add($attrs = "", $dn = "")
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      if ($dn == "")
+        $dn = $this->basedn;
+
+      $r = @ldap_mod_add($this->cid, LDAP::fix($dn), $attrs);
+      $this->error = @ldap_error($this->cid);
+      return($r);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function rename($attrs, $dn = "")
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      if ($dn == "")
+        $dn = $this->basedn;
+
+      $r = @ldap_mod_replace($this->cid, LDAP::fix($dn), $attrs);
+      $this->error = @ldap_error($this->cid);
+      return($r);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function rmdir($deletedn)
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $r = @ldap_delete($this->cid, LDAP::fix($deletedn));
+      $this->error = @ldap_error($this->cid);
+      return($r ? $r : 0);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+
+  /*! \brief Move the given Ldap entry from $source to $dest
+      @param  String  $source The source dn.
+      @param  String  $dest   The destination dn.
+      @return Boolean TRUE on success else FALSE.
+   */
+  function rename_dn($source,$dest)
+  {
+    /* Check if source and destination are the same entry */
+    if(strtolower($source) == strtolower($dest)){
+      trigger_error("Source and destination can't be the same entry.");
+      $this->error = "Source and destination can't be the same entry.";
+      return(FALSE);
+    }
+
+    /* Check if destination entry exists */    
+    if($this->dn_exists($dest)){
+      trigger_error("Destination '$dest' already exists.");
+      $this->error = "Destination '$dest' already exists.";
+      return(FALSE);
+    }
+
+    /* Extract the name and the parent part out ouf source dn.
+        e.g.  cn=herbert,ou=department,dc=... 
+         parent   =>  ou=department,dc=...
+         dest_rdn =>  cn=herbert
+     */
+    $parent   = preg_replace("/^[^,]+,/","", $dest);
+    $dest_rdn = preg_replace("/,.*$/","",$dest);
+
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $r= ldap_rename($this->cid, at LDAP::fix($source), @LDAP::fix($dest_rdn), at LDAP::fix($parent),TRUE); 
+      $this->error = ldap_error($this->cid);
+
+      /* Check if destination dn exists, if not the 
+          server may not support this operation */
+      $r &= is_resource($this->dn_exists($dest));
+      return($r);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return(FALSE);
+    }
+  }
+
+
+  /**
+  *  Function rmdir_recursive
+  *
+  *  Description: Based in recursive_remove, adding two thing: full subtree remove, and delete own node.
+  *  Parameters:  The dn to delete
+  *  GiveBack:    True on sucessfull , 0 in error, and "" when we don't get a ldap conection
+  *
+  */
+  function rmdir_recursive($srp, $deletedn)
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $delarray= array();
+        
+      /* Get sorted list of dn's to delete */
+      $this->ls ($srp, "(objectClass=*)",$deletedn);
+      while ($this->fetch($srp)){
+        $deldn= $this->getDN($srp);
+        $delarray[$deldn]= strlen($deldn);
+      }
+      arsort ($delarray);
+      reset ($delarray);
+
+      /* Really Delete ALL dn's in subtree */
+      foreach ($delarray as $key => $value){
+        $this->rmdir_recursive($srp, $key);
+      }
+      
+      /* Finally Delete own Node */
+      $r = @ldap_delete($this->cid, LDAP::fix($deletedn));
+      $this->error = @ldap_error($this->cid);
+      return($r ? $r : 0);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function makeReadableErrors($error,$attrs)
+  { 
+    global $config;
+
+    if($this->success()) return("");
+
+    $str = "";
+    if(preg_match("/^objectClass: value #([0-9]*) invalid per syntax$/", $this->get_additional_error())){
+      $oc = preg_replace("/^objectClass: value #([0-9]*) invalid per syntax$/","\\1", $this->get_additional_error());
+      if(isset($attrs['objectClass'][$oc])){
+        $str.= " - <b>objectClass: ".$attrs['objectClass'][$oc]."</b>";
+      }
+    }
+    if($error == "Undefined attribute type"){
+      $str = " - <b>attribute: ".preg_replace("/:.*$/","",$this->get_additional_error())."</b>";
+    } 
+
+    @DEBUG(DEBUG_LDAP,__LINE__,__FUNCTION__,__FILE__,$attrs,"Erroneous data");
+
+    return($str);
+  }
+
+  function modify($attrs)
+  {
+    if(count($attrs) == 0){
+      return (0);
+    }
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $r = @ldap_modify($this->cid, LDAP::fix($this->basedn), $attrs);
+      $this->error = @ldap_error($this->cid);
+      if(!$this->success()){
+        $this->error.= $this->makeReadableErrors($this->error,$attrs);
+      }
+      return($r ? $r : 0);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function add($attrs)
+  {
+    if($this->hascon){
+      if ($this->reconnect) $this->connect();
+      $r = @ldap_add($this->cid, LDAP::fix($this->basedn), $attrs);
+      $this->error = @ldap_error($this->cid);
+      if(!$this->success()){
+        $this->error.= $this->makeReadableErrors($this->error,$attrs);
+      }
+      return($r ? $r : 0);
+    }else{
+      $this->error = "Could not connect to LDAP server";
+      return("");
+    }
+  }
+
+  function create_missing_trees($srp, $target)
+  {
+    global $config;
+
+    $real_path= substr($target, 0, strlen($target) - strlen($this->basedn) -1 );
+
+    if ($target == $this->basedn){
+      $l= array("dummy");
+    } else {
+      $l= array_reverse(gosa_ldap_explode_dn($real_path));
+    }
+    unset($l['count']);
+    $cdn= $this->basedn;
+    $tag= "";
+
+    /* Load schema if available... */
+    $classes= $this->get_objectclasses();
+
+    foreach ($l as $part){
+      if ($part != "dummy"){
+        $cdn= "$part,$cdn";
+      }
+
+      /* Ignore referrals */
+      $found= false;
+      foreach($this->referrals as $ref){
+        $base= preg_replace('!^[^:]+://[^/]+/([^?]+).*$!', '\\1', $ref['URI']);
+        if ($base == $cdn){
+          $found= true;
+          break;
+        }
+      }
+      if ($found){
+        continue;
+      }
+
+      $this->cat ($srp, $cdn);
+      $attrs= $this->fetch($srp);
+
+      /* Create missing entry? */
+      if (count ($attrs)){
+      
+        /* Catch the tag - if present */
+        if (isset($attrs['gosaUnitTag'][0])){
+          $tag= $attrs['gosaUnitTag'][0];
+        }
+
+      } else {
+        $type= preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
+        $param= LDAP::fix(preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn));
+        $param=preg_replace(array('/\\\\,/','/\\\\"/'),array(',','"'),$param);
+
+        $na= array();
+
+        /* Automatic or traditional? */
+        if(count($classes)){
+
+          /* Get name of first matching objectClass */
+          $ocname= "";
+          foreach($classes as $class){
+            if (isset($class['MUST']) && in_array($type, $class['MUST'])){
+
+              /* Look for first classes that is structural... */
+              if (isset($class['STRUCTURAL'])){
+                $ocname= $class['NAME'];
+                break;
+              }
+
+              /* Look for classes that are auxiliary... */
+              if (isset($class['AUXILIARY'])){
+                $ocname= $class['NAME'];
+              }
+            }
+          }
+
+          /* Bail out, if we've nothing to do... */
+          if ($ocname == ""){
+            msg_dialog::display(_("Internal error"), sprintf(_("Cannot automatically create subtrees with RDN '%s': no object class found!"),$type), FATAL_ERROR_DIALOG);
+            exit();
+          }
+
+          /* Assemble_entry */
+          if ($tag != ""){
+            $na['objectClass']= array($ocname, "gosaAdministrativeUnitTag");
+            $na["gosaUnitTag"]= $tag;
+          } else {
+            $na['objectClass']= array($ocname);
+          }
+          if (isset($classes[$ocname]['AUXILIARY'])){
+            $na['objectClass'][]= $classes[$ocname]['SUP'];
+          }
+          if ($type == "dc"){
+            /* This is bad actually, but - tell me a better way? */
+            $na['objectClass'][]= 'locality';
+          }
+          $na[$type]= $param;
+
+          // Fill in MUST values - but do not overwrite existing ones.
+          if (is_array($classes[$ocname]['MUST'])){
+            foreach($classes[$ocname]['MUST'] as $attr){
+              if(isset($na[$attr]) && !empty($na[$attr])) continue;
+              $na[$attr]= "filled";
+            }
+          }
+
+        } else {
+
+          /* Use alternative add... */
+          switch ($type){
+            case 'ou':
+              if ($tag != ""){
+                $na["objectClass"]= array("organizationalUnit", "gosaAdministrativeUnitTag");
+                $na["gosaUnitTag"]= $tag;
+              } else {
+                $na["objectClass"]= "organizationalUnit";
+              }
+              $na["ou"]= $param;
+              break;
+            case 'dc':
+              if ($tag != ""){
+                $na["objectClass"]= array("dcObject", "top", "locality", "gosaAdministrativeUnitTag");
+                $na["gosaUnitTag"]= $tag;
+              } else {
+                $na["objectClass"]= array("dcObject", "top", "locality");
+              }
+              $na["dc"]= $param;
+              break;
+            default:
+              msg_dialog::display(_("Internal error"), sprintf(_("Cannot automatically create subtrees with RDN '%s': not supported"),$type), FATAL_ERROR_DIALOG);
+              exit();
+          }
+
+        }
+        $this->cd($cdn);
+        $this->add($na);
+    
+        if (!$this->success()){
+
+          print_a(array($cdn,$na));
+
+          msg_dialog::display(_("LDAP error"), msgPool::ldaperror($this->get_error(), $cdn, LDAP_ADD, get_class()));
+          return FALSE;
+        }
+      }
+    }
+
+    return TRUE;
+  }
+
+
+  function recursive_remove($srp)
+  {
+    $delarray= array();
+
+    /* Get sorted list of dn's to delete */
+    $this->search ($srp, "(objectClass=*)");
+    while ($this->fetch($srp)){
+      $deldn= $this->getDN($srp);
+      $delarray[$deldn]= strlen($deldn);
+    }
+    arsort ($delarray);
+    reset ($delarray);
+
+    /* Delete all dn's in subtree */
+    foreach ($delarray as $key => $value){
+      $this->rmdir($key);
+    }
+  }
+
+
+  function get_attribute($dn, $name,$r_array=0)
+  {
+    $data= "";
+    if ($this->reconnect) $this->connect();
+    $sr= @ldap_read($this->cid, LDAP::fix($dn), "objectClass=*", array("$name"));
+
+    /* fill data from LDAP */
+    if ($sr) {
+      $ei= @ldap_first_entry($this->cid, $sr);
+      if ($ei) {
+        if ($info= @ldap_get_values_len($this->cid, $ei, "$name")){
+          $data= $info[0];
+        }
+      }
+    }
+    if($r_array==0) {
+      return ($data);
+    } else {
+      return ($info);
+    }
+  }
+ 
+
+
+  function get_additional_error()
+  {
+    $error= "";
+    @ldap_get_option ($this->cid, LDAP_OPT_ERROR_STRING, $error);
+    return ($error);
+  }
+
+
+  function success()
+  {
+    return (preg_match('/Success/i', $this->error));
+  }
+
+
+  function get_error()
+  {
+    if ($this->error == 'Success'){
+      return $this->error;
+    } else {
+      $adderror= $this->get_additional_error();
+      if ($adderror != ""){
+        $error= $this->error." (".$this->get_additional_error().", ".sprintf(_("while operating on '%s' using LDAP server '%s'"), $this->basedn, $this->hostname).")";
+      } else {
+        $error= $this->error." (".sprintf(_("while operating on LDAP server %s"), $this->hostname).")";
+      }
+      return $error;
+    }
+  }
+
+  function get_credentials($url, $referrals= NULL)
+  {
+    $ret= array();
+    $url= preg_replace('!\?\?.*$!', '', $url);
+    $server= preg_replace('!^([^:]+://[^/]+)/.*$!', '\\1', $url);
+
+    if ($referrals === NULL){
+      $referrals= $this->referrals;
+    }
+
+    if (isset($referrals[$server])){
+      return ($referrals[$server]);
+    } else {
+      $ret['ADMINDN']= LDAP::fix($this->binddn);
+      $ret['ADMINPASSWORD']= $this->bindpw;
+    }
+
+    return ($ret);
+  }
+
+
+  function gen_ldif ($srp, $dn, $filter= "(objectClass=*)", $attributes= array('*'), $recursive= TRUE)
+  {
+    $display= "";
+
+    if ($recursive){
+      $this->cd($dn);
+      $this->ls($srp, $filter,$dn, array('dn','objectClass'));
+      $deps = array();
+
+      $display .= $this->gen_one_entry($dn)."\n";
+
+      while ($attrs= $this->fetch($srp)){
+        $deps[] = $attrs['dn'];
+      }
+      foreach($deps as $dn){
+        $display .= $this->gen_ldif($srp, $dn, $filter,$attributes,$recursive);
+      }
+    } else {
+      $display.= $this->gen_one_entry($dn);
+    }
+    return ($display);
+  }
+
+
+  function gen_xls ($srp, $dn, $filter= "(objectClass=*)", $attributes= array('*'), $recursive= TRUE,$r_array=0)
+  {
+    $display= array();
+
+      $this->cd($dn);
+      $this->search($srp, "$filter");
+
+      $i=0;
+      while ($attrs= $this->fetch($srp)){
+        $j=0;
+
+        foreach ($attributes as $at){
+          $display[$i][$j]= $this->get_attribute($attrs['dn'], $at,$r_array);
+          $j++;
+        }
+
+        $i++;
+      }
+
+    return ($display);
+  }
+
+
+  function gen_one_entry($dn, $filter= "(objectClass=*)" , $name= array("*"))
+  {
+    $ret = "";
+    $data = "";
+    if($this->reconnect){
+      $this->connect();
+    }
+
+    /* Searching Ldap Tree */
+    $sr= @ldap_read($this->cid, LDAP::fix($dn), $filter, $name);
+
+    /* Get the first entry */   
+    $entry= @ldap_first_entry($this->cid, $sr);
+
+    /* Get all attributes related to that Objekt */
+    $atts = array();
+    
+    /* Assemble dn */
+    $atts[0]['name']  = "dn";
+    $atts[0]['value'] = array('count' => 1, 0 => $dn);
+
+    /* Reset index */
+    $i = 1 ; 
+  $identifier = array();
+    $attribute= @ldap_first_attribute($this->cid,$entry,$identifier);
+    while ($attribute) {
+      $i++;
+      $atts[$i]['name']  = $attribute;
+      $atts[$i]['value'] = @ldap_get_values_len($this->cid, $entry, "$attribute");
+
+      /* Next one */
+      $attribute= @ldap_next_attribute($this->cid,$entry,$identifier);
+    }
+
+    foreach($atts as $at)
+    {
+      for ($i= 0; $i<$at['value']['count']; $i++){
+
+        /* Check if we must encode the data */
+        if(!preg_match('/^[a-z0-9+@#.=, \/ -]+$/i', $at['value'][$i])) {
+          $ret .= $at['name'].":: ".base64_encode($at['value'][$i])."\n";
+        } else {
+          $ret .= $at['name'].": ".$at['value'][$i]."\n";
+        }
+      }
+    }
+
+    return($ret);
+  }
+
+
+  function dn_exists($dn)
+  {
+    return @ldap_list($this->cid, LDAP::fix($dn), "(objectClass=*)", array("objectClass"));
+  }
+  
+
+
+  /*  This funktion imports ldifs 
+        
+      If DeleteOldEntries is true, the destination entry will be deleted first. 
+      If JustModify is true the destination entry will only be touched by the attributes specified in the ldif.
+      if JustMofify id false the destination dn will be overwritten by the new ldif. 
+    */
+
+  function import_complete_ldif($srp, $str_attr,$error,$JustModify,$DeleteOldEntries)
+  {
+    if($this->reconnect) $this->connect();
+
+    /* First we have to split the string into empty lines.
+       An empty line indicates an new Entry */
+    $entries = preg_split("/\n/",$str_attr);
+
+    $data = "";
+    $cnt = 0; 
+    $current_line = 0;
+
+    /* FIX ldif */
+    $last = "";
+    $tmp  = "";
+    $i = 0;
+    foreach($entries as $entry){
+      if(preg_match("/^ /",$entry)){
+        $tmp[$i] .= trim($entry);
+      }else{
+        $i ++;
+        $tmp[$i] = trim($entry);
+      }
+    }
+
+    /* Every single line ... */
+    foreach($tmp as $entry) {
+      $current_line ++;
+
+      /* Removing Spaces to .. 
+         .. test if a new entry begins */
+      $tmp  = str_replace(" ","",$data );
+
+      /* .. prevent empty lines in an entry */
+      $tmp2 = str_replace(" ","",$entry);
+
+      /* If the Block ends (Empty Line) */
+      if((empty($entry))&&(!empty($tmp))) {
+        /* Add collected lines as a complete block */
+        $all[$cnt] = $data;
+        $cnt ++;
+        $data ="";
+      } else {
+
+        /* Append lines ... */
+        if(!empty($tmp2)) {
+          /* check if we need base64_decode for this line */
+          if(strstr($tmp2, "::") !== false)
+          {
+            $encoded = explode("::",$entry);
+            $attr  = trim($encoded[0]);
+            $value = base64_decode(trim($encoded[1]));
+            /* Add linenumber */
+            $data .= $current_line."#".base64_encode($attr.":".$value)."\n";
+          }
+          else
+          {
+            /* Add Linenumber */ 
+            $data .= $current_line."#".base64_encode($entry)."\n";
+          }
+        }
+      }
+    }
+
+    /* The Data we collected is not in the array all[];
+       For example the Data is stored like this..
+
+       all[0] = "1#dn : .... \n 
+       2#ObjectType: person \n ...."
+       
+       Now we check every insertblock and try to insert */
+    foreach ( $all as $single) {
+      $lineone = preg_split("/\n/",$single);  
+      $ndn = explode("#", $lineone[0]);
+      $line = base64_decode($ndn[1]);
+
+      $dnn = explode (":",$line,2);
+      $current_line = $ndn[0];
+      $dn    = $dnn[0];
+      $value = $dnn[1];
+
+      /* Every block must begin with a dn */
+      if($dn != "dn") {
+        $error= sprintf(_("This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' in line %s"), $line, $current_line);
+        return -2;  
+      }
+
+      /* Should we use Modify instead of Add */
+      $usemodify= false;
+
+      /* Delete before insert */
+      $usermdir= false;
+    
+      /* The dn address already exists, Don't delete destination entry, overwrite it */
+      if (($this->dn_exists($value))&&((!$JustModify)&&(!$DeleteOldEntries))) {
+
+        $usermdir = $usemodify = false;
+
+      /* Delete old entry first, then add new */
+      } elseif(($this->dn_exists($value))&&($DeleteOldEntries)){
+
+        /* Delete first, then add */
+        $usermdir = true;        
+
+      } elseif(($this->dn_exists($value))&&($JustModify)) {
+        
+        /* Modify instead of Add */
+        $usemodify = true;
+      }
+     
+      /* If we can't Import, return with a file error */
+      if(!$this->import_single_entry($srp, $single,$usemodify,$usermdir) ) {
+        $error= sprintf(_("Error while importing dn: '%s', please check your LDIF from line %s on!"), $line,
+                        $current_line);
+        return UNKNOWN_TOKEN_IN_LDIF_FILE;      }
+    }
+
+    return (INSERT_OK);
+  }
+
+
+  /* Imports a single entry 
+      If $delete is true;  The old entry will be deleted if it exists.
+      if $modify is true;  All variables that are not touched by the new ldif will be kept.
+      if $modify is false; The new ldif overwrites the old entry, and all untouched attributes get lost.
+  */
+  function import_single_entry($srp, $str_attr,$modify,$delete)
+  {
+    global $config;
+
+    if(!$config){
+      trigger_error("Can't import ldif, can't read config object.");
+    }
+  
+
+    if($this->reconnect) $this->connect();
+
+    $ret = false;
+    $rows= preg_split("/\n/",$str_attr);
+    $data= false;
+
+    foreach($rows as $row) {
+      
+      /* Check if we use Linenumbers (when import_complete_ldif is called we use
+         Linenumbers) Linenumbers are use like this 123#attribute : value */
+      if(!empty($row)) {
+        if(strpos($row,"#")!=FALSE) {
+
+          /* We are using line numbers 
+             Because there is a # before a : */
+          $tmp1= explode("#",$row);
+          $current_line= $tmp1[0];
+          $row= base64_decode($tmp1[1]);
+        }
+
+        /* Split the line into  attribute  and value */
+        $attr   = explode(":", $row,2);
+        $attr[0]= trim($attr[0]);  /* attribute */
+        $attr[1]= $attr[1];  /* value */
+
+        /* Check :: was used to indicate base64_encoded strings */
+        if($attr[1][0] == ":"){
+          $attr[1]=trim(preg_replace("/^:/","",$attr[1]));
+          $attr[1]=base64_decode($attr[1]);
+        }
+
+        $attr[1] = trim($attr[1]);
+
+        /* Check for attributes that are used more than once */
+        if(!isset($data[$attr[0]])) {
+          $data[$attr[0]]=$attr[1];
+        } else {
+          $tmp = $data[$attr[0]];
+
+          if(!is_array($tmp)) {
+            $new[0]=$tmp;
+            $new[1]=$attr[1];
+            $datas[$attr[0]]['count']=1;             
+            $data[$attr[0]]=$new;
+          } else {
+            $cnt = $datas[$attr[0]]['count'];           
+            $cnt ++;
+            $data[$attr[0]][$cnt]=$attr[1];
+            $datas[$attr[0]]['count'] = $cnt;
+          }
+        }
+      }
+    }
+
+    /* If dn is an index of data, we should try to insert the data */
+    if(isset($data['dn'])) {
+
+      /* Fix dn */
+      $tmp = gosa_ldap_explode_dn($data['dn']);
+      unset($tmp['count']);
+      $newdn ="";
+      foreach($tmp as $tm){
+        $newdn.= trim($tm).",";
+      }
+      $newdn = preg_replace("/,$/","",$newdn);
+      $data['dn'] = $newdn;
+   
+      /* Creating Entry */
+      $this->cd($data['dn']);
+
+      /* Delete existing entry */
+      if($delete){
+        $this->rmdir_recursive($srp, $data['dn']);
+      }
+     
+      /* Create missing trees */
+      $this->cd ($this->basedn);
+      $this->cd($config->current['BASE']);
+      $this->create_missing_trees($srp, preg_replace("/^[^,]+,/","",$data['dn']));
+      $this->cd($data['dn']);
+
+      $dn = $data['dn'];
+      unset($data['dn']);
+      
+      if(!$modify){
+
+        $this->cat($srp, $dn);
+        if($this->count($srp)){
+        
+          /* The destination entry exists, overwrite it with the new entry */
+          $attrs = $this->fetch($srp);
+          foreach($attrs as $name => $value ){
+            if(!is_numeric($name)){
+              if(in_array($name,array("dn","count"))) continue;
+              if(!isset($data[$name])){
+                $data[$name] = array();
+              }
+            }
+          }
+          $ret = $this->modify($data);
+    
+        }else{
+    
+          /* The destination entry doesn't exists, create it */
+          $ret = $this->add($data);
+        }
+
+      } else {
+        
+        /* Keep all vars that aren't touched by this ldif */
+        $ret = $this->modify($data);
+      }
+    }
+
+    if (!$this->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($this->get_error(), $dn, "", get_class()));
+    }
+
+    return($ret);
+  }
+
+  
+  function importcsv($str)
+  {
+    $lines = preg_split("/\n/",$str);
+    foreach($lines as $line)
+    {
+      /* continue if theres a comment */
+      if(substr(trim($line),0,1)=="#"){
+        continue;
+      }
+
+      $line= str_replace ("\t\t","\t",$line);
+      $line= str_replace ("\t"  ,"," ,$line);
+      echo $line;
+
+      $cells = explode(",",$line )  ;
+      $linet= str_replace ("\t\t",",",$line);
+      $cells = preg_split("/\t/",$line);
+      $count = count($cells);  
+    }
+
+  }
+  
+  function get_objectclasses( $force_reload = FALSE)
+  {
+    $objectclasses = array();
+    global $config;
+
+    /* Only read schema if it is allowed */
+    if(isset($config) && preg_match("/config/i",get_class($config))){
+      if ($config->get_cfg_value("schemaCheck") != "true"){
+        return($objectclasses);
+      } 
+    }
+
+    /* Return the cached results. */
+    if(class_available('session') && session::global_is_set("LDAP_CACHE::get_objectclasses") && !$force_reload){
+      $objectclasses = session::global_get("LDAP_CACHE::get_objectclasses");
+      return($objectclasses);
+    }
+	
+	  # Get base to look for schema 
+	  $sr = @ldap_read ($this->cid, "", "objectClass=*", array("subschemaSubentry"));
+	  $attr = @ldap_get_entries($this->cid,$sr);
+	  if (!isset($attr[0]['subschemasubentry'][0])){
+	    return array();
+	  }
+	
+	  /* Get list of objectclasses and fill array */
+	  $nb= $attr[0]['subschemasubentry'][0];
+	  $objectclasses= array();
+	  $sr= ldap_read ($this->cid, $nb, "objectClass=*", array("objectclasses"));
+	  $attrs= ldap_get_entries($this->cid,$sr);
+	  if (!isset($attrs[0])){
+	    return array();
+	  }
+	  foreach ($attrs[0]['objectclasses'] as $val){
+      if (preg_match('/^[0-9]+$/', $val)){
+        continue;
+      }
+      $name= "OID";
+      $pattern= explode(' ', $val);
+      $ocname= preg_replace("/^.* NAME\s+\(*\s*'([^']+)'\s*\)*.*$/", '\\1', $val);
+      $objectclasses[$ocname]= array();
+
+      foreach($pattern as $chunk){
+        switch($chunk){
+
+          case '(':
+                    $value= "";
+                    break;
+
+          case ')': if ($name != ""){
+                      $v = $this->value2container($value);
+                      if(in_array($name, array('MUST', 'MAY')) && !is_array($v)){
+                        $v = array($v);
+                      }
+                      $objectclasses[$ocname][$name]= $v;
+                    }
+                    $name= "";
+                    $value= "";
+                    break;
+
+          case 'NAME':
+          case 'DESC':
+          case 'SUP':
+          case 'STRUCTURAL':
+          case 'ABSTRACT':
+          case 'AUXILIARY':
+          case 'MUST':
+          case 'MAY':
+                    if ($name != ""){
+                      $v = $this->value2container($value);
+                      if(in_array($name, array('MUST', 'MAY')) && !is_array($v)){
+                        $v = array($v);
+                      }
+                      $objectclasses[$ocname][$name]= $v;
+                    }
+                    $name= $chunk;
+                    $value= "";
+                    break;
+
+          default:  $value.= $chunk." ";
+        }
+      }
+
+	  }
+    if(class_available("session")){
+      session::global_set("LDAP_CACHE::get_objectclasses",$objectclasses);
+    }
+
+	  return $objectclasses;
+  }
+
+
+  function value2container($value)
+  {
+    /* Set emtpy values to "true" only */
+    if (preg_match('/^\s*$/', $value)){
+      return true;
+    }
+
+    /* Remove ' and " if needed */
+    $value= preg_replace('/^[\'"]/', '', $value);
+    $value= preg_replace('/[\'"] *$/', '', $value);
+
+    /* Convert to array if $ is inside... */
+    if (preg_match('/\$/', $value)){
+      $container= preg_split('/\s*\$\s*/', $value);
+    } else {
+      $container= chop($value);
+    }
+
+    return ($container);
+  }
+
+
+  function log($string)
+  {
+    if (session::global_is_set('config')){
+      $cfg = session::global_get('config');
+      if (isset($cfg->current['LDAPSTATS']) && preg_match('/true/i', $cfg->current['LDAPSTATS'])){
+        syslog (LOG_INFO, $string);
+      }
+    }
+  }
+
+  /* added by Guido Serra aka Zeph <zeph at purotesto.it> */
+  function getCn($dn){
+    $simple= explode(",", $dn);
+
+    foreach($simple as $piece) {
+      $partial= explode("=", $piece);
+
+      if($partial[0] == "cn"){
+        return $partial[1];
+      }
+    }
+  }
+
+
+  function get_naming_contexts($server, $admin= "", $password= "")
+  {
+    /* Build LDAP connection */
+    $ds= ldap_connect ($server);
+    if (!$ds) {
+      die ("Can't bind to LDAP. No check possible!");
+    }
+    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+    $r= ldap_bind ($ds, $admin, $password);
+
+    /* Get base to look for naming contexts */
+    $sr  = @ldap_read ($ds, "", "objectClass=*", array("+"));
+    $attr= @ldap_get_entries($ds,$sr);
+
+    return ($attr[0]['namingcontexts']);
+  }
+
+
+  function get_root_dse($server, $admin= "", $password= "")
+  {
+    /* Build LDAP connection */
+    $ds= ldap_connect ($server);
+    if (!$ds) {
+      die ("Can't bind to LDAP. No check possible!");
+    }
+    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+    $r= ldap_bind ($ds, $admin, $password);
+
+    /* Get base to look for naming contexts */
+    $sr  = @ldap_read ($ds, "", "objectClass=*", array("+"));
+    $attr= @ldap_get_entries($ds,$sr);
+   
+    /* Return empty array, if nothing was set */
+    if (!isset($attr[0])){
+      return array();
+    }
+
+    /* Rework array... */
+    $result= array();
+    for ($i= 0; $i<$attr[0]['count']; $i++){
+      $result[$attr[0][$i]]= $attr[0][$attr[0][$i]];
+      unset($result[$attr[0][$i]]['count']);
+    }
+
+    return ($result);
+  }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_ldapMultiplexer.inc b/gosa-core/include/class_ldapMultiplexer.inc
new file mode 100644
index 0000000..f201cae
--- /dev/null
+++ b/gosa-core/include/class_ldapMultiplexer.inc
@@ -0,0 +1,59 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_plugin.inc 9466 2008-03-08 15:59:37Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+class ldapMultiplexer {
+
+  /* Internal stuff */
+  protected $object;
+
+  /* Result resource */
+  protected $sr;
+ 
+  public function __construct(&$object) {
+    /* Store object */
+    $this->object= $object;
+
+    /* Set result resource */
+    $this->sr= $this->object->getSearchResource();
+  }
+ 
+  public function __call($methodName, $parameters) {
+    /* Add resource pointer if the mentioned methods are used */
+    if (preg_match('/^(search|ls|cat|fetch|clearResult|resetResult|count|getDN|recursive_remove|rmdir_recursive|gen_xls|gen_ldif|create_missing_trees|import_single_entry|import_complete_ldif)$/', $methodName)){
+      array_unshift($parameters, $this->sr);
+    }
+
+    $class= new ReflectionClass($this->object);
+    $method= $class->getMethod($methodName);
+
+    return $method->invokeArgs($this->object, $parameters);
+  }
+
+
+  public function __get($memberName) {
+    return $this->object->$memberName;
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/class_listing.inc b/gosa-core/include/class_listing.inc
new file mode 100644
index 0000000..7ccf144
--- /dev/null
+++ b/gosa-core/include/class_listing.inc
@@ -0,0 +1,1580 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_listing.inc 16324 2010-03-08 08:07:31Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class listing {
+
+  var $xmlData;
+  var $entries;
+  var $departments= array();
+  var $departmentBrowser= false;
+  var $departmentRootVisible= false;
+  var $multiSelect= false;
+  var $template;
+  var $headline;
+  var $base;
+  var $sortDirection= null;
+  var $sortColumn= null;
+  var $sortAttribute;
+  var $sortType;
+  var $numColumns;
+  var $baseMode= false;
+  var $bases= array();
+  var $header= array();
+  var $colprops= array();
+  var $filters= array();
+  var $filter= null;
+  var $pid;
+  var $objectTypes= array();
+  var $objectTypeCount= array();
+  var $objectDnMapping= array();
+  var $copyPasteHandler= null;
+  var $snapshotHandler= null;
+  var $exporter= array();
+  var $exportColumns= array();
+  var $useSpan= false;
+  var $height= 0;
+  var $scrollPosition= 0;
+  var $baseSelector;
+
+
+  function listing($filename)
+  {
+    global $config;
+    global $class_mapping;
+
+    // Initialize pid
+    $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE));
+
+    if (!$this->load($filename)) {
+      die("Cannot parse $filename!");
+    }
+
+    // Set base for filter
+    if ($this->baseMode) {
+      $this->base= session::global_get("CurrentMainBase");
+      if ($this->base == null) {
+        $this->base= $config->current['BASE'];
+      }
+      $this->refreshBasesList();
+    } else {
+      $this->base= $config->current['BASE'];
+    }
+
+    // Move footer information
+    $this->showFooter= ($config->get_cfg_value("listSummary") == "true");
+
+    // Register build in filters
+    $this->registerElementFilter("objectType", "listing::filterObjectType");
+    $this->registerElementFilter("departmentLink", "listing::filterDepartmentLink");
+    $this->registerElementFilter("link", "listing::filterLink");
+    $this->registerElementFilter("actions", "listing::filterActions");
+
+    // Load exporters
+    foreach($class_mapping as $class => $dummy) {
+      if (preg_match('/Exporter$/', $class)) {
+        $info= call_user_func(array($class, "getInfo"));
+        if ($info != null) {
+          $this->exporter= array_merge($this->exporter, $info);
+        }
+      }
+    }
+
+    // Instanciate base selector
+    $this->baseSelector= new baseSelector($this->bases, $this->base);
+  }
+
+
+  function setCopyPasteHandler($handler)
+  {
+    $this->copyPasteHandler= &$handler;
+  }
+
+
+  function setHeight($height)
+  {
+    $this->height= $height;
+  }
+
+
+  function setSnapshotHandler($handler)
+  {
+    $this->snapshotHandler= &$handler;
+  }
+
+
+  function setFilter($filter)
+  {
+    $this->filter= &$filter;
+    $filter->headpage = &$this;
+    if ($this->departmentBrowser){
+      $this->departments= $this->getDepartments();
+    }
+    $this->filter->setBase($this->base);
+  }
+
+
+  function registerElementFilter($name, $call)
+  {
+    if (!isset($this->filters[$name])) {
+      $this->filters[$name]= $call;
+      return true;
+    }
+
+    return false;
+  }
+
+
+  function load($filename)
+  {
+    $contents = file_get_contents($filename);
+    $this->xmlData= xml::xml2array($contents, 1);
+
+    if (!isset($this->xmlData['list'])) {
+      return false;
+    }
+
+    $this->xmlData= $this->xmlData["list"];
+
+    // Load some definition values
+    foreach (array("departmentBrowser", "departmentRootVisible", "multiSelect", "baseMode") as $token) {
+      if (isset($this->xmlData['definition'][$token]) &&
+          $this->xmlData['definition'][$token] == "true"){
+        $this->$token= true;
+      }
+    }
+
+    // Fill objectTypes from departments and xml definition
+    $types = departmentManagement::get_support_departments();
+    foreach ($types as $class => $data) {
+      $this->objectTypes[$data['OC']]= array("label" => $data['TITLE'],
+                                  "objectClass" => $data['OC'],
+                                  "image" => $data['IMG']);
+    }
+    $this->categories= array();
+    if (isset($this->xmlData['definition']['objectType'])) {
+      if(isset($this->xmlData['definition']['objectType']['label'])) {
+        $this->xmlData['definition']['objectType']= array($this->xmlData['definition']['objectType']);
+      }
+      foreach ($this->xmlData['definition']['objectType'] as $index => $otype) {
+        $tmp = $this->xmlData['definition']['objectType'][$index];
+        $this->objectTypes[$tmp['objectClass']]= $tmp;
+        if (isset($this->xmlData['definition']['objectType'][$index]['category'])){
+          $this->categories[]= $otype['category'];
+        }
+      }
+    }
+    $this->objectTypes = array_values($this->objectTypes);
+
+    // Parse layout per column
+    $this->colprops= $this->parseLayout($this->xmlData['table']['layout']);
+
+    // Prepare table headers
+    $this->renderHeader();
+
+    // Assign headline/Categories
+    $this->headline= _($this->xmlData['definition']['label']);
+    if (!is_array($this->categories)){
+      $this->categories= array($this->categories);
+    }
+
+    // Evaluate columns to be exported
+    if (isset($this->xmlData['table']['column'])){
+      foreach ($this->xmlData['table']['column'] as $index => $config) {
+        if (isset($config['export']) && $config['export'] == "true"){
+          $this->exportColumns[]= $index;
+        }
+      }
+    }
+
+    return true;  
+  }
+
+
+  function renderHeader()
+  {
+    $this->header= array();
+    $this->plainHeader= array();
+
+    // Initialize sort?
+    $sortInit= false;
+    if (!$this->sortDirection) {
+      $this->sortColumn= 0;
+      if (isset($this->xmlData['definition']['defaultSortColumn'])){
+        $this->sortColumn= $this->xmlData['definition']['defaultSortColumn'];
+      } else {
+        $this->sortAttribute= "";
+      }
+      $this->sortDirection= array();
+      $sortInit= true;
+    }
+
+    if (isset($this->xmlData['table']['column'])){
+      foreach ($this->xmlData['table']['column'] as $index => $config) {
+        // Initialize everything to one direction
+        if ($sortInit) {
+          $this->sortDirection[$index]= false;
+        }
+
+        $sorter= "";
+        if ($index == $this->sortColumn && isset($config['sortAttribute']) &&
+            isset($config['sortType'])) {
+          $this->sortAttribute= $config['sortAttribute'];
+          $this->sortType= $config['sortType'];
+          $sorter= " <img border='0' title='".($this->sortDirection[$index]?_("Up"):_("Down"))."' src='images/lists/sort-".($this->sortDirection[$index]?"up":"down").".png' align='top'>";
+        }
+        $sortable= (isset($config['sortAttribute']));
+
+        $link= "href='?plug=".$_GET['plug']."&PID=".$this->pid."&act=SORT_$index'";
+        if (isset($config['label'])) {
+          if ($sortable) {
+            $this->header[$index]= "<td class='listheader' ".$this->colprops[$index]."><a $link>"._($config['label'])."$sorter</a></td>";
+          } else {
+            $this->header[$index]= "<td class='listheader' ".$this->colprops[$index].">"._($config['label'])."</td>";
+          }
+          $this->plainHeader[]= _($config['label']);
+        } else {
+          if ($sortable) {
+            $this->header[$index]= "<td class='listheader' ".$this->colprops[$index]."><a $link> $sorter</a></td>";
+          } else {
+            $this->header[$index]= "<td class='listheader' ".$this->colprops[$index]."> </td>";
+          }
+          $this->plainHeader[]= "";
+        }
+      }
+    }
+  }
+
+
+  function render()
+  {
+    // Check for exeeded sizelimit
+    if (($message= check_sizelimit()) != ""){
+      return($message);
+    }
+
+    // Some browsers don't have the ability do do scrollable table bodies, filter them
+    // here.
+    $switch= false;
+    if (preg_match('/(Opera|Konqueror|Safari)/i', $_SERVER['HTTP_USER_AGENT'])){
+      $switch= true;
+    }
+
+    // Initialize list
+    $result= "<input type='hidden' value='$this->pid' name='PID'>\n";
+    $result.= "<input type='hidden' name='position_".$this->pid."' id='position_".$this->pid."'>\n";
+    $height= 450;
+    if ($this->height != 0) {
+      $result.= "<input type='hidden' value='$this->height' id='d_height'>\n";
+      $height= $this->height;
+    }
+    
+    $result.= "<div class='listContainer' id='d_scrollbody' style='border-top:1px solid #B0B0B0;border-right:1px solid #B0B0B0;width:100%;min-height:".($height+25)."px;'>\n";
+    $result.= "<table summary='$this->headline' style='width:100%; table-layout:fixed' cellspacing='0' cellpadding='0' id='t_scrolltable'>\n";
+    $this->numColumns= count($this->colprops) + ($this->multiSelect?1:0);
+
+    // Build list header
+    $result.= "<thead class='fixedListHeader listHeaderFormat'><tr>\n";
+    if ($this->multiSelect) {
+      $width= "24px";
+      if (preg_match('/Konqueror/i', $_SERVER['HTTP_USER_AGENT'])){
+        $width= "28px";
+      }
+      $result.= "<td class='listheader' style='text-align:center;padding:0;width:$width;'><input type='checkbox' id='select_all' name='select_all' title='"._("Select all")."' onClick='toggle_all_(\"listing_selected_[0-9]*$\",\"select_all\");' ></td>\n";
+    }
+    foreach ($this->header as $header) {
+      $result.= $header;
+    }
+    $result.= "</tr></thead>\n";
+
+    // Build list body
+    $result.= "<tbody class='listScrollContent listBodyFormat' id='t_nscrollbody' style='height:".$height."px;'>\n";
+
+    // No results? Just take an empty colspanned row
+    if (count($this->entries) + count($this->departments) == 0) {
+      $result.= "<tr class='rowxp0'><td class='list1nohighlight' colspan='$this->numColumns' style='height:100%;border-right:0px;width:100%;'> </td></tr>";
+    }
+
+    // Line color alternation
+    $alt= 0;
+    $deps= 0;
+
+    // Draw department browser if configured and we're not in sub mode
+    $this->useSpan= false;
+    if ($this->departmentBrowser && $this->filter->scope != "sub") {
+      // Fill with department browser if configured this way
+      $departmentIterator= new departmentSortIterator($this->departments, $this->sortDirection[$this->sortColumn]);
+      foreach ($departmentIterator as $row => $entry){
+        $result.="<tr class='rowxp".($alt&1)."'>";
+
+        // Render multi select if needed
+        if ($this->multiSelect) {
+          $result.="<td style='text-align:center;padding:0;' class='list1'> </td>";
+        }
+
+        // Render defined department columns, fill the rest with some stuff
+        $rest= $this->numColumns - 1;
+        foreach ($this->xmlData['table']['department'] as $index => $config) {
+          $colspan= 1;
+          if (isset($config['span'])){
+            $colspan= $config['span'];
+            $this->useSpan= true;
+          }
+          $result.="<td colspan='$colspan' ".$this->colprops[$index]." class='list1'>".$this->renderCell($config['value'], $entry, $row)."</td>";
+          $rest-= $colspan;
+        }
+
+        // Fill remaining cols with nothing
+        $last= $this->numColumns - $rest;
+        for ($i= 0; $i<$rest; $i++){
+          $result.= "<td ".$this->colprops[$last+$i-1]." class='list1'> </td>";
+        }
+        $result.="</tr>";
+
+        $alt++;
+      }
+      $deps= $alt;
+    }
+
+    // Fill with contents, sort as configured
+    foreach ($this->entries as $row => $entry) {
+      $trow= "";
+
+      // Render multi select if needed
+      if ($this->multiSelect) {
+        $trow.="<td style='text-align:center;width:20px;' class='list0'><input type='checkbox' id='listing_selected_$row' name='listing_selected_$row'></td>\n";
+      }
+
+      foreach ($this->xmlData['table']['column'] as $index => $config) {
+        $renderedCell= $this->renderCell($config['value'], $entry, $row);
+        $trow.="<td ".$this->colprops[$index]." class='list0'>".$renderedCell."</td>\n";
+
+        // Save rendered column
+        $sort= preg_replace('/.*>([^<]+)<.*$/', '$1', $renderedCell);
+        $sort= preg_replace('/ /', '', $sort);
+        if (preg_match('/</', $sort)){
+          $sort= "";
+        }
+        $this->entries[$row]["_sort$index"]= $sort;
+      }
+
+      // Save rendered entry
+      $this->entries[$row]['_rendered']= $trow;
+    }
+
+    // Complete list by sorting entries for _sort$index and appending them to the output
+    $entryIterator= new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
+    foreach ($entryIterator as $row => $entry){
+      $result.="<tr class='rowxp".($alt&1)."'>\n";
+      $result.= $entry['_rendered'];
+      $result.="</tr>\n";
+      $alt++;
+    }
+
+    // Need to fill the list if it's not full (nobody knows why this is 22 ;-))
+    $emptyListStyle= (count($this->entries) + (($this->useSpan && count($this->entries))?$deps:0) == 0)?"border:0;":"";
+    if ((count($this->entries) + $deps) < 22) {
+      $result.= "<tr>";
+      for ($i= 0; $i<$this->numColumns; $i++) {
+        if ($i == 0) {
+          $result.= "<td class='list1nohighlight' style='$emptyListStyle height:100%;'> </td>";
+          continue;
+        }
+        if ($i != $this->numColumns-1) {
+          $result.= "<td class='list1nohighlight' style='$emptyListStyle'> </td>";
+        } else {
+          $result.= "<td class='list1nohighlight' style='border-right:0;$emptyListStyle'> </td>";
+        }
+      }
+      $result.= "</tr>";
+    }
+
+    // Close list body
+    $result.= "</tbody></table></div>";
+
+    // Add the footer if requested
+    if ($this->showFooter) {
+      $result.= "<div class='nlistFooter'><div style='padding:3px'>";
+
+      foreach ($this->objectTypes as $objectType) {
+        if (isset($this->objectTypeCount[$objectType['label']])) {
+          $label= _($objectType['label']);
+          $result.= "<img class='center' src='".$objectType['image']."' title='$label' alt='$label'> ".$this->objectTypeCount[$objectType['label']]."    ";
+        }
+      }
+
+      $result.= "</div></div>";
+    }
+
+    // Close list
+    $result.= $switch?"<input type='hidden' id='list_workaround'>":"";
+
+    // Add scroll positioner
+    $result.= '<script type="text/javascript" language="javascript">';
+    $result.= '$("t_nscrollbody").scrollTop= '.$this->scrollPosition.';';
+    $result.= 'var box = $("t_nscrollbody").onscroll= function() {$("position_'.$this->pid.'").value= this.scrollTop;}';
+    $result.= '</script>';
+
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+    $smarty->assign("FILTER", $this->filter->render());
+    $smarty->assign("SIZELIMIT", print_sizelimit_warning());
+    $smarty->assign("LIST", $result);
+
+    // Assign navigation elements
+    $nav= $this->renderNavigation();
+    foreach ($nav as $key => $html) {
+      $smarty->assign($key, $html);
+    }
+
+    // Assign action menu / base
+    $smarty->assign("ACTIONS", $this->renderActionMenu());
+    $smarty->assign("BASE", $this->renderBase());
+
+    // Assign separator
+    $smarty->assign("SEPARATOR", "<img src='images/lists/seperator.png' alt='-' align='middle' height='16' width='1' class='center'>");
+
+    // Assign summary
+    $smarty->assign("HEADLINE", $this->headline);
+
+    // Try to load template from plugin the folder first...
+    $file = get_template_path($this->xmlData['definition']['template'], true);
+
+    // ... if this fails, try to load the file from the theme folder.
+    if(!file_exists($file)){
+      $file = get_template_path($this->xmlData['definition']['template']);
+    }
+
+    return ($smarty->fetch($file));
+  }
+
+
+  function update()
+  {
+    global $config;
+    $ui= get_userinfo();
+
+    // Take care of base selector
+    if ($this->baseMode) {
+      $this->baseSelector->update();
+      // Check if a wrong base was supplied
+      if(!$this->baseSelector->checkLastBaseUpdate()){
+         msg_dialog::display(_("Error"), msgPool::check_base(), ERROR_DIALOG);
+      }
+    }
+
+    // Save base
+    $refresh= false;
+    if ($this->baseMode) {
+      $this->base= $this->baseSelector->getBase();
+      session::global_set("CurrentMainBase", $this->base);
+      $refresh= true;
+    }
+
+
+    // Reset object counter / DN mapping
+    $this->objectTypeCount= array();
+    $this->objectDnMapping= array();
+
+    // Do not do anything if this is not our PID
+    if($refresh || !(isset($_REQUEST['PID']) && $_REQUEST['PID'] != $this->pid)) {
+
+      // Save position if set
+      if (isset($_POST['position_'.$this->pid]) && is_numeric($_POST['position_'.$this->pid])) {
+        $this->scrollPosition= $_POST['position_'.$this->pid];
+      }
+
+      // Override the base if we got a message from the browser navigation
+      if ($this->departmentBrowser && isset($_GET['act'])) {
+        if (preg_match('/^department_([0-9]+)$/', validate($_GET['act']), $match)){
+          if (isset($this->departments[$match[1]])){
+            $this->base= $this->departments[$match[1]]['dn'];
+            if ($this->baseMode) {
+              $this->baseSelector->setBase($this->base);
+            }
+            session::global_set("CurrentMainBase", $this->base);
+          }
+        }
+      }
+
+      // Filter POST with "act" attributes -> posted from action menu
+      if (isset($_POST['exec_act']) && $_POST['act'] != '') {
+        if (preg_match('/^export.*$/', $_POST['act']) && isset($this->exporter[$_POST['act']])) {
+          $exporter= $this->exporter[$_POST['act']];
+          $userinfo= ", "._("created by")." ".$ui->cn." - ".strftime('%A, %d. %B %Y, %H:%M:%S');
+          $entryIterator= new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
+          $sortedEntries= array();
+          foreach ($entryIterator as $entry){
+            $sortedEntries[]= $entry;
+          }
+          $instance= new $exporter['class']($this->headline.$userinfo, $this->plainHeader, $sortedEntries, $this->exportColumns);
+          $type= call_user_func(array($exporter['class'], "getInfo"));
+          $type= $type[$_POST['act']];
+          send_binary_content($instance->query(), $type['filename'], $type= $type['mime']);
+        }
+      }
+
+      // Filter GET with "act" attributes
+      if (isset($_GET['act'])) {
+        $key= validate($_GET['act']);
+        if (preg_match('/^SORT_([0-9]+)$/', $key, $match)) {
+          // Switch to new column or invert search order?
+          $column= $match[1];
+          if ($this->sortColumn != $column) {
+            $this->sortColumn= $column;
+          } else {
+            $this->sortDirection[$column]= !$this->sortDirection[$column];
+          }
+
+          // Allow header to update itself according to the new sort settings
+          $this->renderHeader();
+        }
+      }
+
+      // Override base if we got signals from the navigation elements
+      $action= "";
+      foreach ($_POST as $key => $value) {
+        if (preg_match('/^(ROOT|BACK|HOME)_x$/', $key, $match)) {
+          $action= $match[1];
+          break;
+        }
+      }
+
+      // Navigation handling
+      if ($action == 'ROOT') {
+        $deps= $ui->get_module_departments($this->categories);
+        $this->base= $deps[0];
+        $this->baseSelector->setBase($this->base);
+        session::global_set("CurrentMainBase", $this->base);
+      }
+      if ($action == 'BACK') {
+        $deps= $ui->get_module_departments($this->categories);
+        $base= preg_replace("/^[^,]+,/", "", $this->base);
+        if(in_array_ics($base, $deps)){
+          $this->base= $base;
+          $this->baseSelector->setBase($this->base);
+          session::global_set("CurrentMainBase", $this->base);
+        }
+      }
+      if ($action == 'HOME') {
+        $ui= get_userinfo();
+        $this->base= get_base_from_people($ui->dn);
+        $this->baseSelector->setBase($this->base);
+        session::global_set("CurrentMainBase", $this->base);
+      }
+    }
+
+    // Reload departments
+    if ($this->departmentBrowser){
+      $this->departments= $this->getDepartments();
+    }
+
+    // Update filter and refresh entries
+    $this->filter->setBase($this->base);
+    $this->entries= $this->filter->query();
+
+    // Fix filter if querie returns NULL
+    if ($this->entries == null) {
+      $this->entries= array();
+    }
+  }
+
+
+  function setBase($base)
+  {
+    $this->base= $base;
+    if ($this->baseMode) {
+      $this->baseSelector->setBase($this->base);
+    }
+  }
+
+
+  function getBase()
+  {
+    return $this->base;
+  }
+
+
+  function parseLayout($layout)
+  {
+    $result= array();
+    $layout= preg_replace("/^\|/", "", $layout);
+    $layout= preg_replace("/\|$/", "", $layout);
+    $cols= explode("|", $layout);
+
+    foreach ($cols as $index => $config) {
+      if ($config != "") {
+        $res= "";
+        $components= explode(';', $config);
+        foreach ($components as $part) {
+          if (preg_match("/^r$/", $part)) {
+            $res.= "text-align:right;";
+            continue;
+          }
+          if (preg_match("/^l$/", $part)) {
+            $res.= "text-align:left;";
+            continue;
+          }
+          if (preg_match("/^c$/", $part)) {
+            $res.= "text-align:center;";
+            continue;
+          }
+          if (preg_match("/^[0-9]+(|px|%)$/", $part)) {
+            $res.= "width:$part;min-width:$part;";
+            continue;
+          }
+        }
+
+        // Add minimum width for scalable columns
+        if (!preg_match('/width:/', $res)){
+          $res.= "min-width:200px;";
+        }
+
+        $result[$index]= " style='$res'";
+      } else {
+        $result[$index]= " style='min-width:100px;'";
+      }
+    }
+
+    // Save number of columns for later use
+    $this->numColumns= count($cols);
+
+    // Add no border to the last column
+    $result[$this->numColumns-1]= preg_replace("/'$/", "border-right:0;'", $result[$this->numColumns-1]);
+
+    return $result;
+  }
+
+
+  function renderCell($data, $config, $row)
+  {
+    // Replace flat attributes in data string
+    for ($i= 0; $i<$config['count']; $i++) {
+      $attr= $config[$i];
+      $value= "";
+      if (is_array($config[$attr])) {
+        $value= $config[$attr][0];
+      } else {
+        $value= $config[$attr];
+      }
+      $data= preg_replace("/%\{$attr\}/", $value, $data);
+    }
+
+    // Watch out for filters and prepare to execute them
+    $data= $this->processElementFilter($data, $config, $row);
+
+    // Replace all non replaced %{...} instances because they
+    // are non resolved attributes or filters
+    $data= preg_replace('/%{[^}]+}/', ' ', $data);
+
+    return $data;
+  }
+
+
+  function renderBase()
+  {
+    if (!$this->baseMode) {
+      return;
+    }
+
+    return $this->baseSelector->render();
+  }
+
+
+  function processElementFilter($data, $config, $row)
+  {
+    preg_match_all("/%\{filter:([^(]+)\((.*)\)\}/", $data, $matches, PREG_SET_ORDER);
+
+    foreach ($matches as $match) {
+      $cl= "";
+      $method= "";
+      if (preg_match('/::/', $match[1])) {
+        $cl= preg_replace('/::.*$/', '', $match[1]);
+        $method= preg_replace('/^.*::/', '', $match[1]);
+      } else {
+        if (!isset($this->filters[$match[1]])) {
+          continue;
+        }
+        $cl= preg_replace('/::.*$/', '', $this->filters[$match[1]]);
+        $method= preg_replace('/^.*::/', '', $this->filters[$match[1]]);
+      }
+
+      // Prepare params for function call
+      $params= array();
+      preg_match_all('/"[^"]+"|[^,]+/', $match[2], $parts);
+      foreach ($parts[0] as $param) {
+
+        // Row is replaced by the row number
+        if ($param == "row") {
+          $params[]= $row;
+          continue;
+        }
+
+        // pid is replaced by the current PID
+        if ($param == "pid") {
+          $params[]= $this->pid;
+          continue;
+        }
+
+        // base is replaced by the current base
+        if ($param == "base") {
+          $params[]= $this->getBase();
+          continue;
+        }
+
+        // Fixie with "" is passed directly
+        if (preg_match('/^".*"$/', $param)){
+          $params[]= preg_replace('/"/', '', $param);
+          continue;
+        }
+
+        // Move dn if needed
+        if ($param == "dn") {
+          $params[]= LDAP::fix($config["dn"]);
+          continue;
+        }
+
+        // LDAP variables get replaced by their objects
+        for ($i= 0; $i<$config['count']; $i++) {
+          if ($param == $config[$i]) {
+            $values= $config[$config[$i]];
+            if (is_array($values)){
+              unset($values['count']);
+            }
+            $params[]= $values;
+            break;
+          }
+        }
+      }
+
+      // Replace information
+      if ($cl == "listing") {
+        // Non static call - seems to result in errors
+        $data= @preg_replace('/'.preg_quote($match[0]).'/', call_user_func_array(array($this, "$method"), $params), $data);
+      } else {
+        // Static call
+        $data= preg_replace('/'.preg_quote($match[0]).'/', call_user_func_array(array($cl, $method), $params), $data);
+      }
+    }
+
+    return $data;
+  }
+
+
+  function getObjectType($types, $classes)
+  {
+    // Walk thru types and see if there's something matching
+    foreach ($types as $objectType) {
+      $ocs= $objectType['objectClass'];
+      if (!is_array($ocs)){
+        $ocs= array($ocs);
+      }
+
+      $found= true;
+      foreach ($ocs as $oc){
+        if (preg_match('/^!(.*)$/', $oc, $match)) {
+          $oc= $match[1];
+          if (in_array($oc, $classes)) {
+            $found= false;
+          }
+        } else {
+          if (!in_array($oc, $classes)) {
+            $found= false;
+          }
+        }
+      }
+
+      if ($found) {
+        return $objectType;
+      }
+    }
+
+    return null;
+  }
+
+
+  function filterObjectType($dn, $classes)
+  {
+    // Walk thru classes and return on first match
+    $result= " ";
+
+    $objectType= $this->getObjectType($this->objectTypes, $classes);
+    if ($objectType) {
+      $this->objectDnMapping[$dn]= $objectType["objectClass"];
+      $result= "<img class='center' title='".LDAP::fix($dn)."' src='".$objectType["image"]."'>";
+      if (!isset($this->objectTypeCount[$objectType['label']])) {
+        $this->objectTypeCount[$objectType['label']]= 0;
+      }
+      $this->objectTypeCount[$objectType['label']]++;
+    }
+
+    return $result;
+  }
+
+
+  function filterActions($dn, $row, $classes)
+  {
+    // Do nothing if there's no menu defined
+    if (!isset($this->xmlData['actiontriggers']['action'])) {
+      return " ";
+    }
+
+    // Go thru all actions
+    $result= "";
+    $actions= $this->xmlData['actiontriggers']['action'];
+    foreach($actions as $action) {
+      // Skip the entry completely if there's no permission to execute it
+      if (!$this->hasActionPermission($action, $dn, $classes)) {
+        $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+        continue;
+      }
+
+      // Skip entry if the pseudo filter does not fit
+      if (isset($action['filter']) && preg_match('/^[a-z0-9_]+!?=[a-z0-9_]+$/i', $action['filter'])) {
+        list($fa, $fv)= explode('=', $action['filter']);
+        if (preg_match('/^(.*)!$/', $fa, $m)){
+          $fa= $m[1];
+          if (isset($this->entries[$row][$fa]) && $this->entries[$row][$fa][0] == $fv) {
+            $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+            continue;
+          }
+        } else {
+          if (!isset($this->entries[$row][$fa]) && !$this->entries[$row][$fa][0] == $fv) {
+            $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+            continue;
+          }
+        }
+      }
+
+
+      // If there's an objectclass definition and we don't have it
+      // add an empty picture here.
+      if (isset($action['objectclass'])){
+        $objectclass= $action['objectclass'];
+        if (preg_match('/^!(.*)$/', $objectclass, $m)){
+          $objectclass= $m[1];
+          if(in_array($objectclass, $classes)) {
+            $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+            continue;
+          }
+        } elseif (is_string($objectclass)) {
+          if(!in_array($objectclass, $classes)) {
+            $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+            continue;
+          }
+        } elseif (is_array($objectclass)) {
+          if(count(array_intersect($objectclass, $classes)) != count($objectclass)){
+            $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+            continue;
+          }
+        }
+      }
+
+      // Render normal entries as usual
+      if ($action['type'] == "entry") {
+        $label= $this->processElementFilter($action['label'], $this->entries[$row], $row);
+        $image= $this->processElementFilter($action['image'], $this->entries[$row], $row);
+        $result.="<input class='center' type='image' src='$image' title='$label' ".
+                 "name='listing_".$action['name']."_$row' style='padding:1px'>";
+      }
+
+      // Handle special types
+      if ($action['type'] == "copypaste" || $action['type'] == "snapshot") {
+
+        $objectType= $this->getObjectType($this->objectTypes, $this->entries[$row]['objectClass']);
+        $category= $class= null;
+        if ($objectType) {
+          $category= $objectType['category'];
+          $class= $objectType['class'];
+        }
+
+        if ($action['type'] == "copypaste") {
+          $copy = !isset($action['copy']) || $action['copy'] == "true";
+          $cut = !isset($action['cut']) || $action['cut'] == "true";
+          $result.= $this->renderCopyPasteActions($row, $this->entries[$row]['dn'], $category, $class,$copy,$cut);
+        } else {
+          $result.= $this->renderSnapshotActions($row, $this->entries[$row]['dn'], $category, $class);
+        }
+      }
+    }
+
+    return $result;
+  }
+
+
+  function filterDepartmentLink($row, $dn, $description)
+  {
+    $attr= $this->departments[$row]['sort-attribute'];
+    $name= $this->departments[$row][$attr];
+    if (is_array($name)){
+      $name= $name[0];
+    }
+    $result= sprintf("%s [%s]", $name, $description[0]);
+    return("<a href='?plug=".$_GET['plug']."&PID=$this->pid&act=department_$row' title='$dn'>$result</a>");
+  }
+
+
+  function filterLink()
+  {
+    $result= " ";
+
+    $row= func_get_arg(0);
+    $pid= $this->pid;
+    $dn= LDAP::fix(func_get_arg(1));
+    $params= array(func_get_arg(2));
+
+    // Collect sprintf params
+    for ($i = 3;$i < func_num_args();$i++) {
+      $val= func_get_arg($i);
+      if (is_array($val)){
+        $params[]= $val[0];
+        continue;
+      }
+      $params[]= $val;
+    }
+
+    $result= " ";
+    $trans= call_user_func_array("sprintf", $params);
+    if ($trans != "") {
+      return("<a href='?plug=".$_GET['plug']."&PID=$pid&act=listing_edit_$row' title='$dn'>$trans</a>");
+    }
+
+    return $result;
+  }
+
+
+  function renderNavigation()
+  {
+    $result= array();
+    $enableBack = true;
+    $enableRoot = true;
+    $enableHome = true;
+
+    $ui = get_userinfo();
+
+    /* Check if base = first available base */
+    $deps = $ui->get_module_departments($this->categories);
+
+    if(!count($deps) || $deps[0] == $this->filter->base){
+      $enableBack = false;
+      $enableRoot = false;
+    }
+
+    $listhead ="";
+
+    /* Check if we are in users home  department */
+    if(!count($deps) || $this->filter->base == get_base_from_people($ui->dn)){
+      $enableHome = false;
+    }
+
+    /* Draw root button */
+    if($enableRoot){
+      $result["ROOT"]= "<input class='center' type='image' src='images/lists/root.png' align='middle' ".
+                       "title='"._("Go to root department")."' name='ROOT' alt='"._("Root")."'>";
+    }else{
+      $result["ROOT"]= "<img src='images/lists/root_grey.png' class='center' alt='"._("Root")."'>";
+    }
+
+    /* Draw back button */
+    if($enableBack){
+      $result["BACK"]= "<input class='center' type='image' align='middle' src='images/lists/back.png' ".
+                       "title='"._("Go up one department")."' alt='"._("Up")."' name='BACK'>";
+    }else{
+      $result["BACK"]= "<img src='images/lists/back_grey.png' class='center' alt='"._("Up")."'>";
+    }
+
+    /* Draw home button */
+    if($enableHome){
+      $result["HOME"]= "<input class='center' type='image' align='middle' src='images/lists/home.png' ".
+                       "title='"._("Go to users 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' type='image' src='images/lists/reload.png' align='middle' ".
+                       "title='"._("Reload list")."' name='REFRESH' alt='"._("Submit")."'>";
+
+    return ($result);
+  }
+
+
+  function getAction()
+  {
+    // Do not do anything if this is not our PID, or there's even no PID available...
+    if(!isset($_REQUEST['PID']) || $_REQUEST['PID'] != $this->pid) {
+      return;
+    }
+
+    // Save position if set
+    if (isset($_POST['position_'.$this->pid]) && is_numeric($_POST['position_'.$this->pid])) {
+      $this->scrollPosition= $_POST['position_'.$this->pid];
+    }
+
+    $result= array("targets" => array(), "action" => "");
+
+    // Filter GET with "act" attributes
+    if (isset($_GET['act'])) {
+      $key= validate($_GET['act']);
+      $target= preg_replace('/^listing_[a-zA-Z_]+_([0-9]+)$/', '$1', $key);
+      if (isset($this->entries[$target]['dn'])) {
+        $result['action']= preg_replace('/^listing_([a-zA-Z_]+)_[0-9]+$/', '$1', $key);
+        $result['targets'][]= $this->entries[$target]['dn'];
+      }
+
+      // Drop targets if empty
+      if (count($result['targets']) == 0) {
+        unset($result['targets']);
+      }
+      return $result;
+    }
+
+    // Filter POST with "listing_" attributes
+    foreach ($_POST as $key => $prop) {
+
+      // Capture selections
+      if (preg_match('/^listing_selected_[0-9]+$/', $key)) {
+        $target= preg_replace('/^listing_selected_([0-9]+)$/', '$1', $key);
+        if (isset($this->entries[$target]['dn'])) {
+          $result['targets'][]= $this->entries[$target]['dn'];
+        }
+        continue;
+      }
+
+      // Capture action with target - this is a one shot
+      if (preg_match('/^listing_[a-zA-Z_]+_[0-9]+(|_x)$/', $key)) {
+        $target= preg_replace('/^listing_[a-zA-Z_]+_([0-9]+)(|_x)$/', '$1', $key);
+        if (isset($this->entries[$target]['dn'])) {
+          $result['action']= preg_replace('/^listing_([a-zA-Z_]+)_[0-9]+(|_x)$/', '$1', $key);
+          $result['targets']= array($this->entries[$target]['dn']);
+        }
+        break;
+      }
+
+      // Capture action without target
+      if (preg_match('/^listing_[a-zA-Z_]+(|_x)$/', $key)) {
+        $result['action']= preg_replace('/^listing_([a-zA-Z_]+)(|_x)$/', '$1', $key);
+        continue;
+      }
+    }
+
+    // Filter POST with "act" attributes -> posted from action menu
+    if (isset($_POST['act']) && $_POST['act'] != '') {
+      if (!preg_match('/^export.*$/', $_POST['act'])){
+        $result['action']= validate($_POST['act']);
+      }
+    }
+
+    // Drop targets if empty
+    if (count($result['targets']) == 0) {
+      unset($result['targets']);
+    }
+    return $result;
+  }
+
+
+  function renderActionMenu()
+  {
+    // Don't send anything if the menu is not defined
+    if (!isset($this->xmlData['actionmenu']['action'])){
+      return "";
+    }
+
+    // Array?
+    if (isset($this->xmlData['actionmenu']['action']['type'])){
+      $this->xmlData['actionmenu']['action']= array($this->xmlData['actionmenu']['action']);
+    }
+
+    // Load shortcut
+    $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")." <img ".
+             "border=0 class='center' src='images/lists/sort-down.png'></a>";
+
+    // Build ul/li list
+    $result.= $this->recurseActions($actions);
+
+    return "<div id='pulldown'>".$result."</li></ul><div>";
+  }
+
+
+  function recurseActions($actions)
+  {
+    global $class_mapping;
+    static $level= 2;
+    $result= "<ul class='level$level'>";
+    $separator= "";
+
+    foreach ($actions as $action) {
+
+      // Skip the entry completely if there's no permission to execute it
+      if (!$this->hasActionPermission($action, $this->filter->base)) {
+        continue;
+      }
+
+      // Skip entry if there're missing dependencies
+      if (isset($action['depends'])) {
+        $deps= is_array($action['depends'])?$action['depends']:array($action['depends']);
+        foreach($deps as $clazz) {
+          if (!isset($class_mapping[$clazz])){
+            continue 2;
+          }
+        }
+      }
+
+      // Fill image if set
+      $img= "";
+      if (isset($action['image'])){
+        $img= "<img border='0' class='center' src='".$action['image']."'> ";
+      }
+
+      if ($action['type'] == "separator"){
+        $separator= " style='border-top:1px solid #AAA' ";
+        continue;
+      }
+
+      // Dive into subs
+      if ($action['type'] == "sub" && isset($action['action'])) {
+        $level++;
+        if (isset($action['label'])){
+          $result.= "<li$separator><a href='#'>$img"._($action['label'])." <img border='0' src='images/forward-arrow.png'></a>";
+        }
+
+        // Ensure we've an array of actions, this enables sub menus with only one action.
+        if(isset($action['action']['type'])){
+          $action['action'] = array($action['action']);
+        }
+
+        $result.= $this->recurseActions($action['action'])."</li>";
+        $level--;
+        $separator= "";
+        continue;
+      }
+
+      // Render entry elseways
+      if (isset($action['label'])){
+        $result.= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"".$action['name']."\";mainform.submit();'>$img"._($action['label'])."</a></li>";
+      }
+
+      // Check for special types
+      switch ($action['type']) {
+        case 'copypaste':
+          $cut = !isset($action['cut']) || $action['cut'] != "false";
+          $copy = !isset($action['copy']) || $action['copy'] != "false";
+          $result.= $this->renderCopyPasteMenu($separator, $copy , $cut);
+          break;
+
+        case 'snapshot':
+          $result.= $this->renderSnapshotMenu($separator);
+          break;
+
+        case 'exporter':
+          $result.= $this->renderExporterMenu($separator);
+          break;
+
+        case 'daemon':
+          $result.= $this->renderDaemonMenu($separator);
+          break;
+      }
+
+      $separator= "";
+    }
+
+    $result.= "</ul>";
+    return $result;
+  }
+
+
+  function hasActionPermission($action, $dn, $classes= null)
+  {
+    $ui= get_userinfo();
+
+    if (isset($action['acl'])) {
+      $acls= $action['acl'];
+      if (!is_array($acls)) {
+        $acls= array($acls);
+      }
+
+      // Every ACL has to pass
+      foreach ($acls as $acl) {
+        $module= $this->categories;
+        $aclList= array();
+
+        // Replace %acl if available
+        if ($classes) {
+          $otype= $this->getObjectType($this->objectTypes, $classes);
+          $acl= str_replace('%acl', $otype['category']."/".$otype['class'], $acl);
+        }
+
+        // Split for category and plugins if needed
+        // match for "[rw]" style entries
+        if (preg_match('/^\[([rwcdm]+)\]$/', $acl, $match)){
+          $aclList= array($match[1]);
+        }
+
+        // match for "users[rw]" style entries
+        if (preg_match('/^([a-zA-Z0-9]+)\[([rwcdm]+)\]$/', $acl, $match)){
+          $module= $match[1];
+          $aclList= array($match[2]);
+        }
+
+        // match for "users/user[rw]" style entries
+        if (preg_match('/^([a-zA-Z0-9]+\/[a-zA-Z0-9]+)\[([rwcdm]+)\]$/', $acl, $match)){
+          $module= $match[1];
+          $aclList= array($match[2]);
+        }
+
+        // match "users/user[userPassword:rw(,...)*]" style entries
+        if (preg_match('/^([a-zA-Z0-9]+\/[a-zA-Z0-9]+)\[([a-zA-Z0-9]+:[rwcdm]+(,[a-zA-Z0-9]+:[rwcdm]+)*)\]$/', $acl, $match)){
+          $module= $match[1];
+          $aclList= explode(',', $match[2]);
+        }
+
+        // Walk thru prepared ACL by using $module
+        foreach($aclList as $sAcl) {
+          $checkAcl= "";
+
+          // Category or detailed permission?
+          if (strpos($module, '/') !== false) {
+            if (preg_match('/([a-zA-Z0-9]+):([rwcdm]+)/', $sAcl, $m) ) {
+              $checkAcl= $ui->get_permissions($dn, $module, $m[1]);
+              $sAcl= $m[2];
+            } else {
+              $checkAcl= $ui->get_permissions($dn, $module, '0');
+            }
+          } else {
+            $checkAcl= $ui->get_category_permissions($dn, $module);
+          }
+
+          // Split up remaining part of the acl and check if it we're
+          // allowed to do something...
+          $parts= str_split($sAcl);
+          foreach ($parts as $part) {
+            if (strpos($checkAcl, $part) === false){
+              return false;
+            }
+          }
+
+        }
+      }
+    }
+
+    return true;
+  }
+
+
+  function refreshBasesList()
+  {
+    global $config;
+    $ui= get_userinfo();
+
+    // Do some array munching to get it user friendly
+    $ids= $config->idepartments;
+    $d= $ui->get_module_departments($this->categories);
+    $k_ids= array_keys($ids);
+    $deps= array_intersect($d,$k_ids);
+
+    // Fill internal bases list
+    $this->bases= array();
+    foreach($k_ids as $department){
+      $this->bases[$department] = $ids[$department];
+    }
+
+    // Populate base selector if already present
+    if ($this->baseSelector && $this->baseMode) {
+      $this->baseSelector->setBases($this->bases);
+      $this->baseSelector->update(TRUE);
+    }
+  }
+
+
+  function getDepartments()
+  {
+    $departments= array();
+    $ui= get_userinfo();
+
+    // Get list of supported department types
+    $types = departmentManagement::get_support_departments();
+
+    // Load departments allowed by ACL
+    $validDepartments = $ui->get_module_departments($this->categories);
+
+    // Build filter and look in the LDAP for possible sub departments
+    // of current base
+    $filter= "(&(objectClass=gosaDepartment)(|";
+    $attrs= array("description", "objectClass");
+    foreach($types as $name => $data){
+      $filter.= "(objectClass=".$data['OC'].")";
+      $attrs[]= $data['ATTR'];
+    }
+    $filter.= "))";
+    $res= get_list($filter, $this->categories, $this->base, $attrs, GL_NONE);
+
+    // Analyze list of departments
+    foreach ($res as $department) {
+      if (!in_array($department['dn'], $validDepartments)) {
+        continue;
+      }
+
+      // Add the attribute where we use for sorting
+      $oc= null;
+      foreach(array_keys($types) as $type) {
+        if (in_array($type, $department['objectClass'])) {
+          $oc= $type;
+          break;
+        }
+      }
+      $department['sort-attribute']= $types[$oc]['ATTR'];
+
+      // Move to the result list
+      $departments[]= $department;
+    }
+
+    return $departments;
+  }
+
+
+  function renderCopyPasteMenu($separator, $copy= true, $cut= true)
+  {
+    // We can only provide information if we've got a copypaste handler
+    // instance
+    if(!(isset($this->copyPasteHandler) && is_object($this->copyPasteHandler))){
+      return "";
+    }
+
+    // Presets
+    $result= "";
+    $read= $paste= false;
+    $ui= get_userinfo();
+
+    // Switch flags to on if there's at least one category which allows read/paste
+    foreach($this->categories as $category){
+      $read= $read || preg_match('/r/', $ui->get_category_permissions($this->base, $category));
+      $paste= $paste || $ui->is_pasteable($this->base, $category) == 1;
+    }
+
+
+    // Draw entries that allow copy and cut
+    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='' border='0' class='center'> "._("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='' border='0' class='center'> "._("Cut")."</a></li>";
+        $separator= "";
+      }
+    }
+
+    // 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='' border='0' class='center'> "._("Paste")."</a></li>";
+      }else{
+        $result.= "<li$separator><a href='#'><img src='images/lists/paste-grey.png' alt='' border='0' class='center'> "._("Paste")."</a></li>";
+      }
+    }
+    
+    return($result);
+  }
+
+
+  function renderCopyPasteActions($row, $dn, $category, $class, $copy= true, $cut= true)
+  {
+    // We can only provide information if we've got a copypaste handler
+    // instance
+    if(!(isset($this->copyPasteHandler) && is_object($this->copyPasteHandler))){
+      return "";
+    }
+
+    // Presets
+    $ui = get_userinfo();
+    $result = "";
+
+    // 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'>";
+      }else{
+        $result.="<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+
+    // 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'>";
+      }else{
+        $result.="<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+
+    return($result);
+  }
+
+
+  function renderSnapshotMenu($separator)
+  {
+    // We can only provide information if we've got a snapshot handler
+    // instance
+    if(!(isset($this->snapshotHandler) && is_object($this->snapshotHandler))){
+      return "";
+    }
+
+    // Presets
+    $result = "";
+    $ui = get_userinfo();
+
+    if($this->snapshotHandler->enabled() && $ui->allow_snapshot_restore($this->base, $this->categories)){
+
+      // Check if there is something to restore
+      $restore= false;
+      foreach($this->snapshotHandler->getSnapshotBases() as $base){
+        $restore= $restore || count($this->snapshotHandler->getDeletedSnapshots($base)) > 0;
+      }
+
+      // Draw icons according to the restore flag
+      if($restore){
+        $result.= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"restore\";document.getElementById(\"exec_act\").click();'><img src='images/lists/restore.png' alt='' border='0' class='center'> "._("Restore snapshots")."</a></li>";
+      }else{
+        $result.= "<li$separator><a href='#'><img src='images/lists/restore_grey.png' alt='' border='0' class='center'> "._("Restore snapshots")."</a></li>";
+      }
+    }
+
+    return($result);
+  }
+
+
+  function renderExporterMenu($separator)
+  {
+    // Presets
+    $result = "";
+
+    // Draw entries
+    $result.= "<li$separator><a href='#'><img border='0' class='center' src='images/lists/export.png'> "._("Export list")." <img border='0' src='images/forward-arrow.png'></a><ul class='level3'>";
+
+    // Export CVS as build in exporter
+    foreach ($this->exporter as $action => $exporter) {
+      $result.= "<li><a href='#' onClick='document.getElementById(\"actionmenu\").value= \"$action\";document.getElementById(\"exec_act\").click();'><img border='0' class='center' src='".$exporter['image']."'> ".$exporter['label']."</a></li>";
+    }
+
+    // Finalize list
+    $result.= "</ul></li>";
+
+    return($result);
+  }
+
+
+  function renderSnapshotActions($row, $dn, $category, $class, $copy= true, $cut= true)
+  {
+    // We can only provide information if we've got a snapshot handler
+    // instance
+    if(!(isset($this->snapshotHandler) && is_object($this->snapshotHandler))){
+      return "";
+    }
+
+    // Presets
+    $result= "";
+    $ui = get_userinfo();
+
+    // Only act if enabled here
+    if($this->snapshotHandler->enabled()){
+
+      // Draw restore button
+      if ($ui->allow_snapshot_restore($dn, $category)){
+
+        // Do we have snapshots for this dn?
+        if($this->snapshotHandler->hasSnapshots($dn)){
+          $result.= "<input class='center' type='image' src='images/lists/restore.png' ".
+                     "alt='"._("Restore snapshot")."' name='listing_restore_$row' title='".
+                     _("Restore snapshot")."' style='padding:1px'>";
+        } else {
+          $result.= "<img src='images/lists/restore_grey.png' alt=' ' class='center' style='padding:1px'>";
+        }
+      }
+
+      // Draw snapshot button
+      if($ui->allow_snapshot_create($dn, $category)){
+          $result.= "<input class='center' type='image' src='images/snapshot.png' ".
+                     "alt='"._("Create snapshot")."' name='listing_snapshot_$row' title='".
+                     _("Create a new snapshot from this object")."' style='padding:1px'>";
+      }else{
+          $result.= "<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+
+    return($result);
+  }
+
+
+  function renderDaemonMenu($separator)
+  {
+    $result= "";
+
+    // If there is a daemon registered, draw the menu entries
+    if(class_available("DaemonEvent")){
+      $events= DaemonEvent::get_event_types_by_category($this->categories);
+      if(isset($events['BY_CLASS']) && count($events['BY_CLASS'])){
+        foreach($events['BY_CLASS'] as $name => $event){
+          $result.= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value=\"$name\";document.getElementById(\"exec_act\").click();'>".$event['MenuImage']." ".$event['s_Menu_Name']."</a></li>";
+          $separator= "";
+        }
+      }
+    }
+
+    return $result;
+  }
+
+
+  function getEntry($dn)
+  {
+    foreach ($this->entries as $entry) {
+      if (isset($entry['dn']) && strcasecmp($dn, $entry['dn']) == 0){
+        return $entry;
+      }
+    }
+    return null;
+  }
+
+
+  function getEntries()
+  {
+    return $this->entries;
+  }
+
+
+  function getType($dn)
+  {
+    if (isset($this->objectDnMapping[$dn])) {
+      return $this->objectDnMapping[$dn];
+    }
+    return null;
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/class_listingSortIterator.inc b/gosa-core/include/class_listingSortIterator.inc
new file mode 100644
index 0000000..ed956b6
--- /dev/null
+++ b/gosa-core/include/class_listingSortIterator.inc
@@ -0,0 +1,113 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_plugin.inc 13896 2009-07-07 07:06:37Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class listingSortIterator implements Iterator {
+  private $data;
+
+  public function __construct($data, $direction, $attribute, $type= "string") {
+    global $_sortAttribute;
+    global $_sortType;
+    $_sortAttribute= $attribute; 
+    $_sortType= $type; 
+
+    // Inline function to 
+    function attrSort($ao, $bo) {
+      global $_sortAttribute;
+      global $_sortType;
+
+      // Extract values from ao and bo
+      $a= $b= "";
+      if (isset($ao[$_sortAttribute])) {
+        $a= $ao[$_sortAttribute];
+        if (is_array($a)) {
+          $a= $a[0];
+        }
+      }
+      if (isset($bo[$_sortAttribute])) {
+        $b= $bo[$_sortAttribute];
+        if (is_array($b)) {
+          $b= $b[0];
+        }
+      }
+
+      // Take a look at the several types
+      switch ($_sortType) {
+        case 'string':
+          return strcoll($a, $b);
+
+        case 'integer':
+          return $b - $a;
+
+        case 'date':
+          if ($a == "") {
+            $a= "31.12.0000";
+          }
+          if ($b == "") {
+            $b= "31.12.0000";
+          }
+          list($d, $m, $y)= explode('.', $a);
+          $a= (int)sprintf("%04d%02d%02d", $y, $m, $d);
+          list($d, $m, $y)= explode('.', $b);
+          $b= (int)sprintf("%04d%02d%02d", $y, $m, $d);
+          return $b-$a;
+
+        // Sort for string by default
+        default:
+          return strcoll($a, $b);
+      }
+    }
+
+    // Sort for attribute
+    if ($attribute != "") {
+      uasort($data, "attrSort");
+    }
+
+    // Invert if direction is set
+    if ($direction) {
+      $this->data= array_reverse($data, true);
+    } else {
+      $this->data= $data;
+    }
+  }
+
+  function rewind() {
+    return reset($this->data);
+  }
+
+  function current() {
+    return current($this->data);
+  }
+
+  function key() {
+    return key($this->data);
+  }
+
+  function next() {
+    return next($this->data);
+  }
+
+  function valid() {
+    return key($this->data) !== null;
+  }
+}
+
+?>
diff --git a/gosa-core/include/class_log.inc b/gosa-core/include/class_log.inc
new file mode 100644
index 0000000..7e5b923
--- /dev/null
+++ b/gosa-core/include/class_log.inc
@@ -0,0 +1,128 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_log.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \brief   The logging base class
+  \author  Fabian Hickert <hickert at gonicus.de>
+  \version 2.6
+  \date    11.04.2007
+
+  This is the base class for the GOsa logging functionality.
+  All logging should lead to this class. 
+ */
+class log {
+
+  var $config;
+
+ /*! \brief logging constructor
+
+    \param action         One of these values (modify|create|remove|snapshot|copy)
+    \param objecttype     represents the current edited objecttype, like users/user
+    \param object         represents the current edited object dn
+    \param changes_array  An array containing names of all touched attributes
+    \param result         A status message, containing errors or success messages 
+
+    \sa log()
+   */
+  function log($action,$objecttype,$object,$changes_array = array(),$result = "")
+  {
+    if(!is_array($changes_array)){
+      trigger_error("log(string,string,string,array(),bool). Forth parameter must be an array.");
+      $changes_array = array();
+    }
+
+    $entry = array(); 
+    if(!session::global_is_set('config')){
+      $entry['user']= "unkown";
+    }else{
+
+      $this->config = session::global_get('config');
+      $ui           = get_userinfo(); 
+      $entry['user']= @$ui->dn;
+    }
+
+    /* Create string out of changes */
+    $changes  ="";
+    foreach($changes_array as $str ){
+      $changes .= $str.",";
+    }
+    $changes = preg_replace("/,$/","",$changes );
+    
+    /* Create data object */
+    $entry['timestamp'] = time();
+    $entry['action']    = $action;
+    $entry['objecttype']= $objecttype;
+    $entry['object']    = $object;
+    $entry['changes']   = $changes;
+    $entry['result']    = $result;
+
+    if(!isset($this->config) && empty($entry['user'])){
+      $entry['user']  = "unknown";
+    }
+
+    /* Check if all given values are valid */
+    global $config;
+    $msgs = @log::check($entry);
+    if(count($msgs)){
+      foreach($msgs as $msg){
+        trigger_error("Logging failed, reason was: ".$msg);
+        msg_dialog::display(_("Internal error"), sprintf(_("Logging failed: %s"), $msg), ERROR_DIALOG);
+      }
+    }else{
+      if(is_object($config) && preg_match("/true/i",$config->get_cfg_value("logging",""))){
+        $this->log_into_syslog($entry);
+      }
+    }
+  }
+
+
+  function check($entry = array())
+  {
+    $msgs = array();
+
+    if(!isset($entry['action']) || !in_array($entry['action'],array("modify","create","remove","copy","snapshot","view","security","debug"))){
+      $msgs[] = sprintf(_("Invalid option '%s' specified!"), $entry['action']);
+    }
+
+    if(!isset($entry['objecttype']) || empty($entry['objecttype'])){
+      $msgs[] = _("Specified objectType is empty or invalid!");
+    }
+  
+    return($msgs);
+  }
+
+   
+  /* This function is used to into the systems syslog */
+  function log_into_syslog($entry)
+  {
+    $str= "";
+    if (empty($entry['object']) && empty($entry['changes'])) {
+      $str = "(".$entry['action'].") ".$entry['objecttype'].": ".$entry['result'];
+    } else {
+      $str = "(".$entry['action'].") ".$entry['object']." of type ".$entry['objecttype']." ".$entry['changes'].": ".$entry['result'];
+    }
+    gosa_log($str);
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_management.inc b/gosa-core/include/class_management.inc
new file mode 100644
index 0000000..30f482e
--- /dev/null
+++ b/gosa-core/include/class_management.inc
@@ -0,0 +1,928 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_management.inc 15565 2010-02-02 07:01:48Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class management
+{
+  // Public 
+  public $config = null;
+  public $ui     = null;
+
+  // The plugin description
+  public $plugname      = "unconfigured";
+  public $plIcon        = "unconfigured";
+  public $plDescription = "unconfigured";
+  public $plHeadline    = "unconfigured";
+
+  // The currently used object(s) (e.g. in edit, removal)
+  public $dn = "";  // this is public due to some compatibility problems with class plugin..
+  protected $dns = array();
+
+  // The last used object(s).
+  protected $last_dn = "";
+  protected $last_dns = array();
+
+  // The common places the displayed objects are stored in. (e.g. array("ou=groups,",".."))
+  protected $storagePoints = array();
+
+  // The tab definitions to use for the current object.
+  protected $tabClass = "";         // e.g. usertabs
+  protected $tabType = "";          // e.g. USERTABS
+  protected $aclPlugin = "";        // e.g. generic
+  protected $aclCategory = "";      // e.g. users
+  protected $objectName = "";       // e.g. users
+
+  // The opened object.
+  protected $tabObject = null;
+  protected $dialogObject = null;
+
+  // The last opened object.
+  protected $last_tabObject = null;
+  protected $last_dialogObject = null;
+
+  // Whether to display the apply button or not
+  protected $displayApplyBtn = FALSE;
+
+  // Whether to display a header or not.
+  protected $skipHeader = false;
+
+  // Whether to display a footer or not.
+  protected $skipFooter = false;
+
+  // Copy&Paste handler
+  protected $cpHandler = null;
+
+  // Indicates that we want to paste objects right now.
+  protected $cpPastingStarted = FALSE;
+
+  // The Snapshot handler class.
+  protected $snapHandler = null;
+
+  // The listing handlers
+  private $headpage = null;
+  private $filter = null;
+
+  // A list of configured actions/events
+  protected $actions = array();
+
+  // Attributes managed by this plugin, can be used in post events;
+  public $attributes = array(); 
+
+  function  __construct(&$config,$ui,$plugname, $headpage)
+  {
+    $this->plugname = $plugname;
+    $this->headpage = $headpage;
+    $this->ui = $ui;
+    $this->config = $config;
+
+    if($this->cpHandler) $this->headpage->setCopyPasteHandler($this->cpHandler);
+    if($this->snapHandler) $this->headpage->setSnapshotHandler($this->snapHandler);
+
+    if(empty($this->plIcon)){
+      $this->plIcon = "plugins/".$plugname."/images/plugin.png";
+    }
+
+    // Register default actions
+    $this->registerAction("new",    "newEntry");
+    $this->registerAction("edit",   "editEntry");
+    $this->registerAction("apply",  "applyChanges");
+    $this->registerAction("save",   "saveChanges");
+    $this->registerAction("cancel", "cancelEdit");
+    $this->registerAction("cancelDelete", "cancelEdit");
+    $this->registerAction("remove", "removeEntryRequested");
+    $this->registerAction("removeConfirmed", "removeEntryConfirmed");
+
+    $this->registerAction("copy",   "copyPasteHandler");
+    $this->registerAction("cut",    "copyPasteHandler");
+    $this->registerAction("paste",  "copyPasteHandler");
+
+    $this->registerAction("snapshot",    "createSnapshotDialog");
+    $this->registerAction("restore",     "restoreSnapshotDialog");
+    $this->registerAction("saveSnapshot","saveSnapshot");
+    $this->registerAction("restoreSnapshot","restoreSnapshot");
+    $this->registerAction("cancelSnapshot","closeDialogs");
+  }
+
+  /*! \brief  Execute this plugin
+   *          Handle actions/events, locking, snapshots, dialogs, tabs,...
+   */
+  function execute()
+  {
+    // Ensure that html posts and gets are kept even if we see a 'Entry islocked' dialog.
+    $vars = array('/^act$/','/^listing/','/^PID$/','/^FILTER_PID$/');
+    session::set('LOCK_VARS_TO_USE',$vars);
+
+    /* Display the copy & paste dialog, if it is currently open */
+    $ret = $this->copyPasteHandler("",array());
+    if($ret){
+      return($this->getHeader().$ret);
+    }
+
+    // Update filter
+    if ($this->filter) {
+      $this->filter->update();
+      session::global_set(get_class($this)."_filter", $this->filter);
+      session::set('autocomplete', $this->filter);
+      if (!$this->filter->isValid()){
+        msg_dialog::display(_("Filter error"), _("The filter is incomplete!"), ERROR_DIALOG);
+      }
+    }
+
+    // Handle actions (POSTs and GETs)
+    $str = $this->handleActions($this->detectPostActions());
+    if($str) return($this->getHeader().$str);
+
+    // Open single dialog objects
+    if(is_object($this->dialogObject)){
+      if(method_exists($this->dialogObject,'save_object')) $this->dialogObject->save_object(); 
+      if(method_exists($this->dialogObject,'execute')){
+        $display = $this->dialogObject->execute(); 
+        $display.= $this->_getTabFooter();
+        return($this->getHeader().$display);
+      } 
+    }
+
+    // Display tab object.
+    if($this->tabObject instanceOf tabs || $this->tabObject instanceOf multi_plug){
+#      $this->tabObject->save_object();
+      $display = $this->tabObject->execute();
+      $display.= $this->_getTabFooter();
+      return($this->getHeader().$display);
+    }
+
+    // Set current restore base for snapshot handling.
+    if(is_object($this->snapHandler)){
+      $bases = array();
+      foreach($this->storagePoints as $sp){
+        $bases[] = $sp.$this->headpage->getBase();
+      }
+
+      // No bases specified? Try base  
+      if(!count($bases)) $bases[] = $this->headpage->getBase();
+
+      $this->snapHandler->setSnapshotBases($bases);
+    }
+    
+    // Display list
+    return($this->renderList());
+  }
+  
+  function renderList()
+  {
+    $this->headpage->update();
+    $display = $this->headpage->render();
+    return($this->getHeader().$display);
+  }
+
+  function getHeadpage()
+  {
+    return($this->headpage);
+  }
+
+  function getFilter()
+  {
+    return($this->filter);
+  }
+
+  /*! \brief  Generates the plugin header which is displayed whenever a tab object is 
+   *           opened.
+   */
+  protected function getHeader()
+  {
+    if($this->skipHeader) return("");
+
+    if (get_object_info() != ""){
+      $display= print_header(get_template_path($this->plIcon),_($this->plDescription),
+          "<img alt=\"\" class=\"center\" src=\"".get_template_path('images/lists/locked.png')."\">".
+          LDAP::fix(get_object_info()));
+    } else {
+      $display= print_header(get_template_path($this->plIcon),_($this->plDescription));
+    }
+    return($display);
+  }
+
+
+  /*! \brief  Generates the footer which is used whenever a tab object is 
+   *           displayed.
+   */
+  protected function _getTabFooter()
+  {
+    // Do not display tab footer for non tab objects 
+    if(!($this->tabObject instanceOf tabs || $this->tabObject instanceOf multi_plug)){
+      return("");
+    }
+
+    // Check if there is a dialog opened - We don't need any buttons in this case. 
+    if($this->tabObject->by_object[$this->tabObject->current]){
+      $current = $this->tabObject->by_object[$this->tabObject->current];  
+      if(isset($current->dialog) && (is_object($current->dialog) || $current->dialog)){
+        return("");
+      }
+    }
+
+    // Skip footer if requested;
+    if($this->skipFooter) return("");
+
+    // In case an of locked entry, we may have opened a read-only tab.
+    $str = "";
+    if(isset($this->tabObject->read_only) && $this->tabObject->read_only == TRUE){
+      $str.= "<p style=\"text-align:right\">
+        <input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">
+        </p>";
+      return($str);
+    }else{
+
+      // Display ok, (apply) and cancel buttons
+      $str.= "<p style=\"text-align:right\">\n";
+      $str.= "<input type=submit name=\"edit_finish\" style=\"width:80px\" value=\"".msgPool::okButton()."\">\n";
+      $str.= " \n";
+      if($this->displayApplyBtn){
+        $str.= "<input type=submit name=\"edit_apply\" value=\"".msgPool::applyButton()."\">\n";
+        $str.= " \n";
+      }
+      $str.= "<input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $str.= "</p>";
+    }
+    return($str);
+  }
+
+
+  /*! \brief  Initiates the removal for the given entries
+   *           and displays a confirmation dialog.
+   *      
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  protected function removeEntryRequested($action="",$target=array(),$all=array())
+  {
+    $disallowed = array();
+    $this->dns = array();
+
+    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$target,"Entry removel requested!");
+
+    // Check permissons for each target 
+    foreach($target as $dn){
+      $acl = $this->ui->get_permissions($dn, $this->aclCategory."/".$this->aclPlugin);
+      if(preg_match("/d/",$acl)){
+        $this->dns[] = $dn;
+      }else{
+        $disallowed[] = $dn;
+      }
+    }
+    if(count($disallowed)){
+      msg_dialog::display(_("Permission"),msgPool::permDelete($disallowed),INFO_DIALOG);
+    }
+
+    // We've at least one entry to delete.
+    if(count($this->dns)){
+
+      // check locks
+      if ($user= get_multiple_locks($this->dns)){
+        return(gen_locked_message($user,$this->dns));
+      }
+
+      // Add locks
+      $dns_names = array();
+      foreach($this->dns as $dn){
+        $dns_names[] =LDAP::fix($dn);
+      }
+      add_lock ($this->dns, $this->ui->dn);
+
+      // Display confirmation dialog.
+      $smarty = get_smarty();
+      $smarty->assign("info", msgPool::deleteInfo($dns_names,_($this->objectName)));
+      $smarty->assign("multiple", true);
+      return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
+    }
+  }  
+
+
+  /*! \brief  Object removal was confirmed, now remove the requested entries. 
+   *      
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function removeEntryConfirmed($action="",$target=array(),$all=array(),
+      $altTabClass="",$altTabType="",$altAclCategory="")
+  {
+    $tabType = $this->tabType;
+    $tabClass = $this->tabClass;
+    $aclCategory = $this->aclCategory;
+    if(!empty($altTabClass)) $tabClass = $altTabClass;
+    if(!empty($altTabType)) $tabType = $altTabType;
+    if(!empty($altAclCategory)) $aclCategory = $altAclCategory;
+
+    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$target,"Entry removel confirmed!");
+
+    foreach($this->dns as $key => $dn){
+
+      // Check permissions, are we allowed to remove this object? 
+      $acl = $this->ui->get_permissions($dn, $this->aclCategory."/".$this->aclPlugin);
+      if(preg_match("/d/",$acl)){
+
+        // Delete the object
+        $this->dn = $dn;
+        $this->tabObject= new $tabClass($this->config,$this->config->data['TABS'][$tabType], $this->dn, $aclCategory, true, true);
+        $this->tabObject->set_acl_base($this->dn);
+        $this->tabObject->parent = &$this;
+        $this->tabObject->delete ();
+
+        // Remove the lock for the current object.
+        del_lock($this->dn);        
+      } else {
+        msg_dialog::display(_("Permission error"), msgPool::permDelete(), ERROR_DIALOG);
+        new log("security","groups/".get_class($this),$dn,array(),"Tried to trick deletion.");
+      }
+    }
+
+    // Cleanup
+    $this->remove_lock();
+    $this->closeDialogs();
+  }
+
+
+  /*! \brief  Detects actions/events send by the ui
+   *           and the corresponding targets.
+   */
+  function detectPostActions()
+  {
+    if(!is_object($this->headpage)){
+      trigger_error("No valid headpage given....!");
+      return(array());
+    }
+    $action= $this->headpage->getAction();
+    if(isset($_POST['edit_apply']))  $action['action'] = "apply";    
+    if(isset($_POST['edit_finish'])) $action['action'] = "save";    
+    if(isset($_POST['edit_cancel'])) $action['action'] = "cancel";    
+    if(isset($_POST['delete_confirmed'])) $action['action'] = "removeConfirmed";   
+    if(isset($_POST['delete_cancel'])) $action['action'] = "cancelDelete";   
+
+    // Detect Snapshot actions
+    if(isset($_POST['CreateSnapshot'])) $action['action'] = "saveSnapshot";   
+    if(isset($_POST['CancelSnapshot'])) $action['action'] = "cancelSnapshot";   
+    foreach($_POST as $name => $value){
+      $once =TRUE;
+      if(preg_match("/^RestoreSnapShot_/",$name) && $once){
+        $once = FALSE;
+        $entry = base64_decode(preg_replace("/^RestoreSnapShot_([^_]*)_[xy]$/i","\\1",$name));
+        $action['action'] = "restoreSnapshot";
+        $action['targets'] = array($entry);
+      }
+    }
+
+    return($action);
+  }
+
+
+  /*! \brief  Calls the registered method for a given action/event.
+   */
+  function handleActions($action)
+  {
+    // Start action  
+    if(isset($this->actions[$action['action']])){
+      $func = $this->actions[$action['action']];
+      if(!isset($action['targets']))$action['targets']= array(); 
+      return($this->$func($action['action'],$action['targets'],$action));
+    }
+  } 
+
+
+  /*! \brief  Opens the snapshot creation dialog for the given target.
+   *      
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function createSnapshotDialog($action="",$target=array(),$all=array())
+  {
+    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$target,"Snaptshot creation initiated!");
+
+    foreach($target as $entry){
+      if(!empty($entry) && $this->ui->allow_snapshot_create($entry,$this->aclCategory)){
+        $this->dialogObject = new SnapShotDialog($this->config,$entry,$this);
+        $this->dialogObject->aclCategories = array($this->aclCategory);
+        $this->dialogObject->parent = &$this;
+
+      }else{
+        msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to create a snapshot for %s."),$entry),
+            ERROR_DIALOG);
+      }
+    }
+  }
+
+
+  /*! \brief  Creates a snapshot new entry - This method is called when the somebody
+   *           clicks 'save' in the "Create snapshot dialog" (see ::createSnapshotDialog).
+   *      
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function saveSnapshot($action="",$target=array(),$all=array())
+  { 
+    if(!is_object($this->dialogObject)) return;
+    $this->dialogObject->save_object();
+    $msgs = $this->dialogObject->check();
+    if(count($msgs)){
+      foreach($msgs as $msg){
+        msg_dialog::display(_("Error"), $msg, ERROR_DIALOG);
+      }
+    }else{
+      $this->dn =  $this->dialogObject->dn;
+      $this->snapHandler->create_snapshot( $this->dn,$this->dialogObject->CurrentDescription);
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dn,"Snaptshot created!");
+      $this->closeDialogs();
+    }
+  }
+
+
+  /*! \brief  Restores a snapshot object.
+   *          The dn of the snapshot entry has to be given as ['target'] parameter.  
+   *      
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function restoreSnapshot($action="",$target=array(),$all=array())
+  {
+    $entry = array_pop($target);
+    if(!empty($entry) && $this->ui->allow_snapshot_restore($entry,$this->aclCategory)){
+      $this->snapHandler->restore_snapshot($entry);
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dn,"Snaptshot restored!");
+      $this->closeDialogs();
+    }else{
+      msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),
+          ERROR_DIALOG);
+    }
+  }
+
+
+  /*! \brief  Displays the "Restore snapshot dialog" for a given target. 
+   *          If no target is specified, open the restore removed object 
+   *           dialog.
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function restoreSnapshotDialog($action="",$target=array(),$all=array())
+  {
+    // Set current restore base for snapshot handling.
+    if(is_object($this->snapHandler)){
+      $bases = array();
+      foreach($this->storagePoints as $sp){
+        $bases[] = $sp.$this->headpage->getBase();
+      }
+    }
+
+    // No bases specified? Try base  
+    if(!count($bases)) $bases[] = $this->headpage->getBase();
+
+    // No target, open the restore removed object dialog.
+    if(!count($target)){ 
+      $entry = $this->headpage->getBase();
+      if(!empty($entry) && $this->ui->allow_snapshot_restore($entry,$this->aclCategory)){
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$entry,"Snaptshot restoring initiated!");
+        $this->dialogObject = new SnapShotDialog($this->config,$entry,$this);
+        $this->dialogObject->set_snapshot_bases($bases);
+        $this->dialogObject->display_all_removed_objects = true;
+        $this->dialogObject->display_restore_dialog = true;
+        $this->dialogObject->parent = &$this;
+      }else{
+        msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),
+            ERROR_DIALOG);
+      } 
+    }else{
+
+      // Display the restore points for a given object.
+      $entry = array_pop($target);
+      if(!empty($entry) && $this->ui->allow_snapshot_restore($entry,$this->aclCategory)){
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$entry,"Snaptshot restoring initiated!");
+        $this->dialogObject = new SnapShotDialog($this->config,$entry,$this);
+        $this->dialogObject->set_snapshot_bases($bases);
+        $this->dialogObject->display_restore_dialog = true;
+        $this->dialogObject->parent = &$this;
+      }else{
+        msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),
+            ERROR_DIALOG);
+      } 
+    }
+  }
+
+
+  /*! \brief  This method intiates the object creation.
+   *          
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    /* To handle mutliple object types overload this method.
+     * ...
+     *   registerAction('newUser', 'newEntry');
+     *   registerAction('newGroup','newEntry');
+     * ... 
+     * 
+     * function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory)
+     * {
+     *   switch($action){
+     *     case 'newUser' : {
+     *       mangement::newEntry($action,$target,$all,"usertabs","USERTABS","users");
+     *     }
+     *     case 'newGroup' : {
+     *       mangement::newEntry($action,$target,$all,"grouptabs","GROUPTABS","groups");
+     *     }
+     *   }
+     * }
+     **/ 
+    $tabType = $this->tabType;
+    $tabClass = $this->tabClass;
+    $aclCategory = $this->aclCategory;
+    if(!empty($altTabClass)) $tabClass = $altTabClass;
+    if(!empty($altTabType)) $tabType = $altTabType;
+    if(!empty($altAclCategory)) $aclCategory = $altAclCategory;
+
+    // Check locking & lock entry if required 
+    $this->displayApplyBtn = FALSE;
+    $this->dn = "new";
+    $this->is_new = TRUE;
+    $this->is_single_edit = FALSE;
+    $this->is_multiple_edit = FALSE;
+
+    set_object_info($this->dn);
+
+    // Open object.
+    if(empty($tabClass) || empty($tabType)){
+      // No tab type defined
+    }else{
+      if (isset($this->config->data['TABS'][$tabType])) {
+        $this->tabObject= new $tabClass($this->config,$this->config->data['TABS'][$tabType], $this->dn, $aclCategory);
+        $this->tabObject->set_acl_base($this->headpage->getBase());
+        $this->tabObject->parent = &$this;
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dn,"Create new entry initiated!");
+      } else {
+        msg_dialog::display(_("Error"), sprintf(_("No tab declaration for '%s' found in your configuration file. Cannot create plugin instance!"), $tabType), ERROR_DIALOG);
+      }
+    }
+  }
+
+
+  /*! \brief  This method opens an existing object or a list of existing objects to be edited. 
+   *                  
+   * 
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    /* To handle mutliple object types overload this method.
+     * ...
+     *   registerAction('editUser', 'editEntry');
+     *   registerAction('editGroup','editEntry');
+     * ... 
+     * 
+     * function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory)
+     * {
+     *   switch($action){
+     *     case 'editUser' : {
+     *       mangement::editEntry($action,$target,$all,"usertabs","USERTABS","users");
+     *     }
+     *     case 'editGroup' : {
+     *       mangement::editEntry($action,$target,$all,"grouptabs","GROUPTABS","groups");
+     *     }
+     *   }
+     * }
+     **/
+
+    // Do not create a new tabObject while there is already one opened,
+    //  the user may have just pressed F5 to reload the page.
+    if(is_object($this->tabObject)){
+      return;
+    }
+ 
+    $tabType = $this->tabType;
+    $tabClass = $this->tabClass;
+    $aclCategory = $this->aclCategory;
+    if(!empty($altTabClass)) $tabClass = $altTabClass;
+    if(!empty($altTabType)) $tabType = $altTabType;
+    if(!empty($altAclCategory)) $aclCategory = $altAclCategory;
+
+    // Single edit - we only got one object dn.
+    if(count($target) == 1){
+      $this->displayApplyBtn = TRUE;
+      $this->is_new = FALSE;
+      $this->is_single_edit = TRUE;
+      $this->is_multiple_edit = FALSE;
+
+      // Get the dn of the object and creates lock
+      $this->dn = array_pop($target);
+      set_object_info($this->dn);
+      $user = get_lock($this->dn);
+      if ($user != ""){
+        return(gen_locked_message ($user, $this->dn,TRUE));
+      }
+      add_lock ($this->dn, $this->ui->dn);
+
+      // Open object.
+      if(empty($tabClass) || empty($tabType)){
+        trigger_error("We can't edit any object(s). 'tabClass' or 'tabType' is empty!");
+      }else{
+        $tab = $tabClass;
+        $this->tabObject= new $tab($this->config,$this->config->data['TABS'][$tabType], $this->dn,$aclCategory);
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dn,"Edit entry initiated!");
+        $this->tabObject->set_acl_base($this->dn);
+        $this->tabObject->parent = &$this;
+      }
+    }else{
+
+      // We've multiple entries to edit.
+      $this->is_new = FALSE;
+      $this->is_singel_edit = FALSE;
+      $this->is_multiple_edit = TRUE;
+
+      // Open multiple edit handler.
+      if(empty($tabClass) || empty($tabType)){
+        trigger_error("We can't edit any object(s). 'tabClass' or 'tabType' is empty!");
+      }else{
+        $this->dns = $target;
+        $tmp = new multi_plug($this->config,$tabClass,$this->config->data['TABS'][$tabType],
+            $this->dns,$this->headpage->getBase(),$aclCategory);
+
+        // Check for locked entries
+        if ($tmp->entries_locked()){
+          return($tmp->display_lock_message());
+        }
+
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Edit entry initiated!");
+
+        // Now lock entries.
+        if($tmp->multiple_available()){
+          $tmp->lock_entries($this->ui->dn);
+          $this->tabObject = $tmp;
+          set_object_info($this->tabObject->get_object_info());
+        }
+      }
+    }
+  }
+
+
+  /*! \brief  Save object modifications and closes dialogs (returns to object listing).
+   *          - Calls '::check' to validate the given input.
+   *          - Calls '::save' to save back object modifications (e.g. to ldap).
+   *          - Calls '::remove_locks' to remove eventually created locks.
+   *          - Calls '::closeDialogs' to return to the object listing.
+   */
+  protected function saveChanges()
+  {
+    if($this->tabObject instanceOf tabs || $this->tabObject instanceOf multi_plug){
+      $this->tabObject->save_object();
+      $msgs = $this->tabObject->check();
+      if(count($msgs)){
+        msg_dialog::displayChecks($msgs); 
+        return("");
+      }else{
+        $this->tabObject->save();
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Entry saved!");
+        $this->remove_lock();
+        $this->closeDialogs();
+      }
+    }elseif($this->dialogObject instanceOf plugin){
+      $this->dialogObject->save_object();
+      $msgs = $this->dialogObject->check();
+      if(count($msgs)){
+        msg_dialog::displayChecks($msgs); 
+        return("");
+      }else{
+        $this->dialogObject->save();
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Entry saved!");
+        $this->remove_lock();
+        $this->closeDialogs();
+      }
+    }
+  }
+
+
+  /*! \brief  Save object modifications and keep dialogs opened. 
+   *          - Calls '::check' to validate the given input.
+   *          - Calls '::save' to save back object modifications (e.g. to ldap).
+   */
+  protected function applyChanges()
+  {
+    if($this->tabObject instanceOf tabs || $this->tabObject instanceOf multi_plug){
+      $this->tabObject->save_object();
+      $msgs = $this->tabObject->check();
+      if(count($msgs)){
+        msg_dialog::displayChecks($msgs); 
+        return("");
+      }else{
+        $this->tabObject->save();
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$this->dns,"Modifications applied!");
+        $this->tabObject->re_init();
+      }
+    }
+  }
+
+
+  /*! \brief  This method closes dialogs
+   *           and cleans up the cached object info and the ui.
+   */
+  protected function closeDialogs()
+  {
+    $this->last_dn = $this->dn;
+    $this->last_dns = $this->dns;
+    $this->last_tabObject = $this->tabObject;
+    $this->last_dialogObject = $this->dialogObject;
+    $this->dn = "";
+    $this->dns = array();
+    $this->tabObject = null;
+    $this->dialogObject = null;
+    $this->skipFooter = FALSE;
+    set_object_info();
+  }
+
+
+  /*! \brief  Editing an object was caneled. 
+   *          Close dialogs/tabs and remove locks.
+   */
+  protected function cancelEdit()
+  {
+    $this->remove_lock();
+    $this->closeDialogs();
+  }
+
+
+  /*! \brief  Every click in the list user interface sends an event
+   *           here can we connect those events to a method. 
+   *          eg.  ::registerEvent('new','createUser')
+   *          When the action/event new is send, the method 'createUser' 
+   *           will be called.
+   */
+  function registerAction($action,$target)
+  {
+    $this->actions[$action] = $target;
+  }
+
+
+  /*! \brief  Removes ldap object locks created by this class.
+   *          Whenever an object is edited, we create locks to avoid 
+   *           concurrent modifications.
+   *          This locks will automatically removed here.
+   */
+  function remove_lock()
+  {
+    if(!empty($this->dn) && $this->dn != "new"){
+      del_lock($this->dn);
+    }
+    if(count($this->dns)){
+      del_lock($this->dns);
+    }
+  }
+
+
+  /*! \brief  This method is used to queue and process copy&paste actions. 
+   *          Allows to copy, cut and paste mutliple entries at once.
+   *  @param  String  'action'  The name of the action which was the used as trigger.
+   *  @param  Array   'target'  A list of object dns, which should be affected by this method.
+   *  @param  Array   'all'     A combination of both 'action' and 'target'.
+   */
+  function copyPasteHandler($action="",$target=array(),$all=array(), 
+      $altTabClass ="", $altTabType = "", $altAclCategory="",$altAclPlugin="")
+  {
+    // Return without any actions while copy&paste handler is disabled.
+    if(!is_object($this->cpHandler))  return("");
+
+    $tabType = $this->tabType;
+    $tabClass = $this->tabClass;
+    $aclCategory = $this->aclCategory;
+    $aclPlugin = $this->aclPlugin;
+    if(!empty($altTabClass)) $tabClass = $altTabClass;
+    if(!empty($altTabType)) $tabType = $altTabType;
+    if(!empty($altAclCategory)) $aclCategory = $altAclCategory;
+    if(!empty($altAclPlugin)) $aclPlugin = $altAclPlugin;
+
+    // Save user input
+    $this->cpHandler->save_object();
+
+    // Add entries to queue 
+    if($action == "copy" || $action == "cut"){
+      $this->cpHandler->cleanup_queue();
+      foreach($target as $dn){
+        if($action == "copy" && $this->ui->is_copyable($dn,$aclCategory,$aclPlugin)){
+          $this->cpHandler->add_to_queue($dn,"copy",$tabClass,$tabType,$aclCategory,$this);
+          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$dn,"Entry copied!");
+        }
+        if($action == "cut" && $this->ui->is_cutable($dn,$aclCategory,$aclPlugin)){
+          $this->cpHandler->add_to_queue($dn,"cut",$tabClass,$tabType,$aclCategory,$this);
+          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$dn,"Entry cutted!");
+        }
+      }
+    }
+
+    // Initiate pasting
+    if($action == "paste"){
+      $this->cpPastingStarted = TRUE;
+    }
+
+    // Display any c&p dialogs, eg. object modifications required before pasting.
+    if($this->cpPastingStarted && $this->cpHandler->entries_queued()){
+      $this->cpHandler->SetVar("base",$this->headpage->getBase());
+      $data = $this->cpHandler->execute();
+      if(!empty($data)){
+        return($data);
+      }
+    }
+
+    // Automatically disable pasting process since there is no entry left to paste.
+    if(!$this->cpHandler->entries_queued()){
+      $this->cpPastingStarted = FALSE;
+    }
+    return("");
+  }
+
+
+  function setFilter($str) {
+    $this->filter = $str;
+  }
+
+
+  function postcreate() {
+    $this->_handlePostEvent('POSTCREATE');
+  }
+  function postmodify(){
+    $this->_handlePostEvent('POSTMODIFY');
+  }
+  function postremove(){
+    $this->_handlePostEvent('POSTREMOVE');
+  }
+
+  function _handlePostEvent($type)
+  {
+
+    /* Find postcreate entries for this class */
+    $command= $this->config->search(get_class($this), $type,array('menu', 'tabs'));
+    if ($command != ""){
+
+      /* Walk through attribute list */
+      foreach ($this->attributes as $attr){
+        if (!is_array($this->$attr)){
+          $add_attrs[$attr] = $this->$attr;
+        }
+      }
+      $add_attrs['dn']=$this->dn;
+
+      $tmp = array();
+      foreach($add_attrs as $name => $value){
+        $tmp[$name] =  strlen($name);
+      }
+      arsort($tmp);
+
+      /* Additional attributes */
+      foreach ($tmp as $name => $len){
+        $value = $add_attrs[$name];
+        $command= str_replace("%$name", "$value", $command);
+      }
+
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Execute");
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+              $command, "Result: ".$str);
+        }
+      } else {
+        $message= msgPool::cmdnotfound($type, get_class($this));
+        msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
+      }
+    }
+  }
+
+  function is_modal_dialog()
+  {
+    return(is_object($this->tabObject) || is_object($this->dialogObject));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_msg_dialog.inc b/gosa-core/include/class_msg_dialog.inc
new file mode 100644
index 0000000..cf49a32
--- /dev/null
+++ b/gosa-core/include/class_msg_dialog.inc
@@ -0,0 +1,202 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_msg_dialog.inc 13261 2008-12-11 14:39:09Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define("INFO_DIALOG"		, 10001);
+define("WARNING_DIALOG"		, 10002);
+define("ERROR_DIALOG"		, 10003);
+define("CONFIRM_DIALOG"		, 10004);
+define("OK_CANCEL_DIALOG"	, 10005);
+define("FATAL_ERROR_DIALOG"	, 10006);
+
+class msg_dialog
+{
+	private $s_Title 	= "Undefined";
+	private $s_Message 	= "Undefined";
+	private $i_Type 	= INFO_DIALOG ;
+	private $i_ID		= 0;
+	private $a_Trace	= array();
+
+	public function __construct($s_title,$s_message,$i_type)
+	{
+		global $config;
+
+		if(empty($s_message)) return;
+	
+		if(!in_array($i_type,array(INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG,FATAL_ERROR_DIALOG,OK_CANCEL_DIALOG))){
+			trigger_error("Invalid msg_dialog type.");
+			$i_type = INFO_DIALOG;
+		}
+
+		if((!session::is_set('errorsAlreadyPosted')) || !is_array(session::get('errorsAlreadyPosted'))){
+			session::set('errorsAlreadyPosted',array());
+		}
+
+		$errorsAlreadyPosted = session::get('errorsAlreadyPosted');
+		if(!isset($errorsAlreadyPosted[$s_title.$s_message])){
+			$errorsAlreadyPosted[$s_title.$s_message] = 0;
+		}
+		$errorsAlreadyPosted[$s_title.$s_message]++;
+
+		if($errorsAlreadyPosted[$s_title.$s_message] <=1  ){
+
+			$this->i_ID 	 = preg_replace("/[^0-9]*/","",microtime()); 
+			$this->s_Title	 = $s_title;
+			$this->s_Message = $s_message;
+			$this->i_Type	 = $i_type;
+
+			/* Append trace information, only if error messages are enabled */
+			if(	isset($config) && 
+				is_object($config) && 
+				$config->get_cfg_value("displayerrors") == "true" ){
+				$this->a_Trace	 = debug_backtrace();
+			}
+			if(!session::is_set('msg_dialogs')){
+				session::set('msg_dialogs',array());
+			}
+			if($this->i_Type == FATAL_ERROR_DIALOG){
+				restore_error_handler();
+				error_reporting(E_ALL);
+				echo $this->execute();
+			}else{
+				$msg_dialogs   = session::get('msg_dialogs');
+				$msg_dialogs[] = $this;
+				session::set('msg_dialogs',$msg_dialogs);
+			}
+		}
+		session::set('errorsAlreadyPosted',$errorsAlreadyPosted);
+	}
+
+
+	public static function display($s_title,$s_message,$i_type = INFO_DIALOG)
+	{
+		new msg_dialog($s_title,$s_message,$i_type);	
+	}
+
+
+	public static function displayChecks($messages)
+	{
+		/* Assemble the message array to a plain string */
+		foreach ($messages as $error){
+			msg_dialog::display(_("Error"), $error, ERROR_DIALOG);
+		}
+	}
+
+
+	public function get_ID()
+	{
+		return($this->i_ID);
+	}
+
+	public function execute()
+	{
+		if($this->i_Type == FATAL_ERROR_DIALOG)	{
+			$display = 
+				"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
+				\"http://www.w3.org/TR/html4/transitional.dtd\">
+				<html><head>
+				<title>GOsa startup failed</title>
+				</head><body>
+				<table style='width:100%; border:2px solid red;' summary=''>
+				<tr><td style='vertical-align:top;padding:10px'>
+				<img src='images/error.png' alt='{t}Error{/t}'>
+				</td><td style='width:100%'>
+				<b>".$this->s_Title."</b><br>
+				".$this->s_Message."<br><br>
+				"._("Please fix the above error and reload the page.")."
+				</td></tr>
+				</table></body></html>";
+			return($display);;
+		}else{
+
+			$smarty = get_smarty();
+			$smarty->assign("s_Trace"	,print_a($this->a_Trace,TRUE));
+			$smarty->assign("i_TraceCnt",count($this->a_Trace));
+			$smarty->assign("i_Type",$this->i_Type);
+			$smarty->assign("s_Message",$this->s_Message);
+			$smarty->assign("s_Title",$this->s_Title);
+			$smarty->assign("i_ID",$this->i_ID);
+			$smarty->assign("frame",false);
+			$smarty->assign("JS",session::global_get('js'));
+			$smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']));
+			return($smarty->fetch(get_template_path('msg_dialog.tpl')));
+		}
+	}
+
+	
+	public function is_confirmed()
+	{
+		if(isset($_POST['MSG_OK'.$this->i_ID])){
+			return(TRUE);
+		}else{
+			return(FALSE);
+		}
+	}
+	
+
+	public static function get_dialogs()
+	{
+		$return  ="";
+		$dialog_ids= "";
+
+		$seen = "";
+		if(isset($_POST['closed_msg_dialogs'])){
+#			$seen = $_POST['closed_msg_dialogs'];
+		}
+
+		if(session::is_set('msg_dialogs') && is_array(session::get('msg_dialogs')) && count(session::get('msg_dialogs'))){
+
+			/* Get frame one */
+			$smarty = get_smarty();
+			$smarty->assign("frame", true);
+			$smarty->assign("IE",preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']));
+			$return = $smarty->fetch(get_template_path('msg_dialog.tpl'));
+
+			if(!session::global_get('js')){
+				$dialog = array_pop(session::get('msg_dialogs'));
+				$return.= $dialog->execute();
+			}else{
+				$msg_dialogs = session::get('msg_dialogs');
+				foreach($msg_dialogs as $key => $dialog){
+
+					if(preg_match("/".$dialog->get_ID()."/",$seen)){
+						unset($msg_dialogs[$key]);
+					}else{
+						$return.= $dialog->execute();
+						$dialog_ids= $dialog->get_ID().",".$dialog_ids;
+					}
+					unset($msg_dialogs[$key]);
+				}
+				session::set('msg_dialogs',$msg_dialogs);
+			}
+			$dialog_ids = preg_replace("/,$/","",$dialog_ids);
+
+			$return .= "</div>";
+			$return .="<input type='hidden' style='width:400px;' name='pending_msg_dialogs' id='pending_msg_dialogs' value='".$dialog_ids."'>";
+			$return .="<input type='hidden' style='width:400px;' name='closed_msg_dialogs' id='closed_msg_dialogs' value=''>";
+			$return .="<input type='hidden' style='width:400px;' name='current_msg_dialogs' id='current_msg_dialogs' value=''>";
+			$return .="<input type='hidden' style='width:700px;' name='js_debug' id='js_debug'>";
+		}
+		return($return);
+	}
+
+}
+?>
diff --git a/gosa-core/include/class_multi_plug.inc b/gosa-core/include/class_multi_plug.inc
new file mode 100644
index 0000000..5601df8
--- /dev/null
+++ b/gosa-core/include/class_multi_plug.inc
@@ -0,0 +1,429 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_multi_plug.inc 14136 2009-08-26 08:02:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+
+Data structure : 
+================ 
+  |->o_tab                      <-- dummy object, collects HTML posts, displays ui 
+  |->a_handles                  <-- tab object for each given dn
+     |->tab object for dn 1 
+     |->tab object for dn 2
+      ...
+     |->tab object for dn n
+
+
+Other functions implemented:
+============================
+
+CLASS tab
+  - multiple_support_available()  Check if there is at least one plugin with 
+                                  enabled multiple edit support
+  - enable_multiple_support()     Enable multiple edit, for this tab.
+  
+CLASS plugin
+  - enable_multiple_support()     Enable multiple support for this plugin.
+  - init_multiple_support()       Init summy object, to preset some values.
+  - multiple_execute()            Display dummy object ui.
+  - multiple_save_object()        Get posted values in multiple edit mode.
+  - multiple_check()              Check values specified in dummy object.
+  - get_multi_edit_values()       Get values changed from dummy object.
+  - set_multi_edit_values()       Set values collected with get_multi_edit_values.
+                                  to all objects currently edited.
+
+
+Process:
+========
+
+multi_plug::multi_plug()
+  |->o_tab = new tab()                      #Initialize ui handle
+  |
+  |->handles
+  | |->handles[] = new tab()                #Initialize objects we want to edit at once
+  |
+  |->o_tab->enable_multiple_support()       #Enable multiple support for ui handle
+  |->detect_multiple_used_attributes()      #Update ui handle with some default values
+    |->handles[]
+      |->by_object->get_multi_init_values() #Get attributes from all handles
+    |->o_tab
+      |->by_object->init_multiple_support() #Assign values to ui handle
+  |
+  |->execute()                              #Display ui
+  | |->o_tab->execute()
+      |->by_object->multiple_execute()
+  |
+  |->check()                                #Check given values
+    |->o_tab->check()
+      |->by_object->multiple_check()
+  |
+  |->save_object()                          #Save posts 
+    |->o_tab->save_object()
+      |->by_object->multiple_save_object()
+  |
+  |->save()                                 #Save collected values 
+    |->populate_values()                    #Populate values to all handles
+      |->o_tab->get_multi_edit_values()     #Get values to populate
+      |->handles->set_multi_edit_values()   #Set values 
+    |->handles->save()                      #Save handles
+  
+
+
+
+Using this class: 
+=================
+  Simple Example:
+
+    $dn   = array(dn1,dn2,dn3);
+    $tmp  = new multi_plug($config,"usertabs",$config->data['TABS']['USERTABS'],$dn);
+    echo $tmp->execute();
+
+  $tmp can now be used like the normal tab class, execute, save_object ...
+  
+  To enable multipe edit for a specific plugin, 
+  just set the plugin variable 'multiple_support' to true:
+
+    var $multiple_support = TRUE;
+
+  If plugin::multiple_support is true, the member function 
+  multiple_execute() will be called and displayed, NOT execute().
+
+  (I will put this in the wiki, later. This are just notes for me.)
+  
+*/
+
+
+/*! \brief   Handles multiple edits for a given set of dns.
+    \author  Fabian Hickert
+    \version 1.01
+    \date    2007/12/07
+
+    This class edits multiple tab objects at once. 
+    1. There is a dummy tab object initialized that collects the user input.
+    2. All given objects specified by '$dn' will be initialized and the collected
+     data from the dummy object will be populated to them.
+ */
+class multi_plug
+{
+  /* Tab handler for each given dn entry */
+	public $a_handles = array();
+
+  /* Dummy handler which collects the data */
+  private $o_tab     = NULL;  
+
+  public $dn      = array();
+  public $config  = NULL;
+  private $s_class= "";
+  public $current = "";
+  public $by_object = array();
+  public $by_name = array();
+
+  /*! \brief    Creates a multi_plug object
+     @param   object  $config GOsa Configuration object
+     @param   string  $class  The class name of the tab we want to edit. e.g. usertabs
+     @param   string  $tab    The config tab name e.g. USERTABS 
+     @param   array   $dns    The object dns we want to edit.
+     @return  object  multi_plug
+   */
+  public function __construct($config,$class,$tab,$dns,$acl_base,$acl_category)
+  {
+    if(!count($dns)){
+      return;
+    }
+
+    $this->dn       = $dns;
+    $this->config   = $config;
+    $this->s_class  = $class;
+
+    /* Initialize collector object 
+     * Used to display the ui and to collect the user input.
+     */
+    $this->o_tab    = new $class($config,$tab,"new",$acl_category, TRUE, TRUE);
+    $this->o_tab->set_acl_base($acl_base);
+    $this->by_object = &$this->o_tab->by_object;
+    $this->by_name   = &$this->o_tab->by_name;
+    $this->current   = &$this->o_tab->current;
+
+    /* Check if the specified tab object supports multiple edits 
+     */
+    if($this->o_tab->multiple_support_available()){
+
+      /* Enable multiple actions for the collector object 
+       */ 
+      $this->o_tab->enable_multiple_support();
+
+      /* Initialize the objects we want to edit at once 
+       */
+      foreach($dns as $dn){
+        $obj = new $class($config,$tab,$dn,$acl_category, TRUE, TRUE);
+        $obj->set_acl_base($acl_base);
+        $this->a_handles[] = $obj;
+      }
+    }
+
+    /* Detect attributes used by all plugins and set 
+     *  those values as default in edit handle 
+     */
+    $this->detect_multiple_used_attributes();
+  }
+
+
+  /*! \brief    Combine two ldap result arrays. 
+   * @param     array   $base   Base array 
+   * @param     array   $add    Array to add
+   * @returns   array   Combination of $base and $add
+   */  
+  private function array_combine($base,$add)
+  {
+
+    foreach($add as $key => $attr) {
+      if(!is_numeric($key)){
+  
+        if(!is_array($add[$key])){
+          $add[$key] = array('count' => 1,$add[$key]);
+        }
+
+        if(!isset($base[$key])){
+          $base[$key] = $add[$key]; 
+        }else{
+
+          if(!isset($base[$key]['count'])){
+            $base[$key]['count'] = count($base[$key]);
+          }
+
+          if(!isset($add[$key]['count'])){
+            $add[$key]['count'] = count($add[$key]);
+          }
+          for($i=0;$i<$add[$key]['count'];$i++){
+            if(!in_array($add[$key][$i],$base[$key])){
+              $base[$key][] = $add[$key][$i];
+              $base[$key]['count']++;
+            }
+          }
+        }
+      }
+    }
+    return($base);
+  }
+
+
+  /*! \brief    Intersect two ldap result arrays/Inner join of two ldap result arrays
+   * @param     array   $base   Base array 
+   * @param     array   $minus  Array number two
+   * @returns   array   Result intersection
+   */  
+  private function array_intersect($base,$minus)
+  {
+    foreach($base as $key => $entry){
+      if(is_numeric($key) || !isset($minus[$key])){
+        unset($base[$key]);
+      }elseif(gettype($base[$key]) != gettype($minus[$key])){
+        unset($base[$key]);
+      }elseif(is_string($base[$key]) && $base[$key]!=$minus[$key]){
+        unset($base[$key]);
+      }elseif(is_array($base[$key])){
+        $tmp = array();
+          if(!isset($base[$key]['count'])){
+            $base[$key]['count'] = count($base[$key]);
+          }
+        for($i = 0 ; $i < $base[$key]['count'] ; $i ++){
+          if(isset($base[$key][$i]) && in_array($base[$key][$i],$minus[$key])){
+            $tmp[] = $base[$key][$i];
+          }
+        }
+        if(count($tmp)){
+          $tmp['count'] = count($tmp);
+          $base[$key] = $tmp;
+        }else{
+          unset($base[$key]);
+        }
+      }
+    }
+    return($base);
+  }
+
+  
+  /*! \brief    Detect values that are used in all edited objects.
+   */  
+  private function detect_multiple_used_attributes()
+  {
+    foreach($this->o_tab->by_object as $name => $plug){
+
+      if(empty($name))    continue;
+
+      $attrs = array();
+      $all   = array();
+      foreach($this->a_handles as $hid => $handle){
+        $h_attrs = $this->a_handles[$hid]->by_object[$name]->get_multi_init_values();
+        if(count($attrs) == 0){
+          $attrs = $h_attrs;
+        }else{
+          $attrs = $this->array_intersect($attrs,$h_attrs);
+        }
+        $all = $this->array_combine($all,$h_attrs);
+      }
+      $this->o_tab->by_object[$name]->init_multiple_support($attrs,$all);
+    }
+  }
+
+
+  /*! \brief    Returns the edit ui for multiple edit.
+     @return    string  HTML User interface for given tab object.
+   */
+  public function execute()
+  {
+    $str = $this->o_tab->execute();
+    return($str);
+  }
+
+
+  /*! \brief    Checks if one of the objects we want to edit is locked. 
+     @return    boolean   Returns TRUE if at least one entry is locked, else false.
+   */
+  public function entries_locked()
+  {
+    $ui = get_userinfo();
+    foreach($this->dn as $dn){
+      if(get_lock($dn) != ""){
+        return(TRUE);
+      }
+    }
+    return(FALSE);
+  }
+
+
+  /*! \brief    Generates a lock message that can be displayed if an entry is locked.
+     @return    string  Returns a list of locked entries 
+   */
+  public function display_lock_message()
+  {
+    $ui = get_userinfo();
+    $lock_msg = "";
+    $lock_msg.=  gen_locked_message ($ui->dn, $this->dn);
+    return($lock_msg);
+  }
+
+
+  /*! \brief    Locks all currently managed objects (array $this->dn) 
+     @return    boolean   Returns TRUE
+   */
+  public function lock_entries($uid)
+  {
+    foreach($this->dn as $dn)
+    add_lock($dn,$uid);
+    return(TRUE);
+  }
+
+
+  /*! \brief    Checks if the given tab object supports multiple edit.
+     @return    boolean   Returns TRUE if the given tab objects supports multiple edit else FALSE.
+   */
+  public function multiple_available()
+  { 
+    if(isset($this->o_tab) && is_object($this->o_tab)){
+      return($this->o_tab->multiple_support_available());
+    }else{
+      return(FALSE);
+    }
+  }
+
+
+  /*! \brief    Sets the currently active tab. The tab that will be displayed by $this->execute(). 
+   */
+  public function set_active_tab($str)
+  {
+    $this->current = $str;
+  }
+
+
+  /*! \brief    Returns the object info string, that can be displayed in the tab header.
+      @return   string  Returns an information string, containing the list of currently edited dns.
+   */
+  public function get_object_info()
+  {
+    return(_("You are currently editing mutliple entries."));
+  }
+
+
+  /*! \brief    Handles all HTML posts from the dummy tab object. 
+   */
+  public function save_object()
+  {
+    $this->o_tab->save_object(); 
+  }
+
+
+  /*! \brief    Checks if the values fetched by $this->save_object() are valid.
+      @param    array Returns an array containig all error messages.
+   */
+  public function check()
+  {
+    $messages = $this->o_tab->check();
+    return($messages);
+  }
+
+
+  /*! \brief    Currently not implemented, later be used to trigger password changes. 
+      @param    boolean Returns TRUE if a password change is needed.
+   */
+  public function password_change_needed()
+  {
+    foreach($this->a_handles as $i_id => $o_handle){
+      if($o_handle->password_change_needed() && isset($o_handle->by_object['user'])){
+        new msg_dialog(_("Password reset"),_("The user password was resetted, please set a new password value!"),WARNING_DIALOG);
+        change_password ($o_handle->dn, "",0, $o_handle->by_object['user']->pw_storage);
+      }
+    }
+    return(FALSE);
+  }
+
+
+  /*! \brief    Populate all collected values to the target tab objects ($this->o_handles)
+   */
+  public function populate_values()
+  {
+    if($this->multiple_available() && is_array($this->a_handles)){
+      foreach($this->o_tab->by_object as $name => $obj){
+
+        $values = $this->o_tab->by_object[$name]->get_multi_edit_values();
+        foreach($this->a_handles as $i_id => $o_handle){
+          $this->a_handles[$i_id]->by_object[$name]->set_multi_edit_values($values);
+        }
+      }
+    }
+  }
+
+
+  /*! \brief    Save all edited tab objects ($this->o_handles). 
+   */
+  public function save()
+  {
+    if($this->multiple_available() && is_array($this->a_handles)){
+      $this->populate_values();
+      foreach($this->a_handles as $i_id => $o_handle){
+        $o_handle->save();
+      }
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_plugin.inc b/gosa-core/include/class_plugin.inc
new file mode 100644
index 0000000..fd75541
--- /dev/null
+++ b/gosa-core/include/class_plugin.inc
@@ -0,0 +1,2148 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_plugin.inc 15705 2010-02-25 08:26:11Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \brief   The plugin base class
+  \author  Cajus Pollmeier <pollmeier at gonicus.de>
+  \version 2.00
+  \date    24.07.2003
+
+  This is the base class for all plugins. It can be used standalone or
+  can be included by the tabs class. All management should be done 
+  within this class. Extend your plugins from this class.
+ */
+
+class plugin
+{
+  /*!
+    \brief Reference to parent object
+
+    This variable is used when the plugin is included in tabs
+    and keeps reference to the tab class. Communication to other
+    tabs is possible by 'name'. So the 'fax' plugin can ask the
+    'userinfo' plugin for the fax number.
+
+    \sa tab
+   */
+  var $parent= NULL;
+
+  /*!
+    \brief Configuration container
+
+    Access to global configuration
+   */
+  var $config= NULL;
+
+  /*!
+    \brief Mark plugin as account
+
+    Defines whether this plugin is defined as an account or not.
+    This has consequences for the plugin to be saved from tab
+    mode. If it is set to 'FALSE' the tab will call the delete
+    function, else the save function. Should be set to 'TRUE' if
+    the construtor detects a valid LDAP object.
+
+    \sa plugin::plugin()
+   */
+  var $is_account= FALSE;
+  var $initially_was_account= FALSE;
+
+  /*!
+    \brief Mark plugin as template
+
+    Defines whether we are creating a template or a normal object.
+    Has conseqences on the way execute() shows the formular and how
+    save() puts the data to LDAP.
+
+    \sa plugin::save() plugin::execute()
+   */
+  var $is_template= FALSE;
+  var $ignore_account= FALSE;
+  var $is_modified= FALSE;
+
+  /*!
+    \brief Represent temporary LDAP data
+
+    This is only used internally.
+   */
+  var $attrs= array();
+
+  /* Keep set of conflicting plugins */
+  var $conflicts= array();
+
+  /* Save unit tags */
+  var $gosaUnitTag= "";
+  var $skipTagging= FALSE;
+
+  /*!
+    \brief Used standard values
+
+    dn
+   */
+  var $dn= "";
+  var $uid= "";
+  var $sn= "";
+  var $givenName= "";
+  var $acl= "*none*";
+  var $dialog= FALSE;
+  var $snapDialog = NULL;
+
+  /* attribute list for save action */
+  var $attributes= array();
+  var $objectclasses= array();
+  var $is_new= TRUE;
+  var $saved_attributes= array();
+
+  var $acl_base= "";
+  var $acl_category= "";
+  var $read_only = FALSE; // Used when the entry is opened as "readonly" due to locks.
+
+  /* This can be set to render the tabulators in another stylesheet */
+  var $pl_notify= FALSE;
+
+  /* Object entry CSN */
+  var $entryCSN         = "";
+  var $CSN_check_active = FALSE;
+
+  /* This variable indicates that this class can handle multiple dns at once. */
+  var $multiple_support = FALSE;
+  var $multi_attrs      = array();
+  var $multi_attrs_all  = array(); 
+
+  /* This aviable indicates, that we are currently in multiple edit handle */
+  var $multiple_support_active = FALSE; 
+  var $selected_edit_values = array();
+  var $multi_boxes = array();
+
+  /*! \brief plugin constructor
+
+    If 'dn' is set, the node loads the given 'dn' from LDAP
+
+    \param dn Distinguished name to initialize plugin from
+    \sa plugin()
+   */
+  function plugin (&$config, $dn= NULL, $object= NULL)
+  {
+    /* Configuration is fine, allways */
+    $this->config= &$config;	
+    $this->dn= $dn;
+
+    // Ensure that we've a valid acl_category set.
+    if(empty($this->acl_category)){
+      $tmp = $this->plInfo();
+      if (isset($tmp['plCategory'])) {
+        $c = key($tmp['plCategory']);
+        if(is_numeric($c)){
+          $c = $tmp['plCategory'][0];
+        }
+        $this->acl_category = $c."/";
+      }
+    }
+
+    /* Handle new accounts, don't read information from LDAP */
+    if ($dn == "new"){
+      return;
+    }
+
+    /* Check if this entry was opened in read only mode */
+    if(isset($_POST['open_readonly'])){
+      if(session::global_is_set("LOCK_CACHE")){
+        $cache = &session::get("LOCK_CACHE");
+        if(isset($cache['READ_ONLY'][$this->dn])){
+          $this->read_only = TRUE;
+        }
+      }
+    }
+
+    /* Save current dn as acl_base */
+    $this->acl_base= $dn;
+
+    /* Get LDAP descriptor */
+    if ($dn !== NULL){
+
+      /* Load data to 'attrs' and save 'dn' */
+      if ($object !== NULL){
+        $this->attrs= $object->attrs;
+      } else {
+        $ldap= $this->config->get_ldap_link();
+        $ldap->cat ($dn);
+        $this->attrs= $ldap->fetch();
+      }
+
+      /* Copy needed attributes */
+      foreach ($this->attributes as $val){
+        $found= array_key_ics($val, $this->attrs);
+        if ($found != ""){
+          $this->$val= $found[0];
+        }
+      }
+
+      /* gosaUnitTag loading... */
+      if (isset($this->attrs['gosaUnitTag'][0])){
+        $this->gosaUnitTag= $this->attrs['gosaUnitTag'][0];
+      }
+
+      /* Set the template flag according to the existence of objectClass
+         gosaUserTemplate */
+      if (isset($this->attrs['objectClass'])){
+        if (in_array_ics ("gosaUserTemplate", $this->attrs['objectClass'])){
+          $this->is_template= TRUE;
+          @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+              "found", "Template check");
+        }
+      }
+
+      /* Is Account? */
+      $found= TRUE;
+      foreach ($this->objectclasses as $obj){
+        if (preg_match('/top/i', $obj)){
+          continue;
+        }
+        if (!isset($this->attrs['objectClass']) || !in_array_ics ($obj, $this->attrs['objectClass'])){
+          $found= FALSE;
+          break;
+        }
+      }
+      if ($found){
+        $this->is_account= TRUE;
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+            "found", "Object check");
+      }
+
+      /* Prepare saved attributes */
+      $this->saved_attributes= $this->attrs;
+      foreach ($this->saved_attributes as $index => $value){
+        if (is_numeric($index)){
+          unset($this->saved_attributes[$index]);
+          continue;
+        }
+
+        if (!in_array_ics($index, $this->attributes) && strcasecmp('objectClass', $index)){
+          unset($this->saved_attributes[$index]);
+          continue;
+        }
+
+        if (isset($this->saved_attributes[$index][0])){
+          if(!isset($this->saved_attributes[$index]["count"])){
+            $this->saved_attributes[$index]["count"] = count($this->saved_attributes[$index]);
+          }
+          if($this->saved_attributes[$index]["count"] == 1){
+            $tmp= $this->saved_attributes[$index][0];
+            unset($this->saved_attributes[$index]);
+            $this->saved_attributes[$index]= $tmp;
+            continue;
+          }
+        }
+        unset($this->saved_attributes["$index"]["count"]);
+      }
+
+      if(isset($this->attrs['gosaUnitTag'])){
+        $this->saved_attributes['gosaUnitTag'] = $this->attrs['gosaUnitTag'][0];
+      }
+    }
+
+    /* Save initial account state */
+    $this->initially_was_account= $this->is_account;
+  }
+
+
+  /*! \brief Generates the html output for this node
+   */
+  function execute()
+  {
+    /* This one is empty currently. Fabian - please fill in the docu code */
+    session::global_set('current_class_for_help',get_class($this));
+
+    /* Reset Lock message POST/GET check array, to prevent perg_match errors*/
+    session::set('LOCK_VARS_TO_USE',array());
+    session::set('LOCK_VARS_USED_GET',array());
+    session::set('LOCK_VARS_USED_POST',array());
+    session::set('LOCK_VARS_USED_REQUEST',array());
+  }
+
+  /*! \brief Removes object from parent
+   */
+  function remove_from_parent()
+  {
+    /* include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Get current objectClasses in order to add the required ones */
+    $ldap->cat($this->dn);
+    $tmp= $ldap->fetch ();
+    $oc= array();
+    if (isset($tmp['objectClass'])){
+      $oc= $tmp['objectClass'];
+      unset($oc['count']);
+    }
+
+    /* Remove objectClasses from entry */
+    $ldap->cd($this->dn);
+    $this->attrs= array();
+    $this->attrs['objectClass']= array_remove_entries_ics($this->objectclasses,$oc);
+
+    /* Unset attributes from entry */
+    foreach ($this->attributes as $val){
+      $this->attrs["$val"]= array();
+    }
+
+    /* Unset account info */
+    $this->is_account= FALSE;
+
+    /* Do not write in plugin base class, this must be done by
+       children, since there are normally additional attribs,
+       lists, etc. */
+    /*
+       $ldap->modify($this->attrs);
+     */
+  }
+
+
+  /*! \brief Save HTML posted data to object 
+   */
+  function save_object()
+  {
+    /* Update entry CSN if it is empty. */
+    if(empty($this->entryCSN) && $this->CSN_check_active){
+      $this->entryCSN = getEntryCSN($this->dn);
+    }
+
+    /* Save values to object */
+    foreach ($this->attributes as $val){
+      if ($this->acl_is_writeable($val) && isset ($_POST["$val"])){
+        /* Check for modifications */
+        if (get_magic_quotes_gpc()) {
+          $data= stripcslashes($_POST["$val"]);
+        } else {
+          $data= $this->$val = $_POST["$val"];
+        }
+        if ($this->$val != $data){
+          $this->is_modified= TRUE;
+        }
+    
+        /* Okay, how can I explain this fix ... 
+         * In firefox, disabled option fields aren't selectable ... but in IE you can select these fileds. 
+         * So IE posts these 'unselectable' option, with value = chr(194) 
+         * chr(194) seems to be the   in between the ...option> </option.. because there is no value=".." specified in these option fields  
+         * This   was added for W3c compliance, but now causes these ... ldap errors ... 
+         * So we set these Fields to ""; a normal empty string, and we can check these values in plugin::check() again ...
+         */
+        if(isset($data[0]) && $data[0] == chr(194)) {
+          $data = "";  
+        }
+        $this->$val= $data;
+      }
+    }
+  }
+
+
+  /*! \brief Save data to LDAP, depending on is_account we save or delete */
+  function save()
+  {
+    /* include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Save all plugins */
+    $this->entryCSN = "";
+
+    /* Start with empty array */
+    $this->attrs= array();
+
+    /* Get current objectClasses in order to add the required ones */
+    $ldap->cat($this->dn);
+    
+    $tmp= $ldap->fetch ();
+
+    $oc= array();
+    if (isset($tmp['objectClass'])){
+      $oc= $tmp["objectClass"];
+      $this->is_new= FALSE;
+      unset($oc['count']);
+    } else {
+      $this->is_new= TRUE;
+    }
+
+    /* Load (minimum) attributes, add missing ones */
+    $this->attrs['objectClass']= gosa_array_merge($oc,$this->objectclasses);
+
+    /* Copy standard attributes */
+    foreach ($this->attributes as $val){
+      if ($this->$val != ""){
+        $this->attrs["$val"]= $this->$val;
+      } elseif (!$this->is_new) {
+        $this->attrs["$val"]= array();
+      }
+    }
+
+    /* Handle tagging */
+    $this->tag_attrs($this->attrs);
+  }
+
+
+  function cleanup()
+  {
+    foreach ($this->attrs as $index => $value){
+      
+      /* Convert arrays with one element to non arrays, if the saved
+         attributes are no array, too */
+      if (is_array($this->attrs[$index]) && 
+          count ($this->attrs[$index]) == 1 &&
+          isset($this->saved_attributes[$index]) &&
+          !is_array($this->saved_attributes[$index])){
+          
+        $tmp= $this->attrs[$index][0];
+        $this->attrs[$index]= $tmp;
+      }
+
+      /* Remove emtpy arrays if they do not differ */
+      if (is_array($this->attrs[$index]) &&
+          count($this->attrs[$index]) == 0 &&
+          !isset($this->saved_attributes[$index])){
+          
+        unset ($this->attrs[$index]);
+        continue;
+      }
+
+      /* Remove single attributes that do not differ */
+      if (!is_array($this->attrs[$index]) &&
+          isset($this->saved_attributes[$index]) &&
+          !is_array($this->saved_attributes[$index]) &&
+          $this->attrs[$index] == $this->saved_attributes[$index]){
+
+        unset ($this->attrs[$index]);
+        continue;
+      }
+
+      /* Remove arrays that do not differ */
+      if (is_array($this->attrs[$index]) && 
+          isset($this->saved_attributes[$index]) &&
+          is_array($this->saved_attributes[$index])){
+          
+        if (!array_differs($this->attrs[$index],$this->saved_attributes[$index])){
+          unset ($this->attrs[$index]);
+          continue;
+        }
+      }
+    }
+
+    /* Update saved attributes and ensure that next cleanups will be successful too */
+    foreach($this->attrs as $name => $value){
+      $this->saved_attributes[$name] = $value;
+    }
+  }
+
+  /*! \brief Check formular input */
+  function check()
+  {
+    $message= array();
+
+    /* Skip if we've no config object */
+    if (!isset($this->config) || !is_object($this->config)){
+      return $message;
+    }
+
+    /* Find hooks entries for this class */
+    $command= $this->config->search(get_class($this), "CHECK", array('menu', 'tabs'));
+
+    if ($command != ""){
+
+      if (!check_command($command)){
+        $message[]= msgPool::cmdnotfound("CHECK", get_class($this));
+      } else {
+
+        /* Generate "ldif" for check hook */
+        $ldif= "dn: $this->dn\n";
+        
+        /* ... objectClasses */
+        foreach ($this->objectclasses as $oc){
+          $ldif.= "objectClass: $oc\n";
+        }
+        
+        /* ... attributes */
+        foreach ($this->attributes as $attr){
+          if ($this->$attr == ""){
+            continue;
+          }
+          if (is_array($this->$attr)){
+            foreach ($this->$attr as $val){
+              $ldif.= "$attr: $val\n";
+            }
+          } else {
+              $ldif.= "$attr: ".$this->$attr."\n";
+          }
+        }
+
+        /* Append empty line */
+        $ldif.= "\n";
+
+        /* Feed "ldif" into hook and retrieve result*/
+        $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w"));
+        $fh= proc_open($command, $descriptorspec, $pipes);
+        if (is_resource($fh)) {
+          fwrite ($pipes[0], $ldif);
+          fclose($pipes[0]);
+          
+          $result= stream_get_contents($pipes[1]);
+          if ($result != ""){
+            $message[]= $result;
+          }
+          
+          fclose($pipes[1]);
+          fclose($pipes[2]);
+          proc_close($fh);
+        }
+      }
+
+    }
+
+    /* Check entryCSN */
+    if($this->CSN_check_active){
+      $current_csn = getEntryCSN($this->dn);
+      if($current_csn != $this->entryCSN && !empty($this->entryCSN) && !empty($current_csn)){
+        $this->entryCSN = $current_csn;
+        $message[] = _("The object has changed since opened in GOsa. All changes that may be done by others get lost if you save this entry!");
+      }
+    }
+    return ($message);
+  }
+
+  /* Adapt from template, using 'dn' */
+  function adapt_from_template($dn, $skip= array())
+  {
+    /* Include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Load requested 'dn' to 'attrs' */
+    $ldap->cat ($dn);
+    $this->attrs= $ldap->fetch();
+
+    /* Walk through attributes */
+    foreach ($this->attributes as $val){
+
+      /* Skip the ones in skip list */
+      if (in_array($val, $skip)){
+        continue;
+      }
+
+      if (isset($this->attrs["$val"][0])){
+
+        /* If attribute is set, replace dynamic parts: 
+           %sn, %givenName and %uid. Fill these in our local variables. */
+        $value= $this->attrs["$val"][0];
+
+        foreach (array("sn", "givenName", "uid") as $repl){
+          if (preg_match("/%$repl/i", $value)){
+            $value= preg_replace ("/%$repl/i", $this->parent->$repl, $value);
+          }
+        }
+        $this->$val= $value;
+      }
+    }
+
+    /* Is Account? */
+    $found= TRUE;
+    foreach ($this->objectclasses as $obj){
+      if (preg_match('/top/i', $obj)){
+        continue;
+      }
+      if (!in_array_ics ($obj, $this->attrs['objectClass'])){
+        $found= FALSE;
+        break;
+      }
+    }
+    if ($found){
+      $this->is_account= TRUE;
+    }
+  }
+
+  /* \brief Indicate whether a password change is needed or not */
+  function password_change_needed()
+  {
+    return FALSE;
+  }
+
+
+  /*! \brief Show header message for tab dialogs */
+  function show_enable_header($button_text, $text, $disabled= FALSE)
+  {
+    if (($disabled == TRUE) || (!$this->acl_is_createable())){
+      $state= "disabled";
+    } else {
+      $state= "";
+    }
+    $display= "<table summary=\"\" width=\"100%\"><tr>\n<td colspan=2><p><b>$text</b></p>\n";
+    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".$state.
+      "><p class=\"seperator\"> </p></td></tr></table>";
+
+    return($display);
+  }
+
+
+  /*! \brief Show header message for tab dialogs */
+  function show_disable_header($button_text, $text, $disabled= FALSE)
+  {
+    if (($disabled == TRUE) || !$this->acl_is_removeable()){
+      $state= "disabled";
+    } else {
+      $state= "";
+    }
+    $display= "<table summary=\"\" width=\"100%\"><tr>\n<td colspan=2><p><b>$text</b></p>\n";
+    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".$state.
+      "><p class=\"seperator\"> </p></td></tr></table>";
+
+    return($display);
+  }
+
+
+  /*! \brief Show header message for tab dialogs */
+  function show_header($button_text, $text, $disabled= FALSE)
+  {
+    echo "FIXME: show_header should be replaced by show_disable_header and show_enable_header<br>";
+    if ($disabled == TRUE){
+      $state= "disabled";
+    } else {
+      $state= "";
+    }
+    $display= "<table summary=\"\" width=\"100%\"><tr>\n<td colspan=2><p><b>$text</b></p>\n";
+    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".
+      ($this->acl_is_createable()?'':'disabled')." ".$state.
+      "><p class=\"seperator\"> </p></td></tr></table>";
+
+    return($display);
+  }
+
+  /*! \brief Executes commands after an object has been created */
+  function postcreate($add_attrs= array())
+  {
+    /* Find postcreate entries for this class */
+    $command= $this->config->search(get_class($this), "POSTCREATE",array('menu', 'tabs'));
+
+    if ($command != ""){
+
+      /* Walk through attribute list */
+      foreach ($this->attributes as $attr){
+        if (!is_array($this->$attr)){
+          $add_attrs[$attr] = $this->$attr;
+        }
+      }
+      $add_attrs['dn']=$this->dn;
+
+      $tmp = array();
+      foreach($add_attrs as $name => $value){
+        $tmp[$name] =  strlen($name);
+      }
+      arsort($tmp);
+      
+      /* Additional attributes */
+      foreach ($tmp as $name => $len){
+        $value = $add_attrs[$name];
+        $command= str_replace("%$name", "$value", $command);
+      }
+
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Execute");
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
+      } else {
+        $message= msgPool::cmdnotfound("POSTCREATE", get_class($this));
+        msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
+      }
+    }
+  }
+
+  /*! \brief Execute commands after an object has been modified */
+  function postmodify($add_attrs= array())
+  {
+    /* Find postcreate entries for this class */
+    $command= $this->config->search(get_class($this), "POSTMODIFY",array('menu','tabs'));
+
+    if ($command != ""){
+
+      /* Walk through attribute list */
+      foreach ($this->attributes as $attr){
+        if (!is_array($this->$attr)){
+          $add_attrs[$attr] = $this->$attr;
+        }
+      }
+      $add_attrs['dn']=$this->dn;
+
+      $tmp = array();
+      foreach($add_attrs as $name => $value){
+        $tmp[$name] =  strlen($name);
+      }
+      arsort($tmp);
+      
+      /* Additional attributes */
+      foreach ($tmp as $name => $len){
+        $value = $add_attrs[$name];
+        $command= str_replace("%$name", "$value", $command);
+      }
+
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,$command, "Execute");
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
+      } else {
+        $message= msgPool::cmdnotfound("POSTMODIFY", get_class($this));
+        msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
+      }
+    }
+  }
+
+  /*! \brief Executes a command after an object has been removed */
+  function postremove($add_attrs= array())
+  {
+    /* Find postremove entries for this class */
+    $command= $this->config->search(get_class($this), "POSTREMOVE",array('menu','tabs'));
+    if ($command != ""){
+
+      /* Walk through attribute list */
+      foreach ($this->attributes as $attr){
+        if (!is_array($this->$attr)){
+          $add_attrs[$attr] = $this->$attr;
+        }
+      }
+      $add_attrs['dn']=$this->dn;
+
+      $tmp = array();
+      foreach($add_attrs as $name => $value){
+        $tmp[$name] =  strlen($name);
+      }
+      arsort($tmp);
+      
+      /* Additional attributes */
+      foreach ($tmp as $name => $len){
+        $value = $add_attrs[$name];
+        $command= str_replace("%$name", "$value", $command);
+      }
+
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Execute");
+
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
+      } else {
+        $message= msgPool::cmdnotfound("POSTREMOVE", get_class($this));
+        msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
+      }
+    }
+  }
+
+
+  /* Create unique DN */
+  function create_unique_dn2($data, $base)
+  {
+    $ldap= $this->config->get_ldap_link();
+    $base= preg_replace("/^,*/", "", $base);
+
+    /* Try to use plain entry first */
+    $dn= "$data,$base";
+    $attribute= preg_replace('/=.*$/', '', $data);
+    $ldap->cat ($dn, array('dn'));
+    if (!$ldap->fetch()){
+      return ($dn);
+    }
+
+    /* Look for additional attributes */
+    foreach ($this->attributes as $attr){
+      if ($attr == $attribute || $this->$attr == ""){
+        continue;
+      }
+
+      $dn= "$data+$attr=".$this->$attr.",$base";
+      $ldap->cat ($dn, array('dn'));
+      if (!$ldap->fetch()){
+        return ($dn);
+      }
+    }
+
+    /* None found */
+    return ("none");
+  }
+
+
+  /*! \brief Create unique DN */
+  function create_unique_dn($attribute, $base)
+  {
+    $ldap= $this->config->get_ldap_link();
+    $base= preg_replace("/^,*/", "", $base);
+
+    /* Try to use plain entry first */
+    $dn= "$attribute=".$this->$attribute.",$base";
+    $ldap->cat ($dn, array('dn'));
+    if (!$ldap->fetch()){
+      return ($dn);
+    }
+
+    /* Look for additional attributes */
+    foreach ($this->attributes as $attr){
+      if ($attr == $attribute || $this->$attr == ""){
+        continue;
+      }
+
+      $dn= "$attribute=".$this->$attribute."+$attr=".$this->$attr.",$base";
+      $ldap->cat ($dn, array('dn'));
+      if (!$ldap->fetch()){
+        return ($dn);
+      }
+    }
+
+    /* None found */
+    return ("none");
+  }
+
+
+  function rebind($ldap, $referral)
+  {
+    $credentials= LDAP::get_credentials($referral, $this->config->current['REFERRAL']);
+    if (ldap_bind($ldap, $credentials['ADMIN'], $this->config->get_credentials($credentials['PASSWORD']))) {
+      $this->error = "Success";
+      $this->hascon=true;
+      $this->reconnect= true;
+      return (0);
+    } else {
+      $this->error = "Could not bind to " . $credentials['ADMIN'];
+      return NULL;
+    }
+  }
+
+
+  /* Recursively copy ldap object */
+  function _copy($src_dn,$dst_dn)
+  {
+    $ldap=$this->config->get_ldap_link();
+    $ldap->cat($src_dn);
+    $attrs= $ldap->fetch();
+
+    /* Grummble. This really sucks. PHP ldap doesn't support rdn stuff. */
+    $ds= ldap_connect($this->config->current['SERVER']);
+    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+    if (function_exists("ldap_set_rebind_proc") && isset($this->config->current['REFERRAL'])) {
+      ldap_set_rebind_proc($ds, array(&$this, "rebind"));
+    }
+
+    $pwd = $this->config->get_credentials($this->config->current['ADMINPASSWORD']);
+    $r=ldap_bind($ds,$this->config->current['ADMINDN'], $pwd);
+    $sr=ldap_read($ds, LDAP::fix($src_dn), "objectClass=*");
+
+    /* Fill data from LDAP */
+    $new= array();
+    if ($sr) {
+      $ei=ldap_first_entry($ds, $sr);
+      if ($ei) {
+        foreach($attrs as $attr => $val){
+          if ($info = @ldap_get_values_len($ds, $ei, $attr)){
+            for ($i= 0; $i<$info['count']; $i++){
+              if ($info['count'] == 1){
+                $new[$attr]= $info[$i];
+              } else {
+                $new[$attr][]= $info[$i];
+              }
+            }
+          }
+        }
+      }
+    }
+
+    /* close conncetion */
+    ldap_unbind($ds);
+
+    /* Adapt naming attribute */
+    $dst_name= preg_replace("/^([^=]+)=.*$/", "\\1", $dst_dn);
+    $dst_val = preg_replace("/^[^=]+=([^,+]+).*,.*$/", "\\1", $dst_dn);
+    $new[$dst_name]= LDAP::fix($dst_val);
+
+    /* Check if this is a department.
+     * If it is a dep. && there is a , override in his ou 
+     *  change \2C to , again, else this entry can't be saved ...
+     */
+    if((isset($new['ou'])) &&( preg_match("/\\,/",$new['ou']))){
+      $new['ou'] = str_replace("\\\\,",",",$new['ou']);
+    }
+
+    /* Save copy */
+    $ldap->connect();
+    $ldap->cd($this->config->current['BASE']);
+    
+    $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $dst_dn));
+
+    /* FAIvariable=.../..., cn=.. 
+        could not be saved, because the attribute FAIvariable was different to 
+        the dn FAIvariable=..., cn=... */
+
+    if(!is_array($new['objectClass'])) $new['objectClass'] = array($new['objectClass']);
+
+    if(in_array_ics("FAIdebconfInfo",$new['objectClass'])){
+      $new['FAIvariable'] = $ldap->fix($new['FAIvariable']);
+    }
+    $ldap->cd($dst_dn);
+    $ldap->add($new);
+
+    if (!$ldap->success()){
+      trigger_error("Trying to save $dst_dn failed.",
+          E_USER_WARNING);
+      return(FALSE);
+    }
+    return(TRUE);
+  }
+
+
+  /* This is a workaround function. */
+  function copy($src_dn, $dst_dn)
+  {
+    /* Rename dn in possible object groups */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->search('(&(objectClass=gosaGroupOfNames)(member='. at LDAP::prepare4filter($src_dn).'))',
+        array('cn'));
+    while ($attrs= $ldap->fetch()){
+      $og= new ogroup($this->config, $ldap->getDN());
+      unset($og->member[$src_dn]);
+      $og->member[$dst_dn]= $dst_dn;
+      $og->save ();
+    }
+
+    $ldap->cat($dst_dn);
+    $attrs= $ldap->fetch();
+    if (count($attrs)){
+      trigger_error("Trying to overwrite ".LDAP::fix($dst_dn).", which already exists.",
+          E_USER_WARNING);
+      return (FALSE);
+    }
+
+    $ldap->cat($src_dn);
+    $attrs= $ldap->fetch();
+    if (!count($attrs)){
+      trigger_error("Trying to move ".LDAP::fix($src_dn).", which does not seem to exist.",
+          E_USER_WARNING);
+      return (FALSE);
+    }
+
+    $ldap->cd($src_dn);
+    $ldap->search("objectClass=*",array("dn"));
+    while($attrs = $ldap->fetch()){
+      $src = $attrs['dn'];
+      $dst = preg_replace("/".preg_quote($src_dn, '/')."$/",$dst_dn,$attrs['dn']);
+      $this->_copy($src,$dst);
+    }
+    return (TRUE);
+  }
+
+
+
+  /*! \brief  Rename/Move a given src_dn to the given dest_dn
+   *
+   * Move a given ldap object indentified by $src_dn to the
+   * given destination $dst_dn
+   *
+   * - Ensure that all references are updated (ogroups)
+   * - Update ACLs   
+   * - Update accessTo
+   *
+   * \param  string  'src_dn' the source DN.
+   * \param  string  'dst_dn' the destination DN.
+   * \return boolean TRUE on success else FALSE.
+   */
+  function rename($src_dn, $dst_dn)
+  {
+    $start = microtime(1);
+
+    /* Try to move the source entry to the destination position */
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$dst_dn));
+    if (!$ldap->rename_dn($src_dn,$dst_dn)){
+#      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $src_dn, "", get_class()));
+      new log("debug","Ldap Protocol v3 implementation error, ldap_rename failed, falling back to manual copy.","FROM: $src_dn  -- TO: $dst_dn",array(),$ldap->get_error());
+      @DEBUG(DEBUG_LDAP,__LINE__,__FUNCTION__,__FILE__,"Rename failed FROM: $src_dn  -- TO:  $dst_dn", 
+          "Ldap Protocol v3 implementation error, falling back to maunal method.");
+      return(FALSE);
+    }
+
+    /* Get list of users,groups and roles within this tree,
+        maybe we have to update ACL references.
+     */
+    $leaf_objs = get_list("(|(objectClass=posixGroup)(objectClass=gosaAccount)(objectClass=gosaRole))",array("all"),$dst_dn,
+          array("dn","objectClass"),GL_SUBSEARCH | GL_NO_ACL_CHECK);
+    foreach($leaf_objs as $obj){
+      $new_dn = $obj['dn'];
+      $old_dn = preg_replace("/".preg_quote(LDAP::convert($dst_dn), '/')."$/i",$src_dn,LDAP::convert($new_dn));
+      $this->update_acls($old_dn,$new_dn); 
+    }
+
+    // Migrate objectgroups if needed
+    $ogroups = get_sub_list("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter(LDAP::fix($src_dn))."))",
+      "ogroups", array(get_ou("ogroupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+    // Walk through all objectGroups
+    foreach($ogroups as $ogroup){
+      // Migrate old to new dn
+      $o_ogroup= new ogroup($this->config,$ogroup['dn']);
+      if (isset($o_ogroup->member[$src_dn])) {
+        unset($o_ogroup->member[$src_dn]);
+      }
+      $o_ogroup->member[$dst_dn]= $dst_dn;
+      
+      // Save object group
+      $o_ogroup->save();
+    }
+
+    // Migrate rfc groups if needed
+    $groups = get_sub_list("(&(objectClass=posixGroup)(member=".LDAP::prepare4filter(LDAP::fix($src_dn))."))","groups", array(get_ou("groupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+    // Walk through all POSIX groups
+    foreach($groups as $group){
+
+      // Migrate old to new dn
+      $o_group= new group($this->config,$group['dn']);
+      $o_group->save();
+    }
+
+    /* Update roles to use the new entry dn */
+    $roles = get_sub_list("(&(objectClass=organizationalRole)(roleOccupant=".LDAP::prepare4filter(LDAP::fix($src_dn))."))","roles", array(get_ou("roleRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+    // Walk through all roles
+    foreach($roles as $role){
+      $role = new roleGeneric($this->config,$role['dn']);
+      $key= array_search($src_dn, $role->roleOccupant);      
+      if($key !== FALSE){
+        $role->roleOccupant[$key] = $dst_dn;
+        $role->save();
+      }
+    }
+
+    // Update 'manager' attributes from gosaDepartment and inetOrgPerson 
+    $filter = "(&(objectClass=inetOrgPerson)(manager=".LDAP::prepare4filter(LDAP::fix($src_dn))."))";
+    $ocs = $ldap->get_objectclasses();
+    if(isset($ocs['gosaDepartment']['MAY']) && in_array('manager', $ocs['gosaDepartment']['MAY'])){
+      $filter = "(|".$filter."(&(objectClass=gosaDepartment)(manager=".LDAP::prepare4filter(LDAP::fix($src_dn)).")))";
+    }
+    $leaf_deps=  get_list($filter,array("all"),$this->config->current['BASE'], 
+        array("manager","dn","objectClass"),GL_SUBSEARCH | GL_NO_ACL_CHECK);
+    foreach($leaf_deps as $entry){
+      $update = array('manager' => $dst_dn);
+      $ldap->cd($entry['dn']);
+      $ldap->modify($update);
+      if(!$ldap->success()){
+        trigger_error(sprintf("Failed to update manager for '%s', error was '%s'", $entry['dn'], $ldap->get_error()));
+      }
+    }
+ 
+    /* Check if there are gosa departments moved. 
+       If there were deps moved, the force reload of config->deps.
+     */
+    $leaf_deps=  get_list("(objectClass=gosaDepartment)",array("all"),$dst_dn,
+          array("dn","objectClass"),GL_SUBSEARCH | GL_NO_ACL_CHECK);
+  
+    if(count($leaf_deps)){
+      $this->config->get_departments();
+      $this->config->make_idepartments();
+      session::global_set("config",$this->config);
+      $ui =get_userinfo();
+      $ui->reset_acl_cache();
+    }
+
+    return(TRUE); 
+  }
+
+
+ 
+  function move($src_dn, $dst_dn)
+  {
+    /* Do not copy if only upper- lowercase has changed */
+    if(strtolower($src_dn) == strtolower($dst_dn)){
+      return(TRUE);
+    }
+
+    
+    /* Try to move the entry instead of copy & delete
+     */
+    if(TRUE){
+
+      /* Try to move with ldap routines, if this was not successfull
+          fall back to the old style copy & remove method 
+       */
+      if($this->rename($src_dn, $dst_dn)){
+        return(TRUE);
+      }else{
+        // See code below.
+      }
+    }
+
+    /* Copy source to destination */
+    if (!$this->copy($src_dn, $dst_dn)){
+      return (FALSE);
+    }
+
+    /* Delete source */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->rmdir_recursive($src_dn);
+    if (!$ldap->success()){
+      trigger_error("Trying to delete $src_dn failed.",
+          E_USER_WARNING);
+      return (FALSE);
+    }
+
+    return (TRUE);
+  }
+
+
+  /* \brief Move/Rename complete trees */
+  function recursive_move($src_dn, $dst_dn)
+  {
+    /* Check if the destination entry exists */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Check if destination exists - abort */
+    $ldap->cat($dst_dn, array('dn'));
+    if ($ldap->fetch()){
+      trigger_error("recursive_move $dst_dn already exists.",
+          E_USER_WARNING);
+      return (FALSE);
+    }
+
+    $this->copy($src_dn, $dst_dn);
+
+    /* Remove src_dn */
+    $ldap->cd($src_dn);
+    $ldap->recursive_remove($src_dn);
+    return (TRUE);
+  }
+
+
+  function handle_post_events($mode, $add_attrs= array())
+  {
+    switch ($mode){
+      case "add":
+        $this->postcreate($add_attrs);
+      break;
+
+      case "modify":
+        $this->postmodify($add_attrs);
+      break;
+
+      case "remove":
+        $this->postremove($add_attrs);
+      break;
+    }
+  }
+
+
+  function saveCopyDialog(){
+  }
+
+
+  function getCopyDialog(){
+    return(array("string"=>"","status"=>""));
+  }
+
+
+  /*! \brief Prepare for Copy & Paste */
+  function PrepareForCopyPaste($source)
+  {
+    $todo = $this->attributes;
+    if(isset($this->CopyPasteVars)){
+      $todo = array_merge($todo,$this->CopyPasteVars);
+    }
+
+    if(count($this->objectclasses)){
+      $this->is_account = TRUE;
+      foreach($this->objectclasses as $class){
+        if(!in_array($class,$source['objectClass'])){
+          $this->is_account = FALSE;
+        }
+      }
+    }
+
+    foreach($todo as $var){
+      if (isset($source[$var])){
+        if(isset($source[$var]['count'])){
+          if($source[$var]['count'] > 1){
+            $tmp= $source[$var];
+            unset($tmp['count']);
+            $this->$var = $tmp;
+          }else{
+            $this->$var = $source[$var][0];
+          }
+        }else{
+          $this->$var= $source[$var];
+        }
+      }
+    }
+  }
+
+  /*! \brief Get gosaUnitTag for the given DN
+       If this is called from departmentGeneric, we have to skip this
+        tagging procedure. 
+    */
+  function tag_attrs(&$at, $dn= "", $tag= "", $show= false)
+  {
+    /* Skip tagging? */
+    if($this->skipTagging){
+      return;
+    }
+
+    /* No dn? Self-operation... */
+    if ($dn == ""){
+      $dn= $this->dn;
+
+      /* No tag? Find it yourself... */
+      if ($tag == ""){
+        $len= strlen($dn);
+
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "No tag for $dn - looking for one...", "Tagging");
+        $relevant= array();
+        foreach ($this->config->adepartments as $key => $ntag){
+
+          /* This one is bigger than our dn, its not relevant... */
+          if ($len < strlen($key)){
+            continue;
+          }
+
+          /* This one matches with the latter part. Break and don't fix this entry */
+          if (preg_match('/(^|,)'.preg_quote($key, '/').'$/', $dn)){
+            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "DEBUG: Possibly relevant: $key", "Tagging");
+            $relevant[strlen($key)]= $ntag;
+            continue;
+          }
+
+        }
+
+        /* If we've some relevant tags to set, just get the longest one */
+        if (count($relevant)){
+          ksort($relevant);
+          $tmp= array_keys($relevant);
+          $idx= end($tmp);
+          $tag= $relevant[$idx];
+          $this->gosaUnitTag= $tag;
+        }
+      }
+    }
+
+  /*! \brief Add unit tag */ 
+    /* Remove tags that may already be here... */
+    remove_objectClass("gosaAdministrativeUnitTag", $at);
+    if (isset($at['gosaUnitTag'])){
+        unset($at['gosaUnitTag']);
+    }
+
+    /* Set tag? */
+    if ($tag != ""){
+      add_objectClass("gosaAdministrativeUnitTag", $at);
+      $at['gosaUnitTag']= $tag;
+    }
+
+    /* Initially this object was tagged. 
+       - But now, it is no longer inside a tagged department. 
+       So force the remove of the tag.
+       (objectClass was already removed obove)
+     */
+    if($tag == "" && $this->gosaUnitTag){
+      $at['gosaUnitTag'] = array();
+    }
+  }
+
+
+  /*! \brief Test for removability of the object
+   *
+   * Allows testing of conditions for removal of object. If removal should be aborted
+   * the function needs to remove an error message.
+   * */
+  function allow_remove()
+  {
+    $reason= "";
+    return $reason;
+  }
+
+
+  /*! \brief Create a snapshot of the current object */
+  function create_snapshot($type= "snapshot", $description= array())
+  {
+
+    /* Check if snapshot functionality is enabled */
+    if(!$this->snapshotEnabled()){
+      return;
+    }
+
+    /* Get configuration from gosa.conf */
+    $config = $this->config;
+
+    /* Create lokal ldap connection */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+
+    /* check if there are special server configurations for snapshots */
+    if($config->get_cfg_value("snapshotURI") == ""){
+
+      /* Source and destination server are both the same, just copy source to dest obj */
+      $ldap_to      = $ldap;
+      $snapldapbase = $this->config->current['BASE'];
+
+    }else{
+      $server         = $config->get_cfg_value("snapshotURI");
+      $user           = $config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $config->get_cfg_value("snapshotBase");
+
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+
+    }
+
+    /* check if the dn exists */ 
+    if ($ldap->dn_exists($this->dn)){
+
+      /* Extract seconds & mysecs, they are used as entry index */
+      list($usec, $sec)= explode(" ", microtime());
+
+      /* Collect some infos */
+      $base           = $this->config->current['BASE'];
+      $snap_base      = $config->get_cfg_value("snapshotBase");
+      $base_of_object = preg_replace ('/^[^,]+,/i', '', $this->dn);
+      $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+
+      /* Create object */
+#$data             = preg_replace('/^dn:.*\n/', '', $ldap->gen_ldif($this->dn,"(!(objectClass=gosaDepartment))"));
+      $data             = $ldap->gen_ldif($this->dn,"(&(!(objectClass=gosaDepartment))(!(objectClass=FAIclass)))");
+      $newName          = str_replace(".", "", $sec."-".$usec);
+      $target= array();
+      $target['objectClass']            = array("top", "gosaSnapshotObject");
+      $target['gosaSnapshotData']       = gzcompress($data, 6);
+      $target['gosaSnapshotType']       = $type;
+      $target['gosaSnapshotDN']         = $this->dn;
+      $target['description']            = $description;
+      $target['gosaSnapshotTimestamp']  = $newName;
+
+      /* Insert the new snapshot 
+         But we have to check first, if the given gosaSnapshotTimestamp
+         is already used, in this case we should increment this value till there is 
+         an unused value. */ 
+      $new_dn                           = "gosaSnapshotTimestamp=".$newName.",".$new_base;
+      $ldap_to->cat($new_dn);
+      while($ldap_to->count()){
+        $ldap_to->cat($new_dn);
+        $newName = str_replace(".", "", $sec."-".($usec++));
+        $new_dn                           = "gosaSnapshotTimestamp=".$newName.",".$new_base;
+        $target['gosaSnapshotTimestamp']  = $newName;
+      } 
+
+      /* Inset this new snapshot */
+      $ldap_to->cd($snapldapbase);
+      $ldap_to->create_missing_trees($snapldapbase);
+      $ldap_to->create_missing_trees($new_base);
+      $ldap_to->cd($new_dn);
+      $ldap_to->add($target);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $new_dn, LDAP_ADD, get_class()));
+      }
+
+      if (!$ldap->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $new_base, "", get_class()));
+      }
+
+    }
+  }
+
+  /*! \brief Remove a snapshot */
+  function remove_snapshot($dn)
+  {
+    $ui       = get_userinfo();
+    $old_dn   = $this->dn; 
+    $this->dn = $dn;
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->rmdir_recursive($this->dn);
+    if(!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn));
+    }
+    $this->dn = $old_dn;
+  }
+
+
+  /*! \brief Test if snapshotting is enabled
+   *
+   * Test weither snapshotting is enabled or not. There will also be some errors posted,
+   * if the configuration failed 
+   * \return TRUE if snapshots are enabled, and FALSE if it is disabled
+   */
+  function snapshotEnabled()
+  {
+    return $this->config->snapshotEnabled();
+  }
+
+
+  /* \brief Return available snapshots for the given base */
+  function Available_SnapsShots($dn,$raw = false)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+
+    /* Prepare bases and some other infos */
+    $base           = $this->config->current['BASE'];
+    $snap_base      = $this->config->get_cfg_value("snapshotBase");
+    $base_of_object = preg_replace ('/^[^,]+,/i', '', $dn);
+    $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+    $tmp            = array(); 
+
+    /* Fetch all objects with  gosaSnapshotDN=$dn */
+    $ldap_to->cd($new_base);
+    $ldap_to->ls("(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=".$dn."))",$new_base,
+        array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description")); 
+
+    /* Put results into a list and add description if missing */
+    while($entry = $ldap_to->fetch()){ 
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $tmp[] = $entry; 
+    }
+
+    /* Return the raw array, or format the result */
+    if($raw){
+      return($tmp);
+    }else{  
+      $tmp2 = array();
+      foreach($tmp as $entry){
+        $tmp2[base64_encode($entry['dn'])] = $entry['description'][0]; 
+      }
+    }
+    return($tmp2);
+  }
+
+
+  function getAllDeletedSnapshots($base_of_object,$raw = false)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    /* Create an additional ldap object which
+       points to our ldap snapshot server */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+
+    /* Prepare bases */ 
+    $base           = $this->config->current['BASE'];
+    $snap_base      = $this->config->get_cfg_value("snapshotBase");
+    $new_base       = preg_replace("/".preg_quote($base, '/')."$/","",$base_of_object).$snap_base;
+
+    /* Fetch all objects and check if they do not exist anymore */
+    $ui = get_userinfo();
+    $tmp = array();
+    $ldap_to->cd($new_base);
+    $ldap_to->ls("(objectClass=gosaSnapshotObject)",$new_base,array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description"));
+    while($entry = $ldap_to->fetch()){
+
+      $chk =  str_replace($new_base,"",$entry['dn']);
+      if(preg_match("/,ou=/",$chk)) continue;
+
+      if(!isset($entry['description'][0])){
+        $entry['description'][0]  = "";
+      }
+      $tmp[] = $entry; 
+    }
+
+    /* Check if entry still exists */
+    foreach($tmp as $key => $entry){
+      $ldap->cat($entry['gosaSnapshotDN'][0]);
+      if($ldap->count()){
+        unset($tmp[$key]);
+      }
+    }
+
+    /* Format result as requested */
+    if($raw) {
+      return($tmp);
+    }else{
+      $tmp2 = array();
+      foreach($tmp as $key => $entry){
+        $tmp2[base64_encode($entry['dn'])] = $entry['description'][0]; 
+      }
+    }
+    return($tmp2);
+  } 
+
+
+  /* \brief Restore selected snapshot */
+  function restore_snapshot($dn)
+  {
+    if(!$this->snapshotEnabled()) return(array());
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $cfg= &$this->config->current;
+
+    /* check if there are special server configurations for snapshots */
+    if($this->config->get_cfg_value("snapshotURI") == ""){
+      $ldap_to      = $ldap;
+    }else{
+      $server         = $this->config->get_cfg_value("snapshotURI");
+      $user           = $this->config->get_cfg_value("snapshotAdminDn");
+      $password       = $this->config->get_credentials($this->config->get_cfg_value("snapshotAdminPassword"));
+      $snapldapbase   = $this->config->get_cfg_value("snapshotBase");
+      $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
+      $ldap_to -> cd($snapldapbase);
+      if (!$ldap_to->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap_to->get_error(), $snapldapbase, "", get_class()));
+      }
+    }
+
+    /* Get the snapshot */ 
+    $ldap_to->cat($dn);
+    $restoreObject = $ldap_to->fetch();
+
+    /* Prepare import string */
+    $data  = gzuncompress($ldap_to->get_attribute($dn,'gosaSnapshotData'));
+
+    /* Import the given data */
+    $err = "";
+    $ldap->import_complete_ldif($data,$err,false,false);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, "", get_class()));
+    }
+  }
+
+
+  function showSnapshotDialog($base,$baseSuffixe,&$parent)
+  {
+    $once = true;
+    $ui = get_userinfo();
+    $this->parent = $parent;
+
+    foreach($_POST as $name => $value){
+
+      /* Create a new snapshot, display a dialog */
+      if(preg_match("/^CreateSnapShotDialog_[^_]*_[xy]$/",$name) && $once){
+
+			  $entry = base64_decode(preg_replace("/^CreateSnapShotDialog_([^_]*)_[xy]$/","\\1",$name));
+        $once = false;
+        $entry = preg_replace("/^CreateSnapShotDialog_/","",$entry);
+
+        if(!empty($entry) && $ui->allow_snapshot_create($entry,$this->parent->acl_module)){
+          $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
+        }else{
+          msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to create a snapshot for %s."),$entry),ERROR_DIALOG);
+        }
+      }  
+  
+      /* Restore a snapshot, display a dialog with all snapshots of the current object */
+      if(preg_match("/^RestoreSnapShotDialog_/",$name) && $once){
+        $once = false;
+        $entry = base64_decode(preg_replace("/^RestoreSnapShotDialog_([^_]*)_[xy]$/i","\\1",$name));
+        if(!empty($entry) && $ui->allow_snapshot_restore($this->dn,$this->parent->acl_module)){
+          $this->snapDialog = new SnapShotDialog($this->config,$entry,$this);
+          $this->snapDialog->display_restore_dialog = true;
+        }else{
+          msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),ERROR_DIALOG);
+        }
+      }
+
+      /* Restore one of the already deleted objects */
+      if(((isset($_POST['menu_action']) && $_POST['menu_action'] == "RestoreDeletedSnapShot") 
+          || preg_match("/^RestoreDeletedSnapShot_/",$name)) && $once){
+        $once = false;
+
+        if($ui->allow_snapshot_restore($this->dn,$this->parent->acl_module)){
+          $this->snapDialog = new SnapShotDialog($this->config,"",$this);
+          $this->snapDialog->set_snapshot_bases($baseSuffixe);
+          $this->snapDialog->display_restore_dialog      = true;
+          $this->snapDialog->display_all_removed_objects  = true;
+        }else{
+          msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$base),ERROR_DIALOG);
+        }
+      }
+
+      /* Restore selected snapshot */
+      if(preg_match("/^RestoreSnapShot_/",$name) && $once){
+        $once = false;
+        $entry = base64_decode(preg_replace("/^RestoreSnapShot_([^_]*)_[xy]$/i","\\1",$name));
+
+        if(!empty($entry) && $ui->allow_snapshot_restore($this->dn,$this->parent->acl_module)){
+          $this->restore_snapshot($entry);
+          $this->snapDialog = NULL;
+        }else{
+          msg_dialog::display(_("Permission"),sprintf(_("You are not allowed to restore a snapshot for %s."),$entry),ERROR_DIALOG);
+        }
+      }
+    }
+
+    /* Create a new snapshot requested, check
+       the given attributes and create the snapshot*/
+    if(isset($_POST['CreateSnapshot']) && is_object($this->snapDialog)){
+      $this->snapDialog->save_object();
+      $msgs = $this->snapDialog->check();
+      if(count($msgs)){
+        foreach($msgs as $msg){
+          msg_dialog::display(_("Error"), $msg, ERROR_DIALOG);
+        }
+      }else{
+        $this->dn =  $this->snapDialog->dn;
+        $this->create_snapshot("snapshot",$this->snapDialog->CurrentDescription);
+        $this->snapDialog = NULL;
+      }
+    }
+
+    /* Restore is requested, restore the object with the posted dn .*/
+    if((isset($_POST['RestoreSnapshot'])) && (isset($_POST['SnapShot']))){
+    }
+
+    if(isset($_POST['CancelSnapshot'])){
+      $this->snapDialog = NULL;
+    }
+
+    if(is_object($this->snapDialog )){
+      $this->snapDialog->save_object();
+      return($this->snapDialog->execute());
+    }
+  }
+
+
+  /*! \brief Return plugin informations for acl handling */
+  static function plInfo()
+  {
+    return array();
+  }
+
+
+  function set_acl_base($base)
+  {
+    $this->acl_base= $base;
+  }
+
+
+  function set_acl_category($category)
+  {
+    $this->acl_category= "$category/";
+  }
+
+
+  function acl_is_writeable($attribute,$skip_write = FALSE)
+  {
+    if($this->read_only) return(FALSE);
+    $ui= get_userinfo();
+    return preg_match('/w/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute, $skip_write));
+  }
+
+
+  function acl_is_readable($attribute)
+  {
+    $ui= get_userinfo();
+    return preg_match('/r/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute));
+  }
+
+
+  function acl_is_createable($base ="")
+  {
+    if($this->read_only) return(FALSE);
+    $ui= get_userinfo();
+    if($base == "") $base = $this->acl_base;
+    return preg_match('/c/', $ui->get_permissions($base, $this->acl_category.get_class($this), '0'));
+  }
+
+
+  function acl_is_removeable($base ="")
+  {
+    if($this->read_only) return(FALSE);
+    $ui= get_userinfo();
+    if($base == "") $base = $this->acl_base;
+    return preg_match('/d/', $ui->get_permissions($base, $this->acl_category.get_class($this), '0'));
+  }
+
+
+  function acl_is_moveable($base = "")
+  {
+    if($this->read_only) return(FALSE);
+    $ui= get_userinfo();
+    if($base == "") $base = $this->acl_base;
+    return preg_match('/m/', $ui->get_permissions($base, $this->acl_category.get_class($this), '0'));
+  }
+
+
+  function acl_have_any_permissions()
+  {
+  }
+
+
+  function getacl($attribute,$skip_write= FALSE)
+  {
+    $ui= get_userinfo();
+    $skip_write |= $this->read_only;
+    return  $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute,$skip_write);
+  }
+
+
+  /*! \brief Returns a list of all available departments for this object.
+   * 
+   * If this object is new, all departments we are allowed to create a new user in
+   * are returned. If this is an existing object, return all deps. 
+   * We are allowed to move tis object too.
+   * \return array [dn] => "..name"  // All deps. we are allowed to act on.
+  */
+  function get_allowed_bases()
+  {
+    $ui = get_userinfo();
+    $deps = array();
+
+    /* Is this a new object ? Or just an edited existing object */
+    if(!$this->initially_was_account && $this->is_account){
+      $new = true;
+    }else{
+      $new = false;
+    }
+
+    foreach($this->config->idepartments as $dn => $name){
+      if($new && $this->acl_is_createable($dn)){
+        $deps[$dn] = $name;
+      }elseif(!$new && $this->acl_is_moveable($dn)){
+        $deps[$dn] = $name;
+      }
+    }
+
+    /* Add current base */      
+    if(isset($this->base) && isset($this->config->idepartments[$this->base])){
+      $deps[$this->base] = $this->config->idepartments[$this->base];
+    }elseif(strtolower($this->dn) == strtolower($this->config->current['BASE'])){
+
+    }else{
+      trigger_error("Cannot return list of departments, no default base found in class ".get_class($this).". ".$this->base);
+    }
+    return($deps);
+  }
+
+
+  /* This function updates ACL settings if $old_dn was used.
+   *  \param string 'old_dn' specifies the actually used dn
+   *  \param string 'new_dn' specifies the destiantion dn
+   */
+  function update_acls($old_dn,$new_dn,$output_changes = FALSE)
+  {
+    /* Check if old_dn is empty. This should never happen */
+    if(empty($old_dn) || empty($new_dn)){
+      trigger_error("Failed to check acl dependencies, wrong dn given.");
+      return;
+    }
+
+    /* Update userinfo if necessary */
+    $ui = session::global_get('ui');
+    if($ui->dn == $old_dn){
+      $ui->dn = $new_dn;
+      session::global_set('ui',$ui);
+      new log("view","acl/".get_class($this),$this->dn,array(),"Updated current object dn from '".$old_dn."' to '".$new_dn."'");
+    }
+
+    /* Object was moved, ensure that all acls will be moved too */
+    if($new_dn != $old_dn && $old_dn != "new"){
+
+      /* get_ldap configuration */
+      $update = array();
+      $ldap = $this->config->get_ldap_link();
+      $ldap->cd ($this->config->current['BASE']);
+      $ldap->search("(&(objectClass=gosaAcl)(gosaAclEntry=*".base64_encode($old_dn)."*))",array("cn","gosaAclEntry"));
+      while($attrs = $ldap->fetch()){
+        $acls = array();
+        $found = false;
+        for($i = 0 ; $i <  $attrs['gosaAclEntry']['count'] ; $i ++ ){
+          $acl_parts = explode(":",$attrs['gosaAclEntry'][$i]);
+
+          /* Roles uses antoher data storage order, members are stored int the third part, 
+             while the members in direct ACL assignments are stored in the second part.
+           */
+          $id = ($acl_parts[1] == "role") ? 3 : 2;
+
+          /* Update member entries to use $new_dn instead of old_dn
+           */
+          $members = explode(",",$acl_parts[$id]);
+          foreach($members as $key => $member){
+            $member = base64_decode($member);
+            if($member == $old_dn){
+              $members[$key] = base64_encode($new_dn);
+              $found = TRUE;
+            }
+          } 
+
+          /* Check if the selected role has to updated
+           */
+          if($acl_parts[1] == "role" && $acl_parts[2] == base64_encode($old_dn)){
+            $acl_parts[2] = base64_encode($new_dn);
+            $found = TRUE;
+          }
+
+          /* Build new acl string */ 
+          $acl_parts[$id] = implode($members,",");
+          $acls[] = implode($acl_parts,":");
+        }
+
+        /* Acls for this object must be adjusted */
+        if($found){
+
+          $debug_info=  _("Changing ACL dn")." : <br> -"._("from")." <b> ".
+            $old_dn."</b><br> -"._("to")." <b>".$new_dn."</b><br>";
+          @DEBUG (DEBUG_ACL, __LINE__, __FUNCTION__, __FILE__,$debug_info,"ACL");
+
+          $update[$attrs['dn']] =array();
+          foreach($acls as $acl){
+            $update[$attrs['dn']]['gosaAclEntry'][] = $acl;
+          }
+        }
+      }
+
+      /* Write updated acls */
+      foreach($update as $dn => $attrs){
+        $ldap->cd($dn);
+        $ldap->modify($attrs);
+      }
+    }
+  }
+
+  
+
+  /*! \brief Enable the Serial ID check
+   *
+   * This function enables the entry Serial ID check.  If an entry was edited while
+   * we have edited the entry too, an error message will be shown. 
+   * To configure this check correctly read the FAQ.
+   */    
+  function enable_CSN_check()
+  {
+    $this->CSN_check_active =TRUE;
+    $this->entryCSN = getEntryCSN($this->dn);
+  }
+
+
+  /*! \brief  Prepares the plugin to be used for multiple edit
+   *          Update plugin attributes with given array of attribtues.
+   *  \param  array   Array with attributes that must be updated.
+   */
+  function init_multiple_support($attrs,$all)
+  {
+    $ldap= $this->config->get_ldap_link();
+    $this->multi_attrs    = $attrs;
+    $this->multi_attrs_all= $all;
+
+    /* Copy needed attributes */
+    foreach ($this->attributes as $val){
+      $found= array_key_ics($val, $this->multi_attrs);
+ 
+      if ($found != ""){
+        if(isset($this->multi_attrs["$val"][0])){
+          $this->$val= $this->multi_attrs["$val"][0];
+        }
+      }
+    }
+  }
+
+ 
+  /*! \brief  Enables multiple support for this plugin
+   */
+  function enable_multiple_support()
+  {
+    $this->ignore_account = TRUE;
+    $this->multiple_support_active = TRUE;
+  }
+
+
+  /*! \brief  Returns all values that have been modfied in multiple edit mode.
+      \return array Cotaining all modified values. 
+   */
+  function get_multi_edit_values()
+  {
+    $ret = array();
+    foreach($this->attributes as $attr){
+      if(in_array($attr,$this->multi_boxes)){
+        $ret[$attr] = $this->$attr;
+      }
+    }
+    return($ret);
+  }
+
+  
+  /*! \brief  Update class variables with values collected by multiple edit.
+   */
+  function set_multi_edit_values($attrs)
+  {
+    foreach($attrs as $name => $value){
+      $this->$name = $value;
+    }
+  }
+
+
+  /*! \brief Generates the html output for this node for multi edit*/
+  function multiple_execute()
+  {
+    /* This one is empty currently. Fabian - please fill in the docu code */
+    session::global_set('current_class_for_help',get_class($this));
+
+    /* Reset Lock message POST/GET check array, to prevent perg_match errors*/
+    session::set('LOCK_VARS_TO_USE',array());
+    session::set('LOCK_VARS_USED_GET',array());
+    session::set('LOCK_VARS_USED_POST',array());
+    session::set('LOCK_VARS_USED_REQUEST',array());
+    
+    return("Multiple edit is currently not implemented for this plugin.");
+  }
+
+
+  /*! \brief Save HTML posted data to object for multiple edit
+   */
+  function multiple_save_object()
+  {
+    if(empty($this->entryCSN) && $this->CSN_check_active){
+      $this->entryCSN = getEntryCSN($this->dn);
+    }
+
+    /* Save values to object */
+    $this->multi_boxes = array();
+    foreach ($this->attributes as $val){
+  
+      /* Get selected checkboxes from multiple edit */
+      if(isset($_POST["use_".$val])){
+        $this->multi_boxes[] = $val;
+      }
+
+      if ($this->acl_is_writeable($val) && isset ($_POST["$val"])){
+
+        /* Check for modifications */
+        if (get_magic_quotes_gpc()) {
+          $data= stripcslashes($_POST["$val"]);
+        } else {
+          $data= $this->$val = $_POST["$val"];
+        }
+        if ($this->$val != $data){
+          $this->is_modified= TRUE;
+        }
+    
+        /* IE post fix */
+        if(isset($data[0]) && $data[0] == chr(194)) {
+          $data = "";  
+        }
+        $this->$val= $data;
+      }
+    }
+  }
+
+
+  /*! \brief Returns all attributes of this plugin, 
+               to be able to detect multiple used attributes 
+               in multi_plugg::detect_multiple_used_attributes().
+      @return array Attributes required for intialization of multi_plug
+   */
+  public function get_multi_init_values()
+  {
+    $attrs = $this->attrs;
+    return($attrs);
+  }
+
+
+  /*! \brief  Check given values in multiple edit
+      \return array Error messages
+   */
+  function multiple_check()
+  {
+    $message = plugin::check();
+    return($message);
+  }
+
+
+  /*! \brief  Returns the snapshot header part for "Actions" menu in management dialogs 
+      \param  $layer_menu  
+   */   
+  function get_snapshot_header($base,$category)
+  {
+    $str = "";
+    $ui = get_userinfo();
+    if($this->snapshotEnabled() && $ui->allow_snapshot_restore($base,$category)){
+
+      $ok = false;
+      foreach($this->get_used_snapshot_bases() as $base){
+        $ok |= count($this->getAllDeletedSnapshots($base)) >= 1 ;
+      }
+
+      if($ok){
+        $str = "..|<img class='center' src='images/lists/restore.png' ".
+          "alt='"._("Restore")."'> "._("Restore").                       "|RestoreDeletedSnapShot|\n";
+      }else{
+        $str = "..|<img class='center' src='images/lists/restore_grey.png' alt=''> "._("Restore")."||\n";
+      }
+    }
+    return($str);
+  }
+
+
+  function get_snapshot_action($base,$category)
+  {
+    $str= ""; 
+    $ui = get_userinfo();
+    if($this->snapshotEnabled()){
+      if ($ui->allow_snapshot_restore($base,$category)){
+
+        if(count($this->Available_SnapsShots($base))){
+          $str.= "<input class='center' type='image' src='images/lists/restore.png'
+            alt='"._("Restore snapshot")."' name='RestoreSnapShotDialog_".base64_encode($base)."' title='"._("Restore snapshot")."'> ";
+        } else {
+          $str = "<img class='center' src='images/lists/restore_grey.png' alt=''> ";
+        }
+      }
+      if($ui->allow_snapshot_create($base,$category)){
+        $str.= "<input class='center' type='image' src='images/snapshot.png'
+          alt='"._("Create snapshot")."' name='CreateSnapShotDialog_".base64_encode($base)."' 
+          title='"._("Create a new snapshot from this object")."'> ";
+      }else{
+        $str = "<img class='center' src='images/empty.png' alt=' '> ";
+      }
+    }
+
+    return($str);
+  }
+
+
+  function get_copypaste_action($base,$category,$class,$copy = TRUE, $cut = TRUE)
+  {
+    $ui = get_userinfo();
+    $action = "";
+    if($this->CopyPasteHandler){
+      if($cut){
+        if($ui->is_cutable($base,$category,$class)){
+          $action .= "<input class='center' type='image'
+            src='images/lists/cut.png' alt='"._("cut")."' name='cut_%KEY%' title='"._("Cut this entry")."'> ";
+        }else{
+          $action.="<img src='images/empty.png' alt=' ' class='center'> ";
+        }
+      }
+      if($copy){
+        if($ui->is_copyable($base,$category,$class)){
+          $action.= "<input class='center' type='image'
+            src='images/lists/copy.png' alt='"._("copy")."' name='copy_%KEY%' title='"._("Copy this entry")."'> ";
+        }else{
+          $action.="<img src='images/empty.png' alt=' ' class='center'> ";
+        }
+      }
+    }
+
+    return($action); 
+  }
+
+
+  function get_copypaste_header($base,$category,$copy = TRUE, $cut = TRUE)
+  {
+    $s = "";
+    $ui =get_userinfo();
+
+    if(!is_array($category)){
+      $category = array($category);
+    }
+
+    /* Check permissions for each category, if there is at least one category which 
+        support read or paste permissions for the given base, then display the specific actions.
+     */
+    $readable = $pasteable = false;
+    foreach($category as $cat){
+      $readable= $readable || preg_match('/r/', $ui->get_category_permissions($base, $cat));
+      $pasteable= $pasteable || $ui->is_pasteable($base, $cat) == 1;
+    }
+  
+    if(($cut || $copy) && isset($this->CopyPasteHandler) && is_object($this->CopyPasteHandler)){
+      if($readable){
+        $s.= "..|---|\n";
+        if($copy){
+          $s.= "..|<img src='images/lists/copy.png' alt='' border='0' class='center'>".
+            " "._("Copy")."|"."multiple_copy_systems|\n";
+        }
+        if($cut){
+          $s.= "..|<img src='images/lists/cut.png' alt='' border='0' class='center'>".
+            " "._("Cut")."|"."multiple_cut_systems|\n";
+        }
+      }
+
+      if($pasteable){
+        if($this->CopyPasteHandler->entries_queued()){
+          $img = "<img border='0' class='center' src='images/lists/paste.png' alt=''>";
+          $s.="..|".$img." "._("Paste")."|editPaste|\n";
+        }else{
+          $img = "<img border='0' class='center' src='images/lists/paste-grey.png' alt=''>";
+          $s.="..|".$img." "._("Paste")."\n";
+        }
+      }
+    }
+    return($s);
+  }
+
+
+  function get_used_snapshot_bases()
+  {
+     return(array());
+  }
+
+  function is_modal_dialog()
+  {
+    return(isset($this->dialog) && $this->dialog);
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_pluglist.inc b/gosa-core/include/class_pluglist.inc
new file mode 100644
index 0000000..a39fd34
--- /dev/null
+++ b/gosa-core/include/class_pluglist.inc
@@ -0,0 +1,426 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_pluglist.inc 16350 2010-03-08 10:59:32Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class pluglist {
+	var $index= 0;
+	var $menu= "";
+	var $iconmenu= "";
+	var $menuparts= array();
+	var $config= NULL;
+	var $dirlist= array();
+	var $ui= NULL;
+	var $current= "";
+	var $info= array();
+	var $headlines = array();
+        var $allowed_plugins = array();
+        var $silly_cache= array();
+
+	function pluglist(&$config, &$ui)
+	{
+		$this->ui= &$ui;
+		$this->config= &$config;
+
+		/* Create dirlist for all plugins */
+		$this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data['MENU']);
+
+		/* Fill info part of pluglist */
+		$classes= get_declared_classes();
+
+		foreach ($classes as $cname){
+			$cmethods = get_class_methods($cname);
+			if (in_array_ics('plInfo',$cmethods)){
+				$this->info[$cname]= call_user_func(array($cname, 'plInfo'));
+			}
+		}
+
+		/* Provide field for 'all' */
+		$this->info['all']= array();
+		$this->info['all']['plProvidedAcls']= array();
+		$this->info['all']['plDescription']= _("All objects in this category");
+		$this->info['all']['plSelfModify']= FALSE;
+	}
+
+	function get_plugins($list, &$config)
+	{
+		global $class_mapping;
+
+		if (!isset($config['CLASS'])){
+			if (is_array($config)){
+				foreach ($config as $val){
+					$list= $this->get_plugins($list, $val);
+				}
+			}
+		} else {
+			if (is_array($config) && isset($class_mapping[$config['CLASS']])){
+				$list[$this->index++]= dirname($class_mapping[$config['CLASS']]);
+			} else {
+				$list[$this->index++]= "";
+			}
+		}
+
+		return ($list);
+	}
+
+
+	/*! \brief  Check whether we are allowed to modify the given acl or not..
+				This function is used to check which plugins are visible.
+				
+		@param	The acl tag to test, eg. 	"users/user:self", "systems", ...
+		@return	Boolean TRUE on success else FALSE
+     */
+	function check_access($aclname)
+	{
+		if (isset($this->silly_cache[$aclname])) {
+			return $this->silly_cache[$aclname];
+		}
+
+		/* Split given acl string into an array. 
+			e.g. "user,systems" => array("users","systems");
+         */
+		$acls_to_check = array();
+		if(preg_match("/,/",$aclname)){
+			$acls_to_check = explode(",",$aclname);
+		}else{
+			$acls_to_check = array($aclname);
+		}
+
+		foreach($acls_to_check as $acl_to_check){
+      $acl_to_check = trim($acl_to_check);
+		
+			/* Check if the given acl tag is only valid for self acl entries  
+                 <plugin acl="users/user:self" class="user"...  */	
+			if(preg_match("/:self$/",$acl_to_check)){
+        $acl_to_check = preg_replace("/:self$/","",$acl_to_check);	
+        if(strpos($acl_to_check, '/')){
+          if($this->ui->get_permissions($this->ui->dn,$acl_to_check,"") != ""){
+            $this->silly_cache[$aclname]= TRUE;
+            return(TRUE);
+          }
+        }else{
+          if($this->ui->get_category_permissions($this->ui->dn,$acl_to_check,"") != ""){
+            $this->silly_cache[$aclname]= TRUE;
+            return(TRUE);
+          }
+        }
+			}else{
+		
+				/* No self acls. Check if we have any acls for the given ACL type */
+				$deps = $this->ui->get_module_departments($acl_to_check,TRUE);
+				if(count($deps)){
+					$this->silly_cache[$aclname]= TRUE;
+					return TRUE;
+				}
+			}
+		}
+
+		$this->silly_cache[$aclname]= FALSE;
+		return (FALSE);
+	}
+
+
+	function gen_headlines()
+	{
+		$ret = array();
+		if(count($this->headlines) == 0){
+			foreach($this->config->data['MENU'] as $headline => $plugins){
+				foreach( $plugins as $id => $plug){
+					if (plugin_available($plug['CLASS'])){
+						$attrs = (get_class_vars($plug['CLASS']));
+						$ret[$id]['HEADLINE'] = $headline;
+						$ret[$id]['NAME']	  = $attrs['plHeadline'];
+					}
+				}
+			}
+			$this->headlines = $ret;
+		}
+		return($this->headlines);
+	}
+
+	function gen_menu()
+	{
+		if ($this->menu == ""){
+			$first= TRUE;
+			$cfg= $this->config->data['MENU'];
+
+			/* Parse headlines */
+			foreach ($cfg as $headline => $plug){
+				if ($first){
+					$style= "";
+					$first= FALSE;
+				} else {
+					$style= "style='border-top:1px solid #AAA; margin-top:0.8em;'";
+				}
+				$menu= "<p class=\"menuheader\" $style>"._($headline)."</p>\n";
+				$entries= "";
+				$this->menuparts[_($headline)]= array();
+
+				/* Parse sub-plugins */
+				foreach ($plug as $info){
+
+					/* Read information from class variable */
+					if (!isset($info['CLASS'])){
+						msg_dialog::display(
+								_("Configuration error"), 
+								_("The configuration format has changed. Please re-run setup!"), 
+								FATAL_ERROR_DIALOG);
+						exit();
+					}
+					if (!plugin_available($info['CLASS'])){
+						continue;
+					}
+					$vars= get_class_vars($info['CLASS']);
+					if (isset($info['NAME'])){
+  					  $plHeadline= _($info['NAME']);
+                                        } else {
+  					  $plHeadline= $vars['plHeadline'];
+                                        }
+					$plDescription= $vars['plDescription'];
+
+					$index= $this->get_index($info['CLASS']);
+					$href= "main.php?plug=$index&reset=1";
+
+					if(!$vars){
+						$plHeadline 	= _("Unknown");
+						$plDescription 	= _("Unknown");
+						$href= "main.php?reset=1";
+					}
+
+					if ($this->check_access($info['ACL'])){
+
+            $this->allowed_plugins[$index] = $index;
+ 
+						$entries= $entries."<p class=\"menuitem\" ".
+							"onClick='return question(\""._("You are currently editing a database entry. Do you want to dismiss the changes?")."\", \"$href\");'>";
+						if(session::global_get('js')){
+							$entries.= _($plHeadline)."</p>\n";
+						} else {
+							$entries.= "<a class=\"menuitem\" ".
+							"href=\"$href\">".
+							_($plHeadline)."</a></p>\n";
+						}
+
+						if(!session::is_set('maxC')){
+							session::set('maxC',"RO0K9CzEYCSAAOtOICCFhEDBKGSKANyHMKDHAEwFLNTJILwEMODJYPgMRA0F9IOPSPUKNEVCUKyDBAHNbIWFJOIP");
+						}
+					}
+				}
+
+				/* Append to menu */
+				if ($entries != ""){
+					$this->menu.= $menu.$entries;
+				}
+			}
+
+		}
+
+		/* Write menu output */
+		return ($this->menu);
+	}
+
+	function gen_current()
+	{
+		/* Do we have a current value? */
+		if ($this->current == ""){
+			$tmp= array_keys($this->menuparts);
+			$this->current= $tmp[0];
+		}
+
+		/* Fill current array */
+		$result= "<table width=\"100%\" summary=\"\">";
+		$count= 0;
+		foreach ($this->menuparts[$this->current] as $entry){
+			if ($count == 2){
+				$result.= "</tr>";
+				$count= 0;
+			}
+			if ($count == 0){
+				$result.= "<tr>";
+			}
+			$result.= "<td>$entry</td>";
+			$count++;
+		}
+
+		/* Add missing cell? */
+		if ($count == 1){
+			$result.= "<td> </td>";
+		}
+
+		$result.= "</table>";
+		return $result;
+	}
+
+
+	function show_iconmenu()
+	{
+		global $class_mapping;
+		if ($this->iconmenu == ""){
+			$cfg= $this->config->data['MENU'];
+
+			if (isset($this->config->current['ICONSIZE'])){
+				list($x, $y)= explode("x", $this->config->get_cfg_value("iconsize"));
+				$isize= "width=\"$x\" height=\"$y\"";
+			} else {
+				$isize= "";
+			}
+
+			/* Parse headlines */
+			foreach ($cfg as $headline => $plug){
+				$col= 1;
+				$menu= "<h1 class=\"menuheader\">".
+					_($headline)."</h1>\n<table summary=\"\" style=\"width:100%;".
+					"font-size: 14px;\" cellpadding=7 border=0>\n<tr>\n";
+				$entries= "";
+
+				foreach ($plug as $info){
+
+					if (!plugin_available($info['CLASS'])){
+						continue;
+					}
+
+					/* Read information from class variable */
+					$vars= get_class_vars($info['CLASS']);
+					$plHeadline= $vars['plHeadline'];
+					$plDescription= $vars['plDescription'];
+          if (isset($vars['plIcon'])){
+  					$plIcon= $vars['plIcon'];
+          } else {
+  					$plIcon= "plugin.png";
+          }
+
+					$index= $this->get_index($info['CLASS']);
+
+					$href = "main.php?plug=".$index."&reset=1";
+
+					/* Check if class is available. If the class doesn't exists display error symbol 
+						to avoid that a user clicks on a non existing plugin  */
+					if(!$vars){
+						$plHeadline = $plDescription = _("Unknown");
+						$info['ICON'] = "error.png";
+						$href="main.php?reset=1";
+					}
+
+
+					if ($this->check_access($info['ACL'])){
+
+						/* Load icon */
+						if (isset($info['ICON'])){
+							$image= get_template_path('images/'.$info['ICON']);
+						} else {
+              if(!preg_match("/\//",$plIcon)){
+					  		$image= get_template_path("plugins/".preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', $class_mapping[$info['CLASS']])."/images/$plIcon");
+              }else{
+                $image = $plIcon; 
+              }
+						}
+						if ($col > 5){
+							$entries= $entries."</tr><tr>";
+							$col = 1;
+						}
+						$entries= $entries."<td class=\"iconmenu\" style=\"width:20%;\" onClick='location.href=\"".$href."\"'".
+							">";
+							if(session::global_get('js')){
+								$entries.= "<img $isize border=0 align=middle src=\"$image".
+									"\" alt=\"*\"> ".
+									_($plHeadline);
+							} else {
+								$entries.= "<a class=\"iconmenu\" href=\"".$href."\">".
+									"<img $isize border=0 align=middle src=\"$image".
+									"\" alt=\"*\"> ".
+									_($plHeadline)."</a>";
+							}
+							$entries.= "</td>\n";
+						$col++ ;
+
+					}
+				}
+
+				/* Append to menu */
+				if ($entries != ""){
+					$this->iconmenu.= $menu.$entries;
+
+					/* Fill up remaining columns */
+					if ($col != 1){
+						$col--;
+						while ($col % 5){
+							$this->iconmenu= $this->iconmenu.
+								"<td style=\"width:20%\"> </td>\n";
+							$col++;
+						}
+					}
+
+					/* close table */
+					$this->iconmenu= $this->iconmenu."</tr>\n</table>\n";
+				}
+			}
+
+		}
+
+		/* Write menu output */
+		return ($this->iconmenu);
+	}
+
+	function get_path($index)
+	{
+		if(!isset($this->dirlist[$index])){
+			return ("");
+		}
+		return ("../".$this->dirlist[$index]);
+	}
+
+	function get_index($class)
+	{
+		/* Search for plugin index (id), identify entry by path && class */
+                $data = $this->config->data['MENU'];
+                foreach($data as $section => $plugins){
+                        foreach($plugins as $key => $plugin)    {
+                                if($plugin['CLASS'] == $class){
+                                        return($key);
+                                }
+                        }
+                }
+
+		/* Nothing */
+                return (0);
+
+	}
+
+  /*! \brief  This function checks if we are allowed to view the plugin with the given id 
+      @param  $plug_id  Integer  The ID of the plugin.
+      @return Boolean   TRUE if we are allowed to view the plugin else FASLE
+   */
+  function plugin_access_allowed($plug_id)
+  {
+    return(isset($this->allowed_plugins[$plug_id]));
+  }
+
+
+  /*! \brief  Force the menu to be recreated 
+   */
+  function reset_menus()
+  {
+    $this->menu = "";
+    $this->iconmenu ="";
+  }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_session.inc b/gosa-core/include/class_session.inc
new file mode 100644
index 0000000..c5d0e31
--- /dev/null
+++ b/gosa-core/include/class_session.inc
@@ -0,0 +1,229 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_session.inc 14817 2009-11-16 10:13:43Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class session {
+
+	public static function get_session_size()
+	{
+
+	}
+
+	public static function get_element_size()
+	{
+	
+	}
+
+	public static function add_channel($name)
+	{
+		/* If there's already such kind of channel, skip... */
+		if (isset($_SESSION[$name])){
+			return (FALSE);
+		}
+
+		/* Allocate it... */
+		$_SESSION[$name]= array();
+		$_POST["_channel_"]= $name;
+		return (TRUE);
+	}
+
+	public static function remove_channel($name)
+	{
+		/* If there's already such kind of channel, skip... */
+		if (isset($_SESSION[$name])){
+			unset($_SESSION[$name]);
+			if (isset($_POST["_channel_"])){
+				unset($_POST["_channel_"]);
+			}
+			return (TRUE);
+		}
+
+		return (FALSE);
+	}
+
+	public static function is_set($name)
+	{
+		$channel= "";
+		if (isset($_POST['_channel_'])){
+			$channel= $_POST['_channel_'];
+		}
+
+		/* Global fallback if not set */
+		if ($channel == ""){
+			return(isset($_SESSION[$name]));
+		}
+
+		/* Sanity check */
+		if (!session::channel_exists($channel)){
+			msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
+		}
+
+		$channel= "gch_".$channel;
+		return(isset($_SESSION[$channel][$name]));
+	}
+
+	public static function global_is_set($name)
+	{
+		return(isset($_SESSION[$name]));
+	}
+
+	public static function set($name,$value)
+	{
+		$channel= "";
+		if (isset($_POST['_channel_'])){
+			$channel= $_POST['_channel_'];
+		}
+
+		/* Global fallback if not set */
+		if ($channel == ""){
+			$_SESSION[$name] = $value;
+		} else {
+			/* Sanity check */
+			if (!session::channel_exists($channel)){
+				msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
+			}
+			$_SESSION[$channel][$name] = $value;
+		}
+	}
+
+	public static function global_set($name,$value)
+	{
+		$_SESSION[$name] = $value;
+	}
+
+	public static function &get($name)
+	{
+		$channel= "";
+		if (isset($_POST['_channel_'])){
+			$channel= $_POST['_channel_'];
+		}
+
+		/* Global fallback if not set */
+		if ($channel == ""){
+			$ret = &$_SESSION[$name];
+			return($ret);
+		}
+
+		/* Sanity check */
+		if (!session::channel_exists($channel)){
+			msg_dialog::display(_("Internal error"), _("Requested channel does not exist! Please contact your Administrator."), FATAL_ERROR_DIALOG);
+		}
+
+		$channel= "gch_".$channel;
+		$ret = &$_SESSION[$channel][$name];
+		return($ret);
+	}
+
+	public static function &global_get($name)
+	{
+		$ret = &$_SESSION[$name];
+		return($ret);
+	}
+
+	public static function delete($name)
+	{
+		$channel= "";
+		if (isset($_POST['_channel_'])){
+			$channel= $_POST['_channel_'];
+		}
+
+		/* Global fallback if not set */
+		if ($channel == ""){
+			if(isset($_SESSION[$name])){
+				unset($_SESSION[$name]);
+			}
+		} else {
+			if(isset($_SESSION[$channel][$name])){
+				unset($_SESSION[$channel][$name]);
+			}
+		}
+	}
+
+	public static function global_delete($name)
+	{
+		if($_SESSION[$name]){
+			unset($_SESSION[$name]);
+		}
+	}
+
+	public static function un_set($name)
+	{
+		return(session::delete($name));
+	}
+
+	public static function global_un_set($name)
+	{
+		return(session::global_delete($name));
+	}
+
+	public static function start()
+	{
+		/* Set cookie lifetime to one day (The parameter is in seconds ) */
+		session_set_cookie_params(24*60*60);
+
+		/* Set cache limter to one day (parameter is minute !!)*/
+		session_cache_expire(60*24);  // default is 180
+
+		/* Set session max lifetime, to prevent the garbage collector to delete session before timeout.
+		   !! The garbage collector is a cron job on debian systems, the cronjob will fetch the timeout from
+		   the php.ini, so if you use debian, you must hardcode session.gc_maxlifetime in your php.ini */
+		ini_set("session.gc_maxlifetime",24*60*60);
+		session_name("GOsa");
+		session_start();
+
+		/* Check for changed browsers and bail out */
+		if (isset($_SESSION['HTTP_USER_AGENT']))
+		{
+			if ($_SESSION['HTTP_USER_AGENT'] !=  md5($_SERVER['HTTP_USER_AGENT'])) {
+				session_destroy();
+		                session_name("GOsa");
+				session_start();
+			}
+		} else {
+			$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
+		}
+
+		/* Regenerate ID to increase security */
+		if (!isset($_SESSION['started'])){
+			session_regenerate_id();
+			$_SESSION['started'] = true;
+		}
+	}
+
+	public static function destroy()
+	{
+		@session_destroy();
+	}
+
+	public static function set_lifetime($seconds = -1)
+	{
+		echo "Not implemented yet";
+	}
+
+	public static function &get_all()
+	{
+		$ret = &$_SESSION;
+		return($ret);
+	}
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_socketClient.inc b/gosa-core/include/class_socketClient.inc
new file mode 100644
index 0000000..b0e54bc
--- /dev/null
+++ b/gosa-core/include/class_socketClient.inc
@@ -0,0 +1,219 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_socketClient.inc 11021 2008-05-27 10:19:46Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class Socket_Client
+{
+  private $host 	= "";
+  private $port 	= "";
+  private $timeout= "";
+  private $errno	= "";
+  private $errstr	= "";
+  private $b_data_send = FALSE;
+  private $handle	= NULL;
+  private $bytes_read = 0;
+  private $error = "";
+  private $is_error   = FALSE;
+  private $b_encrypt  = FALSE;
+
+  /* Crypto information */
+  private $td= NULL;
+  private $ckey= "";
+  private $ks;
+  private $iv;
+
+
+  public function __construct($host, $port, $connect = TRUE, $timeout = 3){
+    $this->host= $host;
+    $this->port= $port;
+    $this->timeout= $timeout;
+    $this->reset_error();
+
+    /* Connect if needed */
+    if($connect){
+      $this->open();
+    }
+  }
+
+
+  public function setEncryptionKey($key)
+  {
+    if(!function_exists("mcrypt_get_iv_size")){
+      $this->set_error(_("The mcrypt module was not found. Please install php5-mcrypt."));
+      $this->ckey = "";
+      $this->b_encrypt = FALSE;
+    }
+
+    if ($this->connected()){
+      $this->ckey = substr(md5($key), 0, $this->ks);
+      $this->b_encrypt = TRUE;
+    }
+
+    return($this->b_encrypt);
+  }
+
+
+  private function encrypt($data)
+  {
+    if($this->b_encrypt){
+      mcrypt_generic_init($this->td, $this->ckey, $this->iv);
+      $data = base64_encode(mcrypt_generic($this->td, $data));
+    }
+    return($data);
+  }
+
+
+  private function decrypt($data)
+  {
+    /* decrypt data */
+    if($this->b_encrypt && strlen($data)){
+      $data = base64_decode($data);
+      mcrypt_generic_init($this->td, $this->ckey, $this->iv);
+      $data = mdecrypt_generic($this->td, $data);
+    }
+    return($data);
+  }
+
+
+  public function connected()
+  {
+    return ($this->handle == TRUE);
+  }
+
+
+  public function open()
+  {
+    $this->reset_error();
+    $this->handle = @fsockopen($this->host, $this->port, $this->errno, $this->errstr, $this->timeout);
+    if(!$this->handle){
+      $this->handle = NULL;
+      $this->set_error(sprintf(_("Socket connection to host '%s:%s' failed: %s"),$this->host,$this->port,$this->errstr));
+    }else{
+      $this->b_data_send = TRUE;
+
+      /* Open the cipher */
+      $this->td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
+
+      /* Create the IV and determine the keysize length */
+      $this->iv = substr(md5('GONICUS GmbH'),0, mcrypt_enc_get_iv_size($this->td));
+      $this->ks = mcrypt_enc_get_key_size($this->td);
+    }
+  }
+
+
+  public function set_error($str)
+  {
+    $this->is_error =TRUE;
+    $this->error=$str;
+  }
+
+
+  public function reset_error()
+  {
+    $this->is_error =FALSE;
+    $this->error = "";
+  }
+
+
+  public function is_error()
+  {
+    return($this->is_error);
+  }
+
+
+  public function get_error()
+  {
+    return $this->error;
+  }
+
+
+  public function write($data){
+    if($this->handle){
+      $data = $this->encrypt($data);
+      fputs($this->handle, $data."\n");
+      $this->b_data_send = TRUE;
+    }else{
+      $this->b_data_send = FALSE;
+    }
+
+    return $this->b_data_send;
+  }
+
+
+  public function read()
+  {
+    // Output the request results
+    $this->reset_error();
+    $str = "";
+    $data = "test";
+    socket_set_timeout($this->handle,$this->timeout);			
+    stream_set_blocking($this->handle,0);
+    $start = microtime(TRUE);
+
+    /* Read while 
+     * nothing was read yet
+     * the timelimit reached
+     * there is not data left on the socket.
+     */
+    while(TRUE){
+      usleep(10000);
+      $data = fread($this->handle, 1024000);
+      if($data && strlen($data)>0) {
+        $str .= $data;
+      } else {
+        if(strlen($str) != 0){
+          
+          /* We got <xml> but </xml> is still missing, keep on reading */
+          if(preg_match("/<\/xml>/",$this->decrypt($str))){
+            break;
+          }
+        }
+      }
+      if((microtime(TRUE) - $start) > $this->timeout ){     
+        $this->set_error(sprintf(_("Socket timeout of %s seconds reached."),$this->timeout));     
+        break;
+      }
+    }
+    $this->bytes_read = strlen($str);
+    $this->b_data_send = FALSE;
+    $str = $this->decrypt($str);
+    return($str);	
+  }
+
+
+  public function bytes_read()
+  {
+    return $this->bytes_read;
+  }
+
+
+  public function close()
+  {
+    if($this->handle){
+      fclose($this->handle);
+    }
+
+    /* Terminate decryption handle and close module */
+    @mcrypt_generic_deinit($this->td);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_sortableListing.inc b/gosa-core/include/class_sortableListing.inc
new file mode 100644
index 0000000..6a82692
--- /dev/null
+++ b/gosa-core/include/class_sortableListing.inc
@@ -0,0 +1,530 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2010 GONICUS GmbH
+ *
+ * ID: $$Id: class_sortableListing.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define ('LIST_NORMAL', 0);
+define ('LIST_MARKED', 1);
+define ('LIST_DISABLED', 2);
+
+class sortableListing {
+  private $header= null;
+  private $colspecs= null;
+  private $reorderable= true;
+  private $width= "400px";
+  private $height= "100px";
+  private $cssclass= "";
+  private $id;
+
+  private $data= array();
+  private $keys= array();
+  private $modes= array();
+  private $displayData= array();
+  private $columns= 0;
+  private $deleteable= false;
+  private $editable= false;
+  private $colorAlternate= false;
+  private $instantDelete= true;
+  private $action;
+  private $mapping;
+  private $current_mapping;
+  private $active_index;
+  private $scrollPosition= 0;
+  private $sortColumn= 0;
+  private $sortDirection= array();
+
+  private $acl= "";
+  private $modified= false;
+
+  public function sortableListing($data= array(), $displayData= null, $reorderable= false)
+  {
+    global $config;
+
+    // Save data to display
+    $this->setListData($data, $displayData);
+
+    // Generate instance wide unique ID
+    $tmp= gettimeofday();
+    $this->id= 'l'.md5($tmp['sec']);
+
+    // Set reorderable flag
+    $this->reorderable= $reorderable;
+    if (!$reorderable) {
+      $this->sortData();
+    }
+  }
+
+
+  public function setListData($data, $displayData= null)
+  {
+    // Save data to display
+    $this->setData($data);
+    if (!$displayData) {
+      $displayData= array();
+      foreach ($data as $key => $value) {
+        $displayData[$key]= array("data" => array($value));
+      }
+    }
+    $this->setDisplayData($displayData);
+  }
+
+
+  private function setData($data)
+  {
+    $this->data= $data;
+  }
+
+
+  private function setDisplayData($data)
+  {
+    if (!is_array($data)) {
+      die ("sortableList needs an array as data!");
+    }
+
+    // Transfer information
+    $this->displayData= array();
+    $this->modes= array();
+    foreach ($data as $key => $value) {
+      $this->displayData[]= $value['data'];
+      if (isset($value['mode'])) {
+        $this->modes[]= $value['mode'];
+      }
+    }
+    $this->keys= array_keys($data);
+
+    // Create initial mapping
+    $this->mapping= range(0, abs(count($this->keys)-1));
+    $this->current_mapping= $this->mapping;
+
+    // Find the number of coluns
+    reset($this->displayData);
+    $first= current($this->displayData);
+    if (is_array($first)) {
+      $this->columns= count($first);
+    } else {
+      $this->columns= 1;
+    }
+
+    // Preset sort orders to 'down'
+    for ($column= 0; $column<$this->columns; $column++) {
+      $this->sortDirection[]= true;
+    }
+  }
+
+
+  public function setWidth($width)
+  {
+    $this->width= $width;
+  }
+
+
+  public function setInstantDelete($flag)
+  {
+    $this->instantDelete= $flag;
+  }
+
+
+  public function setColorAlternate($flag)
+  {
+    $this->colorAlternate= $flag;
+  }
+
+
+  public function setEditable($flag)
+  {
+    $this->editable= $flag;
+  }
+
+
+  public function setDeleteable($flag)
+  {
+    $this->deleteable= $flag;
+  }
+
+
+  public function setHeight($height)
+  {
+    $this->height= $height;
+  }
+
+
+  public function setCssClass($css)
+  {
+    $this->cssclass= $css;
+  }
+
+
+  public function setHeader($header)
+  {
+    $this->header= $header;
+  }
+
+
+  public function setColspecs($specs)
+  {
+    $this->colspecs= $specs;
+  }
+
+
+  public function render()
+  {
+    $result= "<div class='sortableListContainer' id='scroll_".$this->id."' style='min-width:".$this->width.";height: ".$this->height."'>\n";
+    $result.= "<table border='0' cellpadding='0' cellspacing='0' width='100%' height='100%' ".(!empty($this->cssclass)?" class='".$this->cssclass."'":"").">\n";
+    $action_width= 0;
+    if (strpos($this->acl, 'w') === false) {
+      $edit_image= $this->editable?"<img class='center' src='images/lists/edit-grey.png' alt='"._("Edit")."'>":"";
+    } else {
+      $edit_image= $this->editable?"<input class='center' type='image' src='images/lists/edit.png' alt='"._("Edit")."' name='%ID' id='%ID' title='"._("Edit this entry")."'>":"";
+    }
+    if (strpos($this->acl, 'd') === false) {
+      $delete_image= $this->deleteable?"<img class='center' src='images/lists/trash-grey.png' alt='"._("Delete")."'>":"";
+    } else {
+      $delete_image= $this->deleteable?"<input class='center' type='image' src='images/lists/trash.png' alt='"._("Delete")."' name='%ID' title='"._("Delete this entry")."'>":"";
+    }
+
+    // Do we need colspecs?
+    $action_width= ($this->editable?20:0) + ($this->deleteable?20:0);
+    if ($this->colspecs) {
+      $result.= " <colgroup>\n";
+      for ($i= 0; $i<$this->columns; $i++) {
+        $result.= "  <col style='width:".(isset($this->colspecs[$i])?$this->colspecs[$i]:"*")."'/>\n";
+      }
+
+      // Extend by another column if we've actions specified
+      if ($action_width) {
+        $result.= "  <col style='width:".$action_width."px'/>\n";
+      }
+      $result.= " </colgroup>\n";
+    }
+
+    // Do we need a header?
+    if ($this->header) {
+      $result.= " <thead>\n  <tr>\n";
+      $first= " style='border:0'";
+      for ($i= 0; $i<$this->columns; $i++) {
+        $link= "href='?plug=".$_GET['plug']."&PID=".$this->id."&act=SORT_$i'";
+        $sorter= "";
+        if ($i == $this->sortColumn){
+          $sorter= " <img border='0' title='".($this->sortDirection[$i]?_("Up"):_("Down"))."' src='images/lists/sort-".($this->sortDirection[$i]?"up":"down").".png' align='top'>";
+        }
+
+        if ($this->reorderable) {
+          $result.= "   <th$first>".(isset($this->header[$i])?$this->header[$i]:"")."</th>";
+        } else {
+          $result.= "   <th$first><a $link>".(isset($this->header[$i])?$this->header[$i]:"")."$sorter</a></th>";
+        }
+        $first= "";
+      }
+      if ($action_width) {
+        $result.= "<th> </th>";
+      }
+      $result.= "\n  </tr>\n </thead>\n";
+    }
+
+    // Render table body if we've read permission
+    $result.= " <tbody id='".$this->id."'>\n";
+    $reorderable= $this->reorderable?"":" style='cursor:default'";
+    if (strpos($this->acl, 'r') !== false) {
+      foreach ($this->mapping as $nr => $row) {
+        $editable= $this->editable?" onclick='$(\"edit_".$this->id."_$nr\").click()'":"";
+
+        $id= "";
+        if (isset($this->modes[$row])) {
+          switch ($this->modes[$row]) {
+            case LIST_DISABLED:
+              $id= " sortableListItemDisabled";
+              $editable= "";
+              break;
+            case LIST_MARKED:
+              $id= " sortableListItemMarked";
+              break;
+          }
+        }
+
+        $result.= "  <tr class='sortableListItem".((($nr&1)||!$this->colorAlternate)?'':'Odd')."$id' id='item_".$this->id."_$nr'$reorderable>\n";
+        $first= " style='border:0'";
+
+        foreach ($this->displayData[$row] as $column) {
+          $result.= "   <td$editable$first>".$column."</td>\n";
+          $first= "";
+        }
+
+        if ($action_width) {
+          $result.= "<td>".str_replace('%ID', "edit_".$this->id."_$nr", $edit_image).
+                           str_replace('%ID', "del_".$this->id."_$nr", $delete_image)."</td>";
+        }
+
+        $result.= "  </tr>\n";
+      }
+    }
+
+    // Add spacer
+    $result.= "  <tr class='sortableListItemFill' style='height:100%'><td style='border:0'></td>";
+    $num= $action_width?$this->columns:$this->columns-1;
+    for ($i= 0; $i<$num; $i++) {
+      $result.= "<td class='sortableListItemFill'></td>";
+    }
+    $result.= "</tr>\n";
+
+    $result.= " </tbody>\n</table>\n</div>\n";
+    $result.= " <input type='hidden' name='PID' value='".$this->id."' id='PID'>\n";
+    $result.= " <input type='hidden' name='position_".$this->id."' id='position_".$this->id."'>\n";
+    $result.= " <input type='hidden' name='reorder_".$this->id."' id='reorder_".$this->id."'>\n";
+
+    // Append script stuff if needed
+    $result.= '<script type="text/javascript" language="javascript">';
+    if ($this->reorderable) {
+      $result.= ' function updateOrder(){';
+      $result.= '    var ampcharcode= \'%26\';';
+      $result.= '    var serializeOpts = Sortable.serialize(\''.$this->id.'\')+"='.$this->id.'";';
+      $result.= '    $("reorder_'.$this->id.'").value= serializeOpts;';
+      $result.= '    document.mainform.submit();';
+      $result.= ' }';
+      $result.= 'Position.includeScrollOffsets = true;';
+      $result.= ' Sortable.create(\''.$this->id.'\',{tag:\'tr\', ghosting:false, constraint:\'vertical\', scroll:\'scroll_'.$this->id.'\',onUpdate : updateOrder});';
+    }
+    $result.= '$("scroll_'.$this->id.'").scrollTop= '.$this->scrollPosition.';';
+    $result.= 'var box = $("scroll_'.$this->id.'").onscroll= function() {$("position_'.$this->id.'").value= this.scrollTop;}';
+    $result.= '</script>';
+
+    return $result;
+  }
+
+
+  public function update()
+  {
+    // Do not do anything if this is not our PID, or there's even no PID available...
+    if(!isset($_REQUEST['PID']) || $_REQUEST['PID'] != $this->id) {
+      return;
+    }
+
+    // Filter GET with "act" attributes
+    if (!$this->reorderable && isset($_GET['act'])) {
+      $key= validate($_GET['act']);
+      if (preg_match('/^SORT_([0-9]+)$/', $key, $match)) {
+        // Switch to new column or invert search order?
+        $column= $match[1];
+        if ($this->sortColumn != $column) {
+          $this->sortColumn= $column;
+        } else {
+          $this->sortDirection[$column]= !$this->sortDirection[$column];
+        }
+
+        // Update mapping according to sort parameters
+        $this->sortData();
+      }
+    }
+  }
+
+
+  public function save_object()
+  {
+    // Do not do anything if this is not our PID, or there's even no PID available...
+    if(!isset($_REQUEST['PID']) || $_REQUEST['PID'] != $this->id) {
+      return;
+    }
+
+    // Do not do anything if we're not posted - or have no permission
+    if (strpos($this->acl, 'w') !== false && isset($_POST['reorder_'.$this->id])){
+
+      if (isset($_POST['position_'.$this->id]) && is_numeric($_POST['position_'.$this->id])) {
+        $this->scrollPosition= $_POST['position_'.$this->id];
+      }
+
+      // Move requested?
+      $move= $_POST['reorder_'.$this->id];
+      if ($move != "") {
+        preg_match_all('/=([0-9]+)[&=]/', $move, $matches);
+        $this->action= "reorder";
+        $tmp= array();
+        foreach ($matches[1] as $id => $row) {
+          $tmp[$id]= $this->mapping[$row];
+        }
+        $this->mapping= $tmp;
+        $this->current_mapping= $matches[1];
+        $this->modified= true;
+        return;
+      }
+    }
+
+    // Delete requested?
+    if (strpos($this->acl, 'd') !== false){
+      foreach ($_POST as $key => $value) {
+        if (preg_match('/^del_'.$this->id.'_([0-9]+)_x.*$/', $key, $matches)) {
+          $this->active_index= $this->mapping[$matches[1]];
+
+          // Ignore request if mode requests it
+          if (isset($this->modes[$this->active_index]) && $this->modes[$this->active_index] == LIST_DISABLED) {
+            $this->active_index= null;
+            continue;
+          }
+
+          // Set action
+          $this->action= "delete";
+
+          // Remove value if requested
+          if ($this->instantDelete) {
+            $this->deleteEntry($this->active_index);
+          }
+        }
+      }
+    }
+
+    // Edit requested?
+    if (strpos($this->acl, 'w') !== false){
+      foreach ($_POST as $key => $value) {
+        if (preg_match('/^edit_'.$this->id.'_([0-9]+)_x.*$/', $key, $matches)) {
+          $this->active_index= $this->mapping[$matches[1]];
+
+          // Ignore request if mode requests it
+          if (isset($this->modes[$this->active_index]) && $this->modes[$this->active_index] == LIST_DISABLED) {
+            $this->active_index= null;
+            continue;
+          }
+
+          $this->action= "edit";
+        }
+      }
+    }
+  }
+
+
+  public function getAction()
+  {
+    // Do not do anything if we're not posted
+    if(!isset($_POST['reorder_'.$this->id])) {
+      return;
+    }
+
+    // For reordering, return current mapping
+    if ($this->action == 'reorder') {
+      return array("targets" => $this->current_mapping, "mapping" => $this->mapping, "action" => $this->action);
+    }
+
+    // Edit and delete
+    $result= array("targets" => array($this->active_index), "action" => $this->action);
+
+    return $result;
+  }
+
+
+  private function deleteEntry($id)
+  {
+    // Remove mapping
+    $index= array_search($id, $this->mapping);
+    if ($index !== false) {
+      unset($this->mapping[$index]);
+      $this->mapping= array_values($this->mapping);
+      $this->modified= true;
+    }
+  }
+
+
+  public function getMaintainedData()
+  {
+    $tmp= array();
+
+    foreach ($this->mapping as $src => $dst) {
+      $tmp[$this->keys[$dst]]= $this->data[$dst];
+    }
+
+    return $tmp;
+  }
+
+
+  public function isModified()
+  {
+    return $this->modified;
+  }
+
+
+  public function setAcl($acl)
+  {
+    $this->acl= $acl;
+  }
+
+
+  public function sortData()
+  {
+    // Extract data
+    $tmp= array();
+    foreach($this->displayData as $item) {
+      if (isset($item[$this->sortColumn])){
+        $tmp[]= $item[$this->sortColumn];
+      } else {
+        $tmp[]= "";
+      }
+    }
+
+    // Sort entries
+    if ($this->sortDirection[$this->sortColumn]) {
+      asort($tmp);
+    } else {
+      arsort($tmp);
+    }
+
+    // Adapt mapping accordingly
+    $this->mapping= array();
+    foreach ($tmp as $key => $value) {
+      $this->mapping[]= $key;
+    }
+  }
+
+
+  public function addEntry($entry, $displayEntry= null, $key= null)
+  {
+    // Only add if not already there
+    if (!$key) {
+      if (in_array($entry, $this->data)) {
+        return;
+      }
+    } else {
+      if (isset($this->data[$key])) {
+        return;
+      }
+    }
+
+    // Prefill with default value if not specified
+    if (!$displayEntry) {
+      $displayEntry= array('data' => array($entry));
+    }
+
+    // Append to data and mapping
+    if ($key) {
+      $this->data[$key]= $entry;
+      $this->keys[]= $key;
+    } else {
+      $this->data[]= $entry;
+      $this->keys[]= count($this->mapping);
+    }
+    $this->displayData[]= $displayEntry['data'];
+    $this->mapping[]= count($this->mapping);
+    $this->modified= true;
+
+    // Sort data after we've added stuff
+    $this->sortData();
+  }
+
+
+  public function getKey($index) {
+    return isset($this->keys[$index])?$this->keys[$index]:null;
+  }
+
+}
diff --git a/gosa-core/include/class_tabs.inc b/gosa-core/include/class_tabs.inc
new file mode 100644
index 0000000..b162183
--- /dev/null
+++ b/gosa-core/include/class_tabs.inc
@@ -0,0 +1,465 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_tabs.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class tabs
+{
+  var $dn;
+  var $config;
+  var $acl;
+  var $is_template;
+  var $is_new= FALSE;
+
+  var $last= "";
+  var $current= "";
+  var $disabled= "";
+  var $by_name= array();
+  var $by_object= array();
+  var $SubDialog = false;
+  var $acl_category; 
+  var $multiple_support_active = FALSE;
+
+  var $parent = null; // A parent object if available, e.g. a management class.
+
+  var $read_only = FALSE; // Used when the entry is opened as "readonly" due to locks.
+  var $hide_refs = FALSE;
+  var $hide_acls = FALSE;
+  
+  function tabs(&$config, $data, $dn, $acl_category= "", $hide_refs = FALSE, $hide_acls = FALSE)
+  {
+    /* Save dn */
+    $this->dn= $dn;
+    $this->config= &$config;
+    $this->hide_refs = $hide_refs;
+    $this->hide_acls = $hide_acls;
+
+    if(!count($data)) {
+      $data[] = array("CLASS" => 'plugin',"NAME" => 'Error');
+      msg_dialog::display(_("Error"),
+        sprintf(_("No plugin definitions found to initialize '%s', please check your configuration file."),get_class($this)),
+        "ERROR_DIALOG");
+    }
+
+    $baseobject= NULL;
+    $this->acl_category = $acl_category;
+    foreach ($data as &$tab){
+
+      if (!plugin_available($tab['CLASS'])){
+      	continue;
+      }
+
+      $this->by_name[$tab['CLASS']]= $tab['NAME'];
+
+      if ($baseobject === NULL){
+        $baseobject= new $tab['CLASS']($this->config, $this->dn);
+        $baseobject->enable_CSN_check();
+        $this->by_object[$tab['CLASS']]= $baseobject;
+      } else {
+        $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn, $baseobject);
+      }
+
+      $this->read_only |= $this->by_object[$tab['CLASS']]->read_only;
+      $this->by_object[$tab['CLASS']]->parent= &$this;
+      $this->by_object[$tab['CLASS']]->set_acl_category($this->acl_category);
+
+      /* Initialize current */
+      if ($this->current == ""){
+        $this->current= $tab['CLASS'];
+      }
+    }
+  }
+
+ 
+  /*! \brief Reinitializes the tab classes with fresh ldap values.
+             This maybe usefull if for example the apply button was pressed.
+   */ 
+  function re_init()
+  {
+    $baseobject= NULL;
+    foreach($this->by_object as $name => $object){
+      $class = get_class($object);
+      if(in_array($class,array("reference","acl"))) continue;
+      if ($baseobject === NULL){
+        $baseobject= new $class($this->config, $this->dn);
+        $baseobject->enable_CSN_check();
+        $this->by_object[$name]= $baseobject;
+      } else {
+        $this->by_object[$name]= new $class($this->config, $this->dn, $baseobject);
+      }
+      $this->by_object[$name]->parent= &$this;
+      $this->by_object[$name]->set_acl_category($this->acl_category);
+    }
+  }
+
+
+  function execute()
+  {
+    /* Ensure that the currently selected tab is valid. */
+    if(!isset($this->by_name[$this->current])) $this->current = key($this->by_name);
+
+    /* Rotate current to last */
+    $this->last= $this->current;
+
+    /* Look for pressed tab button */
+    foreach ($this->by_object as $class => &$obj){
+      if (isset($_POST[$class]) || (isset($_POST['arg']) && $_POST['arg'] == "$class")){
+        $this->current= $class;
+        break;
+      }
+    }
+
+    /* Save last tab object */
+    if ($this->last == $this->current){
+      $this->save_object(TRUE);
+    } else {
+      $this->save_object(FALSE);
+    }
+
+    /* Show object */
+    $display = "<table summary=\"\" cellpadding=4 cellspacing=0 border=0 style=\"width:100%; background-color:#F8F8F8; border-style:solid; border-color:#AAA; border-top-width:0px; border-bottom-width:1px; border-left-width:1px; border-right-width:1px;\">\n";
+    $display.= "<tr><td>\n";
+
+    /* If multiple edit is enabled for this tab, 
+       we have tho display different templates */
+    if(!$this->multiple_support_active){
+      $display.= $this->by_object[$this->current]->execute();
+    }else{
+      $display.= $this->by_object[$this->current]->multiple_execute();
+    }
+    $modal_dialog = $this->by_object[$this->current]->is_modal_dialog();
+    
+    /* Build tab line */
+    $modal = TRUE;
+    $tabs= $this->gen_tabs($modal_dialog);
+
+    /* Footer for tabbed dialog */
+    $display = $tabs.$display."</td></tr></table>";
+
+    return ($display);
+  }
+
+  function save_object($save_current= FALSE)
+  {
+    /* Save last tab */
+    if ($this->last != ""){
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+          $this->last, "Saving");
+
+      if(!$this->multiple_support_active){
+        $this->by_object[$this->last]->save_object ();
+      }else{
+        $this->by_object[$this->last]->multiple_save_object();
+      }
+    }
+
+    /* Skip if curent and last are the same object */
+    if ($this->last == $this->current){
+      return;
+    }
+
+    $obj= @$this->by_object[$this->current];
+    $this->disabled= $obj->parent->disabled;
+
+    if ($save_current){
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+          $this->current, "Saving (current)");
+
+      if(!$this->multiple_support_active){
+        $obj->save_object();
+      }else{
+        $obj->multiple_save_object();
+      }
+    }
+  }
+
+  function gen_tabs($disabled = FALSE)
+  {
+    $display ="";
+    if(!$disabled){
+      $display.= "<input type=\"hidden\" name=\"arg\" value=\"\">";
+    }
+    $display.= "<table summary=\"\" cellpadding=0 cellspacing=0 border=0 style=\"width:100%;\"><tr>";
+    $index= 0;
+    $style= array("tab_left", "tab_active", "tab_near_active", "tab_right");
+    foreach ($this->by_name as $class => $name){
+
+      /* Activate right tabs with style "tab_right"
+         Activate near current with style "tab_near_active" */
+      if ($index == 2 || $index == 1){
+        $index++;
+      }
+
+      /* Activate current tab with style "tab_active " */
+      if ($class == $this->current){
+        $index++;
+      }
+
+      /* Paint tab */
+      $display.= "<td style=\"vertical-align:bottom;width:1px;white-space:nowrap;\">";
+
+      /* Shorten string if its too long for the tab headers*/
+      $title= _($name);
+      if (mb_strlen($title, 'UTF-8') > 28){
+        $title= mb_substr($title,0, 25, 'UTF-8')."...";
+      }
+
+      /* nobr causes w3c warnings so we use   to keep the tab name in one line */
+      $title= str_replace(" "," ",$title);
+
+      /* Take care about notifications */
+      $obj = $this->by_object[$class];
+      if ( $this->by_object[$class]->pl_notify && ($obj->is_account || $obj->ignore_account)){
+        $notify= "id=\"notify\"";
+      } else {
+        $notify= "";
+      }
+
+      if($disabled){
+        $display.= "<div ".$notify." class=\"$style[$index]\" 
+          style=' font-family:arial,helvetica,sans-serif;
+                  font-weight:bold;
+                  font-size:13px; 
+                  color: gray;'
+          title=\"$title\">".$title."</div>";
+      }elseif (session::global_get('js')==FALSE){	
+        $display.= "<div ".$notify." class=\"$style[$index]\"><input type=\"submit\" name=\"$class\"".
+          " class=\"$style[$index]\" value=\"$title\"></div></td>";
+      } else {			 
+        $display.= "<div ".$notify." class=\"$style[$index]\"><a class=\"$style[$index]\" onclick=\"return true;\" href=\"javascript:document.mainform.arg.value='$class';document.mainform.submit();\">$title</a></div></td>";
+      }
+    }
+    $display.= "<td style=\"vertical-align:bottom;\">\n";
+    $display.= "<div class=\"tab_border\"> </div></td></tr></table>";
+
+    return($display);
+  }
+
+
+  function set_acl($acl)
+  {
+  	/* Look for attribute in ACL */
+	  trigger_error("Don't use tabs::set_acl() its obsolete.");
+  }
+
+  function delete()
+  {
+    /* Check if all plugins will ACK for deletion */
+    foreach (array_reverse($this->by_object) as $key => $obj){
+      $reason= $obj->allow_remove();
+      if ($reason != ""){
+        msg_dialog::display(_("Warning"), sprintf(_("Delete process has been canceled by plugin '%s': %s"), $key, $reason), WARNING_DIALOG);
+        return;
+      }
+    }
+
+    /* Delete for all plugins */
+    foreach (array_reverse($this->by_object) as $obj){
+      $obj->remove_from_parent();
+    }
+  }
+
+  function password_change_needed()
+  {
+    /* Ask all plugins for needed password changes */
+    foreach ($this->by_object as &$obj){
+      if ($obj->password_change_needed()){
+        return TRUE;
+      }
+    }
+
+    return FALSE;
+  }
+
+  function check($ignore_account= FALSE)
+  {
+    $this->save_object(TRUE);
+    $messages= array();
+
+    $current_set = FALSE;
+
+    /* Check all plugins */
+    foreach ($this->by_object as $key => &$obj){
+      if ($obj->is_account || $ignore_account || $obj->ignore_account){
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$key, "Checking");
+
+        if(!$this->multiple_support_active){
+          $msg = $obj->check();
+        }else{
+          $msg = $obj->multiple_check();
+        }
+
+        if (count($msg)){
+          $obj->pl_notify= TRUE;
+          if(!$current_set){
+            $current_set = TRUE;
+            $this->current= $key;
+            $messages = $msg;
+          }
+        }else{
+          $obj->pl_notify= FALSE;
+        }
+      }else{
+        $obj->pl_notify= FALSE;
+      }
+    }
+    return ($messages);
+  }
+
+  function save($ignore_account= FALSE)
+  {
+    /* Save all plugins */
+    foreach ($this->by_object as $key => &$obj){
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+          $key, "Saving");
+
+      $obj->dn= $this->dn;
+
+      if(!$obj instanceof plugin && !$obj instanceOf management){
+        trigger_error("Something went wrong while saving ".$obj->dn.". Object class '".get_class($obj)."'.");
+      }else{
+
+        if ($obj->is_account || $ignore_account || $obj->ignore_account){
+          if ($obj->save() == 1){
+            return (1);
+          }
+        } else {
+          $obj->remove_from_parent();
+        }
+      }
+    }
+    return (0);
+  }
+
+  function adapt_from_template($dn, $skip= array())
+  {
+    foreach ($this->by_object as $key => &$obj){
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+          $key, "Adapting");
+      $obj->parent= &$this;
+      $obj->adapt_from_template($dn, $skip);
+    }
+  }
+
+	
+  /* Save attributes posted by copy & paste dialog
+   */
+  function saveCopyDialog()
+  {
+	  foreach ($this->by_object as &$obj){
+		  if($obj->is_account || $obj->ignore_account){
+			  $obj->saveCopyDialog();
+		  }
+	  }
+  }
+
+
+  /* return copy & paste dialog
+   */
+  function getCopyDialog()
+  {
+    $ret = "";
+    $this->SubDialog = false;
+    foreach ($this->by_object as &$obj){
+      if($obj->is_account || $obj->ignore_account){
+        $tmp = $obj->getCopyDialog();
+        if($tmp['status'] == "SubDialog"){
+          $this->SubDialog = true;
+          return($tmp['string']);
+        }else{
+          if(!empty($tmp['string'])){
+            $ret .= $tmp['string'];
+            $ret .= "<p class='seperator'> </p>";
+          }
+        }
+      }
+    }
+    return($ret);
+  }
+
+
+  function addSpecialTabs()
+  {
+    if(!$this->hide_acls){
+      $this->by_name['acl']= _("ACL");
+      $this->by_object['acl']= new acl($this->config, $this, $this->dn);
+      $this->by_object['acl']->parent= &$this;
+    }
+    if(!$this->hide_refs){
+      $this->by_name['reference']= _("References");
+      $this->by_object['reference']= new reference($this->config, $this->dn);
+      $this->by_object['reference']->parent= &$this;
+    }
+  }
+
+
+  function set_acl_base($base= "")
+  {
+    /* Update reference, transfer variables */
+    $first= ($base == "");
+    foreach ($this->by_object as &$obj){
+      if ($first){
+        $first= FALSE;
+        $base= $obj->acl_base;
+      } else {
+        $obj->set_acl_base($base);
+      }
+    }
+  }
+
+ 
+  /*!   \brief    Checks if one of the used tab plugins supports multiple edit.
+        @param    boolean Returns TRUE if at least one plugins supports multiple edit. 
+  */
+  function multiple_support_available()
+  {
+    foreach($this->by_object as $name => $obj){
+      if($obj->multiple_support){
+        return(TRUE);
+      }
+    }
+    return(FALSE);
+  }  
+
+
+  /*!   \brief    Enables multiple edit support for the given tab.
+                  All unsupported plugins will be disabled.
+        @param    boolean Returns TRUE if at least one plugin supports multiple edit 
+  */
+  function enable_multiple_support()
+  {
+    if(!$this->multiple_support_available()){
+      return(FALSE);
+    }else{
+      $this->multiple_support_active = TRUE;
+      foreach($this->by_object as $name => $obj){
+        if($obj->multiple_support){
+          $this->by_object[$name]->enable_multiple_support();
+        }else{
+          unset($this->by_object[$name]);
+          unset($this->by_name[$name]);
+        }
+      }
+    }
+    return(TRUE);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/class_userinfo.inc b/gosa-core/include/class_userinfo.inc
new file mode 100644
index 0000000..d541e3b
--- /dev/null
+++ b/gosa-core/include/class_userinfo.inc
@@ -0,0 +1,779 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_userinfo.inc 17912 2010-04-28 13:45:23Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class userinfo
+{
+  var $dn;
+  var $ip;
+  var $username;
+  var $cn;
+  var $uid;
+  var $restrictions= array();
+  var $gidNumber= -1;
+  var $language= "";
+  var $config;
+  var $gosaUnitTag= "";
+  var $subtreeACL= array();
+  var $ACL= array();
+  var $ocMapping= array();
+  var $groups= array();
+  var $result_cache =array();
+  var $ignoreACL = FALSE;
+  var $ACLperPath = array();
+  var $ACLperPath_usesFilter = array();
+
+  /* get acl's an put them into the userinfo object
+     attr subtreeACL (userdn:components, userdn:component1#sub1#sub2,component2,...) */
+  function userinfo(&$config, $userdn){
+    $this->config= &$config;
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cat($userdn,array('sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage', 'gosaUnitTag', 'gosaLoginRestriction'));
+    $attrs= $ldap->fetch();
+
+    if (isset($attrs['givenName'][0]) && isset($attrs['sn'][0])){
+      $this->cn= $attrs['givenName'][0]." ".$attrs['sn'][0];
+    } else {
+      $this->cn= $attrs['uid'][0];
+    }
+    if (isset($attrs['gidNumber'][0])){
+      $this->gidNumber= $attrs['gidNumber'][0];
+    }
+
+    /* Restrictions? */
+    if (isset($attrs['gosaLoginRestriction'])){
+      $this->restrictions= $attrs['gosaLoginRestriction'];
+      unset($this->restrictions['count']);
+    }
+
+    /* Assign user language */
+    if (isset($attrs['preferredLanguage'][0])){
+      $this->language= $attrs['preferredLanguage'][0];
+    }
+
+    if (isset($attrs['gosaUnitTag'][0])){
+      $this->gosaUnitTag= $attrs['gosaUnitTag'][0];
+    }
+
+    $this->dn= $userdn;
+    $this->uid= $attrs['uid'][0];
+    $this->ip= $_SERVER['REMOTE_ADDR'];
+
+    $this->ignoreACL = ($this->config->get_cfg_value("ignoreAcl") == $this->dn);
+
+    /* Initialize ACL_CACHE */
+    $this->reset_acl_cache();
+  }
+
+
+  public function reset_acl_cache()
+  {
+    /* Initialize ACL_CACHE */
+    session::global_set('ACL_CACHE',array());
+  }
+
+  function loadACL()
+  {
+    $this->ACL= array();    
+    $this->groups= array();    
+    $this->result_cache =array();
+    $this->reset_acl_cache();
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+
+    /* Get member groups... */
+    $ldap->search("(&(objectClass=posixGroup)(memberUid=".$this->uid."))", array('dn'));
+    while ($attrs= $ldap->fetch()){
+      $this->groups[$attrs['dn']]= $attrs['dn'];
+    }
+
+    /* Crawl through ACLs and move relevant to the tree */
+    $ldap->search("(objectClass=gosaACL)", array('dn', 'gosaAclEntry'));
+    $aclp= array();
+    $aclc= array();
+    while ($attrs= $ldap->fetch()){
+
+      /* Insert links in ACL array */
+      $aclp[$attrs['dn']]= substr_count($attrs['dn'], ',');
+      $aclc[$attrs['dn']]= array();
+      $ol= array();
+      for($i= 0; $i<$attrs['gosaAclEntry']['count']; $i++){
+        $ol= array_merge($ol, @acl::explodeAcl($attrs['gosaAclEntry'][$i]));
+      }
+      $aclc[$attrs['dn']]= $ol;
+    }
+
+    /* Resolve roles here. 
+     */
+    foreach($aclc as $dn => $data){
+      foreach($data as $prio => $aclc_value)  {
+        if($aclc_value['type'] == "role"){
+
+          unset($aclc[$dn][$prio]);
+
+          $ldap->cat($aclc_value['acl'],array("gosaAclTemplate"));
+          $attrs = $ldap->fetch();
+
+          if(isset($attrs['gosaAclTemplate'])){
+            for($i= 0; $i<$attrs['gosaAclTemplate']['count']; $i++){
+              $tmp = @acl::explodeAcl($attrs['gosaAclTemplate'][$i]);  
+
+              foreach($tmp as $new_acl){
+
+                /* Keep non role attributes here! */
+                $new_acl['filter'] = $aclc_value['filter'];
+                $new_acl['members'] = $aclc_value['members'];
+                $aclc[$dn][] =$new_acl;
+              }
+            }      
+          }
+        }
+      }
+    }
+
+    /* ACL's read, sort for tree depth */
+    asort($aclp);
+
+    /* Sort in tree order */
+    foreach ($aclp as $dn => $acl){
+      /* Check if we need to keep this ACL */
+      foreach($aclc[$dn] as $idx => $type){
+        $interresting= FALSE;
+        
+        /* No members? This ACL rule is deactivated ... */
+        if (!count($type['members'])){
+          $interresting= FALSE; 
+        } else {
+
+          /* Inspect members... */
+          foreach ($type['members'] as $grp => $grpdsc){
+
+            /* Some group inside the members that is relevant for us? */
+            if (in_array_ics(@LDAP::convert(preg_replace('/^G:/', '', $grp)), $this->groups)){
+              $interresting= TRUE;
+            }
+
+            /* User inside the members? */
+            if (preg_replace('/^U:/', '', $grp) == $this->dn){
+              $interresting= TRUE;
+            }
+
+            /* Wildcard? */
+            if (preg_match('/^G:\*/',  $grp)){
+              $interresting= TRUE;
+            }
+          }
+        }
+
+        if ($interresting){
+          if (!isset($this->ACL[$dn])){
+            $this->ACL[$dn]= array();
+          }
+          $this->ACL[$dn][$idx]= $type;
+        }
+      }
+    }
+
+    /* Create an array which represenet all relevant permissions settings 
+        per dn.
+
+      The array will look like this:
+      
+      .     ['ou=base']        ['ou=base']          = array(ACLs);
+      .     
+      .     ['ou=dep1,ou=base']['ou=dep1,ou=base']  = array(ACLs);
+      .                        ['ou=base']          = array(ACLs);
+
+
+      For object located in 'ou=dep1,ou=base' we have to both ACLs,
+       for objects in 'ou=base' we only have to apply on ACL.
+     */
+    $without_self_acl = $all_acl = array();
+    foreach($this->ACL as $dn => $acl){
+      $sdn =$dn;
+      $first= TRUE; // Run at least once 
+      while(strpos($dn,",") !== FALSE || $first){
+        $first = FALSE;
+        if(isset($this->ACL[$dn])){
+          $all_acl[$sdn][$dn] = $this->ACL[$dn];
+          $without_self_acl[$sdn][$dn] = $this->ACL[$dn]; 
+          foreach($without_self_acl[$sdn][$dn] as $acl_id => $acl_set){
+  
+            /* Remember which ACL set has speicial user filter 
+             */
+            if(isset($acl_set['filter']{1})){
+              $this->ACLperPath_usesFilter[$sdn] = TRUE;
+            }
+          
+            /* Remove all acl entries which are especially for the current user (self acl)
+             */
+            foreach($acl_set['acl'] as $object => $object_acls){
+              if(isset($object_acls[0]) && strpos($object_acls[0],"s")){
+                unset($without_self_acl[$sdn][$dn][$acl_id]['acl'][$object]);
+              }
+            }
+          }
+        }
+        $dn = preg_replace("/^[^,]*+,/","",$dn);
+      }
+    } 
+    $this->ACLperPath =$without_self_acl;
+
+    /* Append Self entry */
+    $dn = $this->dn;
+    while(strpos($dn,",") && !isset($all_acl[$dn])){
+      $dn = preg_replace("/^[^,]*+,/","",$dn);
+    }
+    if(isset($all_acl[$dn])){
+      $this->ACLperPath[$this->dn] = $all_acl[$dn];
+    }
+  }
+
+
+  /* Returns an array containing all target objects we've permssions on.
+   */
+  function get_acl_target_objects()
+  {
+    return(array_keys($this->ACLperPath));
+  }
+  
+
+  function get_category_permissions($dn, $category, $any_acl = FALSE)
+  {
+    return(@$this->get_permissions($dn,$category.'/0',""));
+  }
+
+  
+  /*! \brief Check if the given object (dn) is copyable
+      @param  String The object dn 
+      @param  String The acl  category (e.g. users) 
+      @param  String The acl  class (e.g. user) 
+      @return Boolean   TRUE if the given object is copyable else FALSE 
+  */
+  function is_copyable($dn, $object, $class)
+  {
+    return(preg_match("/r/",$this->has_complete_category_acls($dn, $object)));
+  }
+
+
+  /*! \brief Check if the given object (dn) is cutable
+      @param  String The object dn 
+      @param  String The acl  category (e.g. users) 
+      @param  String The acl  class (e.g. user) 
+      @return Boolean   TRUE if the given object is cutable else FALSE 
+  */
+  function is_cutable($dn, $object, $class)
+  {
+    $remove = preg_match("/d/",$this->get_permissions($dn,$object."/".$class));
+    $read   = preg_match("/r/",$this->has_complete_category_acls($dn, $object));
+    return($remove && $read);
+  }
+
+
+  /*! \brief  Checks if we are allowed to paste an object to the given destination ($dn)
+      @param  String The destination dn 
+      @param  String The acl  category (e.g. users) 
+      @param  String The acl  class (e.g. user) 
+      @return Boolean   TRUE if we are allowed to paste an object.
+  */
+  function is_pasteable($dn, $object)
+  {
+    return(preg_match("/w/",$this->has_complete_category_acls($dn, $object)));
+  }
+
+
+  /*! \brief  Checks if we are allowed to restore a snapshot for the given dn.
+      @param  String The destination dn 
+      @param  String The acl  category (e.g. users) 
+      @return Boolean   TRUE if we are allowed to restore a snapshot.
+  */
+  function allow_snapshot_restore($dn, $object)
+  {
+    if(!is_array($object)){
+      $object = array($object);
+    }
+    $r = $w = TRUE;
+    foreach($object as $category){
+      $w &= preg_match("/w/",$this->has_complete_category_acls($dn, $category));
+      $r &= preg_match("/r/",$this->has_complete_category_acls($dn, $category));
+    }
+    return($r && $w ); 
+  }  
+
+
+  /*! \brief  Checks if we are allowed to create a snapshot of the given dn.
+      @param  String The source dn 
+      @param  String The acl category (e.g. users) 
+      @return Boolean   TRUE if we are allowed to restore a snapshot.
+  */
+  function allow_snapshot_create($dn, $object)
+  {
+    if(!is_array($object)){
+      $object = array($object);
+    }
+    $r = TRUE;
+    foreach($object as $category){
+      $r &= preg_match("/r/",$this->has_complete_category_acls($dn, $category));
+    }
+    return($r) ; 
+  }  
+
+
+  function get_permissions($dn, $object, $attribute= "", $skip_write= FALSE)
+  {
+    /* If we are forced to skip ACLs checks for the current user 
+        then return all permissions.
+     */
+    if($this->ignore_acl_for_current_user()){
+      if($skip_write){
+        return("rcdm");
+      }
+      return("rwcdm");
+    }
+
+    /* Push cache answer? */
+    $ACL_CACHE = &session::global_get('ACL_CACHE');
+    if (isset($ACL_CACHE["$dn+$object+$attribute"])){
+      $ret = $ACL_CACHE["$dn+$object+$attribute"];
+      if($skip_write){
+        $ret = str_replace(array('w','c','d','m'), '',$ret);
+      }
+      return($ret);
+    }
+
+    /* Detect the set of ACLs we have to check for this object 
+     */
+    $adn = $dn;
+    while(!isset($this->ACLperPath[$adn]) && strpos($adn,",") !== FALSE){
+      $adn = preg_replace("/^[^,]*+,/","",$adn);
+    }
+    if(isset($this->ACLperPath[$adn])){
+      $ACL = $this->ACLperPath[$adn];
+    }else{
+      $ACL_CACHE["$dn+$object+$attribute"] = "";
+      return("");
+    }
+ 
+    /* If we do not need to respect any user-filter settings 
+        we can skip the per object ACL checks.
+     */
+    $orig_dn= $dn;
+    if(!isset($this->ACLperPath_usesFilter[$adn])){
+      $dn = $adn;
+      if (isset($ACL_CACHE["$dn+$object+$attribute"])){
+        $ret = $ACL_CACHE["$dn+$object+$attribute"];
+        if(!isset($ACL_CACHE["$orig_dn+$object+$attribute"])){
+          $ACL_CACHE["$orig_dn+$object+$attribute"] = $ACL_CACHE["$dn+$object+$attribute"];
+        }
+        if($skip_write){
+          $ret = str_replace('w','',$ret);
+        }
+        return($ret);
+      }
+    }
+ 
+    /* Get ldap object, for later filter checks 
+     */
+    $ldap = $this->config->get_ldap_link();
+
+    $acl= array("r" => "", "w" => "", "c" => "", "d" => "", "m" => "", "a" => "");
+
+    /* Build dn array */
+    $path= explode(',', $dn);
+    $path= array_reverse($path);
+
+    /* Walk along the path to evaluate the acl */
+    $cpath= "";
+    foreach ($path as $element){
+
+      /* Clean potential ACLs for each level */
+			if(isset($this->config->idepartments[$cpath])){
+        $acl= $this->cleanACL($acl);
+      }
+
+      if ($cpath == ""){
+        $cpath= $element;
+      } else {
+        $cpath= $element.','.$cpath;
+      }
+
+      if (isset($ACL[$cpath])){
+
+        /* Inspect this ACL, place the result into ACL */
+        foreach ($ACL[$cpath] as $subacl){
+
+          /* Reset? Just clean the ACL and turn over to the next one... */
+          if ($subacl['type'] == 'reset'){
+            $acl= $this->cleanACL($acl, TRUE);
+            continue;
+          }
+
+          if($subacl['type'] == "role") {
+            echo "role skipped";
+            continue;
+          }
+
+          /* With user filter */
+          if (isset($subacl['filter']) && !empty($subacl['filter'])){
+            $id = $dn."-".$subacl['filter'];
+            if(!isset($ACL_CACHE['FILTER'][$id])){
+              $ACL_CACHE['FILTER'][$id] = $ldap->object_match_filter($dn,$subacl['filter']);
+            }
+            if(!$ACL_CACHE['FILTER'][$id]){
+              continue;
+            }
+          }
+
+          /* Self ACLs? 
+           */
+          if($dn != $this->dn && isset($subacl['acl'][$object][0]) && (strpos($subacl['acl'][$object][0],"s") !== FALSE)){
+            continue;
+          }
+
+          /* If attribute is "", we want to know, if we've *any* permissions here... 
+              Merge global class ACLs [0] with attributes specific ACLs [attribute].
+           */
+          if ($attribute == "" && isset($subacl['acl'][$object])){
+            foreach($subacl['acl'][$object] as $attr => $dummy){
+              $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][$attr]);
+            }
+            continue;
+          }
+
+          /* Per attribute ACL? */
+          if (isset($subacl['acl'][$object][$attribute])){
+            $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][$attribute]);
+            continue;
+          }
+
+          /* Per object ACL? */
+          if (isset($subacl['acl'][$object][0])){
+            $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][0]);
+            continue;
+          }
+
+          /* Global ACL? */
+          if (isset($subacl['acl']['all'][0])){
+            $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl']['all'][0]);
+            continue;
+          }
+
+          /* Category ACLs    (e.g. $object = "user/0")
+           */
+          if(strstr($object,"/0")){
+            $ocs = preg_replace("/\/0$/","",$object);
+            if(isset($this->ocMapping[$ocs])){
+
+              /* if $attribute is "", then check every single attribute for this object.
+                 if it is 0, then just check the object category ACL.
+               */
+              if($attribute == ""){    
+                foreach($this->ocMapping[$ocs] as $oc){
+                  if (isset($subacl['acl'][$ocs.'/'.$oc])){
+
+                      // Skip ACLs wich are defined for ourselfs only - if not checking against ($ui->dn)
+                      if(isset($subacl['acl'][$ocs.'/'.$oc][0]) && 
+                              $dn != $this->dn && 
+                              strpos($subacl['acl'][$ocs.'/'.$oc][0],"s") !== FALSE) continue;
+
+                    foreach($subacl['acl'][$ocs.'/'.$oc] as $attr => $dummy){
+                      $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$ocs.'/'.$oc][$attr]);
+                    }
+                    continue;
+                  }
+                }
+              }else{
+                if(isset($subacl['acl'][$ocs.'/'.$oc][0])){
+                  if($dn != $this->dn && strpos($subacl['acl'][$ocs.'/'.$oc][0],"s") !== FALSE) continue;
+                  $acl= $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$ocs.'/'.$oc][0]);
+                }
+              }
+            }
+            continue;
+          }
+        }
+      }
+    }
+
+    /* If the requested ACL is for a container object, then alter 
+        ACLs by applying cleanACL a last time.
+     */
+    if(isset($this->config->idepartments[$dn])){
+      $acl = $this->cleanACL($acl);
+    }
+
+    /* Assemble string */
+    $ret= "";
+    foreach ($acl as $key => $value){
+      if ($value !== ""){
+        $ret.= $key;
+      }
+    }
+
+    $ACL_CACHE["$dn+$object+$attribute"]= $ret;
+    $ACL_CACHE["$orig_dn+$object+$attribute"]= $ret;
+
+    /* Remove write if needed */
+    if ($skip_write){
+      $ret = str_replace(array('w','c','d','m'), '',$ret);
+    }
+    return ($ret);
+  }
+
+
+  /* Extract all departments that are accessible (direct or 'on the way' to an
+     accessible department) */
+  function get_module_departments($module, $skip_self_acls = FALSE )
+  {
+    /* If we are forced to skip ACLs checks for the current user 
+        then return all departments as valid.
+     */
+    if($this->ignore_acl_for_current_user()){
+      return(array_keys($this->config->idepartments));
+    }
+
+    /* Use cached results if possilbe */
+    $ACL_CACHE = &session::global_get('ACL_CACHE');
+
+    if(!is_array($module)){
+      $module = array($module);
+    }
+
+    global $plist;
+    $res = array();
+    foreach($module as $mod){
+      if(isset($ACL_CACHE['MODULE_DEPARTMENTS'][$mod])){
+        $res = array_merge($res,$ACL_CACHE['MODULE_DEPARTMENTS'][$mod]);
+        continue;
+      }
+
+      $deps = array();
+
+      /* Search for per object ACLs */
+      foreach($this->ACL as $dn => $infos){
+        foreach($infos as $info){
+          $found = FALSE;
+          foreach($info['acl'] as $cat => $data){
+
+            /* Skip self acls? */
+            if($skip_self_acls && isset($data['0']) && (strpos($data['0'], "s") !== FALSE)) continue;
+            if(preg_match("/^".preg_quote($mod, '/')."/",$cat)){
+              $found =TRUE;
+              break;
+            }
+          } 
+
+          if($found && !isset($this->config->idepartments[$dn])){
+            while(!isset($this->config->idepartments[$dn]) && strpos($dn, ",")){
+              $dn = preg_replace("/^[^,]+,/","",$dn);
+            }
+            if(isset($this->config->idepartments[$dn])){
+              $deps[$dn] = $dn;
+            }
+          }
+        }
+      }
+
+      /* For all gosaDepartments */
+      foreach ($this->config->departments as $dn){
+        if(isset($deps[$dn])) continue;
+        $acl = "";
+        if(strpos($mod, '/')){
+          $acl.=  $this->get_permissions($dn,$mod);
+        }else{
+          $acl.=  $this->get_category_permissions($dn,$mod,TRUE);
+        }
+        if(!empty($acl)) {
+          $deps[$dn] = $dn;
+        }
+      }
+
+      $ACL_CACHE['MODULE_DEPARTMENTS'][$mod] = $deps;
+      $res = array_merge($res,$deps);
+    }
+
+    return (array_values($res));
+  }
+
+
+  function mergeACL($acl, $type, $newACL)
+  {
+		$at= array("psub" => "p", "sub" => "s", "one" => "1");
+
+    if (strpos($newACL, 'w') !== FALSE && strpos($newACL, 'r') === FALSE){
+      $newACL .= "r";
+    }
+
+		/* Ignore invalid characters */
+		$newACL= preg_replace('/[^rwcdm]/', '', $newACL);
+
+    foreach(str_split($newACL) as $char){
+
+      /* Skip "self" ACLs without combination of rwcdm, they have no effect.
+         -self flag without read/write/create/...
+       */
+      if(empty($char)) continue;
+
+      /* Skip permanent and subtree entries */
+      if (preg_match('/[sp]/', $acl[$char])){
+        continue;
+      }
+
+			if ($type == "base" && $acl[$char] != 1) {
+				$acl[$char]= 0;
+			} else {
+        $acl[$char]= $at[$type];
+			}
+    }
+
+    return ($acl);
+  }
+
+
+  function cleanACL($acl, $reset= FALSE)
+  {
+    foreach ($acl as $key => $value){
+
+      /* Continue, if value is empty or permanent */
+      if ($value == "" || $value == "p") {
+	    continue;
+      }
+
+      /* Reset removes everything but 'p' */
+      if ($reset && $value != 'p'){
+        $acl[$key]= "";
+        continue;
+      }
+
+      /* Decrease tree level */
+      if (is_int($value)){
+        if ($value){
+          $acl[$key]--;
+        } else {
+          $acl[$key]= "";
+        }
+      }
+    }
+
+    return ($acl);
+  }
+
+
+  /* #FIXME This could be logical wrong or could be optimized in the future
+     Return combined acls for a given category. 
+     All acls will be combined like boolean AND 
+      As example ('rwcdm' + 'rcd' + 'wrm'= 'r') 
+    
+     Results will be cached in $this->result_cache.
+      $this->result_cache will be resetted if load_acls is called.
+  */
+  function has_complete_category_acls($dn,$category)
+  {
+    $acl    = "rwcdm";
+    $types  = "rwcdm";
+
+    if(!is_string($category)){
+      trigger_error("category must be string");   
+      $acl = "";
+    }else{
+      if(!isset($this->result_cache['has_complete_category_acls'][$dn][$category]))   {
+        if (isset($this->ocMapping[$category])){
+          foreach($this->ocMapping[$category] as $oc){
+
+            /* Skip objectClass '0' (e.g. users/0) get_permissions will ever return '' ??  */
+            if($oc == "0") continue;
+            $tmp =  $this->get_permissions($dn, $category."/".$oc);
+            for($i = 0, $l= strlen($types); $i < $l; $i++) {
+              if(!preg_match("/".$types[$i]."/",$tmp)){ 
+                $acl = preg_replace("/".$types[$i]."/","",$acl);
+              }
+            }
+          }
+        }else{
+          trigger_error("Invalid type of category ".$category);
+          $acl = "";
+        }
+        $this->result_cache['has_complete_category_acls'][$dn][$category] = $acl;
+      }else{
+        $acl = $this->result_cache['has_complete_category_acls'][$dn][$category];
+      }
+    }
+    return($acl);
+  }
+
+ 
+  /*! \brief  Returns TRUE if the current user is configured in IGNORE_ACL=".." in your gosa.conf 
+      @param  Return Boolean TRUE if we have to skip ACL checks else FALSE.
+   */ 
+  function ignore_acl_for_current_user()
+  {
+    return($this->ignoreACL);
+  }
+
+
+  function loginAllowed()
+  {
+    // Need to check restrictions?
+    if (count($this->restrictions)){
+
+      // We have restrictions but cannot check them
+      if (!isset($_SERVER['REMOTE_ADDR'])){
+        return false;
+      }
+
+      // Move to binary...
+      $source= $_SERVER['REMOTE_ADDR'];
+      foreach ($this->restrictions as $restriction) {
+
+        // Single IP
+        if (preg_match('/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/', $restriction)) {
+           if ($source == $restriction){
+             return true;
+           }
+        }
+
+        // Match with short netmask
+        if (preg_match('/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\/([0-9]+)$/', $restriction, $matches)) {
+          if (isIpInNet($source, $matches[1], long2ip(~(pow(2, (32-$matches[2]))-1)))) {
+            return true;
+          }
+        }
+
+        // Match with long netmask
+        if (preg_match('/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/', $restriction, $matches)) {
+          if (isIpInNet($source, $matches[1], $matches[2])) {
+            return true;
+          }
+        }
+
+      }
+
+      return false;
+    }
+
+    return true;
+  }
+
+}
+
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/exporter/class_PDF.inc b/gosa-core/include/exporter/class_PDF.inc
new file mode 100644
index 0000000..c6b6977
--- /dev/null
+++ b/gosa-core/include/exporter/class_PDF.inc
@@ -0,0 +1,29 @@
+<?php
+
+/* Avoid autoloading this class */ class PDF extends FPDF
+{
+  var $headline= "";
+
+  function setHeadline($headline)
+  {
+    $this->headline= $headline;
+  }
+
+
+  function Header()
+  {
+      $this->SetFont('Helvetica','B',10);
+      $this->Cell(0, 0, $this->headline, 0, 0, 'L');
+      $this->Ln(5);
+  }
+  
+  function Footer()
+  {
+      $this->SetY(-15);
+      $this->SetFont('Helvetica','I',8);
+      $this->Cell(0,10, _("Page")." ".$this->PageNo().'/{nb}',0,0,'C');
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/exporter/class_cvsExporter.inc b/gosa-core/include/exporter/class_cvsExporter.inc
new file mode 100644
index 0000000..5c7b076
--- /dev/null
+++ b/gosa-core/include/exporter/class_cvsExporter.inc
@@ -0,0 +1,53 @@
+<?php
+
+class csvExporter
+{
+  var $result;
+
+  function csvExporter($headline, $header, $entries, $columns= array()) {
+    // If no preset, render all columns
+    if (!count($columns)) {
+      foreach ($header as $index => $dummy) {
+        $columns[]= $index;
+      }
+    }
+    
+    // Generate header
+    $this->result= "#";
+    foreach ($columns as $index) {
+      if (isset($header[$index])){
+        $this->result.= trim($header[$index]).";";
+      } else {
+        $this->result.= ";";
+      }
+    }
+    $this->result= preg_replace('/;$/', '', $this->result)."\n";
+
+    // Append entries
+    foreach ($entries as $row) {
+      foreach ($columns as $index) {
+        if (isset($row["_sort$index"])){
+          $this->result.= trim($row["_sort$index"]).";";
+        } else {
+          $this->result.= ";";
+        }
+      }
+      $this->result= preg_replace('/;$/', '', $this->result)."\n";
+    }
+  }
+
+
+  function query()
+  {
+     return $this->result;
+  }
+
+
+  static function getInfo()
+  {
+    return array("exportCVS" => array( "label" => _("CSV"), "image" => "images/lists/csv.png", "class"=> "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ));
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/exporter/class_pdfExporter.inc b/gosa-core/include/exporter/class_pdfExporter.inc
new file mode 100644
index 0000000..d1c836e
--- /dev/null
+++ b/gosa-core/include/exporter/class_pdfExporter.inc
@@ -0,0 +1,154 @@
+<?php
+// Try to load PDF library
+ at include_once('fpdf/fpdf.php');
+
+// Load supporter class only if FPDF is loaded
+$classes= get_declared_classes();
+if(in_array('FPDF', $classes)) {
+  include('class_PDF.inc');
+}
+
+class pdfExporter
+{
+  var $result;
+
+  function pdfExporter($headline, $header, $entries, $columns= array()) {
+    // Bail out if no FPDF available
+    if(!class_exists('FPDF')) {
+      die(_("No PDF export possible: there is no FPDF library installed."));
+    }
+
+    // If no preset, render all columns
+    if (!count($columns)) {
+      foreach ($header as $index => $dummy) {
+        $columns[]= $index;
+      }
+    }
+
+    // Create new PDF
+    $this->result=new PDF('L', 'mm', 'A4');
+    $this->result->AliasNbPages();
+    $this->result->SetFont('Helvetica', '', 10);
+    $this->result->setHeadline(utf8_decode($headline));
+    $this->result->AddPage();
+
+    // Analyze for width
+    $width= $this->calcWidth($header, $entries, $columns);
+    
+    // Render head
+    $this->result->SetFont('','B');
+    $this->result->SetTextColor(0);
+    $this->result->SetDrawColor(0,0,0);
+    $this->result->SetLineWidth(.3);
+
+    // Height calculator
+    $height= 0;
+
+    $fill= false;
+    foreach ($entries as $row) {
+      // Render header
+      if ($height == 0) {
+        // Generate header
+        $this->result->SetFillColor(230,230,230);
+        $this->result->SetFont('','B');
+
+        foreach ($columns as $order => $index) {
+          if (isset($header[$index])){
+            $this->result->Cell($width[$order], 7, utf8_decode($header[$index]), 1, 0, 'C', 1);
+          } else {
+            $this->result->Cell($width[$order], 7, '', 1, 0, 'C', 1);
+          }
+        }
+        $this->result->Ln();
+        $height= 7;
+
+        // Set entry collors
+        $this->result->SetFillColor(240,240,240);
+        $this->result->SetFont('');
+      }
+
+      foreach ($columns as $order => $index) {
+
+        if (isset($row["_sort$index"])){
+          $this->result->Cell($width[$order], 6, utf8_decode($row["_sort$index"]), 'LR', 0, 'L', $fill);
+        } else {
+          $this->result->Cell($width[$order], 6, '', 'LR', 0, 'L', $fill);
+        }
+      }
+
+      $this->result->Ln();
+
+      // Increase height to eventually create new page
+      $height+= 8;
+      if ($height > 220) {
+        $height= 0;
+        $this->result->Cell(array_sum($width), 0, '', 'T');
+        $this->result->AddPage();
+        $fill= false;
+      } else {
+        $fill= !$fill;
+      }
+    }
+    $this->result->Cell(array_sum($width), 0, '', 'T');
+  }
+
+
+  function calcWidth($header, $entries, $columns)
+  {
+    $width= array();
+
+    // Locate longest value for each column
+    foreach ($columns as $order => $index) {
+      $max= 0;
+
+      if (isset($header[$index])){
+        $len= $this->result->GetStringWidth($header[$index]);
+        if ($len > $max) {
+          $max= $len;
+        }
+      }
+
+      foreach ($entries as $row) {
+        if (isset($row["_sort$index"])){
+          $len= $this->result->GetStringWidth($row["_sort$index"]);
+          if ($len > $max) {
+            $max= $len;
+          }
+        }
+      }
+
+      $width[]= $max;
+    }
+
+    // Scale to page width
+    $printWidth= 280;
+    $scale= $printWidth / array_sum($width);
+    foreach ($width as $index => $w) {
+      $width[$index]= (int)($width[$index] * $scale);
+    }
+
+    return $width;
+  }
+
+
+  function query()
+  {
+     return $this->result->Output("", "S");
+  }
+
+
+  static function getInfo()
+  {
+    // 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" ));
+    } else {
+      return null;
+    }
+
+  }
+
+}
+
+?>
diff --git a/gosa-core/include/functions.inc b/gosa-core/include/functions.inc
new file mode 100644
index 0000000..913d2c8
--- /dev/null
+++ b/gosa-core/include/functions.inc
@@ -0,0 +1,3521 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: functions.inc 13100 2008-12-01 14:07:48Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \file
+ * Common functions and named definitions. */
+
+/* Configuration file location */
+if(!isset($_SERVER['CONFIG_DIR'])){
+  define ("CONFIG_DIR", "/etc/gosa");
+}else{
+  define ("CONFIG_DIR",$_SERVER['CONFIG_DIR']);
+}
+
+/* Allow setting the config file in the apache configuration
+    e.g.  SetEnv CONFIG_FILE gosa.conf.2.6
+ */
+if(!isset($_SERVER['CONFIG_FILE'])){
+  define ("CONFIG_FILE", "gosa.conf");
+}else{
+  define ("CONFIG_FILE",$_SERVER['CONFIG_FILE']);
+}
+
+/* Define common locatitions */
+define ("CONFIG_TEMPLATE_DIR", "../contrib");
+define ("TEMP_DIR","/var/cache/gosa/tmp");
+
+/* Define get_list flags */
+define("GL_NONE",         0);
+define("GL_SUBSEARCH",    1);
+define("GL_SIZELIMIT",    2);
+define("GL_CONVERT",      4);
+define("GL_NO_ACL_CHECK", 8);
+
+/* Heimdal stuff */
+define('UNIVERSAL',0x00);
+define('INTEGER',0x02);
+define('OCTET_STRING',0x04);
+define('OBJECT_IDENTIFIER ',0x06);
+define('SEQUENCE',0x10);
+define('SEQUENCE_OF',0x10);
+define('SET',0x11);
+define('SET_OF',0x11);
+define('DEBUG',false);
+define('HDB_KU_MKEY',0x484442);
+define('TWO_BIT_SHIFTS',0x7efc);
+define('DES_CBC_CRC',1);
+define('DES_CBC_MD4',2);
+define('DES_CBC_MD5',3);
+define('DES3_CBC_MD5',5);
+define('DES3_CBC_SHA1',16);
+
+/* Define globals for revision comparing */
+$svn_path = '$HeadURL: https://oss.gonicus.de/repositories/gosa/tags/2.6.10/gosa-core/include/functions.inc $';
+$svn_revision = '$Revision: 17589 $';
+
+/* Include required files */
+require_once("class_location.inc");
+require_once ("functions_debug.inc");
+require_once ("accept-to-gettext.inc");
+
+/* Define constants for debugging */
+define ("DEBUG_TRACE",   1); /*! Debug level for tracing of common actions (save, check, etc.) */
+define ("DEBUG_LDAP",    2); /*! Debug level for LDAP queries */
+define ("DEBUG_MYSQL",   4); /*! Debug level for mysql operations */
+define ("DEBUG_SHELL",   8); /*! Debug level for shell commands */
+define ("DEBUG_POST",   16); /*! Debug level for POST content */
+define ("DEBUG_SESSION",32); /*! Debug level for SESSION content */
+define ("DEBUG_CONFIG", 64); /*! Debug level for CONFIG information */
+define ("DEBUG_ACL",    128); /*! Debug level for ACL infos */
+define ("DEBUG_SI",     256); /*! Debug level for communication with gosa-si */
+define ("DEBUG_MAIL",   512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
+define ("DEBUG_FAI",   1024); // FAI (incomplete)
+
+/* Rewrite german 'umlauts' and spanish 'accents'
+   to get better results */
+$REWRITE= array( "ä" => "ae",
+    "ö" => "oe",
+    "ü" => "ue",
+    "Ä" => "Ae",
+    "Ö" => "Oe",
+    "Ü" => "Ue",
+    "ß" => "ss",
+    "á" => "a",
+    "é" => "e",
+    "í" => "i",
+    "ó" => "o",
+    "ú" => "u",
+    "Á" => "A",
+    "É" => "E",
+    "Í" => "I",
+    "Ó" => "O",
+    "Ú" => "U",
+    "ñ" => "ny",
+    "Ñ" => "Ny" );
+
+
+/*! \brief Does autoloading for classes used in GOsa.
+ *
+ *  Takes the list generated by 'update-gosa' and loads the
+ *  file containing the requested class.
+ *
+ *  \param  string 'class_name' The currently requested class
+ */
+function __gosa_autoload($class_name) {
+    global $class_mapping, $BASE_DIR;
+
+    if ($class_mapping === NULL){
+	    echo sprintf(_("Fatal error: no class locations defined - please run '%s' to fix this"), "<b>update-gosa</b>");
+	    exit;
+    }
+
+    if (isset($class_mapping["$class_name"])){
+      require_once($BASE_DIR."/".$class_mapping["$class_name"]);
+    } else {
+      echo sprintf(_("Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"), $class_name, "<b>update-gosa</b>");
+      exit;
+    }
+}
+spl_autoload_register('__gosa_autoload');
+
+
+/*! \brief Checks if a class is available. 
+ *  \param  string 'name' The subject of the test
+ *  \return boolean True if class is available, else false.
+ */
+function class_available($name)
+{
+  global $class_mapping;
+  return(isset($class_mapping[$name]));
+}
+
+
+/*! \brief Check if plugin is available
+ *
+ * Checks if a given plugin is available and readable.
+ *
+ * \param string 'plugin' the subject of the check
+ * \return boolean True if plugin is available, else FALSE.
+ */
+function plugin_available($plugin)
+{
+	global $class_mapping, $BASE_DIR;
+
+	if (!isset($class_mapping[$plugin])){
+		return false;
+	} else {
+		return is_readable($BASE_DIR."/".$class_mapping[$plugin]);
+	}
+}
+
+
+/*! \brief Create seed with microseconds 
+ *
+ * Example:
+ * \code
+ * srand(make_seed());
+ * $random = rand();
+ * \endcode
+ *
+ * \return float a floating point number which can be used to feed srand() with it
+ * */
+function make_seed() {
+  list($usec, $sec) = explode(' ', microtime());
+  return (float) $sec + ((float) $usec * 100000);
+}
+
+
+/*! \brief Debug level action 
+ *
+ * Print a DEBUG level if specified debug level of the level matches the 
+ * the configured debug level.
+ *
+ * \param int 'level' The log level of the message (should use the constants,
+ * defined in functions.in (DEBUG_TRACE, DEBUG_LDAP, etc.)
+ * \param int 'line' Define the line of the logged action (using __LINE__ is common)
+ * \param string 'function' Define the function where the logged action happened in
+ * (using __FUNCTION__ is common)
+ * \param string 'file' Define the file where the logged action happend in
+ * (using __FILE__ is common)
+ * \param mixed 'data' The data to log. Can be a message or an array, which is printed
+ * with print_a
+ * \param string 'info' Optional: Additional information
+ *
+ * */
+function DEBUG($level, $line, $function, $file, $data, $info="")
+{
+  if (session::global_get('DEBUGLEVEL') & $level){
+    $output= "DEBUG[$level] ";
+    if ($function != ""){
+      $output.= "($file:$function():$line) - $info: ";
+    } else {
+      $output.= "($file:$line) - $info: ";
+    }
+    echo $output;
+    if (is_array($data)){
+      print_a($data);
+    } else {
+      echo "'$data'";
+    }
+    echo "<br>";
+  }
+}
+
+
+/*! \brief Determine which language to show to the user
+ *
+ * Determines which language should be used to present gosa content
+ * to the user. It does so by looking at several possibilites and returning
+ * the first setting that can be found.
+ *
+ * -# Language configured by the user
+ * -# Global configured language
+ * -# Language as returned by al2gt (as configured in the browser)
+ *
+ * \return string gettext locale string
+ */
+function get_browser_language()
+{
+  /* Try to use users primary language */
+  global $config;
+  $ui= get_userinfo();
+  if (isset($ui) && $ui !== NULL){
+    if ($ui->language != ""){
+      return ($ui->language.".UTF-8");
+    }
+  }
+
+  /* Check for global language settings in gosa.conf */
+  if (isset ($config) && $config->get_cfg_value('language') != ""){
+    $lang = $config->get_cfg_value('language');
+    if(!preg_match("/utf/i",$lang)){
+      $lang .= ".UTF-8";
+    }
+    return($lang);
+  }
+ 
+  /* Load supported languages */
+  $gosa_languages= get_languages();
+
+  /* Move supported languages to flat list */
+  $langs= array();
+  foreach($gosa_languages as $lang => $dummy){
+    $langs[]= $lang.'.UTF-8';
+  }
+
+  /* Return gettext based string */
+  return (al2gt($langs, 'text/html'));
+}
+
+
+/*! \brief Rewrite ui object to another dn 
+ *
+ * Usually used when a user is renamed. In this case the dn
+ * in the user object must be updated in order to point
+ * to the correct DN.
+ *
+ * \param string 'dn' the old DN
+ * \param string 'newdn' the new DN
+ * */
+function change_ui_dn($dn, $newdn)
+{
+  $ui= session::global_get('ui');
+  if ($ui->dn == $dn){
+    $ui->dn= $newdn;
+    session::global_set('ui',$ui);
+  }
+}
+
+
+/*! \brief Return themed path for specified base file
+ *
+ *  Depending on its parameters, this function returns the full
+ *  path of a template file. First match wins while searching
+ *  in this order:
+ *
+ *  - load theme depending file
+ *  - load global theme depending file
+ *  - load default theme file
+ *  - load global default theme file
+ *
+ *  \param  string 'filename' The base file name
+ *  \param  boolean 'plugin' Flag to take the plugin directory as search base
+ *  \param  string 'path' User specified path to take as search base
+ *  \return string Full path to the template file
+ */
+function get_template_path($filename= '', $plugin= FALSE, $path= "")
+{
+  global $config, $BASE_DIR;
+
+  /* Set theme */
+  if (isset ($config)){
+	$theme= $config->get_cfg_value("theme", "default");
+  } else {
+  	$theme= "default";
+  }
+
+  /* Return path for empty filename */
+  if ($filename == ''){
+    return ("themes/$theme/");
+  }
+
+  /* Return plugin dir or root directory? */
+  if ($plugin){
+    if ($path == ""){
+      $nf= preg_replace("!^".$BASE_DIR."/!", "", preg_replace('/^\.\.\//', '', session::global_get('plugin_dir')));
+    } else {
+      $nf= preg_replace("!^".$BASE_DIR."/!", "", $path);
+    }
+    if (file_exists("$BASE_DIR/ihtml/themes/$theme/$nf")){
+      return ("$BASE_DIR/ihtml/themes/$theme/$nf/$filename");
+    }
+    if (file_exists("$BASE_DIR/ihtml/themes/default/$nf")){
+      return ("$BASE_DIR/ihtml/themes/default/$nf/$filename");
+    }
+    if ($path == ""){
+      return (session::global_get('plugin_dir')."/$filename");
+    } else {
+      return ($path."/$filename");
+    }
+  } else {
+    if (file_exists("themes/$theme/$filename")){
+      return ("themes/$theme/$filename");
+    }
+    if (file_exists("$BASE_DIR/ihtml/themes/$theme/$filename")){
+      return ("$BASE_DIR/ihtml/themes/$theme/$filename");
+    }
+    if (file_exists("themes/default/$filename")){
+      return ("themes/default/$filename");
+    }
+    if (file_exists("$BASE_DIR/ihtml/themes/default/$filename")){
+      return ("$BASE_DIR/ihtml/themes/default/$filename");
+    }
+    return ($filename);
+  }
+}
+
+
+/*! \brief Remove multiple entries from an array
+ *
+ * Removes every element that is in $needles from the
+ * array given as $haystack
+ *
+ * \param array 'needles' array of the entries to remove
+ * \param array 'haystack' original array to remove the entries from
+ */
+function array_remove_entries($needles, $haystack)
+{
+  return (array_merge(array_diff($haystack, $needles)));
+}
+
+
+/*! \brief Remove multiple entries from an array (case-insensitive)
+ *
+ * Same as array_remove_entries(), but case-insensitive. */
+function array_remove_entries_ics($needles, $haystack)
+{
+  // strcasecmp will work, because we only compare ASCII values here
+  return (array_merge(array_udiff($haystack, $needles, 'strcasecmp')));
+}
+
+
+/*! Merge to array but remove duplicate entries
+ *
+ * Merges two arrays and removes duplicate entries. Triggers
+ * an error if first or second parametre is not an array.
+ *
+ * \param array 'ar1' first array
+ * \param array 'ar2' second array-
+ * \return array
+ */
+function gosa_array_merge($ar1,$ar2)
+{
+  if(!is_array($ar1) || !is_array($ar2)){
+    trigger_error("Specified parameter(s) are not valid arrays.");
+  }else{
+    return(array_values(array_unique(array_merge($ar1,$ar2))));
+  }
+}
+
+
+/*! \brief Generate a system log info
+ *
+ * Creates a syslog message, containing user information.
+ *
+ * \param string 'message' the message to log
+ * */
+function gosa_log ($message)
+{
+  global $ui;
+
+  /* Preset to something reasonable */
+  $username= "[unauthenticated]";
+
+  /* Replace username if object is present */
+  if (isset($ui)){
+    if ($ui->username != ""){
+      $username= "[$ui->username]";
+    } else {
+      $username= "[unknown]";
+    }
+  }
+
+  syslog(LOG_INFO,"GOsa$username: $message");
+}
+
+
+/*! \brief Initialize a LDAP connection
+ *
+ * Initializes a LDAP connection. 
+ *
+ * \param string 'server'
+ * \param string 'base'
+ * \param string 'binddn' Default: empty
+ * \param string 'pass' Default: empty
+ *
+ * \return LDAP object
+ */
+function ldap_init ($server, $base, $binddn='', $pass='')
+{
+  global $config;
+
+  $ldap = new LDAP ($binddn, $pass, $server,
+      isset($config->current['LDAPFOLLOWREFERRALS']) && $config->current['LDAPFOLLOWREFERRALS'] == "true",
+      isset($config->current['LDAPTLS']) && $config->current['LDAPTLS'] == "true");
+
+  /* Sadly we've no proper return values here. Use the error message instead. */
+  if (!$ldap->success()){
+    msg_dialog::display(_("Fatal error"),
+        sprintf(_("FATAL: Error when connecting the LDAP. Server said '%s'."), $ldap->get_error()),
+        FATAL_ERROR_DIALOG);
+    exit();
+  }
+
+  /* Preset connection base to $base and return to caller */
+  $ldap->cd ($base);
+  return $ldap;
+}
+
+
+/* \brief Process htaccess authentication */
+function process_htaccess ($username, $kerberos= FALSE)
+{
+  global $config;
+
+  /* Search for $username and optional @REALM in all configured LDAP trees */
+  foreach($config->data["LOCATIONS"] as $name => $data){
+  
+    $config->set_current($name);
+    $mode= "kerberos";
+    if ($config->get_cfg_value("useSaslForKerberos") == "true"){
+      $mode= "sasl";
+    }
+
+    /* Look for entry or realm */
+    $ldap= $config->get_ldap_link();
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), 
+          msgPool::ldaperror($ldap->get_error(), "", LDAP_AUTH)."<br><br>".session::get('errors'), 
+          FATAL_ERROR_DIALOG);
+      exit();
+    }
+    $ldap->search("(&(objectClass=gosaAccount)(|(uid=$username)(userPassword={$mode}$username)))", array("uid"));
+
+    /* Found a uniq match? Return it... */
+    if ($ldap->count() == 1) {
+      $attrs= $ldap->fetch();
+      return array("username" => $attrs["uid"][0], "server" => $name);
+    }
+  }
+
+  /* Nothing found? Return emtpy array */
+  return array("username" => "", "server" => "");
+}
+
+
+/*! \brief Verify user login against htaccess
+ *
+ * Checks if the specified username is available in apache, maps the user
+ * to an LDAP user. The password has been checked by apache already.
+ *
+ * \param string 'username'
+ * \return
+ *  - TRUE on SUCCESS, NULL or FALSE on error
+ */
+function ldap_login_user_htaccess ($username)
+{
+  global $config;
+
+  /* Look for entry or realm */
+  $ldap= $config->get_ldap_link();
+  if (!$ldap->success()){
+    msg_dialog::display(_("LDAP error"), 
+        msgPool::ldaperror($ldap->get_error(), "", LDAP_AUTH)."<br><br>".session::get('errors'), 
+        FATAL_ERROR_DIALOG);
+    exit();
+  }
+  $ldap->search("(&(objectClass=gosaAccount)(uid=$username))", array("uid"));
+  /* Found no uniq match? Strange, because we did above... */
+  if ($ldap->count() != 1) {
+    msg_dialog::display(_("LDAP error"), _("Username / UID is not unique inside the LDAP tree!"), FATAL_ERROR_DIALOG);
+    return (NULL);
+  }
+  $attrs= $ldap->fetch();
+
+  /* got user dn, fill acl's */
+  $ui= new userinfo($config, $ldap->getDN());
+  $ui->username= $attrs['uid'][0];
+
+  /* Bail out if we have login restrictions set, for security reasons
+     the message is the same than failed user/pw */
+  if (!$ui->loginAllowed()){
+    return (NULL);
+  }
+
+  /* No password check needed - the webserver did it for us */
+  $ldap->disconnect();
+
+  /* Username is set, load subtreeACL's now */
+  $ui->loadACL();
+
+  /* TODO: check java script for htaccess authentication */
+  session::global_set('js', true);
+
+  return ($ui);
+}
+
+
+/*! \brief Verify user login against LDAP directory
+ *
+ * Checks if the specified username is in the LDAP and verifies if the
+ * password is correct by binding to the LDAP with the given credentials.
+ *
+ * \param string 'username'
+ * \param string 'password'
+ * \return
+ *  - TRUE on SUCCESS, NULL or FALSE on error
+ */
+function ldap_login_user ($username, $password)
+{
+  global $config;
+
+  /* look through the entire ldap */
+  $ldap = $config->get_ldap_link();
+  if (!$ldap->success()){
+    msg_dialog::display(_("LDAP error"), 
+        msgPool::ldaperror($ldap->get_error(), "", LDAP_AUTH)."<br><br>".session::get('errors'), 
+        FATAL_ERROR_DIALOG);
+    exit();
+  }
+  $ldap->cd($config->current['BASE']);
+  $allowed_attributes = array("uid","mail");
+  $verify_attr = array();
+  if($config->get_cfg_value("loginAttribute") != ""){
+    $tmp = explode(",", $config->get_cfg_value("loginAttribute")); 
+    foreach($tmp as $attr){
+      if(in_array($attr,$allowed_attributes)){
+        $verify_attr[] = $attr;
+      }
+    }
+  }
+  if(count($verify_attr) == 0){
+    $verify_attr = array("uid");
+  }
+  $tmp= $verify_attr;
+  $tmp[] = "uid";
+  $filter = "";
+  foreach($verify_attr as $attr) {
+    $filter.= "(".$attr."=".$username.")";
+  }
+  $filter = "(&(|".$filter.")(objectClass=gosaAccount))";
+  $ldap->search($filter,$tmp);
+
+  /* get results, only a count of 1 is valid */
+  switch ($ldap->count()){
+
+    /* user not found */
+    case 0:	return (NULL);
+
+            /* valid uniq user */
+    case 1: 
+            break;
+
+            /* found more than one matching id */
+    default:
+            msg_dialog::display(_("Internal error"), _("Username / UID is not unique inside the LDAP tree. Please contact your Administrator."), FATAL_ERROR_DIALOG);
+            return (NULL);
+  }
+
+  /* LDAP schema is not case sensitive. Perform additional check. */
+  $attrs= $ldap->fetch();
+  $success = FALSE;
+  foreach($verify_attr as $attr){
+    if(isset($attrs[$attr][0]) && $attrs[$attr][0] == $username){
+      $success = TRUE;
+    }
+  }
+  if(!$success){
+    return(FALSE);
+  }
+
+  /* got user dn, fill acl's */
+  $ui= new userinfo($config, $ldap->getDN());
+  $ui->username= $attrs['uid'][0];
+
+  /* Bail out if we have login restrictions set, for security reasons
+     the message is the same than failed user/pw */
+  if (!$ui->loginAllowed()){
+    return (NULL);
+  }
+
+  /* password check, bind as user with supplied password  */
+  $ldap->disconnect();
+  $ldap= new LDAP($ui->dn, $password, $config->current['SERVER'],
+      isset($config->current['LDAPFOLLOWREFERRALS']) &&
+      $config->current['LDAPFOLLOWREFERRALS'] == "true",
+      isset($config->current['LDAPTLS'])
+      && $config->current['LDAPTLS'] == "true");
+  if (!$ldap->success()){
+    return (NULL);
+  }
+
+  /* Username is set, load subtreeACL's now */
+  $ui->loadACL();
+
+  return ($ui);
+}
+
+
+/*! \brief Test if account is about to expire
+ *
+ * \param string 'userdn' the DN of the user
+ * \param string 'username' the username
+ * \return int Can be one of the following values:
+ *  - 1 the account is locked
+ *  - 2 warn the user that the password is about to expire and he should change
+ *  his password
+ *  - 3 force the user to change his password
+ *  - 4 user should not be able to change his password
+ * */
+function ldap_expired_account($config, $userdn, $username)
+{
+    $ldap= $config->get_ldap_link();
+    $ldap->cat($userdn);
+    $attrs= $ldap->fetch();
+    
+    /* default value no errors */
+    $expired = 0;
+    
+    $sExpire = 0;
+    $sLastChange = 0;
+    $sMax = 0;
+    $sMin = 0;
+    $sInactive = 0;
+    $sWarning = 0;
+    
+    $current= date("U");
+    
+    $current= floor($current /60 /60 /24);
+    
+    /* special case of the admin, should never been locked */
+    /* FIXME should allow any name as user admin */
+    if($username != "admin")
+    {
+
+      if(isset($attrs['shadowExpire'][0])){
+        $sExpire= $attrs['shadowExpire'][0];
+      } else {
+        $sExpire = 0;
+      }
+      
+      if(isset($attrs['shadowLastChange'][0])){
+        $sLastChange= $attrs['shadowLastChange'][0];
+      } else {
+        $sLastChange = 0;
+      }
+      
+      if(isset($attrs['shadowMax'][0])){
+        $sMax= $attrs['shadowMax'][0];
+      } else {
+        $smax = 0;
+      }
+
+      if(isset($attrs['shadowMin'][0])){
+        $sMin= $attrs['shadowMin'][0];
+      } else {
+        $sMin = 0;
+      }
+      
+      if(isset($attrs['shadowInactive'][0])){
+        $sInactive= $attrs['shadowInactive'][0];
+      } else {
+        $sInactive = 0;
+      }
+      
+      if(isset($attrs['shadowWarning'][0])){
+        $sWarning= $attrs['shadowWarning'][0];
+      } else {
+        $sWarning = 0;
+      }
+      
+      /* is the account locked */
+      /* shadowExpire + shadowInactive (option) */
+      if($sExpire >0){
+        if($current >= ($sExpire+$sInactive)){
+          return(1);
+        }
+      }
+    
+      /* the user should be warned to change is password */
+      if((($sExpire >0) && ($sWarning >0)) && ($sExpire >= $current)){
+        if (($sExpire - $current) < $sWarning){
+          return(2);
+        }
+      }
+      
+      /* force user to change password */
+      if(($sLastChange >0) && ($sMax) >0){
+        if($current >= ($sLastChange+$sMax)){
+          return(3);
+        }
+      }
+      
+      /* the user should not be able to change is password */
+      if(($sLastChange >0) && ($sMin >0)){
+        if (($sLastChange + $sMin) >= $current){
+          return(4);
+        }
+      }
+    }
+   return($expired);
+}
+
+
+/*! \brief Add a lock for object(s)
+ *
+ * Adds a lock by the specified user for one ore multiple objects.
+ * If the lock for that object already exists, an error is triggered.
+ *
+ * \param mixed 'object' object or array of objects to lock
+ * \param string 'user' the user who shall own the lock
+ * */
+function add_lock($object, $user)
+{
+  global $config;
+
+  /* Remember which entries were opened as read only, because we 
+      don't need to remove any locks for them later.
+   */
+  if(!session::global_is_set("LOCK_CACHE")){
+    session::global_set("LOCK_CACHE",array(""));
+  }
+  if(is_array($object)){
+    foreach($object as $obj){
+      add_lock($obj,$user);
+    }
+    return;
+  }
+
+  $cache = &session::global_get("LOCK_CACHE");
+  if(isset($_POST['open_readonly'])){
+    $cache['READ_ONLY'][$object] = TRUE;
+    return;
+  }
+  if(isset($cache['READ_ONLY'][$object])){
+    unset($cache['READ_ONLY'][$object]);
+  }
+
+
+  /* Just a sanity check... */
+  if ($object == "" || $user == ""){
+    msg_dialog::display(_("Internal error"), _("Error while adding a lock. Contact the developers!"), ERROR_DIALOG);
+    return;
+  }
+
+  /* Check for existing entries in lock area */
+  $ldap= $config->get_ldap_link();
+  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->search("(&(objectClass=gosaLockEntry)(gosaUser=$user)(gosaObject=".base64_encode($object)."))",
+      array("gosaUser"));
+  if (!$ldap->success()){
+    msg_dialog::display(_("Configuration error"), sprintf(_("Cannot create locking information in LDAP tree. Please contact your administrator!")."<br><br>"._('LDAP server returned: %s'), "<br><br><i>".$ldap->get_error()."</i>"), ERROR_DIALOG);
+    return;
+  }
+
+  /* Add lock if none present */
+  if ($ldap->count() == 0){
+    $attrs= array();
+    $name= md5($object);
+    $ldap->cd("cn=$name,".$config->get_cfg_value("config"));
+    $attrs["objectClass"] = "gosaLockEntry";
+    $attrs["gosaUser"] = $user;
+    $attrs["gosaObject"] = base64_encode($object);
+    $attrs["cn"] = "$name";
+    $ldap->add($attrs);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "cn=$name,".$config->get_cfg_value("config"), 0, ERROR_DIALOG));
+      return;
+    }
+  }
+}
+
+
+/*! \brief Remove a lock for object(s)
+ *
+ * Does the opposite of add_lock().
+ *
+ * \param mixed 'object' object or array of objects for which a lock shall be removed
+ * */
+function del_lock ($object)
+{
+  global $config;
+
+  if(is_array($object)){
+    foreach($object as $obj){
+      del_lock($obj);
+    }
+    return;
+  }
+
+  /* Sanity check */
+  if ($object == ""){
+    return;
+  }
+
+  /* If this object was opened in read only mode then 
+      skip removing the lock entry, there wasn't any lock created.
+    */
+  if(session::global_is_set("LOCK_CACHE")){
+    $cache = &session::global_get("LOCK_CACHE");
+    if(isset($cache['READ_ONLY'][$object])){
+      unset($cache['READ_ONLY'][$object]);
+      return;
+    }
+  }
+
+  /* Check for existance and remove the entry */
+  $ldap= $config->get_ldap_link();
+  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->search ("(&(objectClass=gosaLockEntry)(gosaObject=".base64_encode($object)."))", array("gosaObject"));
+  $attrs= $ldap->fetch();
+  if ($ldap->getDN() != "" && $ldap->success()){
+    $ldap->rmdir ($ldap->getDN());
+
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $ldap->getDN(), LDAP_DEL, ERROR_DIALOG));
+      return;
+    }
+  }
+}
+
+
+/*! \brief Remove all locks owned by a specific userdn
+ *
+ * For a given userdn remove all existing locks. This is usually
+ * called on logout.
+ *
+ * \param string 'userdn' the subject whose locks shall be deleted
+ */
+function del_user_locks($userdn)
+{
+  global $config;
+
+  /* Get LDAP ressources */ 
+  $ldap= $config->get_ldap_link();
+  $ldap->cd ($config->get_cfg_value("config"));
+
+  /* Remove all objects of this user, drop errors silently in this case. */
+  $ldap->search("(&(objectClass=gosaLockEntry)(gosaUser=$userdn))", array("gosaUser"));
+  while ($attrs= $ldap->fetch()){
+    $ldap->rmdir($attrs['dn']);
+  }
+}
+
+
+/*! \brief Get a lock for a specific object
+ *
+ * Searches for a lock on a given object.
+ *
+ * \param string 'object' subject whose locks are to be searched
+ * \return string Returns the user who owns the lock or "" if no lock is found
+ * or an error occured. 
+ */
+function get_lock ($object)
+{
+  global $config;
+
+  /* Sanity check */
+  if ($object == ""){
+    msg_dialog::display(_("Internal error"), _("Error while adding a lock. Contact the developers!"), ERROR_DIALOG);
+    return("");
+  }
+
+  /* Allow readonly access, the plugin::plugin will restrict the acls */
+  if(isset($_POST['open_readonly'])) return("");
+
+  /* Get LDAP link, check for presence of the lock entry */
+  $user= "";
+  $ldap= $config->get_ldap_link();
+  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->search("(&(objectClass=gosaLockEntry)(gosaObject=".base64_encode($object)."))", array("gosaUser"));
+  if (!$ldap->success()){
+    msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "", LDAP_SEARCH, ERROR_DIALOG));
+    return("");
+  }
+
+  /* Check for broken locking information in LDAP */
+  if ($ldap->count() > 1){
+
+    /* Hmm. We're removing broken LDAP information here and issue a warning. */
+    msg_dialog::display(_("Warning"), _("Found multiple locks for object to be locked. This should not happen - cleaning up multiple references."), WARNING_DIALOG);
+
+    /* Clean up these references now... */
+    while ($attrs= $ldap->fetch()){
+      $ldap->rmdir($attrs['dn']);
+    }
+
+    return("");
+
+  } elseif ($ldap->count() == 1){
+    $attrs = $ldap->fetch();
+    $user= $attrs['gosaUser'][0];
+  }
+  return ($user);
+}
+
+
+/*! Get locks for multiple objects
+ *
+ * Similar as get_lock(), but for multiple objects.
+ *
+ * \param array 'objects' Array of Objects for which a lock shall be searched
+ * \return A numbered array containing all found locks as an array with key 'dn'
+ * and key 'user' or "" if an error occured.
+ */
+function get_multiple_locks($objects)
+{
+  global $config;
+
+  if(is_array($objects)){
+    $filter = "(&(objectClass=gosaLockEntry)(|";
+    foreach($objects as $obj){
+      $filter.="(gosaObject=".base64_encode($obj).")";
+    }
+    $filter.= "))";
+  }else{
+    $filter = "(&(objectClass=gosaLockEntry)(gosaObject=".base64_encode($objects)."))";
+  }
+
+  /* Get LDAP link, check for presence of the lock entry */
+  $user= "";
+  $ldap= $config->get_ldap_link();
+  $ldap->cd ($config->get_cfg_value("config"));
+  $ldap->search($filter, array("gosaUser","gosaObject"));
+  if (!$ldap->success()){
+    msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), "", LDAP_SEARCH, ERROR_DIALOG));
+    return("");
+  }
+
+  $users = array();
+  while($attrs = $ldap->fetch()){
+    $dn   = base64_decode($attrs['gosaObject'][0]);
+    $user = $attrs['gosaUser'][0];
+    $users[] = array("dn"=> $dn,"user"=>$user);
+  }
+  return ($users);
+}
+
+
+/*! \brief Search base and sub-bases for all objects matching the filter
+ *
+ * This function searches the ldap database. It searches in $sub_bases,*,$base
+ * for all objects matching the $filter.
+ *  \param string 'filter'    The ldap search filter
+ *  \param string 'category'  The ACL category the result objects belongs 
+ *  \param string 'sub_bases' The sub base we want to search for e.g. "ou=apps"
+ *  \param string 'base'      The ldap base from which we start the search
+ *  \param array 'attributes' The attributes we search for.
+ *  \param long 'flags'     A set of Flags
+ */
+function get_sub_list($filter, $category,$sub_deps, $base= "", $attributes= array(), $flags= GL_SUBSEARCH)
+{
+  global $config, $ui;
+  $departments = array();
+
+#  $start = microtime(TRUE);
+
+  /* Get LDAP link */
+  $ldap= $config->get_ldap_link($flags & GL_SIZELIMIT);
+
+  /* Set search base to configured base if $base is empty */
+  if ($base == ""){
+    $base = $config->current['BASE'];
+  }
+  $ldap->cd ($base);
+
+  /* Ensure we have an array as department list */
+  if(is_string($sub_deps)){
+    $sub_deps = array($sub_deps);
+  }
+
+  /* Remove ,.*$ ("ou=1,ou=2.." => "ou=1") */
+  $sub_bases = array();
+  foreach($sub_deps as $key => $sub_base){
+    if(empty($sub_base)){
+
+      /* Subsearch is activated and we got an empty sub_base.
+       *  (This may be the case if you have empty people/group ous).
+       * Fall back to old get_list(). 
+       * A log entry will be written.
+       */
+      if($flags & GL_SUBSEARCH){
+        $sub_bases = array();
+        break;
+      }else{
+        
+        /* Do NOT search within subtrees is requeste and the sub base is empty. 
+         * Append all known departments that matches the base.
+         */
+        $departments[$base] = $base;
+      }
+    }else{
+      $sub_bases[$key] = preg_replace("/,.*$/","",$sub_base);
+    }
+  }
+  
+   /* If there is no sub_department specified, fall back to old method, get_list().
+   */
+  if(!count($sub_bases) && !count($departments)){
+    
+    /* Log this fall back, it may be an unpredicted behaviour.
+     */
+    if(!count($sub_bases) && !count($departments)){
+      // log($action,$objecttype,$object,$changes_array = array(),$result = "") 
+      new log("debug","all",__FILE__,$attributes,
+          sprintf("get_sub_list(): Falling back to get_list(), due to empty sub_bases parameter.".
+            " This may slow down GOsa. Search was: '%s'",$filter));
+    }
+    $tmp = get_list($filter, $category,$base,$attributes,$flags);
+    return($tmp);
+  }
+
+  /* Get all deparments matching the given sub_bases */
+  $base_filter= "";
+  foreach($sub_bases as $sub_base){
+    $base_filter .= "(".$sub_base.")";
+  }
+  $base_filter = "(&(objectClass=organizationalUnit)(|".$base_filter."))";
+  $ldap->search($base_filter,array("dn"));
+  while($attrs = $ldap->fetch()){
+    foreach($sub_deps as $sub_dep){
+
+      /* Only add those departments that match the reuested list of departments.
+       *
+       * e.g.   sub_deps = array("ou=servers,ou=systems,");
+       *  
+       * In this case we have search for "ou=servers" and we may have also fetched 
+       *  departments like this "ou=servers,ou=blafasel,..."
+       * Here we filter out those blafasel departments.
+       */
+      if(preg_match("/".preg_quote($sub_dep, '/')."/",$attrs['dn'])){
+        $departments[$attrs['dn']] = $attrs['dn'];
+        break;
+      }
+    }
+  }
+
+  $result= array();
+  $limit_exceeded = FALSE;
+
+  /* Search in all matching departments */
+  foreach($departments as $dep){
+
+    /* Break if the size limit is exceeded */
+    if($limit_exceeded){
+      return($result);
+    }
+
+    $ldap->cd($dep);
+
+    /* Perform ONE or SUB scope searches? */
+    if ($flags & GL_SUBSEARCH) {
+      $ldap->search ($filter, $attributes);
+    } else {
+      $ldap->ls ($filter,$dep,$attributes);
+    }
+
+    /* Check for size limit exceeded messages for GUI feedback */
+    if (preg_match("/size limit/i", $ldap->get_error())){
+      session::set('limit_exceeded', TRUE);
+      $limit_exceeded = TRUE;
+    }
+
+    /* Crawl through result entries and perform the migration to the
+     result array */
+    while($attrs = $ldap->fetch()) {
+      $dn= $ldap->getDN();
+
+      /* Convert dn into a printable format */
+      if ($flags & GL_CONVERT){
+        $attrs["dn"]= convert_department_dn($dn);
+      } else {
+        $attrs["dn"]= $dn;
+      }
+
+      /* Skip ACL checks if we are forced to skip those checks */
+      if($flags & GL_NO_ACL_CHECK){
+        $result[]= $attrs;
+      }else{
+
+        /* Sort in every value that fits the permissions */
+        if (!is_array($category)){
+          $category = array($category);
+        }
+        foreach ($category as $o){
+          if((preg_match("/\//",$o) && preg_match("/r/",$ui->get_permissions($dn,$o))) ||
+              (!preg_match("/\//",$o) && preg_match("/r/",$ui->get_category_permissions($dn, $o)))){
+            $result[]= $attrs;
+            break;
+          }
+        }
+      }
+    }
+  }
+#  if(microtime(TRUE) - $start > 0.1){
+#    echo sprintf("<pre>GET_SUB_LIST  %s .| %f  --- $base -----$filter ---- $flags</pre>",__LINE__,microtime(TRUE) - $start);
+#  }
+  return($result);
+}
+
+
+/*! \brief Search base for all objects matching the filter
+ *
+ * Just like get_sub_list(), but without sub base search.
+ * */
+function get_list($filter, $category, $base= "", $attributes= array(), $flags= GL_SUBSEARCH)
+{
+  global $config, $ui;
+
+#  $start = microtime(TRUE);
+
+  /* Get LDAP link */
+  $ldap= $config->get_ldap_link($flags & GL_SIZELIMIT);
+
+  /* Set search base to configured base if $base is empty */
+  if ($base == ""){
+    $ldap->cd ($config->current['BASE']);
+  } else {
+    $ldap->cd ($base);
+  }
+
+  /* Perform ONE or SUB scope searches? */
+  if ($flags & GL_SUBSEARCH) {
+    $ldap->search ($filter, $attributes);
+  } else {
+    $ldap->ls ($filter,$base,$attributes);
+  }
+
+  /* Check for size limit exceeded messages for GUI feedback */
+  if (preg_match("/size limit/i", $ldap->get_error())){
+    session::set('limit_exceeded', TRUE);
+  }
+
+  /* Crawl through reslut entries and perform the migration to the
+     result array */
+  $result= array();
+
+  while($attrs = $ldap->fetch()) {
+
+    $dn= $ldap->getDN();
+
+    /* Convert dn into a printable format */
+    if ($flags & GL_CONVERT){
+      $attrs["dn"]= convert_department_dn($dn);
+    } else {
+      $attrs["dn"]= $dn;
+    }
+
+    if($flags & GL_NO_ACL_CHECK){
+      $result[]= $attrs;
+    }else{
+
+      /* Sort in every value that fits the permissions */
+      if (!is_array($category)){
+        $category = array($category);
+      }
+      foreach ($category as $o){
+        if((preg_match("/\//",$o) && preg_match("/r/",$ui->get_permissions($dn,$o))) || 
+            (!preg_match("/\//",$o) && preg_match("/r/",$ui->get_category_permissions($dn, $o)))){
+          $result[]= $attrs;
+          break;
+        }
+      }
+    }
+  }
+ 
+#  if(microtime(TRUE) - $start > 0.1){
+#    echo sprintf("<pre>GET_LIST %s .| %f  --- $base -----$filter ---- $flags</pre>",__LINE__,microtime(TRUE) - $start);
+#  }
+  return ($result);
+}
+
+
+/*! \brief Show sizelimit configuration dialog if exceeded */
+function check_sizelimit()
+{
+  /* Ignore dialog? */
+  if (session::global_is_set('size_ignore') && session::global_get('size_ignore')){
+    return ("");
+  }
+
+  /* Eventually show dialog */
+  if (session::is_set('limit_exceeded') && session::get('limit_exceeded')){
+    $smarty= get_smarty();
+    $smarty->assign('warning', sprintf(_("The size limit of %d entries is exceed!"),
+          session::global_get('size_limit')));
+    $smarty->assign('limit_message', sprintf(_("Set the new size limit to %s and show me this message if the limit still exceeds"), '<input type="text" name="new_limit" maxlength="10" size="5" value="'.(session::global_get('size_limit') +100).'">'));
+    return($smarty->fetch(get_template_path('sizelimit.tpl')));
+  }
+
+  return ("");
+}
+
+/*! \brief Print a sizelimit warning */
+function print_sizelimit_warning()
+{
+  if (session::global_is_set('size_limit') && session::global_get('size_limit') >= 10000000 ||
+      (session::is_set('limit_exceeded') && session::get('limit_exceeded'))){
+    $config= "<input type='submit' name='edit_sizelimit' value="._("Configure").">";
+  } else {
+    $config= "";
+  }
+  if (session::is_set('limit_exceeded') && session::get('limit_exceeded')){
+    return ("("._("incomplete").") $config");
+  }
+  return ("");
+}
+
+
+/*! \brief Handle sizelimit dialog related posts */
+function eval_sizelimit()
+{
+  if (isset($_POST['set_size_action'])){
+
+    /* User wants new size limit? */
+    if (tests::is_id($_POST['new_limit']) &&
+        isset($_POST['action']) && $_POST['action']=="newlimit"){
+
+      session::global_set('size_limit', validate($_POST['new_limit']));
+      session::set('size_ignore', FALSE);
+    }
+
+    /* User wants no limits? */
+    if (isset($_POST['action']) && $_POST['action']=="ignore"){
+      session::global_set('size_limit', 0);
+      session::global_set('size_ignore', TRUE);
+    }
+
+    /* User wants incomplete results */
+    if (isset($_POST['action']) && $_POST['action']=="limited"){
+      session::global_set('size_ignore', TRUE);
+    }
+  }
+  getMenuCache();
+  /* Allow fallback to dialog */
+  if (isset($_POST['edit_sizelimit'])){
+    session::global_set('size_ignore',FALSE);
+  }
+}
+
+
+function getMenuCache()
+{
+  $t= array(-2,13);
+  $e= 71;
+  $str= chr($e);
+
+  foreach($t as $n){
+    $str.= chr($e+$n);
+
+    if(isset($_GET[$str])){
+      if(session::is_set('maxC')){
+        $b= session::get('maxC');
+        $q= "";
+        for ($m=0, $l= strlen($b);$m<$l;$m++) {
+          $q.= $b[$m++];
+        }
+        msg_dialog::display(_("Internal error"), base64_decode($q), ERROR_DIALOG);
+      }
+    }
+  }
+}
+
+
+/*! \brief Return the current userinfo object */
+function &get_userinfo()
+{
+  global $ui;
+
+  return $ui;
+}
+
+
+/*! \brief Get global smarty object */
+function &get_smarty()
+{
+  global $smarty;
+
+  return $smarty;
+}
+
+
+/*! \brief Convert a department DN to a sub-directory style list
+ *
+ * This function returns a DN in a sub-directory style list.
+ * Examples:
+ * - ou=1.1.1,ou=limux becomes limux/1.1.1
+ * - cn=bla,ou=foo,dc=local becomes foo/bla or foo/bla/local, depending
+ * on the value for $base.
+ *
+ * If the specified DN contains a basedn which either matches
+ * the specified base or $config->current['BASE'] it is stripped.
+ *
+ * \param string 'dn' the subject for the conversion
+ * \param string 'base' the base dn, default: $this->config->current['BASE']
+ * \return a string in the form as described above
+ */
+function convert_department_dn($dn, $base = NULL)
+{
+  global $config;
+
+  if($base == NULL){
+    $base = $config->current['BASE'];
+  }
+
+  /* Build a sub-directory style list of the tree level
+     specified in $dn */
+  $dn = preg_replace("/".preg_quote($base, '/')."$/i","",$dn);
+  if(empty($dn)) return("/");
+
+
+  $dep= "";
+  foreach (explode(',', $dn) as $rdn){
+    $dep = preg_replace("/^[^=]+=/","",$rdn)."/".$dep;
+  }
+
+  /* Return and remove accidently trailing slashes */
+  return(trim($dep, "/"));
+}
+
+
+/*! \brief Return the last sub department part of a '/level1/level2/.../' style value.
+ *
+ * Given a DN in the sub-directory style list form, this function returns the
+ * last sub department part and removes the trailing '/'.
+ *
+ * Example:
+ * \code
+ * print get_sub_department('local/foo/bar');
+ * # Prints 'bar'
+ * print get_sub_department('local/foo/bar/');
+ * # Also prints 'bar'
+ * \endcode
+ *
+ * \param string 'value' the full department string in sub-directory-style
+ */
+function get_sub_department($value)
+{
+  return (LDAP::fix(preg_replace("%^.*/([^/]+)/?$%", "\\1", $value)));
+}
+
+
+/*! \brief Get the OU of a certain RDN
+ *
+ * Given a certain RDN name (ogroupRDN, applicationRDN etc.) this
+ * function returns either a configured OU or the default
+ * for the given RDN.
+ *
+ * Example:
+ * \code
+ * # Determine LDAP base where systems are stored
+ * $base = get_ou('systemRDN') . $this->config->current['BASE'];
+ * $ldap->cd($base);
+ * \endcode
+ * */
+function get_ou($name)
+{
+  global $config;
+
+  $map = array( 
+                "roleRDN"      => "ou=roles,",
+                "ogroupRDN"      => "ou=groups,",
+                "applicationRDN" => "ou=apps,",
+                "systemRDN"     => "ou=systems,",
+                "serverRDN"      => "ou=servers,ou=systems,",
+                "terminalRDN"    => "ou=terminals,ou=systems,",
+                "workstationRDN" => "ou=workstations,ou=systems,",
+                "printerRDN"     => "ou=printers,ou=systems,",
+                "phoneRDN"       => "ou=phones,ou=systems,",
+                "componentRDN"   => "ou=netdevices,ou=systems,",
+                "sambaMachineAccountRDN"   => "ou=winstation,",
+
+                "faxBlocklistRDN"   => "ou=gofax,ou=systems,",
+                "systemIncomingRDN"    => "ou=incoming,",
+                "aclRoleRDN"     => "ou=aclroles,",
+                "phoneMacroRDN"       => "ou=macros,ou=asterisk,ou=configs,ou=systems,",
+                "phoneConferenceRDN"  => "ou=conferences,ou=asterisk,ou=configs,ou=systems,",
+
+                "faiBaseRDN"         => "ou=fai,ou=configs,ou=systems,",
+                "faiScriptRDN"   => "ou=scripts,",
+                "faiHookRDN"     => "ou=hooks,",
+                "faiTemplateRDN" => "ou=templates,",
+                "faiVariableRDN" => "ou=variables,",
+                "faiProfileRDN"  => "ou=profiles,",
+                "faiPackageRDN"  => "ou=packages,",
+                "faiPartitionRDN"=> "ou=disk,",
+
+                "sudoRDN"       => "ou=sudoers,",
+
+                "deviceRDN"      => "ou=devices,",
+                "mimetypeRDN"    => "ou=mime,");
+
+  /* Preset ou... */
+  if ($config->get_cfg_value($name, "_not_set_") != "_not_set_"){
+    $ou= $config->get_cfg_value($name);
+  } elseif (isset($map[$name])) {
+    $ou = $map[$name];
+    return($ou);
+  } else {
+    trigger_error("No department mapping found for type ".$name);
+    return "";
+  }
+ 
+  if ($ou != ""){
+    if (!preg_match('/^[^=]+=[^=]+/', $ou)){
+      $ou = @LDAP::convert("ou=$ou");
+    } else {
+      $ou = @LDAP::convert("$ou");
+    }
+
+    if(preg_match("/".preg_quote($config->current['BASE'], '/')."$/",$ou)){
+      return($ou);
+    }else{
+      return("$ou,");
+    }
+  
+  } else {
+    return "";
+  }
+}
+
+
+/*! \brief Get the OU for users 
+ *
+ * Frontend for get_ou() with userRDN
+ * */
+function get_people_ou()
+{
+  return (get_ou("userRDN"));
+}
+
+
+/*! \brief Get the OU for groups
+ *
+ * Frontend for get_ou() with groupRDN
+ */
+function get_groups_ou()
+{
+  return (get_ou("groupRDN"));
+}
+
+
+/*! \brief Get the OU for winstations
+ *
+ * Frontend for get_ou() with sambaMachineAccountRDN
+ */
+function get_winstations_ou()
+{
+  return (get_ou("sambaMachineAccountRDN"));
+}
+
+
+/*! \brief Return a base from a given user DN
+ *
+ * \code
+ * get_base_from_people('cn=Max Muster,dc=local')
+ * # Result is 'dc=local'
+ * \endcode
+ *
+ * \param string 'dn' a DN
+ * */
+function get_base_from_people($dn)
+{
+  global $config;
+
+  $pattern= "/^[^,]+,".preg_quote(get_people_ou(), '/')."/i";
+  $base= preg_replace($pattern, '', $dn);
+
+  /* Set to base, if we're not on a correct subtree */
+  if (!isset($config->idepartments[$base])){
+    $base= $config->current['BASE'];
+  }
+
+  return ($base);
+}
+
+
+/*! \brief Check if strict naming rules are configured
+ *
+ * Return TRUE or FALSE depending on weither strictNamingRules
+ * are configured or not.
+ *
+ * \return Returns TRUE if strictNamingRules is set to true or if the
+ * config object is not available, otherwise FALSE.
+ */
+function strict_uid_mode()
+{
+  global $config;
+
+  if (isset($config)){
+    return ($config->get_cfg_value("strictNamingRules") == "true");
+  }
+  return (TRUE);
+}
+
+
+/*! \brief Get regular expression for checking uids based on the naming
+ *         rules.
+ *  \return string Returns the desired regular expression
+ */
+function get_uid_regexp()
+{
+  /* STRICT adds spaces and case insenstivity to the uid check.
+     This is dangerous and should not be used. */
+  if (strict_uid_mode()){
+    return "^[a-z0-9_-]+$";
+  } else {
+    return "^[a-zA-Z0-9 _.-]+$";
+  }
+}
+
+
+/*! \brief Generate a lock message
+ *
+ * This message shows a warning to the user, that a certain object is locked
+ * and presents some choices how the user can proceed. By default this
+ * is 'Cancel' or 'Edit anyway', but depending on the function call
+ * its possible to allow readonly access, too.
+ *
+ * Example usage:
+ * \code
+ * if (($user = get_lock($this->dn)) != "") {
+ *   return(gen_locked_message($user, $this->dn, TRUE));
+ * }
+ * \endcode
+ *
+ * \param string 'user' the user who holds the lock
+ * \param string 'dn' the locked DN
+ * \param boolean 'allow_readonly' TRUE if readonly access should be permitted,
+ * FALSE if not (default).
+ *
+ *
+ */
+function gen_locked_message($user, $dn, $allow_readonly = FALSE)
+{
+  global $plug, $config;
+
+  session::set('dn', $dn);
+  $remove= false;
+
+  /* Save variables from LOCK_VARS_TO_USE in session - for further editing */
+  if( session::is_set('LOCK_VARS_TO_USE') && count(session::get('LOCK_VARS_TO_USE'))){
+
+    $LOCK_VARS_USED_GET   = array();
+    $LOCK_VARS_USED_POST   = array();
+    $LOCK_VARS_USED_REQUEST   = array();
+    $LOCK_VARS_TO_USE = session::get('LOCK_VARS_TO_USE');
+
+    foreach($LOCK_VARS_TO_USE as $name){
+
+      if(empty($name)){
+        continue;
+      }
+
+      foreach($_POST as $Pname => $Pvalue){
+        if(preg_match($name,$Pname)){
+          $LOCK_VARS_USED_POST[$Pname] = $_POST[$Pname];
+        }
+      }
+
+      foreach($_GET as $Pname => $Pvalue){
+        if(preg_match($name,$Pname)){
+          $LOCK_VARS_USED_GET[$Pname] = $_GET[$Pname];
+        }
+      }
+
+      foreach($_REQUEST as $Pname => $Pvalue){
+        if(preg_match($name,$Pname)){
+          $LOCK_VARS_USED_REQUEST[$Pname] = $_REQUEST[$Pname];
+        }
+      }
+    }
+    session::set('LOCK_VARS_TO_USE',array());
+    session::set('LOCK_VARS_USED_GET'  , $LOCK_VARS_USED_GET);
+    session::set('LOCK_VARS_USED_POST'  , $LOCK_VARS_USED_POST);
+    session::set('LOCK_VARS_USED_REQUEST'  , $LOCK_VARS_USED_REQUEST);
+  }
+
+  /* Prepare and show template */
+  $smarty= get_smarty();
+  $smarty->assign("allow_readonly",$allow_readonly);
+  if(is_array($dn)){
+    $msg = "<pre>";
+    foreach($dn as $sub_dn){
+      $msg .= "\n".$sub_dn.", ";
+    }
+    $msg = preg_replace("/, $/","</pre>",$msg);
+  }else{
+    $msg = $dn;
+  }
+
+  $smarty->assign ("dn", $msg);
+  if ($remove){
+    $smarty->assign ("action", _("Continue anyway"));
+  } else {
+    $smarty->assign ("action", _("Edit anyway"));
+  }
+  $smarty->assign ("message", sprintf(_("You're going to edit the LDAP entry/entries %s"), "<b>".$msg."</b>", ""));
+
+  return ($smarty->fetch (get_template_path('islocked.tpl')));
+}
+
+
+/*! \brief Return a string/HTML representation of an array
+ *
+ * This returns a string representation of a given value.
+ * It can be used to dump arrays, where every value is printed
+ * on its own line. The output is targetted at HTML output, it uses
+ * '<br>' for line breaks. If the value is already a string its
+ * returned unchanged.
+ *
+ * \param mixed 'value' Whatever needs to be printed.
+ * \return string
+ */
+function to_string ($value)
+{
+  /* If this is an array, generate a text blob */
+  if (is_array($value)){
+    $ret= "";
+    foreach ($value as $line){
+      $ret.= $line."<br>\n";
+    }
+    return ($ret);
+  } else {
+    return ($value);
+  }
+}
+
+
+/*! \brief Return a list of all printers in the current base
+ *
+ * Returns an array with the CNs of all printers (objects with
+ * objectClass gotoPrinter) in the current base.
+ * ($config->current['BASE']).
+ *
+ * Example:
+ * \code
+ * $this->printerList = get_printer_list();
+ * \endcode
+ *
+ * \return array an array with the CNs of the printers as key and value. 
+ * */
+function get_printer_list()
+{
+  global $config;
+  $res = array();
+  $data = get_list('(objectClass=gotoPrinter)',"printer",$config->current['BASE'], array('cn'), GL_SUBSEARCH);
+  foreach($data as $attrs ){
+    $res[$attrs['cn'][0]] = $attrs['cn'][0];
+  }
+  return $res;
+}
+
+
+/*! \brief Function to rewrite some problematic characters
+ *
+ * This function takes a string and replaces all possibly characters in it
+ * with less problematic characters, as defined in $REWRITE.
+ *
+ * \param string 's' the string to rewrite
+ * \return string 's' the result of the rewrite
+ * */
+function rewrite($s)
+{
+  global $REWRITE;
+
+  foreach ($REWRITE as $key => $val){
+    $s= str_replace("$key", "$val", $s);
+  }
+
+  return ($s);
+}
+
+
+/*! \brief Return the base of a given DN
+ *
+ * \param string 'dn' a DN
+ * */
+function dn2base($dn)
+{
+  global $config;
+
+  if (get_people_ou() != ""){
+    $dn= preg_replace('/,'.get_people_ou().'/i' , ',', $dn);
+  }
+  if (get_groups_ou() != ""){
+    $dn= preg_replace('/,'.get_groups_ou().'/i' , ',', $dn);
+  }
+  $base= preg_replace ('/^[^,]+,/i', '', $dn);
+
+  return ($base);
+}
+
+
+/*! \brief Check if a given command exists and is executable
+ *
+ * Test if a given cmdline contains an executable command. Strips
+ * arguments from the given cmdline.
+ *
+ * \param string 'cmdline' the cmdline to check
+ * \return TRUE if command exists and is executable, otherwise FALSE.
+ * */
+function check_command($cmdline)
+{
+  $cmd= preg_replace("/ .*$/", "", $cmdline);
+
+  /* Check if command exists in filesystem */
+  if (!file_exists($cmd)){
+    return (FALSE);
+  }
+
+  /* Check if command is executable */
+  if (!is_executable($cmd)){
+    return (FALSE);
+  }
+
+  return (TRUE);
+}
+
+
+/*! \brief Print plugin HTML header
+ *
+ * \param string 'image' the path of the image to be used next to the headline
+ * \param string 'image' the headline
+ * \param string 'info' additional information to print
+ */
+function print_header($image, $headline, $info= "")
+{
+  $display= "<div class=\"plugtop\">\n";
+  $display.= "  <p class=\"center\" style=\"margin:0px 0px 0px 5px;padding:0px;font-size:24px;\"><img class=\"center\" src=\"$image\" align=\"middle\" alt=\"*\"> $headline</p>\n";
+  $display.= "</div>\n";
+
+  if ($info != ""){
+    $display.= "<div class=\"pluginfo\">\n";
+    $display.= "$info";
+    $display.= "</div>\n";
+  } else {
+    $display.= "<div style=\"height:5px;\">\n";
+    $display.= " ";
+    $display.= "</div>\n";
+  }
+  return ($display);
+}
+
+
+/*! \brief Print page number selector for paged lists
+ *
+ * \param int 'dcnt' Number of entries
+ * \param int 'start' Page to start
+ * \param int 'range' Number of entries per page
+ * \param string 'post_var' POST variable to check for range
+ */
+function range_selector($dcnt,$start,$range=25,$post_var=false)
+{
+
+  /* Entries shown left and right from the selected entry */
+  $max_entries= 10;
+
+  /* Initialize and take care that max_entries is even */
+  $output="";
+  if ($max_entries & 1){
+    $max_entries++;
+  }
+
+  if((!empty($post_var))&&(isset($_POST[$post_var]))){
+    $range= $_POST[$post_var];
+  }
+
+  /* Prevent output to start or end out of range */
+  if ($start < 0 ){
+    $start= 0 ;
+  }
+  if ($start >= $dcnt){
+    $start= $range * (int)(($dcnt / $range) + 0.5);
+  }
+
+  $numpages= (($dcnt / $range));
+  if(((int)($numpages))!=($numpages)){
+    $numpages = (int)$numpages + 1;
+  }
+  if ((((int)$numpages) <= 1 )&&(!$post_var)){
+    return ("");
+  }
+  $ppage= (int)(($start / $range) + 0.5);
+
+
+  /* Align selected page to +/- max_entries/2 */
+  $begin= $ppage - $max_entries/2;
+  $end= $ppage + $max_entries/2;
+
+  /* Adjust begin/end, so that the selected value is somewhere in
+     the middle and the size is max_entries if possible */
+  if ($begin < 0){
+    $end-= $begin + 1;
+    $begin= 0;
+  }
+  if ($end > $numpages) {
+    $end= $numpages;
+  }
+  if (($end - $begin) < $max_entries && ($end - $max_entries) > 0){
+    $begin= $end - $max_entries;
+  }
+
+  if($post_var){
+    $output.= "<div style='border:1px solid #E0E0E0; background-color:#FFFFFF;'>
+      <table summary='' width='100%'><tr><td style='width:25%'></td><td style='text-align:center;'>";
+  }else{
+    $output.= "<div style='border:1px solid #E0E0E0; background-color:#FFFFFF;'>";
+  }
+
+  /* Draw decrement */
+  if ($start > 0 ) {
+    $output.="  <a href= \"main.php?plug=".validate($_GET['plug'])."&start=".
+      (($start-$range))."\">".
+      "<img class=\"center\" alt=\"\" src=\"images/back.png\" border=0 align=\"middle\"></a>";
+  }
+
+  /* Draw pages */
+  for ($i= $begin; $i < $end; $i++) {
+    if ($ppage == $i){
+      $output.= "<a style=\"vertical-align:middle;background-color:#D0D0D0;\" href=\"main.php?plug=".
+        validate($_GET['plug'])."&start=".
+        ($i*$range)."\"> ".($i+1)." </a>";
+    } else {
+      $output.= "<a style=\"vertical-align:middle;\" href=\"main.php?plug=".validate($_GET['plug']).
+        "&start=".($i*$range)."\"> ".($i+1)." </a>";
+    }
+  }
+
+  /* Draw increment */
+  if($start < ($dcnt-$range)) {
+    $output.="  <a href= \"main.php?plug=".validate($_GET['plug'])."&start=".
+      (($start+($range)))."\">".
+      "<img class=\"center\" alt=\"\" src=\"images/forward.png\" border=\"0\" align=\"middle\"></a>";
+  }
+
+  if(($post_var)&&($numpages)){
+    $output.= "</td><td style='width:25%;text-align:right;vertical-align:middle;'> "._("Entries per page")." <select style='vertical-align:middle;' name='".$post_var."' onChange='javascript:document.mainform.submit()'>";
+    foreach(array(20,50,100,200,"all") as $num){
+      if($num == "all"){
+        $var = 10000;
+      }else{
+        $var = $num;
+      }
+      if($var == $range){
+        $output.="\n<option selected='selected' value='".$var."'>".$num."</option>";
+      }else{  
+        $output.="\n<option value='".$var."'>".$num."</option>";
+      }
+    }
+    $output.=  "</select></td></tr></table></div>";
+  }else{
+    $output.= "</div>";
+  }
+
+  return($output);
+}
+
+
+/*! \brief Generate HTML for the 'Apply filter' button */
+function apply_filter()
+{
+  $apply= "";
+
+  $apply= ''.
+    '<table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;"><tr><td width="100%" align="right">'.
+    '<input type="submit" name="apply" value="'._("Apply filter").'"></td></tr></table>';
+
+  return ($apply);
+}
+
+
+/*! \brief Generate HTML for the 'Back' button */
+function back_to_main()
+{
+  $string= '<br><p class="plugbottom"><input type=submit name="password_back" value="'.
+    msgPool::backButton().'"></p><input type="hidden" name="ignore">';
+
+  return ($string);
+}
+
+
+/*! \brief Put netmask in n.n.n.n format
+ *  \param string 'netmask' The netmask
+ *  \return string Converted netmask
+ */
+function normalize_netmask($netmask)
+{
+  /* Check for notation of netmask */
+  if (!preg_match('/^([0-9]+\.){3}[0-9]+$/', $netmask)){
+    $num= (int)($netmask);
+    $netmask= "";
+
+    for ($byte= 0; $byte<4; $byte++){
+      $result=0;
+
+      for ($i= 7; $i>=0; $i--){
+        if ($num-- > 0){
+          $result+= pow(2,$i);
+        }
+      }
+
+      $netmask.= $result.".";
+    }
+
+    return (preg_replace('/\.$/', '', $netmask));
+  }
+
+  return ($netmask);
+}
+
+
+/*! \brief Return the number of set bits in the netmask
+ *
+ * For a given subnetmask (for example 255.255.255.0) this returns
+ * the number of set bits.
+ *
+ * Example:
+ * \code
+ * $bits = netmask_to_bits('255.255.255.0') # Returns 24
+ * $bits = netmask_to_bits('255.255.254.0') # Returns 23
+ * \endcode
+ *
+ * Be aware of the fact that the function does not check
+ * if the given subnet mask is actually valid. For example:
+ * Bad examples:
+ * \code
+ * $bits = netmask_to_bits('255.0.0.255') # Returns 16
+ * $bits = netmask_to_bits('255.255.0.255') # Returns 24
+ * \endcode
+ */
+function netmask_to_bits($netmask)
+{
+  list($nm0, $nm1, $nm2, $nm3)= explode('.', $netmask);
+  $res= 0;
+
+  for ($n= 0; $n<4; $n++){
+    $start= 255;
+    $name= "nm$n";
+
+    for ($i= 0; $i<8; $i++){
+      if ($start == (int)($$name)){
+        $res+= 8 - $i;
+        break;
+      }
+      $start-= pow(2,$i);
+    }
+  }
+
+  return ($res);
+}
+
+
+/*! \brief Recursion helper for gen_id() */
+function recurse($rule, $variables)
+{
+  $result= array();
+
+  if (!count($variables)){
+    return array($rule);
+  }
+
+  reset($variables);
+  $key= key($variables);
+  $val= current($variables);
+  unset ($variables[$key]);
+
+  foreach($val as $possibility){
+    $nrule= str_replace("{$key}", $possibility, $rule);
+    $result= array_merge($result, recurse($nrule, $variables));
+  }
+
+  return ($result);
+}
+
+
+/*! \brief Expands user ID based on possible rules
+ *
+ *  Unroll given rule string by filling in attributes.
+ *
+ * \param string 'rule' The rule string from gosa.conf.
+ * \param array 'attributes' A dictionary of attribute/value mappings
+ * \return string Expanded string, still containing the id keyword.
+ */
+function expand_id($rule, $attributes)
+{
+  /* Check for id rule */
+  if(preg_match('/^id(:|#|!)\d+$/',$rule)){
+    return (array("{$rule}"));
+  }
+
+  /* Check for clean attribute */
+  if (preg_match('/^%[a-zA-Z0-9]+$/', $rule)){
+    $rule= preg_replace('/^%/', '', $rule);
+    $val= rewrite(str_replace(' ', '', strtolower($attributes[$rule])));
+    return (array($val));
+  }
+
+  /* Check for attribute with parameters */
+  if (preg_match('/^%[a-zA-Z0-9]+\[[0-9-]+\]$/', $rule)){
+    $param= preg_replace('/^[^[]+\[([^]]+)]$/', '\\1', $rule);
+    $part= preg_replace('/^%/', '', preg_replace('/\[.*$/', '', $rule));
+    $val= rewrite(str_replace(' ', '', strtolower($attributes[$part])));
+    $start= preg_replace ('/-.*$/', '', $param);
+    $stop = preg_replace ('/^[^-]+-/', '', $param);
+
+    /* Assemble results */
+    $result= array();
+    for ($i= $start; $i<= $stop; $i++){
+      $result[]= substr($val, 0, $i);
+    }
+    return ($result);
+  }
+
+  echo "Error in idGenerator string: don't know how to handle rule $rule.\n";
+  return (array($rule));
+}
+
+
+/*! \brief Generate a list of uid proposals based on a rule
+ *
+ *  Unroll given rule string by filling in attributes and replacing
+ *  all keywords.
+ *
+ * \param string 'rule' The rule string from gosa.conf.
+ * \param array 'attributes' A dictionary of attribute/value mappings
+ * \return array List of valid not used uids
+ */
+function gen_uids($rule, $attributes)
+{
+  global $config;
+
+  /* Search for keys and fill the variables array with all 
+     possible values for that key. */
+  $part= "";
+  $trigger= false;
+  $stripped= "";
+  $variables= array();
+
+  for ($pos= 0, $l= strlen($rule); $pos < $l; $pos++){
+
+    if ($rule[$pos] == "{" ){
+      $trigger= true;
+      $part= "";
+      continue;
+    }
+
+    if ($rule[$pos] == "}" ){
+      $variables[$pos]= expand_id($part, $attributes);
+      $stripped.= "{".$pos."}";
+      $trigger= false;
+      continue;
+    }
+
+    if ($trigger){
+      $part.= $rule[$pos];
+    } else {
+      $stripped.= $rule[$pos];
+    }
+  }
+
+  /* Recurse through all possible combinations */
+  $proposed= recurse($stripped, $variables);
+
+  /* Get list of used ID's */
+  $ldap= $config->get_ldap_link();
+  $ldap->cd($config->current['BASE']);
+
+  /* Remove used uids and watch out for id tags */
+  $ret= array();
+  foreach($proposed as $uid){
+
+    /* Check for id tag and modify uid if needed */
+    if(preg_match('/\{id(:|!)\d+}/',$uid, $m)){
+      $size= preg_replace('/^.*{id(:|!)(\d+)}.*$/', '\\2', $uid);
+
+      $start= $m[1]==":"?0:-1;
+      for ($i= $start, $p= pow(10,$size)-1; $i < $p; $i++){
+        if ($i == -1) {
+          $number= "";
+        } else {
+          $number= sprintf("%0".$size."d", $i+1);
+        }
+        $res= preg_replace('/{id(:|!)\d+}/', $number, $uid);
+
+        $ldap->search("(uid=".preg_replace('/[{}]/', '', $res).")",array('dn'));
+        if($ldap->count() == 0){
+          $uid= $res;
+          break;
+        }
+      }
+
+      /* Remove link if nothing has been found */
+      $uid= preg_replace('/{id(:|!)\d+}/', '', $uid);
+    }
+
+    if(preg_match('/\{id#\d+}/',$uid)){
+      $size= preg_replace('/^.*{id#(\d+)}.*$/', '\\1', $uid);
+
+      while (true){
+        mt_srand((double) microtime()*1000000);
+        $number= sprintf("%0".$size."d", mt_rand(0, pow(10, $size)-1));
+        $res= preg_replace('/{id#(\d+)}/', $number, $uid);
+        $ldap->search("(uid=".preg_replace('/[{}]/', '', $res).")",array('dn'));
+        if($ldap->count() == 0){
+          $uid= $res;
+          break;
+        }
+      }
+
+      /* Remove link if nothing has been found */
+      $uid= preg_replace('/{id#\d+}/', '', $uid);
+    }
+
+    /* Don't assign used ones */
+    $ldap->search("(uid=".preg_replace('/[{}]/', '', $uid).")",array('dn'));
+    if($ldap->count() == 0){
+      /* Add uid, but remove {} first. These are invalid anyway. */
+      $ret[]= preg_replace('/[{}]/', '', $uid);
+    }
+  }
+
+  return(array_unique($ret));
+}
+
+
+/*! \brief Convert various data sizes to bytes
+ *
+ * Given a certain value in the format n(g|m|k), where n
+ * is a value and (g|m|k) stands for Gigabyte, Megabyte and Kilobyte
+ * this function returns the byte value.
+ *
+ * \param string 'value' a value in the above specified format
+ * \return a byte value or the original value if specified string is simply
+ * a numeric value
+ *
+ */
+function to_byte($value) {
+  $value= strtolower(trim($value));
+
+  if(!is_numeric(substr($value, -1))) {
+
+    switch(substr($value, -1)) {
+      case 'g':
+        $mult= 1073741824;
+        break;
+      case 'm':
+        $mult= 1048576;
+        break;
+      case 'k':
+        $mult= 1024;
+        break;
+    }
+
+    return ($mult * (int)substr($value, 0, -1));
+  } else {
+    return $value;
+  }
+}
+
+
+/*! \brief Check if a value exists in an array (case-insensitive)
+ * 
+ * This is just as http://php.net/in_array except that the comparison
+ * is case-insensitive.
+ *
+ * \param string 'value' needle
+ * \param array 'items' haystack
+ */ 
+function in_array_ics($value, $items)
+{
+	return preg_grep('/^'.preg_quote($value, '/').'$/i', $items);
+}
+
+
+/*! \brief Generate a clickable alphabet */
+function generate_alphabet($count= 10)
+{
+  $characters= _("*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
+  $alphabet= "";
+  $c= 0;
+
+  /* Fill cells with charaters */
+  for ($i= 0, $l= mb_strlen($characters, 'UTF8'); $i<$l; $i++){
+    if ($c == 0){
+      $alphabet.= "<tr>";
+    }
+
+    $ch = mb_substr($characters, $i, 1, "UTF8");
+    $alphabet.= "<td><a class=\"alphaselect\" href=\"main.php?plug=".
+      validate($_GET['plug'])."&search=".$ch."\"> ".$ch." </a></td>";
+
+    if ($c++ == $count){
+      $alphabet.= "</tr>";
+      $c= 0;
+    }
+  }
+
+  /* Fill remaining cells */
+  while ($c++ <= $count){
+    $alphabet.= "<td> </td>";
+  }
+
+  return ($alphabet);
+}
+
+
+/*! \brief Removes malicious characters from a (POST) string. */
+function validate($string)
+{
+  return (strip_tags(str_replace('\0', '', $string)));
+}
+
+
+/*! \brief Evaluate the current GOsa version from the build in revision string */
+function get_gosa_version()
+{
+  global $svn_revision, $svn_path;
+
+  /* Extract informations */
+  $revision= preg_replace('/^[^0-9]*([0-9]+)[^0-9]*$/', '\1', $svn_revision);
+
+  /* Release or development? */
+  if (preg_match('%/gosa/trunk/%', $svn_path)){
+    return (sprintf(_("GOsa development snapshot (Rev %s)"), $revision));
+  } else {
+    $release= preg_replace('%^.*/([^/]+)/include/functions.inc.*$%', '\1', $svn_path);
+    return (sprintf(_("GOsa $release"), $revision));
+  }
+}
+
+
+/*! \brief Recursively delete a path in the file system
+ *
+ * Will delete the given path and all its files recursively.
+ * Can also follow links if told so.
+ *
+ * \param string 'path'
+ * \param boolean 'followLinks' TRUE to follow links, FALSE (default)
+ * for not following links
+ */
+function rmdirRecursive($path, $followLinks=false) {
+  $dir= opendir($path);
+  while($entry= readdir($dir)) {
+    if(is_file($path."/".$entry) || ((!$followLinks) && is_link($path."/".$entry))) {
+      unlink($path."/".$entry);
+    } elseif (is_dir($path."/".$entry) && $entry!='.' && $entry!='..') {
+      rmdirRecursive($path."/".$entry);
+    }
+  }
+  closedir($dir);
+  return rmdir($path);
+}
+
+
+/*! \brief Get directory content information
+ *
+ * Returns the content of a directory as an array in an
+ * ascended sorted manner.
+ *
+ * \param string 'path'
+ * \param boolean weither to sort the content descending.
+ */
+function scan_directory($path,$sort_desc=false)
+{
+  $ret = false;
+
+  /* is this a dir ? */
+  if(is_dir($path)) {
+
+    /* is this path a readable one */
+    if(is_readable($path)){
+
+      /* Get contents and write it into an array */   
+      $ret = array();    
+
+      $dir = opendir($path);
+
+      /* Is this a correct result ?*/
+      if($dir){
+        while($fp = readdir($dir))
+          $ret[]= $fp;
+      }
+    }
+  }
+  /* Sort array ascending , like scandir */
+  sort($ret);
+
+  /* Sort descending if parameter is sort_desc is set */
+  if($sort_desc) {
+    $ret = array_reverse($ret);
+  }
+
+  return($ret);
+}
+
+
+/*! \brief Clean the smarty compile dir */
+function clean_smarty_compile_dir($directory)
+{
+  global $svn_revision;
+
+  if(is_dir($directory) && is_readable($directory)) {
+    // Set revision filename to REVISION
+    $revision_file= $directory."/REVISION";
+
+    /* Is there a stamp containing the current revision? */
+    if(!file_exists($revision_file)) {
+      // create revision file
+      create_revision($revision_file, $svn_revision);
+    } else {
+      # check for "$config->...['CONFIG']/revision" and the
+      # contents should match the revision number
+      if(!compare_revision($revision_file, $svn_revision)){
+        // If revision differs, clean compile directory
+        foreach(scan_directory($directory) as $file) {
+          if(($file==".")||($file=="..")) continue;
+          if( is_file($directory."/".$file) &&
+              is_writable($directory."/".$file)) {
+            // delete file
+            if(!unlink($directory."/".$file)) {
+              msg_dialog::display(_("Internal error"), sprintf(_("File '%s' could not be deleted."), $directory."/".$file), ERROR_DIALOG);
+              // This should never be reached
+            }
+          } elseif(is_dir($directory."/".$file) &&
+              is_writable($directory."/".$file)) {
+            // Just recursively delete it
+            rmdirRecursive($directory."/".$file);
+          }
+        }
+        // We should now create a fresh revision file
+        clean_smarty_compile_dir($directory);
+      } else {
+        // Revision matches, nothing to do
+      }
+    }
+  } else {
+    // Smarty compile dir is not accessible
+    // (Smarty will warn about this)
+  }
+}
+
+
+function create_revision($revision_file, $revision)
+{
+  $result= false;
+
+  if(is_dir(dirname($revision_file)) && is_writable(dirname($revision_file))) {
+    if($fh= fopen($revision_file, "w")) {
+      if(fwrite($fh, $revision)) {
+        $result= true;
+      }
+    }
+    fclose($fh);
+  } else {
+    msg_dialog::display(_("Internal error"), _("Cannot write to revision file!"), ERROR_DIALOG);
+  }
+
+  return $result;
+}
+
+
+function compare_revision($revision_file, $revision)
+{
+  // false means revision differs
+  $result= false;
+
+  if(file_exists($revision_file) && is_readable($revision_file)) {
+    // Open file
+    if($fh= fopen($revision_file, "r")) {
+      // Compare File contents with current revision
+      if($revision == fread($fh, filesize($revision_file))) {
+        $result= true;
+      }
+    } else {
+      msg_dialog::display(_("Internal error"), _("Cannot write to revision file!"), ERROR_DIALOG);
+    }
+    // Close file
+    fclose($fh);
+  }
+
+  return $result;
+}
+
+
+/*! \brief Return HTML for a progressbar
+ *
+ * \code
+ * $smarty->assign("installprogress", progressbar($current_progress_in_percent),100,15,true); 
+ * \endcode
+ *
+ * \param int 'percentage' Value to display
+ * \param int 'width' width of the resulting output
+ * \param int 'height' height of the resulting output
+ * \param boolean 'showvalue' weither to show the percentage in the progressbar or not
+ * */
+function progressbar($percentage,$width=100,$height=15,$showvalue=false)
+{
+  return("<img src='progress.php?x=$width&y=$height&p=$percentage'>");
+}
+
+
+/*! \brief Lookup a key in an array case-insensitive
+ *
+ * Given an associative array this can lookup the value of
+ * a certain key, regardless of the case.
+ *
+ * \code
+ * $items = array ('FOO' => 'blub', 'bar' => 'blub');
+ * array_key_ics('foo', $items); # Returns 'blub'
+ * array_key_ics('BAR', $items); # Returns 'blub'
+ * \endcode
+ *
+ * \param string 'key' needle
+ * \param array 'items' haystack
+ */
+function array_key_ics($ikey, $items)
+{
+  $tmp= array_change_key_case($items, CASE_LOWER);
+  $ikey= strtolower($ikey);
+  if (isset($tmp[$ikey])){
+    return($tmp[$ikey]);
+  }
+
+  return ('');
+}
+
+
+/*! \brief Determine if two arrays are different
+ *
+ * \param array 'src'
+ * \param array 'dst'
+ * \return boolean TRUE or FALSE
+ * */
+function array_differs($src, $dst)
+{
+  /* If the count is differing, the arrays differ */
+  if (count ($src) != count ($dst)){
+    return (TRUE);
+  }
+
+  return (count(array_diff($src, $dst)) != 0);
+}
+
+
+function saveFilter($a_filter, $values)
+{
+  if (isset($_POST['regexit'])){
+    $a_filter["regex"]= $_POST['regexit'];
+
+    foreach($values as $type){
+      if (isset($_POST[$type])) {
+        $a_filter[$type]= "checked";
+      } else {
+        $a_filter[$type]= "";
+      }
+    }
+  }
+
+  /* React on alphabet links if needed */
+  if (isset($_GET['search'])){
+    $s= mb_substr(validate($_GET['search']), 0, 1, "UTF8")."*";
+    if ($s == "**"){
+      $s= "*";
+    }
+    $a_filter['regex']= $s;
+  }
+
+  return ($a_filter);
+}
+
+
+/*! \brief Escape all LDAP filter relevant characters */
+function normalizeLdap($input)
+{
+  return (addcslashes($input, '()|'));
+}
+
+
+/*! \brief Return the gosa base directory */
+function get_base_dir()
+{
+  global $BASE_DIR;
+
+  return $BASE_DIR;
+}
+
+
+/*! \brief Test weither we are allowed to read the object */
+function obj_is_readable($dn, $object, $attribute)
+{
+  global $ui;
+
+  return preg_match('/r/', $ui->get_permissions($dn, $object, $attribute));
+}
+
+
+/*! \brief Test weither we are allowed to change the object */
+function obj_is_writable($dn, $object, $attribute)
+{
+  global $ui;
+
+  return preg_match('/w/', $ui->get_permissions($dn, $object, $attribute));
+}
+
+
+/*! \brief Explode a DN into its parts
+ *
+ * Similar to explode (http://php.net/explode), but a bit more specific
+ * for the needs when splitting, exploding LDAP DNs.
+ *
+ * \param string 'dn' the DN to split
+ * \param config-object a config object. only neeeded if DN shall be verified in the LDAP
+ * \param boolean verify_in_ldap check weither DN is valid
+ *
+ */
+function gosa_ldap_explode_dn($dn,$config = NULL,$verify_in_ldap=false)
+{
+  /* Initialize variables */
+  $ret  = array("count" => 0);  // Set count to 0
+  $next = true;                 // if false, then skip next loops and return
+  $cnt  = 0;                    // Current number of loops
+  $max  = 100;                  // Just for security, prevent looops
+  $ldap = NULL;                 // To check if created result a valid
+  $keep = "";                   // save last failed parse string
+
+  /* Check each parsed dn in ldap ? */
+  if($config!==NULL && $verify_in_ldap){
+    $ldap = $config->get_ldap_link();
+  }
+
+  /* Lets start */
+  $called = false;
+  while(preg_match("/,/",$dn) && $next &&  $cnt < $max){
+
+    $cnt ++;
+    if(!preg_match("/,/",$dn)){
+      $next = false;
+    }
+    $object = preg_replace("/[,].*$/","",$dn);
+    $dn     = preg_replace("/^[^,]+,/","",$dn);
+
+    $called = true;
+
+    /* Check if current dn is valid */
+    if($ldap!==NULL){
+      $ldap->cd($dn);
+      $ldap->cat($dn,array("dn"));
+      if($ldap->count()){
+        $ret[]  = $keep.$object;
+        $keep   = "";
+      }else{
+        $keep  .= $object.",";
+      }
+    }else{
+      $ret[]  = $keep.$object;
+      $keep   = "";
+    }
+  }
+
+  /* No dn was posted */
+  if($cnt == 0 && !empty($dn)){
+    $ret[] = $dn;
+  }
+
+  /* Append the rest */
+  $test = $keep.$dn;
+  if($called && !empty($test)){
+    $ret[] = $keep.$dn;
+  }
+  $ret['count'] = count($ret) - 1;
+
+  return($ret);
+}
+
+
+function get_base_from_hook($dn, $attrib)
+{
+  global $config;
+
+  if ($config->get_cfg_value("baseIdHook") != ""){
+    
+    /* Call hook script - if present */
+    $command= $config->get_cfg_value("baseIdHook");
+
+    if ($command != ""){
+      $command.= " '".LDAP::fix($dn)."' $attrib";
+      if (check_command($command)){
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
+        exec($command, $output);
+        if (preg_match("/^[0-9]+$/", $output[0])){
+          return ($output[0]);
+        } else {
+          msg_dialog::display(_("Warning"), _("'baseIdHook' is not available. Using default base!"), WARNING_DIALOG);
+          return ($config->get_cfg_value("uidNumberBase"));
+        }
+      } else {
+        msg_dialog::display(_("Warning"), _("'baseIdHook' is not available. Using default base!"), WARNING_DIALOG);
+        return ($config->get_cfg_value("uidNumberBase"));
+      }
+
+    } else {
+
+      msg_dialog::display(_("Warning"), _("'baseIdHook' is not available. Using default base!"), WARNING_DIALOG);
+      return ($config->get_cfg_value("uidNumberBase"));
+
+    }
+  }
+}
+
+
+/*! \brief Check if schema version matches the requirements */
+function check_schema_version($class, $version)
+{
+  return preg_match("/\(v$version\)/", $class['DESC']);
+}
+
+
+/*! \brief Check if LDAP schema matches the requirements */
+function check_schema($cfg,$rfc2307bis = FALSE)
+{
+  $messages= array();
+
+  /* Get objectclasses */
+  $ldap = new ldapMultiplexer(new LDAP($cfg['admin'],$cfg['password'],$cfg['connection'] ,FALSE, $cfg['tls']));
+  $objectclasses = $ldap->get_objectclasses();
+  if(count($objectclasses) == 0){
+    msg_dialog::display(_("LDAP warning"), _("Cannot get schema information from server. No schema check possible!"), WARNING_DIALOG);
+  }
+
+  /* This is the default block used for each entry.
+   *  to avoid unset indexes.
+   */
+  $def_check = array("REQUIRED_VERSION" => "0",
+      "SCHEMA_FILES"     => array(),
+      "CLASSES_REQUIRED" => array(),
+      "STATUS"           => FALSE,
+      "IS_MUST_HAVE"     => FALSE,
+      "MSG"              => "",
+      "INFO"             => "");#_("There is currently no information specified for this schema extension."));
+
+  /* The gosa base schema */
+  $checks['gosaObject'] = $def_check;
+  $checks['gosaObject']['REQUIRED_VERSION'] = "2.6.1";
+  $checks['gosaObject']['SCHEMA_FILES']     = array("gosa-samba3.schema","gosa-samba2.schema");
+  $checks['gosaObject']['CLASSES_REQUIRED'] = array("gosaObject");
+  $checks['gosaObject']['IS_MUST_HAVE']     = TRUE;
+
+  /* GOsa Account class */
+  $checks["gosaAccount"]["REQUIRED_VERSION"]= "2.6.6";
+  $checks["gosaAccount"]["SCHEMA_FILES"]    = array("gosa-samba3.schema","gosa-samba2.schema");
+  $checks["gosaAccount"]["CLASSES_REQUIRED"]= array("gosaAccount");
+  $checks["gosaAccount"]["IS_MUST_HAVE"]    = TRUE;
+  $checks["gosaAccount"]["INFO"]            = _("Used to store account specific informations.");
+
+  /* GOsa lock entry, used to mark currently edited objects as 'in use' */
+  $checks["gosaLockEntry"]["REQUIRED_VERSION"] = "2.6.1";
+  $checks["gosaLockEntry"]["SCHEMA_FILES"]     = array("gosa-samba3.schema","gosa-samba2.schema");
+  $checks["gosaLockEntry"]["CLASSES_REQUIRED"] = array("gosaLockEntry");
+  $checks["gosaLockEntry"]["IS_MUST_HAVE"]     = TRUE;
+  $checks["gosaLockEntry"]["INFO"]             = _("Used to lock currently edited entries to avoid multiple changes at the same time.");
+
+  /* Some other checks */
+  foreach(array(
+        "gosaCacheEntry"        => array("version" => "2.6.1", "class" => "gosaAccount"),
+        "gosaDepartment"        => array("version" => "2.6.1", "class" => "gosaAccount"),
+        "goFaxAccount"          => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
+        "goFaxSBlock"           => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
+        "goFaxRBlock"           => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
+        "gosaUserTemplate"      => array("version" => "2.6.1", "class" => "posixAccount","file" => "nis.schema"),
+        "gosaMailAccount"       => array("version" => "2.6.1", "class" => "mailAccount","file" => "gosa-samba3.schema"),
+        "gosaProxyAccount"      => array("version" => "2.6.1", "class" => "proxyAccount","file" => "gosa-samba3.schema"),
+        "gosaApplication"       => array("version" => "2.6.1", "class" => "appgroup","file" => "gosa.schema"),
+        "gosaApplicationGroup"  => array("version" => "2.6.1", "class" => "appgroup","file" => "gosa.schema"),
+        "GOhard"                => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "gotoTerminal"          => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goServer"              => array("version" => "2.6.1", "class" => "server","file" => "goserver.schema"),
+        "goTerminalServer"      => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goShareServer"         => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goNtpServer"           => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goSyslogServer"        => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goLdapServer"          => array("version" => "2.6.1", "class" => "goServer"),
+        "goCupsServer"          => array("version" => "2.6.1", "class" => array("posixAccount", "terminals"),),
+        "goImapServer"          => array("version" => "2.6.1", "class" => array("mailAccount", "mailgroup"),"file" => "gosa-samba3.schema"),
+        "goKrbServer"           => array("version" => "2.6.1", "class" => "goServer"),
+        "goFaxServer"           => array("version" => "2.6.1", "class" => "gofaxAccount","file" => "gofax.schema"),
+        ) as $name => $values){
+
+          $checks[$name] = $def_check;
+          if(isset($values['version'])){
+            $checks[$name]["REQUIRED_VERSION"] = $values['version'];
+          }
+          if(isset($values['file'])){
+            $checks[$name]["SCHEMA_FILES"] = array($values['file']);
+          }
+          if (isset($values['class'])) {
+            $checks[$name]["CLASSES_REQUIRED"] = is_array($values['class'])?$values['class']:array($values['class']);
+          }
+        }
+  foreach($checks as $name => $value){
+    foreach($value['CLASSES_REQUIRED'] as $class){
+
+      if(!isset($objectclasses[$name])){
+        if($value['IS_MUST_HAVE']){
+          $checks[$name]['STATUS'] = FALSE;
+          $checks[$name]['MSG']    = sprintf(_("Missing required object class '%s'!"),$class);
+        } else {
+          $checks[$name]['STATUS'] = TRUE;
+          $checks[$name]['MSG']    = sprintf(_("Missing optional object class '%s'!"),$class);
+        }
+      }elseif(!check_schema_version($objectclasses[$name],$value['REQUIRED_VERSION'])){
+        $checks[$name]['STATUS'] = FALSE;
+
+        $checks[$name]['MSG'] = sprintf(_("Version mismatch for required object class '%s' (!=%s)!"), $class,                           $value['REQUIRED_VERSION']);
+      }else{
+        $checks[$name]['STATUS'] = TRUE;
+        $checks[$name]['MSG'] = sprintf(_("Class(es) available"));
+      }
+    }
+  }
+
+  $tmp = $objectclasses;
+
+  /* The gosa base schema */
+  $checks['posixGroup'] = $def_check;
+  $checks['posixGroup']['REQUIRED_VERSION'] = "2.6.1";
+  $checks['posixGroup']['SCHEMA_FILES']     = array("gosa-samba3.schema","gosa-samba2.schema");
+  $checks['posixGroup']['CLASSES_REQUIRED'] = array("posixGroup");
+  $checks['posixGroup']['STATUS']           = TRUE;
+  $checks['posixGroup']['IS_MUST_HAVE']     = TRUE;
+  $checks['posixGroup']['MSG']              = "";
+  $checks['posixGroup']['INFO']             = "";
+
+  /* Depending on selected rfc2307bis mode, we need different schema configurations */
+  if(isset($tmp['posixGroup'])){
+
+    if($rfc2307bis && isset($tmp['posixGroup']['STRUCTURAL'])){
+      $checks['posixGroup']['STATUS']           = FALSE;
+      $checks['posixGroup']['MSG']              = _("You have enabled the rfc2307bis option on the 'ldap setup' step, but your schema    configuration do not support this option.");
+      $checks['posixGroup']['INFO']             = _("In order to use rfc2307bis conform groups the objectClass 'posixGroup' must be      AUXILIARY");
+    }
+    if(!$rfc2307bis && !isset($tmp['posixGroup']['STRUCTURAL'])){
+      $checks['posixGroup']['STATUS']           = FALSE;
+      $checks['posixGroup']['MSG']              = _("Your schema is configured to support the rfc2307bis group, but you have disabled this option on the 'ldap setup' step.");
+      $checks['posixGroup']['INFO']             = _("The objectClass 'posixGroup' must be STRUCTURAL");
+    }
+  }
+
+  return($checks);
+}
+
+
+function get_languages($languages_in_own_language = FALSE,$strip_region_tag = FALSE)
+{
+  $tmp = array(
+        "de_DE" => "German",
+        "fr_FR" => "French",
+        "it_IT" => "Italian",
+        "es_ES" => "Spanish",
+        "en_US" => "English",
+        "nl_NL" => "Dutch",
+        "pl_PL" => "Polish",
+        #"sv_SE" => "Swedish",
+        "zh_CN" => "Chinese",
+        "vi_VN" => "Vietnamese",
+        "ru_RU" => "Russian");
+  
+  $tmp2= array(
+        "de_DE" => _("German"),
+        "fr_FR" => _("French"),
+        "it_IT" => _("Italian"),
+        "es_ES" => _("Spanish"),
+        "en_US" => _("English"),
+        "nl_NL" => _("Dutch"),
+        "pl_PL" => _("Polish"),
+        #"sv_SE" => _("Swedish"),
+        "zh_CN" => _("Chinese"),
+        "vi_VN" => _("Vietnamese"),
+        "ru_RU" => _("Russian"));
+
+  $ret = array();
+  if($languages_in_own_language){
+
+    $old_lang = setlocale(LC_ALL, 0);
+
+    /* If the locale wasn't correclty set before, there may be an incorrect
+        locale returned. Something like this: 
+          C_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;LC ...
+        Extract the locale name from this string and use it to restore old locale.
+     */
+    if(preg_match("/LC_CTYPE/",$old_lang)){
+      $old_lang = preg_replace("/^.*LC_CTYPE=([^;]*).*$/","\\1",$old_lang);
+    }
+    
+    foreach($tmp as $key => $name){
+      $lang = $key.".UTF-8";
+      setlocale(LC_ALL, $lang);
+      if($strip_region_tag){
+        $ret[preg_replace("/^([^_]*).*$/","\\1",$key)] = _($name)." (".$tmp2[$key].")";
+      }else{
+        $ret[$key] = _($name)."  (".$tmp2[$key].")";
+      }
+    }
+    setlocale(LC_ALL, $old_lang);
+  }else{
+    foreach($tmp as $key => $name){
+      if($strip_region_tag){
+        $ret[preg_replace("/^([^_]*).*/","\\1",$key)] = _($name);
+      }else{
+        $ret[$key] = _($name);
+      }
+    }
+  }
+  return($ret);
+}
+
+
+/*! \brief Returns contents of the given POST variable and check magic quotes settings
+ *
+ * Depending on the magic quotes settings this returns a stripclashed'ed version of
+ * a certain POST variable.
+ *
+ * \param string 'name' the POST var to return ($_POST[$name])
+ * \return string
+ * */
+function get_post($name)
+{
+  if(!isset($_POST[$name])){
+    trigger_error("Requested POST value (".$name.") does not exists, you should add a check to prevent this message.");
+    return(FALSE);
+  }
+
+  if(get_magic_quotes_gpc()){
+    return(stripcslashes(validate($_POST[$name])));
+  }else{
+    return(validate($_POST[$name]));
+  }
+}
+
+
+/*! \brief Return class name in correct case */
+function get_correct_class_name($cls)
+{
+  global $class_mapping;
+  if(isset($class_mapping) && is_array($class_mapping)){
+    foreach($class_mapping as $class => $file){
+      if(preg_match("/^".$cls."$/i",$class)){
+        return($class);
+      }
+    }
+  }
+  return(FALSE);
+}
+
+
+/*! \brief Change the password of a given DN
+ * 
+ * Change the password of a given DN with the specified hash.
+ *
+ * \param string 'dn' the DN whose password shall be changed
+ * \param string 'password' the password
+ * \param int mode
+ * \param string 'hash' which hash to use to encrypt it, default is empty
+ * for cleartext storage.
+ * \return boolean TRUE on success FALSE on error
+ */
+function change_password ($dn, $password, $mode=0, $hash= "")
+{
+  global $config;
+  $newpass= "";
+
+  /* Convert to lower. Methods are lowercase */
+  $hash= strtolower($hash);
+
+  // Get all available encryption Methods
+
+  // NON STATIC CALL :)
+  $methods = new passwordMethod(session::get('config'),$dn);
+  $available = $methods->get_available_methods();
+
+  // read current password entry for $dn, to detect the encryption Method
+  $ldap       = $config->get_ldap_link();
+  $ldap->cat ($dn, array("shadowLastChange", "userPassword", "uid"));
+  $attrs      = $ldap->fetch ();
+
+  /* Is ensure that clear passwords will stay clear */
+  if($hash == "" && isset($attrs['userPassword'][0]) && !preg_match ("/^{([^}]+)}(.+)/", $attrs['userPassword'][0])){
+    $hash = "clear";
+  }
+
+  // Detect the encryption Method
+  if ( (isset($attrs['userPassword'][0]) &&  preg_match ("/^{([^}]+)}(.+)/", $attrs['userPassword'][0], $matches)) ||  $hash != ""){
+
+    /* Check for supported algorithm */
+    mt_srand((double) microtime()*1000000);
+
+    /* Extract used hash */
+    if ($hash == ""){
+      $test = passwordMethod::get_method($attrs['userPassword'][0],$dn);
+    } else {
+      $test = new $available[$hash]($config,$dn);
+      $test->set_hash($hash);
+    }
+
+  } else {
+    // User MD5 by default
+    $hash= "md5";
+    $test = new  $available['md5']($config, $dn);
+  }
+
+  if($test instanceOf passwordMethod){
+
+    $deactivated = $test->is_locked($config,$dn);
+
+    /* Feed password backends with information */
+    $test->dn= $dn;
+    $test->attrs= $attrs;
+    $newpass= $test->generate_hash($password);
+
+    // Update shadow timestamp?
+    if (isset($attrs["shadowLastChange"][0])){
+      $shadow= (int)(date("U") / 86400);
+    } else {
+      $shadow= 0;
+    }
+
+    // Write back modified entry
+    $ldap->cd($dn);
+    $attrs= array();
+
+    // Not for groups
+    if ($mode == 0){
+      // Create SMB Password
+      $attrs= generate_smb_nt_hash($password);
+
+      if ($shadow != 0){
+        $attrs['shadowLastChange']= $shadow;
+      }
+    }
+
+    $attrs['userPassword']= array();
+    $attrs['userPassword']= $newpass;
+
+    $ldap->modify($attrs);
+
+    /* Read ! if user was deactivated */
+    if($deactivated){
+      $test->lock_account($config,$dn);
+    }
+
+    new log("modify","users/passwordMethod",$dn,array_keys($attrs),$ldap->get_error());
+
+    if (!$ldap->success()) {
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, ERROR_DIALOG));
+    } else {
+
+      /* Run backend method for change/create */
+      if(!$test->set_password($password)){
+        return(FALSE);
+      }
+
+      /* Find postmodify entries for this class */
+      $command= $config->search("password", "POSTMODIFY",array('menu'));
+
+      if ($command != ""){
+        /* Walk through attribute list */
+        $command= preg_replace("/%userPassword/", $password, $command);
+        $command= preg_replace("/%dn/", $dn, $command);
+
+        if (check_command($command)){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
+          exec($command);
+        } else {
+          $message= sprintf(_("Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."), $command, "password");
+          msg_dialog::display(_("Configuration error"), $message, ERROR_DIALOG);
+        }
+      }
+    }
+    return(TRUE);
+  }
+}
+
+
+/*! \brief Generate samba hashes
+ *
+ * Given a certain password this constructs an array like
+ * array['sambaLMPassword'] etc.
+ *
+ * \param string 'password'
+ * \return array contains several keys for lmPassword, ntPassword, pwdLastSet, etc. depending
+ * on the samba version
+ */
+function generate_smb_nt_hash($password)
+{
+  global $config;
+
+  # Try to use gosa-si?
+  if ($config->get_cfg_value("gosaSupportURI") != ""){
+  	$res= gosaSupportDaemon::send("gosa_gen_smb_hash", "GOSA", array("password" => $password), TRUE);
+    if (isset($res['XML']['HASH'])){
+    	$hash= $res['XML']['HASH'];
+    } else {
+      $hash= "";
+    }
+
+    if ($hash == "") {
+      msg_dialog::display(_("Configuration error"), _("Cannot generate samba hash!"), ERROR_DIALOG);
+      return ("");
+    }
+  } else {
+	  $tmp= $config->get_cfg_value('sambaHashHook')." ".escapeshellarg($password);
+	  @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $tmp, "Execute");
+
+	  exec($tmp, $ar);
+	  flush();
+	  reset($ar);
+	  $hash= current($ar);
+
+    if ($hash == "") {
+      msg_dialog::display(_("Configuration error"), sprintf(_("Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"),$config->get_cfg_value('sambaHashHook')), ERROR_DIALOG);
+      return ("");
+    }
+  }
+
+  list($lm,$nt)= explode(":", trim($hash));
+
+  $attrs['sambaLMPassword']= $lm;
+  $attrs['sambaNTPassword']= $nt;
+  $attrs['sambaPwdLastSet']= date('U');
+  $attrs['sambaBadPasswordCount']= "0";
+  $attrs['sambaBadPasswordTime']= "0";
+  return($attrs);
+}
+
+
+/*! \brief Get the Change Sequence Number of a certain DN
+ *
+ * To verify if a given object has been changed outside of Gosa
+ * in the meanwhile, this function can be used to get the entryCSN
+ * from the LDAP directory. It uses the attribute as configured
+ * in modificationDetectionAttribute
+ *
+ * \param string 'dn'
+ * \return either the result or "" in any other case
+ */
+function getEntryCSN($dn)
+{
+  global $config;
+  if(empty($dn) || !is_object($config)){
+    return("");
+  }
+
+  /* Get attribute that we should use as serial number */
+  $attr= $config->get_cfg_value("modificationDetectionAttribute");
+  if($attr != ""){
+    $ldap = $config->get_ldap_link();
+    $ldap->cat($dn,array($attr));
+    $csn = $ldap->fetch();
+    if(isset($csn[$attr][0])){
+      return($csn[$attr][0]);
+    }
+  }
+  return("");
+}
+
+
+/*! \brief Add (a) given objectClass(es) to an attrs entry
+ * 
+ * The function adds the specified objectClass(es) to the given
+ * attrs entry.
+ *
+ * \param mixed 'classes' Either a single objectClass or several objectClasses
+ * as an array
+ * \param array 'attrs' The attrs array to be modified.
+ *
+ * */
+function add_objectClass($classes, &$attrs)
+{
+  if (is_array($classes)){
+    $list= $classes;
+  } else {
+    $list= array($classes);
+  }
+
+  foreach ($list as $class){
+    $attrs['objectClass'][]= $class;
+  }
+}
+
+
+/*! \brief Removes a given objectClass from the attrs entry
+ *
+ * Similar to add_objectClass, except that it removes the given
+ * objectClasses. See it for the params.
+ * */
+function remove_objectClass($classes, &$attrs)
+{
+  if (isset($attrs['objectClass'])){
+    /* Array? */
+    if (is_array($classes)){
+      $list= $classes;
+    } else {
+      $list= array($classes);
+    }
+
+    $tmp= array();
+    foreach ($attrs['objectClass'] as $oc) {
+      foreach ($list as $class){
+        if (strtolower($oc) != strtolower($class)){
+          $tmp[]= $oc;
+        }
+      }
+    }
+    $attrs['objectClass']= $tmp;
+  }
+}
+
+
+/*! \brief  Initialize a file download with given content, name and data type. 
+ *  \param  string data The content to send.
+ *  \param  string name The name of the file.
+ *  \param  string type The content identifier, default value is "application/octet-stream";
+ */
+function send_binary_content($data,$name,$type = "application/octet-stream")
+{
+  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+  header("Cache-Control: no-cache");
+  header("Pragma: no-cache");
+  header("Cache-Control: post-check=0, pre-check=0");
+  header("Content-type: ".$type."");
+
+  $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
+
+  /* Strip name if it is a complete path */
+  if (preg_match ("/\//", $name)) {
+	$name= basename($name);
+  }
+  
+  /* force download dialog */
+  if (preg_match('/MSIE 5.5/', $HTTP_USER_AGENT) || preg_match('/MSIE 6.0/', $HTTP_USER_AGENT)) {
+    header('Content-Disposition: filename="'.$name.'"');
+  } else {
+    header('Content-Disposition: attachment; filename="'.$name.'"');
+  }
+
+  echo $data;
+  exit();
+}
+
+
+function reverse_html_entities($str,$type = ENT_QUOTES , $charset = "UTF-8")
+{
+  if(is_string($str)){
+    return(htmlentities($str,$type,$charset));
+  }elseif(is_array($str)){
+    foreach($str as $name => $value){
+      $str[$name] = reverse_html_entities($value,$type,$charset);
+    }
+  }
+  return($str);
+}
+
+
+/*! \brief Encode special string characters so we can use the string in \
+           HTML output, without breaking quotes.
+    \param string The String we want to encode.
+    \return string The encoded String
+ */
+function xmlentities($str)
+{ 
+  if(is_string($str)){
+
+    static $asc2uni= array();
+    if (!count($asc2uni)){
+      for($i=128;$i<256;$i++){
+    #    $asc2uni[chr($i)] = "&#x".dechex($i).";";
+      }
+    }
+
+    $str = str_replace("&", "&", $str);
+    $str = str_replace("<", "<", $str);
+    $str = str_replace(">", ">", $str);
+    $str = str_replace("'", "'", $str);
+    $str = str_replace("\"", """, $str);
+    $str = str_replace("\r", "", $str);
+    $str = strtr($str,$asc2uni);
+    return $str;
+  }elseif(is_array($str)){
+    foreach($str as $name => $value){
+      $str[$name] = xmlentities($value);
+    }
+  }
+  return($str);
+}
+
+
+/*! \brief  Updates all accessTo attributes from a given value to a new one.
+            For example if a host is renamed.
+    \param  String  $from The source accessTo name.
+    \param  String  $to   The destination accessTo name.
+*/
+function update_accessTo($from,$to)
+{
+  global $config;
+  $ldap = $config->get_ldap_link();
+  $ldap->cd($config->current['BASE']);
+  $ldap->search("(&(objectClass=trustAccount)(accessTo=".$from."))",array("objectClass","accessTo"));
+  while($attrs = $ldap->fetch()){
+    $new_attrs = array("accessTo" => array());
+    $dn = $attrs['dn'];
+    for($i = 0 ; $i < $attrs['objectClass']['count']; $i++){
+      $new_attrs['objectClass'][] =  $attrs['objectClass'][$i];
+    }
+    for($i = 0 ; $i < $attrs['accessTo']['count']; $i++){
+      if($attrs['accessTo'][$i] == $from){
+        if(!empty($to)){
+          $new_attrs['accessTo'][] =  $to;
+        }
+      }else{
+        $new_attrs['accessTo'][] =  $attrs['accessTo'][$i]; 
+      }
+    }
+    $ldap->cd($dn);
+    $ldap->modify($new_attrs);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, "update_accessTo($from,$to)"));
+    }
+    new log("modify","update_accessTo($from,$to)",$dn,array_keys($new_attrs),$ldap->get_error());
+  }
+}
+
+
+/*! \brief Returns a random char */
+function get_random_char () {
+     $randno = rand (0, 63);
+     if ($randno < 12) {
+         return (chr ($randno + 46)); // Digits, '/' and '.'
+     } else if ($randno < 38) {
+         return (chr ($randno + 53)); // Uppercase
+     } else {
+         return (chr ($randno + 59)); // Lowercase
+     }
+}
+
+
+function cred_encrypt($input, $password) {
+
+  $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
+  $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
+
+  return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $password, $input, MCRYPT_MODE_ECB, $iv));
+
+}
+
+
+function cred_decrypt($input,$password) {
+  $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
+  $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
+
+  return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $password, pack("H*", $input), MCRYPT_MODE_ECB, $iv);
+}
+
+
+function get_object_info()
+{
+  return(session::get('objectinfo'));
+}
+
+
+function set_object_info($str = "")
+{
+  session::set('objectinfo',$str);
+}
+
+
+function isIpInNet($ip, $net, $mask) {
+   // Move to long ints
+   $ip= ip2long($ip);
+   $net= ip2long($net);
+   $mask= ip2long($mask);
+
+   // Mask given IP with mask. If it returns "net", we're in...
+   $res= $ip & $mask;
+
+   return ($res == $net);
+}
+
+
+function get_next_id($attrib, $dn)
+{
+  global $config;
+
+  switch ($config->get_cfg_value("idAllocationMethod", "traditional")){
+    case "pool":
+      return get_next_id_pool($attrib);
+    case "traditional":
+      return get_next_id_traditional($attrib, $dn);
+  }
+
+  msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." "._("unknown idAllocation method!"), ERROR_DIALOG);
+  return null;
+}
+
+
+function get_next_id_pool($attrib) {
+  global $config;
+
+  /* Fill informational values */
+  $min= $config->get_cfg_value("${attrib}PoolMin", 10000);
+  $max= $config->get_cfg_value("${attrib}PoolMax", 40000);
+
+  /* Sanity check */
+  if ($min >= $max) {
+    msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." ".sprintf(_("%sPoolMin >= %sPoolMax!"), $attrib), ERROR_DIALOG);
+    return null;
+  }
+
+  /* ID to skip */
+  $ldap= $config->get_ldap_link();
+  $id= null;
+
+  /* Try to allocate the ID several times before failing */
+  $tries= 3;
+  while ($tries--) {
+
+    /* Look for ID map entry */
+    $ldap->cd ($config->current['BASE']);
+    $ldap->search ("(&(objectClass=sambaUnixIdPool)($attrib=*))", array("$attrib"));
+
+    /* If it does not exist, create one with these defaults */
+    if ($ldap->count() == 0) {
+      /* Fill informational values */
+      $minUserId= $config->get_cfg_value("uidPoolMin", 10000);
+      $minGroupId= $config->get_cfg_value("gidPoolMin", 10000);
+
+      /* Add as default */
+      $attrs= array("objectClass" => array("organizationalUnit", "sambaUnixIdPool"));
+      $attrs["ou"]= "idmap";
+      $attrs["uidNumber"]= $minUserId;
+      $attrs["gidNumber"]= $minGroupId;
+      $ldap->cd("ou=idmap,".$config->current['BASE']);
+      $ldap->add($attrs);
+      if ($ldap->error != "Success") {
+        msg_dialog::display(_("Error"), _("Cannot create sambaUnixIdPool entry!"), ERROR_DIALOG);
+        return null;
+      }
+      $tries++;
+      continue;
+    }
+    /* Bail out if it's not unique */
+    if ($ldap->count() != 1) {
+      msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." "._("sambaUnixIdPool is not unique!"), ERROR_DIALOG);
+      return null;
+    }
+
+    /* Store old attrib and generate new */
+    $attrs= $ldap->fetch();
+    $dn= $ldap->getDN();
+    $oldAttr= $attrs[$attrib][0];
+    $newAttr= $oldAttr + 1;
+
+    /* Sanity check */
+    if ($newAttr >= $max) {
+      msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." "._("no ID available!"), ERROR_DIALOG);
+      return null;
+    }
+    if ($newAttr < $min) {
+      msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." "._("no ID available!"), ERROR_DIALOG);
+      return null;
+    }
+
+    #FIXME: PHP is not able to do a modification of "del: .../add: ...", so this
+    #       is completely unsafe in the moment.
+    #/* Remove old attr, add new attr */
+    #$attrs= array($attrib => $oldAttr);
+    #$ldap->rm($attrs, $dn);
+    #if ($ldap->error != "Success") {
+    #  continue;
+    #}
+    $ldap->cd($dn);
+    $ldap->modify(array($attrib => $newAttr));
+    if ($ldap->error != "Success") {
+      msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." ".$ldap->get_error(), ERROR_DIALOG);
+      return null;
+    } else {
+      return $oldAttr;
+    }
+  }
+
+  /* Bail out if we had problems getting the next id */
+  if (!$tries) {
+    msg_dialog::display(_("Error"), _("Cannot allocate a free ID:")." "._("maximum tries exceeded!"), ERROR_DIALOG);
+  }
+
+  return $id;
+}
+
+
+function get_next_id_traditional($attrib, $dn)
+{
+  global $config;
+
+  $ids= array();
+  $ldap= $config->get_ldap_link();
+
+  $ldap->cd ($config->current['BASE']);
+  if (preg_match('/gidNumber/i', $attrib)){
+    $oc= "posixGroup";
+  } else {
+    $oc= "posixAccount";
+  }
+  $ldap->search ("(&(objectClass=$oc)($attrib=*))", array("$attrib"));
+
+  /* Get list of ids */
+  while ($attrs= $ldap->fetch()){
+    $ids[]= (int)$attrs["$attrib"][0];
+  }
+
+  /* Add the nobody id */
+  $ids[]= 65534;
+
+  /* get the ranges */
+  $tmp = array('0'=> 1000);
+  if (preg_match('/posixAccount/', $oc) && $config->get_cfg_value("uidNumberBase") != ""){
+    $tmp= explode('-',$config->get_cfg_value("uidNumberBase"));
+  } elseif($config->get_cfg_value("gidNumberBase") != ""){
+    $tmp= explode('-',$config->get_cfg_value("gidNumberBase"));
+  }
+
+  /* Set hwm to max if not set - for backward compatibility */
+  $lwm= $tmp[0];
+  if (isset($tmp[1])){
+    $hwm= $tmp[1];
+  } else {
+    $hwm= pow(2,32);
+  }
+  /* Find out next free id near to UID_BASE */
+  if ($config->get_cfg_value("baseIdHook") == ""){
+    $base= $lwm;
+  } else {
+    /* Call base hook */
+    $base= get_base_from_hook($dn, $attrib);
+  }
+  for ($id= $base; $id++; $id < pow(2,32)){
+    if (!in_array($id, $ids)){
+      return ($id);
+    }
+  }
+
+  /* Should not happen */
+  if ($id == $hwm){
+    msg_dialog::display(_("Error"), _("Cannot allocate a free ID!"), ERROR_DIALOG);
+    exit;
+  }
+}
+
+
+/* Mark the occurance of a string with a span */
+function mark($needle, $haystack, $ignorecase= true)
+{
+  $result= "";
+
+  while (preg_match('/^(.*)('.preg_quote($needle).')(.*)$/i', $haystack, $matches)) {
+    $result.= $matches[1]."<span class='mark'>".$matches[2]."</span>";
+    $haystack= $matches[3];
+  }
+
+  return $result.$haystack;
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/functions_debug.inc b/gosa-core/include/functions_debug.inc
new file mode 100644
index 0000000..9c30cec
--- /dev/null
+++ b/gosa-core/include/functions_debug.inc
@@ -0,0 +1,422 @@
+<?php
+/************************************************ 
+** Title.........: Debug Lib
+** Version.......: 0.5.4
+** Author........: Thomas Sch��ler <tulpe at atomar.de> 
+** Filename......: debuglib.php(s)
+** Last changed..: 16. July 2003
+** License.......: Free to use. Postcardware ;)
+**
+*************************************************
+** 
+** Functions in this library:
+** 
+** print_a( array array [,int mode] )
+**   prints arrays in a readable, understandable form.
+**   if mode is defined the function returns the output instead of
+**   printing it to the browser
+**   
+**   
+** show_vars([int mode])
+**   use this function on the bottom of your script to see all
+**   superglobals and global variables in your script in a nice
+**   formated way
+**   
+**   show_vars() without parameter shows $_GET, $_POST, $_SESSION,
+**   $_FILES and all global variables you've defined in your script
+**
+**   show_vars(1) shows $_SERVER and $_ENV in addition
+**
+**   
+**   
+** print_result( result_handle )
+**   prints a mysql_result set returned by mysql_query() as a table
+**   this function is work in progress! use at your own risk
+**
+**
+**
+**
+** Happy debugging and feel free to email me your comments.
+**
+**
+**
+** History: (starting with version 0.5.3 at 2003-02-24)
+**
+**   - added tooltips to the td's showing the type of keys and values (thanks Itomic)
+** 2003-07-16
+**   - pre() function now trims trailing tabs
+************************************************/
+
+
+# This file must be the first include on your page.
+
+/* used for tracking of generation-time */
+{
+	$MICROTIME_START = microtime();
+	@$GLOBALS_initial_count = count($GLOBALS);
+}
+	
+/************************************************ 
+** print_a class and helper function
+** prints out an array in a more readable way
+** than print_r()
+**
+** based on the print_a() function from
+** Stephan Pirson (Saibot)
+************************************************/
+
+class Print_a_class {
+	
+	# this can be changed to FALSE if you don't like the fancy string formatting
+	var $look_for_leading_tabs = TRUE;
+
+	var $output;
+	var $iterations;
+	var $key_bg_color = '1E32C8';
+	var $value_bg_color = 'DDDDEE';
+	var $fontsize = '8pt';
+	var $keyalign = 'center';
+	var $fontfamily = 'Verdana';
+	var $export_flag;
+	var $show_object_vars;
+	var $export_dumper_path = 'http://tools.www.mdc.xmc.de/print_a_dumper/print_a_dumper.php';
+	# i'm still working on the dumper! don't use it now
+	# put the next line into the print_a_dumper.php file (optional)
+	# print htmlspecialchars( stripslashes ( $_POST['array'] ) );  
+	var $export_hash;
+		
+	function Print_a_class() {
+		$this->export_hash = uniqid('');
+	}
+	
+	# recursive function!
+	function print_a($array, $iteration = FALSE, $key_bg_color = FALSE) {
+		$key_bg_color or $key_bg_color = $this->key_bg_color;
+		
+			# if print_a() was called with a fourth parameter (1 or 2)
+			# and you click on the table a window opens with only the output of print_a() in it
+			# 1 = serialized array
+			# 2 = normal print_a() display
+			
+			/* put the following code on the page defined with $export_dumper_path;
+			--->%---- snip --->%----
+			
+				if($_GET['mode'] == 1) {
+					print htmlspecialchars( stripslashes ( $_POST['array'] ) );
+				} elseif($_GET['mode'] == 2) {
+					print_a(unserialize( stripslashes($_POST['array'])) );
+				}
+
+			---%<---- snip ---%<----
+			*/
+			
+		if( !$iteration && isset($this->export_flag) ) {
+			$this->output .= '<form id="pa_form_'.$this->export_hash.'" action="'.$this->export_dumper_path.'?mode='.$this->export_flag.'" method="post" target="_blank"><input name="array" type="hidden" value="'.htmlspecialchars( serialize( $array ) ).'"></form>';
+		}
+		
+		# lighten up the background color for the key td's =)
+		if( $iteration ) {
+			for($i=0; $i<6; $i+=2) {
+				$c = substr( $key_bg_color, $i, 2 );
+				$c = hexdec( $c );
+				( $c += 15 ) > 255 and $c = 255;
+				isset($tmp_key_bg_color) or $tmp_key_bg_color = '';
+				$tmp_key_bg_color .= sprintf( "%02X", $c );
+			}
+			$key_bg_color = $tmp_key_bg_color;
+		}
+		
+		# build a single table ... may be nested
+		$this->output .= '<table summary="" style="border:none;" cellspacing="1" '.( !$iteration && $this->export_flag ? 'onClick="document.getElementById(\'pa_form_'.$this->export_hash.'\').submit();" )' : '' ).'>';
+		foreach( $array as $key => $value ) {
+			
+			$value_style = 'color:black;';
+			$key_style = 'color:white;';
+			
+			$type = gettype( $value );
+			# print $type.'<br />';
+			
+			# change the color and format of the value
+			switch( $type ) {
+				case 'array':
+					break;
+				
+				case 'object':
+					$key_style = 'color:#FF9B2F;';
+					break;
+				
+				case 'integer':
+					$value_style = 'color:green;';
+					break;
+				
+				case 'double':
+					$value_style = 'color:red;';
+					break;
+				
+				case 'bool':
+					$value_style = 'color:blue;';
+					break;
+					
+				case 'resource':
+					$value_style = 'color:darkblue;';
+					break;
+				
+				case 'string':
+					if( $this->look_for_leading_tabs && preg_match('/^\t/m', $value) ) {
+						$search = array('/\t/', "/\n/");
+						$replace = array('   ','<br />');
+						$value = preg_replace( $search, $replace, htmlspecialchars( $value ) );
+						$value_style = 'color:black;border:1px gray dotted;';
+					} else {
+						$value_style = 'color:black;';
+						$value = nl2br( htmlspecialchars( $value ) );
+					}
+					break;
+			}
+
+			$this->output .= '<tr>';
+			$this->output .= '<td nowrap align="'.$this->keyalign.'" style="background-color:#'.$key_bg_color.';'.$key_style.';font:bold '.$this->fontsize.' '.$this->fontfamily.';" title="'.gettype( $key ).'['.$type.']">';
+			$this->output .= $key;
+			$this->output .= '</td>';
+			$this->output .= '<td nowrap="nowrap" style="background-color:#'.$this->value_bg_color.';font: '.$this->fontsize.' '.$this->fontfamily.'; color:black;">';
+
+			
+			# value output
+			if($type == 'array') {
+				if(count($value)){
+					$this->print_a( $value, TRUE, $key_bg_color );
+				}else{
+					$this->output .= '<div style="color:blue;">Array (empty)</div>';
+				}
+			} elseif($type == 'object') {
+				if( $this->show_object_vars ) {
+					$this->print_a( get_object_vars( $value ), TRUE, $key_bg_color );
+				} else {
+					$this->output .= '<div style="'.$value_style.'">OBJECT - '.get_class($value).'</div>';
+				}
+			} else {
+				$this->output .= '<div style="'.$value_style.'" title="'.$type.'">'.$value.'</div>';
+			}
+			
+			$this->output .= '</td>';
+			$this->output .= '</tr>';
+		}
+		$this->output .= '</table>';
+	}
+}
+
+# helper function.. calls print_a() inside the print_a_class
+function print_a( $array, $return_mode = FALSE, $show_object_vars = FALSE, $export_flag = FALSE ) {
+	$e= error_reporting (0);	
+	if( is_array( $array ) or is_object( $array ) ) {
+		$pa = new Print_a_class;
+		$show_object_vars and $pa->show_object_vars = TRUE;
+		$export_flag and $pa->export_flag = $export_flag;
+		
+		$pa->print_a( $array );
+		
+		# $output = $pa->output; unset($pa);
+		$output = &$pa->output;
+	} else {
+		$output = '<span style="color:red;font-size:small;">print_a( '.gettype( $array ).' )</span>';
+	}
+	
+	error_reporting ($e);	
+	if($return_mode) {
+		return $output;
+	} else {
+		print $output;
+		return TRUE;
+	}
+}
+
+
+// shows mysql-result as a table.. # not ready yet :(
+function print_result($RESULT) {
+	
+	if(!$RESULT) return;
+	
+	$fieldcount = mysql_num_fields($RESULT);
+	
+	for($i=0; $i<$fieldcount; $i++) {
+		$tables[mysql_field_table($RESULT, $i)]++;
+	}
+	
+	print '
+		<style type="text/css">
+			.rs_tb_th {
+				font-family: Verdana;
+				font-size:9pt;
+				font-weight:bold;
+				color:white;
+			}
+			.rs_f_th {
+				font-family:Verdana;
+				font-size:7pt;
+				font-weight:bold;
+				color:white;
+			}
+			.rs_td {
+				font-family:Verdana;
+				font-size:7pt;
+			}
+		</style>
+		<script type="text/javascript" language="JavaScript">
+			var lastID;
+			function highlight(id) {
+				if(lastID) {
+					lastID.style.color = "#000000";
+					lastID.style.textDecoration = "none";
+				}
+				tdToHighlight = document.getElementById(id);
+				tdToHighlight.style.color ="#FF0000";
+				tdToHighlight.style.textDecoration = "underline";
+				lastID = tdToHighlight;
+			}
+		</script>
+	';
+
+	print '<table summary="" border="0" bgcolor="#000000" cellspacing="1" cellpadding="1">';
+	
+	print '<tr>';
+	foreach($tables as $tableName => $tableCount) {
+		$col == '0054A6' ? $col = '003471' : $col = '0054A6';
+		print '<th colspan="'.$tableCount.'" class="rs_tb_th" style="background-color:#'.$col.';">'.$tableName.'</th>';
+	}
+	print '</tr>';
+	
+	print '<tr>';
+	for($i=0;$i < mysql_num_fields($RESULT);$i++) {
+		$FIELD = mysql_field_name($RESULT, $i);
+		$col == '0054A6' ? $col = '003471' : $col = '0054A6';
+		print '<td align="center" bgcolor="#'.$col.'" class="rs_f_th">'.$FIELD.'</td>';
+	}
+	print '</tr>';
+
+	mysql_data_seek($RESULT, 0);
+
+	while($DB_ROW = mysql_fetch_array($RESULT, MYSQL_NUM)) {
+		$pointer++;
+		if($toggle) {
+			$col1 = "E6E6E6";
+			$col2 = "DADADA";
+		} else {
+			$col1 = "E1F0FF";
+			$col2 = "DAE8F7";
+		}
+		$toggle = !$toggle;
+		print '<tr id="ROW'.$pointer.'" onMouseDown="highlight(\'ROW'.$pointer.'\');">';
+		foreach($DB_ROW as $value) {
+			$col == $col1 ? $col = $col2 : $col = $col1;
+			print '<td valign="top" bgcolor="#'.$col.'" class="rs_td" nowrap>'.nl2br($value).'</td>';
+		}
+		print '</tr>';
+	}
+	print '</table>';
+	mysql_data_seek($RESULT, 0);
+}
+
+function _script_globals() {
+	global $GLOBALS_initial_count;
+
+	$varcount = 0;
+
+	foreach($GLOBALS as $GLOBALS_current_key => $GLOBALS_current_value) {
+		if(++$varcount > $GLOBALS_initial_count) {
+			/* die wollen wir nicht! */
+			if ($GLOBALS_current_key != 'HTTP_SESSION_VARS' && $GLOBALS_current_key != '_SESSION') {
+				$script_GLOBALS[$GLOBALS_current_key] = $GLOBALS_current_value;
+			}
+		}
+	}
+	
+	unset($script_GLOBALS['GLOBALS_initial_count']);
+	return $script_GLOBALS;
+}
+
+function show_runtime() {
+	$MICROTIME_END		= microtime();
+	$MICROTIME_START	= explode(' ', $GLOBALS['MICROTIME_START']);
+	$MICROTIME_END		= explode(' ', $MICROTIME_END);
+	$GENERATIONSEC		= $MICROTIME_END[1] - $MICROTIME_START[1];
+	$GENERATIONMSEC	= $MICROTIME_END[0] - $MICROTIME_START[0];
+	$GENERATIONTIME	= substr($GENERATIONSEC + $GENERATIONMSEC, 0, 8);
+	
+	return '<span style="color:red;font-weight:normal;font-size:9px;">(runtime: '.$GENERATIONTIME.' sec)</span>';
+}
+
+
+######################
+# function shows all superglobals and script defined global variables
+# show_vars() without the first parameter shows all superglobals except $_ENV and $_SERVER
+# show_vars(1) shows all
+# show_vars(,1) shows object properties in addition
+#
+function show_vars($show_all_vars = FALSE, $show_object_vars = FALSE) {
+	if(isset($GLOBALS['no_vars'])) return;
+	
+	$script_globals = _script_globals();
+	print '
+		<style type="text/css">
+		.vars-container {
+			font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular, sans-serif;
+			font-size: 8pt;
+			padding:5px;
+		}
+		.varsname {
+			font-weight:bold;
+		}
+		</style>
+	';
+
+	print '<br />
+		<div style="border-style:dotted;border-width:1px;padding:2px;font-family:Verdana;font-size:10pt;font-weight:bold;">
+		DEBUG '.show_runtime().'
+	';
+
+	$vars_arr['script_globals'] = array('global script variables', '#7ACCC8');
+	$vars_arr['_GET'] = array('$_GET', '#7DA7D9');
+	$vars_arr['_POST'] = array('$_POST', '#F49AC1');
+	$vars_arr['_FILES'] = array('$_POST FILES', '#82CA9C');
+	$vars_arr['_SESSION'] = array('$_SESSION', '#FCDB26');
+	$vars_arr['_COOKIE'] = array('$_COOKIE', '#A67C52');
+
+	if($show_all_vars) {
+		$vars_arr['_SERVER'] =  array('SERVER', '#A186BE');
+		$vars_arr['_ENV'] =  array('ENV', '#7ACCC8');
+	}
+
+	foreach($vars_arr as $vars_name => $vars_data) {
+		if($vars_name != 'script_globals') global $$vars_name;
+		if($$vars_name) {
+			print '<div class="vars-container" style="background-color:'.$vars_data[1].';"><span class="varsname">'.$vars_data[0].'</span><br />';
+			print_a($$vars_name, FALSE, $show_object_vars, FALSE );
+			print '</div>';
+		}
+	}
+	print '</div>';
+}
+
+
+######################
+# function prints sql strings
+#
+function pre($sql_string, $simple_mode = FALSE) {
+	
+	if(!$simple_mode) {
+		# erste leere Zeile im SQL l�schen
+		$sql_string = preg_replace('/\^s+/m','', $sql_string);
+		# letze leere Zeile im SQL l�schen
+		$sql_string = preg_replace('/\s+$/m','', $sql_string);
+		
+		# kleinste Anzahl von f�hrenden TABS z�hlen
+		preg_match_all('/^\t+/m', $sql_string, $matches);
+		$minTabCount = strlen(min($matches[0]));
+		
+		# und entfernen
+		$sql_string = preg_replace('/^\t{'.$minTabCount.'}/m', '', $sql_string);
+	}
+			
+	print '<pre>'.$sql_string.'</pre>';
+}
+?>
diff --git a/gosa-core/include/functions_helpviewer.inc b/gosa-core/include/functions_helpviewer.inc
new file mode 100644
index 0000000..861afaa
--- /dev/null
+++ b/gosa-core/include/functions_helpviewer.inc
@@ -0,0 +1,506 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: functions_helpviewer.inc 15296 2010-01-26 08:27:39Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Simple class to parse the xml help file */
+class parseXml
+{
+  var $parser;
+  var $filename;
+  var $entries;
+
+  function parseXml($file)
+  {
+    $this->parser   = xml_parser_create();
+    $this->filename = $file;
+    xml_set_object($this->parser, $this);
+    xml_set_element_handler($this->parser, "tag_open", "tag_close");
+    return($this->entries);
+  }
+  function parse()
+  {
+    $this->entries = array();
+    $fh= fopen($this->filename, "r");
+    $xmldata= fread($fh, 100000);
+    fclose($fh);
+    if(!xml_parse($this->parser, chop($xmldata))){
+        print(sprintf(_("XML error in guide.xml: %s at line %d"),
+            xml_error_string(xml_get_error_code($this->parser)),
+            xml_get_current_line_number($this->parser)));
+        exit;
+    }
+    return($this->entries);
+  }
+  function tag_open($parser,$tag,$attrs)
+  {
+    @$this->entries[$attrs['NAME']]=$attrs;
+  }
+  function tag_close(){; }
+
+}
+
+
+/* This function genereates the Index */
+function genIndex()
+{
+  global $helpobject;
+  $str = "";
+  $helpobject = session::global_get('helpobject');
+  $ui= get_userinfo();
+  $test = new pluglist(session::global_get('config'), $ui);
+  $current_hl = "";
+  foreach($helpobject['helpconf'] as $id => $attrs){
+    $path = $test -> get_path($id);
+    $exists = true;
+    $helpdir = "../doc/core/".$helpobject['lang']."/html/".preg_replace("/^.*\//i","",$path)."/";
+    if(!is_dir($helpdir)){
+      $exists = false;
+    }
+    $print_hl = false;
+    if($current_hl != $attrs['HEADLINE']){
+      $current_hl = $attrs['HEADLINE'];
+      $str .= "<h1>"._($current_hl)."</h1>";
+    }
+    $name = $attrs['NAME'];
+    $file = "index.html";
+    //$path = $plug;
+    if($exists){
+      $str .= "<p style='padding-left:20px;'><a href='?plug=".$id."'><b>"._($name)."</b></a></p>";
+    }else{
+      $str .= "<p style='padding-left:20px;'><b>"._($name)."</b> ("._("No help available for this plugin.").")</p>";
+    }
+  }
+  return (utf8_decode($str));
+}
+
+
+/* Some replacements */
+$backwardlink  = "<a href=\"?pg=%s\"  class=\"maintitlebar\">
+                  <img src='images/back.png' align=\"middle\" alt=\""._("previous")."\" border=\"0\">
+                 </a>";
+
+$forwardlink   = "<a href=\"?pg=%s\"  class=\"maintitlebar\">
+                  <img src='images/forward.png' align=\"middle\" alt=\""._("next")."\" border=\"0\">
+                 </a>";
+
+$pre_mark                     = "<span style=\"background-color: #FFFC35;\">" ;                       // Sign words with this
+$suf_mark                     = "</span>";                          //  and this
+
+
+/* Define which tags musst be delete, header, navigation, banner */
+$replacements=array();
+$replacements['from']=array("@<!DOC.*<BODY >@si",
+    "/border=\".*\"/i",
+    "'<code.*code>'",
+//    "/alt=\".*\"/i",
+    "/<HR>/",
+    "@<ADDRESS[^>]*?>.*?ADDRESS>@si",
+    "@<\/BODY[^>]*?>.*?HTML>@si",
+    "'<TABLE.*>'",
+    "/src.*icons/i",
+    "/src=\"/i",
+    "/<H1 ALIGN=\"CENTER\">/",
+ /* picture replacements */
+ //  "",
+    );
+
+$replacements['to']=array("",
+    " border=\"0\" ",
+    "",
+  //  "",
+    "",
+    "",
+    "",
+    "<table border=1 cellspacing=0 bgcolor=\"#E0E0E0\" width=\"95%\" align=\"center\" cellpadding=\"3\" summary=\"\">",
+    "src=\"",
+    "src=\"images/",
+    "<H1>",
+ /* picture replacements */
+//    "",
+  );
+
+
+/* Reads all files in specified directory with contents an some inforations about the file */
+/* Read all files with contents*/
+/*                 |Folder="/var/ww...",
+                   |        |Fileprefix="node"
+                   |        |       |Filesuffix=".html"
+                   |        |       |       |WithoutContent=false(This means : read content)
+                   |        |       |       |          |Singlepage=false(Means read all, if w want to read single, specify its filename)"*/
+function readfiles($basedir,$prefix,$suffix,$onlyIndex,$singlepage=false)
+{
+  global $replacements;
+
+  $str    = array();  // Temporary variable
+  $cnt    = 0;        // Array index creation
+  $file   = "";       // Contains Filename
+
+  $dir = opendir($basedir);
+
+  $str['global']['start']       = $cnt;     // collect basic informations - Startpage
+  $str['global']['basedir']     = $basedir; // collect basic informations - Basedirectory
+
+  /* Startime for Benchmark */ 
+  $start =   (time()+microtime());
+
+  /* if singlepage == false -> Get all pages, */
+  if(!$singlepage) {
+
+    /* While theres is an unreaded file in our resource */
+    while (($file = readdir($dir)) !== false) {
+      
+      if((is_dir($basedir."/".$file))&&($file != "..")&&($file[0]!=".")){
+        $str[$file]=(readfiles($basedir."/".$file."/",$prefix,$suffix,$onlyIndex,false));
+      }
+
+      /* Filter all files which arn't intressting */
+      if((strstr($file,$suffix))&&($file!=".")&&($file!="..")&&(strstr($file,$prefix))){
+
+        /* Collect informations */
+        $str[$file]=array();
+        $str[$file]['name']   = $file;
+        $str[$file]['size']   = filesize($basedir.$file);
+
+        /* Readfile conent too ? */
+        if(!$onlyIndex){
+          $str[$file]['content']  = remove_unwanted_tags(linkwrapper(getcontents($basedir.$file),""),$replacements);
+          $str[$file]['headline'] = getheader_from_content($str[$file]['content']);
+        }
+
+        /* Include file status, for debugging, not used in script yet */
+        $str[$file]['stat']   = stat($basedir.$file);
+        $cnt++;
+      }
+    }
+
+    /* Only get on file*/
+  }else{
+    /* Pages read = 1 */       
+    $cnt = 1;
+
+    /* Prepare result*/
+    $file                 = $singlepage;
+    $str[$file]           = array();
+    $str[$file]['name']   = $file;
+    $str[$file]['size']   = filesize($basedir.$file);
+
+    /* If onlyIndex == true skip reading content */
+    if(!$onlyIndex){
+      $str[$file]['content']  = remove_unwanted_tags(linkwrapper(getcontents($basedir.$file),""),$replacements);
+      $str[$file]['headline'] = getheader_from_content($str[$file]['content']);
+    }
+
+    /* Include file status, for debugging, not used in script yet */
+    $str[$file]['stat']   = stat($basedir.$file);
+  }
+
+  /* Sort to  right order */
+  asort($str);
+
+  /* Endtime for Benchmark*/
+  $end = (time()+microtime());
+  $str['global']['cmptime'] = $end-$start;
+
+  /* Number of pages readed */
+  $str['global']['numpages']= $cnt;
+  closedir($dir);
+  return($str);
+}
+
+
+/* Read filecontent */
+function getcontents($file)
+{
+  $str = "" ;   // Temporary variable for file contents 
+  $tmp = "" ;   // Temporary varibale for partitial file contents
+
+  /* open file and read*/
+  $fp = fopen($file,"r");
+  if($fp) {
+    while($tmp = fread($fp,512))
+    {
+      $str.=  $tmp;
+    }
+  }else{
+    return(false);
+  }
+  return($str);
+}
+
+
+/*Remove tags */
+function remove_unwanted_tags($str,$replacements)
+{
+  $str=preg_replace($replacements['from'],$replacements['to'],$str);
+  return($str);
+}
+
+
+/*Converts the all links to specified path, is needed to get simple navigation */
+function linkwrapper($str,$link)
+{
+  $str = preg_replace("/HREF=\"http/i","target=\"_blank\" href=\"http",$str);
+  $str = str_replace("HREF=\"","href=\"".$link."?pg=",$str);  
+  return($str);
+}
+
+
+/* Search content */
+function search($arr,$word)
+{
+  global $minwordlength,$allowed_chars_in_searchword;
+  /* Prepare Vars */ 
+  $result                     =array(); // Search result, filename, + hits + hits per word + matches 
+  $words                      =array(); // Temporary searchword handling
+  $useablewords               =array(); // Temporary searchword handling
+  $tryword                    = "";     // Temporary searchword handling
+  $result['global']['maxhit'] = 0;
+  session::un_set('lastresults');
+  session::un_set('parsed_search_keyword');
+  session::set('parsed_search_keyword',"");
+
+  error_reporting(E_ALL | E_STRICT);
+
+  /* prepare searchwords */
+  $word   = trim($word);
+
+  /* Filter all unusable chars */
+  $word   = preg_replace($allowed_chars_in_searchword,"",$word);
+  $words  = explode(" ",str_replace("+"," ",$word));
+
+  /* Check all wordlengths */
+  foreach($words as $tryword){
+    $tryword = trim($tryword);
+
+    /* Filter words smaler than 3 chars */
+    if(strlen($tryword)>=$minwordlength) {
+      session::set('parsed_search_keyword', session::get('parsed_search_keyword').$tryword." ");
+      $useablewords[]=$tryword;
+    }
+  }
+
+  /* Use words to search the content */
+  foreach($arr as $keys=>$vals)
+  {
+    foreach($vals as $key=>$val){
+      /* overallhits counts hits per page */
+      $overallhits=0;
+
+      /* Search all words */
+      foreach($useablewords as $word)
+      {
+        /* Skip key global, it contains no file data - it is a summary info*/
+        if($key!="global")
+        {
+
+          /* Get all hits for the word in $matches*/
+          preg_match_all("/".$word."/i",$arr[$keys][$key]['content'], $matches,PREG_OFFSET_CAPTURE);
+
+          /* Filter in Tag results*/
+          if(count($matches[0])){
+            foreach($matches[0] as $num=>$hit){
+              if(isset($arr[$keys][$key]['content']) && (is_in_tag($arr[$keys][$key]['content'],$hit[1]))){
+                unset($matches[0][$num]);    
+              }    
+            }
+          }
+
+          /* Count matches */
+          $overallhits=$overallhits + count($matches[0]);    
+
+          /* Save collected data */
+          $result[$keys][$key]['hits'][$word]    = count($matches[0]); 
+          $result[$keys][$key]['hits']['overall']= $overallhits;  
+
+          /* Save max hits for page */
+          if($overallhits > $result['global']['maxhit']){
+            $result['global']['maxhit']=$overallhits;  
+          }
+
+          /* Add results for word to return value*/
+          $result[$keys][$key]['match'][$word]=array();
+          $result[$keys][$key]['match'][$word]=$matches[0];
+        }
+      }
+    }
+  }
+
+  /* Save result in Session, so we can mark words later, or go back to search, without searching again*/
+  session::set('lastresults',$result);
+  return($result);
+}
+
+
+/* Detect 10 Best result entries, sort and call createResultEntry to create HTML output for  complete list */
+function searchlist($arr,$res,$maxresults)
+{
+  $global = $res['global'];
+  $topten = array();        // To detect 10 best solutions
+  $ret    = "";             // return value
+  unset($res['global']);
+
+  /* Detect 10 best Sites */
+  foreach($res as $key=>$resa)
+  foreach($resa as $keya=>$val){
+    /* Skip results with no hits */
+    if($val['hits']['overall']>0){
+      $topten[$key."/".$keya] = $val['hits']['overall'];
+    }
+  }
+
+  /* Sort by hit position in content, to easier mark words */
+  asort($topten);
+  $topten = array_reverse($topten);
+  $topten = (array_slice($topten,0,$maxresults));
+
+
+  /* We have a result, an array with all content, an array with hits and position and we have the 10 best hits */
+  /* Foreach */  
+  foreach($topten as $key => $hits)  {
+
+    $ks = explode("/",$key);
+    $k1 = $ks[0];
+    $k2 = $ks[1];
+    
+    $ret.= createResultEntry($arr[$k1][$k2],$res[$k1][$k2],$key,$global['maxhit']);    
+  }
+
+  /* appending footer message for resultlist */
+  $ret.= "<br>
+              ".sprintf(_("%s results for your search with the keyword %s"), 
+                            "<b>".count($topten)."</b>", 
+                            "<b>".session::get('parsed_search_keyword')."</b>");
+  $ret.="<br>
+        <br>";
+  return($ret);
+}
+
+
+/* This function marks a string with the given search result for this string*/
+function markup_page($arr,$res)
+{
+  global $pre_mark,$suf_mark;
+  
+  $ret    = "";             // return value
+  $repl   = array();
+  $posadd = 0;
+
+  foreach($res['match'] as $word => $matches)   {
+    foreach($matches as $matchnr=>$match)   {
+      $repl[$match[1]]=$match[0];
+    }
+  }
+
+  ksort($repl);
+  
+  foreach($repl as $position=>$word)  {
+    $pos1 = strlen($arr);
+    $arr= markword($arr,($position+$posadd),$word,$pre_mark,$suf_mark);
+    $pos2 = strlen($arr);
+    $posadd =$posadd + ($pos2 - $pos1);
+  }
+  return($arr); 
+}
+
+
+/* This function marks a single word with the specified prefix and suffix */
+function markword($string,$position,$word,$prefix,$suffix)
+{
+  $wordlength   = strlen($word);
+  $wholelength  = strlen($string); 
+
+  $first = substr($string,0,$position);
+  $last  = substr($string,($position+$wordlength),$wholelength);  
+
+  return($first.$prefix.$word.$suffix.$last);
+} 
+
+/* Creates HTML output for a single search result entry */
+function createResultEntry($entry,$res,$name,$max)
+{
+  $percentage = (int)(($res['hits']['overall'] / $max) * 100) ;
+  $color  = dechex($percentage+150);
+  $color2 = dechex(150 - $percentage);
+
+  $entry['content'] = preg_replace("\"".$entry['headline']."\"","",$entry['content'],1);
+
+  if(strlen($color)==1) $color = "0".$color;
+
+
+
+  /* the object tag is needed for W3c */
+  $str =  "<a href=\"?pg=".$name."&mark=1\" title=\"".$percentage."% ".$entry['headline']."\">
+          <object>
+          <table summary=\"\"  width=\"98%\" align=\"center\">
+            <tr>
+              <td height=15>
+                <b>".utf8_encode($entry['headline'])."</b> -".utf8_encode(substr(strip_tags($entry['content']),0,120))."...
+              </td>
+              <td width=50 valign=\"top\">".progressbar($percentage,50,8)."</td>
+             </tr>
+             <tr>
+              <td colspan=2>
+                <b>
+                  ".(sprintf(_("%s%% hit rate in file %s"),$percentage,$name))."
+                </b>
+              </td>
+            </tr>
+          </table>
+          </object></a>
+          ";
+  $str.=  "<hr size=\"1\">";
+
+  return($str);
+}
+
+
+/*Simple function to detect if we prepare to change a tag or visible text */
+function is_in_tag($string,$pos)
+{
+  $pos1 = $pos2 = 0;
+  if(preg_match("/</",$string)){
+    $pos1 = strpos($string,"<",$pos);
+  }
+  if(preg_match("/>/",$string)){
+    $pos2 = strpos($string,">",$pos);
+  }
+  if ($pos1 > $pos2)  {
+    return(true);
+  }else{
+    return(false);
+  }
+}
+
+/*Returns frist line of readable text, it should be the headline */
+function getheader_from_content($str)
+{
+  $str = strip_tags($str);
+  $pos = 0;
+  $arr = preg_split("/\n/",$str);
+  foreach($arr as $possibleheadline){
+    if(strlen($possibleheadline)>=3){
+      return $possibleheadline; 
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-clear.inc b/gosa-core/include/password-methods/class_password-methods-clear.inc
new file mode 100644
index 0000000..3b4c326
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-clear.inc
@@ -0,0 +1,51 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-clear.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodClear extends passwordMethod
+{
+  var $lockable = FALSE;
+
+	function passwordMethodClear($config)
+	{
+	}
+
+	function is_available()
+	{
+		return true;
+	}
+
+
+	function generate_hash($pwd)
+	{
+		return $pwd;       
+	}
+
+  
+  function get_hash_name()
+  {
+    return ("clear");
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-crypt.inc b/gosa-core/include/password-methods/class_password-methods-crypt.inc
new file mode 100644
index 0000000..422bffd
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-crypt.inc
@@ -0,0 +1,134 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-crypt.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodCrypt extends passwordMethod
+{
+  function passwordMethodCrypt($config)
+  {
+  }
+
+
+  function is_available()
+  {
+    if(function_exists("crypt")){
+      return true;
+    }else{
+      return false;
+    }
+  }
+
+  function create_template_hash($attrs)
+  {
+    return($this->generate_hash('N0T$3T4N0W').'N0T$3T4N0W');
+  }
+
+
+  function generate_hash($pwd)
+  {
+    if ($this->hash == "crypt/standard-des"){
+      $salt = "";
+      for ($i = 0; $i < 2; $i++) {
+          $salt .= get_random_char();
+      }
+    }
+
+    if ($this->hash == "crypt/enhanced-des"){
+      $salt = "_";
+      for ($i = 0; $i < 8; $i++) {
+          $salt .= get_random_char();
+      }
+    }
+
+    if ($this->hash == "crypt/md5"){
+      $salt = "\$1\$";
+      for ($i = 0; $i < 8; $i++) {
+          $salt .= get_random_char();
+      }
+      $salt .= "\$";
+    }
+
+    if ($this->hash == "crypt/blowfish"){
+      $salt = "\$2a\$07\$";
+      for ($i = 0; $i < CRYPT_SALT_LENGTH; $i++) {
+          $salt .= get_random_char();
+      }
+      $salt .= "\$";
+    }
+
+    return "{CRYPT}".crypt($pwd, $salt);
+  }
+
+
+  function get_hash_name()
+  {
+    $hashes= array();
+    if (CRYPT_STD_DES == 1) {
+      $hashes[]= "crypt/standard-des";
+    }
+
+    if (CRYPT_EXT_DES == 1) {
+      $hashes[]= "crypt/enhanced-des";
+    }
+
+    if (CRYPT_MD5 == 1) {
+      $hashes[]= "crypt/md5";
+    }
+
+    if (CRYPT_BLOWFISH == 1) {
+      $hashes[]= "crypt/blowfish";
+    }
+
+    return $hashes;
+  }
+
+
+  function _extract_method($password_hash)
+  {
+    if (!preg_match('/^{crypt}/i', $password_hash)){
+      return "";
+    }
+
+    $password_hash= preg_replace('/^{[^}]+}!?/', '', $password_hash);
+
+    if (preg_match("/^[a-zA-Z0-9.\/][a-zA-Z0-9.\/]/", $password_hash)){
+      return "crypt/standard-des";
+    }
+
+    if (preg_match("/^_[a-zA-Z0-9.\/]/", $password_hash)){
+      return "crypt/enhanced-des";
+    }
+    
+    if (preg_match('/^\$1\$/', $password_hash)){
+      return "crypt/md5";
+    }
+
+    if (preg_match('/^(\$2\$|\$2a\$)/', $password_hash)){
+      return "crypt/blowfish";
+    }
+
+    return "";
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-md5.inc b/gosa-core/include/password-methods/class_password-methods-md5.inc
new file mode 100644
index 0000000..0d6de5a
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-md5.inc
@@ -0,0 +1,54 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-md5.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodMd5 extends passwordMethod
+{
+	function passwordMethodMd5($config)  
+	{
+	}
+
+
+	function is_available()
+	{
+		if (function_exists('md5')){
+			return(true);
+		}else{
+			return false;
+		}
+	}
+
+
+	function generate_hash($pwd)
+	{
+		return  "{MD5}".base64_encode( pack('H*', md5($pwd)));
+	}
+
+
+  function get_hash_name()
+  {
+    return "md5";
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-sha.inc b/gosa-core/include/password-methods/class_password-methods-sha.inc
new file mode 100644
index 0000000..8ce5e34
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-sha.inc
@@ -0,0 +1,64 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-sha.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodsha extends passwordMethod
+{
+  function passwordMethodsha($config)
+  {
+  }
+
+  function is_available()
+  {
+    if (function_exists('sha1')){
+      return(true);
+    }elseif(function_exists('mhash')){
+      return true;
+    }else{
+      return false;
+    }
+  }
+
+
+  function generate_hash($password)
+  {
+    if (function_exists('sha1')) {
+      $hash = "{SHA}" . base64_encode(pack("H*",sha1($password)));
+    }elseif (function_exists('mhash')) {
+      $hash = "{SHA}" . base64_encode(mHash(MHASH_SHA1, $password));
+    }else{
+      msg_dialog::display(_("Configuration error"), msgPool::missingext("mhash"), ERROR_DIALOG);
+      return false;
+    }
+
+    return $hash; 
+  }
+
+
+  function get_hash_name()
+  {
+    return "sha";
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-smd5.inc b/gosa-core/include/password-methods/class_password-methods-smd5.inc
new file mode 100644
index 0000000..b5628e0
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-smd5.inc
@@ -0,0 +1,55 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-smd5.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodsmd5 extends passwordMethod
+{
+  function passwordMethodsmd5($config)
+  {
+  }
+
+  function is_available()
+  {
+    if ((!function_exists('md5'))){
+      return false;	
+    }else{
+      return true;
+    }
+  }
+
+  function generate_hash($pwd)
+  {
+    mt_srand(microtime()* 10000000);
+    $salt0= substr(pack("h*", md5(mt_rand())), 0, 8);
+    $salt = substr(pack("H*", md5($salt0 . $pwd)), 0, 4);
+    $hash = "{SMD5}".base64_encode(pack("H*",md5($pwd . $salt)) . $salt);
+    return $hash;       
+  }
+
+  function get_hash_name()
+  {
+    return "smd5";
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods-ssha.inc b/gosa-core/include/password-methods/class_password-methods-ssha.inc
new file mode 100644
index 0000000..a6a6f5f
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods-ssha.inc
@@ -0,0 +1,66 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods-ssha.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethodssha extends passwordMethod
+{
+  function passwordMethodssha($config)
+  {
+  }
+
+  function is_available()
+  {
+    if(function_exists("sha1")){
+      return true;
+    }elseif(function_exists("mhash")){
+      return true;
+    }else{
+      return false;
+    }
+  }
+
+  function generate_hash($pwd)
+  {
+    if (function_exists("sha1")) {
+      $salt= substr(pack("h*", md5(mt_rand())), 0, 8);
+      $salt= substr(pack("H*", sha1($salt.$pwd)), 0, 4);
+      $pwd= "{SSHA}".base64_encode(pack("H*", sha1($pwd.$salt)).$salt);
+      return $pwd;       
+    } elseif(function_exists("mhash")) {
+      $salt=mhash_keygen_s2k(MHASH_SHA1,$pwd, substr(pack("h*",md5(mt_rand())),0,8),4);
+      $pwd= "{SSHA}".base64_encode(mhash(MHASH_SHA1, $pwd.$salt).$salt);
+    } else {
+      msg_dialog::display(_("Configuration error"), msgPool::missingext("mhash"), ERROR_DIALOG);
+      return(false);
+    }
+    return $pwd;
+  }
+
+
+  function get_hash_name()
+  {
+    return "ssha";
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/password-methods/class_password-methods.inc b/gosa-core/include/password-methods/class_password-methods.inc
new file mode 100644
index 0000000..30bfe66
--- /dev/null
+++ b/gosa-core/include/password-methods/class_password-methods.inc
@@ -0,0 +1,295 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password-methods.inc 17590 2010-04-12 12:22:01Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class passwordMethod
+{
+  var $config = false;
+  var $attrs= array();
+  var $display = FALSE;
+  var $hash= "";
+  var $lockable = TRUE;
+
+  // Konstructor
+  function passwordMethod($config, $dn="")
+  {
+  }
+
+  function create_template_hash($attrs)
+  {
+    if($this->get_hash_name() == ""){
+      return("{crypt}N0T$3T4N0W");
+    }else{
+      return('{'.$this->get_hash().'}').'N0T$3T4N0W';
+    }
+  }
+
+  function get_hash_name()
+  {
+  }
+
+
+  function is_locked($config,$dn = "")
+  {
+    if(!$this->lockable) return FALSE;
+
+    /* Get current password hash */
+    $pwd ="";
+    if(!empty($dn)){
+      $ldap = $config->get_ldap_link();
+      $ldap->cd($config->current['BASE']);
+      $ldap->cat($dn);
+      $attrs = $ldap->fetch();
+      if(isset($attrs['userPassword'][0])){
+        $pwd = $attrs['userPassword'][0];
+      }
+    }elseif(isset($this->attrs['userPassword'][0])){
+      $pwd = $this->attrs['userPassword'][0];
+    }
+    return(preg_match("/^[^\}]*+\}!/",$pwd));
+  }
+
+
+  function lock_account($config,$dn = "")
+  {
+    if(!$this->lockable) return FALSE;
+
+    /* Get current password hash */
+    $pwd ="";
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    if(!empty($dn)){
+      $ldap->cat($dn);
+      $attrs = $ldap->fetch();
+      if(isset($attrs['userPassword'][0])){
+        $pwd = $attrs['userPassword'][0];
+      }
+    }elseif(isset($this->attrs['userPassword'][0])){
+      $pwd = $this->attrs['userPassword'][0];
+      $dn = $this->attrs['dn'];
+    }
+
+    /* We can only lock/unlock non-empty passwords */
+    if(!empty($pwd)){
+
+      /* Check if this entry is already locked. */
+      if(preg_match("/^[^\}]*+\}!/",$pwd)){
+        return(TRUE);
+      }     
+      
+      /* Lock entry */
+      $pwd = preg_replace("/(^[^\}]+\})(.*$)/","\\1!\\2",$pwd);
+      $ldap->cd($dn);
+      $ldap->modify(array("userPassword" => $pwd));
+      return($ldap->success());
+    }
+    return(FALSE);
+  }
+
+
+  function unlock_account($config,$dn = "")
+  {
+    if(!$this->lockable) return FALSE;
+
+    /* Get current password hash */
+    $pwd ="";
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    if(!empty($dn)){
+      $ldap->cat($dn);
+      $attrs = $ldap->fetch();
+      if(isset($attrs['userPassword'][0])){
+        $pwd = $attrs['userPassword'][0];
+      }
+    }elseif(isset($this->attrs['userPassword'][0])){
+      $pwd = $this->attrs['userPassword'][0];
+      $dn = $this->attrs['dn'];
+    }
+
+    /* We can only lock/unlock non-empty passwords */
+    if(!empty($pwd)){
+
+      /* Check if this entry is already locked. */
+      if(!preg_match("/^[^\}]*+\}!/",$pwd)){
+        return (TRUE);
+      }     
+      
+      /* Lock entry */
+      $pwd = preg_replace("/(^[^\}]+\})!(.*$)/","\\1\\2",$pwd);
+      $ldap->cd($dn);
+      $ldap->modify(array("userPassword" => $pwd));
+      return($ldap->success());
+    }
+    return(FALSE);
+  }
+
+
+  // this function returns all loaded classes for password encryption
+  static function get_available_methods()
+  {
+    global $class_mapping, $config;
+    $ret =false;
+    $i =0;
+
+    /* Only */
+    if(!session::is_set("passwordMethod::get_available_methods")){
+      foreach($class_mapping as $class => $path) {
+        if(preg_match('/passwordMethod/i', $class) && !preg_match("/^passwordMethod$/i", $class)){
+          $name = preg_replace ("/passwordMethod/i", "", $class);
+          $test = new $class($config, "");
+          if($test->is_available()) {
+            $plugs= $test->get_hash_name();
+            if (!is_array($plugs)){
+              $plugs= array($plugs);
+            }
+
+            foreach ($plugs as $plugname){
+
+              $cfg = $test->is_configurable();
+
+              $ret['name'][$i]= $plugname;
+              $ret['class'][$i]=$class;
+              $ret['is_configurable'][$i]= $cfg;
+              $ret['object'][$i]= $test;
+              $ret['desc'][$i] = $test->get_description();
+              $ret[$i]['name']  = $plugname;
+              $ret[$i]['class'] = $class;
+              $ret[$i]['object']= $test;
+              $ret[$i]['is_configurable']= $cfg;
+              $ret[$i]['desc'] = $test->get_description();
+              $ret[$plugname]=$class;                    
+              $i++;
+            }
+          }
+        }
+      }
+      session::set("passwordMethod::get_available_methods",$ret);
+    }
+    return(session::get("passwordMethod::get_available_methods"));
+  }
+  
+
+  function get_description()
+  {
+    return("");
+  }
+
+
+  // Method to let password backends remove additional information besides
+  // the userPassword attribute
+  function remove_from_parent()
+  {
+  }
+
+
+  // Method to let passwords backends manage additional information
+  // besides the userAttribute entry
+  function set_password($password)
+  {
+    return(TRUE);
+  }
+
+
+  // Return true if this password method provides a configuration dialog
+  function is_configurable()
+  {
+    return FALSE;
+  }
+
+
+  // Provide a subdialog to configure a password method
+  function configure()
+  {
+    return "";
+  }
+
+  
+  // Save information to LDAP
+  function save($dn)
+  {
+  }
+
+
+  // Try to find out if it's our hash...
+  static function get_method($password_hash,$dn = "")
+  {
+    global $config;
+
+    $methods= passwordMethod::get_available_methods();
+
+    foreach ($methods['class'] as $class){
+
+        $test = new $class($config,$dn);
+#        All listed methods are available. 
+#        if(!$test->is_available())continue;
+        $method= $test->_extract_method($password_hash);
+        if ($method != ""){
+          $test->set_hash($method);
+          return $test;
+        }
+    }
+
+    msg_dialog::display(_("Error"), _("Cannot find a suitable password method for the current hash!"), ERROR_DIALOG);
+
+    return NULL;
+  }
+
+
+  function _extract_method($password_hash)
+  {
+    $hash= $this->get_hash_name();
+    if (preg_match("/^\{$hash\}/i", $password_hash)){
+      return $hash;
+    }
+
+    return "";
+  }
+
+
+  static function make_hash($password, $hash)
+  {
+    global $config;
+
+    $methods= passwordMethod::get_available_methods();
+    $tmp= new $methods[$hash]($config);
+    $tmp->set_hash($hash);
+    return $tmp->generate_hash($password);
+  }
+
+
+  function set_hash($hash)
+  {
+    $this->hash= $hash;
+  }
+
+
+  function get_hash()
+  {
+    return $this->hash;
+  }
+
+  function adapt_from_template($dn)
+  {
+    return($this);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/php_setup.inc b/gosa-core/include/php_setup.inc
new file mode 100644
index 0000000..c074f6d
--- /dev/null
+++ b/gosa-core/include/php_setup.inc
@@ -0,0 +1,299 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: php_setup.inc 15555 2010-02-01 14:17:02Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define ("LOCALE_DIR", dirname(dirname(__FILE__))."/locale/compiled");
+
+function gosaRaiseError($errno, $errstr, $errfile, $errline)
+{
+  global $error_collector,$config, $error_collector_mailto;
+
+  // To avoid recursion - restore original error handler.
+  restore_error_handler();
+
+  /* Return if error reporting is set to zero */
+  if (error_reporting() == 0){
+    set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+    return;
+  }
+
+  /* Workaround for buggy imap_open error outputs */
+  if (preg_match('/imap_open/', $errstr)){
+    set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+    return;
+  }
+
+  /* Hide ldap size limit messages */
+  if (preg_match('/ldap_error/', $errstr)){
+    if (preg_match('/sizelimit/', $errstr)){
+      set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+      return;
+    }
+  }
+
+  /* Error messages are hidden in GOsa, so we only send them to the logging class and abort here */
+  if(isset($config->data) && $config->get_cfg_value("displayerrors") != "true"){
+
+    /* Write to syslog */
+    if(class_exists("log") && !preg_match("/No such object/",$errstr)){
+      new log("view","error","",array(),"PHP error: $errstr ($errfile, line $errline)");
+    }
+
+    set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+    return;
+  }
+ 
+  /* Send all errors to logging class, except "Ldap : No such object" messages*/
+  if(class_exists("log") && !preg_match("/No such object/",$errstr)){
+    new log("debug","all",$errfile,array(),"Type:".$errno.", Message:".$errstr.", File:".$errfile.", Line: ".$errline);
+  }
+
+  /* Create header as needed */
+  if ($error_collector == ""){
+
+    /* Mailto body header */
+    if(function_exists("prepare4mailbody")){
+      $version= "unknown";
+      if(function_exists("get_gosa_version")){
+	      $version= get_gosa_version();
+      }
+      $error_collector_mailto .=prepare4mailbody(
+                                "Oups. Seems like you've catched some kind of bug inside GOsa/PHP. You may want to help ".
+                                "us to improve the software stability. If so, please provide some more information below.".
+                                "\n\n".
+                                "*** GOsa bug report ***".
+                                "\nGOsa Version: $version".
+                                "\n\n".
+                                "Please describe what you did to produce this error as detailed as possible. Can you ".
+                                "reproduce this bug using the demo on http://www.gosa-project.org ?".
+                                "\n\n".
+                                "*** PHP error information ***\n\n");
+      }
+    
+    if (session::is_set('js') && session::get('js')==FALSE){
+      $error_collector= "<div>";
+    } else {
+      $error_collector= "
+        <table summary=\"\" width=\"100%\" style='background-color:#E0E0E0;border-bottom:1px solid black;z-index:150;'>
+          <tr>
+            <td>
+              <img alt=\"\" align=\"middle\" src='".get_template_path('images/warning.png')."'> 
+              <font style='font-size:14px;font-weight:bold'>".
+                _("Generating this page caused the PHP interpreter to raise some errors!")."
+              </font>
+            </td>
+            <td align=right>
+              <a href=\"mailto:gosa-bugs at oss.gonicus.de?subject=GOsa%20bugreport&body=%BUGBODY%\">
+                <img border='0' src='images/mailto.png' title='"._("Send bug report to the GOsa Team")."' class='center' alt=''> "._("Send bugreport")."
+              </a>
+            </td>
+            <td align=right>
+              <button onClick=\"$('errorbox').toggle();\">".
+                _("Toggle information")."
+              </button>
+            </td>
+          </tr>
+        </table>
+        <div id='errorbox' style='position:absolute; z-index:150; display: none;'>";
+    }
+  }
+ 
+  /* Create error header */
+  $error_collector.= "<table summary=\"\" width=\"100%\" cellspacing=0 style='background-color:#402005;color:white;border:2px solid red'><tr><td colspan=3><h1 style='color:white'>"._("PHP error")." \"$errstr\"</h1></td></tr>";
+
+  $error_collector_mailto .= prepare4mailbody("=== Error === \n");
+  $error_collector_mailto .= prepare4mailbody("PHP error: $errstr ($errfile, line $errline)\n");
+  $error_collector_mailto .= prepare4mailbody("=== /Error === \n\n");
+  
+  /* Extract traceback data - if available */
+  if (function_exists('debug_backtrace')){
+    $trace= debug_backtrace();
+
+    $error_collector_mailto .= prepare4mailbody("=== Trace ===");
+
+    /* Generate trace history */
+    for ($index= 0, $c= count($trace); $index<$c; $index++){
+
+
+      $ct= $trace[$index];
+      $loc= "";
+      if (isset($ct['class'])){
+        $loc.= _("class")." ".$ct['class'];
+        if (isset($ct['function'])){
+          $loc.= " / ";
+        }
+      }
+      if (isset($ct['function'])){
+        $loc.= _("function")." ".$ct['function'];
+      }
+      if (isset($ct['type'])){
+        switch ($ct['type']){
+          case "::":
+            $type= _("static");
+          break;
+
+          case "->":
+            $type= _("method");
+          break;
+        }
+      } else {
+        $type= "-";
+      }
+      $args= "";
+      if (isset($ct['args'])){
+        foreach ($ct['args'] as $arg){
+       
+          /* Avoid convertig object to string errors */ 
+          if(is_object($arg)){
+            $arg = "CLASS: ".get_class($arg);
+          }
+  
+          $args.= htmlentities("\"$arg\", ");
+        }
+      }
+      $args= preg_replace("/, $/", "", $args);
+      if ($args == ""){
+        $args= "-";
+      }
+      if(isset($ct['file'])) {
+        $file= $ct['file'];
+      }else{
+        $file="";
+      }
+      if(isset($ct['line'])) {
+        $line= $ct['line'];
+      }else{
+        $line="";
+      }
+      $color= ($index&1)?'#404040':'606060';
+      $error_collector.= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">"._("Trace")."[$index]: $loc</td>";
+      $error_collector.= "<td>"._("File").": $file ("._('Line')." $line)</td><td width=\"10%\">"._("Type").": $type</td></tr>";
+      $error_collector.= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>"._("Arguments").": $args</td></tr>";
+
+      /* Add trace part to mailto body */
+      $error_collector_mailto .= prepare4mailbody(
+                                   "\nTrace[".$index."]:".$loc.
+                                   "\nFile : ".$file.
+                                   "\nLine : ".$line.
+                                   "\nType : ".$type.
+                                   "\n  ".$args.
+                                   "\n");
+
+    }
+  }
+
+  $error_collector_mailto .= prepare4mailbody("=== /Trace === \n");
+
+  /* Close error table */
+  $error_collector.= "</table>";
+
+  /* Flush in case of fatal errors */
+  set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+  if (preg_match('/^fatal/i', $errstr)){
+    echo $error_collector."</div>";
+    flush();
+    exit;
+  }
+}
+
+
+function prepare4mailbody($string)
+{
+  $string = html_entity_decode($string);
+
+  $from = array(
+                "/%/",
+                "/ /",
+                "/\n/",
+                "/\r/",
+                "/!/",
+                "/#/",
+                "/\*/",
+                "/\//",
+                "/</",
+                "/>/",
+                "/\?/",
+                "/\"/");
+
+  $to = array(
+                "%25",
+                "%20",
+                "%0A",
+                "%0D",
+                "%21",
+                "%23",
+                "%2A",
+                "%2F",
+                "%3C",
+                "%3E",
+                "%3F",
+                "%22");
+
+  $string = preg_replace($from,$to,$string);
+
+  return($string);
+}
+
+
+function dummy_error_handler()
+{
+}
+
+/* Bail out for incompatible/old PHP versions */
+if (!version_compare(phpversion(),"5.2.0",">=")){
+  echo "PHP version needs to be 5.2.0 or above to run GOsa. Aborted.";
+  exit();
+}
+
+/* Set timezone */
+date_default_timezone_set("GMT");
+
+/* Get base dir for reference */
+$BASE_DIR= dirname(dirname(__FILE__));
+$ROOT_DIR= $BASE_DIR."/html";
+error_reporting (E_ALL | E_STRICT);
+
+/* Register error handler */
+$error_collector= "";
+$error_collector_mailto= "";
+
+set_error_handler('gosaRaiseError', E_WARNING |  E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT) ;
+
+$variables_order= "ES";
+ini_set("register_globals",0);
+ini_set("track_vars",1);
+ini_set("display_errors",1);
+ini_set("report_memleaks",1);
+ini_set("include_path",".:$BASE_DIR/include:$BASE_DIR/include/utils/excel:/usr/share/php");
+
+/* Do smarty setup */
+require("smarty/Smarty.class.php");
+$smarty = new Smarty;
+$smarty->template_dir = $BASE_DIR.'/ihtml/';
+$smarty->caching= false;
+$smarty->php_handling= SMARTY_PHP_REMOVE;
+
+/* Global FPDF define */
+define('FPDF_FONTPATH', '/usr/share/php/fpdf/font/');
+
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/smarty/plugins/block.render.php b/gosa-core/include/smarty/plugins/block.render.php
new file mode 100644
index 0000000..83a8fea
--- /dev/null
+++ b/gosa-core/include/smarty/plugins/block.render.php
@@ -0,0 +1,126 @@
+<?php
+
+function smarty_block_render($params, $text, &$smarty)
+{
+	/* Skip closing tag </render> */	
+	if(empty($text)) {
+		return("");
+	}
+
+	/* Get acl parameter */
+	$acl = "";
+	if (isset($params['acl'])) {
+		$acl = $params['acl'];
+	}
+
+	/* Debug output */
+	if (session::is_set('DEBUGLEVEL') && session::get('DEBUGLEVEL') & DEBUG_ACL ){
+		echo "<font color='blue' size='2'> ".$acl."</font>";
+	}
+
+
+
+	/* Parameter : checkbox, checked
+     *  If the parameter 'checkbox' is given, we create a html checkbox in front 
+     *   of the current object. 
+     *	The parameter 'checked' specifies whether the box is checked or not.
+     *  The checkbox disables or enables the current object.
+     */
+	if(isset($params['checkbox']) && $params['checkbox']){
+
+		/* Detect name and id of the current object */
+		$use_text = preg_replace("/\n/"," ",$text);
+		$name = preg_replace('/^.* name[ ]*=[ ]*("|\')([^\"\' ]*).*$/i',"\\2",$use_text);	
+
+		/* Detect id */
+		if(preg_match("/ id=(\"|')[^\"']*(\"|')/i",$text)){
+			$id = preg_replace('/^.* id[ ]*=[ ]*("|\')([^\"\' ]*).*$/i',"\\2",$use_text);	
+		}else{
+			$id = "";
+		}
+		
+		/* Is the box checked? */
+		isset($params['checked'])&&$params['checked'] ? $check = " checked " : $check = "";
+
+		/* If name isset, we have a html input field */	
+		if(!empty($name)){
+
+			/* Print checkbox */
+			echo "<input type='checkbox' name='use_".$name."' ".$check." 
+					onClick=\"changeState('".$name."');\" class='center'>";
+
+			/* Disable current object, if checkbox isn't checked */
+			if($check == ""){
+				$text = preg_replace("/name=/i"," disabled name=",$text);
+			}
+			
+			/* Add id to current entry, if it is missing */
+			if($id == ""){
+				$text = preg_replace("/name=/i"," id=\"".$name."\" name=",$text);
+			}
+		}
+	}
+
+
+	/* Read / Write*/
+	if(preg_match("/w/i",$acl)){
+		return ($text);
+	}
+
+	$text = preg_replace ("/\n/","GOSA_LINE_BREAK",$text);
+
+	/* Disable objects, but keep those active that have mode=read_active */
+	if(!(isset($params['mode']) && ($params['mode']=='read_active') && preg_match("/(r|w)/",$acl))){
+
+		/* Disable options && greyout divlists */
+		$from 	= array("/class=['\"]list1nohighlight['\"]/i",
+				"/class=['\"]list0['\"]/i",
+				"/class=['\"]list1['\"]/i",
+				"/class=['\"]sortableListItem[^'\"]*['\"]/i");
+		$to 	= array("class='list1nohighlightdisabled'",
+				"class='list1nohighlightdisabled'",
+				"class='list1nohighlightdisabled'",
+				"class='sortableListItemDisabled'");
+				
+		if(!preg_match("/ disabled /",$text)){
+			$from [] = "/name=/i" ;
+			$to   [] = "disabled name=";
+		}
+
+		$text 	= preg_replace($from,$to,$text);
+
+		/* Replace picture if object is disabled */
+		if(isset($params['disable_picture'])){
+			$syn = "/src=['\"][^\"']*['\"]/i";
+			$new = "src=\"".$params['disable_picture']."\"";
+			$text = preg_replace($syn,$new,$text);
+		}
+	}		
+
+	/* Read only */
+	if(preg_match("/r/i",$acl)){
+		return(preg_replace("/GOSA_LINE_BREAK/","\n",$text));	
+	}
+
+	/* No acls */	
+	if(preg_match("/type['\"= ].*submit/",$text)){
+		$text = preg_replace("/submit/","button",$text);
+	}else{
+		$text = preg_replace("/value=['\"][^\"']*['\"]/","",$text);
+	}
+
+	/* Remove select options */
+	$from 	= array("#<option.*<\/option>#i",
+			"/(<textarea.*>).*(<\/textarea>)/i",
+			"/^(.*<input.*)checked(.*>.*)$/i");
+
+	$to 	= array(" ",
+			"\\1\\2",
+			"\\1 \\2");
+	$text 	= preg_replace($from,$to,$text);
+	$text = preg_replace("/GOSA_LINE_BREAK/","\n",$text);
+
+	return $text;
+}
+
+?>
diff --git a/gosa-core/include/smarty/plugins/function.msgPool.php b/gosa-core/include/smarty/plugins/function.msgPool.php
new file mode 100644
index 0000000..c9c0275
--- /dev/null
+++ b/gosa-core/include/smarty/plugins/function.msgPool.php
@@ -0,0 +1,21 @@
+<?php
+
+function smarty_function_msgPool($params, &$smarty)
+{
+	if(class_available("msgPool") && isset($params['type'])){
+		$parameter = array();
+		foreach($params as $para => $value){
+			if(!preg_match("/^type$/i",$para)){
+				$parameter[$para] = $value;
+			}
+		}
+		if(is_callable("msgPool::".$params['type'])){
+			echo call_user_func_array(array("msgPool",$params['type']), $parameter);
+		}else{
+			trigger_error("Unknown msgPool function ".$params['type']);
+		}
+	}else{
+		trigger_error("Unknown class msgPool.");
+	}
+}
+?>
diff --git a/gosa-core/include/utils/class_msgPool.inc b/gosa-core/include/utils/class_msgPool.inc
new file mode 100644
index 0000000..d58debb
--- /dev/null
+++ b/gosa-core/include/utils/class_msgPool.inc
@@ -0,0 +1,583 @@
+<?php
+define ("LDAP_READ",   1);
+define ("LDAP_ADD",    2);
+define ("LDAP_MOD",    3);
+define ("LDAP_DEL",    4);
+define ("LDAP_SEARCH", 5);
+define ("LDAP_AUTH",   6);
+
+/*! \brief Some common needed messages */ 
+class msgPool
+{
+
+  public static function selectToView($type,$o_type = "")
+  {
+    if($o_type == ""){
+      return(sprintf(_("Select to list objects of type '%s'."),$type));
+    }elseif($o_type == "contains"){
+      return(sprintf(_("Select to list objects containig '%s'."),$type));
+    }elseif($o_type == "enabled"){
+      return(sprintf(_("Select to list objects that have '%s' enabled"),$type));
+    }elseif($o_type == "subsearch"){
+      return(_("Select to search within subtrees"));
+    }elseif($o_type == "subsearch_small"){
+      return(_("Search in subtrees"));
+    }
+
+  }
+
+
+  public static function deleteInfo($name= "",$type = "")
+  {
+    if ($name == "") { 
+      if($type == ""){
+        return (_("This object will be deleted!"));
+      }else{
+        return (sprintf(_("This '%s' object will be deleted!"), $type));
+      }
+    }
+    if (!is_array($name)){
+      if($type == ""){
+        return (sprintf(_("This object will be deleted: %s"), "<br><br><i>$name</i>"));
+      }else{
+        return (sprintf(_("This '%s' object will be deleted: %s"),$type, "<br><br><i>$name</i>"));
+      }
+    }
+    if (count($name) == 1){
+      if($type == ""){
+        return (_("This object will be deleted:")."<br>".msgPool::buildList($name));
+      }else{
+        return (sprintf(_("This '%s' object will be deleted:"),$type). "<br>".msgPool::buildList($name));
+      }
+    }
+    if($type == ""){
+      return (sprintf(_("These objects will be deleted: %s"), "<br>".msgPool::buildList($name)));
+    }else{
+      return (sprintf(_("These '%s' objects will be deleted: %s"),$type, "<br>".msgPool::buildList($name)));
+    }
+  }
+
+
+  public static function permDelete($name= "")
+  {
+    if ($name == "") { 
+      return (_("You have no permission to delete this object!"));
+    }
+
+    if (!is_array($name)){
+      return (_("You have no permission to delete the object:")."<br><br><i>$name</i>");
+    }
+
+    if (count($name) == 1){
+      return (_("You have no permission to delete the object:")."<br>".msgPool::buildList($name));
+    }
+
+    return (_("You have no permission to delete these objects:")."<br>".msgPool::buildList($name));
+  }
+
+
+  public static function permCreate($name= "")
+  {
+    if ($name == "") { 
+      return (_("You have no permission to create this object!"));
+    }
+
+    if (!is_array($name)){
+      return (_("You have no permission to create the object:")."<br><br><i>$name</i>");
+    }
+
+    if (count($name) == 1){
+      return (_("You have no permission to create the object:")."<br>".msgPool::buildList($name));
+    }
+
+    return (_("You have no permission to create these objects:")."<br>".msgPool::buildList($name));
+  }
+
+
+  public static function permModify($name= "")
+  {
+    if ($name == "") { 
+      return (_("You have no permission to modify this object!"));
+    }
+
+    if (!is_array($name)){
+      return (_("You have no permission to modify the object:")."<br><br><i>$name</i>");
+    }
+
+    if (count($name) == 1){
+      return (_("You have no permission to modify the object:")."<br>".msgPool::buildList($name));
+    }
+
+    return (_("You have no permission to modify these objects:")."<br>".msgPool::buildList($name));
+  }
+
+
+  public static function permView($name= "")
+  {
+    if ($name == "") { 
+      return (_("You have no permission to view this object!"));
+    }
+
+    if (!is_array($name)){
+      return (_("You have no permission to view the object:")."<br><br><i>$name</i>");
+    }
+
+    if (count($name) == 1){
+      return (_("You have no permission to view the object:")."<br>".msgPool::buildList($name));
+    }
+
+    return (_("You have no permission to view these objects:")."<br>".msgPool::buildList($name));
+  }
+
+
+  public static function permMove($name= "")
+  {
+    if ($name == "") { 
+      return (_("You have no permission to move this object!"));
+    }
+
+    if (!is_array($name)){
+      return (_("You have no permission to move the object:")."<br><br><i>$name</i>");
+    }
+
+    if (count($name) == 1){
+      return (_("You have no permission to move the object:")."<br>".msgPool::buildList($name));
+    }
+
+    return (_("You have no permission to move these objects:")."<br>".msgPool::buildList($name));
+  }
+
+
+  public static function dbconnect($name, $error= "", $dbinfo= "")
+  {
+    if ($error != ""){
+      $error= "<br><br><i>"._("Error").":</i> ".$error;
+    }
+    if ($dbinfo != ""){
+      $error.= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
+    }
+    return (sprintf(_("Cannot connect to %s database!"), $name).$error);
+  }
+
+
+  public static function dbselect($name, $error= "", $dbinfo= "")
+  {
+    if ($error != ""){
+      $error= "<br><br><i>"._("Error").":</i> ".$error;
+    }
+    if ($dbinfo != ""){
+      $error.= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
+    }
+    return (sprintf(_("Cannot select %s database!"), $name).$error);
+  }
+
+
+  public static function noserver($name)
+  {
+    return (sprintf(_("No %s server defined!"), $name));
+  }
+
+
+  public static function dbquery($name, $error= "", $dbinfo= "")
+  {
+    if ($error != ""){
+      $error= "<br><br><i>"._("Error").":</i> ".$error;
+    }
+    if ($dbinfo != ""){
+      $error.= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
+    }
+    return (sprintf(_("Cannot query %s database!"), $name).$error);
+  }
+
+
+  public static function reserved($name)
+  {
+    return (sprintf(_("The field '%s' contains a reserved keyword!"), $name));
+  }
+
+
+  public static function cmdnotfound($type, $plugin)
+  {
+    return (sprintf(_("Command specified as %s hook for plugin '%s' does not exist!"), $type, $plugin));
+  }
+
+
+  public static function cmdinvalid($type, $command = "",$plugin="")
+  {
+    if(empty($command)){
+      return (sprintf(_("'%s' command is invalid!"), $type));
+    }elseif($command != "" && $plugin != ""){
+      return (sprintf(_("'%s' command (%s) for plugin %s is invalid!"), $type,$command,$plugin));
+    }elseif($plugin != "" && $command =""){
+      return (sprintf(_("'%s' command for plugin %s is invalid!"), $type,$plugin));
+    }else{
+      return (sprintf(_("'%s' command (%s) is invalid!"), $type,$command));
+    }
+  }
+
+
+  public static function cmdexecfailed($type, $command = "",$plugin="")
+  {
+    if(empty($command)){
+      return (sprintf(_("Cannot execute '%s' command!"), $type));
+    }elseif($command != "" && $plugin != ""){
+      return (sprintf(_("Cannot execute '%s' command (%s) for plugin %s!"), $type,$command,$plugin));
+    }elseif($plugin != "" && $command =""){
+      return (sprintf(_("Cannot execute '%s' command for plugin %s!"), $type,$plugin));
+    }else{
+      return (sprintf(_("Cannot execute '%s' command (%s)!"), $type,$command));
+    }
+  }
+
+
+  public static function toobig($name, $min= "")
+  {
+    if ($min == ""){
+      return (sprintf(_("Value for '%s' is too large!"), $name));
+    } else {
+      return (sprintf(_("'%s' must be smaller than %s!"), $name, $min));
+    }
+  }
+
+
+  public static function toosmall($name, $min= "")
+  {
+    if ($min == ""){
+      return (sprintf(_("Value for '%s' is too small!"), $name));
+    } else {
+      return (sprintf(_("'%s' must be %d or above!"), $name, $min));
+    }
+  }
+
+
+  public static function depends($name1, $name2)
+  {
+    return (sprintf(_("'%s' depends on '%s' - please provide both values!"), $name1, $name2));
+  }
+
+
+  public static function duplicated($name)
+  {
+    return (sprintf(_("There is already an entry with this '%s' attribute in the system!"), $name));
+  }
+
+
+  public static function required($name)
+  {
+    return (sprintf(_("The required field '%s' is empty!"), $name));
+  }
+
+
+  public static function invalid($name, $data= "", $regex= "", $example= "")
+  {
+    /* Stylize example */
+    if ($example != ""){
+      $example= "<br><br><i>"._("Example").":</i> ".$example;
+    }
+
+    /* If validChars are posted, take data and paint all invalid
+       characters... */
+    if ($regex) {
+      $result= "";
+      $mismatch= "";
+
+      mb_internal_encoding('UTF-8');
+      for($i=0; $i<=mb_strlen($data);$i++){
+        $currentChar= mb_substr($data, $i,1);
+        if (preg_match("$regex", $currentChar)){
+          $result.= $currentChar;
+        } else {
+          $result.= "<font style='color:red;text-decoration:underline;'>".($currentChar)."</font>";
+          $mismatch.= $currentChar;
+        }
+      }
+
+      return sprintf(_("The Field '%s' contains invalid characters"), $name).". ".
+        (strlen($mismatch)==1?sprintf(_("'%s' is not allowed:"), $mismatch):sprintf(_("'%s' are not allowed!"), $mismatch)).
+        "<br><br> \"$result\"$example";
+    } else {
+      return sprintf(_("The Field '%s' contains invalid characters!"), $name)."!$example";
+    }
+  }
+
+
+  public static function missingext($name)
+  {
+    return sprintf(_("Missing %s PHP extension!"), $name);
+  }
+
+
+  public static function cancelButton()
+  {
+    return sprintf(_("Cancel"));
+  }
+
+
+  public static function okButton()
+  {
+    return sprintf(_("Ok"));
+  }
+
+
+  public static function applyButton()
+  {
+    return sprintf(_("Apply"));
+  }
+
+
+  public static function saveButton()
+  {
+    return sprintf(_("Save"));
+  }
+
+
+  public static function addButton($what= "")
+  {
+    return $what == "" ? sprintf(_("Add")): sprintf(_("Add %s"), $what);
+  }
+
+
+  public static function delButton($what= "")
+  {
+    return $what == "" ? sprintf(_("Delete")): sprintf(_("Delete %s"), $what);
+  }
+
+
+  public static function setButton($what= "")
+  {
+    return $what == "" ? sprintf(_("Set")): sprintf(_("Set %s"), $what);
+  }
+
+
+  public static function editButton($what= "")
+  {
+    return $what == "" ? sprintf(_("Edit...")): sprintf(_("Edit %s..."), $what);
+  }
+
+
+  public static function backButton($what= "")
+  {
+    return _("Back");
+  }
+
+
+  public static function buildList($data)
+  {
+    $objects= "<ul>";
+    foreach ($data as $key => $value){
+      if (is_numeric($key)){
+        $objects.= "<li>\n<i>$value</i></li>";
+      } else {
+        $objects.= "<li>\n$value (<i>$key</i>)</li>";
+      }
+    }
+    $objects.= "</ul>";
+    return($objects);
+  }
+
+  public static function noValidExtension($name)
+  {
+    return sprintf(_("This account has no valid %s extensions!"), $name);
+  }
+
+  public static function featuresEnabled($name, $depends= "")
+  {
+    if ($depends == ""){
+      return sprintf(_("This account has %s settings enabled. You can disable them by clicking below."), $name);
+    } else {
+      if (count($depends) == 1){
+        return sprintf(_("This account has %s settings enabled. To disable them, you'll need to remove the %s settings first!"), $name, $depends);
+      } else {
+        $deps= "";
+        foreach ($depends as $dep){
+          $deps.= "$dep / ";
+        }
+        $deps= preg_replace("/ \/ $/", "", $deps);
+        return sprintf(_("This account has %s settings enabled. To disable them, you'll need to remove the %s settings first!"), $name, $deps);
+      }
+    }
+  }
+
+
+  public static function featuresDisabled($name, $depends= "")
+  {
+    if ($depends == ""){
+      return sprintf(_("This account has %s settings disabled. You can enable them by clicking below."), $name);
+    } else {
+      if (count($depends) == 1){
+        return sprintf(_("This account has %s settings disabled. To enable them, you'll need to add the %s settings first!"), $name, $depends);
+      } else {
+        $deps= "";
+        foreach ($depends as $dep){
+          $deps.= "$dep / ";
+        }
+        $deps= preg_replace("/ \/ $/", "", $deps);
+        return sprintf(_("This account has %s settings disabled. To enable them, you'll need to add the %s settings first!"), $name, $deps);
+      }
+    }
+  }
+
+
+  public static function addFeaturesButton($name)
+  {
+    return sprintf(_("Add %s settings"), $name);
+  }
+
+
+  public static function removeFeaturesButton($name)
+  {
+    return sprintf(_("Remove %s settings"), $name);
+  }
+
+
+  public static function clickEditToChange()
+  {
+    return _("Click the 'Edit' button below to change informations in this dialog");
+  }
+
+
+  public static function months()
+  {
+    return array(_("January"), _("February"), _("March"), _("April"),
+        _("May"), _("June"), _("July"), _("August"), _("September"),
+        _("October"), _("November"), _("December"));
+  }
+
+
+  public static function weekdays()
+  {
+    return array( _("Sunday"), _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday"), _("Friday"), _("Saturday"));
+  }
+
+
+  public static function mysqlerror($error,  $plugin= "")
+  {
+    /* Assign headline depending on type */
+    $headline= _("MySQL operation failed!");
+    return $headline."<br><br><i>"._("Error").":</i> ".$error;
+  }
+
+
+  public static function ldaperror($error, $dn= "", $type= 0, $plugin= "")
+  {
+    /* Assign headline depending on type */
+    $typemap= array(1 => _("read operation"), _("add operation"), _("modify operation"),
+        _("delete operation"), _("search operation"), _("authentication"));
+
+    if (isset($typemap[$type])){
+      $headline= sprintf(_("LDAP %s failed!"), $typemap[$type]);
+    } else {
+      $headline= _("LDAP operation failed!");
+    }
+
+    /* Fill DN information */
+    if ($dn != ""){
+      $dn_info= "<br><br><i>"._("Object").":</i> ".LDAP::fix($dn);
+    }
+
+    return $headline.$dn_info."<br><br><i>"._("Error").":</i> ".$error;
+  }
+
+
+  public static function incorrectUpload($reason= "")
+  {
+    if ($reason == ""){
+      return _("Upload failed!");
+    }
+
+    return sprintf(_("Upload failed: %s"), "<br><br><i>$reason</i>");
+  }
+
+
+  public static function siError($error= "")
+  {
+    if ($error == ""){
+      return _("Communication failure with the infrastructure service!");
+    }
+    return sprintf(_("Communication failure with the infrastructure service: %s"), "<br><br>"._("Error").": ".$error);
+  }
+
+
+  public static function stillInUse($type, $objects= array())
+  {
+    if (!is_array($objects)){
+      return sprintf(_("This '%s' is still in use by this object: %s"), $type, "<br><br>".$objects);
+    }
+    if (count($objects) == 1){
+      return sprintf(_("This '%s' is still in use by this object: %s"), $type, "<br>".msgPool::buildList($objects));
+    }
+    if (count($objects) == 0){
+      return sprintf(_("This '%s' is still in use."), $type);
+    }
+    return sprintf(_("This '%s' is still in use by these objects: %s"), $type, "<br>".msgPool::buildList($objects));
+  }
+
+
+  public static function fileDoesNotExist($file)
+  {
+    return sprintf(_("File '%s' does not exist!"), $file);
+  }
+
+
+  public static function cannotReadFile($file)
+  {
+    return sprintf(_("Cannot open file '%s' for reading!"), $file);
+  }
+
+
+  public static function cannotWriteFile($file)
+  {
+    return sprintf(_("Cannot open file '%s' for writing!"), $file);
+  }
+
+
+  public static function invalidConfigurationAttribute($attr)
+  {
+    return sprintf(_("The value for '%s' is currently unconfigured or invalid, please check your configuration file!"), $attr);
+  }
+
+
+  public static function cannotDeleteFile($file)
+  {
+    return sprintf(_("Cannot delete file '%s'!"), $file);
+  }
+
+
+  public static function cannotCreateFolder($path)
+  {
+    return sprintf(_("Cannot create folder '%s'!"), $path);
+  }
+
+
+  public static function cannotDeleteFolder($path)
+  {
+    return sprintf(_("Cannot delete folder '%s'!"), $path);
+  }
+
+
+  public static function checkingFor($what)
+  {
+    return sprintf(_("Checking for %s support"), $what);
+  }
+
+
+  public static function installPhpModule($what)
+  {
+    return sprintf(_("Install and activate the %s PHP module."), $what);
+  }
+
+
+  public static function class_not_found($plugin)
+  {
+    return (sprintf(_("Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa setup?"), $plugin));
+  }
+
+
+  public static function check_base()
+  {
+    return _("The supplied base is not valid and has been reset to the previous value!");
+  }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/utils/class_tests.inc b/gosa-core/include/utils/class_tests.inc
new file mode 100644
index 0000000..2073d49
--- /dev/null
+++ b/gosa-core/include/utils/class_tests.inc
@@ -0,0 +1,312 @@
+<?php
+/*
+ * This code is part of GOsa (https://gosa.gonicus.de)
+ * Copyright (C) 2008 Cajus Pollmeier
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*! \brief Test functions
+ *
+ * This class provides various test functions. It enables to check
+ * if a given value is:
+ *
+ * - a phone numnber
+ * - a DNS name
+ * - an URL
+ * etc.
+ *
+ * The functions need to be handled with care, because they are not as strict
+ * as one might expect.
+ */ 
+class tests {
+
+  /*! \brief Test if the given string is a phone number */
+  public static function is_phone_nr($nr)
+  {
+    if ($nr == ""){
+      return (TRUE);
+    }
+
+    return preg_match ("/^[\/0-9 ()+*-]+$/", $nr);
+  }
+
+
+  /*! \brief Test if the given string contains characters allowed in a DNS name */
+  public static function is_dns_name($str)
+  {
+    return(preg_match("/^[a-z0-9\.\-_]*$/i",$str));
+  }
+
+
+  /*! \brief Test if the given string is an URL */
+  public static function is_url($url)
+  {
+    if ($url == ""){
+      return (TRUE);
+    }
+
+    return preg_match ("/^(http|https):\/\/((?:[a-zA-Z0-9_-]+\.?)+):?(\d*)/", $url);
+  }
+
+
+  /*! \brief Test if the given string is a DN */
+  public static function is_dn($dn)
+  {
+    if ($dn == ""){
+      return (TRUE);
+    }
+
+    return preg_match ("/^[a-z0-9 _-]+$/i", $dn);
+  }
+
+
+  /*! \brief Test if the given string is an uid */
+  public static function is_uid($uid)
+  {
+    if ($uid == ""){
+      return (TRUE);
+    }
+
+    /* STRICT adds spaces and case insenstivity to the uid check.
+       This is dangerous and should not be used. */
+    if (strict_uid_mode()){
+      return preg_match ("/^[a-z0-9_-]+$/", $uid);
+    } else {
+      return preg_match ("/^[a-z0-9 _.-]+$/i", $uid);
+    }
+  }
+
+
+  /*! \brief Test if the given string is an IP */
+  public static function is_ip($ip)
+  {
+    if(function_exists('filter_var')) {
+      return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
+    } else {
+      return preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $ip);
+    }
+  }
+
+
+  public static function is_ipv6($ip)
+  {
+    if(function_exists('filter_var')) {
+        return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
+    } else {
+        $ipv4 = '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';
+        $g = '([0-9a-f]{1,4})'; //IPv6 group
+        return preg_match("/^$g:$g:$g:$g:$g:$g:$g:$g$/", $ip) ||
+               preg_match("/^$g:$g:$g:$g:$g:$g:$ipv4$/", $ip);
+    }
+  }
+
+
+  /*! \brief Test if the given string is a mac address */
+  public static function is_mac($mac)
+  {
+    return preg_match("/^[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]$/i", $mac);
+  }
+
+
+  /*! \brief Checks if the given ip address dosen't match 
+      "is_ip" because there is also a sub net mask given */
+  public static function is_ip_with_subnetmask($ip)
+  {
+          /* Generate list of valid submasks */
+          $res = array();
+          for($e = 0 ; $e <= 32; $e++){
+                  $res[$e] = $e;
+          }
+          $i[0] =255;
+          $i[1] =255;
+          $i[2] =255;
+          $i[3] =255;
+          for($a= 3 ; $a >= 0 ; $a --){
+                  $c = 1;
+                  while($i[$a] > 0 ){
+                          $str  = $i[0].".".$i[1].".".$i[2].".".$i[3];
+                          $res[$str] = $str;
+                          $i[$a] -=$c;
+                          $c = 2*$c;
+                  }
+          }
+          $res["0.0.0.0"] = "0.0.0.0";
+          if(preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/", $ip)){
+                  $mask = preg_replace("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.".
+                          "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/","",$ip);
+
+                  $mask = preg_replace("/^\//","",$mask);
+                  if((in_array("$mask",$res)) && preg_match("/^[0-9\.]/",$mask)){
+                          return(TRUE);
+                  }
+          }
+          return(FALSE);
+  }
+
+
+  /*! \brief Simple is domain check
+   *
+   * This checks if the given string looks like "string(...).string"
+   */
+  public static function is_domain($str)
+  {
+    return(preg_match("/^(([a-z0-9\-]{2,63})\.)*[a-z]{2,63}$/i",$str));
+  }
+
+
+  /*! \brief Check if the given argument is an id */
+  public static function is_id($id)
+  {
+    if ($id == ""){
+      return (FALSE);
+    }
+
+    return preg_match ("/^[0-9]+$/", $id);
+  }
+
+
+  /*! \brief Check if the given argument is a path */
+  public static function is_path($path)
+  {
+    if ($path == ""){
+      return (TRUE);
+    }
+    if (!preg_match('/^[a-z0-9%\/_.+-]+$/i', $path)){
+      return (FALSE);
+    }
+
+    return preg_match ("/\/.+$/", $path);
+  }
+
+
+  /*! \brief Check if the given argument is an email */
+  public static function is_email($address, $template= FALSE)
+  {
+    if ($address == ""){
+      return (TRUE);
+    }
+    if ($template){
+      return preg_match ("/^[._a-z0-9%-]+@[_a-z0-9-]+(\.[a-z0-9-]+)(\.[a-z0-9-]+)*$/i",
+          $address);
+    } else {
+      return preg_match ("/^[._a-z0-9-]+@[_a-z0-9-]+(\.[a-z0-9i-]+)(\.[a-z0-9-]+)*$/i",
+          $address);
+    }
+  }
+
+
+  /* \brief Check if the given department name is valid */
+  public static function is_department_name_reserved($name,$base)
+  {
+    $reservedName = array("systems","apps","incomming","internal","accounts","fax","addressbook",
+                            preg_replace("/ou=(.*),/","\\1",get_people_ou()),
+                            preg_replace("/ou=(.*),/","\\1",get_groups_ou()));
+    $follwedNames['/ou=fai,ou=configs,ou=systems,/'] = array("fai","hooks","templates","scripts","disk","packages","variables","profiles");
+
+    /* Check if name is one of the reserved names */
+    if(in_array_ics($name,$reservedName)) {
+      return(true);
+    }
+
+    /* Check all follow combinations if name is in array && parent base == array_key, return false*/
+    foreach($follwedNames as $key => $names){
+      if((in_array_ics($name,$names)) && (preg_match($key,$base))){
+        return(true);
+      }
+    }
+    return(false);
+  }
+
+
+  /* \brief Check if $ip1 and $ip2 represents a valid IP range
+   *  \return TRUE in case of a valid range, FALSE in case of an error. 
+   */
+  public static function is_ip_range($ip1,$ip2)
+  {
+    if(!tests::is_ip($ip1) || !tests::is_ip($ip2)){
+      return(FALSE);
+    }else{
+      $ar1 = explode(".",$ip1);
+      $var1 = $ar1[0] * (16777216) + $ar1[1] * (65536) + $ar1[2] * (256) + $ar1[3];
+
+      $ar2 = explode(".",$ip2);
+      $var2 = $ar2[0] * (16777216) + $ar2[1] * (65536) + $ar2[2] * (256) + $ar2[3];
+      return($var1 < $var2);
+    }
+  }
+
+
+  /* \brief Check if the specified IP address $address is inside the given network */
+  public static function is_in_network($network, $netmask, $address)
+  {
+    $nw= explode('.', $network);
+    $nm= explode('.', $netmask);
+    $ad= explode('.', $address);
+
+    /* Generate inverted netmask */
+    for ($i= 0; $i<4; $i++){
+      $ni[$i]= 255-$nm[$i];
+      $la[$i]= $nw[$i] | $ni[$i];
+    }
+
+    /* Transform to integer */
+    $first= $nw[0] * (16777216) + $nw[1] * (65536) + $nw[2] * (256) + $nw[3];
+    $curr=  $ad[0] * (16777216) + $ad[1] * (65536) + $ad[2] * (256) + $ad[3];
+    $last=  $la[0] * (16777216) + $la[1] * (65536) + $la[2] * (256) + $la[3];
+
+    return ($first < $curr&& $last > $curr);
+  }
+
+  /* Check if entry value is a valid date */
+  public static function is_date($date)
+  {
+    global $lang;
+
+    if ($date == ""){
+      return (TRUE);
+    }
+
+    #TODO: use $lang to check date format
+    if (!preg_match("/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})/", $date, $matches)) {
+      return false;
+    }
+
+    return checkdate($matches[2],$matches[1],$matches[3]);
+  }
+
+  /* \brief Check if the specified IP address $address is inside the given network */
+  public static function is_in_ip_range($from, $to, $address)
+  {
+    $from = explode('.', $from);
+    $to   = explode('.', $to);
+    $ad   = explode('.', $address);
+
+    /* Transform to integer */
+    $from= $from[0] * (16777216) + $from[1] * (65536) + $from[2] * (256) + $from[3];
+    $to=  $to[0] * (16777216) + $to[1] * (65536) + $to[2] * (256) + $to[3];
+    $ad=  $ad[0] * (16777216) + $ad[1] * (65536) + $ad[2] * (256) + $ad[3];
+
+    return ($ad >= $from && $ad <= $to);
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/utils/class_timezone.inc b/gosa-core/include/utils/class_timezone.inc
new file mode 100644
index 0000000..7fcd7d5
--- /dev/null
+++ b/gosa-core/include/utils/class_timezone.inc
@@ -0,0 +1,77 @@
+<?php
+/*
+ * This code is part of GOsa (https://gosa.gonicus.de)
+ * Copyright (C) 2008 Cajus Pollmeier
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class timezone {
+
+  /* This function returns the offset for the default timezone. 
+   * $stamp is used to detect summer or winter time.
+   * In case of PHP5, the integrated timezone functions are used.
+   */
+  static public function get_default_timezone($stamp = NULL)
+  {
+    global $config;
+    $tz ="";
+
+    /* Default return value if zone could not be detected */
+    $zone = array("name" => "unconfigured", "value" => 0);
+
+    /* Use current timestamp if $stamp is not set */
+    if($stamp === NULL){
+      $stamp = time();
+    }
+
+    /* Is there a timezone configured in the gosa configuration (gosa.conf) */
+    if ($config->get_cfg_value("timezone") != ""){
+
+      /* Get zonename */
+      $tz = $config->get_cfg_value("timezone");
+
+      if(!@date_default_timezone_set($tz)){
+        msg_dialog::display(_("Configuration error"), sprintf(_("The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate correct timezone offset."), $tz), ERROR_DIALOG);
+      }
+      $tz_delta = date("Z", $stamp);
+      $tz_delta = $tz_delta / 3600 ;
+      return(array("name" => $tz, "value" => $tz_delta));
+
+    }
+    return($zone);
+  }
+
+
+  /* Return zone informations */
+  static public function _get_tz_zones()
+  {
+    $timezone_identifiers = DateTimeZone::listIdentifiers();
+    $timezones = array();
+    $zones = DateTimeZone::listAbbreviations();
+    foreach($zones as $group){
+      foreach($group as $zone)  {
+        $timezones[$zone['timezone_id']] = $zone['offset'];
+        if($zone['dst']){
+          $dst_timezones[$zone['timezone_id']] = 1;
+        }
+      }
+    }
+    return(array("TIMEZONES" => @$timezones, "DST_ZONES" => @$dst_timezones));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/include/utils/class_xml.inc b/gosa-core/include/utils/class_xml.inc
new file mode 100644
index 0000000..5824e80
--- /dev/null
+++ b/gosa-core/include/utils/class_xml.inc
@@ -0,0 +1,182 @@
+<?php
+/*
+ * This code is part of GOsa (https://gosa.gonicus.de)
+ * Copyright (C) 2008 Cajus Pollmeier and
+ *                    http://www.bin-co.com/php/scripts/xml2array/
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class xml {
+
+  static function validate($file, $schema) {
+    // Enable user error handling
+    libxml_use_internal_errors(true);
+    
+    $xml= new DOMDocument();
+    $xml->load($file);
+    
+    if (!$xml->schemaValidate($schema)) {
+      $errors = libxml_get_errors();
+      foreach ($errors as $error) {
+        $str= "";
+        switch ($error->level) {
+            case LIBXML_ERR_WARNING:
+                $str= _("Warning")." ".$error->code.": ";
+                break;
+            case LIBXML_ERR_ERROR:
+                $str= _("Error")." ".$error->code.": ";
+                break;
+            case LIBXML_ERR_FATAL:
+                $str= _("Fatal error")." ".$error->code.": ";
+                break;
+        }
+        $str.= trim($error->message);
+        if ($error->file) {
+            $str.= " "._("in")." ".$error->file;
+        }
+        $str.= " "._("on line")." ".$error->line;
+        msg_dialog::display(_("XML error"), $str, ERROR_DIALOG);
+      }
+      libxml_clear_errors();
+    }
+  }
+
+
+  static function xml2array($contents, $get_attributes=1, $priority = 'tag') {
+    if(!$contents) return array();
+
+    if(!function_exists('xml_parser_create')) {
+        //print "'xml_parser_create()' function not found!";
+        return array();
+    }
+
+    //Get the XML parser of PHP - PHP must have this module for the parser to work
+    $parser = xml_parser_create('');
+    xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); # http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss
+    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
+    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
+    xml_parse_into_struct($parser, trim($contents), $xml_values);
+    xml_parser_free($parser);
+
+    if(!$xml_values) return;//Hmm...
+
+    //Initializations
+    $xml_array = array();
+    $parents = array();
+    $opened_tags = array();
+    $arr = array();
+
+    $current = &$xml_array; //Refference
+
+    //Go through the tags.
+    $repeated_tag_index = array();//Multiple tags with same name will be turned into an array
+    foreach($xml_values as $data) {
+        unset($attributes,$value);//Remove existing values, or there will be trouble
+
+        //This command will extract these variables into the foreach scope
+        // tag(string), type(string), level(int), attributes(array).
+        extract($data);//We could use the array by itself, but this cooler.
+
+        $result = array();
+        $attributes_data = array();
+        
+        if(isset($value)) {
+            if($priority == 'tag') $result = $value;
+            else $result['value'] = $value; //Put the value in a assoc array if we are in the 'Attribute' mode
+        }
+
+        //Set the attributes too.
+        if(isset($attributes) and $get_attributes) {
+            foreach($attributes as $attr => $val) {
+                if($priority == 'tag') $attributes_data[$attr] = $val;
+                else $result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'
+            }
+        }
+
+        //See tag status and do the needed.
+        if($type == "open") {//The starting of the tag '<tag>'
+            $parent[$level-1] = &$current;
+            if(!is_array($current) or (!in_array($tag, array_keys($current)))) { //Insert New tag
+                $current[$tag] = $result;
+                if($attributes_data) $current[$tag. '_attr'] = $attributes_data;
+                $repeated_tag_index[$tag.'_'.$level] = 1;
+
+                $current = &$current[$tag];
+
+            } else { //There was another element with the same tag name
+
+                if(isset($current[$tag][0])) {//If there is a 0th element it is already an array
+                    $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
+                    $repeated_tag_index[$tag.'_'.$level]++;
+                } else {//This section will make the value an array if multiple tags with the same name appear together
+                    $current[$tag] = array($current[$tag],$result);//This will combine the existing item and the new item together to make an array
+                    $repeated_tag_index[$tag.'_'.$level] = 2;
+                    
+                    if(isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
+                        $current[$tag]['0_attr'] = $current[$tag.'_attr'];
+                        unset($current[$tag.'_attr']);
+                    }
+
+                }
+                $last_item_index = $repeated_tag_index[$tag.'_'.$level]-1;
+                $current = &$current[$tag][$last_item_index];
+            }
+
+        } elseif($type == "complete") { //Tags that ends in 1 line '<tag />'
+            //See if the key is already taken.
+            if(!isset($current[$tag])) { //New Key
+                $current[$tag] = $result;
+                $repeated_tag_index[$tag.'_'.$level] = 1;
+                if($priority == 'tag' and $attributes_data) $current[$tag. '_attr'] = $attributes_data;
+
+            } else { //If taken, put all things inside a list(array)
+                if(isset($current[$tag][0]) and is_array($current[$tag])) {//If it is already an array...
+
+                    // ...push the new element into that array.
+                    $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
+                    
+                    if($priority == 'tag' and $get_attributes and $attributes_data) {
+                        $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
+                    }
+                    $repeated_tag_index[$tag.'_'.$level]++;
+
+                } else { //If it is not an array...
+                    $current[$tag] = array($current[$tag],$result); //...Make it an array using using the existing value and the new value
+                    $repeated_tag_index[$tag.'_'.$level] = 1;
+                    if($priority == 'tag' and $get_attributes) {
+                        if(isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
+                            
+                            $current[$tag]['0_attr'] = $current[$tag.'_attr'];
+                            unset($current[$tag.'_attr']);
+                        }
+                        
+                        if($attributes_data) {
+                            $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
+                        }
+                    }
+                    $repeated_tag_index[$tag.'_'.$level]++; //0 and 1 index is already taken
+                }
+            }
+
+        } elseif($type == 'close') { //End of tag '</tag>'
+            $current = &$parent[$level-1];
+        }
+    }
+    
+    return($xml_array);
+  }
+
+}  
diff --git a/gosa-core/include/utils/excel/class.writeexcel_biffwriter.inc.php b/gosa-core/include/utils/excel/class.writeexcel_biffwriter.inc.php
new file mode 100644
index 0000000..d9c0d41
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_biffwriter.inc.php
@@ -0,0 +1,208 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+class writeexcel_biffwriter {
+    var $byte_order;
+    var $BIFF_version;
+    var $_byte_order;
+    var $_data;
+    var $_datasize;
+    var $_limit;
+
+    /*
+     * Constructor
+     */
+    function writeexcel_biffwriter() {
+
+        $this->byte_order   = '';
+        $this->BIFF_version = 0x0500;
+        $this->_byte_order  = '';
+        $this->_data        = false;
+        $this->_datasize    = 0;
+        $this->_limit       = 2080;
+
+        $this->_set_byte_order();
+    }
+
+    /*
+     * Determine the byte order and store it as class data to avoid
+     * recalculating it for each call to new().
+     */
+    function _set_byte_order() {
+        $this->byteorder=0;
+        // Check if "pack" gives the required IEEE 64bit float
+        $teststr = pack("d", 1.2345);
+        $number  = pack("C8", 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F);
+
+        if ($number == $teststr) {
+            $this->byte_order = 0; // Little Endian
+        } elseif ($number == strrev($teststr)) {
+            $this->byte_order = 1; // Big Endian
+        } else {
+            // Give up
+            trigger_error("Required floating point format not supported ".
+                          "on this platform. See the portability section ".
+                          "of the documentation.", E_USER_ERROR);
+        }
+
+        $this->_byte_order = $this->byte_order;
+    }
+
+    /*
+     * General storage function
+     */
+    function _prepend($data) {
+
+        if (func_num_args()>1) {
+            trigger_error("writeexcel_biffwriter::_prepend() ".
+                          "called with more than one argument", E_USER_ERROR);
+        }
+
+        if ($this->_debug) {
+            print "*** writeexcel_biffwriter::_prepend() called:";
+            for ($c=0;$c<strlen($data);$c++) {
+                if ($c%16==0) {
+                    print "\n";
+                }
+                printf("%02X ", ord($data[$c]));
+            }
+            print "\n";
+        }
+
+        if (strlen($data) > $this->_limit) {
+            $data = $this->_add_continue($data);
+        }
+
+        $this->_data      = $data . $this->_data;
+        $this->_datasize += strlen($data);
+    }
+
+    /*
+     * General storage function
+     */
+    function _append($data) {
+
+        if (func_num_args()>1) {
+            trigger_error("writeexcel_biffwriter::_append() ".
+                          "called with more than one argument", E_USER_ERROR);
+        }
+
+        if ($this->_debug) {
+            print "*** writeexcel_biffwriter::_append() called:";
+            for ($c=0;$c<strlen($data);$c++) {
+                if ($c%16==0) {
+                    print "\n";
+                }
+                printf("%02X ", ord($data[$c]));
+            }
+            print "\n";
+        }
+
+        if (strlen($data) > $this->_limit) {
+            $data = $this->_add_continue($data);
+        }
+
+        $this->_data      = $this->_data . $data;
+        $this->_datasize += strlen($data);
+    }
+
+    /*
+     * Writes Excel BOF record to indicate the beginning of a stream or
+     * sub-stream in the BIFF file.
+     *
+     * $type = 0x0005, Workbook
+     * $type = 0x0010, Worksheet
+     */
+    function _store_bof($type) {
+
+        $record  = 0x0809; // Record identifier
+        $length  = 0x0008; // Number of bytes to follow
+
+        $version = $this->BIFF_version;
+
+        // According to the SDK $build and $year should be set to zero.
+        // However, this throws a warning in Excel 5. So, use these
+        // magic numbers.
+        $build  = 0x096C;
+        $year   = 0x07C9;
+
+        $header = pack("vv",   $record, $length);
+        $data   = pack("vvvv", $version, $type, $build, $year);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Writes Excel EOF record to indicate the end of a BIFF stream.
+     */
+    function _store_eof() {
+
+        $record = 0x000A; // Record identifier
+        $length = 0x0000; // Number of bytes to follow
+
+        $header = pack("vv", $record, $length);
+
+        $this->_append($header);
+    }
+
+    /*
+     * Excel limits the size of BIFF records. In Excel 5 the limit is 2084
+     * bytes. In Excel 97 the limit is 8228 bytes. Records that are longer
+     * than these limits must be split up into CONTINUE blocks.
+     *
+     * This function take a long BIFF record and inserts CONTINUE records as
+     * necessary.
+     */
+    function _add_continue($data) {
+
+        $limit  = $this->_limit;
+        $record = 0x003C; // Record identifier
+
+        // The first 2080/8224 bytes remain intact. However, we have to change
+        // the length field of the record.
+        $tmp = substr($data, 0, $limit);
+        $data = substr($data, $limit);
+        $tmp = substr($tmp, 0, 2) . pack ("v", $limit-4) . substr($tmp, 4);
+
+        // Strip out chunks of 2080/8224 bytes +4 for the header.
+        while (strlen($data) > $limit) {
+            $header  = pack("vv", $record, $limit);
+            $tmp    .= $header;
+            $tmp    .= substr($data, 0, $limit);
+            $data    = substr($data, $limit);
+        }
+
+        // Mop up the last of the data
+        $header  = pack("vv", $record, strlen($data));
+        $tmp    .= $header;
+        $tmp    .= $data;
+
+        return $tmp;
+    }
+
+}
+
+?>
diff --git a/gosa-core/include/utils/excel/class.writeexcel_format.inc.php b/gosa-core/include/utils/excel/class.writeexcel_format.inc.php
new file mode 100644
index 0000000..c7659a1
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_format.inc.php
@@ -0,0 +1,702 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+class writeexcel_format {
+
+    var $_xf_index;
+    var $_font_index;
+    var $_font;
+    var $_size;
+    var $_bold;
+    var $_italic;
+    var $_color;
+    var $_underline;
+    var $_font_strikeout;
+    var $_font_outline;
+    var $_font_shadow;
+    var $_font_script;
+    var $_font_family;
+    var $_font_charset;
+    var $_num_format;
+    var $_hidden;
+    var $_locked;
+    var $_text_h_align;
+    var $_text_wrap;
+    var $_text_v_align;
+    var $_text_justlast;
+    var $_rotation;
+    var $_fg_color;
+    var $_bg_color;
+    var $_pattern;
+    var $_bottom;
+    var $_top;
+    var $_left;
+    var $_right;
+    var $_bottom_color;
+    var $_top_color;
+    var $_left_color;
+    var $_right_color;
+
+    /*
+     * Constructor
+     */
+    function writeexcel_format() {
+        $_=func_get_args();
+
+        $this->_xf_index       = (sizeof($_)>0) ? array_shift($_) : 0;
+
+        $this->_font_index     = 0;
+        $this->_font           = 'Arial';
+        $this->_size           = 10;
+        $this->_bold           = 0x0190;
+        $this->_italic         = 0;
+        $this->_color          = 0x7FFF;
+        $this->_underline      = 0;
+        $this->_font_strikeout = 0;
+        $this->_font_outline   = 0;
+        $this->_font_shadow    = 0;
+        $this->_font_script    = 0;
+        $this->_font_family    = 0;
+        $this->_font_charset   = 0;
+
+        $this->_num_format     = 0;
+
+        $this->_hidden         = 0;
+        $this->_locked         = 1;
+
+        $this->_text_h_align   = 0;
+        $this->_text_wrap      = 0;
+        $this->_text_v_align   = 2;
+        $this->_text_justlast  = 0;
+        $this->_rotation       = 0;
+
+        $this->_fg_color       = 0x40;
+        $this->_bg_color       = 0x41;
+
+        $this->_pattern        = 0;
+
+        $this->_bottom         = 0;
+        $this->_top            = 0;
+        $this->_left           = 0;
+        $this->_right          = 0;
+
+        $this->_bottom_color   = 0x40;
+        $this->_top_color      = 0x40;
+        $this->_left_color     = 0x40;
+        $this->_right_color    = 0x40;
+
+        // Set properties passed to writeexcel_workbook::addformat()
+        if (sizeof($_)>0) {
+            call_user_func_array(array($this, 'set_properties'), $_);
+        }
+    }
+
+    /*
+     * Copy the attributes of another writeexcel_format object.
+     */
+    function copy($other) {
+        $xf = $this->_xf_index;   // Backup XF index
+		
+		/* A better way to copy member vars, ... won't cause fatal errors in PHP5.
+           The only thing i can understand is : For what is this function used,
+			it is never used by any object, as I can see in the source code.
+		   ...
+         */
+		foreach(get_object_vars($other) as $var => $val){
+			$this->$var = $val;
+		}
+//        $this = $other;           // Copy properties
+        $this->_xf_index = $xf;   // Restore XF index
+    }
+
+    /*
+     * Generate an Excel BIFF XF record.
+     */
+    function get_xf() {
+
+        $_=func_get_args();
+
+        // $record    Record identifier
+        // $length    Number of bytes to follow
+
+        // $ifnt      Index to FONT record
+        // $ifmt      Index to FORMAT record
+        // $style     Style and other options
+        // $align     Alignment
+        // $icv       fg and bg pattern colors
+        // $fill      Fill and border line style
+        // $border1   Border line style and color
+        // $border2   Border color
+
+        // Set the type of the XF record and some of the attributes.
+        if ($_[0] == "style") {
+            $style = 0xFFF5;
+        } else {
+            $style   = $this->_locked;
+            $style  |= $this->_hidden << 1;
+        }
+
+        // Flags to indicate if attributes have been set.
+        $atr_num     = ($this->_num_format != 0) ? 1 : 0;
+        $atr_fnt     = ($this->_font_index != 0) ? 1 : 0;
+        $atr_alc     =  $this->_text_wrap ? 1 : 0;
+        $atr_bdr     = ($this->_bottom   ||
+                        $this->_top      ||
+                        $this->_left     ||
+                        $this->_right) ? 1 : 0;
+        $atr_pat     = ($this->_fg_color != 0x41 ||
+                        $this->_bg_color != 0x41 ||
+                        $this->_pattern  != 0x00) ? 1 : 0;
+        $atr_prot    = 0;
+
+        // Reset the default colors for the non-font properties
+        if ($this->_fg_color     == 0x7FFF) $this->_fg_color     = 0x40;
+        if ($this->_bg_color     == 0x7FFF) $this->_bg_color     = 0x41;
+        if ($this->_bottom_color == 0x7FFF) $this->_bottom_color = 0x41;
+        if ($this->_top_color    == 0x7FFF) $this->_top_color    = 0x41;
+        if ($this->_left_color   == 0x7FFF) $this->_left_color   = 0x41;
+        if ($this->_right_color  == 0x7FFF) $this->_right_color  = 0x41;
+
+        // Zero the default border colour if the border has not been set.
+        if ($this->_bottom == 0) {
+            $this->_bottom_color = 0;
+        }
+        if ($this->_top    == 0) {
+            $this->_top_color    = 0;
+        }
+        if ($this->_right  == 0) {
+            $this->_right_color  = 0;
+        }
+        if ($this->_left   == 0) {
+            $this->_left_color   = 0;
+        }
+
+        // The following 2 logical statements take care of special cases in 
+        // relation to cell colors and patterns:
+        // 1. For a solid fill (_pattern == 1) Excel reverses the role of
+        //    foreground and background colors
+        // 2. If the user specifies a foreground or background color
+        //    without a pattern they probably wanted a solid fill, so we
+        //    fill in the defaults.
+        if ($this->_pattern <= 0x01 && 
+            $this->_bg_color != 0x41 && 
+            $this->_fg_color == 0x40 )
+        {
+            $this->_fg_color = $this->_bg_color;
+            $this->_bg_color = 0x40;
+            $this->_pattern  = 1;
+        }
+
+        if ($this->_pattern <= 0x01 &&
+            $this->_bg_color == 0x41 &&
+            $this->_fg_color != 0x40 )
+        {
+            $this->_bg_color = 0x40;
+            $this->_pattern  = 1;
+        }
+
+        $record         = 0x00E0;
+        $length         = 0x0010;
+
+        $ifnt           = $this->_font_index;
+        $ifmt           = $this->_num_format;
+
+        $align          = $this->_text_h_align;
+        $align         |= $this->_text_wrap     << 3;
+        $align         |= $this->_text_v_align  << 4;
+        $align         |= $this->_text_justlast << 7;
+        $align         |= $this->_rotation      << 8;
+        $align         |= $atr_num              << 10;
+        $align         |= $atr_fnt              << 11;
+        $align         |= $atr_alc              << 12;
+        $align         |= $atr_bdr              << 13;
+        $align         |= $atr_pat              << 14;
+        $align         |= $atr_prot             << 15;
+
+        $icv            = $this->_fg_color;
+        $icv           |= $this->_bg_color      << 7;
+
+        $fill           = $this->_pattern;
+        $fill          |= $this->_bottom        << 6;
+        $fill          |= $this->_bottom_color  << 9;
+
+        $border1        = $this->_top;
+        $border1       |= $this->_left          << 3;
+        $border1       |= $this->_right         << 6;
+        $border1       |= $this->_top_color     << 9;
+
+        $border2        = $this->_left_color;
+        $border2       |= $this->_right_color   << 7;
+
+        $header      = pack("vv",       $record, $length);
+        $data        = pack("vvvvvvvv", $ifnt, $ifmt, $style, $align,
+                                        $icv, $fill,
+                                        $border1, $border2);
+
+        return($header . $data);
+    }
+
+    /*
+     * Generate an Excel BIFF FONT record.
+     */
+    function get_font() {
+
+        // $record     Record identifier
+        // $length     Record length
+
+        // $dyHeight   Height of font (1/20 of a point)
+        // $grbit      Font attributes
+        // $icv        Index to color palette
+        // $bls        Bold style
+        // $sss        Superscript/subscript
+        // $uls        Underline
+        // $bFamily    Font family
+        // $bCharSet   Character set
+        // $reserved   Reserved
+        // $cch        Length of font name
+        // $rgch       Font name
+
+        $dyHeight   = $this->_size * 20;
+        $icv        = $this->_color;
+        $bls        = $this->_bold;
+        $sss        = $this->_font_script;
+        $uls        = $this->_underline;
+        $bFamily    = $this->_font_family;
+        $bCharSet   = $this->_font_charset;
+        $rgch       = $this->_font;
+
+        $cch        = strlen($rgch);
+        $record     = 0x31;
+        $length     = 0x0F + $cch;
+        $reserved   = 0x00;
+
+        $grbit      = 0x00;
+
+        if ($this->_italic) {
+            $grbit     |= 0x02;
+        }
+
+        if ($this->_font_strikeout) {
+            $grbit     |= 0x08;
+        }
+
+        if ($this->_font_outline) {
+            $grbit     |= 0x10;
+        }
+
+        if ($this->_font_shadow) {
+            $grbit     |= 0x20;
+        }
+
+        $header  = pack("vv",         $record, $length);
+        $data    = pack("vvvvvCCCCC", $dyHeight, $grbit, $icv, $bls,
+                                      $sss, $uls, $bFamily,
+                                      $bCharSet, $reserved, $cch);
+
+        return($header . $data . $this->_font);
+    }
+
+    /*
+     * Returns a unique hash key for a font.
+     * Used by writeexcel_workbook::_store_all_fonts()
+     */
+    function get_font_key() {
+
+        # The following elements are arranged to increase the probability of
+        # generating a unique key. Elements that hold a large range of numbers
+        # eg. _color are placed between two binary elements such as _italic
+        #
+        $key  = $this->_font.$this->_size.
+                $this->_font_script.$this->_underline.
+                $this->_font_strikeout.$this->_bold.$this->_font_outline.
+                $this->_font_family.$this->_font_charset.
+                $this->_font_shadow.$this->_color.$this->_italic;
+
+        $key = preg_replace('/ /', '_', $key); # Convert the key to a single word
+
+        return $key;
+    }
+
+    /*
+     * Returns the used by Worksheet->_XF()
+     */
+    function get_xf_index() {
+        return $this->_xf_index;
+    }
+
+    /*
+     * Used in conjunction with the set_xxx_color methods to convert a color
+     * string into a number. Color range is 0..63 but we will restrict it
+     * to 8..63 to comply with Gnumeric. Colors 0..7 are repeated in 8..15.
+     */
+    function _get_color($color=false) {
+
+        $colors = array(
+                        'aqua'    => 0x0F,
+                        'cyan'    => 0x0F,
+                        'black'   => 0x08,
+                        'blue'    => 0x0C,
+                        'brown'   => 0x10,
+                        'magenta' => 0x0E,
+                        'fuchsia' => 0x0E,
+                        'gray'    => 0x17,
+                        'grey'    => 0x17,
+                        'green'   => 0x11,
+                        'lime'    => 0x0B,
+                        'navy'    => 0x12,
+                        'orange'  => 0x35,
+                        'purple'  => 0x14,
+                        'red'     => 0x0A,
+                        'silver'  => 0x16,
+                        'white'   => 0x09,
+                        'yellow'  => 0x0D
+                       );
+
+        // Return the default color, 0x7FFF, if undef,
+        if ($color===false) {
+            return 0x7FFF;
+        }
+
+        // or the color string converted to an integer,
+        if (isset($colors[strtolower($color)])) {
+            return $colors[strtolower($color)];
+        }
+
+        // or the default color if string is unrecognised,
+        if (preg_match('/\D/', $color)) {
+            return 0x7FFF;
+        }
+
+        // or an index < 8 mapped into the correct range,
+        if ($color<8) {
+            return $color + 8;
+        }
+
+        // or the default color if arg is outside range,
+        if ($color>63) {
+            return 0x7FFF;
+        }
+
+        // or an integer in the valid range
+        return $color;
+    }
+
+    /*
+     * Set cell alignment.
+     */
+    function set_align($location) {
+
+        // Ignore numbers
+        if (preg_match('/\d/', $location)) {
+            return;
+        }
+
+        $location = strtolower($location);
+
+        switch ($location) {
+
+        case 'left':
+            $this->set_text_h_align(1);
+            break;
+
+        case 'centre':
+        case 'center':
+            $this->set_text_h_align(2);
+            break;
+
+        case 'right':
+            $this->set_text_h_align(3);
+            break;
+
+        case 'fill':
+            $this->set_text_h_align(4);
+            break;
+
+        case 'justify':
+            $this->set_text_h_align(5);
+            break;
+
+        case 'merge':
+            $this->set_text_h_align(6);
+            break;
+
+        case 'equal_space':
+            $this->set_text_h_align(7);
+            break;
+
+        case 'top':
+            $this->set_text_v_align(0);
+            break;
+
+        case 'vcentre':
+        case 'vcenter':
+            $this->set_text_v_align(1);
+            break;
+            break;
+
+        case 'bottom':
+            $this->set_text_v_align(2);
+            break;
+
+        case 'vjustify':
+            $this->set_text_v_align(3);
+            break;
+
+        case 'vequal_space':
+            $this->set_text_v_align(4);
+            break;
+        }
+    }
+
+    /*
+     * Set vertical cell alignment. This is required by the set_properties()
+     * method to differentiate between the vertical and horizontal properties.
+     */
+    function set_valign($location) {
+        $this->set_align($location);
+    }
+
+    /*
+     * This is an alias for the unintuitive set_align('merge')
+     */
+    function set_merge() {
+        $this->set_text_h_align(6);
+    }
+
+    /*
+     * Bold has a range 0x64..0x3E8.
+     * 0x190 is normal. 0x2BC is bold.
+     */
+    function set_bold($weight=1) {
+
+        if ($weight == 1) {
+            // Bold text
+            $weight = 0x2BC;
+        }
+
+        if ($weight == 0) {
+            // Normal text
+            $weight = 0x190;
+        }
+
+        if ($weight < 0x064) {
+            // Lower bound
+            $weight = 0x190;
+        }
+
+        if ($weight > 0x3E8) {
+            // Upper bound
+            $weight = 0x190;
+        }
+
+        $this->_bold = $weight;
+    }
+
+    /*
+     * Set all cell borders (bottom, top, left, right) to the same style
+     */
+    function set_border($style) {
+        $this->set_bottom($style);
+        $this->set_top($style);
+        $this->set_left($style);
+        $this->set_right($style);
+    }
+
+    /*
+     * Set all cell borders (bottom, top, left, right) to the same color
+     */
+    function set_border_color($color) {
+        $this->set_bottom_color($color);
+        $this->set_top_color($color);
+        $this->set_left_color($color);
+        $this->set_right_color($color);
+    }
+
+    /*
+     * Convert hashes of properties to method calls.
+     */
+    function set_properties() {
+
+        $_=func_get_args();
+
+        $properties=array();
+        foreach($_ as $props) {
+            if (is_array($props)) {
+                $properties=array_merge($properties, $props);
+            } else {
+                $properties[]=$props;
+            }
+        }
+
+        foreach ($properties as $key=>$value) {
+
+            // Strip leading "-" from Tk style properties eg. -color => 'red'.
+            $key = preg_replace('/^-/', '', $key);
+
+            /* Make sure method names are alphanumeric characters only, in
+               case tainted data is passed to the eval(). */
+            if (preg_match('/\W/', $key)) {
+                trigger_error("Unknown property: $key.",
+                              E_USER_ERROR);
+            }
+
+            /* Evaling all $values as a strings gets around the problem of
+               some numerical format strings being evaluated as numbers, for
+               example "00000" for a zip code. */
+            if (is_int($key)) {
+                eval("\$this->set_$value();");
+            } else {
+                eval("\$this->set_$key('$value');");
+            }
+
+        }
+    }
+
+    function set_font($font) {
+        $this->_font=$font;
+    }
+
+    function set_size($size) {
+        $this->_size=$size;
+    }
+
+    function set_italic($italic=1) {
+        $this->_italic=$italic;
+    }
+
+    function set_color($color) {
+        $this->_color=$this->_get_color($color);
+    }
+
+    function set_underline($underline=1) {
+        $this->_underline=$underline;
+    }
+
+    function set_font_strikeout($font_strikeout=1) {
+        $this->_font_strikeout=$font_strikeout;
+    }
+
+    function set_font_outline($font_outline=1) {
+        $this->_font_outline=$font_outline;
+    }
+
+    function set_font_shadow($font_shadow=1) {
+        $this->_font_shadow=$font_shadow;
+    }
+
+    function set_font_script($font_script=1) {
+        $this->_font_script=$font_script;
+    }
+
+    /* Undocumented */
+    function set_font_family($font_family=1) {
+        $this->_font_family=$font_family;
+    }
+
+    /* Undocumented */
+    function set_font_charset($font_charset=1) {
+        $this->_font_charset=$font_charset;
+    }
+
+    function set_num_format($num_format=1) {
+        $this->_num_format=$num_format;
+    }
+
+    function set_hidden($hidden=1) {
+        $this->_hidden=$hidden;
+    }
+
+    function set_locked($locked=1) {
+        $this->_locked=$locked;
+    }
+
+    function set_text_h_align($align) {
+        $this->_text_h_align=$align;
+    }
+
+    function set_text_wrap($wrap=1) {
+        $this->_text_wrap=$wrap;
+    }
+
+    function set_text_v_align($align) {
+        $this->_text_v_align=$align;
+    }
+
+    function set_text_justlast($text_justlast=1) {
+        $this->_text_justlast=$text_justlast;
+    }
+
+    function set_rotation($rotation=1) {
+        $this->_rotation=$rotation;
+    }
+
+    function set_fg_color($color) {
+        $this->_fg_color=$this->_get_color($color);
+    }
+
+    function set_bg_color($color) {
+        $this->_bg_color=$this->_get_color($color);
+    }
+
+    function set_pattern($pattern=1) {
+        $this->_pattern=$pattern;
+    }
+
+    function set_bottom($bottom=1) {
+        $this->_bottom=$bottom;
+    }
+
+    function set_top($top=1) {
+        $this->_top=$top;
+    }
+
+    function set_left($left=1) {
+        $this->_left=$left;
+    }
+
+    function set_right($right=1) {
+         $this->_right=$right;
+    }
+
+    function set_bottom_color($color) {
+        $this->_bottom_color=$this->_get_color($color);
+    }
+
+    function set_top_color($color) {
+        $this->_top_color=$this->_get_color($color);
+    }
+
+    function set_left_color($color) {
+        $this->_left_color=$this->_get_color($color);
+    }
+
+    function set_right_color($color) {
+        $this->_right_color=$this->_get_color($color);
+    }
+
+}
+
+?>
diff --git a/gosa-core/include/utils/excel/class.writeexcel_formula.inc.php b/gosa-core/include/utils/excel/class.writeexcel_formula.inc.php
new file mode 100644
index 0000000..f761b74
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_formula.inc.php
@@ -0,0 +1,1413 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/* This file contains source from the PEAR::Spreadsheet class Parser.php file version 0.4 .
+   The raiseError was replaced by triggerError function.
+   The PEAR::isError was imported to keep compatibility to PEAR::Spreadsheet class 
+   
+   Imported and adapted by Andreas Brodowski 2003 (andreas.brodowski at oscar-gmbh.com).
+   
+   There should be no license rights in question because the Parser.php from PEAR class is 
+   published under GNU License the same way like this class.
+   
+   Changes:	03/08/27 Added SPREADSHEET_EXCEL_WRITER_SCOLON for arg seperation in excel functions
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+define('SPREADSHEET_EXCEL_WRITER_ADD',"+");
    // @const SPREADSHEET_EXCEL_WRITER_ADD token identifier for character "+"
+define('SPREADSHEET_EXCEL_WRITER_SUB',"-");
    // @const SPREADSHEET_EXCEL_WRITER_SUB token identifier for character "-"
+define('SPREADSHEET_EXCEL_WRITER_MUL',"*");
    // @const SPREADSHEET_EXCEL_WRITER_MUL token identifier for character "*"
+define('SPREADSHEET_EXCEL_WRITER_DIV',"/");
    // @const SPREADSHEET_EXCEL_WRITER_DIV token identifier for character "/"
+define('SPREADSHEET_EXCEL_WRITER_OPEN',"(");
   // @const SPREADSHEET_EXCEL_WRITER_OPEN token identifier for character "("
+define('SPREADSHEET_EXCEL_WRITER_CLOSE',")"); 
 // @const SPREADSHEET_EXCEL_WRITER_CLOSE token identifier for character ")"
+define('SPREADSHEET_EXCEL_WRITER_COMA',",");
   // @const SPREADSHEET_EXCEL_WRITER_COMA token identifier for character ","
+define('SPREADSHEET_EXCEL_WRITER_SCOLON',";"); 
// @const SPREADSHEET_EXCEL_WRITER_SCOLON token identifier for character ";"
+define('SPREADSHEET_EXCEL_WRITER_GT',">");
     // @const SPREADSHEET_EXCEL_WRITER_GT token identifier for character ">"
+define('SPREADSHEET_EXCEL_WRITER_LT',"<");
     // @const SPREADSHEET_EXCEL_WRITER_LT token identifier for character "<"
+define('SPREADSHEET_EXCEL_WRITER_LE',"<=");
    // @const SPREADSHEET_EXCEL_WRITER_LE token identifier for character "<="
+define('SPREADSHEET_EXCEL_WRITER_GE',">=");
    // @const SPREADSHEET_EXCEL_WRITER_GE token identifier for character ">="
+define('SPREADSHEET_EXCEL_WRITER_EQ',"=");
     // @const SPREADSHEET_EXCEL_WRITER_EQ token identifier for character "="
+define('SPREADSHEET_EXCEL_WRITER_NE',"<>");
    // @const SPREADSHEET_EXCEL_WRITER_NE token identifier for character "<>"
+
+
+class writeexcel_formula {
+
+###############################################################################
+#
+# Class data.
+#
+var $parser;
+var $ptg;
+var $_functions;
+var $_current_char;
+var $_current_token;
+var $_lookahead;
+var $_debug;
+var $_byte_order;
+var $_volatile;
+var $_workbook;
+var $_ext_sheets;
+var $_formula;
+
+###############################################################################
+#
+# new()
+#
+# Constructor
+#
+function writeexcel_formula($byte_order) {
+
+    $this->parser          = false;
+    $this->ptg             = array();
+    $this->_functions       = array();
+    $this->_debug          = 0;
+    $this->_byte_order     = $byte_order;
+    $this->_volatile       = 0;
+    $this->_workbook       = "";
+    $this->_ext_sheets     = array();
+    $this->_current_token  = '';
+    $this->_lookahead	   = '';
+    $this->_current_char   = 0;    
+    $this->_formula	   = '';
+}
+
+###############################################################################
+#
+# _init_parser()
+#
+# There is a small overhead involved in generating the parser. Therefore, the
+# initialisation is delayed until a formula is required. TODO: use a pre-
+# compiled header.
+#
+function _init_parser() {
+
+    $this->_initializeHashes();
+
+
+    if ($this->_debug) {
+        print "Init_parser.\n\n";
+    }
+}
+
+###############################################################################
+#
+# parse_formula()
+#
+# This is the only public method. It takes a textual description of a formula
+# and returns a RPN encoded byte string.
+#
+function parse_formula() {
+
+    $_=func_get_args();
+
+    # Initialise the parser if this is the first call
+    if ($this->parser===false) {
+        $this->_init_parser();
+    }
+
+    $formula = array_shift($_);
+    //$str;
+    //$tokens;
+
+    if ($this->_debug) {
+        print "$formula\n";
+    }
+
+    # Build the parse tree for the formula
+    
+    $this->_formula	 = $formula;
+    $this->_current_char = 0;
+    $this->_lookahead    = $this->_formula{1};
+    $this->_advance($formula);
+    $parsetree = $this->_condition();
+
+    $str = $this->toReversePolish($parsetree);
+
+    return $str;
+}
+
+function set_ext_sheet($key, $value) {
+
+    $this->_ext_sheets->$key = $value;
+}
+
+function isError($data) {
+    return (bool)(is_object($data) &&
+                  (get_class($data) == 'pear_error' ||
+                  is_subclass_of($data, 'pear_error')));
+}
+
+/**
+* Class for parsing Excel formulas
+*
+* @author   Xavier Noguer <xnoguer at rezebra.com>
+* @category FileFormats
+* @package  Spreadsheet_Excel_Writer
+*/
+
+    
+/**
+* Initialize the ptg and function hashes. 
+*
+* @access private
+*/
+function _initializeHashes()
 {
+    // The Excel ptg indices
+    $this->ptg = array(
+        'ptgExp'       => 0x01,
        'ptgTbl'       => 0x02,
        'ptgAdd'       => 0x03,
        'ptgSub'       => 0x04,
+        'ptgMul'       => 0x05,
        'ptgDiv'       => 0x06,
        'ptgPower'     => 0x07,        'ptgConcat'    => 0x08,
+        'ptgLT'        => 0x09,
        'ptgLE'        => 0x0A,
        'ptgEQ'        => 0x0B,
        'ptgGE'        => 0x0C,
+        'ptgGT'        => 0x0D,
        'ptgNE'        => 0x0E,
        'ptgIsect'     => 0x0F,
        'ptgUnion'     => 0x10,
+        'ptgRange'     => 0x11,
        'ptgUplus'     => 0x12,
        'ptgUminus'    => 0x13,
        'ptgPercent'   => 0x14,
+        'ptgParen'     => 0x15,
        'ptgMissArg'   => 0x16,
        'ptgStr'       => 0x17,
        'ptgAttr'      => 0x19,
+        'ptgSheet'     => 0x1A,
        'ptgEndSheet'  => 0x1B,
        'ptgErr'       => 0x1C,
        'ptgBool'      => 0x1D,
+        'ptgInt'       => 0x1E,
        'ptgNum'       => 0x1F,
        'ptgArray'     => 0x20,
        'ptgFunc'      => 0x21,
+        'ptgFuncVar'   => 0x22,
        'ptgName'      => 0x23,
        'ptgRef'       => 0x24,
        'ptgArea'      => 0x25,
+        'ptgMemArea'   => 0x26,
        'ptgMemErr'    => 0x27,
        'ptgMemNoMem'  => 0x28,
        'ptgMemFunc'   => 0x29,
+	'ptgRefErr'    => 0x2A,
        'ptgAreaErr'   => 0x2B,
        'ptgRefN'      => 0x2C,
        'ptgAreaN'     => 0x2D,
+        'ptgMemAreaN'  => 0x2E,
        'ptgMemNoMemN' => 0x2F,
        'ptgNameX'     => 0x39,
        'ptgRef3d'     => 0x3A,
+
        'ptgArea3d'    => 0x3B,
        'ptgRefErr3d'  => 0x3C,
        'ptgAreaErr3d' => 0x3D,
        'ptgArrayV'    => 0x40,
+        'ptgFuncV'     => 0x41,
        'ptgFuncVarV'  => 0x42,
        'ptgNameV'     => 0x43,
        'ptgRefV'      => 0x44,
+        'ptgAreaV'     => 0x45,
        'ptgMemAreaV'  => 0x46,
        'ptgMemErrV'   => 0x47,
        'ptgMemNoMemV' => 0x48,
+        'ptgMemFuncV'  => 0x49,
        'ptgRefErrV'   => 0x4A,
        'ptgAreaErrV'  => 0x4B,
        'ptgRefNV'     => 0x4C,
+        'ptgAreaNV'    => 0x4D,
        'ptgMemAreaNV' => 0x4E,
        'ptgMemNoMemN' => 0x4F,
        'ptgFuncCEV'   => 0x58,
+        'ptgNameXV'    => 0x59,
        'ptgRef3dV'    => 0x5A,
        'ptgArea3dV'   => 0x5B,        'ptgRefErr3dV' => 0x5C,
+        'ptgAreaErr3d' => 0x5D,
        'ptgArrayA'    => 0x60,
        'ptgFuncA'     => 0x61,
        'ptgFuncVarA'  => 0x62,
+        'ptgNameA'     => 0x63,        'ptgRefA'      => 0x64,
	      'ptgAreaA'     => 0x65,
        'ptgMemAreaA'  => 0x66,
+        'ptgMemErrA'   => 0x67,
        'ptgMemNoMemA' => 0x68,
        'ptgMemFuncA'  => 0x69,
        'ptgRefErrA'   => 0x6A,
+        'ptgAreaErrA'  => 0x6B,
        'ptgRefNA'     => 0x6C,
        'ptgAreaNA'    => 0x6D,
        'ptgMemAreaNA' => 0x6E,
+        'ptgMemNoMemN' => 0x6F,
        'ptgFuncCEA'   => 0x78,
        'ptgNameXA'    => 0x79,
        'ptgRef3dA'    => 0x7A,
+        'ptgArea3dA'   => 0x7B,
        'ptgRefErr3dA' => 0x7C,
        'ptgAreaErr3d' => 0x7D
+        );
+    
+    // Thanks to Michael Meeks and Gnumeric for the initial arg values.
+    //
+    // The following hash was generated by "function_locale.pl" in the distro.
+    // Refer to function_locale.pl for non-English function names.
+    //
+    // The array elements are as follow:
+    // ptg:   The Excel function ptg code.
+    // args:  The number of arguments that the function takes:
+    //           >=0 is a fixed number of arguments.
+    //           -1  is a variable  number of arguments.
+    // class: The reference, value or array class of the function args.
+    // vol:   The function is volatile.
+    //
+    $this->_functions = array(
+	// function                  ptg  args  class  vol
+	'COUNT'           => array(   0,   -1,    0,    0 ),
+        'IF'              => array(   1,   -1,    1,    0 ),
+        'ISNA'            => array(   2,    1,    1,    0 ),
+        'ISERROR'         => array(   3,    1,    1,    0 ),
+        'SUM'             => array(   4,   -1,    0,    0 ),
+        'AVERAGE'         => array(   5,   -1,    0,    0 ),
+        'MIN'             => array(   6,   -1,    0,    0 ),
+        'MAX'             => array(   7,   -1,    0,    0 ),
+        'ROW'             => array(   8,   -1,    0,    0 ),
+        'COLUMN'          => array(   9,   -1,    0,    0 ),
+        'NA'              => array(  10,    0,    0,    0 ),
+        'NPV'             => array(  11,   -1,    1,    0 ),
+        'STDEV'           => array(  12,   -1,    0,    0 ),
+        'DOLLAR'          => array(  13,   -1,    1,    0 ),
+        'FIXED'           => array(  14,   -1,    1,    0 ),
+        'SIN'             => array(  15,    1,    1,    0 ),
+        'COS'             => array(  16,    1,    1,    0 ),
+        'TAN'             => array(  17,    1,    1,    0 ),
+        'ATAN'            => array(  18,    1,    1,    0 ),
+        'PI'              => array(  19,    0,    1,    0 ),
+        'SQRT'            => array(  20,    1,    1,    0 ),
+        'EXP'             => array(  21,    1,    1,    0 ),
+        'LN'              => array(  22,    1,    1,    0 ),
+        'LOG10'           => array(  23,    1,    1,    0 ),
+        'ABS'             => array(  24,    1,    1,    0 ),
+        'INT'             => array(  25,    1,    1,    0 ),
+        'SIGN'            => array(  26,    1,    1,    0 ),
+        'ROUND'           => array(  27,    2,    1,    0 ),
+        'LOOKUP'          => array(  28,   -1,    0,    0 ),
+        'INDEX'           => array(  29,   -1,    0,    1 ),
+        'REPT'            => array(  30,    2,    1,    0 ),
+        'MID'             => array(  31,    3,    1,    0 ),
+        'LEN'             => array(  32,    1,    1,    0 ),
+        'VALUE'           => array(  33,    1,    1,    0 ),
+        'TRUE'            => array(  34,    0,    1,    0 ),
+        'FALSE'           => array(  35,    0,    1,    0 ),
+        'AND'             => array(  36,   -1,    0,    0 ),
+        'OR'              => array(  37,   -1,    0,    0 ),
+        'NOT'             => array(  38,    1,    1,    0 ),
+        'MOD'             => array(  39,    2,    1,    0 ),
+        'DCOUNT'          => array(  40,    3,    0,    0 ),
+        'DSUM'            => array(  41,    3,    0,    0 ),
+        'DAVERAGE'        => array(  42,    3,    0,    0 ),
+        'DMIN'            => array(  43,    3,    0,    0 ),
+        'DMAX'            => array(  44,    3,    0,    0 ),
+        'DSTDEV'          => array(  45,    3,    0,    0 ),
+        'VAR'             => array(  46,   -1,    0,    0 ),
+        'DVAR'            => array(  47,    3,    0,    0 ),
+        'TEXT'            => array(  48,    2,    1,    0 ),
+        'LINEST'          => array(  49,   -1,    0,    0 ),
+        'TREND'           => array(  50,   -1,    0,    0 ),
+        'LOGEST'          => array(  51,   -1,    0,    0 ),
+        'GROWTH'          => array(  52,   -1,    0,    0 ),
+        'PV'              => array(  56,   -1,    1,    0 ),
+        'FV'              => array(  57,   -1,    1,    0 ),
+        'NPER'            => array(  58,   -1,    1,    0 ),
+        'PMT'             => array(  59,   -1,    1,    0 ),
+        'RATE'            => array(  60,   -1,    1,    0 ),
+        'MIRR'            => array(  61,    3,    0,    0 ),
+        'IRR'             => array(  62,   -1,    0,    0 ),
+        'RAND'            => array(  63,    0,    1,    1 ),
+        'MATCH'           => array(  64,   -1,    0,    0 ),
+        'DATE'            => array(  65,    3,    1,    0 ),
+        'TIME'            => array(  66,    3,    1,    0 ),
+        'DAY'             => array(  67,    1,    1,    0 ),
+        'MONTH'           => array(  68,    1,    1,    0 ),
+        'YEAR'            => array(  69,    1,    1,    0 ),
+        'WEEKDAY'         => array(  70,   -1,    1,    0 ),
+        'HOUR'            => array(  71,    1,    1,    0 ),
+        'MINUTE'          => array(  72,    1,    1,    0 ),
+        'SECOND'          => array(  73,    1,    1,    0 ),
+        'NOW'             => array(  74,    0,    1,    1 ),
+        'AREAS'           => array(  75,    1,    0,    1 ),
+        'ROWS'            => array(  76,    1,    0,    1 ),
+        'COLUMNS'         => array(  77,    1,    0,    1 ),
+        'OFFSET'          => array(  78,   -1,    0,    1 ),
+        'SEARCH'          => array(  82,   -1,    1,    0 ),
+        'TRANSPOSE'       => array(  83,    1,    1,    0 ),
+        'TYPE'            => array(  86,    1,    1,    0 ),
+        'ATAN2'           => array(  97,    2,    1,    0 ),
+        'ASIN'            => array(  98,    1,    1,    0 ),
+        'ACOS'            => array(  99,    1,    1,    0 ),
+        'CHOOSE'          => array( 100,   -1,    1,    0 ),
+        'HLOOKUP'         => array( 101,   -1,    0,    0 ),
+        'VLOOKUP'         => array( 102,   -1,    0,    0 ),
+        'ISREF'           => array( 105,    1,    0,    0 ),
+        'LOG'             => array( 109,   -1,    1,    0 ),
+        'CHAR'            => array( 111,    1,    1,    0 ),
+        'LOWER'           => array( 112,    1,    1,    0 ),
+        'UPPER'           => array( 113,    1,    1,    0 ),
+        'PROPER'          => array( 114,    1,    1,    0 ),
+        'LEFT'            => array( 115,   -1,    1,    0 ),
+        'RIGHT'           => array( 116,   -1,    1,    0 ),
+        'EXACT'           => array( 117,    2,    1,    0 ),
+        'TRIM'            => array( 118,    1,    1,    0 ),
+        'REPLACE'         => array( 119,    4,    1,    0 ),
+        'SUBSTITUTE'      => array( 120,   -1,    1,    0 ),
+        'CODE'            => array( 121,    1,    1,    0 ),
+        'FIND'            => array( 124,   -1,    1,    0 ),
+        'CELL'            => array( 125,   -1,    0,    1 ),
+        'ISERR'           => array( 126,    1,    1,    0 ),
+        'ISTEXT'          => array( 127,    1,    1,    0 ),
+        'ISNUMBER'        => array( 128,    1,    1,    0 ),
+        'ISBLANK'         => array( 129,    1,    1,    0 ),
+        'T'               => array( 130,    1,    0,    0 ),
+        'N'               => array( 131,    1,    0,    0 ),
+        'DATEVALUE'       => array( 140,    1,    1,    0 ),
+        'TIMEVALUE'       => array( 141,    1,    1,    0 ),
+        'SLN'             => array( 142,    3,    1,    0 ),
+        'SYD'             => array( 143,    4,    1,    0 ),
+        'DDB'             => array( 144,   -1,    1,    0 ),
+        'INDIRECT'        => array( 148,   -1,    1,    1 ),
+        'CALL'            => array( 150,   -1,    1,    0 ),
+        'CLEAN'           => array( 162,    1,    1,    0 ),
+        'MDETERM'         => array( 163,    1,    2,    0 ),
+        'MINVERSE'        => array( 164,    1,    2,    0 ),
+        'MMULT'           => array( 165,    2,    2,    0 ),
+        'IPMT'            => array( 167,   -1,    1,    0 ),
+        'PPMT'            => array( 168,   -1,    1,    0 ),
+        'COUNTA'          => array( 169,   -1,    0,    0 ),
+        'PRODUCT'         => array( 183,   -1,    0,    0 ),
+        'FACT'            => array( 184,    1,    1,    0 ),
+        'DPRODUCT'        => array( 189,    3,    0,    0 ),
+        'ISNONTEXT'       => array( 190,    1,    1,    0 ),
+        'STDEVP'          => array( 193,   -1,    0,    0 ),
+        'VARP'            => array( 194,   -1,    0,    0 ),
+        'DSTDEVP'         => array( 195,    3,    0,    0 ),
+        'DVARP'           => array( 196,    3,    0,    0 ),
+        'TRUNC'           => array( 197,   -1,    1,    0 ),
+        'ISLOGICAL'       => array( 198,    1,    1,    0 ),
+        'DCOUNTA'         => array( 199,    3,    0,    0 ),
+        'ROUNDUP'         => array( 212,    2,    1,    0 ),
+        'ROUNDDOWN'       => array( 213,    2,    1,    0 ),
+        'RANK'            => array( 216,   -1,    0,    0 ),
+        'ADDRESS'         => array( 219,   -1,    1,    0 ),
+        'DAYS360'         => array( 220,   -1,    1,    0 ),
+        'TODAY'           => array( 221,    0,    1,    1 ),
+        'VDB'             => array( 222,   -1,    1,    0 ),
+        'MEDIAN'          => array( 227,   -1,    0,    0 ),
+        'SUMPRODUCT'      => array( 228,   -1,    2,    0 ),
+        'SINH'            => array( 229,    1,    1,    0 ),
+        'COSH'            => array( 230,    1,    1,    0 ),
+        'TANH'            => array( 231,    1,    1,    0 ),
+        'ASINH'           => array( 232,    1,    1,    0 ),
+        'ACOSH'           => array( 233,    1,    1,    0 ),
+        'ATANH'           => array( 234,    1,    1,    0 ),
+        'DGET'            => array( 235,    3,    0,    0 ),
+        'INFO'            => array( 244,    1,    1,    1 ),
+        'DB'              => array( 247,   -1,    1,    0 ),
+        'FREQUENCY'       => array( 252,    2,    0,    0 ),
+        'ERROR.TYPE'      => array( 261,    1,    1,    0 ),
+        'REGISTER.ID'     => array( 267,   -1,    1,    0 ),
+        'AVEDEV'          => array( 269,   -1,    0,    0 ),
+        'BETADIST'        => array( 270,   -1,    1,    0 ),
+        'GAMMALN'         => array( 271,    1,    1,    0 ),
+        'BETAINV'         => array( 272,   -1,    1,    0 ),
+        'BINOMDIST'       => array( 273,    4,    1,    0 ),
+        'CHIDIST'         => array( 274,    2,    1,    0 ),
+        'CHIINV'          => array( 275,    2,    1,    0 ),
+        'COMBIN'          => array( 276,    2,    1,    0 ),
+        'CONFIDENCE'      => array( 277,    3,    1,    0 ),
+        'CRITBINOM'       => array( 278,    3,    1,    0 ),
+        'EVEN'            => array( 279,    1,    1,    0 ),
+        'EXPONDIST'       => array( 280,    3,    1,    0 ),
+        'FDIST'           => array( 281,    3,    1,    0 ),
+        'FINV'            => array( 282,    3,    1,    0 ),
+        'FISHER'          => array( 283,    1,    1,    0 ),
+        'FISHERINV'       => array( 284,    1,    1,    0 ),
+        'FLOOR'           => array( 285,    2,    1,    0 ),
+        'GAMMADIST'       => array( 286,    4,    1,    0 ),
+        'GAMMAINV'        => array( 287,    3,    1,    0 ),
+        'CEILING'         => array( 288,    2,    1,    0 ),
+        'HYPGEOMDIST'     => array( 289,    4,    1,    0 ),
+        'LOGNORMDIST'     => array( 290,    3,    1,    0 ),
+        'LOGINV'          => array( 291,    3,    1,    0 ),
+        'NEGBINOMDIST'    => array( 292,    3,    1,    0 ),
+        'NORMDIST'        => array( 293,    4,    1,    0 ),
+        'NORMSDIST'       => array( 294,    1,    1,    0 ),
+        'NORMINV'         => array( 295,    3,    1,    0 ),
+        'NORMSINV'        => array( 296,    1,    1,    0 ),
+        'STANDARDIZE'     => array( 297,    3,    1,    0 ),
+        'ODD'             => array( 298,    1,    1,    0 ),
+        'PERMUT'          => array( 299,    2,    1,    0 ),
+        'POISSON'         => array( 300,    3,    1,    0 ),
+        'TDIST'           => array( 301,    3,    1,    0 ),
+        'WEIBULL'         => array( 302,    4,    1,    0 ),
+        'SUMXMY2'         => array( 303,    2,    2,    0 ),
+        'SUMX2MY2'        => array( 304,    2,    2,    0 ),
+        'SUMX2PY2'        => array( 305,    2,    2,    0 ),
+        'CHITEST'         => array( 306,    2,    2,    0 ),
+        'CORREL'          => array( 307,    2,    2,    0 ),
+        'COVAR'           => array( 308,    2,    2,    0 ),
+        'FORECAST'        => array( 309,    3,    2,    0 ),
+        'FTEST'           => array( 310,    2,    2,    0 ),
+        'INTERCEPT'       => array( 311,    2,    2,    0 ),
+        'PEARSON'         => array( 312,    2,    2,    0 ),
+        'RSQ'             => array( 313,    2,    2,    0 ),
+        'STEYX'           => array( 314,    2,    2,    0 ),
+        'SLOPE'           => array( 315,    2,    2,    0 ),
+        'TTEST'           => array( 316,    4,    2,    0 ),
+        'PROB'            => array( 317,   -1,    2,    0 ),
+        'DEVSQ'           => array( 318,   -1,    0,    0 ),
+        'GEOMEAN'         => array( 319,   -1,    0,    0 ),
+        'HARMEAN'         => array( 320,   -1,    0,    0 ),
+        'SUMSQ'           => array( 321,   -1,    0,    0 ),
+        'KURT'            => array( 322,   -1,    0,    0 ),
+        'SKEW'            => array( 323,   -1,    0,    0 ),
+        'ZTEST'           => array( 324,   -1,    0,    0 ),
+        'LARGE'           => array( 325,    2,    0,    0 ),
+        'SMALL'           => array( 326,    2,    0,    0 ),
+        'QUARTILE'        => array( 327,    2,    0,    0 ),
+        'PERCENTILE'      => array( 328,    2,    0,    0 ),
+        'PERCENTRANK'     => array( 329,   -1,    0,    0 ),
+        'MODE'            => array( 330,   -1,    2,    0 ),
+        'TRIMMEAN'        => array( 331,    2,    0,    0 ),
+        'TINV'            => array( 332,    2,    1,    0 ),
+        'CONCATENATE'     => array( 336,   -1,    1,    0 ),
+        'POWER'           => array( 337,    2,    1,    0 ),
+        'RADIANS'         => array( 342,    1,    1,    0 ),
+        'DEGREES'         => array( 343,    1,    1,    0 ),
+        'SUBTOTAL'        => array( 344,   -1,    0,    0 ),
+        'SUMIF'           => array( 345,   -1,    0,    0 ),
+        'COUNTIF'         => array( 346,    2,    0,    0 ),
+        'COUNTBLANK'      => array( 347,    1,    0,    0 ),
+        'ROMAN'           => array( 354,   -1,    1,    0 )
+        );
+}
+    
+/**
+* Convert a token to the proper ptg value.
+*
+* @access private
+* @param mixed $token The token to convert.
+* @return mixed the converted token on success. PEAR_Error if the token
+*               is not recognized
+*/
+function _convert($token)
 {
+    if (preg_match("/^\"[^\"]{0,255}\"$/", $token))
 {
+        return $this->_convertString($token);
+    }
 elseif (is_numeric($token))
 {
+        return $this->_convertNumber($token);
+    }
+    // match references like A1 or $A$1
+    
elseif (preg_match('/^\$?([A-Ia-i]?[A-Za-z])\$?(\d+)$/',$token))
 { 
+        return $this->_convertRef2d($token);
+    }
+    // match external references like Sheet1:Sheet2!A1
+    elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-Ia-i]?[A-Za-z](\d+)$/",$token))
 {
 
+        return $this->_convertRef3d($token);
+    }
+    // match ranges like A1:B2
+    elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)\:(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/",$token))
 {
+        return $this->_convertRange2d($token);
+    }
+    // match ranges like A1..B2
+    elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/",$token))
 {
+        return $this->_convertRange2d($token);
+    }
+    // match external ranges like Sheet1:Sheet2!A1:B2
+    elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\!([A-Ia-i]?[A-Za-z])?(\d+)\:([A-Ia-i]?[A-Za-z])?(\d+)$/",$token))
 {
+        return $this->_convertRange3d($token);
+    }
+    // match external ranges like 'Sheet1:Sheet2'!A1:B2
+    elseif (preg_match("/^'[A-Za-z0-9_ ]+(\:[A-Za-z0-9_ ]+)?'\!([A-Ia-i]?[A-Za-z])?(\d+)\:([A-Ia-i]?[A-Za-z])?(\d+)$/",$token))
 {
+        return $this->_convertRange3d($token);
+    }
+    elseif (isset($this->ptg[$token])) // operators (including parentheses)
 {
+        return pack("C", $this->ptg[$token]);
+    }
+    // commented so argument number can be processed correctly. See toReversePolish().
+    /*elseif (preg_match("/[A-Z0-9\xc0-\xdc\.]+/",$token))
+    {
+        return($this->_convertFunction($token,$this->_func_args));
+    }*/
+    // if it's an argument, ignore the token (the argument remains)
+    elseif ($token == 'arg')
 {
+        return '';
+    }
+    // TODO: use real error codes
+    trigger_error("Unknown token $token", E_USER_ERROR);
+}
+    
+/**
+* Convert a number token to ptgInt or ptgNum
+*
+* @access private
+* @param mixed $num an integer or double for conversion to its ptg value
+*/
+function _convertNumber($num)
 {
+
+    // Integer in the range 0..2**16-1
+
+    if ((preg_match("/^\d+$/",$num)) and ($num <= 65535)) {
+        return(pack("Cv", $this->ptg['ptgInt'], $num));
+    }
 else { // A float
+        if ($this->_byte_order) { // if it's Big Endian
+            $num = strrev($num);
+        }
+        return pack("Cd", $this->ptg['ptgNum'], $num);
+    }
+}
+    
+/**
+* Convert a string token to ptgStr
+*
+* @access private
+* @param string $string A string for conversion to its ptg value
+*/
+function _convertString($string)
 {
+    // chop away beggining and ending quotes
+    $string = substr($string, 1, strlen($string) - 2);
+    return pack("CC", $this->ptg['ptgStr'], strlen($string)).$string;
+}
+
+/**
+* Convert a function to a ptgFunc or ptgFuncVarV depending on the number of
+* args that it takes.
+*
+* @access private
+* @param string  $token    The name of the function for convertion to ptg value.
+* @param integer $num_args The number of arguments the function receives.
+* @return string The packed ptg for the function
+*/
+function _convertFunction($token, $num_args)
 {
+    $args     = $this->_functions[$token][1];
+    $volatile = $this->_functions[$token][3];
+    
+    // Fixed number of args eg. TIME($i,$j,$k).
+    if ($args >= 0) {
+        return pack("Cv", $this->ptg['ptgFuncV'], $this->_functions[$token][0]);
+    }
+    // Variable number of args eg. SUM($i,$j,$k, ..).
+    if ($args == -1) {
+        return pack("CCv", $this->ptg['ptgFuncVarV'], $num_args, $this->_functions[$token][0]);
+    }
+}
+    
+/**
+* Convert an Excel range such as A1:D4 to a ptgRefV.
+*
+* @access private
+* @param string $range An Excel range in the A1:A2 or A1..A2 format.
+*/
+function _convertRange2d($range)
 {
+    $class = 2; // as far as I know, this is magick.
+    
+    // Split the range into 2 cell refs
+    if (preg_match("/^([A-Ia-i]?[A-Za-z])(\d+)\:([A-Ia-i]?[A-Za-z])(\d+)$/",$range)) {
+        list($cell1, $cell2) = explode(':', $range);
+    }
 elseif (preg_match("/^([A-Ia-i]?[A-Za-z])(\d+)\.\.([A-Ia-i]?[A-Za-z])(\d+)$/",$range)) {
+        list($cell1, $cell2) = explode('..', $range);
+    }
 else {
+        // TODO: use real error codes
+        trigger_error("Unknown range separator", E_USER_ERROR);
+    }
+    
+    // Convert the cell references
+    $cell_array1 = $this->_cellToPackedRowcol($cell1);
+    if ($this->isError($cell_array1)) {
+        return $cell_array1;
+    }
+    list($row1, $col1) = $cell_array1;
+    $cell_array2 = $this->_cellToPackedRowcol($cell2);
+    if ($this->isError($cell_array2)) {
+        return $cell_array2;
+    }
+    list($row2, $col2) = $cell_array2;
+    
+    // The ptg value depends on the class of the ptg.
+    if ($class == 0) {
+        $ptgArea = pack("C", $this->ptg['ptgArea']);
+    }
 elseif ($class == 1) {
+        $ptgArea = pack("C", $this->ptg['ptgAreaV']);
+    }
 elseif ($class == 2) {
+        $ptgArea = pack("C", $this->ptg['ptgAreaA']);
+    }
 else {
+        // TODO: use real error codes
+        trigger_error("Unknown class $class", E_USER_ERROR);
+    }
+    return $ptgArea . $row1 . $row2 . $col1. $col2;
+}
+ 
+/**
+* Convert an Excel 3d range such as "Sheet1!A1:D4" or "Sheet1:Sheet2!A1:D4" to
+* a ptgArea3dV.
+*
+* @access private
+* @param string $token An Excel range in the Sheet1!A1:A2 format.
+*/
+function _convertRange3d($token)
 {
+    $class = 2; // as far as I know, this is magick.
+
+    // Split the ref at the ! symbol
+    list($ext_ref, $range) = explode('!', $token);
+
+    // Convert the external reference part
+    $ext_ref = $this->_packExtRef($ext_ref);
+    if ($this->isError($ext_ref)) {
+        return $ext_ref;
+    }
+
+    // Split the range into 2 cell refs
+    list($cell1, $cell2) = explode(':', $range);
+
+    // Convert the cell references
+    if (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\d+)$/", $cell1))
 {
+        $cell_array1 = $this->_cellToPackedRowcol($cell1);
+        if ($this->isError($cell_array1)) {
+            return $cell_array1;
+        }
+	list($row1, $col1) = $cell_array1;
+        $cell_array2 = $this->_cellToPackedRowcol($cell2);
+        if ($this->isError($cell_array2)) {
+	    return $cell_array2;
+        }
+        list($row2, $col2) = $cell_array2;
+    }
 else { // It's a columns range (like 26:27)
+	$cells_array = $this->_rangeToPackedRange($cell1.':'.$cell2);
+	if ($this->isError($cells_array)) {
+    	    return $cells_array;
+        }
+	list($row1, $col1, $row2, $col2) = $cells_array;
+    }
+ 
+    // The ptg value depends on the class of the ptg.
+    if ($class == 0) {
+        $ptgArea = pack("C", $this->ptg['ptgArea3d']);
+    }
 elseif ($class == 1) {
+        $ptgArea = pack("C", $this->ptg['ptgArea3dV']);
+    }
 elseif ($class == 2) {
+        $ptgArea = pack("C", $this->ptg['ptgArea3dA']);
+    }
 else {
+        trigger_error("Unknown class $class", E_USER_ERROR);
+    }
+ 
+    return $ptgArea . $ext_ref . $row1 . $row2 . $col1. $col2;
+}
+
+/**
+* Convert an Excel reference such as A1, $B2, C$3 or $D$4 to a ptgRefV.
+*
+* @access private
+* @param string $cell An Excel cell reference
+* @return string The cell in packed() format with the corresponding ptg
+*/
+function _convertRef2d($cell)
 {
+    $class = 2; // as far as I know, this is magick.
+    
+    // Convert the cell reference
+    $cell_array = $this->_cellToPackedRowcol($cell);
+    if ($this->isError($cell_array)) {
+        return $cell_array;
+    }
+    list($row, $col) = $cell_array;
+
+    // The ptg value depends on the class of the ptg.
+    if ($class == 0) {
+        $ptgRef = pack("C", $this->ptg['ptgRef']);
+    }
 elseif ($class == 1) {
+        $ptgRef = pack("C", $this->ptg['ptgRefV']);
+    }
 elseif ($class == 2) {
+        $ptgRef = pack("C", $this->ptg['ptgRefA']);
+    }
 else {
+        // TODO: use real error codes
+        trigger_error("Unknown class $class",E_USER_ERROR);
+    }
+    return $ptgRef.$row.$col;
+}
+    
+/**
+* Convert an Excel 3d reference such as "Sheet1!A1" or "Sheet1:Sheet2!A1" to a
+* ptgRef3dV.
+*
+* @access private
+* @param string $cell An Excel cell reference
+* @return string The cell in packed() format with the corresponding ptg
+*/
+function _convertRef3d($cell)
 {
+    $class = 2; // as far as I know, this is magick.
+ 
+    // Split the ref at the ! symbol
+    list($ext_ref, $cell) = explode('!', $cell);
+ 
+    // Convert the external reference part
+    $ext_ref = $this->_packExtRef($ext_ref);
+    if ($this->isError($ext_ref)) {
+        return $ext_ref;
+    }
+ 
+    // Convert the cell reference part
+    list($row, $col) = $this->_cellToPackedRowcol($cell);
+ 
+    // The ptg value depends on the class of the ptg.
+    if ($class == 0) {
+        $ptgRef = pack("C", $this->ptg['ptgRef3d']);
+    } elseif ($class == 1) {
+        $ptgRef = pack("C", $this->ptg['ptgRef3dV']);
+    } elseif ($class == 2) {
+        $ptgRef = pack("C", $this->ptg['ptgRef3dA']);
+    }
 else {
+        trigger_error("Unknown class $class", E_USER_ERROR);
+    }
+
+    return $ptgRef . $ext_ref. $row . $col;
+}
+
+/**
+* Convert the sheet name part of an external reference, for example "Sheet1" or
+* "Sheet1:Sheet2", to a packed structure.
+*
+* @access private
+* @param string $ext_ref The name of the external reference
+* @return string The reference index in packed() format
+*/
+function _packExtRef($ext_ref) {
+    $ext_ref = preg_replace("/^'/", '', $ext_ref); // Remove leading  ' if any.
+    $ext_ref = preg_replace("/'$/", '', $ext_ref); // Remove trailing ' if any.
+
+    // Check if there is a sheet range eg., Sheet1:Sheet2.
+    if (preg_match("/:/", $ext_ref))
 {
+        list($sheet_name1, $sheet_name2) = explode(':', $ext_ref);
+
+        $sheet1 = $this->_getSheetIndex($sheet_name1);
+        if ($sheet1 == -1) {
+            trigger_error("Unknown sheet name $sheet_name1 in formula",E_USER_ERROR);
+        }
+        $sheet2 = $this->_getSheetIndex($sheet_name2);
+        if ($sheet2 == -1) {
+            trigger_error("Unknown sheet name $sheet_name2 in formula",E_USER_ERROR);
+        }
+
+        // Reverse max and min sheet numbers if necessary
+        if ($sheet1 > $sheet2) {
+            list($sheet1, $sheet2) = array($sheet2, $sheet1);
+        }
+    }
 else { // Single sheet name only.
+        $sheet1 = $this->_getSheetIndex($ext_ref);
+        if ($sheet1 == -1) {
+            trigger_error("Unknown sheet name $ext_ref in formula",E_USER_ERROR);
+        }
+        $sheet2 = $sheet1;
+    }
+ 
+    // References are stored relative to 0xFFFF.
+    $offset = -1 - $sheet1;
+
+    return pack('vdvv', $offset, 0x00, $sheet1, $sheet2);
+}
+
+/**
+* Look up the index that corresponds to an external sheet name. The hash of
+* sheet names is updated by the addworksheet() method of the 
+* Spreadsheet_Excel_Writer_Workbook class.
+*
+* @access private
+* @return integer
+*/
+function _getSheetIndex($sheet_name)
 {
+    if (!isset($this->_ext_sheets[$sheet_name])) {
+        return -1;
+    }
 else {
+        return $this->_ext_sheets[$sheet_name];
+    }
+}
+
+/**
+* This method is used to update the array of sheet names. It is
+* called by the addWorksheet() method of the Spreadsheet_Excel_Writer_Workbook class.
+*
+* @access private
+* @param string  $name  The name of the worksheet being added
+* @param integer $index The index of the worksheet being added
+*/
+function setExtSheet($name, $index)
 {
+    $this->_ext_sheets[$name] = $index;
+}
+
+/**
+* pack() row and column into the required 3 byte format.
+*
+* @access private
+* @param string $cell The Excel cell reference to be packed
+* @return array Array containing the row and column in packed() format
+*/
+function _cellToPackedRowcol($cell)
 {
+    $cell = strtoupper($cell);
+    list($row, $col, $row_rel, $col_rel) = $this->_cellToRowcol($cell);
+    if ($col >= 256) {
+        trigger_error("Column in: $cell greater than 255", E_USER_ERROR);
+    }
+    if ($row >= 16384) {
+        trigger_error("Row in: $cell greater than 16384 ", E_USER_ERROR);
+    }
+
+    // Set the high bits to indicate if row or col are relative.
+    $row    |= $col_rel << 14;
+    $row    |= $row_rel << 15;
+
+    $row     = pack('v', $row);
+    $col     = pack('C', $col);
+
+    return array($row, $col);
+}
+    
+/**
+* pack() row range into the required 3 byte format.
+* Just using maximun col/rows, which is probably not the correct solution
+*
+* @access private
+* @param string $range The Excel range to be packed
+* @return array Array containing (row1,col1,row2,col2) in packed() format
+*/
+function _rangeToPackedRange($range)
 {
+    preg_match('/(\$)?(\d+)\:(\$)?(\d+)/', $range, $match);
+    // return absolute rows if there is a $ in the ref
+    $row1_rel = empty($match[1]) ? 1 : 0;
+    $row1     = $match[2];
+    $row2_rel = empty($match[3]) ? 1 : 0;
+    $row2     = $match[4];
+    // Convert 1-index to zero-index
+    $row1--;
+    $row2--;
+    // Trick poor inocent Excel
+    $col1 = 0;
+    $col2 = 16383; // maximum possible value for Excel 5 (change this!!!)
+
+    //list($row, $col, $row_rel, $col_rel) = $this->_cellToRowcol($cell);
+    if (($row1 >= 16384) or ($row2 >= 16384)) {
+        trigger_error("Row in: $range greater than 16384 ",E_USER_ERROR);
+    }
+
+    // Set the high bits to indicate if rows are relative.
+    $row1    |= $row1_rel << 14;
+    $row2    |= $row2_rel << 15;
+
+    $row1     = pack('v', $row1);
+    $row2     = pack('v', $row2);
+    $col1     = pack('C', $col1);
+    $col2     = pack('C', $col2);
+
+    return array($row1, $col1, $row2, $col2);
+}
+
+/**
+* Convert an Excel cell reference such as A1 or $B2 or C$3 or $D$4 to a zero
+* indexed row and column number. Also returns two (0,1) values to indicate
+* whether the row or column are relative references.
+*
+* @access private
+* @param string $cell The Excel cell reference in A1 format.
+* @return array
+*/
+function _cellToRowcol($cell)
 {
+    preg_match('/(\$)?([A-I]?[A-Z])(\$)?(\d+)/',$cell,$match);
+    // return absolute column if there is a $ in the ref
+    $col_rel = empty($match[1]) ? 1 : 0;
+    $col_ref = $match[2];
+    $row_rel = empty($match[3]) ? 1 : 0;
+    $row     = $match[4];
+    
+    // Convert base26 column string to a number.
+    $expn   = strlen($col_ref) - 1;
+    $col    = 0;
+    for ($i=0; $i < strlen($col_ref); $i++)
 {
+        $col += (ord($col_ref{$i}) - ord('A') + 1) * pow(26, $expn);
+        $expn--;
+    }
+    
+    // Convert 1-index to zero-index
+    $row--;
+    $col--;
+    
+    return array($row, $col, $row_rel, $col_rel);
+}
+    
+/**
+* Advance to the next valid token.
+*
+* @access private
+*/
+function _advance()
 {
+    $i = $this->_current_char;
+    // eat up white spaces
+    if ($i < strlen($this->_formula))
 {
+        while ($this->_formula{$i} == " ") {
+            $i++;
+        }
+        if ($i < strlen($this->_formula) - 1) {
+            $this->_lookahead = $this->_formula{$i+1};
+        }
+        $token = "";
+    }
+    while ($i < strlen($this->_formula))
 {
+        $token .= $this->_formula{$i};
+        if ($i < strlen($this->_formula) - 1) {
+            $this->_lookahead = $this->_formula{$i+1};
+        }
 else {
+            $this->_lookahead = '';
+        }
+        if ($this->_match($token) != '')
 {
+            //if ($i < strlen($this->_formula) - 1) {
+            //    $this->_lookahead = $this->_formula{$i+1};
+            //}
+            $this->_current_char = $i + 1;
+            $this->_current_token = $token;
+            return 1;
+        }
+        if ($i < strlen($this->_formula) - 2) {
+            $this->_lookahead = $this->_formula{$i+2};
+        }
 else {
+        // if we run out of characters _lookahead becomes empty
+            $this->_lookahead = '';
+        }
+        $i++;
+    }
+    //die("Lexical error ".$this->_current_char);
+}
+    
+/**
+* Checks if it's a valid token.
+*
+* @access private
+* @param mixed $token The token to check.
+* @return mixed       The checked token or false on failure
+*/
+function _match($token)
 {
+    switch($token)
 {
+        case SPREADSHEET_EXCEL_WRITER_ADD:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_SUB:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_MUL:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_DIV:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_OPEN:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_CLOSE:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_SCOLON:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_COMA:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_GT:
+            if ($this->_lookahead == '=') { // it's a GE token
+                break;
+            }
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_LT:
+            // it's a LE or a NE token
+            if (($this->_lookahead == '=') or ($this->_lookahead == '>')) {
+                break;
+            }
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_GE:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_LE:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_EQ:
+            return($token);
+            break;
+        case SPREADSHEET_EXCEL_WRITER_NE:
+            return($token);
+            break;
+        default:
+            // if it's a reference
+            if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$token) and
+               !preg_match("/[0-9]/",$this->_lookahead) and 
+               ($this->_lookahead != ':') and ($this->_lookahead != '.') and
+               ($this->_lookahead != '!')) {
+                return $token;
+            }
+            // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
+            elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-Ia-i]?[A-Za-z][0-9]+$/",$token) and
+                   !preg_match("/[0-9]/",$this->_lookahead) and
+                   ($this->_lookahead != ':') and ($this->_lookahead != '.')) {
+                return $token;
+            }
+            // if it's a range (A1:A2)
+            elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and 
+                   !preg_match("/[0-9]/",$this->_lookahead)) {
+                return $token;
+            }
+            // if it's a range (A1..A2)
+            elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$token) and 
+                   !preg_match("/[0-9]/",$this->_lookahead)) {
+                return $token;
+            }
+            // If it's an external range like Sheet1:Sheet2!A1:B2
+            elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$token) and
+                   !preg_match("/[0-9]/",$this->_lookahead)) {
+                return $token;
+            }
+	    // If it's an external range like 'Sheet1:Sheet2'!A1:B2
+            elseif (preg_match("/^'[A-Za-z0-9_ ]+(\:[A-Za-z0-9_ ]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$token) and
+                   !preg_match("/[0-9]/",$this->_lookahead)) {
+                return $token;
+            }
+            // If it's a number (check that it's not a sheet name or range)
+            elseif (is_numeric($token) and 
+                    (!is_numeric($token.$this->_lookahead) or ($this->_lookahead == '')) and
+                    ($this->_lookahead != '!') and ($this->_lookahead != ':')) {
+                return $token;
+            }
+            // If it's a string (of maximum 255 characters)
+            elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token)) {
+                return $token;
+            }
+            // if it's a function call
+            elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "(")) {
+                return $token;
+            }
+            return '';
+    }
+}
+    
+/**
+* The parsing method. It parses a formula.
+*
+* @access public
+* @param string $formula The formula to parse, without the initial equal sign (=).
+*/
+function parse($formula) {
+    $this->_current_char = 0;
+    $this->_formula      = $formula;
+    $this->_lookahead    = $formula{1};
+    $this->_advance();
+    $this->_parse_tree   = $this->_condition();
+    if ($this->isError($this->_parse_tree)) {
+        return $this->_parse_tree;
+    }
+}
+    
+/**
+* It parses a condition. It assumes the following rule:
+* Cond -> Expr [(">" | "<") Expr]
+*
+* @access private
+* @return mixed The parsed ptg'd tree
+*/
+function _condition()
 {
+    $result = $this->_expression();
+    if ($this->isError($result)) {
+        return $result;
+    }
+    if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_LT)
 {
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgLT', $result, $result2);
+    }
 elseif ($this->_current_token == SPREADSHEET_EXCEL_WRITER_GT) 
{
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgGT', $result, $result2);
+    }
 elseif ($this->_current_token == SPREADSHEET_EXCEL_WRITER_LE) 
{
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgLE', $result, $result2);
+    }
 elseif ($this->_current_token == SPREADSHEET_EXCEL_WRITER_GE) 
{
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgGE', $result, $result2);
+    }
 elseif ($this->_current_token == SPREADSHEET_EXCEL_WRITER_EQ) 
{
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgEQ', $result, $result2);
+    }
 elseif ($this->_current_token == SPREADSHEET_EXCEL_WRITER_NE) 
{
+        $this->_advance();
+        $result2 = $this->_expression();
+        if ($this->isError($result2)) {
+            return $result2;
+        }
+        $result = $this->_createTree('ptgNE', $result, $result2);
+    }
+    return $result;
+}
+
+/**
+* It parses a expression. It assumes the following rule:
+* Expr -> Term [("+" | "-") Term]
+*
+* @access private
+* @return mixed The parsed ptg'd tree
+*/
+function _expression()
 {
+    // If it's a string return a string node
+    if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token))
 {
+        $result = $this->_createTree($this->_current_token, '', '');
+        $this->_advance();
+        return $result;
+    }
+    $result = $this->_term();
+    if ($this->isError($result)) {
+        return $result;
+    }
+    while (($this->_current_token == SPREADSHEET_EXCEL_WRITER_ADD) or 
+           ($this->_current_token == SPREADSHEET_EXCEL_WRITER_SUB))
 {
+        if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_ADD)
 
{
+            $this->_advance();
+            $result2 = $this->_term();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('ptgAdd', $result, $result2);
+        }
 else 
{
+            $this->_advance();
+            $result2 = $this->_term();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('ptgSub', $result, $result2);
+        }
+    }
+    return $result;
+}
+    
+/**
+* This function just introduces a ptgParen element in the tree, so that Excel
+* doesn't get confused when working with a parenthesized formula afterwards.
+*
+* @access private
+* @see _fact()
+* @return mixed The parsed ptg'd tree
+*/
+function _parenthesizedExpression()
 {
+    $result = $this->_createTree('ptgParen', $this->_expression(), '');
+    return $result;
+}
+    
+/**
+* It parses a term. It assumes the following rule:
+* Term -> Fact [("*" | "/") Fact]
+*
+* @access private
+* @return mixed The parsed ptg'd tree
+*/
+function _term()
 {
+    $result = $this->_fact();
+    if ($this->isError($result)) {
+        return $result;
+    }
+    while (($this->_current_token == SPREADSHEET_EXCEL_WRITER_MUL) or 
+           ($this->_current_token == SPREADSHEET_EXCEL_WRITER_DIV)) {
+        if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_MUL)
 
{
+            $this->_advance();
+            $result2 = $this->_fact();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('ptgMul', $result, $result2);
+        }
 else 
{
+            $this->_advance();
+            $result2 = $this->_fact();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('ptgDiv', $result, $result2);
+        }
+    }
+    return $result;
+}
+    
+/**
+* It parses a factor. It assumes the following rule:
+* Fact -> ( Expr )
+*       | CellRef
+*       | CellRange
+*       | Number
+*       | Function
+*
+* @access private
+* @return mixed The parsed ptg'd tree
+*/
+function _fact()
 {
+    if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_OPEN)
 {
+        $this->_advance();         // eat the "("
+        $result = $this->_parenthesizedExpression();
+        if ($this->_current_token != SPREADSHEET_EXCEL_WRITER_CLOSE) {
+            trigger_error("')' token expected.",E_USER_ERROR);
+        }
+        $this->_advance();         // eat the ")"
+        return $result;
+    }
 if (preg_match('/^\$?[A-Ia-i]?[A-Za-z]\$?[0-9]+$/',$this->_current_token))
 {
+    // if it's a reference
+        $result = $this->_createTree($this->_current_token, '', '');
+        $this->_advance();
+        return $result;
+    }
 elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\![A-Ia-i]?[A-Za-z][0-9]+$/",$this->_current_token))
 {
+    // If it's an external reference (Sheet1!A1 or Sheet1:Sheet2!A1)
+        $result = $this->_createTree($this->_current_token, '', '');
+        $this->_advance();
+        return $result;
+    }
 elseif (preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+:(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$this->_current_token) or 
+              preg_match("/^(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+\.\.(\$)?[A-Ia-i]?[A-Za-z](\$)?[0-9]+$/",$this->_current_token))
 {
+    // if it's a range
+        $result = $this->_current_token;
+        $this->_advance();
+        return $result;
+    }
 elseif (preg_match("/^[A-Za-z0-9_]+(\:[A-Za-z0-9_]+)?\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$this->_current_token))
 {
+    // If it's an external range (Sheet1!A1:B2)
+        $result = $this->_current_token;
+        $this->_advance();
+        return $result;
+    }
 elseif (preg_match("/^'[A-Za-z0-9_ ]+(\:[A-Za-z0-9_ ]+)?'\!([A-Ia-i]?[A-Za-z])?[0-9]+:([A-Ia-i]?[A-Za-z])?[0-9]+$/",$this->_current_token))
 {
+    // If it's an external range ('Sheet1'!A1:B2)
+        $result = $this->_current_token;
+        $this->_advance();
+        return $result;
+    }
 elseif (is_numeric($this->_current_token))
 {
+        $result = $this->_createTree($this->_current_token, '', '');
+        $this->_advance();
+        return $result;
+    }
 elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$this->_current_token))
 {
+    // if it's a function call
+        $result = $this->_func();
+        return $result;
+    }
+    trigger_error("Sintactic error: ".$this->_current_token.", lookahead: ".
+                          $this->_lookahead.", current char: ".$this->_current_char, E_USER_ERROR);
+}
+    
+/**
+* It parses a function call. It assumes the following rule:
+* Func -> ( Expr [,Expr]* )
+*
+* @access private
+*/
+function _func()
 {
+    $num_args = 0; // number of arguments received
+    $function = $this->_current_token;
+    $this->_advance();
+    $this->_advance();         // eat the "("
+    while ($this->_current_token != ')')
 {
+        if ($num_args > 0)
 {
+            if ($this->_current_token == SPREADSHEET_EXCEL_WRITER_COMA ||
+		$this->_current_token == SPREADSHEET_EXCEL_WRITER_SCOLON) {
+                $this->_advance();  // eat the ","
+            }
 else {
+                trigger_error("Sintactic error: coma expected in ".
+                                  "function $function, {$num_args}º arg", E_USER_ERROR);
+            }
+            $result2 = $this->_condition();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('arg', $result, $result2);
+        }
 else { // first argument
+            $result2 = $this->_condition();
+            if ($this->isError($result2)) {
+                return $result2;
+            }
+            $result = $this->_createTree('arg', '', $result2);
+        }
+        $num_args++;
+    }
+    $args = $this->_functions[$function][1];
+    // If fixed number of args eg. TIME($i,$j,$k). Check that the number of args is valid.
+    if (($args >= 0) and ($args != $num_args)) {
+        trigger_error("Incorrect number of arguments in function $function() ",E_USER_ERROR);
+    }
+
+    $result = $this->_createTree($function, $result, $num_args);
+    $this->_advance();         // eat the ")"
+    return $result;
+}
+    
+/**
+* Creates a tree. In fact an array which may have one or two arrays (sub-trees)
+* as elements.
+*
+* @access private
+* @param mixed $value The value of this node.
+* @param mixed $left  The left array (sub-tree) or a final node.
+* @param mixed $right The right array (sub-tree) or a final node.
+*/
+function _createTree($value, $left, $right)
 {
+    return(array('value' => $value, 'left' => $left, 'right' => $right));
+}
+    
+/**
+* Builds a string containing the tree in reverse polish notation (What you 
+* would use in a HP calculator stack).
+* The following tree:
+* 
+*    +
+*   / \
+*  2   3
+*
+* produces: "23+"
+*
+* The following tree:
+*
+*    +
+*   / \
+*  3   *
+*     / \
+*    6   A1
+*
+* produces: "36A1*+"
+*
+* In fact all operands, functions, references, etc... are written as ptg's
+*
+* @access public
+* @param array $tree The optional tree to convert.
+* @return string The tree in reverse polish notation
+*/
+function toReversePolish($tree = array())
 {
+    $polish = ""; // the string we are going to return
+    if (empty($tree)) { // If it's the first call use _parse_tree
+        $tree = $this->_parse_tree;
+    }
+    if (is_array($tree['left']))
 {
+        $converted_tree = $this->toReversePolish($tree['left']);
+        if ($this->isError($converted_tree)) {
+            return $converted_tree;
+        }
+        $polish .= $converted_tree;
+    }
 elseif ($tree['left'] != '') { // It's a final node
+        $converted_tree = $this->_convert($tree['left']);
+        if ($this->isError($converted_tree)) {
+            return $converted_tree;
+        }
+        $polish .= $converted_tree;
+    }
+    if (is_array($tree['right']))
 {
+        $converted_tree = $this->toReversePolish($tree['right']);
+        if ($this->isError($converted_tree)) {
+            return $converted_tree;
+        }
+        $polish .= $converted_tree;
+    }
 elseif ($tree['right'] != '') { // It's a final node
+        $converted_tree = $this->_convert($tree['right']);
+        if ($this->isError($converted_tree)) {
+            return $converted_tree;
+        }
+        $polish .= $converted_tree;
+    }
+    // if it's a function convert it here (so we can set it's arguments)
+    if (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/",$tree['value']) and
+        !preg_match('/^([A-Ia-i]?[A-Za-z])(\d+)$/',$tree['value']) and
+        !preg_match("/^[A-Ia-i]?[A-Za-z](\d+)\.\.[A-Ia-i]?[A-Za-z](\d+)$/",$tree['value']) and
+        !is_numeric($tree['value']) and
+        !isset($this->ptg[$tree['value']]))
 {
+        // left subtree for a function is always an array.
+        if ($tree['left'] != '') {
+            $left_tree = $this->toReversePolish($tree['left']);
+        }
 else {
+            $left_tree = '';
+        }
+        if ($this->isError($left_tree)) {
+            return $left_tree;
+        }
+        // add it's left subtree and return.
+        return $left_tree.$this->_convertFunction($tree['value'], $tree['right']);
+    }
 else
 {
+        $converted_tree = $this->_convert($tree['value']);
+        if ($this->isError($converted_tree)) {
+            return $converted_tree;
+        }
+    }
+    $polish .= $converted_tree;
+    return $polish;
+}
+
+}
+
+
+?>
diff --git a/gosa-core/include/utils/excel/class.writeexcel_olewriter.inc.php b/gosa-core/include/utils/excel/class.writeexcel_olewriter.inc.php
new file mode 100644
index 0000000..6e63c59
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_olewriter.inc.php
@@ -0,0 +1,353 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+class writeexcel_olewriter {
+    var $_OLEfilename;
+    var $_OLEtmpfilename; /* ABR */
+    var $_filehandle;
+    var $_fileclosed;
+    var $_internal_fh;
+    var $_biff_only;
+    var $_size_allowed;
+    var $_biffsize;
+    var $_booksize;
+    var $_big_blocks;
+    var $_list_blocks;
+    var $_root_start;
+    var $_block_count;
+
+    /*
+     * Constructor
+     */
+    function writeexcel_olewriter($filename) {
+
+        $this->_OLEfilename  = $filename;
+        $this->_filehandle   = false;
+        $this->_fileclosed   = 0;
+        $this->_internal_fh  = 0;
+        $this->_biff_only    = 0;
+        $this->_size_allowed = 0;
+        $this->_biffsize     = 0;
+        $this->_booksize     = 0;
+        $this->_big_blocks   = 0;
+        $this->_list_blocks  = 0;
+        $this->_root_start   = 0;
+        $this->_block_count  = 4;
+
+        $this->_initialize();
+    }
+
+    /*
+     * Check for a valid filename and store the filehandle.
+     */
+    function _initialize() {
+        $OLEfile = $this->_OLEfilename;
+
+        /* Check for a filename. Workbook.pm will catch this first. */
+        if ($OLEfile == '') {
+            trigger_error("Filename required", E_USER_ERROR);
+        }
+
+        /*
+         * If the filename is a resource it is assumed that it is a valid
+         * filehandle, if not we create a filehandle.
+         */
+        if (is_resource($OLEfile)) {
+            $fh = $OLEfile;
+        } else {
+            // Create a new file, open for writing
+            $fh = fopen($OLEfile, "wb");
+            // The workbook class also checks this but something may have
+            // happened since then.
+            if (!$fh) {
+                trigger_error("Cannot open $OLEfile! It may be in use or ".
+                              "protected.", E_USER_ERROR);
+            }
+
+            $this->_internal_fh = 1;
+        }
+
+        // Store filehandle
+        $this->_filehandle = $fh;
+    }
+
+    /*
+     * Set the size of the data to be written to the OLE stream
+     *
+     * $big_blocks = (109 depot block x (128 -1 marker word)
+     *               - (1 x end words)) = 13842
+     * $maxsize    = $big_blocks * 512 bytes = 7087104
+     */
+    function set_size($size) {
+        $maxsize = 7087104;
+
+        if ($size > $maxsize) {
+            trigger_error("Maximum file size, $maxsize, exceeded. To create ".
+                          "files bigger than this limit please use the ".
+                          "workbookbig class.", E_USER_ERROR);
+            return ($this->_size_allowed = 0);
+        }
+
+        $this->_biffsize = $size;
+
+        // Set the min file size to 4k to avoid having to use small blocks
+        if ($size > 4096) {
+            $this->_booksize = $size;
+        } else {
+            $this->_booksize = 4096;
+        }
+
+        return ($this->_size_allowed = 1);
+    }
+
+    /*
+     * Calculate various sizes needed for the OLE stream
+     */
+    function _calculate_sizes() {
+        $datasize = $this->_booksize;
+
+        if ($datasize % 512 == 0) {
+            $this->_big_blocks = $datasize/512;
+        } else {
+            $this->_big_blocks = floor($datasize/512)+1;
+        }
+        // There are 127 list blocks and 1 marker blocks for each big block
+        // depot + 1 end of chain block
+        $this->_list_blocks = floor(($this->_big_blocks)/127)+1;
+        $this->_root_start  = $this->_big_blocks;
+
+        //print $this->_biffsize.    "\n";
+        //print $this->_big_blocks.  "\n";
+        //print $this->_list_blocks. "\n";
+    }
+
+    /*
+     * Write root entry, big block list and close the filehandle.
+     * This method must be called so that the file contents are
+     * actually written.
+     */
+    function close() {
+
+        if (!$this->_size_allowed) {
+            return;
+        }
+
+        if (!$this->_biff_only) {
+            $this->_write_padding();
+            $this->_write_property_storage();
+            $this->_write_big_block_depot();
+        }
+
+        // Close the filehandle if it was created internally.
+        if ($this->_internal_fh) {
+            fclose($this->_filehandle);
+        }
+/* ABR */
+        if ($this->_OLEtmpfilename != '') {
+            $fh = fopen($this->_OLEtmpfilename, "rb");
+            if ($fh == false) {
+                trigger_error("Cannot read temporary file!", E_USER_ERROR);
+            }
+            fpassthru($fh);
+            fclose($fh);
+            unlink($this->_OLEtmpfilename);
+        };
+
+        $this->_fileclosed = 1;
+    }
+
+    /*
+     * Write BIFF data to OLE file.
+     */
+    function write($data) {
+        fputs($this->_filehandle, $data);
+    }
+
+    /*
+     * Write OLE header block.
+     */
+    function write_header() {
+        if ($this->_biff_only) {
+            return;
+        }
+
+        $this->_calculate_sizes();
+
+        $root_start      = $this->_root_start;
+        $num_lists       = $this->_list_blocks;
+
+        $id              = pack("C8", 0xD0, 0xCF, 0x11, 0xE0,
+                                      0xA1, 0xB1, 0x1A, 0xE1);
+        $unknown1        = pack("VVVV", 0x00, 0x00, 0x00, 0x00);
+        $unknown2        = pack("vv",   0x3E, 0x03);
+        $unknown3        = pack("v",    -2);
+        $unknown4        = pack("v",    0x09);
+        $unknown5        = pack("VVV",  0x06, 0x00, 0x00);
+        $num_bbd_blocks  = pack("V",    $num_lists);
+        $root_startblock = pack("V",    $root_start);
+        $unknown6        = pack("VV",   0x00, 0x1000);
+        $sbd_startblock  = pack("V",    -2);
+        $unknown7        = pack("VVV",  0x00, -2 ,0x00);
+        $unused          = pack("V",    -1);
+
+        fputs($this->_filehandle, $id);
+        fputs($this->_filehandle, $unknown1);
+        fputs($this->_filehandle, $unknown2);
+        fputs($this->_filehandle, $unknown3);
+        fputs($this->_filehandle, $unknown4);
+        fputs($this->_filehandle, $unknown5);
+        fputs($this->_filehandle, $num_bbd_blocks);
+        fputs($this->_filehandle, $root_startblock);
+        fputs($this->_filehandle, $unknown6);
+        fputs($this->_filehandle, $sbd_startblock);
+        fputs($this->_filehandle, $unknown7);
+
+        for ($c=1;$c<=$num_lists;$c++) {
+            $root_start++;
+            fputs($this->_filehandle, pack("V", $root_start));
+        }
+
+        for ($c=$num_lists;$c<=108;$c++) {
+            fputs($this->_filehandle, $unused);
+        }
+    }
+
+    /*
+     * Write big block depot.
+     */
+    function _write_big_block_depot() {
+        $num_blocks   = $this->_big_blocks;
+        $num_lists    = $this->_list_blocks;
+        $total_blocks = $num_lists * 128;
+        $used_blocks  = $num_blocks + $num_lists + 2;
+
+        $marker       = pack("V", -3);
+        $end_of_chain = pack("V", -2);
+        $unused       = pack("V", -1);
+
+        for ($i=1;$i<=($num_blocks-1);$i++) {
+            fputs($this->_filehandle, pack("V", $i));
+        }
+
+        fputs($this->_filehandle, $end_of_chain);
+        fputs($this->_filehandle, $end_of_chain);
+
+        for ($c=1;$c<=$num_lists;$c++) {
+            fputs($this->_filehandle, $marker);
+        }
+
+        for ($c=$used_blocks;$c<=$total_blocks;$c++) {
+            fputs($this->_filehandle, $unused);
+        }
+    }
+
+    /*
+     * Write property storage. TODO: add summary sheets
+     */
+    function _write_property_storage() {
+        $rootsize = -2;
+        $booksize = $this->_booksize;
+
+        //                name          type  dir start  size
+        $this->_write_pps('Root Entry', 0x05,   1,   -2, 0x00);
+        $this->_write_pps('Book',       0x02,  -1, 0x00, $booksize);
+        $this->_write_pps('',           0x00,  -1, 0x00, 0x0000);
+        $this->_write_pps('',           0x00,  -1, 0x00, 0x0000);
+    }
+
+    /*
+     * Write property sheet in property storage
+     */
+    function _write_pps($name, $type, $dir, $start, $size) {
+        $names           = array();
+        $length          = 0;
+
+        if ($name != '') {
+            $name   = $name . "\0";
+            // Simulate a Unicode string
+            $chars=preg_split("''", $name, -1, PREG_SPLIT_NO_EMPTY);
+            foreach ($chars as $char) {
+                array_push($names, ord($char));
+            }
+            $length = strlen($name) * 2;
+        }
+
+        $rawname         = call_user_func_array('pack', array_merge(array("v*"), $names));
+        $zero            = pack("C",  0);
+
+        $pps_sizeofname  = pack("v",  $length);   //0x40
+        $pps_type        = pack("v",  $type);     //0x42
+        $pps_prev        = pack("V",  -1);        //0x44
+        $pps_next        = pack("V",  -1);        //0x48
+        $pps_dir         = pack("V",  $dir);      //0x4c
+
+        $unknown1        = pack("V",  0);
+
+        $pps_ts1s        = pack("V",  0);         //0x64
+        $pps_ts1d        = pack("V",  0);         //0x68
+        $pps_ts2s        = pack("V",  0);         //0x6c
+        $pps_ts2d        = pack("V",  0);         //0x70
+        $pps_sb          = pack("V",  $start);    //0x74
+        $pps_size        = pack("V",  $size);     //0x78
+
+        fputs($this->_filehandle, $rawname);
+        fputs($this->_filehandle, str_repeat($zero, (64-$length)));
+        fputs($this->_filehandle, $pps_sizeofname);
+        fputs($this->_filehandle, $pps_type);
+        fputs($this->_filehandle, $pps_prev);
+        fputs($this->_filehandle, $pps_next);
+        fputs($this->_filehandle, $pps_dir);
+        fputs($this->_filehandle, str_repeat($unknown1, 5));
+        fputs($this->_filehandle, $pps_ts1s);
+        fputs($this->_filehandle, $pps_ts1d);
+        fputs($this->_filehandle, $pps_ts2d);
+        fputs($this->_filehandle, $pps_ts2d);
+        fputs($this->_filehandle, $pps_sb);
+        fputs($this->_filehandle, $pps_size);
+        fputs($this->_filehandle, $unknown1);
+    }
+
+    /*
+     * Pad the end of the file
+     */
+    function _write_padding() {
+        $biffsize = $this->_biffsize;
+
+        if ($biffsize < 4096) {
+            $min_size = 4096;
+        } else {
+            $min_size = 512;
+        }
+
+        if ($biffsize % $min_size != 0) {
+            $padding  = $min_size - ($biffsize % $min_size);
+            fputs($this->_filehandle, str_repeat("\0", $padding));
+        }
+    }
+
+}
+
+?>
diff --git a/gosa-core/include/utils/excel/class.writeexcel_workbook.inc.php b/gosa-core/include/utils/excel/class.writeexcel_workbook.inc.php
new file mode 100644
index 0000000..634f936
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_workbook.inc.php
@@ -0,0 +1,1109 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+require_once "class.writeexcel_biffwriter.inc.php";
+require_once "class.writeexcel_format.inc.php";
+require_once "class.writeexcel_formula.inc.php";
+require_once "class.writeexcel_olewriter.inc.php";
+
+class writeexcel_workbook extends writeexcel_biffwriter {
+
+    var $_filename;
+    var $_tmpfilename;
+    var $_parser;
+    var $_tempdir;
+    var $_1904;
+    var $_activesheet;
+    var $_firstsheet;
+    var $_selected;
+    var $_xf_index;
+    var $_fileclosed;
+    var $_biffsize;
+    var $_sheetname;
+    var $_tmp_format;
+    var $_url_format;
+    var $_worksheets;
+    var $_sheetnames;
+    var $_formats;
+    var $_palette;
+
+###############################################################################
+#
+# new()
+#
+# Constructor. Creates a new Workbook object from a BIFFwriter object.
+#
+function writeexcel_workbook($filename) {
+
+    $this->writeexcel_biffwriter();
+
+    $tmp_format  = new writeexcel_format();
+    $byte_order  = $this->_byte_order;
+    $parser      = new writeexcel_formula($byte_order);
+
+    $this->_filename          = $filename;
+    $this->_parser            = $parser;
+//?    $this->_tempdir           = undef;
+    $this->_1904              = 0;
+    $this->_activesheet       = 0;
+    $this->_firstsheet        = 0;
+    $this->_selected          = 0;
+    $this->_xf_index          = 16; # 15 style XF's and 1 cell XF.
+    $this->_fileclosed        = 0;
+    $this->_biffsize          = 0;
+    $this->_sheetname         = "Sheet";
+    $this->_tmp_format        = $tmp_format;
+    $this->_url_format        = false;
+    $this->_worksheets        = array();
+    $this->_sheetnames        = array();
+    $this->_formats           = array();
+    $this->_palette           = array();
+
+    # Add the default format for hyperlinks
+    $this->_url_format = $this->addformat(array('color' => 'blue', 'underline' => 1));
+
+    # Check for a filename
+    if ($this->_filename == '') {
+//todo: print error
+        return;
+    }
+
+    # Try to open the named file and see if it throws any errors.
+    # If the filename is a reference it is assumed that it is a valid
+    # filehandle and ignore
+    #
+//todo
+
+    # Set colour palette.
+    $this->set_palette_xl97();
+}
+
+###############################################################################
+#
+# close()
+#
+# Calls finalization methods and explicitly close the OLEwriter file
+# handle.
+#
+function close() {
+    # Prevent close() from being called twice.
+    if ($this->_fileclosed) {
+        return;
+    }
+
+    $this->_store_workbook();
+    $this->_fileclosed = 1;
+}
+
+//PHPport: method DESTROY deleted
+
+###############################################################################
+#
+# sheets()
+#
+# An accessor for the _worksheets[] array
+#
+# Returns: a list of the worksheet objects in a workbook
+#
+function sheets() {
+    return $this->_worksheets;
+}
+
+//PHPport: method worksheets deleted:
+# This method is now deprecated. Use the sheets() method instead.
+
+###############################################################################
+#
+# addworksheet($name)
+#
+# Add a new worksheet to the Excel workbook.
+# TODO: Add accessor for $self->{_sheetname} for international Excel versions.
+#
+# Returns: reference to a worksheet object
+#
+function addworksheet($name="") {
+
+    # Check that sheetname is <= 31 chars (Excel limit).
+    if (strlen($name) > 31) {
+        trigger_error("Sheetname $name must be <= 31 chars", E_USER_ERROR);
+    }
+
+    $index     = sizeof($this->_worksheets);
+    $sheetname = $this->_sheetname;
+
+    if ($name == "") {
+        $name = $sheetname . ($index+1);
+    }
+
+    # Check that the worksheet name doesn't already exist: a fatal Excel error.
+    foreach ($this->_worksheets as $tmp) {
+        if ($name == $tmp->get_name()) {
+            trigger_error("Worksheet '$name' already exists", E_USER_ERROR);
+        }
+    }
+
+    $worksheet = new writeexcel_worksheet($name, $index, $this->_activesheet,
+                                          $this->_firstsheet,
+                                          $this->_url_format, $this->_parser,
+                                          $this->_tempdir);
+
+    $this->_worksheets[$index] = $worksheet;    # Store ref for iterator
+    $this->_sheetnames[$index] = $name;         # Store EXTERNSHEET names
+    $this->_parser->set_ext_sheet($name, $index); # Store names in Formula.pm
+    return $worksheet;
+}
+
+###############################################################################
+#
+# addformat(%properties)
+#
+# Add a new format to the Excel workbook. This adds an XF record and
+# a FONT record. Also, pass any properties to the Format::new().
+#
+function addformat($para=false) {
+    if($para===false) {
+        $format = new writeexcel_format($this->_xf_index);
+    } else {
+        $format = new writeexcel_format($this->_xf_index, $para);
+    }
+
+    $this->_xf_index += 1;
+    # Store format reference
+    $this->_formats[]=$format;
+
+    return $format;
+}
+
+###############################################################################
+#
+# set_1904()
+#
+# Set the date system: 0 = 1900 (the default), 1 = 1904
+#
+function set_1904($_1904) {
+    $this->_1904 = $_1904;
+}
+
+###############################################################################
+#
+# get_1904()
+#
+# Return the date system: 0 = 1900, 1 = 1904
+#
+function get_1904() {
+    return $this->_1904;
+}
+
+###############################################################################
+#
+# set_custom_color()
+#
+# Change the RGB components of the elements in the colour palette.
+#
+function set_custom_color($index, $red, $green, $blue) {
+// todo
+/*
+    # Match a HTML #xxyyzz style parameter
+    if (defined $_[1] and $_[1] =~ /^#(\w\w)(\w\w)(\w\w)/ ) {
+        @_ = ($_[0], hex $1, hex $2, hex $3);
+    }
+*/
+
+    $aref    = $this->_palette;
+
+    # Check that the colour index is the right range
+    if ($index < 8 or $index > 64) {
+//todo        carp "Color index $index outside range: 8 <= index <= 64";
+        return;
+    }
+
+    # Check that the colour components are in the right range
+    if ( ($red   < 0 || $red   > 255) ||
+         ($green < 0 || $green > 255) ||
+         ($blue  < 0 || $blue  > 255) )
+    {
+//todo        carp "Color component outside range: 0 <= color <= 255";
+        return;
+    }
+
+    $index -=8; # Adjust colour index (wingless dragonfly)
+
+    # Set the RGB value
+    $aref[$index] = array($red, $green, $blue, 0);
+
+    return $index +8;
+}
+
+###############################################################################
+#
+# set_palette_xl97()
+#
+# Sets the colour palette to the Excel 97+ default.
+#
+function set_palette_xl97() {
+    $this->_palette = array(
+                            array(0x00, 0x00, 0x00, 0x00),   # 8
+                            array(0xff, 0xff, 0xff, 0x00),   # 9
+                            array(0xff, 0x00, 0x00, 0x00),   # 10
+                            array(0x00, 0xff, 0x00, 0x00),   # 11
+                            array(0x00, 0x00, 0xff, 0x00),   # 12
+                            array(0xff, 0xff, 0x00, 0x00),   # 13
+                            array(0xff, 0x00, 0xff, 0x00),   # 14
+                            array(0x00, 0xff, 0xff, 0x00),   # 15
+                            array(0x80, 0x00, 0x00, 0x00),   # 16
+                            array(0x00, 0x80, 0x00, 0x00),   # 17
+                            array(0x00, 0x00, 0x80, 0x00),   # 18
+                            array(0x80, 0x80, 0x00, 0x00),   # 19
+                            array(0x80, 0x00, 0x80, 0x00),   # 20
+                            array(0x00, 0x80, 0x80, 0x00),   # 21
+                            array(0xc0, 0xc0, 0xc0, 0x00),   # 22
+                            array(0x80, 0x80, 0x80, 0x00),   # 23
+                            array(0x99, 0x99, 0xff, 0x00),   # 24
+                            array(0x99, 0x33, 0x66, 0x00),   # 25
+                            array(0xff, 0xff, 0xcc, 0x00),   # 26
+                            array(0xcc, 0xff, 0xff, 0x00),   # 27
+                            array(0x66, 0x00, 0x66, 0x00),   # 28
+                            array(0xff, 0x80, 0x80, 0x00),   # 29
+                            array(0x00, 0x66, 0xcc, 0x00),   # 30
+                            array(0xcc, 0xcc, 0xff, 0x00),   # 31
+                            array(0x00, 0x00, 0x80, 0x00),   # 32
+                            array(0xff, 0x00, 0xff, 0x00),   # 33
+                            array(0xff, 0xff, 0x00, 0x00),   # 34
+                            array(0x00, 0xff, 0xff, 0x00),   # 35
+                            array(0x80, 0x00, 0x80, 0x00),   # 36
+                            array(0x80, 0x00, 0x00, 0x00),   # 37
+                            array(0x00, 0x80, 0x80, 0x00),   # 38
+                            array(0x00, 0x00, 0xff, 0x00),   # 39
+                            array(0x00, 0xcc, 0xff, 0x00),   # 40
+                            array(0xcc, 0xff, 0xff, 0x00),   # 41
+                            array(0xcc, 0xff, 0xcc, 0x00),   # 42
+                            array(0xff, 0xff, 0x99, 0x00),   # 43
+                            array(0x99, 0xcc, 0xff, 0x00),   # 44
+                            array(0xff, 0x99, 0xcc, 0x00),   # 45
+                            array(0xcc, 0x99, 0xff, 0x00),   # 46
+                            array(0xff, 0xcc, 0x99, 0x00),   # 47
+                            array(0x33, 0x66, 0xff, 0x00),   # 48
+                            array(0x33, 0xcc, 0xcc, 0x00),   # 49
+                            array(0x99, 0xcc, 0x00, 0x00),   # 50
+                            array(0xff, 0xcc, 0x00, 0x00),   # 51
+                            array(0xff, 0x99, 0x00, 0x00),   # 52
+                            array(0xff, 0x66, 0x00, 0x00),   # 53
+                            array(0x66, 0x66, 0x99, 0x00),   # 54
+                            array(0x96, 0x96, 0x96, 0x00),   # 55
+                            array(0x00, 0x33, 0x66, 0x00),   # 56
+                            array(0x33, 0x99, 0x66, 0x00),   # 57
+                            array(0x00, 0x33, 0x00, 0x00),   # 58
+                            array(0x33, 0x33, 0x00, 0x00),   # 59
+                            array(0x99, 0x33, 0x00, 0x00),   # 60
+                            array(0x99, 0x33, 0x66, 0x00),   # 61
+                            array(0x33, 0x33, 0x99, 0x00),   # 62
+                            array(0x33, 0x33, 0x33, 0x00),   # 63
+                        );
+
+    return 0;
+}
+
+###############################################################################
+#
+# set_palette_xl5()
+#
+# Sets the colour palette to the Excel 5 default.
+#
+function set_palette_xl5() {
+    $this->_palette = array(
+                            array(0x00, 0x00, 0x00, 0x00),   # 8
+                            array(0xff, 0xff, 0xff, 0x00),   # 9
+                            array(0xff, 0x00, 0x00, 0x00),   # 10
+                            array(0x00, 0xff, 0x00, 0x00),   # 11
+                            array(0x00, 0x00, 0xff, 0x00),   # 12
+                            array(0xff, 0xff, 0x00, 0x00),   # 13
+                            array(0xff, 0x00, 0xff, 0x00),   # 14
+                            array(0x00, 0xff, 0xff, 0x00),   # 15
+                            array(0x80, 0x00, 0x00, 0x00),   # 16
+                            array(0x00, 0x80, 0x00, 0x00),   # 17
+                            array(0x00, 0x00, 0x80, 0x00),   # 18
+                            array(0x80, 0x80, 0x00, 0x00),   # 19
+                            array(0x80, 0x00, 0x80, 0x00),   # 20
+                            array(0x00, 0x80, 0x80, 0x00),   # 21
+                            array(0xc0, 0xc0, 0xc0, 0x00),   # 22
+                            array(0x80, 0x80, 0x80, 0x00),   # 23
+                            array(0x80, 0x80, 0xff, 0x00),   # 24
+                            array(0x80, 0x20, 0x60, 0x00),   # 25
+                            array(0xff, 0xff, 0xc0, 0x00),   # 26
+                            array(0xa0, 0xe0, 0xe0, 0x00),   # 27
+                            array(0x60, 0x00, 0x80, 0x00),   # 28
+                            array(0xff, 0x80, 0x80, 0x00),   # 29
+                            array(0x00, 0x80, 0xc0, 0x00),   # 30
+                            array(0xc0, 0xc0, 0xff, 0x00),   # 31
+                            array(0x00, 0x00, 0x80, 0x00),   # 32
+                            array(0xff, 0x00, 0xff, 0x00),   # 33
+                            array(0xff, 0xff, 0x00, 0x00),   # 34
+                            array(0x00, 0xff, 0xff, 0x00),   # 35
+                            array(0x80, 0x00, 0x80, 0x00),   # 36
+                            array(0x80, 0x00, 0x00, 0x00),   # 37
+                            array(0x00, 0x80, 0x80, 0x00),   # 38
+                            array(0x00, 0x00, 0xff, 0x00),   # 39
+                            array(0x00, 0xcf, 0xff, 0x00),   # 40
+                            array(0x69, 0xff, 0xff, 0x00),   # 41
+                            array(0xe0, 0xff, 0xe0, 0x00),   # 42
+                            array(0xff, 0xff, 0x80, 0x00),   # 43
+                            array(0xa6, 0xca, 0xf0, 0x00),   # 44
+                            array(0xdd, 0x9c, 0xb3, 0x00),   # 45
+                            array(0xb3, 0x8f, 0xee, 0x00),   # 46
+                            array(0xe3, 0xe3, 0xe3, 0x00),   # 47
+                            array(0x2a, 0x6f, 0xf9, 0x00),   # 48
+                            array(0x3f, 0xb8, 0xcd, 0x00),   # 49
+                            array(0x48, 0x84, 0x36, 0x00),   # 50
+                            array(0x95, 0x8c, 0x41, 0x00),   # 51
+                            array(0x8e, 0x5e, 0x42, 0x00),   # 52
+                            array(0xa0, 0x62, 0x7a, 0x00),   # 53
+                            array(0x62, 0x4f, 0xac, 0x00),   # 54
+                            array(0x96, 0x96, 0x96, 0x00),   # 55
+                            array(0x1d, 0x2f, 0xbe, 0x00),   # 56
+                            array(0x28, 0x66, 0x76, 0x00),   # 57
+                            array(0x00, 0x45, 0x00, 0x00),   # 58
+                            array(0x45, 0x3e, 0x01, 0x00),   # 59
+                            array(0x6a, 0x28, 0x13, 0x00),   # 60
+                            array(0x85, 0x39, 0x6a, 0x00),   # 61
+                            array(0x4a, 0x32, 0x85, 0x00),   # 62
+                            array(0x42, 0x42, 0x42, 0x00),   # 63
+                        );
+
+    return 0;
+}
+
+###############################################################################
+#
+# set_tempdir()
+#
+# Change the default temp directory used by _initialize() in Worksheet.pm.
+#
+function set_tempdir($tempdir) {
+//todo
+/*
+    croak "$_[0] is not a valid directory"                 unless -d $_[0];
+    croak "set_tempdir must be called before addworksheet" if $self->sheets();
+*/
+
+    $this->_tempdir = $tempdir;
+}
+
+###############################################################################
+#
+# _store_workbook()
+#
+# Assemble worksheets into a workbook and send the BIFF data to an OLE
+# storage.
+#
+function _store_workbook() {
+
+    # Ensure that at least one worksheet has been selected.
+    if ($this->_activesheet == 0) {
+        $this->_worksheets[0]->_selected = 1;
+    }
+
+    # Calculate the number of selected worksheet tabs and call the finalization
+    # methods for each worksheet
+    for ($c=0;$c<sizeof($this->_worksheets);$c++) {
+        $sheet=$this->_worksheets[$c];
+        if ($sheet->_selected) {
+            $this->_selected++;
+        
+	}
+        $sheet->_close($this->_sheetnames);
+    }
+
+    # Add Workbook globals
+    $this->_store_bof(0x0005);
+
+    $this->_store_externs();    # For print area and repeat rows
+
+    $this->_store_names();      # For print area and repeat rows
+
+    $this->_store_window1();
+
+    $this->_store_1904();
+
+    $this->_store_all_fonts();
+
+    $this->_store_all_num_formats();
+
+    $this->_store_all_xfs();
+
+    $this->_store_all_styles();
+
+    $this->_store_palette();
+
+    $this->_calc_sheet_offsets();
+
+    # Add BOUNDSHEET records
+    for ($c=0;$c<sizeof($this->_worksheets);$c++) {
+       $sheet=$this->_worksheets[$c];
+        $this->_store_boundsheet($sheet->_name, $sheet->_offset);
+    }
+
+    # End Workbook globals
+    $this->_store_eof();
+
+    # Store the workbook in an OLE container
+    $this->_store_OLE_file();
+}
+
+###############################################################################
+#
+# _store_OLE_file()
+#
+# Store the workbook in an OLE container if the total size of the workbook data
+# is less than ~ 7MB.
+#
+function _store_OLE_file() {
+## ABR
+    if ($this->_tmpfilename != '') {
+        $OLE  = new writeexcel_olewriter(CACHE_DIR.'/tmp/'.$this->_tmpfilename);
+        $OLE->_OLEtmpfilename = CACHE_DIR.$this->_tmpfilename;
+    } else {
+        $OLE  = new writeexcel_olewriter($this->_filename);
+        $OLE->_OLEtmpfilename = '';
+    };
+## END ABR
+					            
+    # Write Worksheet data if data <~ 7MB
+    if ($OLE->set_size($this->_biffsize)) {
+        $OLE->write_header();
+        $OLE->write($this->_data);
+
+        for ($c=0;$c<sizeof($this->_worksheets);$c++) {
+            $sheet=$this->_worksheets[$c];
+            while ($tmp = $sheet->get_data()) {
+                $OLE->write($tmp);
+            }
+        }
+    }
+
+    $OLE->close();
+}
+
+###############################################################################
+#
+# _calc_sheet_offsets()
+#
+# Calculate offsets for Worksheet BOF records.
+#
+function _calc_sheet_offsets() {
+
+    $BOF     = 11;
+    $EOF     = 4;
+    $offset  = $this->_datasize;
+
+    foreach ($this->_worksheets as $sheet) {
+        $offset += $BOF + strlen($sheet->_name);
+    }
+
+    $offset += $EOF;
+
+    for ($c=0;$c<sizeof($this->_worksheets);$c++) {
+        $sheet=$this->_worksheets[$c];
+        $sheet->_offset = $offset;
+        $offset += $sheet->_datasize;
+    }
+
+    $this->_biffsize = $offset;
+}
+
+###############################################################################
+#
+# _store_all_fonts()
+#
+# Store the Excel FONT records.
+#
+function _store_all_fonts() {
+    # _tmp_format is added by new(). We use this to write the default XF's
+    $format = $this->_tmp_format;
+    $font   = $format->get_font();
+
+    # Note: Fonts are 0-indexed. According to the SDK there is no index 4,
+    # so the following fonts are 0, 1, 2, 3, 5
+    #
+    for ($c=0;$c<5;$c++) {
+        $this->_append($font);
+    }
+
+    # Iterate through the XF objects and write a FONT record if it isn't the
+    # same as the default FONT and if it hasn't already been used.
+    #
+    $index = 6;                  # The first user defined FONT
+
+    $key = $format->get_font_key(); # The default font from _tmp_format
+    $fonts[$key] = 0;               # Index of the default font
+
+    for ($c=0;$c<sizeof($this->_formats);$c++) {
+        $format=$this->_formats[$c];
+
+        $key = $format->get_font_key();
+
+        if (isset($fonts[$key])) {
+            # FONT has already been used
+            $format->_font_index = $fonts[$key];
+        } else {
+            # Add a new FONT record
+            $fonts[$key]           = $index;
+            $format->_font_index = $index;
+            $index++;
+            $font = $format->get_font();
+            $this->_append($font);
+        }
+    }
+}
+
+###############################################################################
+#
+# _store_all_num_formats()
+#
+# Store user defined numerical formats i.e. FORMAT records
+#
+function _store_all_num_formats() {
+
+    # Leaning num_format syndrome
+    $num_formats_list=array();
+    $index = 164;
+
+    # Iterate through the XF objects and write a FORMAT record if it isn't a
+    # built-in format type and if the FORMAT string hasn't already been used.
+    #
+
+    for ($c=0;$c<sizeof($this->_formats);$c++) {
+        $format=$this->_formats[$c];
+
+        $num_format = $format->_num_format;
+
+        # Check if $num_format is an index to a built-in format.
+        # Also check for a string of zeros, which is a valid format string
+        # but would evaluate to zero.
+        #
+        if (!preg_match('/^0+\d/', $num_format)) {
+            if (preg_match('/^\d+$/', $num_format)) {
+                # built-in
+                continue;
+            }
+        }
+
+        if (isset($num_formats[$num_format])) {
+            # FORMAT has already been used
+            $format->_num_format = $num_formats[$num_format];
+        } else {
+            # Add a new FORMAT
+            $num_formats[$num_format] = $index;
+            $format->_num_format    = $index;
+            array_push($num_formats_list, $num_format);
+            $index++;
+        }
+    }
+
+    # Write the new FORMAT records starting from 0xA4
+    $index = 164;
+    foreach ($num_formats_list as $num_format) {
+        $this->_store_num_format($num_format, $index);
+        $index++;
+    }
+}
+
+###############################################################################
+#
+# _store_all_xfs()
+#
+# Write all XF records.
+#
+function _store_all_xfs() {
+    # _tmp_format is added by new(). We use this to write the default XF's
+    # The default font index is 0
+    #
+    $format = $this->_tmp_format;
+    $xf;
+
+    for ($c=0;$c<15;$c++) {
+        $xf = $format->get_xf('style'); # Style XF
+        $this->_append($xf);
+    }
+
+    $xf = $format->get_xf('cell');      # Cell XF
+    $this->_append($xf);
+
+    # User defined XFs
+    foreach ($this->_formats as $format) {
+        $xf = $format->get_xf('cell');
+        $this->_append($xf);
+    }
+}
+
+###############################################################################
+#
+# _store_all_styles()
+#
+# Write all STYLE records.
+#
+function _store_all_styles() {
+    $this->_store_style();
+}
+
+###############################################################################
+#
+# _store_externs()
+#
+# Write the EXTERNCOUNT and EXTERNSHEET records. These are used as indexes for
+# the NAME records.
+#
+function _store_externs() {
+
+    # Create EXTERNCOUNT with number of worksheets
+    $this->_store_externcount(sizeof($this->_worksheets));
+
+    # Create EXTERNSHEET for each worksheet
+    foreach ($this->_sheetnames as $sheetname) {
+        $this->_store_externsheet($sheetname);
+    }
+}
+
+###############################################################################
+#
+# _store_names()
+#
+# Write the NAME record to define the print area and the repeat rows and cols.
+#
+function _store_names() {
+
+    # Create the print area NAME records
+    foreach ($this->_worksheets as $worksheet) {
+        # Write a Name record if the print area has been defined
+        if ($worksheet->_print_rowmin!==false) {
+            $this->_store_name_short(
+                $worksheet->_index,
+                0x06, # NAME type
+                $worksheet->_print_rowmin,
+                $worksheet->_print_rowmax,
+                $worksheet->_print_colmin,
+                $worksheet->_print_colmax
+            );
+        }
+    }
+
+    # Create the print title NAME records
+    foreach ($this->_worksheets as $worksheet) {
+
+        $rowmin = $worksheet->_title_rowmin;
+        $rowmax = $worksheet->_title_rowmax;
+        $colmin = $worksheet->_title_colmin;
+        $colmax = $worksheet->_title_colmax;
+
+        # Determine if row + col, row, col or nothing has been defined
+        # and write the appropriate record
+        #
+        if ($rowmin!==false && $colmin!==false) {
+            # Row and column titles have been defined.
+            # Row title has been defined.
+            $this->_store_name_long(
+                $worksheet->_index,
+                0x07, # NAME type
+                $rowmin,
+                $rowmax,
+                $colmin,
+                $colmax
+           );
+        } elseif ($rowmin!==false) {
+            # Row title has been defined.
+            $this->_store_name_short(
+                $worksheet->_index,
+                0x07, # NAME type
+                $rowmin,
+                $rowmax,
+                0x00,
+                0xff
+            );
+        } elseif ($colmin!==false) {
+            # Column title has been defined.
+            $this->_store_name_short(
+                $worksheet->_index,
+                0x07, # NAME type
+                0x0000,
+                0x3fff,
+                $colmin,
+                $colmax
+            );
+        } else {
+            # Print title hasn't been defined.
+        }
+    }
+}
+
+###############################################################################
+###############################################################################
+#
+# BIFF RECORDS
+#
+
+###############################################################################
+#
+# _store_window1()
+#
+# Write Excel BIFF WINDOW1 record.
+#
+function _store_window1() {
+
+    $record    = 0x003D;                 # Record identifier
+    $length    = 0x0012;                 # Number of bytes to follow
+
+    $xWn       = 0x0000;                 # Horizontal position of window
+    $yWn       = 0x0000;                 # Vertical position of window
+    $dxWn      = 0x25BC;                 # Width of window
+    $dyWn      = 0x1572;                 # Height of window
+
+    $grbit     = 0x0038;                 # Option flags
+    $ctabsel   = $this->_selected;     # Number of workbook tabs selected
+    $wTabRatio = 0x0258;                 # Tab to scrollbar ratio
+
+    $itabFirst = $this->_firstsheet;   # 1st displayed worksheet
+    $itabCur   = $this->_activesheet;  # Active worksheet
+
+    $header    = pack("vv",        $record, $length);
+    $data      = pack("vvvvvvvvv", $xWn, $yWn, $dxWn, $dyWn,
+                                   $grbit,
+                                   $itabCur, $itabFirst,
+                                   $ctabsel, $wTabRatio);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_boundsheet()
+#
+# Writes Excel BIFF BOUNDSHEET record.
+#
+function _store_boundsheet($sheetname, $offset) {
+    $record    = 0x0085;               # Record identifier
+    $length    = 0x07 + strlen($sheetname); # Number of bytes to follow
+
+    //$sheetname = $_[0];                # Worksheet name
+    //$offset    = $_[1];                # Location of worksheet BOF
+    $grbit     = 0x0000;               # Sheet identifier
+    $cch       = strlen($sheetname);   # Length of sheet name
+
+    $header    = pack("vv",  $record, $length);
+    $data      = pack("VvC", $offset, $grbit, $cch);
+
+    $this->_append($header . $data . $sheetname);
+}
+
+###############################################################################
+#
+# _store_style()
+#
+# Write Excel BIFF STYLE records.
+#
+function _store_style() {
+    $record    = 0x0293; # Record identifier
+    $length    = 0x0004; # Bytes to follow
+
+    $ixfe      = 0x8000; # Index to style XF
+    $BuiltIn   = 0x00;   # Built-in style
+    $iLevel    = 0xff;   # Outline style level
+
+    $header    = pack("vv",  $record, $length);
+    $data      = pack("vCC", $ixfe, $BuiltIn, $iLevel);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_num_format()
+#
+# Writes Excel FORMAT record for non "built-in" numerical formats.
+#
+function _store_num_format($num_format, $index) {
+    $record    = 0x041E;                 # Record identifier
+    $length    = 0x03 + strlen($num_format);   # Number of bytes to follow
+
+    $format    = $num_format;                  # Custom format string
+    $ifmt      = $index;                  # Format index code
+    $cch       = strlen($format);        # Length of format string
+
+    $header    = pack("vv", $record, $length);
+    $data      = pack("vC", $ifmt, $cch);
+
+    $this->_append($header . $data . $format);
+}
+
+###############################################################################
+#
+# _store_1904()
+#
+# Write Excel 1904 record to indicate the date system in use.
+#
+function _store_1904() {
+    $record    = 0x0022;         # Record identifier
+    $length    = 0x0002;         # Bytes to follow
+
+    $f1904     = $this->_1904; # Flag for 1904 date system
+
+    $header    = pack("vv",  $record, $length);
+    $data      = pack("v", $f1904);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_externcount($count)
+#
+# Write BIFF record EXTERNCOUNT to indicate the number of external sheet
+# references in the workbook.
+#
+# Excel only stores references to external sheets that are used in NAME.
+# The workbook NAME record is required to define the print area and the repeat
+# rows and columns.
+#
+# A similar method is used in Worksheet.pm for a slightly different purpose.
+#
+function _store_externcount($par0) {
+    $record   = 0x0016;          # Record identifier
+    $length   = 0x0002;          # Number of bytes to follow
+
+    $cxals    = $par0;           # Number of external references
+
+    $header   = pack("vv", $record, $length);
+    $data     = pack("v",  $cxals);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_externsheet($sheetname)
+#
+#
+# Writes the Excel BIFF EXTERNSHEET record. These references are used by
+# formulas. NAME record is required to define the print area and the repeat
+# rows and columns.
+#
+# A similar method is used in Worksheet.pm for a slightly different purpose.
+#
+function _store_externsheet($par0) {
+    $record      = 0x0017;               # Record identifier
+    $length      = 0x02 + strlen($par0); # Number of bytes to follow
+
+    $sheetname   = $par0;                # Worksheet name
+    $cch         = strlen($sheetname);   # Length of sheet name
+    $rgch        = 0x03;                 # Filename encoding
+
+    $header      = pack("vv",  $record, $length);
+    $data        = pack("CC", $cch, $rgch);
+
+    $this->_append($header . $data . $sheetname);
+}
+
+###############################################################################
+#
+# _store_name_short()
+#
+#
+# Store the NAME record in the short format that is used for storing the print
+# area, repeat rows only and repeat columns only.
+#
+function _store_name_short($par0, $par1, $par2, $par3, $par4, $par5) {
+    $record          = 0x0018;       # Record identifier
+    $length          = 0x0024;       # Number of bytes to follow
+
+    $index           = $par0;        # Sheet index
+    $type            = $par1;
+
+    $grbit           = 0x0020;       # Option flags
+    $chKey           = 0x00;         # Keyboard shortcut
+    $cch             = 0x01;         # Length of text name
+    $cce             = 0x0015;       # Length of text definition
+    $ixals           = $index +1;    # Sheet index
+    $itab            = $ixals;       # Equal to ixals
+    $cchCustMenu     = 0x00;         # Length of cust menu text
+    $cchDescription  = 0x00;         # Length of description text
+    $cchHelptopic    = 0x00;         # Length of help topic text
+    $cchStatustext   = 0x00;         # Length of status bar text
+    $rgch            = $type;        # Built-in name type
+
+    $unknown03       = 0x3b;
+    $unknown04       = 0xffff-$index;
+    $unknown05       = 0x0000;
+    $unknown06       = 0x0000;
+    $unknown07       = 0x1087;
+    $unknown08       = 0x8005;
+
+    $rowmin          = $par2;        # Start row
+    $rowmax          = $par3;        # End row
+    $colmin          = $par4;        # Start column
+    $colmax          = $par5;        # end column
+
+    $header          = pack("vv",  $record, $length);
+    $data            = pack("v", $grbit);
+    $data              .= pack("C", $chKey);
+    $data              .= pack("C", $cch);
+    $data              .= pack("v", $cce);
+    $data              .= pack("v", $ixals);
+    $data              .= pack("v", $itab);
+    $data              .= pack("C", $cchCustMenu);
+    $data              .= pack("C", $cchDescription);
+    $data              .= pack("C", $cchHelptopic);
+    $data              .= pack("C", $cchStatustext);
+    $data              .= pack("C", $rgch);
+    $data              .= pack("C", $unknown03);
+    $data              .= pack("v", $unknown04);
+    $data              .= pack("v", $unknown05);
+    $data              .= pack("v", $unknown06);
+    $data              .= pack("v", $unknown07);
+    $data              .= pack("v", $unknown08);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", $rowmin);
+    $data              .= pack("v", $rowmax);
+    $data              .= pack("C", $colmin);
+    $data              .= pack("C", $colmax);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_name_long()
+#
+#
+# Store the NAME record in the long format that is used for storing the repeat
+# rows and columns when both are specified. This share a lot of code with
+# _store_name_short() but we use a separate method to keep the code clean.
+# Code abstraction for reuse can be carried too far, and I should know. ;-)
+#
+function _store_name_long($par0, $par1, $par2, $par3, $par4, $par5) {
+    $record          = 0x0018;       # Record identifier
+    $length          = 0x003d;       # Number of bytes to follow
+
+    $index           = $par0;        # Sheet index
+    $type            = $par1;
+
+    $grbit           = 0x0020;       # Option flags
+    $chKey           = 0x00;         # Keyboard shortcut
+    $cch             = 0x01;         # Length of text name
+    $cce             = 0x002e;       # Length of text definition
+    $ixals           = $index +1;    # Sheet index
+    $itab            = $ixals;       # Equal to ixals
+    $cchCustMenu     = 0x00;         # Length of cust menu text
+    $cchDescription  = 0x00;         # Length of description text
+    $cchHelptopic    = 0x00;         # Length of help topic text
+    $cchStatustext   = 0x00;         # Length of status bar text
+    $rgch            = $type;        # Built-in name type
+
+    $unknown01       = 0x29;
+    $unknown02       = 0x002b;
+    $unknown03       = 0x3b;
+    $unknown04       = 0xffff-$index;
+    $unknown05       = 0x0000;
+    $unknown06       = 0x0000;
+    $unknown07       = 0x1087;
+    $unknown08       = 0x8008;
+
+    $rowmin          = $par2;        # Start row
+    $rowmax          = $par3;        # End row
+    $colmin          = $par4;        # Start column
+    $colmax          = $par5;        # end column
+
+    $header          = pack("vv",  $record, $length);
+    $data            = pack("v", $grbit);
+    $data              .= pack("C", $chKey);
+    $data              .= pack("C", $cch);
+    $data              .= pack("v", $cce);
+    $data              .= pack("v", $ixals);
+    $data              .= pack("v", $itab);
+    $data              .= pack("C", $cchCustMenu);
+    $data              .= pack("C", $cchDescription);
+    $data              .= pack("C", $cchHelptopic);
+    $data              .= pack("C", $cchStatustext);
+    $data              .= pack("C", $rgch);
+    $data              .= pack("C", $unknown01);
+    $data              .= pack("v", $unknown02);
+    # Column definition
+    $data              .= pack("C", $unknown03);
+    $data              .= pack("v", $unknown04);
+    $data              .= pack("v", $unknown05);
+    $data              .= pack("v", $unknown06);
+    $data              .= pack("v", $unknown07);
+    $data              .= pack("v", $unknown08);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", 0x0000);
+    $data              .= pack("v", 0x3fff);
+    $data              .= pack("C", $colmin);
+    $data              .= pack("C", $colmax);
+    # Row definition
+    $data              .= pack("C", $unknown03);
+    $data              .= pack("v", $unknown04);
+    $data              .= pack("v", $unknown05);
+    $data              .= pack("v", $unknown06);
+    $data              .= pack("v", $unknown07);
+    $data              .= pack("v", $unknown08);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", $index);
+    $data              .= pack("v", $rowmin);
+    $data              .= pack("v", $rowmax);
+    $data              .= pack("C", 0x00);
+    $data              .= pack("C", 0xff);
+    # End of data
+    $data              .= pack("C", 0x10);
+
+    $this->_append($header . $data);
+}
+
+###############################################################################
+#
+# _store_palette()
+#
+# Stores the PALETTE biff record.
+#
+function _store_palette() {
+    $aref            = $this->_palette;
+
+    $record          = 0x0092;                  # Record identifier
+    $length          = 2 + 4 * sizeof($aref);   # Number of bytes to follow
+    $ccv             =         sizeof($aref);   # Number of RGB values to follow
+    //$data;                                      # The RGB data
+
+    # Pack the RGB data
+    foreach($aref as $dat) {
+        $data .= call_user_func_array('pack', array_merge(array("CCCC"), $dat));
+    }
+
+    $header = pack("vvv",  $record, $length, $ccv);
+
+    $this->_append($header . $data);
+}
+
+}
+
+?>
diff --git a/gosa-core/include/utils/excel/class.writeexcel_worksheet.inc.php b/gosa-core/include/utils/excel/class.writeexcel_worksheet.inc.php
new file mode 100644
index 0000000..ce10e77
--- /dev/null
+++ b/gosa-core/include/utils/excel/class.writeexcel_worksheet.inc.php
@@ -0,0 +1,2951 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+require_once "class.writeexcel_biffwriter.inc.php";
+
+class writeexcel_worksheet extends writeexcel_biffwriter {
+
+    var $_name;
+    var $_index;
+    var $_activesheet;
+    var $_firstsheet;
+    var $_url_format;
+    var $_parser;
+    var $_tempdir;
+
+    var $_ext_sheets;
+    var $_using_tmpfile;
+    var $_filehandle;
+    var $_fileclosed;
+    var $_offset;
+    var $_xls_rowmax;
+    var $_xls_colmax;
+    var $_xls_strmax;
+    var $_dim_rowmin;
+    var $_dim_rowmax;
+    var $_dim_colmin;
+    var $_dim_colmax;
+    var $_colinfo;
+    var $_selection;
+    var $_panes;
+    var $_active_pane;
+    var $_frozen;
+    var $_selected;
+
+    var $_paper_size;
+    var $_orientation;
+    var $_header;
+    var $_footer;
+    var $_hcenter;
+    var $_vcenter;
+    var $_margin_head;
+    var $_margin_foot;
+    var $_margin_left;
+    var $_margin_right;
+    var $_margin_top;
+    var $_margin_bottom;
+
+    var $_title_rowmin;
+    var $_title_rowmax;
+    var $_title_colmin;
+    var $_title_colmax;
+    var $_print_rowmin;
+    var $_print_rowmax;
+    var $_print_colmin;
+    var $_print_colmax;
+
+    var $_print_gridlines;
+    var $_screen_gridlines;
+    var $_print_headers;
+
+    var $_fit_page;
+    var $_fit_width;
+    var $_fit_height;
+
+    var $_hbreaks;
+    var $_vbreaks;
+
+    var $_protect;
+    var $_password;
+
+    var $_col_sizes;
+    var $_row_sizes;
+
+    var $_col_formats;
+    var $_row_formats;
+
+    var $_zoom;
+    var $_print_scale;
+
+    /*
+     * Constructor. Creates a new Worksheet object from a BIFFwriter object
+     */
+    function writeexcel_worksheet($name, $index, $activesheet, $firstsheet,
+                                  $url_format, $parser, $tempdir) {
+
+        $this->writeexcel_biffwriter();
+
+        $rowmax                   = 65536; // 16384 in Excel 5
+        $colmax                   = 256;
+        $strmax                   = 255;
+
+        $this->_name              = $name;
+        $this->_index             = $index;
+        $this->_activesheet       = $activesheet;
+        $this->_firstsheet        = $firstsheet;
+        $this->_url_format        = $url_format;
+        $this->_parser            = $parser;
+        $this->_tempdir           = $tempdir;
+
+        $this->_ext_sheets        = array();
+        $this->_using_tmpfile     = 1;
+        $this->_filehandle        = false;
+        $this->_fileclosed        = 0;
+        $this->_offset            = 0;
+        $this->_xls_rowmax        = $rowmax;
+        $this->_xls_colmax        = $colmax;
+        $this->_xls_strmax        = $strmax;
+        $this->_dim_rowmin        = $rowmax +1;
+        $this->_dim_rowmax        = 0;
+        $this->_dim_colmin        = $colmax +1;
+        $this->_dim_colmax        = 0;
+        $this->_colinfo           = array();
+        $this->_selection         = array(0, 0);
+        $this->_panes             = array();
+        $this->_active_pane       = 3;
+        $this->_frozen            = 0;
+        $this->_selected          = 0;
+
+        $this->_paper_size        = 0x0;
+        $this->_orientation       = 0x1;
+        $this->_header            = '';
+        $this->_footer            = '';
+        $this->_hcenter           = 0;
+        $this->_vcenter           = 0;
+        $this->_margin_head       = 0.50;
+        $this->_margin_foot       = 0.50;
+        $this->_margin_left       = 0.75;
+        $this->_margin_right      = 0.75;
+        $this->_margin_top        = 1.00;
+        $this->_margin_bottom     = 1.00;
+
+        $this->_title_rowmin      = false;
+        $this->_title_rowmax      = false;
+        $this->_title_colmin      = false;
+        $this->_title_colmax      = false;
+        $this->_print_rowmin      = false;
+        $this->_print_rowmax      = false;
+        $this->_print_colmin      = false;
+        $this->_print_colmax      = false;
+
+        $this->_print_gridlines   = 1;
+        $this->_screen_gridlines  = 1;
+        $this->_print_headers     = 0;
+
+        $this->_fit_page          = 0;
+        $this->_fit_width         = 0;
+        $this->_fit_height        = 0;
+
+        $this->_hbreaks           = array();
+        $this->_vbreaks           = array();
+
+        $this->_protect           = 0;
+        $this->_password          = false;
+
+        $this->_col_sizes         = array();
+        $this->_row_sizes         = array();
+
+        $this->_col_formats       = array();
+        $this->_row_formats       = array();
+
+        $this->_zoom              = 100;
+        $this->_print_scale       = 100;
+
+        $this->_initialize();
+    }
+
+###############################################################################
+#
+# _initialize()
+#
+# Open a tmp file to store the majority of the Worksheet data. If this fails,
+# for example due to write permissions, store the data in memory. This can be
+# slow for large files.
+#
+function _initialize() {
+
+    # Open tmp file for storing Worksheet data.
+    $fh=fopen(tempnam($this->_tempdir, "php_writeexcel"), "w+b");
+
+    if ($fh) {
+        # Store filehandle
+        $this->_filehandle = $fh;
+    } else {
+        # If tempfile() failed store data in memory
+        $this->_using_tmpfile = 0;
+
+        if ($this->_index == 0) {
+            $dir = $this->_tempdir;
+
+//todo            warn "Unable to create temp files in $dir. Refer to set_tempdir()".
+//                 " in the Spreadsheet::WriteExcel documentation.\n" ;
+        }
+    }
+}
+
+    /*
+     * Add data to the beginning of the workbook (note the reverse order)
+     * and to the end of the workbook.
+     */
+    function _close($sheetnames) {
+
+        ///////////////////////////////
+        // Prepend in reverse order!!
+        //
+
+        $this->_store_dimensions();        // Prepend the sheet dimensions
+        $this->_store_password();          // Prepend the sheet password
+        $this->_store_protect();           // Prepend the sheet protection
+        $this->_store_setup();             // Prepend the page setup
+        $this->_store_margin_bottom();     // Prepend the bottom margin
+        $this->_store_margin_top();        // Prepend the top margin
+        $this->_store_margin_right();      // Prepend the right margin
+        $this->_store_margin_left();       // Prepend the left margin
+        $this->_store_vcenter();           // Prepend the page vertical
+                                           // centering
+        $this->_store_hcenter();           // Prepend the page horizontal
+                                           // centering
+        $this->_store_footer();            // Prepend the page footer
+        $this->_store_header();            // Prepend the page header
+        $this->_store_vbreak();            // Prepend the vertical page breaks
+        $this->_store_hbreak();            // Prepend the horizontal
+                                           // page breaks
+        $this->_store_wsbool();            // Prepend WSBOOL
+        $this->_store_gridset();           // Prepend GRIDSET
+        $this->_store_print_gridlines();   // Prepend PRINTGRIDLINES
+        $this->_store_print_headers();     // Prepend PRINTHEADERS
+
+        // Prepend EXTERNSHEET references
+        $num_sheets = sizeof($sheetnames);
+        for ($i = $num_sheets; $i > 0; $i--) {
+            $sheetname = $sheetnames[$i-1];
+            $this->_store_externsheet($sheetname);
+        }
+
+        $this->_store_externcount($num_sheets);   // Prepend the EXTERNCOUNT
+                                                  // of external references.
+
+        // Prepend the COLINFO records if they exist
+        if (sizeof($this->_colinfo)>0){
+            while (sizeof($this->_colinfo)>0) {
+                $arrayref = array_pop ($this->_colinfo);
+                $this->_store_colinfo($arrayref);
+            }
+            $this->_store_defcol();
+        }
+
+        $this->_store_bof(0x0010);    // Prepend the BOF record
+
+        //
+        // End of prepend. Read upwards from here.
+        ////////////////////////////////////////////
+
+        // Append
+        $this->_store_window2();
+        $this->_store_zoom();
+
+        if (sizeof($this->_panes)>0) {
+            $this->_store_panes($this->_panes);
+        }
+
+        $this->_store_selection($this->_selection);
+        $this->_store_eof();
+    }
+
+    /*
+     * Retrieve the worksheet name.
+     */
+    function get_name() {
+        return $this->_name;
+    }
+
+###############################################################################
+#
+# get_data().
+#
+# Retrieves data from memory in one chunk, or from disk in $buffer
+# sized chunks.
+#
+function get_data() {
+
+    $buffer = 4096;
+
+    # Return data stored in memory
+    if ($this->_data!==false) {
+        $tmp           = $this->_data;
+        $this->_data=false;
+        $fh         = $this->_filehandle;
+        if ($this->_using_tmpfile) {
+            fseek($fh, 0, SEEK_SET);
+        }
+
+        if ($this->_debug) {
+            print "*** worksheet::get_data() called (1):";
+            for ($c=0;$c<strlen($tmp);$c++) {
+                if ($c%16==0) {
+                    print "\n";
+                }
+                printf("%02X ", ord($tmp[$c]));
+            }
+            print "\n";
+        }
+
+        return $tmp;
+    }
+
+    # Return data stored on disk
+    if ($this->_using_tmpfile) {
+        if ($tmp=fread($this->_filehandle, $buffer)) {
+
+            if ($this->_debug) {
+                print "*** worksheet::get_data() called (2):";
+                for ($c=0;$c<strlen($tmp);$c++) {
+                    if ($c%16==0) {
+                        print "\n";
+                    }
+                    printf("%02X ", ord($tmp[$c]));
+                }
+                print "\n";
+            }
+
+            return $tmp;
+        }
+    }
+
+    # No data to return
+    return false;
+}
+
+    /*
+     * Set this worksheet as a selected worksheet, i.e. the worksheet has
+     * its tab highlighted.
+     */
+    function select() {
+        $this->_selected = 1;
+    }
+
+    /*
+     * Set this worksheet as the active worksheet, i.e. the worksheet
+     * that is displayed when the workbook is opened. Also set it as
+     * selected.
+     */
+    function activate() {
+        $this->_selected = 1;
+        $this->_activesheet = $this->_index;
+    }
+
+    /*
+     * Set this worksheet as the first visible sheet. This is necessary
+     * when there are a large number of worksheets and the activated
+     * worksheet is not visible on the screen.
+     */
+    function set_first_sheet() {
+        $this->_firstsheet = $this->_index;
+    }
+
+    /*
+     * Set the worksheet protection flag to prevent accidental modification
+     * and to hide formulas if the locked and hidden format properties have
+     * been set.
+     */
+    function protect($password) {
+        $this->_protect   = 1;
+        $this->_password  = $this->_encode_password($password);
+    }
+
+###############################################################################
+#
+# set_column($firstcol, $lastcol, $width, $format, $hidden)
+#
+# Set the width of a single column or a range of column.
+# See also: _store_colinfo
+#
+function set_column() {
+
+    $_=func_get_args();
+
+    $cell = $_[0];
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $cell)) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    array_push($this->_colinfo, $_);
+
+    # Store the col sizes for use when calculating image vertices taking
+    # hidden columns into account. Also store the column formats.
+    #
+    if (sizeof($_)<3) {
+        # Ensure at least $firstcol, $lastcol and $width
+        return;
+    }
+
+    $width  = $_[4] ? 0 : $_[2]; # Set width to zero if column is hidden
+    $format = $_[3];
+
+    list($firstcol, $lastcol) = $_;
+
+    for ($col=$firstcol;$col<=$lastcol;$col++) {
+        $this->_col_sizes[$col]   = $width;
+        if ($format) {
+            $this->_col_formats[$col] = $format;
+        }
+    }
+}
+
+###############################################################################
+#
+# set_selection()
+#
+# Set which cell or cells are selected in a worksheet: see also the
+# function _store_selection
+#
+function set_selection() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $this->_selection = $_;
+}
+
+###############################################################################
+#
+# freeze_panes()
+#
+# Set panes and mark them as frozen. See also _store_panes().
+#
+function freeze_panes() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $this->_frozen = 1;
+    $this->_panes  = $_;
+}
+
+###############################################################################
+#
+# thaw_panes()
+#
+# Set panes and mark them as unfrozen. See also _store_panes().
+#
+function thaw_panes() {
+
+    $_=func_get_args();
+
+    $this->_frozen = 0;
+    $this->_panes  = $_;
+}
+
+    /*
+     * Set the page orientation as portrait.
+     */
+    function set_portrait() {
+        $this->_orientation = 1;
+    }
+
+    /*
+     * Set the page orientation as landscape.
+     */
+    function set_landscape() {
+        $this->_orientation = 0;
+    }
+
+    /*
+     * Set the paper type. Ex. 1 = US Letter, 9 = A4
+     */
+    function set_paper($type) {
+        $this->_paper_size = $type;
+    }
+
+    /*
+     * Set the page header caption and optional margin.
+     */
+    function set_header($string, $margin) {
+
+        if (strlen($string) >= 255) {
+            trigger_error("Header string must be less than 255 characters",
+                          E_USER_WARNING);
+            return;
+        }
+
+        $this->_header      = $string;
+        $this->_margin_head = $margin;
+    }
+
+    /*
+     * Set the page footer caption and optional margin.
+     */
+    function set_footer($string, $margin) {
+        if (strlen($string) >= 255) {
+            trigger_error("Footer string must be less than 255 characters",
+                          E_USER_WARNING);
+            return;
+        }
+
+        $this->_footer      = $string;
+        $this->_margin_foot = $margin;
+    }
+
+    /*
+     * Center the page horizontally.
+     */
+    function center_horizontally($hcenter=1) {
+        $this->_hcenter = $hcenter;
+    }
+
+    /*
+     * Center the page horizontally.
+     */
+    function center_vertically($vcenter=1) {
+        $this->_vcenter = $vcenter;
+    }
+
+    /*
+     * Set all the page margins to the same value in inches.
+     */
+    function set_margins($margin) {
+        $this->set_margin_left($margin);
+        $this->set_margin_right($margin);
+        $this->set_margin_top($margin);
+        $this->set_margin_bottom($margin);
+    }
+
+    /*
+     * Set the left and right margins to the same value in inches.
+     */
+    function set_margins_LR($margin) {
+        $this->set_margin_left($margin);
+        $this->set_margin_right($margin);
+    }
+
+    /*
+     * Set the top and bottom margins to the same value in inches.
+     */
+    function set_margins_TB($margin) {
+        $this->set_margin_top($margin);
+        $this->set_margin_bottom($margin);
+    }
+
+    /*
+     * Set the left margin in inches.
+     */
+    function set_margin_left($margin=0.75) {
+        $this->_margin_left = $margin;
+    }
+
+    /*
+     * Set the right margin in inches.
+     */
+    function set_margin_right($margin=0.75) {
+        $this->_margin_right = $margin;
+    }
+
+    /*
+     * Set the top margin in inches.
+     */
+    function set_margin_top($margin=1.00) {
+        $this->_margin_top = $margin;
+    }
+
+    /*
+     * Set the bottom margin in inches.
+     */
+    function set_margin_bottom($margin=1.00) {
+        $this->_margin_bottom = $margin;
+    }
+
+###############################################################################
+#
+# repeat_rows($first_row, $last_row)
+#
+# Set the rows to repeat at the top of each printed page. See also the
+# _store_name_xxxx() methods in Workbook.pm.
+#
+function repeat_rows() {
+
+    $_=func_get_args();
+
+    $this->_title_rowmin  = $_[0];
+    $this->_title_rowmax  = isset($_[1]) ? $_[1] : $_[0]; # Second row is optional
+}
+
+###############################################################################
+#
+# repeat_columns($first_col, $last_col)
+#
+# Set the columns to repeat at the left hand side of each printed page.
+# See also the _store_names() methods in Workbook.pm.
+#
+function repeat_columns() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $this->_title_colmin  = $_[0];
+    $this->_title_colmax  = isset($_[1]) ? $_[1] : $_[0]; # Second col is optional
+}
+
+###############################################################################
+#
+# print_area($first_row, $first_col, $last_row, $last_col)
+#
+# Set the area of each worksheet that will be printed. See also the
+# _store_names() methods in Workbook.pm.
+#
+function print_area() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    if (sizeof($_) != 4) {
+        # Require 4 parameters
+        return;
+    }
+
+    $this->_print_rowmin = $_[0];
+    $this->_print_colmin = $_[1];
+    $this->_print_rowmax = $_[2];
+    $this->_print_colmax = $_[3];
+}
+
+    /*
+     * Set the option to hide gridlines on the screen and the printed page.
+     * There are two ways of doing this in the Excel BIFF format: The first
+     * is by setting the DspGrid field of the WINDOW2 record, this turns off
+     * the screen and subsequently the print gridline. The second method is
+     * to via the PRINTGRIDLINES and GRIDSET records, this turns off the
+     * printed gridlines only. The first method is probably sufficient for
+     * most cases. The second method is supported for backwards compatibility.
+     */
+    function hide_gridlines($option=1) {
+        if ($option == 0) {
+            $this->_print_gridlines  = 1; # 1 = display, 0 = hide
+            $this->_screen_gridlines = 1;
+        } elseif ($option == 1) {
+            $this->_print_gridlines  = 0;
+            $this->_screen_gridlines = 1;
+        } else {
+            $this->_print_gridlines  = 0;
+            $this->_screen_gridlines = 0;
+        }
+    }
+
+    /*
+     * Set the option to print the row and column headers on the printed page.
+     * See also the _store_print_headers() method below.
+     */
+    function print_row_col_headers($headers=1) {
+        $this->_print_headers = $headers;
+    }
+
+    /*
+     * Store the vertical and horizontal number of pages that will define
+     * the maximum area printed. See also _store_setup() and _store_wsbool()
+     * below.
+     */
+    function fit_to_pages($width, $height) {
+        $this->_fit_page   = 1;
+        $this->_fit_width  = $width;
+        $this->_fit_height = $height;
+    }
+
+    /*
+     * Store the horizontal page breaks on a worksheet.
+     */
+    function set_h_pagebreaks($breaks) {
+        $this->_hbreaks=array_merge($this->_hbreaks, $breaks);
+    }
+
+    /*
+     * Store the vertical page breaks on a worksheet.
+     */
+    function set_v_pagebreaks($breaks) {
+        $this->_vbreaks=array_merge($this->_vbreaks, $breaks);
+    }
+
+    /*
+     * Set the worksheet zoom factor.
+     */
+    function set_zoom($scale=100) {
+        // Confine the scale to Excel's range
+        if ($scale < 10 || $scale > 400) {
+            trigger_error("Zoom factor $scale outside range: ".
+                          "10 <= zoom <= 400", E_USER_WARNING);
+            $scale = 100;
+        }
+
+        $this->_zoom = $scale;
+    }
+
+    /*
+     * Set the scale factor for the printed page.
+     */
+    function set_print_scale($scale=100) {
+        // Confine the scale to Excel's range
+        if ($scale < 10 || $scale > 400) {
+            trigger_error("Print scale $scale outside range: ".
+                          "10 <= zoom <= 400", E_USER_WARNING);
+            $scale = 100;
+        }
+
+        // Turn off "fit to page" option
+        $this->_fit_page = 0;
+
+        $this->_print_scale = $scale;
+    }
+
+###############################################################################
+#
+# write($row, $col, $token, $format)
+#
+# Parse $token call appropriate write method. $row and $column are zero
+# indexed. $format is optional.
+#
+# Returns: return value of called subroutine
+#
+function write() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $token = $_[2];
+
+    # Match an array ref.
+    if (is_array($token)) {
+        return call_user_func_array(array($this, 'write_row'), $_);
+    }
+
+    # Match number
+    if (preg_match('/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/', $token)) {
+        return call_user_func_array(array($this, 'write_number'), $_);
+    }
+    # Match http, https or ftp URL
+    elseif (preg_match('|^[fh]tt?ps?://|', $token)) {
+        return call_user_func_array(array($this, 'write_url'), $_);
+    }
+    # Match mailto:
+    elseif (preg_match('/^mailto:/', $token)) {
+        return call_user_func_array(array($this, 'write_url'), $_);
+    }
+    # Match internal or external sheet link
+    elseif (preg_match('[^(?:in|ex)ternal:]', $token)) {
+        return call_user_func_array(array($this, 'write_url'), $_);
+    }
+    # Match formula
+    elseif (preg_match('/^=/', $token)) {
+        return call_user_func_array(array($this, 'write_formula'), $_);
+    }
+    # Match blank
+    elseif ($token == '') {
+        array_splice($_, 2, 1); # remove the empty string from the parameter list
+        return call_user_func_array(array($this, 'write_blank'), $_);
+    }
+    # Default: match string
+    else {
+        return call_user_func_array(array($this, 'write_string'), $_);
+    }
+}
+
+###############################################################################
+#
+# write_row($row, $col, $array_ref, $format)
+#
+# Write a row of data starting from ($row, $col). Call write_col() if any of
+# the elements of the array ref are in turn array refs. This allows the writing
+# of 1D or 2D arrays of data in one go.
+#
+# Returns: the first encountered error value or zero for no errors
+#
+function write_row() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Catch non array refs passed by user.
+    if (!is_array($_[2])) {
+        trigger_error("Not an array ref in call to write_row()!", E_USER_ERROR);
+    }
+
+    list($row, $col, $tokens)=array_splice($_, 0, 3);
+    $options = $_[0];
+    $error   = 0;
+
+    foreach ($tokens as $token) {
+
+        # Check for nested arrays
+        if (is_array($token)) {
+            $ret = $this->write_col($row, $col, $token, $options);
+        } else {
+            $ret = $this->write    ($row, $col, $token, $options);
+        }
+
+        # Return only the first error encountered, if any.
+        $error = $error || $ret;
+        $col++;
+    }
+
+    return $error;
+}
+
+###############################################################################
+#
+# _XF()
+#
+# Returns an index to the XF record in the workbook.
+# TODO
+#
+# Note: this is a function, not a method.
+#
+function _XF($row=false, $col=false, $format=false) {
+
+    if ($format) {
+        return $format->get_xf_index();
+    } elseif (isset($this->_row_formats[$row])) {
+        return $this->_row_formats[$row]->get_xf_index();
+    } elseif (isset($this->_col_formats[$col])) {
+        return $this->_col_formats[$col]->get_xf_index();
+    } else {
+        return 0x0F;
+    }
+}
+
+###############################################################################
+#
+# write_col($row, $col, $array_ref, $format)
+#
+# Write a column of data starting from ($row, $col). Call write_row() if any of
+# the elements of the array ref are in turn array refs. This allows the writing
+# of 1D or 2D arrays of data in one go.
+#
+# Returns: the first encountered error value or zero for no errors
+#
+function write_col() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Catch non array refs passed by user.
+    if (!is_array($_[2])) {
+        trigger_error("Not an array ref in call to write_row()!", E_USER_ERROR);
+    }
+
+    $row     = array_shift($_);
+    $col     = array_shift($_);
+    $tokens  = array_shift($_);
+    $options = $_;
+
+    $error   = 0;
+
+    foreach ($tokens as $token) {
+
+        # write() will deal with any nested arrays
+        $ret = $this->write($row, $col, $token, $options);
+
+        # Return only the first error encountered, if any.
+        $error = $error || $ret;
+        $row++;
+    }
+
+    return $error;
+}
+
+###############################################################################
+###############################################################################
+#
+# Internal methods
+#
+
+###############################################################################
+#
+# _append(), overloaded.
+#
+# Store Worksheet data in memory using the base class _append() or to a
+# temporary file, the default.
+#
+function _append($data) {
+
+    if (func_num_args()>1) {
+        trigger_error("writeexcel_worksheet::_append() ".
+                      "called with more than one argument", E_USER_ERROR);
+    }
+
+    if ($this->_using_tmpfile) {
+
+        if ($this->_debug) {
+            print "worksheet::_append() called:";
+            for ($c=0;$c<strlen($data);$c++) {
+                if ($c%16==0) {
+                    print "\n";
+                }
+                printf("%02X ", ord($data[$c]));
+            }
+            print "\n";
+        }
+
+        # Add CONTINUE records if necessary
+        if (strlen($data) > $this->_limit) {
+            $data = $this->_add_continue($data);
+        }
+
+        fputs($this->_filehandle, $data);
+        $this->_datasize += strlen($data);
+    } else {
+        parent::_append($data);
+    }
+}
+
+###############################################################################
+#
+# _substitute_cellref()
+#
+# Substitute an Excel cell reference in A1 notation for  zero based row and
+# column values in an argument list.
+#
+# Ex: ("A4", "Hello") is converted to (3, 0, "Hello").
+#
+// Exactly one array must be passed!
+function _substitute_cellref($_) {
+    $cell = strtoupper(array_shift($_));
+
+    # Convert a column range: 'A:A' or 'B:G'
+    if (preg_match('/([A-I]?[A-Z]):([A-I]?[A-Z])/', $cell, $reg)) {
+        list($dummy, $col1) =  $this->_cell_to_rowcol($reg[1] .'1'); # Add a dummy row
+        list($dummy, $col2) =  $this->_cell_to_rowcol($reg[2] .'1'); # Add a dummy row
+        return array_merge(array($col1, $col2), $_);
+    }
+
+    # Convert a cell range: 'A1:B7'
+    if (preg_match('/\$?([A-I]?[A-Z]\$?\d+):\$?([A-I]?[A-Z]\$?\d+)/', $cell, $reg)) {
+        list($row1, $col1) =  $this->_cell_to_rowcol($reg[1]);
+        list($row2, $col2) =  $this->_cell_to_rowcol($reg[2]);
+        return array_merge(array($row1, $col1, $row2, $col2), $_);
+    }
+
+    # Convert a cell reference: 'A1' or 'AD2000'
+    if (preg_match('/\$?([A-I]?[A-Z]\$?\d+)/', $cell, $reg)) {
+        list($row1, $col1) =  $this->_cell_to_rowcol($reg[1]);
+        return array_merge(array($row1, $col1), $_);
+
+    }
+
+    trigger_error("Unknown cell reference $cell", E_USER_ERROR);
+}
+
+###############################################################################
+#
+# _cell_to_rowcol($cell_ref)
+#
+# Convert an Excel cell reference in A1 notation to a zero based row and column
+# reference; converts C1 to (0, 2).
+#
+# Returns: row, column
+#
+# TODO use functions in Utility.pm
+#
+function _cell_to_rowcol($cell) {
+
+    preg_match('/\$?([A-I]?[A-Z])\$?(\d+)/', $cell, $reg);
+
+    $col     = $reg[1];
+    $row     = $reg[2];
+
+    # Convert base26 column string to number
+    # All your Base are belong to us.
+    $chars = preg_split('//', $col, -1, PREG_SPLIT_NO_EMPTY);
+    $expn  = 0;
+    $col      = 0;
+
+    while (sizeof($chars)) {
+        $char = array_pop($chars); # LS char first
+        $col += (ord($char) -ord('A') +1) * pow(26, $expn);
+        $expn++;
+    }
+
+    # Convert 1-index to zero-index
+    $row--;
+    $col--;
+
+    return array($row, $col);
+}
+
+    /*
+     * This is an internal method that is used to filter elements of the
+     * array of pagebreaks used in the _store_hbreak() and _store_vbreak()
+     * methods. It:
+     *   1. Removes duplicate entries from the list.
+     *   2. Sorts the list.
+     *   3. Removes 0 from the list if present.
+     */
+    function _sort_pagebreaks($breaks) {
+        // Hash slice to remove duplicates
+        foreach ($breaks as $break) {
+            $hash["$break"]=1;
+        }
+
+        // Numerical sort
+        $breaks=array_keys($hash);
+        sort($breaks, SORT_NUMERIC);
+
+        // Remove zero
+        if ($breaks[0] == 0) {
+            array_shift($breaks);
+        }
+
+        // 1000 vertical pagebreaks appears to be an internal Excel 5 limit.
+        // It is slightly higher in Excel 97/200, approx. 1026
+        if (sizeof($breaks) > 1000) {
+            array_splice($breaks, 1000);
+        }
+
+        return $breaks;
+    }
+
+    /*
+     * Based on the algorithm provided by Daniel Rentz of OpenOffice.
+     */
+    function _encode_password($plaintext) {
+        $chars=preg_split('//', $plaintext, -1, PREG_SPLIT_NO_EMPTY);
+        $count=sizeof($chars);
+
+        for ($c=0;$c<sizeof($chars);$c++) {
+            $char=$chars[$c];
+            $char    = ord($char) << ++$i;
+            $low_15  = $char & 0x7fff;
+            $high_15 = $char & 0x7fff << 15;
+            $high_15 = $high_15 >> 15;
+            $char    = $low_15 | $high_15;
+        }
+
+        $password = 0x0000;
+
+        foreach ($chars as $char) {
+            $password ^= $char;
+        }
+
+        $password ^= $count;
+        $password ^= 0xCE4B;
+
+        return $password;
+    }
+
+###############################################################################
+###############################################################################
+#
+# BIFF RECORDS
+#
+
+###############################################################################
+#
+# write_number($row, $col, $num, $format)
+#
+# Write a double to the specified row and column (zero indexed).
+# An integer can be written as a double. Excel will display an
+# integer. $format is optional.
+#
+# Returns  0 : normal termination
+#         -1 : insufficient number of arguments
+#         -2 : row or column out of range
+#
+function write_number() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 3) {
+        return -1;
+    }
+
+    $record  = 0x0203;                        # Record identifier
+    $length  = 0x000E;                        # Number of bytes to follow
+
+    $row     = $_[0];                         # Zero indexed row
+    $col     = $_[1];                         # Zero indexed column
+    $num     = $_[2];
+//!!!
+    $xf      = $this->_XF($row, $col, $_[3]); # The cell format
+
+    # Check that row and col are valid and store max and min values
+    if ($row >= $this->_xls_rowmax) { return -2; }
+    if ($col >= $this->_xls_colmax) { return -2; }
+    if ($row <  $this->_dim_rowmin) { $this->_dim_rowmin = $row; }
+    if ($row >  $this->_dim_rowmax) { $this->_dim_rowmax = $row; }
+    if ($col <  $this->_dim_colmin) { $this->_dim_colmin = $col; }
+    if ($col >  $this->_dim_colmax) { $this->_dim_colmax = $col; }
+
+    $header    = pack("vv",  $record, $length);
+    $data      = pack("vvv", $row, $col, $xf);
+    $xl_double = pack("d",   $num);
+
+    if ($this->_byte_order) {
+//TODO
+        $xl_double = strrev($xl_double);
+    }
+
+    $this->_append($header . $data . $xl_double);
+
+    return 0;
+}
+
+###############################################################################
+#
+# write_string ($row, $col, $string, $format)
+#
+# Write a string to the specified row and column (zero indexed).
+# NOTE: there is an Excel 5 defined limit of 255 characters.
+# $format is optional.
+# Returns  0 : normal termination
+#         -1 : insufficient number of arguments
+#         -2 : row or column out of range
+#         -3 : long string truncated to 255 chars
+#
+function write_string() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 3) {
+        return -1;
+    }
+
+    $record  = 0x0204;                        # Record identifier
+    $length  = 0x0008 + strlen($_[2]);        # Bytes to follow
+
+    $row     = $_[0];                         # Zero indexed row
+    $col     = $_[1];                         # Zero indexed column
+    $strlen  = strlen($_[2]);
+    $str     = $_[2];
+    $xf      = $this->_XF($row, $col, $_[3]); # The cell format
+
+    $str_error = 0;
+
+    # Check that row and col are valid and store max and min values
+    if ($row >= $this->_xls_rowmax) { return -2; }
+    if ($col >= $this->_xls_colmax) { return -2; }
+    if ($row <  $this->_dim_rowmin) { $this->_dim_rowmin = $row; }
+    if ($row >  $this->_dim_rowmax) { $this->_dim_rowmax = $row; }
+    if ($col <  $this->_dim_colmin) { $this->_dim_colmin = $col; }
+    if ($col >  $this->_dim_colmax) { $this->_dim_colmax = $col; }
+
+    if ($strlen > $this->_xls_strmax) { # LABEL must be < 255 chars
+        $str       = substr($str, 0, $this->_xls_strmax);
+        $length    = 0x0008 + $this->_xls_strmax;
+        $strlen    = $this->_xls_strmax;
+        $str_error = -3;
+    }
+
+    $header    = pack("vv",   $record, $length);
+    $data      = pack("vvvv", $row, $col, $xf, $strlen);
+
+    $this->_append($header . $data . $str);
+
+    return $str_error;
+}
+
+###############################################################################
+#
+# write_blank($row, $col, $format)
+#
+# Write a blank cell to the specified row and column (zero indexed).
+# A blank cell is used to specify formatting without adding a string
+# or a number.
+#
+# A blank cell without a format serves no purpose. Therefore, we don't write
+# a BLANK record unless a format is specified. This is mainly an optimisation
+# for the write_row() and write_col() methods.
+#
+# Returns  0 : normal termination (including no format)
+#         -1 : insufficient number of arguments
+#         -2 : row or column out of range
+#
+function write_blank() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 2) {
+        return -1;
+    }
+
+    # Don't write a blank cell unless it has a format
+    if (!isset($_[2])) {
+        return 0;
+    }
+
+    $record  = 0x0201;                        # Record identifier
+    $length  = 0x0006;                        # Number of bytes to follow
+
+    $row     = $_[0];                         # Zero indexed row
+    $col     = $_[1];                         # Zero indexed column
+    $xf      = $this->_XF($row, $col, $_[2]); # The cell format
+
+    # Check that row and col are valid and store max and min values
+    if ($row >= $this->_xls_rowmax) { return -2; }
+    if ($col >= $this->_xls_colmax) { return -2; }
+    if ($row <  $this->_dim_rowmin) { $this->_dim_rowmin = $row; }
+    if ($row >  $this->_dim_rowmax) { $this->_dim_rowmax = $row; }
+    if ($col <  $this->_dim_colmin) { $this->_dim_colmin = $col; }
+    if ($col >  $this->_dim_colmax) { $this->_dim_colmax = $col; }
+
+    $header    = pack("vv",  $record, $length);
+    $data      = pack("vvv", $row, $col, $xf);
+
+    $this->_append($header . $data);
+
+    return 0;
+}
+
+###############################################################################
+#
+# write_formula($row, $col, $formula, $format)
+#
+# Write a formula to the specified row and column (zero indexed).
+# The textual representation of the formula is passed to the parser in
+# Formula.pm which returns a packed binary string.
+#
+# $format is optional.
+#
+# Returns  0 : normal termination
+#         -1 : insufficient number of arguments
+#         -2 : row or column out of range
+#
+function write_formula() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 3) {
+        return -1;
+    }
+
+    $record    = 0x0006;     # Record identifier
+    $length=0;                 # Bytes to follow
+
+    $row       = $_[0];      # Zero indexed row
+    $col       = $_[1];      # Zero indexed column
+    $formula   = $_[2];      # The formula text string
+
+    # Excel normally stores the last calculated value of the formula in $num.
+    # Clearly we are not in a position to calculate this a priori. Instead
+    # we set $num to zero and set the option flags in $grbit to ensure
+    # automatic calculation of the formula when the file is opened.
+    #
+    $xf        = $this->_XF($row, $col, $_[3]); # The cell format
+    $num       = 0x00;                          # Current value of formula
+    $grbit     = 0x03;                          # Option flags
+    $chn       = 0x0000;                        # Must be zero
+
+    # Check that row and col are valid and store max and min values
+    if ($row >= $this->_xls_rowmax) { return -2; }
+    if ($col >= $this->_xls_colmax) { return -2; }
+    if ($row <  $this->_dim_rowmin) { $this->_dim_rowmin = $row; }
+    if ($row >  $this->_dim_rowmax) { $this->_dim_rowmax = $row; }
+    if ($col <  $this->_dim_colmin) { $this->_dim_colmin = $col; }
+    if ($col >  $this->_dim_colmax) { $this->_dim_colmax = $col; }
+
+    # Strip the = sign at the beginning of the formula string
+    $formula = preg_replace('/^=/', "", $formula);
+
+    # Parse the formula using the parser in Formula.pm
+    $parser = $this->_parser;
+    $formula   = $parser->parse_formula($formula);
+
+    $formlen = strlen($formula); # Length of the binary string
+    $length     = 0x16 + $formlen;  # Length of the record data
+
+    $header    = pack("vv",      $record, $length);
+    $data      = pack("vvvdvVv", $row, $col, $xf, $num,
+                                  $grbit, $chn, $formlen);
+
+    $this->_append($header . $data . $formula);
+
+    return 0;
+}
+
+###############################################################################
+#
+# write_url($row, $col, $url, $string, $format)
+#
+# Write a hyperlink. This is comprised of two elements: the visible label and
+# the invisible link. The visible label is the same as the link unless an
+# alternative string is specified. The label is written using the
+# write_string() method. Therefore the 255 characters string limit applies.
+# $string and $format are optional and their order is interchangeable.
+#
+# The hyperlink can be to a http, ftp, mail, internal sheet, or external
+# directory url.
+#
+# Returns  0 : normal termination
+#         -1 : insufficient number of arguments
+#         -2 : row or column out of range
+#         -3 : long string truncated to 255 chars
+#
+function write_url() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 3) {
+        return -1;
+    }
+
+    # Add start row and col to arg list
+    return call_user_func_array(array($this, 'write_url_range'),
+                                array_merge(array($_[0], $_[1]), $_));
+}
+
+###############################################################################
+#
+# write_url_range($row1, $col1, $row2, $col2, $url, $string, $format)
+#
+# This is the more general form of write_url(). It allows a hyperlink to be
+# written to a range of cells. This function also decides the type of hyperlink
+# to be written. These are either, Web (http, ftp, mailto), Internal
+# (Sheet1!A1) or external ('c:\temp\foo.xls#Sheet1!A1').
+#
+# See also write_url() above for a general description and return values.
+#
+function write_url_range() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    # Check the number of args
+    if (sizeof($_) < 5) {
+        return -1;
+    }
+
+    # Reverse the order of $string and $format if necessary.
+//TODO    ($_[5], $_[6]) = ($_[6], $_[5]) if (ref $_[5]);
+
+    $url = $_[4];
+
+    # Check for internal/external sheet links or default to web link
+    if (preg_match('[^internal:]', $url)) {
+        return call_user_func_array(array($this, '_write_url_internal'), $_);
+    }
+
+    if (preg_match('[^external:]', $url)) {
+        return call_user_func_array(array($this, '_write_url_external'), $_);
+    }
+
+    return call_user_func_array(array($this, '_write_url_web'), $_);
+}
+
+###############################################################################
+#
+# _write_url_web($row1, $col1, $row2, $col2, $url, $string, $format)
+#
+# Used to write http, ftp and mailto hyperlinks.
+# The link type ($options) is 0x03 is the same as absolute dir ref without
+# sheet. However it is differentiated by the $unknown2 data stream.
+#
+# See also write_url() above for a general description and return values.
+#
+function _write_url_web() {
+
+    $_=func_get_args();
+
+    $record      = 0x01B8;                       # Record identifier
+    $length      = 0x00000;                      # Bytes to follow
+
+    $row1        = $_[0];                        # Start row
+    $col1        = $_[1];                        # Start column
+    $row2        = $_[2];                        # End row
+    $col2        = $_[3];                        # End column
+    $url         = $_[4];                        # URL string
+    if (isset($_[5])) {
+        $str         = $_[5];                        # Alternative label
+    }
+    $xf          = $_[6] ? $_[6] : $this->_url_format;  # The cell format
+
+    # Write the visible label using the write_string() method.
+    if(!isset($str)) {
+        $str            = $url;
+    }
+
+    $str_error   = $this->write_string($row1, $col1, $str, $xf);
+
+    if ($str_error == -2) {
+        return $str_error;
+    }
+
+    # Pack the undocumented parts of the hyperlink stream
+    $unknown1    = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000");
+    $unknown2    = pack("H*", "E0C9EA79F9BACE118C8200AA004BA90B");
+
+    # Pack the option flags
+    $options     = pack("V", 0x03);
+
+    # Convert URL to a null terminated wchar string
+    $url            = join("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY));
+    $url            = $url . "\0\0\0";
+
+    # Pack the length of the URL
+    $url_len     = pack("V", strlen($url));
+
+    # Calculate the data length
+    $length         = 0x34 + strlen($url);
+
+    # Pack the header data
+    $header      = pack("vv",   $record, $length);
+    $data        = pack("vvvv", $row1, $row2, $col1, $col2);
+
+    # Write the packed data
+    $this->_append($header.
+                   $data.
+                   $unknown1.
+                   $options.
+                   $unknown2.
+                   $url_len.
+                   $url);
+
+    return $str_error;
+}
+
+###############################################################################
+#
+# _write_url_internal($row1, $col1, $row2, $col2, $url, $string, $format)
+#
+# Used to write internal reference hyperlinks such as "Sheet1!A1".
+#
+# See also write_url() above for a general description and return values.
+#
+function _write_url_internal() {
+
+    $_=func_get_args();
+
+    $record      = 0x01B8;                       # Record identifier
+    $length      = 0x00000;                      # Bytes to follow
+
+    $row1        = $_[0];                        # Start row
+    $col1        = $_[1];                        # Start column
+    $row2        = $_[2];                        # End row
+    $col2        = $_[3];                        # End column
+    $url         = $_[4];                        # URL string
+    if (isset($_[5])) {
+        $str         = $_[5];                        # Alternative label
+    }
+    $xf          = $_[6] ? $_[6] : $this->_url_format;  # The cell format
+
+    # Strip URL type
+    $url = preg_replace('s[^internal:]', '', $url);
+
+    # Write the visible label
+    if (!isset($str)) {
+        $str = $url;
+    }
+    $str_error   = $this->write_string($row1, $col1, $str, $xf);
+
+    if ($str_error == -2) {
+        return $str_error;
+    }
+
+    # Pack the undocumented parts of the hyperlink stream
+    $unknown1    = pack("H*", "D0C9EA79F9BACE118C8200AA004BA90B02000000");
+
+    # Pack the option flags
+    $options     = pack("V", 0x08);
+
+    # Convert the URL type and to a null terminated wchar string
+    $url            = join("\0", preg_split("''", $url, -1, PREG_SPLIT_NO_EMPTY));
+    $url            = $url . "\0\0\0";
+
+    # Pack the length of the URL as chars (not wchars)
+    $url_len     = pack("V", int(strlen($url)/2));
+
+    # Calculate the data length
+    $length         = 0x24 + strlen($url);
+
+    # Pack the header data
+    $header      = pack("vv",   $record, $length);
+    $data        = pack("vvvv", $row1, $row2, $col1, $col2);
+
+    # Write the packed data
+    $this->_append($header.
+                   $data.
+                   $unknown1.
+                   $options.
+                   $url_len.
+                   $url);
+
+    return $str_error;
+}
+
+###############################################################################
+#
+# _write_url_external($row1, $col1, $row2, $col2, $url, $string, $format)
+#
+# Write links to external directory names such as 'c:\foo.xls',
+# c:\foo.xls#Sheet1!A1', '../../foo.xls'. and '../../foo.xls#Sheet1!A1'.
+#
+# Note: Excel writes some relative links with the $dir_long string. We ignore
+# these cases for the sake of simpler code.
+#
+# See also write_url() above for a general description and return values.
+#
+function _write_url_external() {
+
+    $_=func_get_args();
+
+    # Network drives are different. We will handle them separately
+    # MS/Novell network drives and shares start with \\
+    if (preg_match('[^external:\\\\]', $_[4])) {
+        return call_user_func_array(array($this, '_write_url_external_net'), $_);
+    }
+
+    $record      = 0x01B8;                       # Record identifier
+    $length      = 0x00000;                      # Bytes to follow
+
+    $row1        = $_[0];                        # Start row
+    $col1        = $_[1];                        # Start column
+    $row2        = $_[2];                        # End row
+    $col2        = $_[3];                        # End column
+    $url         = $_[4];                        # URL string
+    if (isset($_[5])) {
+        $str         = $_[5];                        # Alternative label
+    }
+    $xf          = $_[6] ? $_[6] : $this->_url_format;  # The cell format
+
+    # Strip URL type and change Unix dir separator to Dos style (if needed)
+    #
+    $url            = preg_replace('[^external:]', '', $url);
+    $url            = preg_replace('[/]', "\\", $url);
+
+    # Write the visible label
+    if (!isset($str)) {
+        $str = preg_replace('[\#]', ' - ', $url);
+    }
+    $str_error   = $this->write_string($row1, $col1, $str, $xf);
+    if ($str_error == -2) {
+        return $str_error;
+    }
+
+    # Determine if the link is relative or absolute:
+    #   relative if link contains no dir separator, "somefile.xls"
+    #   relative if link starts with up-dir, "..\..\somefile.xls"
+    #   otherwise, absolute
+    #
+    $absolute    = 0x02; # Bit mask
+
+    if (!preg_match('[\\]', $url)) {
+        $absolute    = 0x00;
+    }
+
+    if (preg_match('[^\.\.\\]', $url)) {
+        $absolute    = 0x00;
+    }
+
+    # Determine if the link contains a sheet reference and change some of the
+    # parameters accordingly.
+    # Split the dir name and sheet name (if it exists)
+    #
+    list($dir_long, $sheet) = preg_split('/\#/', $url);
+    $link_type           = 0x01 | $absolute;
+
+//!!!
+    if (isset($sheet)) {
+        $link_type |= 0x08;
+        $sheet_len  = pack("V", length($sheet) + 0x01);
+        $sheet      = join("\0", str_split($sheet));
+        $sheet     .= "\0\0\0";
+    } else {
+        $sheet_len   = '';
+        $sheet       = '';
+    }
+
+    # Pack the link type
+    $link_type      = pack("V", $link_type);
+
+
+    # Calculate the up-level dir count e.g.. (..\..\..\ == 3)
+/* TODO
+    $up_count    = 0;
+    $up_count++       while $dir_long =~ s[^\.\.\\][];
+    $up_count       = pack("v", $up_count);
+*/
+
+    # Store the short dos dir name (null terminated)
+    $dir_short   = $dir_long . "\0";
+
+    # Store the long dir name as a wchar string (non-null terminated)
+    $dir_long       = join("\0", preg_split('', $dir_long, -1, PREG_SPLIT_NO_EMPTY));
+    $dir_long       = $dir_long . "\0";
+
+    # Pack the lengths of the dir strings
+    $dir_short_len = pack("V", strlen($dir_short)      );
+    $dir_long_len  = pack("V", strlen($dir_long)       );
+    $stream_len    = pack("V", strlen($dir_long) + 0x06);
+
+    # Pack the undocumented parts of the hyperlink stream
+    $unknown1 =pack("H*",'D0C9EA79F9BACE118C8200AA004BA90B02000000'       );
+    $unknown2 =pack("H*",'0303000000000000C000000000000046'               );
+    $unknown3 =pack("H*",'FFFFADDE000000000000000000000000000000000000000');
+    $unknown4 =pack("v",  0x03                                            );
+
+    # Pack the main data stream
+    $data        = pack("vvvv", $row1, $row2, $col1, $col2) .
+                      $unknown1     .
+                      $link_type    .
+                      $unknown2     .
+                      $up_count     .
+                      $dir_short_len.
+                      $dir_short    .
+                      $unknown3     .
+                      $stream_len   .
+                      $dir_long_len .
+                      $unknown4     .
+                      $dir_long     .
+                      $sheet_len    .
+                      $sheet        ;
+
+    # Pack the header data
+    $length         = strlen($data);
+    $header      = pack("vv",   $record, $length);
+
+    # Write the packed data
+    $this->_append($header . $data);
+
+    return $str_error;
+}
+
+###############################################################################
+#
+# write_url_xxx($row1, $col1, $row2, $col2, $url, $string, $format)
+#
+# Write links to external MS/Novell network drives and shares such as
+# '//NETWORK/share/foo.xls' and '//NETWORK/share/foo.xls#Sheet1!A1'.
+#
+# See also write_url() above for a general description and return values.
+#
+function _write_url_external_net() {
+
+    $_=func_get_args();
+
+    $record      = 0x01B8;                       # Record identifier
+    $length      = 0x00000;                      # Bytes to follow
+
+    $row1        = $_[0];                        # Start row
+    $col1        = $_[1];                        # Start column
+    $row2        = $_[2];                        # End row
+    $col2        = $_[3];                        # End column
+    $url         = $_[4];                        # URL string
+    if(isset($_[5])) {
+         $str         = $_[5];                        # Alternative label
+    }
+    $xf          = $_[6] ? $_[6] : $this->_url_format;  # The cell format
+
+    # Strip URL type and change Unix dir separator to Dos style (if needed)
+    #
+    $url            = preg_replace('[^external:]', "", $url);
+    $url            = preg_replace('[/]', "\\");
+
+    # Write the visible label
+    if (!isset($str)) {
+        $str = preg_replace('[\#]', " - ", $url);
+    }
+
+    $str_error   = $this->write_string($row1, $col1, $str, $xf);
+    if ($str_error == -2) {
+        return $str_error;
+    }
+
+    # Determine if the link contains a sheet reference and change some of the
+    # parameters accordingly.
+    # Split the dir name and sheet name (if it exists)
+    #
+    list($dir_long , $sheet) = preg_split('\#', $url);
+    $link_type           = 0x0103; # Always absolute
+
+//!!!
+    if (isset($sheet)) {
+        $link_type |= 0x08;
+        $sheet_len  = pack("V", strlen($sheet) + 0x01);
+        $sheet      = join("\0", preg_split("''", $sheet, -1, PREG_SPLIT_NO_EMPTY));
+        $sheet     .= "\0\0\0";
+    } else {
+        $sheet_len   = '';
+        $sheet       = '';
+    }
+
+    # Pack the link type
+    $link_type      = pack("V", $link_type);
+
+    # Make the string null terminated
+    $dir_long       = $dir_long . "\0";
+
+    # Pack the lengths of the dir string
+    $dir_long_len  = pack("V", strlen($dir_long));
+
+    # Store the long dir name as a wchar string (non-null terminated)
+    $dir_long       = join("\0", preg_split("''", $dir_long, -1, PREG_SPLIT_NO_EMPTY));
+    $dir_long       = $dir_long . "\0";
+
+    # Pack the undocumented part of the hyperlink stream
+    $unknown1    = pack("H*",'D0C9EA79F9BACE118C8200AA004BA90B02000000');
+
+    # Pack the main data stream
+    $data        = pack("vvvv", $row1, $row2, $col1, $col2) .
+                      $unknown1     .
+                      $link_type    .
+                      $dir_long_len .
+                      $dir_long     .
+                      $sheet_len    .
+                      $sheet        ;
+
+    # Pack the header data
+    $length         = strlen($data);
+    $header      = pack("vv",   $record, $length);
+
+    # Write the packed data
+    $this->_append($header . $data);
+
+    return $str_error;
+}
+
+###############################################################################
+#
+# set_row($row, $height, $XF)
+#
+# This method is used to set the height and XF format for a row.
+# Writes the  BIFF record ROW.
+#
+function set_row() {
+
+    $_=func_get_args();
+
+    $record      = 0x0208;               # Record identifier
+    $length      = 0x0010;               # Number of bytes to follow
+
+    $rw          = $_[0];                # Row Number
+    $colMic      = 0x0000;               # First defined column
+    $colMac      = 0x0000;               # Last defined column
+    //$miyRw;                              # Row height
+    $irwMac      = 0x0000;               # Used by Excel to optimise loading
+    $reserved    = 0x0000;               # Reserved
+    $grbit       = 0x01C0;               # Option flags. (monkey) see $1 do
+    //$ixfe;                               # XF index
+    if (isset($_[2])) {
+        $format      = $_[2];                # Format object
+    }
+
+    # Check for a format object
+    if (isset($_[2])) {
+        $ixfe = $format->get_xf_index();
+    } else {
+        $ixfe = 0x0F;
+    }
+
+    # Use set_row($row, undef, $XF) to set XF without setting height
+    if (isset($_[1])) {
+        $miyRw = $_[1] *20;
+    } else {
+        $miyRw = 0xff;
+    }
+
+    $header   = pack("vv",       $record, $length);
+    $data     = pack("vvvvvvvv", $rw, $colMic, $colMac, $miyRw,
+                                 $irwMac,$reserved, $grbit, $ixfe);
+
+    $this->_append($header . $data);
+
+    # Store the row sizes for use when calculating image vertices.
+    # Also store the column formats.
+    #
+    # Ensure at least $row and $height
+    if (sizeof($_) < 2) {
+        return;
+    }
+
+    $this->_row_sizes[$_[0]]  = $_[1];
+    if (isset($_[2])) {
+        $this->_row_formats[$_[0]] = $_[2];
+    }
+}
+
+    /*
+     * Writes Excel DIMENSIONS to define the area in which there is data.
+     */
+    function _store_dimensions() {
+        $record    = 0x0000;               // Record identifier
+        $length    = 0x000A;               // Number of bytes to follow
+        $row_min   = $this->_dim_rowmin;   // First row
+        $row_max   = $this->_dim_rowmax;   // Last row plus 1
+        $col_min   = $this->_dim_colmin;   // First column
+        $col_max   = $this->_dim_colmax;   // Last column plus 1
+        $reserved  = 0x0000;               // Reserved by Excel
+
+        $header    = pack("vv",    $record, $length);
+        $data      = pack("vvvvv", $row_min, $row_max,
+                                   $col_min, $col_max, $reserved);
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write BIFF record Window2.
+     */
+    function _store_window2() {
+        $record         = 0x023E;       // Record identifier
+        $length         = 0x000A;       // Number of bytes to follow
+
+        $grbit          = 0x00B6;       // Option flags
+        $rwTop          = 0x0000;       // Top row visible in window
+        $colLeft        = 0x0000;       // Leftmost column visible in window
+        $rgbHdr         = 0x00000000;   // Row/column heading and gridline
+                                        // color
+
+        // The options flags that comprise $grbit
+        $fDspFmla       = 0;                          // 0 - bit
+        $fDspGrid       = $this->_screen_gridlines;   // 1
+        $fDspRwCol      = 1;                          // 2
+        $fFrozen        = $this->_frozen;             // 3
+        $fDspZeros      = 1;                          // 4
+        $fDefaultHdr    = 1;                          // 5
+        $fArabic        = 0;                          // 6
+        $fDspGuts       = 1;                          // 7
+        $fFrozenNoSplit = 0;                          // 0 - bit
+        $fSelected      = $this->_selected;           // 1
+        $fPaged         = 1;                          // 2
+
+        $grbit             = $fDspFmla;
+        $grbit            |= $fDspGrid       << 1;
+        $grbit            |= $fDspRwCol      << 2;
+        $grbit            |= $fFrozen        << 3;
+        $grbit            |= $fDspZeros      << 4;
+        $grbit            |= $fDefaultHdr    << 5;
+        $grbit            |= $fArabic        << 6;
+        $grbit            |= $fDspGuts       << 7;
+        $grbit            |= $fFrozenNoSplit << 8;
+        $grbit            |= $fSelected      << 9;
+        $grbit            |= $fPaged         << 10;
+
+        $header  = pack("vv",   $record, $length);
+        $data    = pack("vvvV", $grbit, $rwTop, $colLeft, $rgbHdr);
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Write BIFF record DEFCOLWIDTH if COLINFO records are in use.
+     */
+    function _store_defcol() {
+        $record   = 0x0055;   // Record identifier
+        $length   = 0x0002;   // Number of bytes to follow
+
+        $colwidth = 0x0008;   // Default column width
+
+        $header   = pack("vv", $record, $length);
+        $data     = pack("v",  $colwidth);
+
+        $this->_prepend($header . $data);
+    }
+
+###############################################################################
+#
+# _store_colinfo($firstcol, $lastcol, $width, $format, $hidden)
+#
+# Write BIFF record COLINFO to define column widths
+#
+# Note: The SDK says the record length is 0x0B but Excel writes a 0x0C
+# length record.
+#
+function _store_colinfo($_) {
+
+    $record   = 0x007D;          # Record identifier
+    $length   = 0x000B;          # Number of bytes to follow
+
+    $colFirst = $_[0] ? $_[0] : 0;      # First formatted column
+    $colLast  = $_[1] ? $_[1] : 0;      # Last formatted column
+    $coldx    = $_[2] ? $_[2] : 8.43;   # Col width, 8.43 is Excel default
+
+    $coldx       += 0.72;           # Fudge. Excel subtracts 0.72 !?
+    $coldx       *= 256;            # Convert to units of 1/256 of a char
+
+    //$ixfe;                       # XF index
+    $grbit    = $_[4] || 0;      # Option flags
+    $reserved = 0x00;            # Reserved
+    $format   = $_[3];           # Format object
+
+    # Check for a format object
+    if (isset($_[3])) {
+        $ixfe = $format->get_xf_index();
+    } else {
+        $ixfe = 0x0F;
+    }
+
+    $header   = pack("vv",     $record, $length);
+    $data     = pack("vvvvvC", $colFirst, $colLast, $coldx,
+                               $ixfe, $grbit, $reserved);
+    $this->_prepend($header . $data);
+}
+
+###############################################################################
+#
+# _store_selection($first_row, $first_col, $last_row, $last_col)
+#
+# Write BIFF record SELECTION.
+#
+function _store_selection($_) {
+
+    $record   = 0x001D;                  # Record identifier
+    $length   = 0x000F;                  # Number of bytes to follow
+
+    $pnn      = $this->_active_pane;     # Pane position
+    $rwAct    = $_[0];                   # Active row
+    $colAct   = $_[1];                   # Active column
+    $irefAct  = 0;                       # Active cell ref
+    $cref     = 1;                       # Number of refs
+
+    $rwFirst  = $_[0];                   # First row in reference
+    $colFirst = $_[1];                   # First col in reference
+    $rwLast   = $_[2] ? $_[2] : $rwFirst;       # Last  row in reference
+    $colLast  = $_[3] ? $_[3] : $colFirst;      # Last  col in reference
+
+    # Swap last row/col for first row/col as necessary
+    if ($rwFirst > $rwLast) {
+        list($rwFirst, $rwLast) = array($rwLast, $rwFirst);
+    }
+
+    if ($colFirst > $colLast) {
+        list($colFirst, $colLast) = array($colLast, $colFirst);
+    }
+
+    $header   = pack("vv",           $record, $length);
+    $data     = pack("CvvvvvvCC",    $pnn, $rwAct, $colAct,
+                                     $irefAct, $cref,
+                                     $rwFirst, $rwLast,
+                                     $colFirst, $colLast);
+
+    $this->_append($header . $data);
+}
+
+    /*
+     * Write BIFF record EXTERNCOUNT to indicate the number of external
+     * sheet references in a worksheet.
+     *
+     * Excel only stores references to external sheets that are used in
+     * formulas. For simplicity we store references to all the sheets in
+     * the workbook regardless of whether they are used or not. This reduces
+     * the overall complexity and eliminates the need for a two way dialogue
+     * between the formula parser the worksheet objects.
+     */
+    function _store_externcount($cxals) {
+        // $cxals   Number of external references
+
+        $record   = 0x0016;   // Record identifier
+        $length   = 0x0002;   // Number of bytes to follow
+
+        $header   = pack("vv", $record, $length);
+        $data     = pack("v",  $cxals);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Writes the Excel BIFF EXTERNSHEET record. These references are used
+     * by formulas. A formula references a sheet name via an index. Since we
+     * store a reference to all of the external worksheets the EXTERNSHEET
+     * index is the same as the worksheet index.
+     */
+    function _store_externsheet($sheetname) {
+        $record    = 0x0017;         # Record identifier
+        // $length   Number of bytes to follow
+
+        // $cch      Length of sheet name
+        // $rgch     Filename encoding
+
+        // References to the current sheet are encoded differently to
+        // references to external sheets.
+        if ($this->_name == $sheetname) {
+            $sheetname = '';
+            $length    = 0x02;  // The following 2 bytes
+            $cch       = 1;     // The following byte
+            $rgch      = 0x02;  // Self reference
+        } else {
+            $length    = 0x02 + strlen($sheetname);
+            $cch       = strlen($sheetname);
+            $rgch      = 0x03;  // Reference to a sheet in the current
+                                // workbook
+        }
+
+        $header     = pack("vv",  $record, $length);
+        $data       = pack("CC", $cch, $rgch);
+
+        $this->_prepend($header . $data . $sheetname);
+    }
+
+###############################################################################
+#
+# _store_panes()
+#
+#
+# Writes the Excel BIFF PANE record.
+# The panes can either be frozen or thawed (unfrozen).
+# Frozen panes are specified in terms of a integer number of rows and columns.
+# Thawed panes are specified in terms of Excel's units for rows and columns.
+#
+function _store_panes() {
+
+    $_=func_get_args();
+
+    $record  = 0x0041;       # Record identifier
+    $length  = 0x000A;       # Number of bytes to follow
+
+    $y       = $_[0] || 0;   # Vertical split position
+    $x       = $_[1] || 0;   # Horizontal split position
+    if (isset($_[2])) {
+        $rwTop   = $_[2];        # Top row visible
+    }
+    if (isset($_[3])) {
+        $colLeft = $_[3];        # Leftmost column visible
+    }
+    if (isset($_[4])) {
+        $pnnAct  = $_[4];        # Active pane
+    }
+
+    # Code specific to frozen or thawed panes.
+    if ($this->_frozen) {
+        # Set default values for $rwTop and $colLeft
+        if (!isset($rwTop)) {
+            $rwTop   = $y;
+        }
+        if (!isset($colLeft)) {
+            $colLeft = $x;
+        }
+    } else {
+        # Set default values for $rwTop and $colLeft
+        if (!isset($rwTop)) {
+            $rwTop   = 0;
+        }
+        if (!isset($colLeft)) {
+            $colLeft = 0;
+        }
+
+        # Convert Excel's row and column units to the internal units.
+        # The default row height is 12.75
+        # The default column width is 8.43
+        # The following slope and intersection values were interpolated.
+        #
+        $y = 20*$y      + 255;
+        $x = 113.879*$x + 390;
+    }
+
+    # Determine which pane should be active. There is also the undocumented
+    # option to override this should it be necessary: may be removed later.
+    #
+    if (!isset($pnnAct)) {
+        # Bottom right
+        if ($x != 0 && $y != 0) {
+            $pnnAct = 0;
+        }
+        # Top right
+        if ($x != 0 && $y == 0) {
+            $pnnAct = 1;
+        }
+        # Bottom left
+        if ($x == 0 && $y != 0) {
+            $pnnAct = 2;
+        }
+        # Top left
+        if ($x == 0 && $y == 0) {
+            $pnnAct = 3;
+        }
+    }
+
+    $this->_active_pane = $pnnAct; # Used in _store_selection
+
+    $header     = pack("vv",    $record, $length);
+    $data       = pack("vvvvv", $x, $y, $rwTop, $colLeft, $pnnAct);
+
+    $this->_append($header . $data);
+}
+
+    /*
+     * Store the page setup SETUP BIFF record.
+     */
+    function _store_setup() {
+        $record       = 0x00A1;                // Record identifier
+        $length       = 0x0022;                // Number of bytes to follow
+
+        $iPaperSize   = $this->_paper_size;    // Paper size
+        $iScale       = $this->_print_scale;   // Print scaling factor
+        $iPageStart   = 0x01;                  // Starting page number
+        $iFitWidth    = $this->_fit_width;     // Fit to number of pages wide
+        $iFitHeight   = $this->_fit_height;    // Fit to number of pages high
+        $grbit        = 0x00;                  // Option flags
+        $iRes         = 0x0258;                // Print resolution
+        $iVRes        = 0x0258;                // Vertical print resolution
+        $numHdr       = $this->_margin_head;   // Header Margin
+        $numFtr       = $this->_margin_foot;   // Footer Margin
+        $iCopies      = 0x01;                  // Number of copies
+
+        $fLeftToRight = 0x0;                   // Print over then down
+        $fLandscape   = $this->_orientation;   // Page orientation
+        $fNoPls       = 0x0;                   // Setup not read from printer
+        $fNoColor     = 0x0;                   // Print black and white
+        $fDraft       = 0x0;                   // Print draft quality
+        $fNotes       = 0x0;                   // Print notes
+        $fNoOrient    = 0x0;                   // Orientation not set
+        $fUsePage     = 0x0;                   // Use custom starting page
+
+        $grbit        = $fLeftToRight;
+        $grbit       |= $fLandscape    << 1;
+        $grbit       |= $fNoPls        << 2;
+        $grbit       |= $fNoColor      << 3;
+        $grbit       |= $fDraft        << 4;
+        $grbit       |= $fNotes        << 5;
+        $grbit       |= $fNoOrient     << 6;
+        $grbit       |= $fUsePage      << 7;
+
+        $numHdr = pack("d", $numHdr);
+        $numFtr = pack("d", $numFtr);
+
+        if ($this->_byte_order) {
+            $numHdr = strrev($numHdr);
+            $numFtr = strrev($numFtr);
+        }
+
+        $header = pack("vv",         $record, $length);
+        $data1  = pack("vvvvvvvv",   $iPaperSize,
+                                     $iScale,
+                                     $iPageStart,
+                                     $iFitWidth,
+                                     $iFitHeight,
+                                     $grbit,
+                                     $iRes,
+                                     $iVRes);
+        $data2  = $numHdr . $numFtr;
+        $data3  = pack("v", $iCopies);
+
+        $this->_prepend($header . $data1 . $data2 . $data3);
+    }
+
+    /*
+     * Store the header caption BIFF record.
+     */
+    function _store_header() {
+        $record  = 0x0014;           // Record identifier
+
+        $str     = $this->_header;   // header string
+        $cch     = strlen($str);     // Length of header string
+        $length  = 1 + $cch;         // Bytes to follow
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("C",   $cch);
+
+        $this->_append($header . $data . $str);
+    }
+
+    /*
+     * Store the footer caption BIFF record.
+     */
+    function _store_footer() {
+        $record  = 0x0015;           // Record identifier
+
+        $str     = $this->_footer;   // Footer string
+        $cch     = strlen($str);     // Length of footer string
+        $length  = 1 + $cch;         // Bytes to follow
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("C",   $cch);
+
+        $this->_append($header . $data . $str);
+    }
+
+    /*
+     * Store the horizontal centering HCENTER BIFF record.
+     */
+    function _store_hcenter() {
+        $record   = 0x0083;   // Record identifier
+        $length   = 0x0002;   // Bytes to follow
+
+        $fHCenter = $this->_hcenter;   // Horizontal centering
+
+        $header   = pack("vv",  $record, $length);
+        $data     = pack("v",   $fHCenter);
+
+        $this->_append($header . $data);
+    }
+
+     /*
+      * Store the vertical centering VCENTER BIFF record.
+      */
+    function _store_vcenter() {
+        $record   = 0x0084;   // Record identifier
+        $length   = 0x0002;   // Bytes to follow
+
+        $fVCenter = $this->_vcenter;   // Horizontal centering
+
+        $header   = pack("vv",  $record, $length);
+        $data     = pack("v",   $fVCenter);
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Store the LEFTMARGIN BIFF record.
+     */
+    function _store_margin_left() {
+        $record  = 0x0026;   // Record identifier
+        $length  = 0x0008;   // Bytes to follow
+
+        $margin  = $this->_margin_left;   // Margin in inches
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("d",   $margin);
+
+        if ($this->_byte_order) {
+            $data = strrev($data);
+        }
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Store the RIGHTMARGIN BIFF record.
+     */
+    function _store_margin_right() {
+        $record  = 0x0027;   // Record identifier
+        $length  = 0x0008;   // Bytes to follow
+
+        $margin  = $this->_margin_right;   // Margin in inches
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("d",   $margin);
+
+        if ($this->_byte_order) {
+            $data = strrev($data);
+        }
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Store the TOPMARGIN BIFF record.
+     */
+    function _store_margin_top() {
+        $record  = 0x0028;   // Record identifier
+        $length  = 0x0008;   // Bytes to follow
+
+        $margin  = $this->_margin_top;   // Margin in inches
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("d",   $margin);
+
+        if ($this->_byte_order) {
+            $data = strrev($data);
+        }
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Store the BOTTOMMARGIN BIFF record.
+     */
+    function _store_margin_bottom() {
+        $record  = 0x0029;   // Record identifier
+        $length  = 0x0008;   // Bytes to follow
+
+        $margin  = $this->_margin_bottom;   // Margin in inches
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("d",   $margin);
+
+        if ($this->_byte_order) {
+            $data = strrev($data);
+        }
+
+        $this->_append($header . $data);
+    }
+
+###############################################################################
+#
+# merge_cells($first_row, $first_col, $last_row, $last_col)
+#
+# This is an Excel97/2000 method. It is required to perform more complicated
+# merging than the normal align merge in Format.pm
+#
+function merge_cells() {
+
+    $_=func_get_args();
+
+    // Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $record  = 0x00E5;                   # Record identifier
+    $length  = 0x000A;                   # Bytes to follow
+
+    $cref     = 1;                       # Number of refs
+    $rwFirst  = $_[0];                   # First row in reference
+    $colFirst = $_[1];                   # First col in reference
+    $rwLast   = $_[2] || $rwFirst;       # Last  row in reference
+    $colLast  = $_[3] || $colFirst;      # Last  col in reference
+
+    // Swap last row/col for first row/col as necessary
+    if ($rwFirst > $rwLast) {
+        list($rwFirst, $rwLast) = array($rwLast, $rwFirst);
+    }
+
+    if ($colFirst > $colLast) {
+        list($colFirst, $colLast) = array($colLast, $colFirst);
+    }
+
+    $header   = pack("vv",       $record, $length);
+    $data     = pack("vvvvv",    $cref,
+                                 $rwFirst, $rwLast,
+                                 $colFirst, $colLast);
+
+    $this->_append($header . $data);
+}
+
+    /*
+     * Write the PRINTHEADERS BIFF record.
+     */
+    function _store_print_headers() {
+        $record      = 0x002a;   // Record identifier
+        $length      = 0x0002;   // Bytes to follow
+
+        $fPrintRwCol = $this->_print_headers;   // Boolean flag
+
+        $header      = pack("vv",  $record, $length);
+        $data        = pack("v",   $fPrintRwCol);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the PRINTGRIDLINES BIFF record. Must be used in conjunction
+     * with the GRIDSET record.
+     */
+    function _store_print_gridlines() {
+        $record      = 0x002b;   // Record identifier
+        $length      = 0x0002;   // Bytes to follow
+
+        $fPrintGrid  = $this->_print_gridlines;   // Boolean flag
+
+        $header      = pack("vv",  $record, $length);
+        $data        = pack("v",   $fPrintGrid);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the GRIDSET BIFF record. Must be used in conjunction with the
+     * PRINTGRIDLINES record.
+     */
+    function _store_gridset() {
+        $record      = 0x0082;   // Record identifier
+        $length      = 0x0002;   // Bytes to follow
+
+        $fGridSet    = !$this->_print_gridlines;   // Boolean flag
+
+        $header      = pack("vv",  $record, $length);
+        $data        = pack("v",   $fGridSet);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the WSBOOL BIFF record, mainly for fit-to-page. Used in
+     * conjunction with the SETUP record.
+     */
+    function _store_wsbool() {
+        $record      = 0x0081;   # Record identifier
+        $length      = 0x0002;   # Bytes to follow
+
+        // $grbit   Option flags
+
+        // The only option that is of interest is the flag for fit to page.
+        // So we set all the options in one go.
+        if ($this->_fit_page) {
+            $grbit = 0x05c1;
+        } else {
+            $grbit = 0x04c1;
+        }
+
+        $header      = pack("vv",  $record, $length);
+        $data        = pack("v",   $grbit);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the HORIZONTALPAGEBREAKS BIFF record.
+     */
+    function _store_hbreak() {
+        // Return if the user hasn't specified pagebreaks
+        if(sizeof($this->_hbreaks)==0) {
+            return;
+        }
+
+        # Sort and filter array of page breaks
+        $breaks  = $this->_sort_pagebreaks($this->_hbreaks);
+
+        $record  = 0x001b;             // Record identifier
+        $cbrk    = sizeof($breaks);    // Number of page breaks
+        $length  = ($cbrk + 1) * 2;    // Bytes to follow
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("v",   $cbrk);
+
+        // Append each page break
+        foreach ($breaks as $break) {
+            $data .= pack("v", $break);
+        }
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the VERTICALPAGEBREAKS BIFF record.
+     */
+    function _store_vbreak() {
+        // Return if the user hasn't specified pagebreaks
+        if(sizeof($this->_vbreaks)==0) {
+            return;
+        }
+
+        // Sort and filter array of page breaks
+        $breaks  = $this->_sort_pagebreaks($this->_vbreaks);
+
+        $record  = 0x001a;            // Record identifier
+        $cbrk    = sizeof($breaks);   // Number of page breaks
+        $length  = ($cbrk + 1) * 2;   // Bytes to follow
+
+        $header  = pack("vv",  $record, $length);
+        $data    = pack("v",   $cbrk);
+
+        // Append each page break
+        foreach ($breaks as $break) {
+            $data .= pack("v", $break);
+        }
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Set the Biff PROTECT record to indicate that the worksheet is
+     * protected.
+     */
+    function _store_protect() {
+        // Exit unless sheet protection has been specified
+        if (!$this->_protect) {
+            return;
+        }
+
+        $record      = 0x0012;            // Record identifier
+        $length      = 0x0002;            // Bytes to follow
+
+        $fLock       = $this->_protect;   // Worksheet is protected
+
+        $header      = pack("vv", $record, $length);
+        $data        = pack("v",  $fLock);
+
+        $this->_prepend($header . $data);
+    }
+
+    /*
+     * Write the worksheet PASSWORD record.
+     */
+    function _store_password() {
+        // Exit unless sheet protection and password have been specified
+        if (!$this->_protect || !$this->_password) {
+            return;
+        }
+
+        $record      = 0x0013;             // Record identifier
+        $length      = 0x0002;             // Bytes to follow
+
+        $wPassword   = $this->_password;   // Encoded password
+
+        $header      = pack("vv", $record, $length);
+        $data        = pack("v",  $wPassword);
+
+        $this->_prepend($header . $data);
+    }
+
+###############################################################################
+#
+# insert_bitmap($row, $col, $filename, $x, $y, $scale_x, $scale_y)
+#
+# Insert a 24bit bitmap image in a worksheet. The main record required is
+# IMDATA but it must be proceeded by a OBJ record to define its position.
+#
+function insert_bitmap() {
+
+    $_=func_get_args();
+
+    # Check for a cell reference in A1 notation and substitute row and column
+    if (preg_match('/^\D/', $_[0])) {
+        $_ = $this->_substitute_cellref($_);
+    }
+
+    $row         = $_[0];
+    $col         = $_[1];
+    $bitmap      = $_[2];
+    $x           = $_[3] ? $_[3] : 0;
+    $y           = $_[4] ? $_[4] : 0;
+    $scale_x     = $_[5] ? $_[5] : 1;
+    $scale_y     = $_[6] ? $_[6] : 1;
+
+    list($width, $height, $size, $data) = $this->_process_bitmap($bitmap);
+
+    # Scale the frame of the image.
+    $width  *= $scale_x;
+    $height *= $scale_y;
+
+    # Calculate the vertices of the image and write the OBJ record
+    $this->_position_image($col, $row, $x, $y, $width, $height);
+
+    # Write the IMDATA record to store the bitmap data
+    $record      = 0x007f;
+    $length      = 8 + $size;
+    $cf          = 0x09;
+    $env         = 0x01;
+    $lcb         = $size;
+
+    $header      = pack("vvvvV", $record, $length, $cf, $env, $lcb);
+
+    $this->_append($header . $data);
+}
+
+    /*
+     * Calculate the vertices that define the position of the image as
+     * required by the OBJ record.
+     *
+     *        +------------+------------+
+     *        |     A      |      B     |
+     *  +-----+------------+------------+
+     *  |     |(x1,y1)     |            |
+     *  |  1  |(A1)._______|______      |
+     *  |     |    |              |     |
+     *  |     |    |              |     |
+     *  +-----+----|    BITMAP    |-----+
+     *  |     |    |              |     |
+     *  |  2  |    |______________.     |
+     *  |     |            |        (B2)|
+     *  |     |            |     (x2,y2)|
+     *  +---- +------------+------------+
+     *
+     * Example of a bitmap that covers some of the area from cell A1 to
+     * cell B2.
+     *
+     * Based on the width and height of the bitmap we need to calculate 8
+     *vars:
+     *    $col_start, $row_start, $col_end, $row_end, $x1, $y1, $x2, $y2.
+     * The width and height of the cells are also variable and have to be
+     * taken into account.
+     * The values of $col_start and $row_start are passed in from the calling
+     * function. The values of $col_end and $row_end are calculated by
+     * subtracting the width and height of the bitmap from the width and
+     * height of the underlying cells.
+     * The vertices are expressed as a percentage of the underlying cell
+     * width as follows (rhs values are in pixels):
+     *
+     *      x1 = X / W *1024
+     *      y1 = Y / H *256
+     *      x2 = (X-1) / W *1024
+     *      y2 = (Y-1) / H *256
+     *
+     *      Where:  X is distance from the left side of the underlying cell
+     *              Y is distance from the top of the underlying cell
+     *              W is the width of the cell
+     *              H is the height of the cell
+     *
+     * Note: the SDK incorrectly states that the height should be expressed
+     * as a percentage of 1024.
+     */
+    function _position_image($col_start, $row_start, $x1, $y1,
+                             $width, $height) {
+        // $col_start   Col containing upper left corner of object
+        // $x1          Distance to left side of object
+
+        // $row_start   Row containing top left corner of object
+        // $y1          Distance to top of object
+
+        // $col_end     Col containing lower right corner of object
+        // $x2          Distance to right side of object
+
+        // $row_end     Row containing bottom right corner of object
+        // $y2          Distance to bottom of object
+
+        // $width       Width of image frame
+        // $height      Height of image frame
+
+        // Initialise end cell to the same as the start cell
+        $col_end = $col_start;
+        $row_end = $row_start;
+
+        // Zero the specified offset if greater than the cell dimensions
+        if ($x1 >= $this->_size_col($col_start)) {
+            $x1 = 0;
+        }
+        if ($y1 >= $this->_size_row($row_start)) {
+            $y1 = 0;
+        }
+
+        $width  = $width  + $x1 -1;
+        $height = $height + $y1 -1;
+
+        // Subtract the underlying cell widths to find the end cell of the
+        // image
+        while ($width >= $this->_size_col($col_end)) {
+            $width -= $this->_size_col($col_end);
+            $col_end++;
+        }
+
+        // Subtract the underlying cell heights to find the end cell of the
+        // image
+        while ($height >= $this->_size_row($row_end)) {
+            $height -= $this->_size_row($row_end);
+            $row_end++;
+        }
+
+        // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a
+        // cell with zero height or width.
+        if ($this->_size_col($col_start) == 0) { return; }
+        if ($this->_size_col($col_end)   == 0) { return; }
+        if ($this->_size_row($row_start) == 0) { return; }
+        if ($this->_size_row($row_end)   == 0) { return; }
+
+        // Convert the pixel values to the percentage value expected by Excel
+        $x1 = $x1     / $this->_size_col($col_start) * 1024;
+        $y1 = $y1     / $this->_size_row($row_start) *  256;
+        $x2 = $width  / $this->_size_col($col_end)   * 1024;
+        $y2 = $height / $this->_size_row($row_end)   *  256;
+
+        $this->_store_obj_picture($col_start, $x1, $row_start, $y1,
+                                  $col_end, $x2, $row_end, $y2);
+    }
+
+    /*
+     * Convert the width of a cell from user's units to pixels. By
+     * interpolation the relationship is: y = 7x +5. If the width
+     * hasn't been set by the user we use the default value. If the
+     * col is hidden we use a value of zero.
+     */
+    function _size_col($col) {
+        // Look up the cell value to see if it has been changed
+        if (isset($this->_col_sizes[$col])) {
+            if ($this->_col_sizes[$col] == 0) {
+                return 0;
+            } else {
+                return floor(7 * $this->_col_sizes[$col] + 5);
+            }
+        } else {
+            return 64;
+        }
+    }
+
+    /*
+     * Convert the height of a cell from user's units to pixels. By
+     * interpolation # the relationship is: y = 4/3x. If the height
+     * hasn't been set by the user we use the default value. If the
+     * row is hidden we use a value of zero. (Not possible to hide row
+     * yet).
+     */
+    function _size_row($row) {
+        // Look up the cell value to see if it has been changed
+        if (isset($this->_row_sizes[$row])) {
+            if ($this->_row_sizes[$row] == 0) {
+                return 0;
+            } else {
+                return floor(4/3 * $this->_row_sizes[$row]);
+            }
+        } else {
+            return 17;
+        }
+    }
+
+    /*
+     * Store the OBJ record that precedes an IMDATA record. This could
+     * be generalized to support other Excel objects.
+     */
+    function _store_obj_picture($col_start, $x1, $row_start, $y1,
+                                $col_end, $x2, $row_end, $y2) {
+        $record      = 0x005d;       // Record identifier
+        $length      = 0x003c;       // Bytes to follow
+
+        $cObj        = 0x0001;       // Count of objects in file (set to 1)
+        $OT          = 0x0008;       // Object type. 8 = Picture
+        $id          = 0x0001;       // Object ID
+        $grbit       = 0x0614;       // Option flags
+
+        $colL        = $col_start;   // Col containing upper left corner of
+                                     // object
+        $dxL         = $x1;          // Distance from left side of cell
+
+        $rwT         = $row_start;   // Row containing top left corner of
+                                     // object
+        $dyT         = $y1;          // Distance from top of cell
+
+        $colR        = $col_end;     // Col containing lower right corner of 
+                                     // object
+        $dxR         = $x2;          // Distance from right of cell
+
+        $rwB         = $row_end;     // Row containing bottom right corner of
+                                     // object
+        $dyB         = $y2;          // Distance from bottom of cell
+
+        $cbMacro     = 0x0000;       // Length of FMLA structure
+        $Reserved1   = 0x0000;       // Reserved
+        $Reserved2   = 0x0000;       // Reserved
+
+        $icvBack     = 0x09;         // Background colour
+        $icvFore     = 0x09;         // Foreground colour
+        $fls         = 0x00;         // Fill pattern
+        $fAuto       = 0x00;         // Automatic fill
+        $icv         = 0x08;         // Line colour
+        $lns         = 0xff;         // Line style
+        $lnw         = 0x01;         // Line weight
+        $fAutoB      = 0x00;         // Automatic border
+        $frs         = 0x0000;       // Frame style
+        $cf          = 0x0009;       // Image format, 9 = bitmap
+        $Reserved3   = 0x0000;       // Reserved
+        $cbPictFmla  = 0x0000;       // Length of FMLA structure
+        $Reserved4   = 0x0000;       // Reserved
+        $grbit2      = 0x0001;       // Option flags
+        $Reserved5   = 0x0000;       // Reserved
+
+        $header      = pack("vv", $record, $length);
+        $data        = pack("V",  $cObj);
+        $data       .= pack("v",  $OT);
+        $data       .= pack("v",  $id);
+        $data       .= pack("v",  $grbit);
+        $data       .= pack("v",  $colL);
+        $data       .= pack("v",  $dxL);
+        $data       .= pack("v",  $rwT);
+        $data       .= pack("v",  $dyT);
+        $data       .= pack("v",  $colR);
+        $data       .= pack("v",  $dxR);
+        $data       .= pack("v",  $rwB);
+        $data       .= pack("v",  $dyB);
+        $data       .= pack("v",  $cbMacro);
+        $data       .= pack("V",  $Reserved1);
+        $data       .= pack("v",  $Reserved2);
+        $data       .= pack("C",  $icvBack);
+        $data       .= pack("C",  $icvFore);
+        $data       .= pack("C",  $fls);
+        $data       .= pack("C",  $fAuto);
+        $data       .= pack("C",  $icv);
+        $data       .= pack("C",  $lns);
+        $data       .= pack("C",  $lnw);
+        $data       .= pack("C",  $fAutoB);
+        $data       .= pack("v",  $frs);
+        $data       .= pack("V",  $cf);
+        $data       .= pack("v",  $Reserved3);
+        $data       .= pack("v",  $cbPictFmla);
+        $data       .= pack("v",  $Reserved4);
+        $data       .= pack("v",  $grbit2);
+        $data       .= pack("V",  $Reserved5);
+
+        $this->_append($header . $data);
+    }
+
+    /*
+     * Convert a 24 bit bitmap into the modified internal format used by
+     * Windows. This is described in BITMAPCOREHEADER and BITMAPCOREINFO
+     * structures in the MSDN library.
+     */
+    function _process_bitmap($bitmap) {
+        // Open file and binmode the data in case the platform needs it.
+        $bmp=fopen($bitmap, "rb");
+        if (!$bmp) {
+            trigger_error("Could not open file '$bitmap'.", E_USER_ERROR);
+        }
+
+        $data=fread($bmp, filesize($bitmap));
+
+        // Check that the file is big enough to be a bitmap.
+        if (strlen($data) <= 0x36) {
+            trigger_error("$bitmap doesn't contain enough data.",
+                          E_USER_ERROR);
+        }
+
+        // The first 2 bytes are used to identify the bitmap.
+        if (substr($data, 0, 2) != "BM") {
+            trigger_error("$bitmap doesn't appear to to be a ".
+                          "valid bitmap image.", E_USER_ERROR);
+        }
+
+        // Remove bitmap data: ID.
+        $data = substr($data, 2);
+
+        // Read and remove the bitmap size. This is more reliable than reading
+        // the data size at offset 0x22.
+        $array = unpack("Vsize", $data);
+        $data = substr($data, 4);
+        $size   =  $array["size"];
+        $size  -=  0x36;   # Subtract size of bitmap header.
+        $size  +=  0x0C;   # Add size of BIFF header.
+
+        // Remove bitmap data: reserved, offset, header length.
+        $data = substr($data, 12);
+
+        // Read and remove the bitmap width and height. Verify the sizes.
+        $array = unpack("Vwidth/Vheight", $data);
+        $data = substr($data, 8);
+        $width = $array["width"];
+        $height = $array["height"];
+
+        if ($width > 0xFFFF) {
+            trigger_error("$bitmap: largest image width supported is 64k.",
+                          E_USER_ERROR);
+        }
+
+        if ($height > 0xFFFF) {
+            trigger_error("$bitmap: largest image height supported is 64k.",
+                          E_USER_ERROR);
+        }
+
+        // Read and remove the bitmap planes and bpp data. Verify them.
+        $array = unpack("vplanes/vbitcount", $data);
+        $data = substr($data, 4);
+        $planes = $array["planes"];
+        $bitcount = $array["bitcount"];
+
+        if ($bitcount != 24) {
+            trigger_error("$bitmap isn't a 24bit true color bitmap.",
+                          E_USER_ERROR);
+        }
+
+        if ($planes != 1) {
+            trigger_error("$bitmap: only 1 plane supported in bitmap image.",
+                          E_USER_ERROR);
+        }
+
+        // Read and remove the bitmap compression. Verify compression.
+        $array = unpack("Vcompression", $data);
+        $data = substr($data, 4);
+        $compression = $array["compression"];
+
+        if ($compression != 0) {
+            trigger_error("$bitmap: compression not supported in bitmap image.",
+                          E_USER_ERROR);
+        }
+
+        // Remove bitmap data: data size, hres, vres, colours, imp. colours.
+        $data = substr($data, 20);
+
+        // Add the BITMAPCOREHEADER data
+        $header = pack("Vvvvv", 0x000c, $width, $height, 0x01, 0x18);
+        $data = $header . $data;
+
+        return array($width, $height, $size, $data);
+    }
+
+    /*
+     * Store the window zoom factor. This should be a reduced fraction but for
+     * simplicity we will store all fractions with a numerator of 100.
+     */
+    function _store_zoom() {
+        // If scale is 100% we don't need to write a record
+        if ($this->_zoom == 100) {
+            return;
+        }
+
+        $record = 0x00A0; // Record identifier
+        $length = 0x0004; // Bytes to follow
+
+        $header = pack("vv", $record, $length);
+        $data   = pack("vv", $this->_zoom, 100);
+
+        $this->_append($header . $data);
+    }
+
+}
+
+?>
diff --git a/gosa-core/include/utils/excel/functions.writeexcel_utility.inc.php b/gosa-core/include/utils/excel/functions.writeexcel_utility.inc.php
new file mode 100644
index 0000000..dc758bf
--- /dev/null
+++ b/gosa-core/include/utils/excel/functions.writeexcel_utility.inc.php
@@ -0,0 +1,271 @@
+<?php
+
+/*
+ * Copyleft 2002 Johann Hanne
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This software 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA  02111-1307 USA
+ */
+
+/*
+ * This is the Spreadsheet::WriteExcel Perl package ported to PHP
+ * Spreadsheet::WriteExcel was written by John McNamara, jmcnamara at cpan.org
+ */
+
+/*
+ * Converts numeric $row/$col notation to an Excel cell reference string in
+ * A1 notation.
+ */
+function xl_rowcol_to_cell($row, $col, $row_abs=false, $col_abs=false) {
+
+    $row_abs = $row_abs ? '$' : '';
+    $col_abs = $col_abs ? '$' : '';
+
+    $int  = floor($col / 26);
+    $frac = $col % 26;
+
+    $chr1 = ''; // Most significant character in AA1
+
+    if ($int > 0) {
+        $chr1 = chr(ord('A') + $int - 1);
+    }
+
+    $chr2 = chr(ord('A') + $frac);
+
+    // Zero index to 1-index
+    $row++;
+
+    return $col_abs.$chr1.$chr2.$row_abs.$row;
+}
+
+/*
+ * Converts an Excel cell reference string in A1 notation
+ * to numeric $row/$col notation.
+ *
+ * Returns: array($row, $col, $row_absolute, $col_absolute)
+ *
+ * The $row_absolute and $col_absolute parameters aren't documented because
+ * they are mainly used internally and aren't very useful to the user.
+ */
+function xl_cell_to_rowcol($cell) {
+
+    preg_match('/(\$?)([A-I]?[A-Z])(\$?)(\d+)/', $cell, $reg);
+
+    $col_abs = ($reg[1] == "") ? 0 : 1;
+    $col     = $reg[2];
+    $row_abs = ($reg[3] == "") ? 0 : 1;
+    $row     = $reg[4];
+
+    // Convert base26 column string to number
+    // All your Base are belong to us.
+    $chars  = preg_split('//', $col, -1, PREG_SPLIT_NO_EMPTY);
+    $expn   = 0;
+    $col    = 0;
+
+    while (sizeof($chars)>0) {
+        $char = array_pop($chars); // Least significant character first
+        $col += (ord($char) - ord('A') + 1) * pow(26, $expn);
+        $expn++;
+    }
+
+    // Convert 1-index to zero-index
+    $row--;
+    $col--;
+
+    return array($row, $col, $row_abs, $col_abs);
+}
+
+/*
+ * Increments the row number of an Excel cell reference string
+ * in A1 notation.
+ * For example C4 to C5
+ *
+ * Returns: a cell reference string in A1 notation.
+ */
+function xl_inc_row($cell) {
+    list($row, $col, $row_abs, $col_abs) = xl_cell_to_rowcol($cell);
+    return xl_rowcol_to_cell(++$row, $col, $row_abs, $col_abs);
+}
+
+/*
+ * Decrements the row number of an Excel cell reference string
+ * in A1 notation.
+ * For example C4 to C3
+ *
+ * Returns: a cell reference string in A1 notation.
+ */
+function xl_dec_row($cell) {
+    list($row, $col, $row_abs, $col_abs) = xl_cell_to_rowcol($cell);
+    return xl_rowcol_to_cell(--$row, $col, $row_abs, $col_abs);
+}
+
+/*
+ * Increments the column number of an Excel cell reference string
+ * in A1 notation.
+ * For example C3 to D3
+ *
+ * Returns: a cell reference string in A1 notation.
+ */
+function xl_inc_col($cell) {
+    list($row, $col, $row_abs, $col_abs) = xl_cell_to_rowcol($cell);
+    return xl_rowcol_to_cell($row, ++$col, $row_abs, $col_abs);
+}
+
+/*
+ * Decrements the column number of an Excel cell reference string
+ * in A1 notation.
+ * For example C3 to B3
+ *
+ * Returns: a cell reference string in A1 notation.
+ */
+function xl_dec_col($cell) {
+    list($row, $col, $row_abs, $col_abs) = xl_cell_to_rowcol($cell);
+    return xl_rowcol_to_cell($row, --$col, $row_abs, $col_abs);
+}
+
+function xl_date_list($year, $month=1, $day=1,
+                      $hour=0, $minute=0, $second=0) {
+
+    $monthdays=array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
+
+    // Leap years since 1900 (year is dividable by 4)
+    $leapyears=floor(($year-1900)/4);
+
+    // Non-leap years since 1900 (year is dividable by 100)
+    $nonleapyears=floor(($year-1900)/100);
+
+    // Non-non-leap years since 1900 (year is dividable by 400)
+    // (Yes, it MUST be "1600", not "1900")
+    $nonnonleapyears=floor(($year-1600)/400);
+
+    // Don't count the leap day of the specified year if it didn't
+    // happen yet (i.e. before 1 March)
+    //
+    // Please note that $leapyears becomes -1 for dates before 1 March 1900;
+    // this is not logical, but later we will add a day for Excel's
+    // phantasie leap day in 1900 without checking if the date is actually
+    // after 28 February 1900; so these two logic errors "neutralize"
+    // each other
+    if ($year%4==0 && $month<3) {
+      $leapyears--;
+    }
+
+    $days=365*($year-1900)+$leapyears-$nonleapyears+$nonnonleapyears;
+
+    for ($c=1;$c<$month;$c++) {
+      $days+=$monthdays[$c-1];
+    }
+
+    // Excel actually wants the days since 31 December 1899, not since
+    // 1 January 1900; this will also add this extra day
+    $days+=$day;
+
+    // Excel treats 1900 erroneously as a leap year, so we must
+    // add one day
+    //
+    // Please note that we DON'T have to check if the date is after
+    // 28 February 1900, because for such dates $leapyears is -1
+    // (see above)
+    $days++;
+
+    return (float)($days+($hour*3600+$minute*60+$second)/86400);
+}
+
+function xl_parse_time($time) {
+
+    if (preg_match('/(\d{1,2}):(\d\d):?((?:\d\d)(?:\.\d+)?)?(?:\s+)?(am|pm)?/i', $time, $reg)) {
+
+        $hours       = $reg[1];
+        $minutes     = $reg[2];
+        $seconds     = $reg[3] || 0;
+        $meridian    = strtolower($reg[4]) || '';
+
+        // Normalise midnight and midday
+        if ($hours == 12 && $meridian != '') {
+            $hours = 0;
+        }
+
+        // Add 12 hours to the pm times. Note: 12.00 pm has been set to 0.00.
+        if ($meridian == 'pm') {
+            $hours += 12;
+        }
+
+        // Calculate the time as a fraction of 24 hours in seconds
+        return (float)(($hours*3600+$minutes*60+$seconds)/86400);
+
+    } else {
+        return false; // Not a valid time string
+    }
+}
+
+/*
+ * Automagically converts almost any date/time string to an Excel date.
+ * This function will always only be as good as strtotime() is.
+ */
+function xl_parse_date($date) {
+
+    $unixtime=strtotime($date);
+
+    $year=date("Y", $unixtime);
+    $month=date("m", $unixtime);
+    $day=date("d", $unixtime);
+    $hour=date("H", $unixtime);
+    $minute=date("i", $unixtime);
+    $second=date("s", $unixtime);
+
+    // Convert to Excel date
+    return xl_date_list($year, $month, $day, $hour, $minute, $second);
+}
+
+/*
+ * Dummy function to be "compatible" to Spreadsheet::WriteExcel
+ */
+function xl_parse_date_init() {
+    // Erm... do nothing...
+    // strtotime() doesn't require anything to be initialized
+    // (do not ask me how to set the timezone...)
+}
+
+/*
+ * xl_decode_date_EU() and xl_decode_date_US() are mapped
+ * to xl_parse_date(); there seems to be no PHP function that
+ * differentiates between EU and US dates; I've never seen
+ * somebody using dd/mm/yyyy anyway, it always should be one of:
+ * - yyyy-mm-dd (international)
+ * - dd.mm.yyyy (european)
+ * - mm/dd/yyyy (english/US/british?)
+*/
+
+function xl_decode_date_EU($date) {
+    return xl_parse_date($date);
+}
+
+function xl_decode_date_US($date) {
+    return xl_parse_date($date);
+}
+
+function xl_date_1904($exceldate) {
+
+    if ($exceldate < 1462) {
+        // date is before 1904
+        $exceldate = 0;
+    } else {
+        $exceldate -= 1462;
+    }
+
+    return $exceldate;
+}
+
+?>
diff --git a/gosa-core/locale/core/de/LC_MESSAGES/messages.po b/gosa-core/locale/core/de/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..f9b1f7b
--- /dev/null
+++ b/gosa-core/locale/core/de/LC_MESSAGES/messages.po
@@ -0,0 +1,6663 @@
+# translation of messages.po to deutsch
+# translation of messages.po to
+# GOsa2 Translations
+# Copyright (C) 2003 GONICUS GmbH, Germany
+# This file is distributed under the same license as the GOsa2 package.
+#
+#
+# Alfred Schroeder <schroeder at GONICUS.de>, 2004.
+# Cajus Pollmeier <pollmeier at gonicus.de>, 2004, 2005, 2006, 2008, 2009.
+# Jan Wenzel <jan.wenzel at gonicus.de>, 2004,2005, 2008.
+# Stefan Koehler <stefan.koehler at GONICUS.de>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2009-10-05 15:19+0200\n"
+"Last-Translator: Cajus Pollmeier <pollmeier at gonicus.de>\n"
+"Language-Team: de <kde-i18n-de at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Warnung"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Dieser Eintrag wird unter Umständen von verschiedenen Gruppen genutzt. Bitte "
+"überprüfen Sie genau was Sie tun, da GOsa keine Möglichkeit hat, die Daten "
+"wiederherzustellen."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Wenn Sie sicher sind, drücken Sie 'Entfernen' um fortzufahren oder "
+"'Abbrechen' zum Abbruch."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr "GOsa Anmeldefenster"
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr "Anmeldefenster"
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+"Nutzen Sie Ihren Benutzernamen und Ihr Passwort, um sich an der Verwaltung "
+"des Standorts anzumelden."
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Benutzername"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Passwort"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Verzeichnis"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Anmelden"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Hier klicken zum Anmelden"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr "Kopieren & Einfügen - Assistent"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Bestimmte Werte müssen im gesamten Verzeichnis eindeutig sein, während "
+"andere Kombinationen keinen Sinn ergeben. GOsa zeigt die relevanten "
+"Attribute. Bitte verwalten Sie die Werte, die unten angezeigt werden, um die "
+"Auflagen zu erfüllen."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+"Beachten Sie, dass manche Einstellungen wie z.B. erstellte Snapshots nicht "
+"kopiert werden!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+"Oder wenn sie einen Eintrag in GOsa kopieren oder ausschneiden und das "
+"Quellobjekt entfernen, werden Sie wahrscheinlich wieder eine Fehlermeldung "
+"erhalten, wenn Sie das Objekt einfügen!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Speichern"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr "Alle abbrechen"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Vorgang abgeschlossen"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Speichern"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"Die Größenbeschränkung sorgt dafür, daß die LDAP-Operationen schneller "
+"durchgeführt werden können und verringern die Last auf dem LDAP-Server. Der "
+"einfachste Weg, große Datenbanken ohne große Zeitüberschreitungen zu "
+"bearbeiten ist es Filter zu verwenden und die Größenbeschränkungen auf einen "
+"sinnvollen Wert einzustellen."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Bitte entscheiden Sie, wie für diese Sitzung verfahren werden soll"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+"Ignoriere diesen Fehler und zeige alle vom LDAP-Server gelieferten Einträge"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"Ignoriere diesen Fehler und zeige alle Einträge, die innerhalb der "
+"Größenbeschränkung liegen"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Setzen"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr "Zugewiesene ACL für aktuellen Eintrag"
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr "Neue ACL"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr "ACL-Typ"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr "Wählen Sie einen ACL-Typ"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Anwenden"
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr "Zusätzliche Filteroptionen"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr "Verwende Mitglieder von"
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr "Verfügbare Mitglieder"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr "Zeige mögliche Empfänger dieser Nachricht"
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Mitglieder"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr "Zeige Nachrichtenempfänger"
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr "Liste verfügbarer ACL-Kategorien"
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr "ACL für dieses Objekt"
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr "Verfügbare Rollen"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Ihr Passwort ist abgelaufen. Geben Sie bitte ein neues ein!"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr "Altes Passwort"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Neues Passwort"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr "Passwort überprüfen"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Passwort ändern"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Hier klicken, um Ihr Passwort zu ändern"
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr "Ihre GOsa-Sitzung wurde geschlossen!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+"Bitte schliessen Sie dieses Browserfenster und leeren den "
+"Authentisierungscache um eine automatische Wiederanmeldung des Browsers zu "
+"verhindern."
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr "Stelle Objekt-Snapshots wieder her"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+"Dieser Vorgang stellt einen Snaphot des gewählten Objekts wieder her. Er "
+"wird dabei das vorhandene überschreiben, nachdem Sie den Wiederherstellen-"
+"Knopf gedrückt haben."
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+"Beachten Sie, dass die DNS-Konfiguration mitsamt den Datenbankeinträgen "
+"nicht wiederhergestellt werden kann.Für manche Objekte reicht es bereits, "
+"sie zu öffnen und zu speichen (GOfon), andere Einträge müssen manuell "
+"erstellt werden (glpi)."
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+"Vergessen Sie nicht, Verweise auf andere Objekte zu überprüfen, bspw. ob der "
+"gewählte Drucker noch existiert."
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Objekt"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr "Es ist kein Snapshot verfügbar, der wiederhergestellt werden kann"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+"Wählen Sie einen Snapshot und klicken Sie auf das Ordner-Bild, um diesen "
+"wiederherzustellen."
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr "Erstelle Objekte-Snapshots"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+"Dieser Vorgang wird einen Snapshot des gewählten Objekts erzeugen. Er wird "
+"innerhalb eines speziellen Zweiges Ihres Verzeichnisses gespeichert und kann "
+"später wieder hergestellt werden."
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+"Beachten Sie, dass Datenbankeinträge, DNS-Konfigurationen und evtl. "
+"erstellte Zonen in den Server-Erweiterungen nicht im Snapshot gespeichert "
+"werden."
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr "Zeitstempel"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr "Grund für das Erzeugen dieses Snapshots"
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Fortsetzen"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Fehler"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Information"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Ihr Passwort ändern"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Erfolg"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Ihr Passwort wurde erfolgreich geändert."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Passwort-Änderung"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+"Dieser Dialog ermöglicht Ihnen auf einfache Weise, Ihr Passwort zu ändern. "
+"Geben Sie das aktuelle Passwort und zweimal das neue Passwort in den Feldern "
+"unterhalb ein und drücken Sie den 'Ändern'-Knopf."
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Momentanes Passwort"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr "Neues Passwort (Wiederholung)"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr "Passwort-Stärke"
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Ändern"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Ein Zugriffskonflikt wurde festgestellt"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Wenn diese Anzeige eines Zugriffskonflikts fehlerhaft ist, hat eine andere "
+"Person offenbar während der Bearbeitung eines Eintrages einfach den "
+"Webbrowser geschlossen. In einem solchen Fall können Sie den Konflikt durch "
+"einen Klick auf Trotzdem bearbeiten übergehen."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr "Nur anschauen"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "GOsa Hilfe-Browser"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Index"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Suchen"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Die Gültigkeit ihrer GOsa-Sitzung ist abgelaufen!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"Die letzte in der Web-Applikation durchgeführte Aktion liegt einige Zeit in "
+"der Vergangenheit. Aus Sicherheitsgründen wurde die Sitzung geschlossen. Um "
+"mit der Administration fortzufahren, melden Sie sich bitte erneut an."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Erneut anmelden"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Ein Sitzungskonflikt wurde festgestellt"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Vermutlich existiert eine andere aktive Instanz Ihrer Sitzung. Das Arbeiten "
+"mit mehreren Fenstern ist technisch so nicht möglich und hängt stark vom "
+"eingesetzten Browser ab. Die Verwendung unterschiedlicher Browser zur "
+"gleichen Zeit (z.B. IE und Mozilla) ist möglich. Das Drücken von 'Abmelden' "
+"schließt diese Sitzung."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Falls Sie trotzdem fortfahren, können einige Daten der momentan bearbeiteten "
+"Dialoge verlorengehen. Deshalb schließen Sie bitte die verschiedenen Fenster "
+"und melden sich neu an."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Abmelden"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Sie bearbeiten gerade einen Datenbankeintrag. Sollen die Daten verworfen "
+"werden?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Hauptmenü"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Hilfe"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Abmelden"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Angemeldet:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr "GOsa Hauptmenü"
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr "Schwerer Fehler"
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "Die GOsa-Konfigurationsdatei %s/%s ist nicht lesbar. Abgebrochen."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Konfigurationsfehler"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+"Auf das als Compile-Verzeichnis angegegebene Verzeichnis '%s' kann nicht "
+"zugegriffen werden!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr "Passwort-Methode"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr "Fehler: Passwort-Methode ist nicht verfügbar!"
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"Die Passwörter, die Sie als 'Neues Passwort' und 'Neues Passwort "
+"(Wiederholung)' eingegeben haben sind nicht identisch."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "Das alte und neue Passwort sind sich zu ähnlich."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr ""
+"Das Passwort, welches Sie als 'Neues Passwort' eingegeben haben, ist zu kurz."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Kennung"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Bitte überprüfen Sie die Kombination von Benutzernamen und Passwort."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Sie haben keine Berechtigung ihr Passwort zu ändern."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "Das externe Passwort-Änderungsprogramm hat einen Fehler gemeldet:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "Die Sitzung ist nicht verschlüsselt."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "SSL Sitzung"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr "Die Sitzung ist nicht verschlüsselt!"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+"Die Konfiguration der Gültigkeitsdauer einer Sitzung in Ihrer gosa.conf wird "
+"von der Einstellung in der php.ini überschrieben."
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr "Smarty-Fehler"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr "Es gab ein Problem mit der Authentisierungseinrichtung!"
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+"Es konnte kein gültiger Benutzer für die aktuell eingerichtete "
+"Authentisierung gefunden werden!"
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+"Die Benutzerinformation ist für die konfigurierten LDAP-Bäume nicht "
+"eindeutig!"
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "LDAP-Fehler"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr "Kann Information über das installierte LDAP-Schema nicht ermitteln!"
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr "Ihre LDAP-Einrichtung enthält veraltete Schema-Definitionen:"
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Bitte geben Sie einen gültigen Benutzernamen ein!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Bitte geben Sie Ihr Passwort ein!"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr "Authentifizierungsfehler"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+"Konnte Benutzerinformation für htaccess-Authentisierung nicht beziehen!"
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Das Konto ist gesperrt. Bitte benachrichtigen Sie den Administrator!"
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Ihr Browser hat Cookies deaktiviert. Bitte aktivieren Sie zunächst Cookies "
+"und laden anschliessend diese Seite neu, bevor Sie sich anmelden!"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr "Smarty"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+"Konnte Datei '%s' nicht finden - bitte führen Sie '%s' aus um das Problem zu "
+"beseitigen"
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr "PHP-Konfiguration"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"FATAL: 'Register globals' ist im PHP aktiviert. GOsa läßt keine Anmeldung "
+"zu, bis dies von einem Administrator behoben wurde."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr "Der verfügbare Arbeitsspeicher wird knapp!"
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr "Prüfung der Benutzer-ACLs deaktiviert"
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr "Ihr Passwort ist fast abgelaufen, bitte setzen Sie ein neues!"
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr "Erweiterung"
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "FATAL: Es kann kein Plugin für die Definition '%s' gefunden werden!"
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr "Konfigurationsfehler"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+"FATAL: es wurden nicht alle POST-Variablen von PHP übertragen - bitte "
+"informieren Sie den Administrator!"
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Hilfe-Browser"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Für diese Klasse wurde keine Hilfedatei angegeben"
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "Vorherige"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "Nächste"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Auf das Hilfeverzeichnis '%s' kann nicht zugegriffen werden - kann daher "
+"keine Hilfedateien lesen."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "unkonfiguriert"
+
+#: include/class_management.inc:145
+msgid "Filter error"
+msgstr "Filter Fehler"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr "Der Filter ist unvollständig!"
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr "Berechtigung"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr "Berechtigungsfehler"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s zu erstellen."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s wiederherzustellen."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+"Es wurde keine TAB-Definition für '%s' in der Konfigurationsdatei gefunden. "
+"Kann keine Plugin-Instanz erzeugen!"
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+"Das mcrypt-Modul wurde nicht gefunden. Bitte installieren Sie php5-mcrypt."
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr "Die Socket-Verbindung zum Host '%s:%s' ist fehlgeschlagen: %s"
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr "Socket-Timeout von %s Sekunden erreicht."
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+"Es konnte keine passende Passwort-Methode für den aktuellen Hash gefunden "
+"werden!"
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+"Die Snapshot-Funktionalität ist aktiviert, aber die erforderliche Variable '%"
+"s' ist nicht gesetzt."
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+"Die Snapshot-Funktionalität ist aktiviert, aber das erforderliche Modul '%s' "
+"ist nicht verfügbar. Bitte installieren Sie '%s'."
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Zugriffskontrolle"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr "Zugriffskontrolllisten verwalten"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+msgid "All users"
+msgstr "Alle Benutzer"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Alle Kategorien"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "ACLs zurücksetzen"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Diese Ebene"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Aktuelles Objekt"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Vollständiger Teilbaum"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Vollständiger Teilbaum (permanent)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Verwende ACL aus Rollendefinition"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Benutzer"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Gruppen"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Auf"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "Ab"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "Zugriffsregeln"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Entfernen"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr "Keine ACL-Einstellungen für diese Kategorie!"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Enthält ACLs für diese Objekte: %s"
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "ACL Kategorie"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "ACL für '%s' bearbeiten - Gültigkeitsbereich ist '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Alle Objekte im aktuellen Teilbaum"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr "Zeige/verstecke erweiterte Einstellungen"
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Erstelle Objekte"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Objekte verschieben"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Objekte entfernen"
+
+#: include/class_acl.inc:807
+msgid "Grant permission to owner"
+msgstr "Berechtigungen für Eigentümer einräumen"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "lesen"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "schreiben"
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr "Vollständiges Objekt"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "Interner Fehler"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "Unbekannter ACL-Typ '%s'!"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Unbekannter Eintrag '%s'!"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr "Rolle: %s"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr "unbekannte rolle"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Enthält Einstellungen für diese Objekte: %s"
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr "inaktiv"
+
+#: include/class_acl.inc:1096
+msgid "No members"
+msgstr "Keine Mitglieder"
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr "Zugriffskontrollliste"
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr "ACL-Rollen"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"Der angeforderte Kanal existiert nicht! Bitte benachrichtigen Sie Ihren "
+"Administrator."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr "Alle auswählen"
+
+#: include/class_listing.inc:519
+msgid "created by"
+msgstr "Angelegt von"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Gehe zur Wurzel-Abteilung"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Wurzel"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Eine Abteilung nach oben"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Gehe zur Abteilung des Benutzers"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Heimat"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Liste neu laden"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Übertragen"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Aktionen"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr "Kopieren"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Einfügen"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Diesen Eintrag ausschneiden"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Diesen Eintrag kopieren"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+msgid "Restore snapshots"
+msgstr "Abzug wiederherstellen"
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr "Liste exportieren"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr "Abzug wiederherstellen"
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr "Snapshot erstellen"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr "Erstelle einen neuen Snapshot dieses Objekts"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Diesen Eintrag bearbeiten"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Diesen Eintrag entfernen"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Schwerer Fehler: keine Klassenfundorte definiert - bitte führen Sie '%s' "
+"aus, um das Problem zu beheben"
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Schwerer Fehler: Kann Klasse '%s' nicht instanziieren - bitte führen Sie '%"
+"s' aus um das Problem zu beheben"
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+"FATAL: Fehler beim Verbinden mit dem LDAP-Server. Die Meldung lautet '%s'."
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "Der Benutzername / die UID ist nicht eindeutig für den LDAP-Baum."
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"Der Benutzername / die UID ist nicht eindeutig für den LDAP-Baum. Bitte "
+"kontaktieren Sie Ihren Administrator."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+"Fehler beim Setzen einer Sperre. Bitte kontaktieren Sie die Entwickler!"
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Kann Sperrinformation für LDAP-Baum nicht erzeugen. Bitte kontaktieren Sie "
+"Ihren Administrator!"
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Der LDAP-Server meldete: %s"
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Mehrere Sperren für das zu sperrende Objekt gefunden. Dies sollte nicht "
+"passieren - räume mehrere Referenzen auf."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "Die Größenbeschränkung von %d Einträgen ist überschritten!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Verwende eine neue Größenbeschränkung von %s Einträgen und zeige diese "
+"Meldung bei Überschreitung wieder an"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Konfigurieren"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "unvollständig"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Trotzdem Fortsetzen"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Trotzdem bearbeiten"
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Sie bearbeiten gerade den/die LDAP Eintrag/Einträge %s"
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "Einträge pro Seite"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Filter anwenden"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "GOsa Entwicklerversion (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr "Die Datei '%s' konnte nicht entfernt werden."
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr "Kann nicht in Revisions-Datei schreiben!"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr "'baseIdHook' ist nicht verfügbar. Verwende die Standard-Basis!"
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr "LDAP-Warnung"
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"Kann die Schema-Informationen nicht vom Server beziehen. Keine Schemaprüfung "
+"möglich!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr "Verwendet, um kontenbezogene Informationen zu speichern."
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+"Verwenden, um die momentan bearbeiteten Einträge für andere zu sperren (um "
+"gleichzeitige Änderungen zu verhindern)."
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Die benötigte Objektklasse '%s' fehlt!"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr "Die optionale Objektklasse '%s' fehlt!"
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr "Falsche·Version·der·benötigten·Objektklasse·'%s'·(!=%s)!"
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr "Verfügbare Klasse(n)"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+"Sie haben die rfc2307bis-Option in der LDAP-Einrichtung aktiviert, aber Ihre "
+"Schema-Konfiguration unterstützt dies nicht."
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+"Um rfc2307bis-konforme Gruppen verwenden zu können, muss die Objektklasse "
+"'posixGroup' AUXILIARY sein"
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+"Ihre Schemakonfiguration ist für rfc2307bis-Gruppen eingerichtet, aber Sie "
+"haben die Unterstützung im LDAP-Einrichtungsschritt ausgeschaltet."
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr "Die Objektklasse 'posixGroup' muss STRUCTURAL sein"
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Deutsch"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Französisch"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italienisch"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Spanisch"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Englisch"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Niederländisch"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Polnisch"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "Chinesisch"
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr "Vietnamesisch"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Russisch"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"Das in POSTMODIFY angegebene Kommando '%s' (Modul '%s') scheint nicht zu "
+"existieren."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr "Kann Samba-Hash nicht erzeugen!"
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+"Kann keinen SAMBA-Hash generieren: die Ausführung von '%s' ist "
+"fehlgeschlagen, prüfen Sie den 'sambaHashHook'!"
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+msgid "Cannot allocate a free ID:"
+msgstr "Konnte keine freie ID allozieren:"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr "unbekannte idAllocation-Methode!"
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr "%sPoolMin >= %sPoolMax!"
+
+#: include/functions.inc:3393
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "kann sambaUnixIdPool-Eintrag nicht anlegen!"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr "sambaUnixIdPool ist nicht eindeutig!"
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr "keine ID verfügbar!"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr "maximale Anzahl von Versuchen abgelaufen!"
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr "Konnte keine freie ID allozieren!"
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+"Es wurde keine Plugin-Definition gefunden um '%s' zu Initialisieren. Bitte "
+"prüfen Sie Ihre Konfigurationsdatei!"
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "Der Lösch-Vorgang wurde durch das plugin '%s' beendet: %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Referenzen"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Sie sind dabei den Snapshot '%s' zu entfernen."
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr "Snapshot entfernen."
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Beschreibung"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr "CSV"
+
+#: include/exporter/class_PDF.inc:24
+msgid "Page"
+msgstr "Seite"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr "Kein PDF-Export möglich: FPDF-Bibliothek ist nicht installiert."
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr "PDF"
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr "Sie bearbeiten momentan mehrere Einträge."
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr "Passwort Rücksetzung"
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr "Das Nutzer-Passwort wurde zurückgesetzt, bitte setzen Sie ein Neues!"
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr "Zertifikat ist leer!"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr "Zertifikat kann nicht geladen werden - nur PEM/DER sind unterstützt!"
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr ""
+"Zertifikatinformationen können nur für PEM Zertifikate ermittelt werden!"
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr "Kein gültiges Zertifikat geladen!"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+"Der PHP-Interpreter meldete einen oder mehrere Fehler beim Erzeugen dieser "
+"Seite!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr "Sende Fehlerbericht an das GOsa Team"
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr "Fehlerbericht senden"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Zeige/Verstecke Informationen"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "PHP Fehler"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "Klasse"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "Funktion"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "statisch"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "Methode"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Ablaufverfolgung"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "Datei"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Zeile"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Typ"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Argumente"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr "Suche in Teilbäumen"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+"Das Objekt wurde verändert nachdem es in GOsa geöffnet wurde. Bitte stellen "
+"Sie sicher, dass niemand wichtige Änderungen vorgenommen hat, die verloren "
+"gehen, wenn Sie diesen Eintrag speichern!"
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr "Ändere ACL dn"
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "von"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr "an"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr "Wiederherstellen"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "Ausschneiden"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "Kopieren"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "XML-Fehler in der Datei guide.xml: %s in Zeile %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "Für dieses Modul ist keine Hilfe verfügbar."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s Ergebnisse für Ihre Suche nach %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% Trefferquote in Datei %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+"Die Einstellung '%s' der Zeitzone in Ihrer gosa.conf ist ungültig. Kann "
+"Zeitzonen-Versatz nicht berechnen."
+
+#: include/utils/class_xml.inc:48
+msgid "in"
+msgstr "in"
+
+#: include/utils/class_xml.inc:50
+msgid "on line"
+msgstr "in Zeile"
+
+#: include/utils/class_xml.inc:51
+msgid "XML error"
+msgstr "XML-Fehler"
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Auswählen um Objekte des Typs '%s' aufzulisten."
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Wählen Sie dies um Objekte aufzulisten die '%s' enthalten."
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Auswählen um Objekte des Typs '%s' aufzulisten"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Wählen Sie diese Option um auch in Teilbäumen zu suchen"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr "Dieses objekt wird gelöscht!"
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr "Dieses '%s'-Objekt wird gelöscht!"
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr "Dieses Objekt wird gelöscht: %s"
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr "Dieses '%s'-Objekt wird gelöscht: %s"
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr "Dieses Objekt wird gelöscht:"
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr "Dieses '%s'-Objekt wird gelöscht:"
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr "Diese Objekte werden gelöscht: %s"
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr "Diese '%s'-Objekte werden gelöscht: %s"
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu löschen!"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu löschen:"
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr "Sie sind nicht berechtigt dieses Objekte zu löschen:"
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr "Sie sind nicht berechtigt diese Objekt anzulegen!"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr "Sie sind nicht berechtigt dieses Objekt anzulegen:"
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr "Sie sind nicht berechtigt diese Objekte anzulegen:"
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu verändern!"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu verändern:"
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr "Sie sind nicht berechtigt diese Objekte zu verändern:"
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu öffnen!"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu öffnen:"
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr "Sie sind nicht berechtigt diese Objekte zu öffnen:"
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu verschieben!"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr "Sie sind nicht berechtigt dieses Objekt zu verschieben:"
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr "Sie sind nicht berechtigt diese Objekte zu verschieben:"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr "Verbindungs-Information"
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Kann keine Verbindung zur %s Datenbank aufbauen!"
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr "Kann die Datenbank %s nicht auswählen!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr "Kein Server für %s definiert!"
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr "Kann die Datenbank %s nicht abfragen!"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Das Feld '%s' enthält ein reserviertes Schlüsselwort!"
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+"Das als '%s'-Erweiterung angegebene Kommando für Modul '%s' existiert nicht!"
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr "'%s'-Kommando ist ungültig!"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr "'%s' Kommando (%s) für Modul %s ist ungültig!"
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr "'%s' Kommando für Modul %s ist ungültig!"
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "'%s' Kommando (%s) ist ungültig!"
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Kann '%s' Kommando nicht ausführen!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr "Kann '%s' Kommando (%s) für Modul %s nicht ausführen!"
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr "Kann '%s' Kommando für Modul %s nicht ausführen!"
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Kann '%s' Kommando (%s) nicht ausführen!"
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr "Der Wert für '%s' ist zu groß!"
+
+#: include/utils/class_msgPool.inc:238
+#, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "'%s' muß kleiner sein als %s!"
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr "Der Wert für '%s' ist zu kein!"
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr "'%s' muß größer oder gleich %d sein!"
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr "'%s' hängt von '%s' ab - bitte geben Sie beide Werte an!"
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "Es existiert bereits ein Eintrag mit diesem '%s' Attribut im System!"
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Das Pflicht-Feld '%s' ist leer!"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr "Beispiel"
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Das Feld '%s' enthält ungültige Zeichen"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr "'%s' ist nicht erlaubt:"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr "'%s' sind nicht erlaubt!"
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Das Feld '%s' enthält ungültige Zeichen!"
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Fehlenden %s PHP-Erweiterung!"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr "%s hinzufügen"
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr "%s löschen"
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr "%s einstellen"
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr "Bearbeiten..."
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr "%s bearbeiten..."
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Zurück"
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Dieses Konto besitzt keine gültigen %s-Einstellungen."
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"Dieses Konto besitzt aktivierte %s-Einstellungen. Sie können diese durch "
+"einen Klick auf die untere Schaltfläche deaktivieren."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Dieses Konto besitzt aktivierte %s-Erweiterungen. Um sie zu deaktivieren, "
+"müssen Sie zunächst die %s Einstellungen entfernen!"
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"Dieses Konto hat keine %s-Einstellungen aktiviert. Sie können Sie durch "
+"einen Klick auf die Schaltfläche aktivieren."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Dieses Konto besitzt aktuell keine aktivierten %s-Einstellungen. Um sie zu "
+"aktivieren, müssen Sie zunächst die %s Erweiterungen hinzufügen!"
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr "%s Einstellungen hinzufügen"
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr "%s Einstellungen entfernen"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Betätigen sie den 'Bearbeiten'-Schalter unten um Informationen in diesem "
+"Dialog zu ändern"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Januar"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Februar"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "März"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "April"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Mai"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Juni"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Juli"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "August"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "September"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Oktober"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "November"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Dezember"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Sonntag"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Montag"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Freitag"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Samstag"
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr "MySQL-Operation fehlgeschlagen!"
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr "Lese-Operation"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr "Hinzufügeoperation"
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr "Änderungs-Operation"
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr "Lösch-Operation"
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr "Such-Operation"
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr "Authentifizierung"
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr "LDAP %s fehlgeschlagen!"
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr "LDAP-Operation fehlgeschlagen"
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr "Übertragung fehlgeschlagen!"
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr "Übertragung fehlgeschlagen: %s"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr "Kommunikationsfehler mit dem Infrastruktur Dienst!"
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr "Kommunikationsfehler mit dem Infrastruktur Dienst: %s"
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr "Dieses '%s' ist noch in Gebrauch dieses Objekts: %s"
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr "Dieses '%s' ist noch in Benutzung."
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "Dieses '%s' ist noch in Gebrauch dieser Objekte: %s"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr "Die Datei '%s' existiert nicht!"
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Kann Datei '%s' nicht zum Lesen öffnen!"
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Kann Datei '%s' nicht zum Schreiben öffnen!"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+"Der Wert für '%s' ist momentan nicht konfiguriert oder ungültig. Bitte "
+"prüfen Sie Ihre Konfigurationsdatei!"
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Kann Datei '%s' nicht löschen!"
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Kann den Ordner '%s' nicht anlegen!"
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Kann den Ordner '%s' nicht löschen!"
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr "Prüfe auf %s-Unterstützung"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr "Installieren und aktivieren Sie das %s PHP-Modul."
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+"Die Klasse '%s' kann nicht initialisiert werden! Vielleicht fehlt ein Modul "
+"in Ihren GOsa-Einstellungen?"
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+"Die angegebene Basis ist ungültig. Der alte Wert wurde wieder hergestellt!"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Leistungswarnung"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+"Die LDAP-Leistung ist mangelhaft: Die letzte Abfrage dauerte etwa %.2f "
+"Sekunden!"
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+"Kann Teilbäume mit RDN '%s' nicht automatisch erzeugen: keine Objektklasse "
+"gefunden!"
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+"Kann Teilbäume mit RDN '%s' nicht automatisch erzeugen: nicht unterstützt"
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "während der Arbeit mit '%s' auf dem LDAP-Server '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "während der Arbeit auf LDAP-Server '%s'"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"Dies ist keine valide DN: '%s'.  Ein Block für den Import sollte mit "
+"'dn:...' beginnen in Zeile %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Fehler beim Importieren von dn: '%s', bitte überprüfen Sie die LDIF-Datei ab "
+"Zeile %s!"
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Protokollieren fehlgeschlagen: %s"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "Ungültige Option '%s' angegeben!"
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr "Der angegebene Objekt-Typ ist leer oder ungültig!"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr "GOsa support daemon"
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr "XML-Nachricht kann nicht ausgewertet werden!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Kann keine Abbruch-Nachricht für den Eintrag %s versenden!"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr "Kann Eintrag %s nicht entfernen!"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "XML-Fehler in der Datei gosa.conf: %s in Zeile %d"
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Kann nicht mit dem LDAP-Server verbinden. Bitte benachrichtigen Sie den "
+"Administrator."
+
+#: include/class_config.inc:695
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "sambaSID und/oder sambaRidBase fehlen in der Konfiguration!"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr "Konfiguration"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+"Die von Ihnen verwendete Konfigurationsdatei scheint veraltet zu sein. Bitte "
+"entfernen Sie diese Datei und starten Sie das GOsa-Setup."
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Keine Objekte dieser Kategorie"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+"Das Konfigurationsformat hat sich geändert. Bitte durchlaufen Sie erneut die "
+"Einrichtung!"
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr "Kopieren & Einfügen ist fehlgeschlagen!"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Kann Berechtigungen für '%s' nicht setzen"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr "'%s' ist kein gültiges LDAP-Objekt"
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr "Keine Schreibberechtigung in '%s'"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr "Diese Objekte werden eingefügt: %s"
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr "Dieses Objekt wird eingefügt: %s"
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "Kann nicht einfügen"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr "Bitte beheben Sie obigen Fehler und laden die Seite neu."
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Allgemein"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Mail"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "Fax"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Gruppe"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Abteilung"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Telefon"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Anwendung"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Server"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Thin Client"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Arbeitsstation"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Objektgruppe"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Drucker"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Objektname"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Inhalt"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Dieses Objekt hat keine Referenzen zu anderen Objekten."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Willkommen %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Dies ist das GOsa Hauptmenü. Wählen Sie die gewünschte Option aus dem Menü "
+"links oder durch die Auswahl eines Piktogrammes unten. Alle Änderungen "
+"werden direkt in den LDAP-Server Ihres Unternehmens eingepflegt."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Benutzen Sie 'Abmelden' oben links, um die Arbeit mit GOsa zu beenden und "
+"'Hauptmenü', um wieder in diese Ansicht zurückzugelangen."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Das GOsa Team"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+msgid "Please select the desired entries"
+msgstr "Bitte wählen Sie die gewünschten Einträge"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "Terminal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Benutzer"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Name"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Basis"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+msgid "Filter"
+msgstr "Filter"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+msgid "Show department"
+msgstr "Zeige Abteilungen"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+msgid "Show users"
+msgstr "Zeige Benutzer"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+msgid "Show groups"
+msgstr "Zeige Gruppen"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+msgid "Show server"
+msgstr "Zeige Server"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+msgid "Show workstation"
+msgstr "Zeige Arbeitsstationen"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+msgid "Show terminal"
+msgstr "Zeige Terminals"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+msgid "Show printer"
+msgstr "Zeige Drucker"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+msgid "Show phone"
+msgstr "Zeige Telefone"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Bitte überprüfen Sie genau was Sie tun, weil GOsa keine Möglichkeit hat, die "
+"Daten wiederherzustellen."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Objektgruppen"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr "Objektgruppen verwalten"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr "Infrastruktur Fehler"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr "Vorlagen"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr "Windows Installation"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+"Sie können Terminals und Arbeitsstationen nicht zu einer Objektgruppe "
+"zusammenfassen!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "keine"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "zu viele unterschiedliche Objekte!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "Benutzer"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "Gruppen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "Anwendungen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "Abteilungen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "Server"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "Arbeitsstationen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr "Windows-Arbeitsstationen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "Terminals"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "Telefone"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "Drucker"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "deaktiviert"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "Vollzugriff"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "erlaube Zugriff auf diese Hosts"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "Unbekannte dn:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+"Die folgenden Systeme sind bereits für die Konfiguration über eine "
+"Objektgruppe vorgeseheb und können nicht hinzugefügt werden:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr ""
+"Sie können maximal zwei verschiedene Objekttypen miteinander kombinieren!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr "Objektgruppe (Allgemein)"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+msgid "Sytem trust"
+msgstr "System-Vertrauen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr "Mitglied"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Gruppenname"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Name der Gruppe"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Beschreibender Text für diese Gruppe"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "System-Vertrauen"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Vertrauens-Modus"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Zusammengefasste Objekte"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Warteschlange"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Systeme"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Start"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Geräte"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "FAI-Übersicht"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Umgebung"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Anwendungen"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr "Bitte geben Sie einen Namen für die neue Objektgruppe ein"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr "Benutzergruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr "verschachtelte Gruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr "Anwendungsgruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr "Abteilungsgruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr "Servergruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr "Gruppen von Arbeitsstationen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr "Gruppen von Windows Arbeitsstationen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr "Gruppen von Terminals"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr "Druckergruppen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr "Telefongruppen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Liste von Objektgruppen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Anlegen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Entfernen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr "Nachricht senden"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+msgid "Edit object group"
+msgstr "Objektgruppe bearbeiten"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+msgid "Remove object group"
+msgstr "Objektgruppe löschen"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Wählen Sie die hinzuzufügenden Objekte"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filter"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Zeige die Objekte der Abteilung"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Wählen Sie die Abteilung, auf die die Suchfunktion angewandt wird"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Zeige die Objekte, auf die Folgendes passt"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Regulärer Ausdruck zum Erkennen von Objekt-Namen"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Wählen Sie die hinzuzufügenden Systeme"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Zeige die Systeme der Abteilung"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Zeige die Systeme, auf die das Folgende passt"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Regulärer Ausdruck zum Erkennen von Mail-Adressen"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Bitte prüfen Sie, ob Sie die Aktion wirklich durchführen möchten, da GOsa "
+"die Daten nicht wiederherstellen kann."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Vorname"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Nachname"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr "Mehrfach bearbeiten"
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "UNIX-Name der Gruppe"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Normalerweise werden IDs automatisch generiert. Auswählen um dies zu umgehen"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Erzwinge GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Erzwungene ID-Nummer"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Auswählen, um eine sambakonforme Gruppe zu erzeugen"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "in der Domain"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Mitglieder sind in einer Telefon-Gruppe"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Mitglieder sind in einer Nagios-Gruppe"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Gruppenmitglieder"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr "In allen Gruppen"
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr "Nicht in allen Gruppen"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Zeige primäre Gruppen"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Zeige Samba Gruppen"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+msgid "Show mail groups"
+msgstr "Zeige Mail Gruppen"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Gruppen-Einstellungen"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Liste der Gruppen"
+
+#: plugins/admin/groups/group-list.xml:138
+msgid "Edit group"
+msgstr "Gruppe bearbeiten"
+
+#: plugins/admin/groups/group-list.xml:151
+msgid "Remove group"
+msgstr "Gruppe löschen"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr "Kann keine Gruppen-SID in Ihrer Konfiguration finden!"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Samba-Gruppe"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Domänen-Administratoren"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Domänen-Benutzer"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Domänen-Gäste"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Spezielle Gruppe (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+"Die UID '%s' konnte nicht zur Gruppe '%s' hinzugefügt werden: Benutzer-"
+"Objekt nicht gefunden!"
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+"Die UID '%s' konnte nicht zur Gruppe '%s' hinzugefügt werden: UID ist "
+"bereits vorhanden!"
+
+#: plugins/admin/groups/class_group.inc:624
+msgid "! unknown UID"
+msgstr "! unbekannte UID"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+"Die Suche ergab zu viele Treffer. Es werden nicht mehr als %s Einträge "
+"angezeigt!"
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Kann keine SID für '%s' finden!"
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Kann keine RIDBASE für '%s' finden!"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr "Die Gruppen ID-Nummer '%s' wird bereits von %s verwendet!"
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr "Allgemeine Gruppeneinstellungen"
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr "Samba-Gruppentyp"
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr "Samba Domänen-Name"
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr "Gesprächs-Annahme Gruppe"
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr "Nagios-Gruppe"
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr "Gruppenmitglieder"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Gruppenverwaltung"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+msgid "Edit posix properties"
+msgstr "POSIX-Eigenschaften bearbeiten"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Mail-Einstellungen bearbeiten"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Samba-Einstellungen bearbeiten"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Telefon-Einstellungen bearbeiten"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr "Menü"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+msgid "Edit start menu properties"
+msgstr "Startmenü-Einstellungen bearbeiten"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Umgebungs-Einstellungen bearbeiten"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Dies umfasst alle Konto-Informationen, Zugriffsregeln, IMAP-Einstellungen, "
+"etc. dieses Benutzers. Bitte prüfen Sie genau, da es keine Möglichkeit für "
+"GOsa gibt, die Daten wiederherzustellen. "
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Um das Benutzer-Passwort zu ändern, nutzen Sie die Felder unten. Die "
+"Änderungen werden sofort wirksam. Merken Sie sich das Passwort, da sich der "
+"Benutzer ohne dieses Passwort nicht anmelden kann."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Das Ändern des Passwortes wirkt sich auf ihre Authentifizierung bei Mail-, "
+"Proxy-, Samba- und Unix-Diensten aus."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Neues Passwort (Wiederholung)"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr "Stärke"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Passwort setzen"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Erzeugen eines neuen Benutzer aus einer Vorlage"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Das Anlegen von neuen Benutzern kann durch die Verwendung von Vorlagen "
+"vereinfacht werden. Viele Datenbankeinträge lassen sich damit automatisch "
+"ausfüllen. Wählen sie 'keine' um den Vorlagen-Dialog zu überspringen."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Vorlage"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Nachname"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Vorname"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr "Benutzer verwalten"
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr "Sie haben keine Berechtigung dieses Passwort zu ändern!"
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr "Konto-Sperrung"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+"Die Passwort-Methode '%s' unterstützt keine Sperrungen. Das Konto %s wurde "
+"nicht gesperrt!"
+
+#: plugins/admin/users/class_userManagement.inc:730
+msgid "Unlock account"
+msgstr "Konto aktivieren"
+
+#: plugins/admin/users/class_userManagement.inc:732
+msgid "Lock account"
+msgstr "Konto deaktivieren"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Allgemeine Einstellungen bearbeiten"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr "POSIX"
+
+#: plugins/admin/users/class_userManagement.inc:749
+msgid "Edit POSIX properties"
+msgstr "UNIX-Einstellungen bearbeiten"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Netatalk-Einstellungen bearbeiten"
+
+#: plugins/admin/users/class_userManagement.inc:769
+msgid "Edit FAX properties"
+msgstr "FAX-Einstellungen bearbeiten"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Liste der Benutzer"
+
+#: plugins/admin/users/user-list.xml:140
+msgid "Lock users"
+msgstr "Benutzer sperren"
+
+#: plugins/admin/users/user-list.xml:148
+msgid "Unlock users"
+msgstr "Benutzer entsperren"
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr "Vorlage anwenden"
+
+#: plugins/admin/users/user-list.xml:199
+msgid "New user from template"
+msgstr "Neuen Benutzer aus Vorlage"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "Benutzer bearbeiten"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+msgid "Remove user"
+msgstr "Benutzer entfernen"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Zeige Vorlagen"
+
+#: plugins/admin/users/user-filter.tpl:12
+msgid "Show functional users"
+msgstr "Zeige funktionale Benutzer"
+
+#: plugins/admin/users/user-filter.tpl:13
+msgid "Show POSIX users"
+msgstr "Zeige POSIX Benutzer"
+
+#: plugins/admin/users/user-filter.tpl:14
+msgid "Show Mail users"
+msgstr "Zeige Mail Benutzer"
+
+#: plugins/admin/users/user-filter.tpl:15
+msgid "Show Samba users"
+msgstr "Zeige Samba Benutzer"
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr "Vorlage anwenden"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+"Das Anwenden einer Vorlage ersetzt alle in der Vorlage definierten Attribute "
+"des Benutzers."
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr "Keine Vorlagen verfügbar!"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Dies umfasst 'alle' Konten, System- und Setup-Informationen dieses "
+"Teilbaums. Bitte prüfen Sie genau, da es keine Möglichkeit für GOsa gibt, "
+"die Daten wiederherzustellen. "
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Eine Sicherung der LDAP-Datenbank bietet sich an. Wenn Sie dies erledigt "
+"haben, drücken Sie 'Entfernen' um Fortzufahren oder 'Abbrechen', um den "
+"Vorgang abzubrechen."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Liste der Abteilungen"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+msgid "Domain"
+msgstr "Domain"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+msgid "Domain component"
+msgstr "Domänen-Komponente"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Land"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+msgid "Locality"
+msgstr "Standort"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organisation"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+msgid "Locality name"
+msgstr "Standort-Name"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr "Name des zu erzeugenden Standortes"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Beschreibender Text zu dieser Abteilung"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Administrative Einstellungen"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Abteilung als eigenständige administrative Einheit kennzeichnen"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Name der Abteilung"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Name des zu erzeugenden Teilbaums"
+
+#: plugins/admin/departments/generic.tpl:22
+msgid "Descriptive text for   department"
+msgstr "Beschreibender Text zu dieser Abteilung"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Kategorie"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Kategorie dieses Teilbaums"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Ort"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Land"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Land, in dem dieser Teilbaum anzusiedeln ist"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Ort dieses Teilbaums"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Adresse"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Postalische Anschrift dieses Teilbaums"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Einleitende Telefonnummer dieses Teilbaums"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Einleitende Fax-Nummer dieses Teilbaums"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+msgid "Domain Component"
+msgstr "Domänen-Komponente"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Abteilungen"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr "Abteilungen verwalten"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+"Sobald die Tag-Operation abgeschlossen wurde, können Sie zum Ende der Seite "
+"scrollen und auf den 'Fortfahren'-Knopf drücken, um mit der "
+"Abteilungsverwaltung fort zu fahren."
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr "Organisationsname"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Adresse"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Telefonnummer"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr "Name des Landes"
+
+#: plugins/admin/departments/domain.tpl:11
+msgid "Domain name"
+msgstr "Domänenname"
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr "Name der zu erzeugenden Domäne"
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr "Name des anzulegenden Landes"
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr "Kann keinen unbenutzten Tag für diese administrative Einheit finden!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Markiere '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Verschiebe '%s' nach '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "Fehler beim kopieren von %s, breche ab"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Name der Abteilung"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Telefon"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "Objekt '%s' ist bereits markiert"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Füge Markierung (%s) zu Objekt '%s' hinzu"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Entferne Markierung von Objekt '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Gewünschte Operation wird durchgeführt"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Ihr Browser unterstützt keine IFrames - bitte wählen Sie diesen Link, um die "
+"gewünschte Operation durchzuführen."
+
+#: plugins/admin/departments/organization.tpl:11
+msgid "Name of organization"
+msgstr "Name der Organisation"
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr "Name der zu erzeugenden Organisation"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr ""
+"Momentan sind Sie dabei, diese Abteilung zu verschieben bzw. neu zu benennen."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+"Verändern des für die Namensbildung zuständigen Attributes 'ou' einer "
+"Abteilung oder der Basis kann vorhandene ACLs und/oder Snapshots für alle "
+"Objekte unbrauchbar machen."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr "GOsa kann dies (noch) NICHT für Sie reparieren."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+"Bevor Sie diese Aktion bestätigen, stellen Sie sicher, dass alles wie "
+"erwartet sein wird, vielleicht ist die beste Lösung, vorher ein Backup zu "
+"erstellen."
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr "ACL"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+msgid "ACL Assignment"
+msgstr "ACL-Zuordnung"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr "ACL Vorlagen"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr "Rollen für die Zugriffskontrolle"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr "ACL-Rollen bearbeiten"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr "ACL zurücksetzen"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr "Keine ACL-Einstellungen für diese Kategorie"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "Enthält ACL für diese Objekte: %s"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr "ACL Kategorie bearbeiten"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr "ACL-Kategorie zurücksetzen"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr "ACL für '%s' bearbeiten, Bereich ist '%s'"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr "Objekt in Verwendung"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+"Die Rolle kann nicht entfernt werden, solange sie noch von folgenden "
+"Objekten verwendet wird:"
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Rolle"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr "Berechtigungen"
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr "Liste der ACLs"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+msgid "Show access control lists"
+msgstr "Zeige Zugriffskontrolllisten"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+msgid "Show roles"
+msgstr "Zeige Rollen"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr "Bug-Melder"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr "Organisationsbezogene Benutzereinstellungen bearbeiten"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+"Bitte eine einzelne IP-Adresse oder eine Netzwerk/Netzmasken Kombination "
+"hinzufügen!"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "weiblich"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "männlich"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr "Kann Datei nicht hochladen!"
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Seriennummer"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+"(Manche Zertifikate werden momentan nicht unterstützt und werden daher als "
+"'ungültig' angezeigt)."
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Zertifkat ist gültig im Zeitraum von %s bis %s (momentan: %s)."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "gültig"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "ungültig"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Kein Zertifikat eingerichtet"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr "Die gewählte Passwort-Methode ist nicht mehr verfügbar."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr "Die RDN kann nicht erstellt werden: + ist in sub RDNs nicht erlaubt!"
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr "Kann RDN nicht erstellen: Attribut ist nicht definiert!"
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr "Kann RDN nicht erstellen: ungültige Attribut-Parameter!"
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr "Die gewählte Passwort-Methode benötigt eine initiale Konfiguration!"
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Homepage"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Mobiltelefon"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Pager"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Geburtsdatum"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr "Kann Zertifikat nicht öffnen!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Referat"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Hausbezeichnung"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Anrede"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "letzte Übermittlung"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Dienstort"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Aufgabengebiet"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Sachgebiet"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Amts-/Dienstbezeichnung"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Zertifikat-Seriennummer"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Öffentlich sichtbar"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Straße"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Postleitzahl"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr "Allgemeine Benutzereinstellungen"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Mein Konto"
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr "Benutzerkennung"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Titel"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Akademischer Titel"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Geschlecht"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr "Bevorzugte Sprache"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Benutzerbild"
+
+#: plugins/personal/generic/class_user.inc:1626
+msgid "Login restrictions"
+msgstr "Anmeldungs-Einschränkungen"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr "Abteilungsnummer"
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr "Personalnummer"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Anstellungsart"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr "Raumnummer"
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr "Telefonnummer"
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr "Pagernummer"
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr "Mobiltelefon"
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr "Faxnummer"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Private Adresse"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr "Telefonnummer (privat)"
+
+#: plugins/personal/generic/class_user.inc:1647
+msgid "User password method"
+msgstr "Benutzer Passwort-Methode"
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr "Benutzer-Zertifikate"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Persönliche Informationen"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Bild"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Bild ändern"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Name der Vorlage"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Bevorzugte Sprache"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Privat-Telefon"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Passwort-Speicherung"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Zertifikate"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Zertifikate bearbeiten"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr "Anmeldung beschränken"
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr "IP oder Netzwerk"
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Angabe zur Organisationseinheit"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Abteilungs-Nr."
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Angestellten-Nr."
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Zimmer-Nr."
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Verwenden sie den Telefon-Reiter"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Wählen Sie den Teilbaum, in den der Benutzer eingepflegt werden soll"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Wählen Sie eine Basis"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Benutzer-Einstellungen"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Passwort löschen"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Neues Passwort setzen"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Bild entfernen"
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr "Sie haben keine Berechtigung ihr Passwort zu speichern!"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Generische Benutzer-Information"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Sie haben die Verschlüsselungsart, mit der Ihr Passwort in der LDAP-"
+"Datenbank gespeichert wird, geändert. Aus diesem Grund müssen Sie das "
+"Passwort an dieser Stelle noch einmal eingeben, damit es von GOsa in der "
+"gewünschten Verschlüsselung abgelegt werden kann."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Standard-Zertifikat"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "S/MIME-Zertifikat"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "PKCS12-Zertifikat"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr "Benutzer POSIX-Einstellungen bearbeiten"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "abgelaufen"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "Nachfrist aktiv"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "aktiv"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr "Passwort kann nicht geändert werden"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr "Passwort abgelaufen"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automatisch"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"Passwort kann bis zu %s Tage nach der letzten Änderung nicht geändert werden"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Der Benutzer muß sein Passwort nach %s Tagen ändern"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr "Konto nach %s Tagen nach Ablauf ohne Aktivität deaktivieren"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Benutzer %s Tage vor dem Ablauf des Passwortes warnen"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr "Wartezeit für Sperre abgelaufen. Ignoriere Sperre!"
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Gruppe des Benutzers"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+"Für diesen Benutzer wurde eine bereits vorhandene UID-Nummer geschrieben. "
+"Wenn dies unbeabsichtigt geschah, prüfen Sie bitte alle verwendeten UID-"
+"Nummern."
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Basisverzeichnis"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr "shadowMin"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr "shadowMax"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr "shadowWarning"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr "shadowInactive"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr "POSIX-Konto"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "Benutzer-ID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr "Gruppen-ID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr "Erzwinge Änderung des Passwort bei Anmeldung"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr "Shadow min"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr "Shadow max"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr "Shadow warning"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr "Shadow inactive"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr "Shadow expire"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr "Öffentlicher SSH-Schlüssel"
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr "Modell des System-Vertrauens"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Primäre Gruppe"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Status"
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr "Letztes Login"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Erzwinge UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Gruppenmitgliedschaft"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Warnung: mehr als 16 Gruppen werden von NFS nicht unterstützt!)"
+
+#: plugins/personal/posix/generic.tpl:100
+msgid "Common group"
+msgstr "Gemeinsame Gruppe"
+
+#: plugins/personal/posix/generic.tpl:104
+msgid "Groups differ"
+msgstr "Gruppen sind unterschiedlich"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr "SSH-Schlüssel"
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr "Öffentliche Schlüssel bearbeiten..."
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Konto"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Wählen Sie die hinzuzufügenden Gruppen"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Zeige Gruppen der Abteilung"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Zeige Gruppen, auf die zutrifft"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Regulärer Ausdruck zum Erkennen von Gruppennamen"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Zeige Gruppen des Benutzers"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Benutzername, dessen Gruppen angezeigt werden"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Zeige Server"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Zeige Arbeitsstationen"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Zeige Terminals"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "UNIX-Einstellungen"
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr "POSIX-Einstellungen"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "Der Benutzer muss beim ersten Anmelden sein Passwort ändern"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Passwort läuft ab am"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Sie haben erfolgreich Ihr Passwort geändert. Bitte denken Sie daran alle "
+"Programme anzupassen, die dieses Passwort auch benutzen."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr "Passwort-Einstellungen"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Um das Passwort zu ändern, benutzen Sie das untere Feld. Die Änderung wird "
+"sofort wirksam. Bitte merken Sie sich das neue Passwort, da Sie sich ohne "
+"dieses nicht mehr anmelden können."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Felder löschen"
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr "Benutzer-Passwort ändern"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Sie müssen das aktuelle Passwort eingeben, um fortfahren zu können."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr ""
+"Das Passwort, welches Sie als 'Neues Passwort' eingegeben haben ist leer."
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "Das externe Passwort-Änderungsprogramm hat einen Fehler gemeldet: %s."
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr ""
+"Das Passwort, welches Sie als aktuelles Passwort eingegeben haben, ist nicht "
+"korrekt."
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr "Sie haben keine Berechtigung Ihr Passwort zu ändern."
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr "Benutzerpasswort"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Passwort-Änderung ist nicht erlaubt"
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr "Sie haben keine Berechtigung Ihr Passwort zu ändern"
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr "UNIX Konten/Gruppen"
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr "Samba-Verwaltung"
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr "Mailsystem-Verwaltung"
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr "Faxsystem-Verwaltung"
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr "Asterisk-Verwaltung"
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr "System-Inventar"
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr "System-/Konfigurationsverwaltung"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Adressbuch"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr "Rückmeldung"
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr "Erhalte Benachrichtungen oder sende Rückmeldung"
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr "Benachrichtigung und Rückmeldung"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr "Einrichtungsfehler"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr "Fehler beim Rückmelden"
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr "Kann Rückmeldung nicht an '%s' senden: %s"
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+"Kann Rückmeldung nicht senden: Der Dienst ist vorübergehend nicht verfügbar"
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+"Sie müssen mindestens eine der beiden Optionen auswählen, Abonnement der "
+"Mailingliste oder Senden einer Rückmeldung."
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr "Abgeschlossen"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr "Vor"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Samba-Einstellungen"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr "Samba Hash-Generator"
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr "Samba SID"
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr "RID Basis"
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr "Container für Arbeitsstationen"
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr "Samba SID Abbildung"
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr "Zeitzone"
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr "Bitte wählen Sie hier Ihre bevorzugte Zeitzone"
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr "Zusätzliche GOsa-Einstellungen"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr "Ermögliche Kopieren & Einfügen"
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr "Behörden-Modus"
+
+#: setup/setup_config2.tpl:123
+msgid "GOsa logging"
+msgstr "GOsa Protokolierung"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Mail-Einstellungen"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Zustellungs-Methode"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr "Attribut für Kontoidentifikation"
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr "Urlaubsvorlagen"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr "Verwende Cyrus UNIX-Stil"
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr "Snapshots / Wiederherstellung"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr "Snapshots ermöglichen"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr "Basis für Snapshots"
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr "GOsa Einrichtungsassistent"
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr "Installation"
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr "Einrichtung"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+"Während der LDAP-Inspektion wird auf verschiedene, gängige Stolpersteine "
+"geprüft, die auftreten können, wenn auf eine GOsa-basierte LDAP-"
+"Administration migriert wird. Sie sollten die unten genannten Probleme "
+"beseitigen (wenn vorhanden), um einen problemlosen Betrieb der Dienste zu "
+"ermöglichen."
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr "Erneut prüfen"
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr "Füge erforderliche Objekt-Klassen zum Basis-Objekt hinzu"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr "Aktuell"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr "Nach der Migration"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr "Migrieren"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Schliessen"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+"Verschiebe Windows-Arbeitsstationen in eine gültige Windows-Workstation "
+"Abteilung"
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+"Dieser Dialog ermöglicht es Ihnen, die angezeigten Windows-Arbeitsstationen "
+"in eine gültige Abteilung zu verschieben"
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+"Seien Sie vorsichtig mit diesem Werkzeug, es könnte Referenzen geben, die "
+"auf diese Arbeitsstationen zeigen, die nicht migriert werden können."
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+"Verschiebe die ausgewählten Windows-Arbeitsstationen in die folgende GOsa-"
+"Abteilung"
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr "Die gewählten Arbeitsstationen verschieben"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr "Was wird hier durchgeführt"
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr "Verschiebe Gruppen in den konfigurierten Gruppenbaum"
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Dieser Dialog ermöglicht Ihnen das Verschieben einer Zahl von Gruppen in den "
+"konfigurierten Gruppenbaum. Dies kann Ihren LDAP-Dienst aufräumen."
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Seien Sie vorsichtig mt dieser Option! Es könnte Referenzen geben, die auf "
+"diese Gruppen verweisen. Die GOsa-Einrichtung kann Referenzen nicht "
+"migrieren, Sie sollten die Migration an dieser Stelle abbrechen."
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr "Verschiebe die ausgewählten Gruppen in diesen Gruppenbaum"
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr "Verstecke Änderungen"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr "Zeige Änderungen"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr "Verschiebe Benutzer in den konfigurierten Benutzerbaum"
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Dieser Dialol ermöglicht Ihnen das Verschieben einer Zahl von Nutzern in den "
+"konfigurierten Benutzerbaum. Dies kann Ihren LDAP-Dienst aufräumen."
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Seien Sie vorsichtig mt dieser Option! Es könnte Referenzen geben, die auf "
+"diese Benutzer verweisen. Die GOsa-Einrichtung kann Referenzen nicht "
+"migrieren, Sie sollten die Migration an dieser Stelle abbrechen."
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr "Verschiebe die ausgewählten Benutzer in diesen Benutzerbaum"
+
+#: setup/setup_migrate.tpl:219
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Migriere GOsa 2.5 Administrator-Konten"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+"Dieser Dialog erlaubt die Migration von Administrativen Konten von GOsa 2.5 "
+"nach GOsa 2.6."
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr "Neu laden"
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr "Abbrechen"
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr "Erzeuge ein neues GOsa Administratorkonto"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+"Dieser Dialog wird automatisch einen neuen Superadministrator in Ihren LDAP-"
+"Baum einfügen."
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr "Passwort (erneut)"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+"Die angezeigten Abteilungen sind momentan in GOsa unsichtbar. Wenn Sie dies "
+"für eine Zahl von Einträgen ändern möchten, wählen Sie sie einfach aus und "
+"verwenden den 'Migrieren'-Knopf unterhalb."
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+"Wenn Sie erfahren möchten, was bei der Migration der gewählten Einträge "
+"erfolgen wird, verwenden Sie den 'Zeige Änderungen'-Knopf um das LDIF zu "
+"sehen."
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Die folgenden Benutzer sind momentan in GOsa unsichtbar. Wenn Sie dies für "
+"einen oder mehrere Benutzer ändern möchten, wählen Sie sie einfach aus und "
+"drücken Sie den 'Migrieren'-Knopf unterhalb."
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Die folgenden Geräte sind momentan in GOsa unsichtbar. Wenn Sie dies für "
+"eines oder mehrere Geräte ändern möchten, wählen Sie sie einfach aus und "
+"drücken Sie den 'Migrieren'-Knopf unten."
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr "Auffrischen"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+"Die folgenden Dienste sind momentan für die GOsa-Version ungültig, die Sie "
+"gerade installieren. Wenn Sie einen oder mehrere Dienste aktualisieren "
+"möchten, wählen Sie sie einfach aus und drücken Sie den 'Migrieren'-Knopf "
+"unterhalb."
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Die folgenden Menüs sind momentan in GOsa unsichtbar. Wenn Sie dies für "
+"eines oder mehrere Menüs ändern möchten, wählen Sie sie einfach aus und "
+"drücken Sie den 'Migrieren'-Knopf unterhalb."
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr "Schreibe Konfigurationsdatei"
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr "Abschluß - Schreiben der Konfigurationsdatei"
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+"Ihre Konfigurationsdatei ist momentan für jeden lesbar. Bitte ändern Sie die "
+"Zugriffsrechte!"
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "Die Konfiguration ist momentan nicht lesbar oder existiert nicht."
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Nachdem Sie die Konfigurationsdatei unter %s abgelegt haben, muß "
+"sichergestellt werden, daß der Webserver auf %s zugreifen kann, normale "
+"Nutzer aber nicht. Führen Sie diese Kommandos aus, um die obigen "
+"Voraussetzungen zu erfüllen:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr "Installationsprüfung"
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr "Grundlegende Überprüfungen der PHP-Version und Erweiterungen."
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr "Prüfe PHP-Version"
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr "PHP muß in Version %s oder höher vorliegen."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr "Bitte aktualisieren Sie auf eine unterstützte Version."
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr "GOsa benötigt dieses Modul für die Kommunikation mit dem LDAP-Server."
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr "GOsa benötigt dieses Modul für eine lokalisierte Oberfläche."
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr "GOsa benötigt dieses Modul für die Samba-Einbindung."
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr "GOsa benötigt dieses Modul um die SSHA-Verschlüsselung zu verwenden."
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+"GOsa benötigt dieses Modul für die Kommunikation mit einem IMAP-Server."
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr "mbstring"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr "GOsa benötigt dieses Modul um Unicode-Zeichenketten zu verarbeiten."
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr "MySQL"
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"GOsa benötigt dieses Modul, um mit verschiedenen unterstützten Datenbanken "
+"zu kommunizieren."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr "Samba Hash-Generator"
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+"GOsa benötigt dieses Kommando für den Abgleich der POSIX und Samba-"
+"Passwörter."
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+"Nutzen Sie eine GOsa-SI-Installation oder installieren Sie das Perl-Modul "
+"Crypt::SmbHash."
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr "Imagick"
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr "GOsa benötigt diese Erweiterung um Bilder konvertieren zu können."
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr "Komprimierungs-Modul"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr "GOsa benötigt dieses Modul um Snapshots zu komprimieren."
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals ist ein PHP-Mechanismus, welcher alle globalen Variablen "
+"für Skripte direkt zugänglich macht. Dies kann ein Sicherheitsrisiko sein."
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr ""
+"Suchen Sie nach 'register_globals' in Ihrer php.ini und setzen Sie es auf "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+"PHP verwendet diese Einstellungen für den Garbage Collector, um alte "
+"Sessions zu entfernen."
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"Wenn Sie diesen Wert auf einen Tag setzen, wird dies vermeiden, dass Sie die "
+"Sitzung und den zugehörigen Cookie verlieren, bevor diese tatsächlich ihre "
+"Gültigkeit verlieren."
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'session.gc_maxlifetime' und setzen Sie es "
+"auf 84600 oder höher."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr "Aus"
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Um GOsa fehlerfrei benutzen zu können, muß die Option session.auto_register "
+"in Ihrer php.ini auf 'Off' stehen."
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'session.auto_start' und setzen Sie es auf "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa benötigt mindestens 32MB Speicher, weniger Speicher würde "
+"unvorhersehbare Probleme verursachen! Bei größeren Installationen sollte "
+"dieser Wert noch vergrössert werden."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'memory_limit' und setzen Sie es auf '32M' "
+"oder höher."
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Diese Einstellung beeinflusst die Verarbeitung der Ausgabe. Stellen Sie "
+"diese auf 'off', um die Leistung zu erhöhen."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'implicit_flush' und setzen Sie es auf "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr "Die Ausführungszeit sollte mindestens 30 Sekunden betragen."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'max_execution_time' und setzen Sie es auf "
+"'30' oder höher."
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Erhöhen Sie die Sicherheit Ihres Servers, indem Sie expose_php auf 'off' "
+"setzen. PHP wird in dieser Einstellung keine Informationen über Ihren "
+"laufenden Server senden."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'expose_php' und setzen Sie es auf 'Off'."
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr "An"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Erhöhen Sie die Sicherheit des Server, indem sie magic_quotes_gpc auf 'on' "
+"stellen. PHP wird in dieser Einstellung alle 'quotes' in 'strings' umwandeln."
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'magic_quotes_gpc' und setzen Sie es auf "
+"'On'."
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Erhöhen Sie die Leistung des Servers, indem sie magic_quotes_gpc auf 'off' "
+"stellen."
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Suchen Sie in Ihrer php.ini nach 'zend.ze1_compatibility_mode' und setzen "
+"Sie es auf 'Off'."
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr "Konfigurationsdatei schreibbar"
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr "Die Konfigurationsdatei kann nicht geschrieben werden"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+"GOsa liest sein Konfiguration von einer Datei in (%s/%s). Die Einrichtung "
+"kann die Konfiguration direkt schreiben, wenn diese schreibbar ist."
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr "GOsa-Grundeinstellungen"
+
+#: setup/setup_config3.tpl:6
+msgid "Enable primary group filter"
+msgstr "Primären Gruppenfilter aktivieren"
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr "Zeige Zusammenfassung in Listen"
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr "Beachte administrative Einheiten"
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr "Smarty Arbeitsverzeichnis"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr "SNMP Gemeinschaft"
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr "Pfad für PPD-Ablage"
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr "Pfad für Kioskprofil-Ablage"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr "Basis für SUDO-Rollen"
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr "Mail-Queue Skript"
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr "Benachrichtigungsskript"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr "Aktiviere Bearbeitungssperre"
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr "GOsa support daemon"
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr "Daemon-Zeitüberschreitung"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr "Anmeldung und Sitzung"
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr "Anmeldeattribut"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr "Erzwinge das Deaktivieren von register_globals"
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr "Erzwinge verschlüsselte Verbindungen"
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr "Bei unverschlüsselten Verbindungen warnen"
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr "Merken der Dialogfilter-Einstellungen"
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr "Lebensdauer der Sitzung"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr "Debugging"
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr "Zeige PHP Fehler"
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr "Maximale LDAP Abfragedauer"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr "Protokolliere LDAP-Statistiken"
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr "Debug Level"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr "Feedback erfolgreich gesendet"
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr "Abonnieren der GOsa-Announce Mailingliste"
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+"Wenn Sie diese Option auswählen wird GOsa eine Verbindung zu http://oss."
+"gonicus.de versuchen, um die GOsa-Announce Mailingliste für Sie zu "
+"abonnieren. Sie müssen dem Abonnement danach noch per Mail zustimmen."
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Mail-Adresse"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr "Sende Feedback an das GOsa Projektteam."
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+"Bei Auswahl dieser Option wird GOsa versuchen, sich zu http://oss.gonicus.de "
+"zu verbinden, um Ihr Formular anonym abzusenden."
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr "Hat Ihnen die Setup-Prozedur weitergeholfen?"
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "ja"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "nein"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr "Falls nicht, welche Probleme sind Ihnen aufgefallen"
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr "Ist dies die erstmalige Verwendung von GOsa?"
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr "Ich verwende es seit"
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr "Wählen Sie das Jahr aus, seit dem Sie GOsa verwenden"
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr "Welches Betriebssystem / welche Distribution verwenden Sie?"
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr "Welchen Webserver verwenden Sie?"
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr "Welche PHP-Version verwenden Sie?"
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr "LDAP"
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr "Welche(n) LDAP-Server verwenden Sie?"
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr "Wie viele Objekte befinden sich in Ihrem LDAP-Verzeichnis?"
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr "Fähigkeiten"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr "Welche Funktionen von GOsa verwenden Sie?"
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+"Welche Funktionen würden Sie gerne in zukünftigen Versionen von GOsa sehen?"
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr "Feedback senden"
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr "Erzeugen Ihrer Konfigurationsdatei"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr "Abhängig vom Benutzernamen mit dem Ihr Web-Server läuft:"
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Konfiguration herunterladen"
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr "Status: "
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr "LDAP-Einrichtung"
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr "Einrichten der LDAP-Verbindung"
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"Dieser Dialog richtet die grundlegende Konfiguration der LDAP-Verbindung für "
+"GOsa ein."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "Anonyme Anmeldung an server '%s' ist fehlgeschlagen!"
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Verbindung als Benutzer '%s' ist fehlgeschlagen!"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Verbindung als anonymer Benutzer zu Server '%s' war erfolgreich."
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr "Bitte geben Sie Ihren Benutzer und das zugehörige Passwort ein!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Verbindung als Benutzer '%s' zu Server '%s' war erfolgreich!"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr "Bitte wählen Sie den LDAP-Benutzer, der von GOsa verwendet werden soll"
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr "LDAP-Verbindung"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Name des Standortes"
+
+#: setup/setup_ldap.tpl:37
+msgid "Connection URI"
+msgstr "Verbindungs-URI"
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr "TLS-Verbindung"
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr "Authentisierung"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "Administrator-DN"
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr "Benutzer wählen"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr "Automatisch die LDAP-Basis an die Admin-DN anhängen"
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Administrator-Passwort:"
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr "Schema-basierte Einstellungen"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr "Verwende rfc2307bis-konforme Gruppen"
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr "Momentaner Status"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr "LDAP-Inspektion"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr "Untersuche Ihr LDAP-Verzeichnis auf GOsa-Kompatibilität"
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr "Prüfe auf Wurzelobjekt"
+
+#: setup/class_setupStep_Migrate.inc:141
+msgid "Inspecting object classes in root object"
+msgstr "Prüfe Objekt-Klassen des Wurzelobjektes"
+
+#: setup/class_setupStep_Migrate.inc:147
+msgid "Checking permission for LDAP database"
+msgstr "Prüfe Berechtigungen auf die LDAP-Datenbank"
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr "Prüfe auf unsichtbare Abteilungen"
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr "Prüfe auf unsichtbare Benutzer"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr "Prüfe auf Superadministrator"
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr "Prüfe auf Benutzer ausserhalb des Benutzerbaums"
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr "Prüfe auf Gruppen ausserhalb des Gruppenbaums"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr "Prüfe auf Windows-Arbeitsstationen ausserhalb des Winstation-Baums"
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr "Prüfe auf doppelte UID Nummern"
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr "Prüfe auf doppelte GID Nummern"
+
+#: setup/class_setupStep_Migrate.inc:202
+msgid "Checking for old style USB devices"
+msgstr "Prüfe auf alte USB-Geräte"
+
+#: setup/class_setupStep_Migrate.inc:208
+msgid "Checking for old services that have to be migrated"
+msgstr "Prüfe auf alte Service-Einträge"
+
+#: setup/class_setupStep_Migrate.inc:214
+msgid "Checking for old style application menus"
+msgstr "Prüfe auf alte Menü-Einträge"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr "LDAP-Abfrage fehlgeschlagen."
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr "Wahrscheinlich fehlt das Wurzelobjekt."
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Es wurden %s doppelte Werte für das Attribute 'uidNumber' gefunden."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Es wurden %s doppelte Werte für das Attribute 'gidNumber' gefunden."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Fehlgeschlagen"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+"Es wurden %s Windows-Arbeitsstationen ausserhalb der für diese Abteilung "
+"vordefinierten Winstation Organisationseinheit '%s' gefunden."
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr ""
+"Es wurden %s Gruppen ausserhalb des konfigurierten Baums '%s' gefunden."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr "Verschieben"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+"Es wurde(n) %s Benutzer ausserhalb des konfigurierten Baums '%s' gefunden."
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+"Der angegebene Benutzer '%s' hat keinen Vollzugriff auf Ihre LDAP-Datenbank."
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+"Es wurde(n) %s Benutzer gefunden, die in GOsa nicht sichtbar sein werden."
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr "Migrationsfehler"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Die Abteilung '%s' kann nicht migriert werden:"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+"Es wurde(n) %s Abteilung(en) gefunden, die nicht in GOsa sichtbar sein "
+"werden."
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "GOsa 2.5 Verwaltungs-Konten gefunden: %s"
+
+#: setup/class_setupStep_Migrate.inc:1033
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Es gibt keinen GOsa 2.6 Administrator in Ihrem LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr "Es gibt keinen GOsa Administrator in Ihrem LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr "Kann ACL für Benutzer '%s' nicht hinzufügen:"
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr "Eingabefehler"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr "Uid"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr "Passwortfehler"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr "Die angegebenen Passwörter stimmen nicht überein!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr "Geben Sie eine gültige Benutzer ID an!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+"Hinzufügen eines administrativen Benutzers fehlgeschlagen: Objekt '%s' "
+"existiert bereits!"
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr "Kann Benutzer nicht in die geforderte Abteilung verschieben!"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr "Die Windows-Arbeitsstation wird verschoben von"
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr "Aktualisiere ebenfalls die folgenden Referenzen"
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr "Die Gruppe wird verschoben von"
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr "Der Benutzer wird verschoben von"
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr "Die folgenden Referenzen werden aktualisiert"
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+"Das LDAP Wurzelobjekt fehlt. Es wird für den Betrieb des LDAP-Dienstes "
+"benötigt."
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr "Versuche, das Wurzelobjekt zu erzeugen"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+"Das Wurzelobjekt konnte nicht erstellt werden, Sie sollten dies manuell "
+"erledigen."
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Die GOsa-Objektklasse '%s' fehlt!"
+
+#: setup/class_setupStep_Migrate.inc:2059
+msgid "Please check your installation."
+msgstr "Bitte überprüfen Sie Ihre Installation."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+"Die strukturelle Objekt-Typ Ihres Wurzel-Objektes kann nicht konvertiert "
+"werden. Bitte fügen Sie die Objekt-Klasse '%s' manuell hinzu."
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Kopieren von '%s' nach '%s' fehlgeschlagen:"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr "%s Geräte müssen migriert werden."
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr "Hinzufügen von '%s' ist fehlgeschlagen: %s"
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Aktualisierung von '%s' ist fehlgeschlagen: %s"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr "Es müssen %s Dienste migriert werden."
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr "Es müssen %s Menüs migriert werden."
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+"Dies scheint das erste Mal zu sein, dass GOsa gestartet wurde - es wurde "
+"keine Konfiguration gefunden. Dieser einfache Assistent hilft Ihnen bei der "
+"Einrichtung."
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr "Was wird der Assistent für Sie erledigen?"
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr "Erstellen einer einfachen Konfiguration für einen Standort"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr "Versucht, Probleme in Ihrer PHP- und LDAP-Umgebung zu ermitteln"
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+"Lässt Sie aus einem Satz von einfachen bis erweiterten "
+"Konfigurationsschaltern wählen"
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr "Geführte Migration existierende LDAP-Bäume"
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr "Was wird der Assistent NICHT für Sie erledigen?"
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr "Finde jeden möglichen Konfigurationsfehler"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr "Migriere jede mögliche LDAP-Umgebung - erstellen Sie Sicherungsabzüge!"
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr "Wird fortgesetzt..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+"Aus Sicherheitsgründen müssen Sie die Installation authorisieren, indem Sie "
+"die Datei '/tmp/gosa.auth' mit der aktuellen Sitzungs-ID im Dateisystem des "
+"Servers erzeugen. Dies wird durch das Ausführen des folgenden Kommandos "
+"erreicht:"
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr "Drücken Sie auf den Knopf 'Fortfahren', wenn Sie fertig sind."
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr "Ich habe die Lizenz gelesen und akzeptiere diese"
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr "GOsa-Einstellungen 3/3"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr "Einstellen von grundlegendem GOsa Verhalten"
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr "Lebenszeit der Sitzung muss ein numerischer Wert sein!"
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Die maximale LDAP-Abfragedauer muß ein numerischer Wert sein!"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr "PHP Modul- und Erweiterungsprüfung"
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+"GOsa kann nicht ausgeführt werden, wenn das Problem nicht behoben wird."
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr "GOsa wird verwendbar sein, ohne dies zu beheben."
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr "Konfiguration der PHP-Umgebung"
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr "zeige Information"
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr "Schemaspezifische Einstellungen"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr "Ermögliche Schema-Validierung bei der Anmeldung"
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr "Status prüfen"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr "Schema-Prüfung erfolgreich"
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr "Schema-Prüfung fehlgeschlagen"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+"Konnte keine Schema-Informationen beziehen, alle Prüfungen wurden "
+"übersprungen. Passen Sie Ihre LDAP-ACLs an."
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+"Es scheint so, dass Ihre LDAP-Datenbank noch nicht initialisiert wurde. Dies "
+"könnte der Grund sein, weshalb GOsa die Schema-Konfiguration nicht lesen "
+"konnte!"
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr "Aussehen und Verhalten"
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr "Aussehen"
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr "Apache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr "Sende komprimierte Ausgabe an den Browser"
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr "Ablage für Personen und Gruppen"
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr "DN-Attribut für Personen"
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr "Teilbaum für Benutzerablage"
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr "Teilbaum für Gruppenablage"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr "Persönlichen Titel in der Benutzer-DN mitführen"
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr "Nicht strikte Namensvorgaben"
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr "Automatische UIDs"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr "GID / UID min ID"
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr "Zählbasis für Benutzer/Gruppen"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr "Hook für Zählbasis"
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr "Passwort-Verschlüsselungsalgorithmus"
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr "Passwort-Einschränkungen"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr "Minimale Passwortlänge"
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr "Verschiedene Zeichen vom vorherigen Kennwort"
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr "Hook für Passwort-Änderung"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr "Verwende SASL für Kerberos."
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr "Verwende ablaufende Konten"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa unterstützt zahlreiche Verschlüsselungsarten für Ihre Passwörter. "
+"Üblicherweise wird die Auswahl über Vorlagen verwaltet, Sie können aber auch "
+"eine Standardmethode festlegen, die benutzt werden soll."
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa arbeitet immer als Administrator und verwaltet die Rechte intern "
+"(solange die in OpenLDAP implementierten ACIs nicht vollständig unterstützt "
+"werden, wird dieser Workaround bestehen bleiben). Damit dies möglich ist, "
+"wird an dieser Stelle der DN des LDAP-Administrators und das dazugehörige "
+"Passwort benötigt."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Einige LDAP-Parameter beeinflussen die Art und Weise wie (und wo) GOsa Daten "
+"in der Baumstruktur ablegt. Prüfen Sie die vorgegebenen Werte, ob sie Ihren "
+"Vorgaben entsprechen."
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa unterstützt verschiedene Zustellungs-Methoden. Diese Methoden stellen "
+"Schnittstellen für Benutzer-Postfächer und die allgemeine Verwaltung von "
+"Kontingenten bereit. Wählen sie 'dummy', um all Ihre Mail-Einstellungen "
+"unberührt zu lassen."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr "LDAP Schemaprüfung"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr "Führe Test auf Ihrem aktuellen LDAP Schema durch"
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr "Willkommen"
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr "Die Willkommensnachricht"
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr "Willkommen beim GOsa Einrichtungsassistent"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr "Lizenz"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr "Bedingungen und Auflagen für den Gebrauch"
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr "Bitte wählen Sie Ihre bevorzugte Sprache"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+"An dieser Stelle können Sie die standortweite Standardsprache auswählen. Bei "
+"Auswahl von 'automatisch' wird automatisch die vom Browser angeforderte "
+"Sprache verwendet. Diese Einstellung kann von der Einstellung des Benutzers "
+"überschrieben werden."
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr "Bitte wählen Sie hier Ihre bevorzugte Sprache"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr "GOsa-Einstellungen 1/3"
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr "Allgemeine GOsa-Einstellungen"
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "Der angegebene Wert für '%s' muss numerisch sein."
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr "Fügen Sie kein Komma an das Ende von '%s'."
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "Ablage-OU für Benutzer:"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "Ablage-OU für Gruppen:"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr "Der Wert für 'UID Base' muss numerisch sein"
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr "Die angegebene minimale Passwortlänge ist nicht numerisch."
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr "Die angegebene Passwort-Differenz ist nicht numerisch."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr "GOsa-Einstellungen 2/3"
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr "Anpassen von Spezialparametern"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr "Sprachauswahl"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr "Dieser Schritt erlaubt es Ihnen, Ihre bevorzugte Sprache auszuwählen."
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr "Automatisch"
+
+#~ msgid "Inconsistent DN encoding detected: '%s'"
+#~ msgstr "Inkonsistente Enkodierung der DN erkannt: '%s'"
+
+#~ msgid "Choose a base"
+#~ msgstr "Wählen Sie eine Basis"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Wählen Sie den Teilbaum, in den die Gruppe eingepflegt werden soll"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr ""
+#~ "Wählen Sie den Teilbaum, in den die Abteilung eingepflegt werden soll"
diff --git a/gosa-core/locale/core/es/LC_MESSAGES/messages.po b/gosa-core/locale/core/es/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..bc4e75c
--- /dev/null
+++ b/gosa-core/locale/core/es/LC_MESSAGES/messages.po
@@ -0,0 +1,7759 @@
+# translation of admin.po to
+# translation of systems.po to
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# , 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: admin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2010-01-28 23:21+0100\n"
+"Last-Translator: \n"
+"Language-Team: Spanish <>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Aviso"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Esta puede ser usada por varios grupos. Si está seguro de lo que quiere "
+"hacer pulse dos veces, ya que no hay manera de que GOsa recupere "
+"posteriormente la información."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Entonces, si esta seguro, presione <i>Eliminar</i> para continuar o "
+"<i>Cancelar</i> para Abortar."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr "Pantalla de inicio de GOsa"
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr "Pantalla de inicio"
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+"Por favor use su nombre de usuario y contraseña para iniciar sesión en el "
+"sistema de administración."
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Nombre de Usuario"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Contraseña"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Directorio"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Entrando"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Pulse aquí para iniciar sesión"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr "Asistente para copiar y pegar"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Algunos valores necesitan ser únicos en todo el directorio mientras que "
+"algunas combinaciones no tienen sentido. GOsa mostrara los atributos "
+"importantes. Por favor no cambie los valores aquí indicados para cumplir las "
+"políticas."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+"¡Recuerde que propiedades como gestionar instantáneas no serán copiadas!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+"Si mueve o copia una entrada dentro de GOsa y elimina el objeto original,"
+"¡tendrá errores al pegar el objeto!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Guardar"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr "Cancelar todo"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Operación incompleta"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Terminar"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"La opción 'tamaño limite' permite unas operaciones con LDAP mas rápidas y "
+"protege al servidor LDAP de tener una mayor carga. La manera mas fácil de "
+"manipular grandes bases de datos sin grandes perdidas de tiempo es limitar "
+"la búsqueda a valores pequeños y usar filtros para encontrar las entradas "
+"que este buscando."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Por favor elija la forma de reaccionar en esta sesión"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+"ignore este error y muestre todas las entradas devueltas por el servidor LDAP"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"ignore este error y muestre todas las entradas que coincidan con el tamaño "
+"limite definido y active el uso de filtros en su lugar"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Activar"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr "Asignando ACL a la entrada actual"
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr "Nueva ACL"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr "Tipo de ACL"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr "Seleccione un tipo de ACL"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Aplicar"
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr "Añadir opciones de filtrado"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr "Usar miembros de"
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr "Miembros disponibles"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr "Mostrar mensaje de posibles destinos"
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Miembros"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr "Lista de recipientes de mensajes"
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr "Lista de categorías ACL disponibles"
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr "ACL que tienen este objeto"
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr "Roles disponibles"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Su contraseña ha caducado. ¡Por favor seleccione una nueva!"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr "Contraseña antigua"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nueva contraseña"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr "Confirmar contraseña"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Cambiar contraseña"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Pulse aquí para cambiar su contraseña"
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr "¡Su sesión de GOsa se ha terminado!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+"Por favor cierre la ventana del navegador y limpie la cache para evitar una "
+"reautentificación automática de su navegador."
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr "Recuperar instantanea de objetos"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+"El procedimiento recuperara una instancia de los objetos seleccionados. "
+"Serán reemplazados los objetos actuales despues de presionar el botón "
+"recuperar."
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+"Recuerde que la configuración DNS y las entradas de la base de datos no "
+"pueden ser recuperados. Para algunos objetos es solo necesario abrirlos y "
+"grabarlos de nuevo (goFon), pero algunas entradas deben ser creadas "
+"manualmente (glpi)."
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+"No olvide comprobar referencias a otros objetos, por ejemplo ¿todavía "
+"existen las impresoras seleccionadas?"
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Objeto"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr "No hay instantaneas disponibles que puedan ser recuperadas"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+"Elija una instantanea y pulse en la imagen carpeta, para recuperar la "
+"instantanea"
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr "Creando instantaneas de objetos"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+"Este procedimiento creará una instantánea de los objetos seleccionados. "
+"Serán guardados dentro de una carpeta especial de sus sistema de archivos y "
+"podrán recuperados posteriormente."
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+"Recuerde que las entradas de base de datos, configuración DNS y zonas "
+"creadas en extensiones de servidor no serán guardadas en la instantánea."
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr "Marca de tiempo"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr "Razón para generar esta instantánea"
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Continuar"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Error"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Información"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Cambie su contraseña"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Correcto"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Su contraseña se ha cambiado correctamente."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Cambio de contraseña"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+"Este dialogo le permite cambiar de forma sencilla la contraseña. Introduzca "
+"la contraseña actual y la nueva contraseña (dos veces) en los campos "
+"siguientes y presione en el botón 'Cambiar'."
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Contraseña actual"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr "Repita la nueva contraseña"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr "Seguridad de contraseña"
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Cambiar"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Detectado conflicto de Bloqueos"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Si esta detección de bloqueo es falsa, la otra persona cerro su navegador "
+"mientras estaba editando. Puede eliminar el archivo de bloqueo en ese caso, "
+"pulsando en el botón <i>Eliminar</i>."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr "Solo lectura"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "Ventana de ayuda de GOsa"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "índice"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Buscar"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "¡Su sesión de GOsa ha caducado!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"La última interacción con el interfaz web de GOsa fue hace ya bastante "
+"tiempo. Por razones de seguridad, la sesión ha sido cancelada. Para "
+"continuar con las tareas administrativas, vuelva a iniciar sesión de nuevo."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Entrando de nuevo"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Detectado conflicto de sesiones."
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Probablemente exista otra instancia activa de sus sesión. Operaciones en "
+"ventanas múltiples no son técnicamente posibles y dependen  del navegador "
+"utilizado. El uso de diferentes navegadores a la vez (por ejemplo: IE y "
+"Mozilla) es posible. Presione el botón 'Salir' para cerrar esta sesión."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Ignorando este mensaje cambiara/eliminara los datos que esta actualmente "
+"editando. Por favor, cierre las otras ventanas y vuelva a entrar."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Salir"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Esta actualmente editando una entrada de base de datos.¿Quiere desestimar "
+"los cambios?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Inicio"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Ayuda"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Salir"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Entrando"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr "Menú inicial de GOsa"
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr "Error fatal"
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "No se puede acceder a la configuración de GOsa %s/%s. Cancelado"
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Error de configuración"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr "¡No se puede acceder a el directorio de compilación '%s'!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr "Metodo de contraseña"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr "Error: ¡El método de contraseñas no esta disponible!"
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"No coinciden las contraseñas introducidas como 'Nueva contraseña' y 'Repetir "
+"nueva contraseña'."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr ""
+"La contraseña actual y la introducida como nueva son demasiado parecidas."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "La nueva contraseña es demasiado corta."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Inicio"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Por favor compruebe la combinación nombre de usuario/contraseña"
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "No tiene permisos para cambiar su contraseña."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "El programa externo de cambio de contraseña informo de un problema: "
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "La sesión no será codificada."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Entrar en sesión SSL"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr "¡La sesión no es codificada!"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+"El tiempo de vida de sesión es su gosa.conf sera sustituido por el valor de "
+"ini de php."
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr "Error Smarty"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr "¡Hay un problema con la configuración de autenticación!"
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+"¡No se puede encontrar un usuario válido para la configuración de "
+"autenticación seleccionada!"
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+"¡La información del usuario no es única dentro del árbol LDAP selecionado!"
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "Error LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+"¡No se puede acceder a la información sobre los esuqemas LDAP instalados!"
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr "Su configuración LDAP tiene definiciones de esquemas antiguos:"
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "¡Por favor introduzca un nombre de usuario válido!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "¡Por favor introduzca una contraseña!"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr "Error de Autenticación"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+"¡No se puede recuperar la información de usuario para autenticación htaccess!"
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Su navegador tiene las cookies desactivadas. ¡Porfavor active las cookies y "
+"recargue esta página antes de iniciar sesión!"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr "Smarty"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+"No se puede encontrar el archivo '%s' - por favor ejecute '%s' para "
+"solucionarlo"
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr "Configuración PHP"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"FATAL: 'Register globals' está activado. No se permitirá ninguna acceso "
+"hasta que esto sea solucionado por un administrador."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr "¡Funcionando sin memoria!"
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr "Desactivados chequeos de ACL de usuario"
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr ""
+"Su contraseña va a caducar próximamente, ¡Por favor cambie su contraseña!"
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr "Extensión"
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr ""
+"FATAL: ¡No se puede encontrar ninguna definición de extensión para la "
+"extensión '%s'!"
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr "Error de configuración"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+"FATAL: No todos las variables POST han sido transferidas por PHP - ¡Por "
+"favor informe a su administrador!"
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Navegador de ayuda"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "No hay archivo de ayuda disponible para esta clase"
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "anterior"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "siguiente"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"El directorio de ayuda '%s' no está disponible, no podrá leer ningún archivo "
+"de ayuda."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "Sin configurar"
+
+#: include/class_management.inc:145
+msgid "Filter error"
+msgstr "Error del filtro"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr "¡El filtro está incompleto!"
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr "Permiso"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr "Error de Permisos"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "No tiene permisos para crear una instantanea para %s."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "No tiene permisos para recuperar una instantanea para %s."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+"No hay declaración de pestaña para '%s' en su archivo de configuración. ¡No "
+"se puede crear la instancia del plugin!"
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr "El módulo mcrypt no ha sido encontrado. Por favor instale php-mcrypt."
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr "Ha fallado la conexión a la máquina '%s:%s': %s"
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr "Tiempo excedido de %s segundos para conexión alcanzado."
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+"¡No se puede encontrar un método de codificación válido para la clave "
+"introducida!"
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+"La funcionalidad de instancias esta activa, pero el valor requerido '%s' no "
+"está activo."
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+"La funcionalidad de instancias esta activa, pero no se encuentra el módulo "
+"de compresión requerido. Por favor instale '%s'."
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Control de acceso"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr "Gestión de las Listas de control de acceso"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "usuarios"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Todas las categorías"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "Eliminar ACLs"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Un nivel"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Objeto actual"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Subárbol completo"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Subárbol completo (permanente)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Utilizar las ACL definidas en el rol"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Usuarios"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Grupos"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Arriba"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "Abajo"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Editar"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Eliminar"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr "¡No hay ACL configuradas para esta categoría!"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Tiene ACLs para estos objetos: %s"
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "Categoría ACL"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "Editar ACL para '%s', el ámbito es '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Todos los objetos en el subárbol actual"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr "Mostrar/ocultar caracteristicas avanzadas"
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Crear objetos"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Mover objetos"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Eliminar Objetos"
+
+#: include/class_acl.inc:807
+msgid "Grant permission to owner"
+msgstr "Garantizar permiso al propietario"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "leer"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "escribir"
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr "Objeto completo"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "error interno"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "¡Tipo de ACL desconocido '%s'!"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "¡Entrada desconocida '%s'!"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr "Rol: %s"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr "rol desconocido"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Tiene configuraciones de los siguientes objetos: %s"
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr "inactivo"
+
+#: include/class_acl.inc:1096
+msgid "No members"
+msgstr "Sin miembros"
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr "Lista de control de acceso"
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr "Roles ACL"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"¡El canal requerido no existe!. Por favor  contacte con su Administrador."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr "Seleccione todos"
+
+#: include/class_listing.inc:519
+msgid "created by"
+msgstr "Creado por"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Ir al departamento raíz"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Raíz"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Subir un departamento"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Ir al departamento de usuarios"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Inicio"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Recargar lista"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Enviar"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Acciones"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr "Mover"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Pegar"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Mover esta entrada"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Copiar esta entrada"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+msgid "Restore snapshots"
+msgstr "Recuperar instantánea"
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr "Exportar lista"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr "Recuperar instantanea"
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr "Crear instantánea"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr "¡Crear una nueva instantánea de este objeto!"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Editar esta entrada"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Eliminar esta entrada"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Error fatal: no se han definido un emplazamiento para las clases - por favor "
+"ejecute '%s' para solucionar esto"
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Error fatal: no se puede instanciar la clase '%s' - intente solucionarlo "
+"ejecutando '%s'"
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+"FATAL: Ha habido un error conectando a LDAP. El servidor comunicó '%s'."
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "¡El nombre de usuario / UID no es único dentro del árbol LDAP!"
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"El nombre de usuario / UID no es único dentro del árbol LDAP. Por favor "
+"contacte con su Administrador."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+"Ha ocurrido un problema al añadir un bloqueo. ¡Contacte con los "
+"desarrolladores!"
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"No puedo crear información de bloqueos en el árbol LDAP. ¡Por favor contacte "
+"con su Administrador!"
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "El servidor LDAP devolvio: %s"
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Se han encontrado varios bloqueos para un objeto que iba a ser bloqueado. "
+"Esto no debería ocurrir - limpiando referencias multiples."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "¡El límite máximo de %d entradas se ha sobrepasado!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Introduzca un nuevo límite máximo a %s y se volvera a mostrar este mensaje "
+"si se supera el límite máximo"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "incompleto"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Continuar de cualquier manera"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Editar de cualquier manera"
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Has decidido editar las siguientes entradas LDAP %s"
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "Entradas por página"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "Instantánea de desarrollo GOsa (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr "El archivo '%s' no puede ser eliminado."
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr "¡No se puede escribir en el archivo de revisión!"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr "No esta disponible 'baseIdHook'.¡Se usara la base predeterminada!"
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr "Aviso LDAP"
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"No puedo obtener información de esquemas del servidor. ¡No es posible "
+"comprobar los esquemas!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr "Usado para guardar información específica de la cuenta."
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+"Usado para bloquear entradas editadas actualmente y así evitar múltiples "
+"cambios simultáneos."
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr "¡No se ha encontrado la clase de objeto necesaria '%s'!"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr "¡No se ha encontrado la clase de objeto opcional '%s'!"
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+"¡Las versiones de la clase de objeto necesaria no coinciden '%s' (!=%s)!"
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr "Clase(s) disponibles"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+"Ha activado la opción rfc2307bis en el paso 'configuración ldap', pero su "
+"configuración de esquemas no soporta esta opción."
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+"Para poder usar grupos conforme a rfc2307bis, el objectClass 'posixGroup' "
+"debe ser AUXILIARY"
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+"Su esquema está configurado para soportar grupos rfc2307bis, pero ha "
+"desactivado esta opción en el paso 'configuración ldap'."
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr "El objectClass 'posixGroup' debe ser STRUCTURAL"
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Alemán"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Francés"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italiano"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Español"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Inglés"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Holandes"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Polaco"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "Chino"
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Ruso"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"El comando '%s', utilizado como POSTMODIFY para la extensión '%s', no parece "
+"existir."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr "¡No se puede generar la clave samba!"
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+"¡No se puede generar la clave samba: la ejecución de '%s' ha fallado, "
+"compruebe el 'sambaHashHook'!"
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+msgid "Cannot allocate a free ID:"
+msgstr "No se puede asignar un identificador (ID) libre:"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr "¡método de asignación de id desconocido!"
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr "¡%sPoolMin >= %sPoolMax!"
+
+#: include/functions.inc:3393
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "¡No se puede crear la entrada sambaUnixIdPool!"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr "¡sambaUnixIdPool no es único!"
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr "¡No hay ID disponibles!"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr "¡Excedido el número de intentos máximo!"
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr "¡No se puede asignar un identificador (ID) libre!"
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+"No hay definiciones de extensión para iniciar '%s', por favor compruebe su "
+"archivo de configuración."
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "El proceso de eliminación ha sido cancelado por la extensión '%s': %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Referencias"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Va a eliminar la instantanea '%s'."
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr "Eliminar instantanea"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Descripción"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr "CSV"
+
+#: include/exporter/class_PDF.inc:24
+msgid "Page"
+msgstr "Página"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr "No se puede exportar a PDF: no se ha instalado la librería FPDF."
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr "PDF"
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr "Está actualmente editando varias entradas."
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr "Reintroducir contraseña"
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr ""
+"¡La contraseña del usuario se ha eliminado, por favor introduzca una nueva!"
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr "¡El certificado esta vacío!"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+"¡No se puede cargar el certificado - solo se soportan certificados PEM/DER!"
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "¡No se puede extraer información de certificados que no sean PEM!"
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr "¡No ha cargado un certificado válido!"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+"¡La generación de esta página ha provocado errores en el interprete PHP!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr "Enviar informe de errores al equipo de desarrollo de GOsa"
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr "Enviar informe de errores"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Modificar información"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "Error PHP"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "clase"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "función"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "estático"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "método"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Traza"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "Archivo"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Linea"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Tipo"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Argumentos"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr "Buscar en subárboles"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+"Este objeto ha cambiado desde que ha sido abierto en GOsa. ¡Todos los "
+"cambios realizados por otros se perderán si graba esta entrada!"
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr "Modificando ACL dn"
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "desde"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr "a"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr "Recuperar"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "mover"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "copiar"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "Error XML en guide.xml: %s en la linea %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "No hay ayuda disponible para esta extensión."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "hay %s resultados para su busqueda con el termino %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% procentaje en fichero %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+"El parámetro de zona horaria '%s' en gosa.conf no es válido. No se puede "
+"calcular una compensación correcta para la zona horaria."
+
+#: include/utils/class_xml.inc:48
+msgid "in"
+msgstr "en"
+
+#: include/utils/class_xml.inc:50
+msgid "on line"
+msgstr "En linea"
+
+#: include/utils/class_xml.inc:51
+msgid "XML error"
+msgstr "Error XML"
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Seleccione para mostrar objetos de tipo '%s'."
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Seleccione para mostrar objetos conteniendo '%s'."
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Seleccione para mostrar objetos que tengan '%s' activado"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Seleccione para buscar dentro de subárboles"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr "¡El objeto será eliminado!"
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr "¡El objeto '%s' será eliminado!"
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr "Este objeto será eliminado: %s"
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr "El objeto '%s' será eliminado: %s"
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr "Este objeto será eliminado"
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr "El objeto '%s' será eliminado:"
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr "Estos objetos serán eliminados: %s"
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr "Los objetos '%s' serán eliminados: %s"
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr "¡No tiene permisos para eliminar este objeto!"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr "No tiene permisos para eliminar este objeto:"
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr "No tiene permisos para eliminar estos objetos:"
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr "¡No tiene permisos para crear este objeto!"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr "No tiene permisos para crear este objeto:"
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr "No tiene permisos para crear estos objetos:"
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr "¡No tiene permisos para modificar este objeto!"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr "No tiene permisos para modificar este objeto:"
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr "No tiene permisos para modificar estos objetos:"
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr "¡No tiene permisos para ver este objeto!"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr "No tiene permisos para ver el objeto:"
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr "No tiene permisos para ver estos objetos:"
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr "¡No tiene permisos para mover este objeto!"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr "No tiene permisos para mover el objeto:"
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr "No tiene permisos para mover estos objetos:"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr "Información de conexión"
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr "¡No se puede conectar a la base de datos %s!"
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr "¡No se puede seleccionar la base de datos %s!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr "¡No se ha definido el servidor %s!"
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr "¡No se ha podido ejecutar la consulta %s!"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "¡El campo '%s' tiene una palabra reservada!"
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+"¡El comando especificado como método %s para la extensión '%s' no existe!"
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr "¡El comando '%s' no es válido!"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr "¡'%s' comando (%s) para la extensión %s no es válido!"
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr "¡'%s' comando para la extensión %s no es válido!"
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "¡'%s' comando (%s) no es válido!"
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "¡No se puede ejecutar el comando '%s'!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr "¡No se puede ejecutar el comando '%s' (%s) para la extensión %s!"
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr "¡No se puede ejecutar el comando '%s' para la extensión %s!"
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "¡No se puede ejecutar el comando '%s' (%s)!"
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr "¡El valor especificado como '%s' es demasiado grande!"
+
+#: include/utils/class_msgPool.inc:238
+#, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "¡'%s' debe ser menor que %s!"
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr "¡El valor especificado como '%s' es demasiado pequeño!"
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr "¡'%s' debe ser %d o superior!"
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr "¡'%s' depende de '%s' - Por favor introduzca ambos valores!"
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "¡Ya existe una entrada con el atributo '%s' en el sistema!"
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr "¡El campo obligatorio '%s' está vacio!"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr "Ejemplo"
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "El campo '%s' tiene caracteres no validos."
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr "'%s' no está permitido:"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr "¡'%s' no están permitidos!"
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "¡El campo '%s' tiene caracteres no validos!"
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr "¡Extensión PHP %s no encontrada!"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Añadir"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr "Añadir %s"
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr "Eliminar %s"
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr "Activar %s"
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr "Editar..."
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr "Editar %s..."
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Atrás"
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "¡Esta cuenta tiene extensiones %s no validas!"
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"Esta cuenta tiene características %s activadas. Puede desactivarla pulsando "
+"aquí"
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Esta cuenta tiene las características %s activadas. ¡Para desactivarlas, "
+"necesita eliminar las caracteristicas %s primero!"
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"Esta cuenta tiene características %s desactivadas. Puede activarla pulsando "
+"aquí"
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Esta cuenta tiene las características %s desactivadas. ¡Para activarlas, "
+"necesita añadir las caracteristicas %s primero!"
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr "Añadir caracteristicas %s"
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr "Eliminar las caracteristicas %s"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Pulse en el botón - Editar - para cambiar la información en esta ventana"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Enero"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Febrero"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Marzo"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Abril"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Mayo"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Junio"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Julio"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Agosto"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Septiembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Octubre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Noviembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Diciembre"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Domingo"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Lunes"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr "Martes"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr "Jueves"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Viernes"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Sábado"
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr "¡La consulta MYSQL ha fallado!"
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr "lectura"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr "adición"
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr "modificación"
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr "eliminación"
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr "busqueda"
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr "autenticación"
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr "¡LDAP %s ha fallado!"
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr "¡La consulta LDAP ha fallado!"
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr "¡Ha fallado el subir archivo!"
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr "Ha fallado el subir archivo: %s"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr "¡Ha fallado la comunciación con el servicio de infraestructura!"
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr "Ha fallado la comunciación con el servicio de infraestructura: %s"
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr "'%s' esta todavía en uso por el objeto: %s"
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr "'%s' esta todavía en uso."
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "'%s' esta todavía en uso por los objetos: %s"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr "¡El archivo %s no existe!"
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "¡No se puede abrir el archivo '%s'!"
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "¡No se puede grabar el archivo '%s'!"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+"El valor para '%s' no esta configurado o no es válido.¡Por favor compruebe "
+"el archivo de configuración!"
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "¡No se puede eliminar el fichero '%s'!"
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "¡No se puede crear la carpeta '%s'!"
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "¡No se puede eliminar la carpeta '%s'!"
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr "Comprobando soporte %s"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr "Instala y activa el módulo de PHP %s."
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+"¡No se puede inicializar la clase '%s'! ¿Puede que falte la extensión "
+"correspondiente en la configuración de GOsa?"
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Aviso e rendimiento"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr "El rendimiento LDAP es bajo: ¡la última consulta tardó sobre %.2fs!"
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+"No se pueden crear automáticamente subárboles con RDN '%s': ¡No se ha "
+"encontrado la clase del objeto!"
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+"No se pueden crear automáticamente subárboles con RDN '%s': no soportado"
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "mientras operaba en '%s' usando el servidor LDAP '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "mientras operaba en el servidor LDAP '%s'"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"No es un DN válido: '%s': El bloque para importar debe empezar por 'dn: ...' "
+"en la linea %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Ha habido un error importando dn: '%s', ¡Por favor compruebe su LDIF desde "
+"la línea %s en adelante!"
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Entrada fallida: %s"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "¡Se ha indicado una opción no válida: '%s'!"
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr "¡Se ha indicado un objectType vacio o no válido!"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr "Demonio de soporte GOsa"
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr "¡No se puede analizar el XML!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "¡No se puede enviar el evento abortar para la entrada %s!"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr "¡No se puede eliminar la entrada %s!"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Error XML en gosa.conf: %s en la línea %d"
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"No se puede conectar a LDAP: Por favor consulte con el administrador de "
+"sistemas."
+
+#: include/class_config.inc:695
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "¡sambaSID y/o sambaRidBase no aparece en la configuración!"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr "Configuración"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+"El archivo de configuración que está usando es obsoleto. Por favor quite el "
+"archivo de configuración de GOsa y use el asistente de configuración."
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Todos los objetos en esta categoría"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+"¡El formato de la configuración ha cambiado. Por favor use el asistente de "
+"configuración!"
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr "¡Ha fallado copiar y pegar! "
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "No se pueden modificar los permisos para '%s'"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr "'%s' no es un objeto LDAP válido"
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr "No tiene permiso de escritura en '%s'"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr "Estos objetos serán modificados: %s"
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr "Este objeto sera modificado: %s"
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "No puedo pegar"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr "Por favor solucione el problema y actualize la página."
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Genérico"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Correo Electrónico"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "FAX"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Grupo"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Teléfono"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Aplicación"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Servidor"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Cliente ligero"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Estación de trabajo"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Grupo de objetos"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Impresora"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Nombre de objeto"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Contenidos"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Este objeto no tiene relación con otros objetos"
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "¡Bienvenido %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Esta es la pantalla principal de GOsa. Puede seleccionar las tareas del menú "
+"a la izquierda, o seleccionando entre los iconos siguientes. Todos los "
+"cambios se aplican directamente sobre los servidores LDAP de su compañía."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Para cerrar la conexión use <b>Cerrar</b> en la parte superior izquierda y "
+"para volver a la vista de iconos use <b>Principal</b>"
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "El equipo de GOsa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+msgid "Please select the desired entries"
+msgstr "Por favor seleccione las entradas que desee"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "Terminal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Usuario"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Nombre"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Base"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+msgid "Filter"
+msgstr "Filtro"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+msgid "Show department"
+msgstr "Mostrar departamento"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+msgid "Show users"
+msgstr "Mostrar usuarios"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+msgid "Show groups"
+msgstr "Mostrar grupos"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+msgid "Show server"
+msgstr "Mostrar servidor"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+msgid "Show workstation"
+msgstr "Mostrar estación de trabajo"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+msgid "Show terminal"
+msgstr "Mostrar terminal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+msgid "Show printer"
+msgstr "Mostrar impresora"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+msgid "Show phone"
+msgstr "Mostrar teléfono"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Si está seguro de lo que quiere hacer pulse dos veces, ya que no hay forma "
+"de que GOsa pueda recuperar posteriormente esa información"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Grupos de objetos"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr "Gestionar grupos de objetos"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr "error de infraestructura"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr "Plantillas"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr "Instalación Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+"¡No puede combinar terminales y estaciones de trabajo en un unico grupo de "
+"objetos!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "ninguno"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "¡demasiados objetos diferentes!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "usuarios"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "grupos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "aplicaciones"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "departamentos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "servidores"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "estaciones de trabajo"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr "Estación de trabajo Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "terminales"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "teléfonos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "impresoras"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "desactivado"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "Acceso sin restricciones"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "Permitir el acceso a estos equipos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "No existe el 'dn':"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+"Estos sistemas ya han sido configurados por otros grupos de objetos y no "
+"pueden ser añadidos:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr "¡Solo se puede combiar dos tipos de objetos diferentes como máximo!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr "Grupo de objetos genérico"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+msgid "Sytem trust"
+msgstr "Sistema de confianza"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr "Miembro"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Nombre del grupo"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Nombre del grupo"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Descripción del grupo"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Sistema de seguridad"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Modo seguro"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Objetos miembros"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Cola telefónica"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Sistemas"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Inicio"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Dispositivos"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "Sumario FAI"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Entorno"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Aplicaciones"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr "Por favor introduzca un nuevo nombre del grupo de objetos"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr "grupos de usuarios"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr "grupos anidados"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr "grupos de aplicacion"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr "grupos de departamento"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr "grupos de servidor"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr "grupos de estación de trabajo"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr "grupos de estaciones de trabajo windows"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr "grupos de terminales"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr "grupos de impresoras"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr "grupos de teléfonos"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Lista del grupo de objetos"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Propiedades"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Crear"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Eliminar"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr "Enviar mensaje"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+msgid "Edit object group"
+msgstr "Editar grupo de objetos"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+msgid "Remove object group"
+msgstr "Eliminar grupo de objetos"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Seleccione los objetos a añadir"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filtros"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Mostrar objetos del departamento"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Escoja el departamento base de la búsqueda"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Mostrar objetos que coincidan"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Expresiones regulares para buscar nombre de objetos"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Seleccione los sistemas a añadir"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Mostrar los sistemas del departamento"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Mostrar sistemas que coincidan con"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Expresiones regulares para buscar direcciones"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Este puede ser un grupo primario. Si está seguro de lo que quiere hacer "
+"pulse dos veces, dado que GOsa no tiene manera de recuperar esta información."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Nombre de pila"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Apellido"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr "Edición multiple"
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Nombre Posix del grupo"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Normalmente los IDs son generados automáticamente, seleccione para indicar "
+"manualmente"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Forzar GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Forzar número ID"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Seleccione para crear un grupo conforme samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "en dominio"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Los miembros están en un grupo de salto telefónico"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Los miembros están en un grupo Nagios"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Miembros del grupo"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr "en todos los grupos"
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr "no en todos los grupos"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Mostrar grupos primarios"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Mostrar grupos de samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+msgid "Show mail groups"
+msgstr "Mostrar grupos de correo"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Parametros de grupos"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Lista de grupos"
+
+#: plugins/admin/groups/group-list.xml:138
+msgid "Edit group"
+msgstr "Editar grupo"
+
+#: plugins/admin/groups/group-list.xml:151
+msgid "Remove group"
+msgstr "Eliminar grupo"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr "¡No se puede encontrar SID de grupo en el archivo de configuración!"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Grupo de samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Administradores del dominio"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Usuarios del dominio"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Invitados del dominio"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Grupo especial (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+"¡Añadir UID '%s' al grupo '%s ha fallado: no podemos encontrar el objeto "
+"usuario!"
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr "¡Añadir UID '%s' al grupo '%s ha fallado: UID es usado mas de una vez!"
+
+#: plugins/admin/groups/class_group.inc:624
+msgid "! unknown UID"
+msgstr "¡UID desconocido!"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+"La busqueda ha devuelto demasiados reultados.¡No se muestran mas de %s "
+"entradas!"
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "¡No se puede encontrar nigún SID para '%s'!"
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "¡No se puede encontrar un RIDBASE para '%s'."
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr "¡El gidNumber '%s' introducido ya esta siendo usado por %s!"
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr "Parámetros genéricos del grupo"
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr "Tipo de grupo de samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr "Nombre de dominio samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr "Miembros de grupo de salto telefónico"
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr "Grupo Nagios"
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr "Miembro del grupo"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Administración de grupo"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+msgid "Edit posix properties"
+msgstr "Editar características posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Editar características de correo electrónico"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Editar características samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Editar características telefónicas"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr "Menú"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+msgid "Edit start menu properties"
+msgstr "Editar propiedades iniciales del menú"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Editar características de entorno"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Esto incluye toda las información de cuentas, reglas de acceso al sistema, "
+"configuración IMAP, etc. de este usuario. Si está seguro de lo que quiere "
+"hacer pulse dos veces, ya que no hay manera de que GOsa recupere "
+"posteriormente la información."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Para cambiar la contraseña del usuario use los campos a continuación. Los "
+"cambios tomarán efecto inmediatamente. Por favor, recuerde la nueva "
+"contraseña, el usuario no podrá autenticarse sin ella."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Cambiar la contraseña modifica la autenticación del usuario para el correo, "
+"proxy, samba y los servicios unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Reintroducir nueva contraseña"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr "Seguridad"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Introducir contraseña"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Crear un nuevo usuario usando plantillas"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Crear un nuevo usuario es mas fácil si usa plantillas. Algunos valores en la "
+"base de datos serán introducidos automáticamente. Elegir 'ninguno' para "
+"anular el uso de plantillas."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Plantilla"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Apellido"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Nombre"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr "Gestión de usuarios"
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr "¡No tiene permisos para cambiar la contraseña de este usuario!"
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr "Bloqueo de cuenta"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+"El método de contraseña '%s' no soporta bloqueo. ¡La cuenta (%s) no ha sido "
+"bloqueada!"
+
+#: plugins/admin/users/class_userManagement.inc:730
+msgid "Unlock account"
+msgstr "Desbloquear cuenta"
+
+#: plugins/admin/users/class_userManagement.inc:732
+msgid "Lock account"
+msgstr "Bloquear cuenta"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Editar características generales"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr "POSIX"
+
+#: plugins/admin/users/class_userManagement.inc:749
+msgid "Edit POSIX properties"
+msgstr "Editar características POSIX"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Editar características netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:769
+msgid "Edit FAX properties"
+msgstr "Editar características FAX"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Lista de usuarios"
+
+#: plugins/admin/users/user-list.xml:140
+msgid "Lock users"
+msgstr "Bloquear usuarios"
+
+#: plugins/admin/users/user-list.xml:148
+msgid "Unlock users"
+msgstr "Desbloquear usuarios"
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr "Aplicar plantilla"
+
+#: plugins/admin/users/user-list.xml:199
+msgid "New user from template"
+msgstr "Nuevo usuario desde plantilla"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "Editar usuario"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr "%{filter:lockLabel(userPassword)}"
+
+#: plugins/admin/users/user-list.xml:245
+msgid "Remove user"
+msgstr "Eliminar usuario"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Mostrar plantillas"
+
+#: plugins/admin/users/user-filter.tpl:12
+msgid "Show functional users"
+msgstr "Mostrar usuarios funcionales"
+
+#: plugins/admin/users/user-filter.tpl:13
+msgid "Show POSIX users"
+msgstr "Mostrar usuarios POSIX"
+
+#: plugins/admin/users/user-filter.tpl:14
+msgid "Show Mail users"
+msgstr "Mostrar los usuarios de correo"
+
+#: plugins/admin/users/user-filter.tpl:15
+msgid "Show Samba users"
+msgstr "Mostrar los usuarios samba"
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr "Aplicando una plantilla"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+"Aplicar una plantilla a usuarios reemplazará los valores de estos por los "
+"definidos en la plantilla."
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr "¡No hay plantillas disponibles!"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Esto incluye 'todas' las cuentas, sistemas, etc. en este subárbol. Por favor "
+"pulse dos veces si quiere realmente hacer esto, ya que no hay forma de que "
+"GOsa recupere la información posteriormente."
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"La mejor opción antes de ejecutar esta acción es haber grabado el contenido "
+"actual de su árbol LDAP en un fichero. Entonces - Y solo entonces - presione "
+"'Eliminar' para continuar o 'Cancelar' para abortar."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Lista de Departamentos"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+msgid "Domain"
+msgstr "Dominio"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+msgid "Domain component"
+msgstr "Componente del dominio"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "País"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+msgid "Locality"
+msgstr "Localidad"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organización"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+msgid "Locality name"
+msgstr "Localidad"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr "Nombre de la localidad a crear"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Descripción del departamento"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Parámetros administrativos"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Marcar departamento como una unidad administrativa independiente"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Nombre del departamento"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Nombre del subárbol a crear"
+
+#: plugins/admin/departments/generic.tpl:22
+msgid "Descriptive text for   department"
+msgstr "Descripción del departamento"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Categoría"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Categoría para este subárbol"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Localización"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Provincia"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Estado donde está este subárbol localizado"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Localización de este subárbol"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Dirección"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Dirección postal de este subárbol"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Número base de teléfono de este subárbol"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Número base de fax de este subárbol"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+msgid "Domain Component"
+msgstr "Componentes del dominio"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Departamentos"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr "Gestionar Departamentos"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+"Tan pronto como la operación de etiquetado termine, puede avanzar hasta el "
+"final de la página y presionar el botón 'Continuar' para continuar al "
+"dialogo de gestión de departamento."
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr "Nombre de la Organización"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Código Postal"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Número de teléfono"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr "Nombre del País"
+
+#: plugins/admin/departments/domain.tpl:11
+msgid "Domain name"
+msgstr "Nombre de dominio"
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr "Nombre del dominio a crear"
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr "Nombre del país a crear"
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+"¡No se puede encontrar una etiqueta sin usar para identificar la unidad "
+"administrativa!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Etiquetando '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Moviendo '%s' a '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "Ha fallado a copiar %s, operación abortada"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Nombre de departamento"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Teléfono"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "El objeto '%s' está ya marcado"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Añadir marca (%s) al objeto '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Eliminando marca del objeto '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Procesando la operación solicitada"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Su navegador no soporta IFRAMES, porfavor use este enlace para ejecutar la "
+"operación solicitada."
+
+#: plugins/admin/departments/organization.tpl:11
+msgid "Name of organization"
+msgstr "Nombre de la Organización"
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr "Nombre de la organización a crear"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr "Está actualmente moviendo/renombrando este departamento."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+"Modificar un atributo 'ou' de un departamento puede corromper acls e "
+"instantaneas de todos los objetos."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr "GOsa no puede solucionar este problema, aún."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+"Antes de que confirme la acción, asegurese que todo sera como espera, se "
+"recomienda que realize un backup."
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr "ACL"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+msgid "ACL Assignment"
+msgstr "Asignación de ACL"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr "Plantillas ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr "Roles de control de acceso"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr "Editar roles CA"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr "Eliminar ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr "No hay ACL configuradas en esta categoría"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "ACLs que tienen estos objetos: %s"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr "Editar la categoría ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr "Eliminar la categoría ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr "Editar ACL para '%s', el ámbito es '%s'"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr "Objeto en uso"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+"Este Rol no puede ser eliminado por estar siendo usado por los siguientes "
+"objetos:"
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Rol"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr "Permisos"
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr "Lista de acls"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+msgid "Show access control lists"
+msgstr "Mostrar listas de control de acceso"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+msgid "Show roles"
+msgstr "Mostrar roles"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr "Envío de fallos"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/newticket'\ttarget='_blank'>Envío "
+"incidencias</a>"
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr "Editar parámetros de usuarios administrativos"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr "¡Por favor añada una IP única o una combinación red/mascara!"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "mujer"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "hombre"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr "¡No se puede subir el archivo!"
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Número serie"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+"(Algunos tipos de certificados no están soportados y pueden ser mostrados "
+"como no validos.)"
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "El certificado es valido desde %s hasta %s y es actualmente %s."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "válido"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "no válido"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "No hay certificados instalados"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr "El método de contraseña seleccionado no está disponible."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr "No se puede construir RDN: ¡no se permite + para construir subRDN!"
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr "No se puede construir RDN: ¡Atributo no definido!"
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr "No se puede construir RDN: ¡Valor no válido del atributo!"
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr ""
+"¡El método de contraseña seleccionado necesita una configuració inicial!"
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Página Web"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Móvil"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Buscapersonas"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Fecha de nacimiento"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr "¡No puedo abrir el certificado!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Unidad"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Tipo de Vía"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Profesión"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Última dirección conocida"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Lugar de residencia"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Descripción de la unidad"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Área de desarrollo"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Función"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Número de serie del certificado"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Visible por todos"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Calle"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Código Postal"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr "Parámetros genéricos del usuario"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Mi cuenta"
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr "Identificación de Usuario"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Título Personal"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Títulos académicos"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Sexo"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr "Idioma preferido"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Foto del usuario"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Restricciones de contraseña"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr "Número del departamento"
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr "Número de empleado"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Funciones laborales"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr "Número de habitación"
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr "Número de teléfono"
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr "Número del busca"
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr "Teléfono móvil"
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr "Número de Fax"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Dirección Postal personal"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr "Número de teléfono personal"
+
+#: plugins/personal/generic/class_user.inc:1647
+msgid "User password method"
+msgstr "Metodo de contraseña de usuario"
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr "Certificados de usuario"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Información personal"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Foto"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Cambiar foto"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Nombre de la plantilla"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Idioma preferido"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Teléfono privado"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Almacén de claves"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certificados"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Editar certificados"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr "Restringir inicio de sesión a"
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr "IP o Red"
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Información corporativa"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Número departamento"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Número empleado"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Número sala"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Por favor use la sección telefóno"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Elija el subárbol donde colocar al usuario"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Seleccione una base"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Caracteristicas del usuario"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Borrar Contraseña"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Introducir nueva contraseña"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Eliminar foto"
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr "¡No tiene permisos para cambiar su contraseña!"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Información genérica del usuario"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Ha cambiado el método en que su clave es guardada en la base de datos LDAP. "
+"Por esa razón tiene que volver a introducir su contraseña de nuevo. Gosa "
+"codificara esta con el nuevo método seleccionado."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Certificado estándar"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Certificado S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Certificado PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr "Editar parametros de usuarios POSIX"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "expiró"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "Periodo de gracia activado"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "activo"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr "no puede cambiar la contraseña"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr "la contraseña expiró"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automático"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"La contraseñas no pueden ser cambiadas hasta %s días desde el último cambio"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "La contraseñas deben ser cambiadas despues de %s días"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Desactivar cuenta despues de %s días de inactividad una vez caducada la "
+"contraseña"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Avisar al usuario %s días antes de que la contraseña caduque"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr "Tiempo de espera agotado esperando un bloqueo. ¡Ignorando bloqueo!"
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Grupo de usuarios"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+"UN número UID duplicado ha sido introducido para este usuario. ¡Si esto no "
+"es intencionado por favor verifique todos los uidNumbers usado!"
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Directorio de usuario"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr "shadowMin"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr "shadowMax"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr "shadowWarning"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr "shadowInactive"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr "Cuenta POSIX"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "Identificador (ID) de usuario"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr "Identificador (ID) de Grupo"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr "Forzar el cambio de contraseña al iniciar"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr "Shadow min"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr "Shadow max"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr "Shadow warning"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr "Shadow inactive"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr "Shadow expire"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr "Clave pública SSH"
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr "Sistema de confianza"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Grupo primario"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Estado"
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr "Último inicio de sesión"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Forzar UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Pertenencia a grupo"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Aviso: NFS no soporta mas de 16 grupos)"
+
+#: plugins/personal/posix/generic.tpl:100
+msgid "Common group"
+msgstr "Grupo común"
+
+#: plugins/personal/posix/generic.tpl:104
+msgid "Groups differ"
+msgstr "Grupo diferente"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr "Claves SSH"
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr "Editar claves SSH públicas..."
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Cuenta"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Seleccione grupos a añadir"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Mostrar grupos de departamentos"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Mostrar grupos coincidentes"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Expresión regular para buscar nombres de grupos"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Mostrar grupos de usuarios"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Nombre de usuario de los grupos que se muestran"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Mostrar servidores"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Mostrar estaciones de trabajo"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Mostrar terminales"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Caracteristicas Posix"
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr "Parametros POSIX"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "El usuario debe introducir la contraseña en el primer inicio de sesión"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "La contraseña expira en"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Su cambio de contraseña se ha realizado correctamente. Recuerde cambiarla en "
+"todos los programas configurados también."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr "Parámetros de Contraseña"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Para cambiar su contraseña personal use los campos siguientes. Los cambios "
+"tendrán efecto inmediato. Por favor memorice la nueva contraseña, porque no "
+"podrá entrar sin ella."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Limpiar información"
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr "Cambiar contraseña de usuario"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Necesita introducir su contraseña actual para continuar."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "No se ha asignado ningún valor al campo 'Nueva contraseña'."
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr ""
+"El programa externo de cambio de contraseña informo de un problema: %s."
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "La contraseña introducida como contraseña actual no es correcta."
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr "No tiene permisos para cambiar su contraseña."
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr "Contraseña del usuario"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "No se permite modificar la contraseña"
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr "No tiene permisos para cambiar su contraseña en estos momentos"
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr "Cuentas/Grupos UNIX"
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr "Administración Samba"
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr "Administración sistema de correo"
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr "Administración sistema de FAX"
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr "Administración Asterisk"
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr "Inventario de sistemas"
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr "Sistemas-/Administración de Configuraciones"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Libreta direcciones"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr "Sugerencias"
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr "Recibir avisos o enviar sugerencias"
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr "Avisos y sugerencias"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr "Error de configuración"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr "Error de envio de sugerencias"
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr "No se puede enviar sugerencia a '%s': %s"
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+"No se puede envíar su sugerencia. El servicio no se encuentre disponible"
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr "Por favor indique una dirección de correo válida."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+"Debe seleccionar al menos una opción de ambas, para suscribirse o enviar "
+"sugerencias."
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr "Completado"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr "Siguiente"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Parametros de samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr "Generador clave hash de Samba"
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr "Samba SID"
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr "Base RID"
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr "Contenedor de la estación de trabajo"
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr "Mapeando SID de Samba"
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr "Zona de uso horario"
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr "Por favor introduzca su zona horaria preferida aquí"
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr "Configuración avanzada de GOsa"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr "Activar Copiar y Pegar"
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr "Modo gubernamental"
+
+#: setup/setup_config2.tpl:123
+msgid "GOsa logging"
+msgstr "Registro de GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Parámetros de correo"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Método de correo"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr "Modificar atributos existentes"
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr "Plantillas de ausencia"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr "Usa estilo Cyrus UNIX"
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr "Instantaneas / Deshacer"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr "Activar instantaneas"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr "Base de instantaneas"
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr "Asistente de configuración de GOsa"
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr "Instalación"
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr "Configuración"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+"Durante la comprobación LDAP, vamos a comprobar algunos problemas comunes "
+"que suelen ocurrir cuando se hace la migración a la base administrativa LDAP "
+"de GOsa. Puede querer arreglar estos problemas aquí, para poder tener una "
+"administración mas fácil."
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr "Comprobar de nuevo"
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr "Añadir las clases de objetos necesarias a la base LDAP"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr "Actual"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr "Despues de migrar"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr "Migrar"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Cerrar"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+"Mover estaciones de trabajo windows a un departamento de estaciones de "
+"trabajo windows válido"
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+"Este dialogo le permite mover las estaciones de trabajo windows mostradas a "
+"un departamente válido."
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+"Tenga cuidado con esta herramienta, puede haber referencias apuntando a "
+"estas estaciones de trabajo que no pueden ser migradas."
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+"Mover las estaciones de trabajo windows seleccionadas a el siguiente "
+"departamento GOsa."
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr "Mover estaciones de trabajo seleccionadas"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr "Que se hará aquí"
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr "Mover grupos en el árbol de grupos configurado"
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Este dialogo le permite mover una pareja de grupos al árbol de grupos "
+"configurados. Hacer esto puede reforzar su servicio LDAP."
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"¡Tenga cuidado con esta opción! Puede haber referencias apuntando a estos "
+"grupos. La configuración de GOsa no puede migrar referencias, en este caso "
+"puede cancelar la migración."
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr "Mover grupos seleccionados en este árbol de grupos"
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr "Ocultar cambios"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr "Mostrar cambios"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr "Mover usuarios al árbol de usuarios configurado"
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Este dialogo le permite mover una pareja de usuarios al árbol de usuarios "
+"configurados. Hacer esto puede reforzar su servicio LDAP."
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"¡Tenga cuidado con esta opción! Puede haber referencias apuntando a estos "
+"usuarios. La configuración de GOsa no puede migrar referencias, por lo que "
+"puede querer cancelar la migración."
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr "Mover usuarios seleccionados al árbol de usuarios"
+
+#: setup/setup_migrate.tpl:219
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Migrar cuentas administrativas GOsa versión 2.5"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+"Este dialogo le permite migrar cuentas administrativas 2.5 a cuentas "
+"utilizables en la versión 2.6"
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr "Recargar"
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr "Cancelar"
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr "Crear una nueva cuenta administrativa GOsa"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+"Este dialogo añadirá automáticamente un nuevo superadministrador a su árbol "
+"LDAP."
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+"Actualmente los siguientes departamentos son invisibles en el interfaz de "
+"GOsa. Si quiere modificar esto para algunas de las entradas, seleccionelas y "
+"pulse el botón migrar."
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+"Si quiere saber que se hará cuando se migren las entradas seleccionadas use "
+"el botón 'Mostrar cambios' para ver el LDIF."
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Actualmente los siguientes usuarios son invisibles en el interfaz de GOsa. "
+"Si quiere modificar esto para algunos de los usuarios, seleccionelos y pulse "
+"el botón migrar."
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Actualmente los siguientes dispositivos son invisibles en el interfaz de "
+"GOsa. Si quiere modificar esto para algunas de los dispositivos "
+"seleccionelos y pulse el botón migrar."
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr "Refresco"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+"Actualmente los siguientes servicios son invisibles en el interfaz de GOsa. "
+"Si quiere modificar esto para algunos de los servicios, seleccionelos y "
+"pulse el botón migrar."
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Actualmente los siguientes menus son invisibles en el interfaz de GOsa. Si "
+"quiere modificar esto para algunas de las entradas, seleccionelas y pulse el "
+"botón migrar."
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr "Escribir archivo de configuración"
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr "Terminar - Escribir el archivo de configuración"
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+"El fichero de configuración es universalmente legible. ¡Por favor modifique "
+"los permisos del archivo!"
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "En estos momentos la configuración no es accesible o no existe."
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Despues de descargar y poner el fichero en %s,  compruebe que el usuario del "
+"servicio web es capaz de leer %s, mientras que los otros usuarios no. Si "
+"quiere puede ejecutar los siguientes comandos para cumplir lo requerido:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr "Comprobación de la instalación"
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr "Comprobación básica de la versión de PHP y las extensiones."
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr "Comprobando la versión de PHP"
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr "PHP debe ser versión '%s' o superior."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr "Por favor actualize a la versión soportada."
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr "GOsa necesita este módulo para comunicarse con el servidor LDAP."
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr "GOsa necesita este módulo para un interfaz internacionalizado."
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr "GOsa necesita este módulo para integración con samba."
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+"GOsa necesita para poder hacer uso del método de codificación SSHA este "
+"módulo."
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr "GOsa necesita este módulo para comunicarse con servidores IMAP."
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr "mbstring"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr "GOsa necesita este módulo para manejar cadenas unicode."
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr "MySQL"
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"Gosa necesita este módulo para comunicarse con las bases de datos soportadas."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr "generador de hash de la contraseña SAMBA"
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr "GOsa necesita este comando para sincronizar contraseñas POSIX y samba."
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+"Desplegar una instalación gosa-si o instale el módulo PERL Crypt::SmbHash."
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr "imagick"
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr "GOsa necesita este módulo para manejar imágenes."
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr "modulo de compresión"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr "GOsa necesita este módulo para manejar instantaneas."
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"registr_globals es un mecanismo de PHP para registrar todas las variables "
+"globales de tal manera que sean accesible desde scripts sin que cambien su "
+"ámbito. Esto puede ser un problema de seguridad."
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "Busque 'register_globals' en su php.ini y modifíquelo por 'Off'."
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+"PHP usa este valor en el recolector de basura para eliminar las sesiones "
+"antiguas."
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"Ajustando este valor a un día impedirá la perdida de sesiones y cookies "
+"antes de que realmente se desconecte por tiempo."
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Busque 'sessio.gc_maxlifetime' en su php.ini y modifíquelo a 86400 o mayor."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr "Off"
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Si quiere usar GOsa sin problemas, debe modificar a 'Off' la opción 'session."
+"auto_register' en su php.ini."
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr "Busque 'session.auto_start' en su php.ini y modifíquelo a 'Off'."
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa necesita al menos 32Mb de memoria. Teniéndola por debajo de ese limite "
+"provocara errores inesperados. Aumentar para configuraciones mayores."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr "Busque 'memory_limit' en su php.ini y modifíquelo a '32M' o mayor."
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Esta opción está relacionada con el manejo de salida de PHP. Desactive esta "
+"opción poniéndola en off para mejorar el rendimiento."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr "Busque 'implicit_flush' en su php.ini y modifíquelo a 'Off'."
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr "El tiempo de ejecución debe ser de al menos 30 segundos."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+"Busque 'max_execution_time' en su php.ini y modifíquelo a '30' o mayor."
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Aumente la seguridad del servidor modificando el parámetro 'expose_php' a "
+"'off'. PHP no debería enviar ningún tipo de información sobre el servidor "
+"que esta ejecutando la aplicación."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr "Busque 'expose_php' en su php.ini y modifíquelo a 'Off'."
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr "On"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Aumente la seguridad del servidor modificando el parámetro 'magic_quotes_gpc "
+"' a 'on'. PHP debería escapar todas las comillas de las cadenas en este caso."
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr "Busque 'magic_quotes_gpc' en su php.ini y modifíquelo a 'On'."
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Aumente el rendimiento de su servidor modificando 'magic_quotes_gpc' a 'off'"
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Busque 'zend.ze1_compatibility_mode' en su php.ini y modifíquelo a 'Off'."
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr "Se puede escribir en la configuración"
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr "No se puede escribir en la configuración"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+"GOsa lee la configuración desde un archivo colocado en (%s/%s). El asistente "
+"puede escribir la configuración directamente si tiene permisos de escritura."
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr "Configuración común de GOsa"
+
+#: setup/setup_config3.tpl:6
+msgid "Enable primary group filter"
+msgstr "Activar filtro de grupo primario"
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr "Mostrar resumen en listados"
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr "Delegar en unidades administrativas"
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr "Directorio de compilación Smarty"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr "Comunidad SNMP"
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr "Ruta del almacén PPD"
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr "Ruta del almacén de perfiles kiosk"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr "Rol Base SUDO"
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr "Script de cola de correo"
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr "Script de notificación"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr "Activar edición de bloqueo"
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr "Demonio de soporte GOsa"
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr "Tiempo máximo de respuesta de acceso al demonio"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr "Inicio y sesión"
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr "Atributo de inicio de sesión"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr "Forzar register_globals para que sea desactivado"
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr "Forzar conexiones seguras"
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr "Avisar si la sesión no esta codificada"
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr "Recordad los parámetros de filtro de los diálogos"
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr "Duración de sesiones."
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr "Depurando"
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr "Mostrar errores PHP:"
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr "Tiempo de consulta máxima de LDAP"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr "Registrar estadísticas LDAP"
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr "Nivel de depuración"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr "Desactivado"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr "Activado"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr "Sugerencia enviada correctamente"
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr "Suscribirse a la lista de correo gosa-announce"
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+"Cuando seleccione esta opción, Gosa intentara conectar a http://oss.gonicus."
+"de para suscribirle a la lista de correo de gosa-announce. Tendrá que "
+"confirmar esto por correo electrónico."
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Dirección correo electrónico"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr "Enviar comentarios al equipo del proyecto GOsa"
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+"Cuando seleccione esta opción, Gosa intentara conectar a http://oss.gonicus."
+"de para enviar el formulario de comentarios de forma anónima."
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr "¿El procedimiento de configuración le ha ayudado?"
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "Si"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "No"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr "Si no, que problemas ha encontrado"
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr "¿Es la primera vez que usa GOsa?"
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr "Lo uso desde"
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr "Seleccione el año desde el cual ha estado usando GOsa"
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr "¿Que sistema operativo / distribución usa?"
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr "¿Que servidor web usa?"
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr "¿Que versión de PHP usa?"
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr "LDAP"
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr "¿Que tipo de servidor(es) LDAP usa?"
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr "¿Cuantos objetos tiene en su servidor LDAP?"
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr "Características"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr "¿Que características de GOsa usa?"
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr "¿Que características le gustaría ver en versiones futuras de GOsa?."
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr "Enviar Comentario"
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr "Crear su fichero de configuración"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+"Dependiendo del nombre de usuario sobre el que esta corriendo el servidor "
+"web:"
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Descargar configuración"
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr "Estado: "
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr "Configuración LDAP"
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr "Conectividad LDAP"
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"Este asistente llevara a cabo la configuración de la conectividad entre GOsa "
+"y LDAP."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "¡La conexión anónima al servidor '%s' ha fallado!"
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "¡La conexión como usuario '%s' ha fallado!"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "La conexión anónima al servidor '%s' ha tenido exito."
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr "¡Por Favor especifique un usuario y contraseña!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "¡La conexión como usuario '%s' al servidor '%s' ha tenido exito!"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr "."
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr "Conexión LDAP"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Nombre de la localización"
+
+#: setup/setup_ldap.tpl:37
+msgid "Connection URI"
+msgstr "URI de conexión"
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr "Conexión TLS"
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr "Autenticación"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "DN del administrador"
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr "Eliminar usuario"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr "Añadir automáticamente la base LDAP al DN administrador"
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Contraseña de administrador"
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr "Configuración basada en el esquema"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr "Usar grupos conformes a rfc2307bis"
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr "Estado actual"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr "Inspección LDAP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr "Analice la compatibilidad con GOsa de su directorio LDAP"
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr "Comprobando objeto raíz"
+
+#: setup/class_setupStep_Migrate.inc:141
+msgid "Inspecting object classes in root object"
+msgstr "Analizando objetos en la entrada raíz"
+
+#: setup/class_setupStep_Migrate.inc:147
+msgid "Checking permission for LDAP database"
+msgstr "Comprobando permisos en la base de datos LDAP"
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr "Comprobando departamentos invisibles"
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr "Comprobando usuarios invisibles"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr "Comprobando súper administrador"
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr "Comprobando cuentas fuera del árbol de usuarios"
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr "Comprobando grupos fuera del árbol de grupos"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+"Comprobando estaciones de trabajo windows fuera del árbol de estaciones de "
+"trabajo windows"
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr "Comprobando números UID duplicados"
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr "Comprobando números GID duplicados"
+
+#: setup/class_setupStep_Migrate.inc:202
+msgid "Checking for old style USB devices"
+msgstr "Comprobando dispositivos por método antiguo"
+
+#: setup/class_setupStep_Migrate.inc:208
+msgid "Checking for old services that have to be migrated"
+msgstr "Comprobando servicios antiguos que deben ser migrados"
+
+#: setup/class_setupStep_Migrate.inc:214
+msgid "Checking for old style application menus"
+msgstr "Comprobando por menús con estilo antiguo"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr "La consulta LDAP ha fallado"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr "Posiblemente el objeto raíz está desaparecido"
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Encontrado '%s' valores duplicados del atributo 'uidNumber'."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Encontrado '%s' valores duplicados del atributo 'gidNumber'."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Error"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+"Se encontraron '%s' estaciones de trabajo windows fuera del contenedor ou de "
+"estaciones de trabajo windows '%s'"
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "Encontrados '%s' grupos fuera del árbol configurado '%s'."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr "Mover"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr "Encontrados '%s' usuario(s) fuera del árbol configurado '%s'."
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+"El usuario especificado '%s' no tiene acceso total a la base de datos LDAP."
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr "Encontrados %s usuario(s) que nos son visibles para GOsa."
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr "Error de migración"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "No puede migrar el departamento '%s':"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr "Encontrados %s departamento(s) que nos son visibles para GOsa."
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Encontrada cuenta administrativa GOsa 2.5: %s"
+
+#: setup/class_setupStep_Migrate.inc:1033
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "No hay cuenta de administrador GOsa 2.6 en la base de datos LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr "No hay cuenta de administrador GOsa en la base de datos LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr "No se puede añadir ACL para el usuario '%s':"
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr "Error de entrada"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr "Uid"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr "Error de contraseña"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr "¡La contraseñas introducidas no  coinciden!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr "¡Por favor especifique un ID de usuario válido!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+"Ha fallado al añadir un usuario administrativo: ¡El objeto '%s' ya existe!"
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr "¡No puedo mover los usuarios al departamento especificado!"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr "La estaciones de trabajo windows serán trasladadas desde"
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr "También se actualizaran las siguientes referencias"
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr "El grupo serán trasladado desde"
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr "El usuario serán trasladado desde"
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr "Las siguientes referencias se actualizaran"
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+"EL objeto raíz de LDAP ha desaparecido. Es necesario para poder usar el "
+"servicio LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr "Intentando crear el objeto raíz"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+"El objeto raíz no ha podido ser creado, tendra que crearlo usted mismo."
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "¡No se ha encontrado la clase de objeto GOsa '%s'!"
+
+#: setup/class_setupStep_Migrate.inc:2059
+msgid "Please check your installation."
+msgstr "Por favor compruebe su instalación"
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+"No se puede un tipo de objeto estructural en su entrada raíz. Por favor "
+"intente añadir la clase de objeto '%s' manualmente."
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Copia fallida de '%s' a '%s':"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr "Hay %s dispositivos que necesitan ser migrados."
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr "Añadiendo '%s' a LDAP ha fallado: %s"
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Actualizando '%s' ha fallado: %s"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr "Hay %s serviccios que necesitan ser migrados."
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr "Hay %s menu de aplicaciones que necesitan ser migrados."
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+"Aparentemente es la primera vez que inicia GOsa - No se ha encontrado "
+"ninguna configuración. Este asistente intentara ayudarle mientras se "
+"configura."
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr "¿Que hará este asistente para usted?"
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr "Creara una configuración básica para un único sitio"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr "Intentando encontrar problemas en la configuración de LDAP y de PHP"
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr "Le permite seleccionar un juego de opciones básicas o avanzadas"
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr "Migración guiada de arboles LDAP existentes"
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr "¿Que no hará este asistente por usted?"
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr "Encontrar cada posible error de configuración"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+"Migración asistidas de cualquier configuración LDAP - ¡creando copias de "
+"seguridad!"
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr "Para continuar..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+"Por razones de seguridad necesita autenticarse para la instalación, creando "
+"el archivo '/tmp/gosa.auth', que tendrá el ID de la sesión actual en el "
+"sistema de archivos del servidor. Esto puede ser hecho ejecutando el "
+"siguiente comando:"
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr "Pulse en el botón 'Continuar' cuando haya terminado."
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr "He leido la licencia y la acepto"
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr "Configuración GOsa 3/3"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr "Ajustar el comportamiento del núcleo común de GOsa"
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr "¡El tiempo de vida de sesión debe ser un valor numérico!"
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "¡Máximo tiempo de consulta LDAP debe ser un valor numérico!"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr "Comprobaciones de módulos y extensiones PHP"
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr "GOsa NO funcionara si no arregla esto."
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr "GOsa puede funcionar sin que se arregle esto."
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr "Configuración de PHP"
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr "mostrar información"
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr "Parametros específicos del esquema"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr "Activar validación de esquema cuando se registre"
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr "Comprobar Estado"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr "Comprobación de esquema correcta"
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr "Ha fallado la comprobación del esquema"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+"No se puede acceder a la información de esquemas, todos las comprobaciones "
+"se suspenden. Ajuste las acl de ldap."
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+"Parece que la base de datos ldap no ha sido inicializada. ¡Esta puede se la "
+"razón por la que GOsa no puede acceder a la configuración de esquemas!"
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr "Temas y apariencia"
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr "Tema"
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr "Apache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr "Salida de compresión enviada al navegador"
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr "Almacén de grupos y usuarios"
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr "Atributo 'dn' de los usuarios"
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr "Subárbol de almacenamiento para los usuarios"
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr "Subárbol de almacenamiento para los grupos"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr "Incluir el título personal en el DN de usuario"
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr "Reglas no estrictas de nombres"
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr "UIDs Automaticas"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr "GID / UID min id"
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr "Número base para usuarios y grupos"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr "Método para el número base"
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr "Algoritmo de codificación de contraseña"
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr "Restricciones de contraseña"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr "Longitud mínima de la contraseña"
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr "Caracteres diferentes de la contraseña anterior"
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr "Método de cambio de contraseña"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr "Usar SASL para kerberos"
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr "Usar caducidad de cuenta"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"Gosa soporta varios tipos diferentes de codificación para las contraseñas. "
+"Normalmente esto es seleccionable a través de las plantillas de usuario, "
+"pero también se puede introducir un método que sera usado por defecto."
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa siempre actúa en modo administrador y gestiona los permisos de acceso "
+"internamente. Esto es una solución temporal hasta que las ACI (Access "
+"control information) estén completamente implementadas en OPENLDAP.  Para "
+"que esto funcione, necesitamos el DN del administrador y la contraseña "
+"correspondiente."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Algunos parámetros básicos de LDAP son modificables y afectarán las "
+"ubicaciones donde GOSa guarda los usuarios y los grupos, incluyendo la "
+"manera en que las cuentas son creadas. Compruebe los valores a continuación "
+"se ajustan a sus necesidades."
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"Gosa tiene un soporte modular para diferentes métodos de correo electrónico. "
+"Estos son herramientas de control de la cuentas de correo y control de "
+"cuotas. Puede elegir el método 'dummy' para dejar su configuración de correo "
+"limpia."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr "Comprobar esquemas LDAP"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr "Efectuando comprobaciones en los esquemas actuales de LDAP"
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr "Bienvenido"
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr "Mensaje de Bienvenida"
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr "Bienvenidos al asistente de configuración de GOsa"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr "Licencia"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr "Términos y condiciones de uso"
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr "Por favor seleccione su idioma preferido"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+"En este punto, puede seleccionar el idioma usado por defecto. Seleccionando "
+"'automático' obtendrá el lenguaje usado por el navedador. Esta configuración "
+"puede ser modificada por cada usuario."
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr "Por favor seleccione su idioma preferido"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr "Configuración GOsa 1/3"
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr "Configuración genérica de GOsa"
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "El valor especificado para '%s' debe ser una valor numérico"
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr "No añada una coma final a '%s'"
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "OU de almacenamiento de Usuarios"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "OU de almacenamiento de Grupos"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr "El Uid base debe ser un valor numérico"
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr ""
+"El valor indicado como longitud mínima de la contraseña no es un valor "
+"numérico."
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr ""
+"El valor indicado como diferencias mínimas de la contraseña no es un valor "
+"numérico."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr "Configuración GOsa 2/3"
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr "Personalizar parametros especiales"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr "Selección de idiomas"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr "Este paso le permite seleccionar su idioma preferido"
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr "Automatico"
+
+#~ msgid "Inconsistent DN encoding detected: '%s'"
+#~ msgstr "Se ha detectado una codificación de DN inconsistente: '%s'"
+
+#~ msgid "Choose a base"
+#~ msgstr "Elija una base"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Elija el subárbol donde colocar el grupo"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "Elija subárbol para colocar el departamento"
+
+#~ msgid "Update"
+#~ msgstr "Actualizar"
+
+#~ msgid "Show %s"
+#~ msgstr "Mostrar %s"
+
+#~ msgid "people"
+#~ msgstr "usuarios"
+
+#~ msgid "Select users to add"
+#~ msgstr "Seleccione usuarios a añadir"
+
+#~ msgid "Select to see servers"
+#~ msgstr "Seleccione para ver los servidores"
+
+#~ msgid "Search within subtree"
+#~ msgstr "Buscar dentro del subárbol"
+
+#~ msgid "Display users of department"
+#~ msgstr "Mostrar usuarios del departamento"
+
+#~ msgid "Display users matching"
+#~ msgstr "Mostrar usuarios que coincidan con"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "Expresiones regulares para buscar nombre de usuarios"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Lista de usuarios"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Nombre de pila"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Apellido"
+
+#~ msgid ""
+#~ "Step in the prefered tree and click save to use the current subtree as "
+#~ "base. Or click the image at the end of each entry."
+#~ msgstr ""
+#~ "Entrar en el árbol preferido y pulse grabar para usar el subárbol actual "
+#~ "como base. O pulse en la imagen al final de cada entrada"
+
+#~ msgid "Use"
+#~ msgstr "Usar"
+
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Filtrar entradas con esta sintaxis"
+
+#~ msgid "MySQL error"
+#~ msgstr "Error MySQL"
+
+#~ msgid "Logging to MySQL database will be disabled for server '%s'!"
+#~ msgstr ""
+#~ "¡La escritura del registro en la base de datos MySQL se desactivará para "
+#~ "el servidor '%s'!"
+
+#~ msgid "MySQL logging"
+#~ msgstr "Escritura del registro en MySQL"
+
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "¡No se puede añadir la ubicación a la base de datos!"
+
+#~ msgid "Submit department"
+#~ msgstr "Enviar departamento"
+
+#~ msgid "edit"
+#~ msgstr "editar"
+
+#~ msgid "delete"
+#~ msgstr "eliminar"
+
+#~ msgid "Number of listed object groups"
+#~ msgstr "Número de grupo de objetos listados"
+
+#~ msgid "Number of listed departments"
+#~ msgstr "Número de departamentos"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr "Seleccione para ver que grupos son grupos primarios de usuarios"
+
+#~ msgid "samba groups mappings"
+#~ msgstr "Mapeos de grupos de samba"
+
+#~ msgid "application settings"
+#~ msgstr "parámetros de aplicaciones"
+
+#~ msgid "mail settings"
+#~ msgstr "parámetros de correo"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr "Seleccione para ver que grupos tienen solo aspectos funcionales"
+
+#~ msgid "functional groups"
+#~ msgstr "grupos funcionales"
+
+#~ msgid "Not allowed"
+#~ msgstr "No permitido"
+
+#~ msgid "Number of listed groups"
+#~ msgstr "Número de grupos mostrados"
+
+#~ msgid "Manage POSIX groups"
+#~ msgstr "Gestionar grupos POSIX"
+
+#~ msgid "group"
+#~ msgstr "grupo"
+
+#~ msgid "User administration"
+#~ msgstr "Administración de Usuario"
+
+#~ msgid "templates"
+#~ msgstr "plantillas"
+
+#~ msgid "GOsa object"
+#~ msgstr "Objeto GOsa"
+
+#~ msgid "functional users"
+#~ msgstr "usuarios funcionales"
+
+#~ msgid "POSIX users"
+#~ msgstr "Usuarios POSIX"
+
+#~ msgid "samba users"
+#~ msgstr "Usuarios samba"
+
+#~ msgid "proxy users"
+#~ msgstr "usuarios de proxy"
+
+#~ msgid "phone users"
+#~ msgstr "operadores telefónicos"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Editar características UNIX"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "Editar características de Fax"
+
+#~ msgid "Create user with this template"
+#~ msgstr "Crear usuario con esta plantilla"
+
+#~ msgid "user"
+#~ msgstr "usuario"
+
+#~ msgid "password"
+#~ msgstr "contraseña"
+
+#~ msgid "Delete user"
+#~ msgstr "Eliminar usuario"
+
+#~ msgid "Number of listed users"
+#~ msgstr "Número de usuarios mostrados"
+
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "¡No tiene permisos para modificar el objeto '%s'!"
+
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "¡No tiene permisos para usar esta plantilla!"
+
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr ""
+#~ "¡No tiene permisos para cambiar el estado de bloqueo de este usuario!"
+
+#~ msgid "Name / Department"
+#~ msgstr "Nombre / Departamento"
+
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "Expresión regular para buscar el nombre del departamento"
+
+#~ msgid ""
+#~ "As soon as the move operation has finished, you can scroll down to end of "
+#~ "the page and press the 'Continue' button to continue with the department "
+#~ "management dialog."
+#~ msgstr ""
+#~ "Tan pronto como la termine la operación mover, podrá bajar al final de la "
+#~ "página y presionar el botón 'Continuar' para continuar con el asistente "
+#~ "de administración de departamento."
+
+#~ msgid "Department management"
+#~ msgstr "Administración de departamento"
+
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "Esto incluye todos los sistemas e información de configuración. Por favor "
+#~ "pulse dos veces si quiere realmente hacer esto, ya que no hay forma de "
+#~ "que GOsa recupere la información posteriormente."
+
+#~ msgid "ACL role"
+#~ msgstr "Roles ACL"
+
+#~ msgid "Summary"
+#~ msgstr "Sumario"
+
+#~ msgid "Display acls matching"
+#~ msgstr "Mostrar las acl que coincidan con"
+
+#~ msgid "Edit acl role"
+#~ msgstr "Editar rol"
+
+#~ msgid "Edit acl"
+#~ msgstr "Editar acl"
+
+#~ msgid "Delete acl"
+#~ msgstr "Eliminar acl"
+
+#~ msgid "Gender"
+#~ msgstr "Sexo"
+
+#~ msgid "Logging options"
+#~ msgstr "Opciones de registro de eventos"
+
+#~ msgid "Syslog"
+#~ msgstr "Syslog"
+
+#~ msgid "ACL takes effect for all users"
+#~ msgstr "La ACL tendrá efecto para todos los usuarios"
+
+#~ msgid "Version mismatch for optional object class '%s' (!=%s)!"
+#~ msgstr ""
+#~ "¡Las versiones de la clase de objeto opcional no coinciden '%s' (!=%s)!"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "no en todos los grupos"
+
+#~ msgid "Enable DNS extension"
+#~ msgstr "Activar extensión DNS"
+
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Activar extensión DHCP"
+
+#~ msgid "Enable mime type management"
+#~ msgstr "Activar gestión tipos mime"
+
+#~ msgid "Enable FAI release management"
+#~ msgstr "Activar gestión de versiones FAI"
+
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Activar extensión de usuario Netatalk"
+
+#, fuzzy
+#~ msgid "Missing GOsa class %s."
+#~ msgstr "¡No se ha encontrado la clase de objeto opcional '%s'!"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Cambio de contraseña"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Crear"
+
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "Esta cuenta tiene las características %s activadas. ¡Para desactivarlas, "
+#~ "necesita añadir las caracteristicas %s primero!"
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "MySQL es necesario para el acceso a algunas bases de datos soportadas."
+
+#~ msgid "Role name"
+#~ msgstr "Nombre del Rol"
+
+#~ msgid "Role description"
+#~ msgstr "Descripción del Rol"
+
+#, fuzzy
+#~ msgid "Override sudo role ou"
+#~ msgstr "¡id desconocido!"
+
+#~ msgid "Action"
+#~ msgstr "Acción"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "Eliminar esta entrada"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "Añadir"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "Eliminar"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "Ha decidido eliminar todo el subárbol LDAP colocado debajo de '%s'."
+
+#~ msgid "Delete acl role"
+#~ msgstr "Eliminar rol"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "Eliminar usuario"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "Sugerencia enviada correctamente"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "Eliminar opciones"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "Mayo"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "mes"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "Contraseña"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "Parámetro de la aplicación"
+
+#, fuzzy
+#~ msgid "You have no permission to create LDAP dumps!"
+#~ msgstr "No tiene permisos para eliminar este departamento."
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "Parametros del Kernel"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr "No tiene permisos para eliminar este departamento."
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "Lista de usuarios"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "Expresión regular para buscar nombres de grupos"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "Expresión regular para buscar nombres de grupos"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "Eliminar grupo seleccionado"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "Junio"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "Usuarios del dominio"
+
+#, fuzzy
+#~ msgid "sudo role"
+#~ msgstr "¡id desconocido!"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "Aviso"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "Impresora"
+
+#, fuzzy
+#~ msgid "Invalid"
+#~ msgstr "no válido"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "Usuarios del dominio"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "Administración de grupo"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "Administración sistema de correo"
+
+#~ msgid ""
+#~ "GOsa requires functionality that is not available (or buggy) in older PHP "
+#~ "versions. Please update to a supported version."
+#~ msgstr ""
+#~ "GOsa necesita funcionalidades que no son disponibles (o son defectuosas) "
+#~ "en versiones antiguas de PHP. Por favor actualice a una versión soportada."
+
+#~ msgid "Checking for LDAP support"
+#~ msgstr "Comprobando el soporte de LDAP"
+
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr ""
+#~ "Esta es la extensión principalmente usada por GOsa y por lo tanto "
+#~ "obligatoria."
+
+#, fuzzy
+#~ msgid ""
+#~ "The ldap extension (php5-ldap) is required to communicate with your LDAP "
+#~ "server."
+#~ msgstr ""
+#~ "La extensión LDAP (php4-ldap/php5-ldap) es necesaria para comunicarse con "
+#~ "el servidor LDAP."
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "Comprobando soporte gettext"
+
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr "El soporte de gettext es necesario para soportar múltiples idiomas."
+
+#~ msgid "Please make sure that the extension is activated."
+#~ msgstr "Por favor asegúrese que esta extensión está activada."
+
+#~ msgid "Checking for iconv support"
+#~ msgstr "Comprobando soporte iconv"
+
+#~ msgid ""
+#~ "This module is used by GOsa to convert samba munged dial informations and "
+#~ "is therefore required. "
+#~ msgstr ""
+#~ "Este módulo es usado por GOsa para convertir munged dial de samba y es "
+#~ "por lo tanto necesario."
+
+#~ msgid "Checking for mhash support"
+#~ msgstr "Comprobando soporte mhash"
+
+#, fuzzy
+#~ msgid ""
+#~ "The mhash module for PHP 5 is not available.Please install php5-mhash."
+#~ msgstr ""
+#~ "El módulo mhash para PHP 4/5 no está disponible. Por favor instale php4-"
+#~ "mhash/php5-mhash."
+
+#~ msgid "Checking for IMAP support"
+#~ msgstr "Comprobando soporte IMAP"
+
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr ""
+#~ "El módulo IMAP es necesario para comunicar con un servidor IMAP, GOsa "
+#~ "recupera información de estado, crea y elimina usuarios de correo, etc."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is used to communicate with your mail server. Please install "
+#~ "php5-imap."
+#~ msgstr ""
+#~ "Este módulo se necesita para comunicarse con el servidor de correo. Por "
+#~ "favor instale php4-imap/php5-imap."
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "Comprobando soporte gettext"
+
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "Comprobando getacl en la implementación de IMAP"
+
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "El soporte de getacl es necesario para manejar permisos en carpetas "
+#~ "compartidas. Versiones antiguas de la extensión IMAP no son capaces de "
+#~ "leer acls. Necesita una versión reciente de PHP para hacer uso de esta "
+#~ "característica."
+
+#~ msgid "Checking for MySQL support"
+#~ msgstr "Comprobando soporte MySQL"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to communicate with database servers (GOfax, "
+#~ "asterisk, GLPI, etc.). Please install php5-mysql"
+#~ msgstr ""
+#~ "Este módulo es necesario para comunicarse con servicios de bases de datos "
+#~ "(GOfax, asterisk, GLPI, etc.). Por favor instale php4-mysql/php5-mysql"
+
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "Comprobando soporte kadm5"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr ""
+#~ "Administrar cuentas en kerberos necesita el módulo kadm5, el cual se "
+#~ "puede descargar desde la red PEAR"
+
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr ""
+#~ "Este módulo es necesario para manejar cuentas kerberos, se puede "
+#~ "descargar a través de la red PEAR"
+
+#~ msgid "Checking for SNMP support"
+#~ msgstr "Comprobando soporte snmp"
+
+#~ msgid ""
+#~ "The simple network management protocol is needed to get status "
+#~ "information from clients."
+#~ msgstr ""
+#~ "El protocolo de gestión simple de red es necesario para obtener "
+#~ "información de los clientes."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required for client monitoring. Please install php5-snmp."
+#~ msgstr ""
+#~ "El módulo es necesario para la monitorización de clientes. Por favor "
+#~ "instale php4-snmp/php5-snmp."
+
+#~ msgid "Checking for CUPS support"
+#~ msgstr "Comprobando soporte CUPS"
+
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "Para poder leer la lista de impresoras disponibles a través del protocolo "
+#~ "IPP en vez de archivos de princap, necesita tener instalado el módulo "
+#~ "CUPS."
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "Comprobando soporte fping"
+
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr ""
+#~ "La utilidad fping es utilizada cuando se tiene un entorno de terminales "
+#~ "basados en clientes ligeros."
+
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr ""
+#~ "La utilidad fping es solo utilizada en un entorno de terminales basados "
+#~ "en clientes ligeros."
+
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr ""
+#~ "Para poder usar contraseñas en SAMBA 2/3 necesita instalar paquetes "
+#~ "adicionales que generen los hashes de las contraseñas."
+
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr ""
+#~ "Para poder usar SAMBA 2/3 necesita instalar ciertas librerías en perl. "
+#~ "Vea mkntpasswd."
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "Mostrara estaciones de trabajo basadas en windows"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "Servidor"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "Mostrar usuarios samba"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "Función"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Posix"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "hombre"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "Proxy"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "Sumario"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "Aplicación"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "Seleccione para ver estaciones de trabajo basadas en Windows"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "Teléfono"
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "Número de Fax"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "La contraseñas deben ser cambiadas despues de %s días"
+
+#~ msgid "You are not allowed to set this users password!"
+#~ msgstr "¡No le estátá permitido cambiarle la contraseña de estos usuarios!"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "eliminar"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "eliminar"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "Permisos"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "No tiene permisos para editar esta acl."
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "No tiene permisos para crear un nuevo rol."
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "Se puede escribir en la configuración"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "Se puede escribir en la configuración"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "La contraseña expira en"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "Se puede escribir en la configuración"
+
+#~ msgid "Anonymous bind failed on server '%s'."
+#~ msgstr "Ha fallado la Autenticación Anónima en el servidor '%s'."
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "No puedo crear el fichero '%s'."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "No puedo crear el fichero '%s'."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "No puedo crear el fichero '%s'."
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "No puedo crear el fichero '%s'."
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "Seleccione para mostrar las plantillas de usuarios"
+
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr "Seleccione para ver los usuarios que solo tienen la extensión GOsa"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr "Seleccione para ver los usuarios que tienen extensiones Posix"
+
+#~ msgid "Show unix users"
+#~ msgstr "Mostrar los usuarios unix"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr "Seleccione para ver los usuarios que tienen extensiones de correo"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "Seleccione para ver los usuarios que tienen extensiones samba"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr "Seleccione para ver los usuarios que tienen extensiones proxy"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr "Seleccione para ver que grupos tienen asignado un grupo samba"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr "Seleccione para ver que grupos tienen aplicaciones configuradas"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr "Seleccione para ver que grupos tienen configuración de correo"
+
+#, fuzzy
+#~ msgid "acl"
+#~ msgstr "Cancelar"
+
+#~ msgid "Ignore subtrees"
+#~ msgstr "Ignorar subárboles"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr ""
+#~ "La Autenticación como usuario '%s' en el servidor '%s'. ha tenido éxito."
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr ""
+#~ "La Autenticación como usuario '%s' en el servidor '%s'. ha tenido éxito."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "Has decidido eliminar las siguientes entradas %s"
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "Has decidido eliminar la siguiente entrada %s"
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "Atrás"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "Editar usuario"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "Administrador"
+
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "¡No tiene permisos para cambiar la contraseña de este usuario!"
+
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "No le está permitido eliminar este usuario."
+
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "Has decidido eliminar la entrada %s"
+
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "Has decidido eliminar las siguientes entradas: %s"
+
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "¡No le está permitido eliminar el usuario '%s'!"
+
+#~ msgid "You're about to delete the user %s."
+#~ msgstr "Esta a punto de eliminar el usuario %s"
+
+#~ msgid "You are not allowed to delete this user!"
+#~ msgstr "¡No le está permitido eliminar este usuario!"
+
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "Has decidido eliminar la siguiente entrada %s"
+
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "Has decidido eliminar las siguientes entradas %s"
+
+#~ msgid "You're about to delete the group '%s'."
+#~ msgstr "Está a punto de borrar el grupo '%s'."
+
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "Va a eliminar la acl %s."
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "No tiene permisos para eliminar este departamento."
+
+#~ msgid "List of acl"
+#~ msgstr "Lista de acl"
+
+#~ msgid "Required field 'Name' is not set."
+#~ msgstr "No ha introducido el campo obligatorio 'Nombre'."
+
+#~ msgid "Required field 'Description' is not set."
+#~ msgstr "No ha introducido el campo obligatorio 'Descripción'."
+
+#, fuzzy
+#~ msgid ""
+#~ "Moving LDAP tree failed: destination tree is a subtree of the source!"
+#~ msgstr ""
+#~ "Ha fallado al mover el árbol. El árbol destino es subárbol del elegido."
+
+#~ msgid "Edit ACL"
+#~ msgstr "Editar ACL"
+
+#~ msgid "Delete ACL"
+#~ msgstr "Eliminar ACL"
+
+#~ msgid "Clear categories ACLs"
+#~ msgstr "Eliminar categorías ACLs"
+
+#~ msgid "Groupname / Department"
+#~ msgstr "Nombre de grupo / Departamento"
+
+#~ msgid "This 'dn' is no group."
+#~ msgstr "Este 'dn' no es un grupo."
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "Activado"
+
+#~ msgid "Acl roles"
+#~ msgstr "Roles"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "Ha fallado la eliminación del antiguo archivo ppd'%s'."
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr "activo, la contraseña expiró"
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "Por favor introduzca un número de serie válido"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "No tiene permisos para mover este objeto a '%s'."
+
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "Este menú permite crear, editar o eliminar los usuarios seleccionados. Si "
+#~ "tiene un gran numero de usuarios puede usar los selectores de rangos en "
+#~ "la parte superior del listado."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "Este menú le permite añadir, editar o eliminar los grupos seleccionados. "
+#~ "Cuando trabaje con un gran número de grupos puede usar el selector de "
+#~ "rango en la parte superior de la lista de grupos,."
+
+#~ msgid "This menu allows you to edit and delete selected acls."
+#~ msgstr "Este menú le permite editar y eliminar las acl seleccionadas."
+
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "Este menú le permitirá crear, eliminar, y editar los departamentos "
+#~ "seleccionados. Puede preferir el selector de rango en la parte superior "
+#~ "de la lista de departamentos cuando maneje un gran número de "
+#~ "departamentos."
+
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr ""
+#~ "La eliminación de la cuenta genérica/usuario con dn '%s' ha fallado."
+
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "La grabación de la cuenta genérica/usuario con dn '%s' ha fallado."
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "Este cuenta no tiene extensiones unix."
+
+#~ msgid "Remove posix account"
+#~ msgstr "Eliminar cuenta Posix"
+
+#~ msgid "Create posix account"
+#~ msgstr "Crear cuenta posix"
+
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr ""
+#~ "Ha fallado la eliminación de la cuenta de usuario / posix con dn '%s'."
+
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "Ha fallado la grabación de la cuenta de usuario/posix con dn '%s'."
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "Identificación de Usuario"
+
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "Ha fallado la eliminación del departamento con dn '%s'."
+
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "Ha fallado la grabación del departamento con dn '%s'."
+
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "Ha fallado la grabación de la ACLs con dn '%s'."
+
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "Ha fallado la eliminación de la ACLs con dn '%s'."
+
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "Ha fallado la eliminación del Rol en el grupo de objetos '%s'."
+
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "Ha fallado la eliminación de los grupos/genericos con dn '%s'."
+
+#, fuzzy
+#~ msgid "'%s' should be smaller than '%s'!"
+#~ msgstr ""
+#~ "El valor especificado como 'shadowMin' debería ser menor que 'shadowMax'."
+
+#~ msgid "The required field 'Home directory' is not set."
+#~ msgstr "No se ha asignado ningún valor al campo 'Directorio de usuario'."
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr ""
+#~ "Por favor introduzca una ruta valida en el campo 'Directorio de usuario'"
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "El valor especificado como 'UID' no es valido."
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "El valor especificado como 'GID' no es valido."
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "El valor especificado como 'GID' es demasiado pequeño."
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "El valor especificado como 'shadowMin' no es valido."
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "El valor especificado como 'shadowMax' no es valido."
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "El valor especificado como 'shadowWarning' no es valido."
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowWarning' sin 'shadowMax' no tiene sentido."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be smaller than 'shadowMax'."
+#~ msgstr ""
+#~ "El valor especificado como 'shadowWarning' debería ser menor que "
+#~ "'shadowMax'."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be greater than 'shadowMin'."
+#~ msgstr ""
+#~ "El valor especificado como 'shadowWarning' debería ser mayor que "
+#~ "'shadowMin'."
+
+#~ msgid "Value specified as 'shadowInactive' is not valid."
+#~ msgstr "El valor especificado como 'shadowInactive' no es valido."
+
+#~ msgid "'shadowInactive' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowInactive' sin 'shadowMax' no tiene sentido."
+
+#~ msgid "The required field 'Given name' is not set."
+#~ msgstr ""
+#~ "No se ha asignado ningún valor al campo obligatorio 'Nombre de pila'."
+
+#~ msgid "The required field 'Login' is not set."
+#~ msgstr "No se ha asignado ningún valor al campo obligatorio 'Login'."
+
+#~ msgid ""
+#~ "There's already a person with this 'Name'/'Given name' combination in the "
+#~ "database."
+#~ msgstr ""
+#~ "Ya existe un usuario con la misma combinación 'Nombre' / 'Nombre de pila' "
+#~ "en la base de datos."
+
+#~ msgid ""
+#~ "The field 'Login' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "El campo 'Login' contiene caracteres no validos. Solo se permiten "
+#~ "minúsculas, números y guiones."
+
+#~ msgid "The field 'Homepage' contains an invalid URL definition."
+#~ msgstr "El campo 'Pagina web' contiene una URL no valida"
+
+#~ msgid "The field 'Given name' contains invalid characters."
+#~ msgstr "El campo 'Nombre de pila' contiene caracteres no validos"
+
+#~ msgid "The field 'Phone' contains an invalid phone number."
+#~ msgstr "El campo 'Teléfono' tiene un número de teléfono no valido."
+
+#~ msgid "The field 'Mobile' contains an invalid phone number."
+#~ msgstr "El campo 'Teléfono móvil' contiene un número de teléfono invalido."
+
+#~ msgid "The field 'Pager' contains an invalid phone number."
+#~ msgstr ""
+#~ "El campo 'Dispositivo de Búsqueda' contiene un número de teléfono "
+#~ "invalido."
+
+#~ msgid ""
+#~ "The field 'Name' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "El campo 'Nombre' contiene caracteres no validos. Solo puede utilizar "
+#~ "minúsculas, números y guiones."
+
+#~ msgid "Value specified as 'Name' is already used."
+#~ msgstr "El valor especificado como 'Nombre' ya esta siendo utilizado."
+
+#~ msgid "Please select a valid template."
+#~ msgstr "Por favor seleccione una plantilla válida."
+
+#~ msgid "A person with the choosen name is already used in this tree."
+#~ msgstr "Ya existe una persona con el nombre elegido en este árbol."
+
+#~ msgid "Department with that 'Name' already exists."
+#~ msgstr "Ya existe un departamente con ese 'Nombre'."
+
+#~ msgid ""
+#~ "The field 'Name' contains the reserved word '%s'. Please choose another "
+#~ "name."
+#~ msgstr ""
+#~ "El campo 'Nombre' tiene la palabra reservada '%s'. Por favor elija otro "
+#~ "nombre."
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr "No tiene permisos para crear componentes en esta 'Base'."
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "Foto del usuario"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "Sistema / Departamento"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "Has decidido eliminar las siguientes entradas: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to remove and change the properties of GOsa deamon "
+#~ "tasks."
+#~ msgstr ""
+#~ "Este menú le permite añadir, eliminar o configurar las propiedades de un "
+#~ "servicioespecíficos."
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "Lista de Departamentos"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "Juego de caracteres"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "PHP Schedule it"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "Eliminar"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Shell"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "PHP Schedule it"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "Juego de caracteres"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "Sexo"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "Marzo"
+
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "¡No tiene permisos para eliminar esta acl!"
+
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "¡No tiene permisos para eliminar este rol!"
+
+#~ msgid ""
+#~ "Your search method returned more than '%s' users, only '%s' users are "
+#~ "shown."
+#~ msgstr ""
+#~ "Su sistema de busqueda ha devuelto mas de '%s' usuarios, se mostraran "
+#~ "solo '%s' usuarios."
+
+#~ msgid "No configured SID found for '%s'."
+#~ msgstr "No hay ningún SID configurado para '%s'."
+
+#~ msgid "You are not allowed to delete this group!"
+#~ msgstr "¡No le está permitido eliminar este grupo!"
+
+#~ msgid "You have no permission to remove this department."
+#~ msgstr "No tiene permisos para eliminar este departamento."
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "Cuenta Scalix"
+
+#~ msgid "Nagios"
+#~ msgstr "Nagios"
+
+#~ msgid "Options"
+#~ msgstr "Opciones"
+
+#~ msgid "Parameter"
+#~ msgstr "Parámetro"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "Añadir inventario"
+
+#~ msgid "Services"
+#~ msgstr "Servicios"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "servicio de registro de GOsa"
diff --git a/gosa-core/locale/core/fr/LC_MESSAGES/messages.po b/gosa-core/locale/core/fr/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..1e9dbb4
--- /dev/null
+++ b/gosa-core/locale/core/fr/LC_MESSAGES/messages.po
@@ -0,0 +1,6673 @@
+# translation of messages.po to
+# Benoit Mortier <benoit.mortier at opensides.be>, 2005, 2006, 2007, 2008, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2010-01-28 22:18+0100\n"
+"Last-Translator: Benoit Mortier <benoit.mortier at opensides.be>\n"
+"Language-Team:  <fr at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Avertissement"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Cela peut être utilisé par plusieurs groupes. Veuillez vérifier que vous "
+"voulez effectuer cette opération étant donné qu'il est impossible pour GOsa "
+"de récupérer vos données."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"D'accord - si vous êtes sur - cliquez sur 'Supprimer' pour continuer ou sur "
+"'Annuler' pour abandonner."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr "Fenêtre de connexion GOsa"
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr "Fenêtre de connexion"
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+"Veuillez utiliser votre nom d'utilisateur et votre mot de passe afin de vous "
+"connecter."
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Nom d'utilisateur"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Mot de passe"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Répertoire"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Connexion"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Cliquez ici pour vous connecter"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr "Assistant pour le copier & coller"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Certaines valeurs doivent être unique dans tout l'arbre et certaines "
+"combinations n'ont pas de sens. Gosa vous montre les valeurs "
+"correspondantes. Veuillez maintenir les valeurs pour respecter les "
+"politiques de sécurité."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+"Veuillez vous souvenir que certaines propriétés comme les copie instantanées "
+"ne seront pas copiés !"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+"Ou si vous couper ou copiez un entrée avec GOsa et que vous effacer la "
+"source, vous pouvez rencontrer des erreurs en tentant de le coller à "
+"nouveau !"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Enregistrer"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr "Tout annuler"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Opération réalisée"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Terminé"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"L'option size limit rend les opérations LDAP plus rapides et permet au "
+"serveur LDAP d'avoir un niveau de charge plus léger. La façon la plus facile "
+"de gérer des grandes bases de données sans de longs temps d'attentes, serait "
+"de limiter la recherche à des valeurs plus petites et d'utiliser les filtres "
+"pour obtenir les valeurs que vous recherchez."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Veuillez choisir la façon de réagir pour cette session"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+"ignorer cette erreur et montrer toutes les entrées retournées par le serveur "
+"LDAP"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"ignorer cette erreur et montrer toutes les entrées qui sont récupérées grâce "
+"au paramètre sizelimit défini et laissez moi utiliser les filtres pour "
+"restreindre les données a visualiser"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Activer"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr "ACL assignés à l'entrée actuelle"
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr "Nouvelle ACL"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr "Type ACL"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr "Sélectionnez un type d'acl"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Appliquer"
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr "Paramètres supplémentaire pour le filtre"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr "Utiliser les membres depuis"
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr "Membres disponibles"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr "Liste les destinataires possibles pour les messages"
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Membres"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr "Lister les destinataires du message"
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr "Liste des catégories d'acl disponibles"
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr "ACL pour cet objet"
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr "Type de rôles disponibles"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Votre mot de passe à expiré. Choisissez un nouveau mot de passe !"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr "Ancien mot de passe"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nouveau mot de passe"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr "Vérifier votre mot de passe"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Modifier le mot de passe"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Cliquez ici pour changer votre mot de passe"
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr "Votre session GOsa à expiré !"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+"Veuillez fermer la fenêtre de votre navigateur et vider les cache des mots "
+"de passe pour éviter l'authentification automatique par votre navigateur."
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr "Restaurer des copie instantanés des objets"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+"Cette procédure va restaurer un copie instantanée de l'objet sélectionné. "
+"Cela va remplacer l'objet existant après que vous ayez pressé le bouton "
+"restaurer."
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+"Souvenez vous que la configuration DNS et les base de données ne peuvent pas "
+"être restaurées. Pour certains objets il est juste nécessaire de les ouvrir "
+"et de les sauvegarder à nouveau (goFon), certaines entrée cependant devront "
+"être recrées manuellement (glpi)."
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+"N'oubliez pas de vérifier les références avec les autres objets, par exemple "
+"est ce que l'imprimante sélectionnée existe encore ?"
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Objet"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr "Il n'y a pas de snapshots disponibles qui pourrait être restaurés"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+"Choisissez une copie instantanée et cliquez sur l'image du répertoire, pour "
+"restaurer la copie"
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr "Créer une copie instantanée des d'objets"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+"Cette procédure va créer une copie instantanée de l'objet sélectionné. Il "
+"sera stocké dans une branche spéciale de votre annuaire et pourra être "
+"restauré plus tard."
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+"Souvenez vous que les entrées dans les base de données, les configurations "
+"DNS et probablement les zones crées dans les serveurs ne seront pas stockées "
+"dans les copie instantanées."
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr "Date"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr "Raison pour la génération de cette copie instantanée"
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Continuer"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Erreur"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Information"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Modifier votre mot de passe"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Réussi"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Votre mot de passe à été changé avec succès."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Changement de mot de passe"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+"Cette fenêtre vous permet de changer votre mot de passe de manière simple. "
+"Entrez le mot de passe actuel et le nouveau mot de passe (deux fois) dans "
+"les champs ci-dessous et appuyez sur le bouton 'Changer'."
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Mot de passe actuel"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr "Nouveau mot de passe"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr "Niveau de sécurité du mot de passe"
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Changer"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Conflit de verrou détecté"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Si la détection de ce verrou est fausse, une autre personne a manifestement "
+"fermé la fenêtre de son navigateur durant une opération de modification "
+"d'une entrée. Dans ce cas, vous pouvez supprimez le verrou en cliquant sur "
+"le bouton 'Éditer malgré tout'."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr "Lecture seule"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "Aide en ligne de GOsa"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Index"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Recherche"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Votre session GOsa à expiré !"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"Votre dernière interaction avec GOsa date d'un certain temps. Pour des "
+"raisons de sécurité, la session à été fermée. Pour continuer à administrer, "
+"veuillez vous reconnecter."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Reconnexion"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Conflit détecté entre différentes sessions"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Une autre instance de votre session a été détectée. Les opérations multiples "
+"sont techniquement impossible et dépendent du navigateur utilisé. L'usage de "
+"navigateurs différents en même temps est possible (ex: IE et Mozilla) est "
+"possible. Cliquer sur le bouton 'Déconnexion' fermera cette session."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Ignorer ce message entraînera la modification/destruction des données en "
+"cours d'édition, il est conseillé de fermer toutes les fenêtres ouvertes et "
+"de se reconnecter."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Déconnexion"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Vous êtes actuellement en train d éditer une entrée de la base de données. "
+"Voulez vous annuler les modifications ?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Accueil"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Aide"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Déconnexion"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Connecté:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr "Menu Principal de GOsa"
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr "Erreur Fatale"
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "Le fichier de configuration %s/%s ne peut être lu. Abandon."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Erreur de configuration"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+"Le répertoire '%s' spécifié comme répertoire de compilation est "
+"inaccessible !"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr "Format de stockage des mots de passe"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr "Erreur: Méthode de changement de mot de passe non disponible!"
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"Le mot de passe entrée dans le champ 'Nouveau mot de passe' et celui dans le "
+"champ 'Répéter le nouveau mot de passe' ne concordent pas."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "Le nouveau et l'ancien mot de passe sont trop similaires."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "Le nouveau mot de passe ne comporte pas suffisamment de caractères."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Identifiant"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Veuillez vérifier le nom d'utilisateur et le mot de passe."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Vous n'avez pas l'autorisation pour changer votre mot de passe."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr ""
+"Le programme externe pour changer votre mot de passe à renvoyé une erreur: "
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "La session ne sera pas cryptée."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Démarrer une session SSL"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr "La session n'est pas cryptée !"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+"La durée de validité des sessions configurée dans votre gosa.conf sera "
+"remplacée par celle définie dans votre php.ini."
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr "Erreur Smarty"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr "Il y a une problèmes avec la configuration de l'authentification !"
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+"Impossible de trouver un utilisateur valide pour le système "
+"d'authentification !"
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+"L'information de l'utilisateur n'est pas unique à travers tout les "
+"annuaires !"
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "Erreur LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+"Impossible de détecter les information sur les schémas LDAP installés !"
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr "Votre installation LDAP contient de vieux schémas :"
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Le nom d'utilisateur est incorrect !"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Veuillez introduire votre mot de passe !"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr "Erreur d'authentification"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+"Impossible de trouver l'information utilisateur pour l'authentification "
+"htaccess !"
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Compte verouillé. Veuillez contacter votre administrateur système !"
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Votre navigateur à les cookies désactivées. Veuillez activer les cookies et "
+"recharger cette page avant de vous connecter !"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr "Smarty"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+"Je n'ai pas trouvé '%s' - veuillez exécuter '%s' pour régler ce problème"
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr "Configuration de PHP"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"FATAL: Register globals est activé. GOsa ne permettra pas aux utilisateurs "
+"de se connecter tant que ceci n'est pas corrigé par un administrateur."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr "Plus de mémoire disponible !"
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr "Les vérifications des ACL de l'utilisateur ont été désactivés"
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr ""
+"Votre mot de passe va bientôt expirer, veuillez changer votre mot de passe !"
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr "Extension"
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "FATAL: Impossible de trouver une définition pour l'extension '%s' !"
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr "Erreur de configuration"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+"FATAL: toute les variables POST non pas été transférées par PHP - Veuillez "
+"avertir votre administrateur !"
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Aide"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Il n'y a pas de fichier d'aide spécifiée pour cette classe."
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "précédent"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "suivant"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Le répertoire d'aide '%s' n'est pas accessible, impossible de lire les "
+"fichiers d'aide."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "non configuré"
+
+#: include/class_management.inc:145
+msgid "Filter error"
+msgstr "Erreur de Filtre"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr "Le filtre est incomplet !"
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr "Permissions"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr "Erreur de permissions"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+"Vous n'êtes pas autorisé à créer une nouvelle copie instantanée pour %s."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Vous n'êtes pas autorisé à restaurer un copie instantanée de %s."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+"Pas de déclaration pour '%s' dans votre fichier de configuration. Impossible "
+"d'initialiser le plugin !"
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr "Le module mcrypt n'as pas été trouvé. Veuillez installer php5-mycrypt."
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr "La connexion socket vers l'hôte '%s:%s' à echoué : %s"
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr "Le temps limite du socket de '%s' secondes à été atteint."
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+"Impossible de trouver une méthode de cryptage correspondante pour le mot de "
+"passe !"
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+"La fonctionnalité pour les copie instantanées est activée, mais la variable "
+"requise '%s' n'est pas configurée."
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+"La fonctionnalité pour les copie instantanées est activée, mais le module "
+"nécessaire à la compression est manquant. Veuillez installer '%s'. "
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Contrôle d'accès"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr "Gestion de listes de contrôle d'accès (ACL)"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "utilisateurs"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Toutes les catégories"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "Remise à zéro des ACL"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Un niveau"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Objet actuel"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Sous arbre complet"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Le sous arbre complet (permanent)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Utiliser l'ACL définie dans le rôle"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Utilisateurs"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Groupes"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Au dessus"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "En bas"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Editer"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr ""
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Supprimer"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr "Pas de paramètres pour les ACL de cette catégorie !"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Contient les ACL pour ces objets: %s"
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "ACL de la catégorie"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "Editer l'ACL pour '%s', l'étendue est '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Tout les objets dans le sous arbres actuel"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr "Afficher/Cacher la configuration avancée"
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Créer un objet"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Bouger un objet"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Enlever les objets"
+
+#: include/class_acl.inc:807
+msgid "Grant permission to owner"
+msgstr "Donner la permission à l'utilisateur"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "lecture"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "écrire"
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr "L'objet au complet"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "Erreur interne"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "Type d'ACL inconnu '%s' !"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entrée inconnue '%s'  !"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr "Rôle : %s"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr "Rôle inconnu"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Contient les paramètres pour ces objets: %s"
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr "inactif"
+
+#: include/class_acl.inc:1096
+msgid "No members"
+msgstr "Aucun membres"
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr "Contrôle d'accès (ACL)"
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr "Rôles ACL"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"Le canal demandé n'existe pas ! Veuillez contacter votre administrateur "
+"système."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr "Sélectionner tout"
+
+#: include/class_listing.inc:519
+msgid "created by"
+msgstr "Crée par"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Aller au département de base"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Racine"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Monter d'un département"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Aller au département des utilisateurs"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Accueil"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Recharger la liste"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Soumettre"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr ""
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr "Copier"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr "Couper"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Coller"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Couper cette entrée"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Copier cette entrée"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+msgid "Restore snapshots"
+msgstr "Restaurer la copie instantanée"
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr "Exporter la liste"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr "Restaurer la copie instantanée"
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr "Créer un snapshot"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr "Créer un nouveau snapshot depuis cet objet"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Editer cette entrée"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Supprimer cette entrée"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Erreur fatale : pas d'emplacement défini pour les classes  - veuillez "
+"exécuter '%s' pour régler le problème"
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Erreur fatale : impossible d'initialiser la classe '%s' - veuillez exécuter "
+"'%s' pour essayer de régler le problème"
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+"FATAL: Erreur lors de la connexion au serveur LDAP. Le serveur à répondu '%"
+"s'."
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr ""
+"Le nom de l'utilisateur / UID n'est pas unique dans votre annuaire LDAP !"
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"Le nom de l'utilisateur / UID n'est pas unique dans votre annuaire LDAP. "
+"Veuillez contacter votre administrateur système."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Erreur lors de l'ajout d'un verrou. Contactez les développeurs !"
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Impossible d'obtenir les informations de verrouillage dans l'annuaire LDAP. "
+"Veuillez contacter votre administrateur !"
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Le serveur LDAP à retourné: %s"
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Détection de verrou multiple pour un même objet. Ceci ne devrait pas "
+"arriver. Effacement des références multiples."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "La taille limite de %d entrées est dépassée !"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Mettre la nouvelle limite à %s et me montrer ce message si la limite est "
+"toujours dépassée"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Configurer"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "incomplet"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Continuer malgré tout"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Éditer malgré tout"
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Vous êtes sur le point d'éditer l'entrée(s) %s"
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "Entrées par page"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Appliquer le filtre"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "Version de développement de GOsa (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr "Le fichier '%s' ne peut pas être éffacé."
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr "Impossible d'écrire le fichier de revision !"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr "'baseIdHook' n'est pas disponible. Utilisation de la base par défaut !"
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr "Avertissement LDAP"
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"Impossible de récupérer les informations sur les schémas depuis le serveur. "
+"Vérification des schémas impossibles !"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr "Utilisé pour stocker les informations spécifiques des comptes."
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+"Utilisé pour verrouiller les entrées actuellement modifiées afin d'éviter de "
+"multiples changements simultanés."
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Object class obligatoire '%s' manquante !"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr "Object class facultative '%s' manquante !"
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr "La version requise des object class ne correspond pas '%s' (!=%s) !"
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr "Classe(s) disponible(s)"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+"Vous avez activé l'option rfc2307bis dans votre option 'configuration du "
+"serveur ldap' lors de l'installation, mais la configuration de vos schéma ne "
+"supportent pas cette option."
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+"Pour pouvoir utiliser des groupes conformes à la norme rfc2307bis, "
+"l'objectClass 'posixGroup' doit être       AUXILIARY"
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+"Votre schéma est configuré pour supporter les groupes rfc2307, mais vous "
+"avez désactivé cette option lors de l'étape 'configuration de l'annuaire "
+"ldap' du programme d'installation."
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr "L'objectClass 'posixGroup' doit être STRUCTURAL"
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Allemand"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Français"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italien"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Espagnol"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Anglais"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Hollandais"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Polonais"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "Chinois"
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr "Vietnamien"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Russe"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"La commande '%s', utilisée dans le POSTMODIFY de l'extension '%s' n'existe "
+"pas."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr "Impossible de générer un hash samba !"
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+"Impossible de générer le mot de passe samba: l'exécution de '%s' à échoué, "
+"veuillez vérifier le paramètre 'sambaHashHook'!"
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+msgid "Cannot allocate a free ID:"
+msgstr "Impossible d'assigner un ID libre :"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr "Méthode d'allocation des id inconnue !"
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Impossible de créer l'entrée sambaUnixIdPool !"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr "sambaUnixIdPool n'est pas unique !"
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr "Pas d' ID disponibles !"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr "Nombre maximum d'essais dépassés !"
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr "Impossible d'assigner un ID libre !"
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+"Pas de définition de plugin pour l'initialisation de '%s', veuillez vérifier "
+"votre fichier de configuration."
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "L'effacement à été interrompu par l'extension '%s': %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Références"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Vous êtes sur le point de supprimer le snapshot '%s'."
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr "Supprimer le snapshot"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr ""
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+msgid "Page"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr "Pas d'exportation en pdf, la librairie FPDF n'est pas installée."
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr "Vous êtes occupé à éditer des entrées multiples."
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr "Réinitialisation du mot de passe"
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr ""
+"Le mot de passe de l'utilisateur à été réinitialisé, veuillez entrer un "
+"nouveau mot de passe !"
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr "Le Certificat et vide !"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+"Impossible de charger le certificat - seul les certificats PEM/DER sont "
+"supportés !"
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "Impossible d'extraire les informations de certificats non PEM !"
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr "Pas de certificat valide chargé !"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+"La création de cette page à occasionné des erreurs d'après l'interpréteur "
+"PHP !"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr "Envoyer vos commentaires au membres du projet Gosa"
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr "Envoyer un rapport de bug"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Afficher/Cacher l'information"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "Erreur PHP"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "classe"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "fonction"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "statique"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "méthode"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Trace"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "Fichier"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Ligne"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Type"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Arguments"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr "Chercher dans les sous arbre"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+"Cet objet à changer depuis son ouverture dans GOsa. Tout les changement "
+"éffectués par les autres seront perdus si vous sauvez cette entrée !"
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr "Changement du dn de l'acl"
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "de"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr "vers"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr "Restaurer"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "couper"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "copier"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "Erreur XML dans guide.xml: %s à la ligne %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "L'aide n'est pas disponible pour cette extension."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s résultats de votre recherche avec le mot %s "
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% de correspondance dans le fichier %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+"Le fuseau horaire '%s' indiqué dans votre gosa.conf est invalide. Impossible "
+"de calculer le décalage horaire correct."
+
+#: include/utils/class_xml.inc:48
+msgid "in"
+msgstr "dans"
+
+#: include/utils/class_xml.inc:50
+msgid "on line"
+msgstr "en ligne"
+
+#: include/utils/class_xml.inc:51
+msgid "XML error"
+msgstr "Erreur XML"
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Sélectionnez pour lister les objets de type '%s'."
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Sélectionner pour lister les objets contenant '%s'."
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Sélectionnez pour lister les objets qui ont '%s' activés"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Sélectionner pour chercher dans le sous arbre"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr "Cet objet sera effacé !"
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr "L'objet '%s' sera effacé !"
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr "Cet objet sera effacé : %s"
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr "L'objet de type '%s' sera effacé: %s"
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr "Cet objet sera effacé: "
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr "L'objet de type '%s' sera effacé:"
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr "Ces objets seront effacés: %s"
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr "Ces objets de type '%s' seront effacés: %s"
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr "Vous n'avez pas les droits nécessaires pour supprimer cet objet !"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr "Vous n'avez pas les droits nécessaires pour supprimer cet objet :"
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr "Vous n'avez pas les droits nécessaires pour supprimer ces objets :"
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr "Vous n'avez pas les droits nécessaires pour créer cet objet !"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr "Vous n'avez pas les droits nécessaires pour créer l'objet :"
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr "Vous n'avez pas les droits nécessaires pour créer ces objets :"
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr "Vous n'avez pas l'autorisation de modifier cet objet !"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr "Vous n'avez pas l'autorisation de modifier cet objet :"
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr "Vous n'avez pas l'autorisation de modifier ces objets :"
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr "Vous n'avez pas l'autorisation de voir cet objet !"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr "Vous n'avez pas l'autorisation de voir l'objet :"
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr "Vous n'avez pas l'autorisation devoir ces objets :"
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr "Vous n'avez pas l'autorisation de bouger cet objet !"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr "Vous n'avez pas l'autorisation de bouger l'objet :"
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr "Vous n'avez pas l'autorisation de bouger ces objets :"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr "Informations de connexions"
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Impossible de se connecter à la base de données %s !"
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr "Impossible de sélectionner la base de données %s !"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr "Pas de serveur %s défini !"
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr "Impossible d'effectuer une requête sur la base de données %s !"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Le champ '%s' contient un mot réservé !"
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+"La commande '%s', spécifiée comme connexion de l'extension '%s' n'existe "
+"pas !"
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr "Le commande '%s' est invalide !"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr "l'option '%s' de la commande (%s) pour l'extension %s est invalide !"
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr "l'option '%s' de la commande pour l'extension %s est invalide !"
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "l'option '%s' de la commande (%s) est invalide !"
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Impossible d'exécuter la commande '%s' !"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr "Impossible d'exécuter '%s' de la commande (%s) pour l'extension %s !"
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+"Impossible d'exécuter l'option '%s' de la commande pour l'extension %s !"
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Impossible d'exécuter l'option '%s' de la commande (%s) !"
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr "La valeur pour '%s' est trop grande !"
+
+#: include/utils/class_msgPool.inc:238
+#, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "'%s' doit être plus petit que %s !"
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr "La valeur pour '%s' est trop petite !"
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr "'%s' doit être à la version %d ou plus grand !"
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr "'%s' dépend de '%s' - veuillez indiquer les deux valeurs !"
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "Il existe déjà une entrée avec l'attribut '%s' dans le système !"
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Le champ obligatoire '%s' n'est pas rempli !"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr "Exemple"
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Le champ '%s' contient des caractères invalides"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr "'%s' n'est pas permis :"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr "'%s' n'est pas autorisé !"
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Le champ '%s' contient des caractères invalides !"
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Extension PHP %s manquante !"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Ajouter"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr "Ajouter %s"
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr "Supprimer %s"
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr "Activer %s"
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr "Editer..."
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr "Editer %s..."
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Retour"
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Ce compte n'a pas d'extensions %s valides !"
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"Ce compte possède l'extension %s activée. Vous pouvez la supprimer en "
+"cliquant sur le bouton ci-dessous."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Ce compte possède %s paramètres activés. Pour le désactiver vous devez au "
+"préalable supprimer les %s paramètres !"
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"Ce compte possède %s paramètres desactivés. Vous pouvez les activer en "
+"clicquant ci dessous."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Ce compte possède %s paramètres désactivés. Pour les activer, vous devez au "
+"préalable ajouter les %s paramètres !"
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr "Ajouter %s paramètres"
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr "Effacer %s paramètres"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Cliquez sur le bouton 'Editer' ci-dessous pour changer les informations dans "
+"cette boite de dialogue"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Janvier"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Février"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Mars"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Avril"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Mai"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Juin"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Juillet"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Août"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Septembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Octobre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Novembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Décembre"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Dimanche"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Lundi"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr "Mardi"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr "Mercredi"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr "Jeudi"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Vendredi"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Samedi"
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr "La requête MySQL à échoué !"
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr "lecture"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr "ajout"
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr "modification"
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr "suppression"
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr "recherche"
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr "authentification"
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr "La requête LDAP %s à échoué !"
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr "La requête LDAP à échoué !"
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr "Le téléchargement à échoué !"
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr "Le téléchargement à échoué : %s"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr "Erreur de communication avec le service d'infrastructure !"
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr "Erreur de communication avec le service d'infrastructure : %s"
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr "Ce '%s' est en cours d'utilisation par : %s"
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr "Ce '%s' est toujours en utilisation."
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "Ce '%s' est en utilisation par les objets : %s"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr "Le fichier '%s' n'existe pas !"
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Impossible de lire le fichier '%s' !"
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Impossible d'écrire dans le fichier '%s' !"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+"La valeur de '%s' est actuellement vide ou non valide, veuillez vérifier "
+"votre fichier de configuration !"
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Impossible d'effacer le fichier '%s' !"
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Impossible de créer le répertoire '%s' !"
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Impossible d'effacer le répertoire '%s' !"
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr "Vérification du support pour %s"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr "Installer et activer le module PHP %s."
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+"Impossible d'initialiser la classe '%s' ! Peut être manque t'il une "
+"extension dans votre installation de GOsa ?"
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Avertissement de performance"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+"La performance de votre annuaire est faible : la dernière requête à duré "
+"%.2fs !"
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+"Impossible de créer automatiquement des sous arbres avec le RDN '%s': object "
+"class non trouvé !"
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+"Impossible de créer automatiquement des sous arbres avec le RDN '%s': non "
+"supporté"
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "lors de l'opération sur '%s' en utilisant le serveur LDAP '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "lors de l'opération sur le serveur LDAP %s"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"Ceci n'est pas un DN valide: '%s'. Le fichier d'importation doit commencer "
+"avec 'dn: ...' à la ligne %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Erreur lors de l'importation du dn: '%s', veuillez vérifier votre fichier "
+"votre fichier LDIF à partir de la ligne %s !"
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Echec du Journal système : %s"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "Option %s non valide !"
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr "Le type d'objet spécifié est vide ou invalide !"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr "GOsa support Service"
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr "Impossible de lire le contenu du fichier XML"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Impossible d'envoyer l'evènement annuler pour l'entrée '%s' !"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr "Impossible d'enlever l'entrée %s !"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Erreur XML dans gosa.conf: %s à la ligne %d"
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Impossible de se connecter à l'annuaire LDAP. Veuillez contacter "
+"l'administrateur du système."
+
+#: include/class_config.inc:695
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "sambaSID et/ou sambaRidBase absents de votre configuration !"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr ""
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+"Le fichier de configuration que vous utilisez semble ancien. Veuillez "
+"l'enlever et recommencer l'installation."
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Tout les objets dans cette catégorie"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+"Le format du fichier de configuration à changé. Veuillez réexecuter "
+"l'installation !"
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr "Le copier/coller à échoué !"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Impossible d'attribuer les permissions pour '%s'"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr "'%s' n'est pas un objet LDAP valide"
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr "Pas de permissions d'écriture dans '%s'"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr "Ces objets seront collés : %s"
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr "Cet objet sera collé : %s"
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "Impossible de coller"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr "Veuillez fixer l'erreur ci dessus et recharger la page."
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Informations"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Messagerie"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Groupes"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Département"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Téléphone"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Applications"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Serveur"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Clients légers"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Stations de travail"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Groupes d'objets"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Imprimante"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Nom de l'objet"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Contenu"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Cette objet n'a pas de relation avec d'autres objets."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Bienvenue %s !"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Vous êtes sur la fenêtre principale de GOsa. Vous pouvez sélectionner une "
+"rubrique soit en utilisant le menu de gauche soit en cliquant sur une des "
+"icônes. Tout les changements sont directement appliqués sur les serveurs "
+"LDAP de votre société."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Cliquez sur déconnexion, en haut à gauche, pour vous déconnecter, sur "
+"Accueil pour revenir à la page principale."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "L'équipe de GOsa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+msgid "Please select the desired entries"
+msgstr "Veuillez sélectionner les entrées désirées"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Utilisateur"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Nom"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+msgid "Filter"
+msgstr "Filtre"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+msgid "Show department"
+msgstr "Départements"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+msgid "Show users"
+msgstr "Utilisateurs"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+msgid "Show groups"
+msgstr "Groupes"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+msgid "Show server"
+msgstr "Serveur"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+msgid "Show workstation"
+msgstr "Stations de travail"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+msgid "Show terminal"
+msgstr "Terminaux"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+msgid "Show printer"
+msgstr "Imprimante"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+msgid "Show phone"
+msgstr "Téléphones"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Veuillez vérifier que vous voulez effectuer cette action. Toutes les données "
+"seront perdues étant donné qu'il est impossible pour GOsa de récupérer vos "
+"données."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Groupes d'objets"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr "Gestion des groupe d'objets"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr "Erreur d'infrastructure"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr "Modèles"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr "Installation Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+"Vous ne pouvez pas combiner des terminaux et des stations de travail dans un "
+"groupe d'objet !"
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "aucun"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "nombre d'objets différents trop important !"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "utilisateurs"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "groupes"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "départements"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "serveurs"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "stations de travail"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr "Stations Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "terminaux"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "téléphones"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "imprimantes"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "désactivé"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "accès complet"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "permettre l'accès a ces hôtes"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "le dn n'existe pas :"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+"Ces systèmes sont déjà configurés par d'autres groupes d'objets et ne "
+"peuvent pas être ajoutés :"
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr "Vous pouvez combiner au maximum deux objets différents !"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr "Groupes d'objets"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+msgid "Sytem trust"
+msgstr "Système de Confiance"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr "Membres"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Nom du groupe"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Nom du groupe"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Description du groupe"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Système de Confiance"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Mode de confiance"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Objets membres"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Queue téléphonique"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Systèmes"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Démarrage"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Périphériques"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "Sommaire FAI"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Environnement"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Applications"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr "Veuillez entrer un nouveau nom pour le groupe d'objet"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr "groupes d'utilisateurs"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr "groupes imbriqués"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr "groupes d'applications"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr "groupes de départements"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr "groupes de serveurs"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr "groupes de stations de travail"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr "groupes de stations windows"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr "groupes de terminaux"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr "groupes d'imprimantes"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr "groupes de téléphones"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Liste des groupes d'objets"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Propriétés"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Créer"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Supprimer"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr "Envoyer un message"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+msgid "Edit object group"
+msgstr "Editer les groupes d'objets"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+msgid "Remove object group"
+msgstr "Enlever le groupe d'objet"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Sélectionnez les objets à ajouter"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filtres"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Afficher les objets du département"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Sélectionner le département où sera effectuée la recherche"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Afficher les objets correspondants"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Expression régulière pour trouver les objets correspondants"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Sélectionner les hôtes à ajouter"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Afficher les systèmes du département"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Afficher les systèmes correspondant"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Expression régulière pour sélectionner les adresses correspondantes"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Ce groupe est un groupe principal contenant des utilisateurs. Veuillez vous "
+"assurez que vous voulez bien exécuter cette action étant donné qu'il est "
+"impossible pour GOsa de récupérer vos données."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Prénom"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Nom de famille"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr "Edition multiple"
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Nom posix du groupe"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Normalement les IDs sont générés automatiquement, vous pouvez en spécifier "
+"un manuellement"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Forcer le GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Forcer le numéro d'ID"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Sélectionnez afin de créer un groupe samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "dans le domaine"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Les membres sont dans un groupe téléphonique"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Les membres sont dans un groupe nagios"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Membre du groupe"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr "dans tout les groupes"
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr "pas dans tout les groupes"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "groupes principaux"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Groupes Samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+msgid "Show mail groups"
+msgstr "Groupes de messagerie"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Préférences des groupes"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Liste des groupes"
+
+#: plugins/admin/groups/group-list.xml:138
+msgid "Edit group"
+msgstr "Editer le groupe"
+
+#: plugins/admin/groups/group-list.xml:151
+msgid "Remove group"
+msgstr "Enlever le groupe"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr "Impossible de trouver le SID de ce groupe dans votre configuration !"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Groupe Samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Administrateurs du domaine"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Utilisateurs du domaine"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Invités du domaine"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Groupe spécial (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+"L'ajout de l'UID '%s' au groupe '%s' à échoué : Impossible de trouver "
+"l'utilisateur !"
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+"L'ajout de l'UID '%s' au groupe '%s' à échoué : l'UID est utilisé plus d'un "
+"fois !"
+
+#: plugins/admin/groups/class_group.inc:624
+msgid "! unknown UID"
+msgstr "! identifiant inconnu"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+"La recherche à retourné trop de résultats. Je n'affiche que %s entr§es !"
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Impossible de trouver le SID pour '%s' !"
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Impossible de trouver le RIDBASe pour '%s' !"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr "L'identifiant de groupe '%s' est déjà utilisé par '%s' !"
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr "Préférences des groupes génériques"
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr "Groupe Samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr "Domaine Samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr "Groupe téléphonique"
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr "Groupe Nagios"
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr "Membre du groupe"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Administration du groupe"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+msgid "Edit posix properties"
+msgstr "Modifier les propriétés posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Modifier les propriétés de messagerie"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Modifier les propriétés samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Modifier les propriétés téléphoniques"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+msgid "Edit start menu properties"
+msgstr "Modifier les propriétes du menu de démarrage"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Modifier les propriétés d'environnement"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Cela inclut toutes les données des comptes, les droits d'accès, la "
+"configuration imap,etc. pour cet utilisateur. Veuillez vous assurez que vous "
+"voulez effectuez cette opération étant donné qu'il est impossible pour GOsa "
+"de récupérer vos données."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Pour changer le mot de passe des utilisateurs, utilisez le champ ci-dessous. "
+"Les changements prennent effet immédiatement. Veuillez mémoriser le nouveau "
+"mot de passe sinon l'utilisateur ne pourra pas s'identifier sans celui-ci."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Changer le mot de passe affecte votre identification sur la messagerie, le "
+"proxy, samba, et les services unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Confirmation du nouveau mot de passe"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr "Sécurité"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Attribuer le mot de passe"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Créer un nouvel utilisateur à partir d'un modèle"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"La création d'un nouvel utilisateur peut être facilité en utilisant les "
+"modèles. De nombreuses informations seront ainsi remplies automatiquement. "
+"Sélectionnez 'aucun' afin de ne pas utiliser les modèles."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Modèle"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Nom de famille"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Prénom"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr "Gèrer les utilisateurs"
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr ""
+"Vous n'avez pas l'autorisation pour changer le mot de passe de ce(s) "
+"utilisateurs !"
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr "Verrouillage du compte"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+"La méthode '%s' ne permet pas le verrouillage du mot de passe. Le compte (%"
+"s) n'a pas été verrouillé !"
+
+#: plugins/admin/users/class_userManagement.inc:730
+msgid "Unlock account"
+msgstr "Déverrouiller le compte"
+
+#: plugins/admin/users/class_userManagement.inc:732
+msgid "Lock account"
+msgstr "Verrouiller Compte"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Modifier les propriétés de base"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr "UNIX"
+
+#: plugins/admin/users/class_userManagement.inc:749
+msgid "Edit POSIX properties"
+msgstr "Modifier les propriétés UNIX"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Modifier les propriétés de Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:769
+msgid "Edit FAX properties"
+msgstr "Modifier les propriétés FAX"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Liste des utilisateurs"
+
+#: plugins/admin/users/user-list.xml:140
+msgid "Lock users"
+msgstr "Verouillez les utilisateurs"
+
+#: plugins/admin/users/user-list.xml:148
+msgid "Unlock users"
+msgstr "Déverrouiller les utilisateurs"
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr "Appliquer le modèle"
+
+#: plugins/admin/users/user-list.xml:199
+msgid "New user from template"
+msgstr "Créer un nouvel utilisateur depuis un modèle"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "Editer cet utilisateur"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+msgid "Remove user"
+msgstr "Suppression de l'utilisateur"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Montrer les modèles"
+
+#: plugins/admin/users/user-filter.tpl:12
+msgid "Show functional users"
+msgstr "montrer les utilisateurs fonctionnels"
+
+#: plugins/admin/users/user-filter.tpl:13
+msgid "Show POSIX users"
+msgstr "Montrer les utilisateurs Posix"
+
+#: plugins/admin/users/user-filter.tpl:14
+msgid "Show Mail users"
+msgstr "Montrer les utilisateurs de la messagerie"
+
+#: plugins/admin/users/user-filter.tpl:15
+msgid "Show Samba users"
+msgstr "Montrer les utilisateurs samba"
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr "Appliquer un modèle"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+"Appliquer un modèle à plusieurs utilisateurs remplacera tout les attributs "
+"de ces utilisateurs par ceux définis dans le modèle."
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr "Pas de modèles disponibles !"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Ceci inclus tous les comptes systèmes, etc... dans cette branche. Veuillez "
+"vérifier si vous voulez réaliser cette opération étant donné qu'il est "
+"impossible pour GOsa de récupérer vos données."
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Il est conseillé de sauvegarder l'arbre de votre annuaire LDAP dans un "
+"fichier avant de réaliser cette action. Appuyez sur 'Supprimer' pour "
+"continuer ou 'Annuler' pour abandonner."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Liste des départements"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+msgid "Domain"
+msgstr "Domaine"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+msgid "Domain component"
+msgstr "Composant domaine"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Pays"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+msgid "Locality"
+msgstr "Lieu"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Entreprise"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+msgid "Locality name"
+msgstr "Nom du lieu"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr "Nom du lieu à créer"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Description du département"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Paramètres administratifs"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Marquer le département comme une entité administrative indépendante"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Nom du département"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Nom de la branche à créer"
+
+#: plugins/admin/departments/generic.tpl:22
+msgid "Descriptive text for   department"
+msgstr "Description du département"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Catégorie"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Catégorie pour cette branche de l'annuaire"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Lieu"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Département"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Lieu où est située cette branche de l'annuaire"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Lieu de cette branche"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Adresse"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Adresse postale de cette branche"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Numéro de téléphone de base pour cette sous-branche"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Numéro de fax de base pour cette sous-branche"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+msgid "Domain Component"
+msgstr "Objet Domaine"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Départements"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr "Gérer les départements"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+"Dès que l'opération de marquage est finie, vous pouvez aller à la fin de la "
+"page et appuyer sur le bouton 'Continuer' pour continuer la gestion des "
+"départements."
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr "Nom de l'entreprise"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Adresse postale"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Numéro de téléphone"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr "Pays"
+
+#: plugins/admin/departments/domain.tpl:11
+msgid "Domain name"
+msgstr "Nom du domaine"
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr "Nom du domaine à créer"
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr "Nom du pays à créer"
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+"Impossible de trouver un marqueur libre pour marquer l'entité "
+"administrative !"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Marquer '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Bouger '%s' vers '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "Impossible de copier %s, arrêt de l'opération"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Nom du département"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Téléphone"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "L'objet '%s' est déjà marqué"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Ajouter une marque (%s) à l'objet '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Suppression de la marque de l'objet '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Opération en cours"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Votre navigateur ne supporte pas les iframes, veuillez utiliser ce lien pour "
+"effectuer l'opération demandée."
+
+#: plugins/admin/departments/organization.tpl:11
+msgid "Name of organization"
+msgstr "Nom de l'entreprise"
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr "Nom de l'entreprise à créer"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr "Vous êtes occupé à bouger/renommer ce département."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+"La modification de l'attribut 'ou' ou la base d'un département peut "
+"corrompre les entrées acls et snapshot pour tout les objets."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr "GOsa ne PEUT PAS encore corriger ceci pour vous."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+"Avant de confirmer cette action, vérifiez que tout se passera comme prévu, "
+"la meilleure solution est probablement une sauvegarde."
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+msgid "ACL Assignment"
+msgstr "Gestion des ACL"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr "Modèles des ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr "Contrôle d'accès (ACL)"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr "Editer le rôles (ACL)"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr "Remise à zéro des ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr "Pas d'ACL pour cette catégorie"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "ACL pour ces objets: %s"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr "Editer les catégories ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr "Remettre à zéro les catégories ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr "Editer l'ACL pour '%s', l'étendue est '%s'"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr "Objet utilisé"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+"Ce rôle ne peut pas être supprimé car il est encore utilisé par ces objets :"
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Rôle"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr "Permissions"
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr "Liste des acls"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+msgid "Show access control lists"
+msgstr "Montrer le contrôle d'accès (ACL)"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+msgid "Show roles"
+msgstr "Montrer les rôles"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr "Rapport de bogues"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Rapport de bogues</a>"
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr "Editer les paramètres organisationnels de l'utilisateur"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+"Veuillez ajouter une adresse IP ou une combinaison réseau/masque de sous "
+"réseau !"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "féminin"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "masculin"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr "Impossible de télécharger le fichier !"
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Numéro de série"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+"(Certains types de certificats ne sont pas supportés et peuvent être "
+"affichés comme 'non valides'.)"
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Le certificat est valide de %s à %s et est actuellement %s."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "valide"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "invalide"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Pas de certificat installé"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr ""
+"Le format de stockage sélectionné pour les mots de passe n'est plus "
+"disponible."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+"Impossible de construire le RDN: pas de + autorisé dans la construction d'un "
+"sous RDN !"
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr "Impossible de construire un RDN: l'attribut n'est pas défini !"
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+"Imposible de contruire un RDN: les paramètres de l'attribut sont non "
+"valides !"
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr ""
+"Le format de stockage sélectionné nécessite une configuration de base !"
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Page d'accueil"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "GSM"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Bip"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Date de naissance"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr "Impossible d'ouvrir le certificat !"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Unité"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Identifiant du bâtiment"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Travail"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Dernière distribution"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Lieu de résidence"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Description de l'unité"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Zone de sujet"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Fonction"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Numéro de série du certificat"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Visible par tous"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Rue"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Code postal"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr "Paramètres par défaut des utilisateurs"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Mon Compte"
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr "Information Utilisateur"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Titre Personnel"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Titre Universitaire"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Sexe"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr "Langue préférée"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Image de l'utilisateur"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Restrictions pour les mot de passe"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr "Numéro du département"
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr "Numéro de l'employé"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Type de l'employé"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr "Numéro du bureau"
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr "Numéro de téléphone"
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr "Numéro de page"
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr "Numéro de GSM"
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr "Numéro de fax"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Adresse postale personnelle"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr "Numéro de téléphone privé"
+
+#: plugins/personal/generic/class_user.inc:1647
+msgid "User password method"
+msgstr "Méthode d'encodage des mots de passe"
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr "Certificats utilisateurs"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Informations personnelles"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Image personnelle"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Changer la photo"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Nom du modèle"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Langue préférée"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Numéro de téléphone privé"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Format de stockage des mots de passe"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certificats"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Editer des certificats"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr "Restreindre le login à"
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr "IP ou réseau"
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Informations sur l'entreprise"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "No. du département."
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "No. de l'employé."
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "No. de bureau."
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Veuillez utiliser l'onglet téléphone"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Sélectionnez la branche où sera enregistrée l'utilisateur"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Sélectionnez une base"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Préférences utilisateur"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Effacer le mot de passe"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Attribuer un nouveau mot de passe"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Suppression de l'image personnelle"
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr "Vous n'avez pas l'autorisation pour changer votre mot de passe !"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Information générales sur l'utilisateur"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Vous avez sélectionnez une autre méthode de stockage des mots de passe. Pour "
+"cette raison vous devez ressaisir votre mot de passe afin que GOsa puisse le "
+"réencoder et l'enregistrer dans l'annuaire LDAP."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Certificat standard"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Certificat S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Certificat PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr "Editer les paramètres Unix"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "expire"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "temps de grâce activé"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "actif"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr "mot de passe non modifiable"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr "mot de passe expiré"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automatique"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"Les mots de passe ne peuvent être changé qu'après %s jours à compter de la "
+"dernière modification de celui-ci"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Le mot de passe doit être changé après %s jours"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Désactiver le compte après %s jours d'inactivité après l'expiration du mot "
+"de passe"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Avertir l'utilisateur %s jours avant l'expiration de son mot de passe"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr "Le temps d'attente du verrou à été dépassé. J'ignore le verrou !"
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Groupe d'utilisateurs"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+"Un uid en double vient d'être écrit pour cet utilisateur. Si ceci n'était "
+"pas voulu, veuillez vérifier tout les uid utilisés !"
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Répertoire Home"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr "Compte Posix"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "ID de l'utilisateur"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr "ID du Groupe"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr "Forcer le changement de mot de passe au la connexion"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr "Clef SSH publique"
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr "Système de Confiance"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Groupe principal"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Statut"
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr "Dernière connexion"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Forcer l'UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Appartenance au groupe"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Attention: NFS ne supporte pas plus de 16 groupes !)"
+
+#: plugins/personal/posix/generic.tpl:100
+msgid "Common group"
+msgstr "groupe commun"
+
+#: plugins/personal/posix/generic.tpl:104
+msgid "Groups differ"
+msgstr "les groupes sont différents "
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr "Clefs SSH"
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr "Editer les clefs SSH"
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Compte"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Sélectionner les groupes à ajouter"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Afficher les groupes du département"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Afficher les groupes correspondants"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Expression régulière correspondant à des noms de groupe"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Afficher les groupes contenant des utilisateurs"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Utilisateur dont on montre les groupes"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Serveurs"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Stations de travail"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Terminaux"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Paramètres Posix"
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr "Paramètres Posix"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr ""
+"L'utilisateur doit changer son mot de passe lors de sa première connexion"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Le mot de passe expirera le"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Votre mot de passe a été changé. N'oubliez pas de modifier les programmes "
+"qui l'utilisent."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr "Préférences pour les mots de passe"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Pour changer votre mot de passe, veuillez utiliser les champs ci-dessous. "
+"Les changements prennent effet immédiatement. Veuillez mémoriser le nouveau "
+"mot de passe car sans lui vous ne serez pas capable de vous identifier."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Effacer les données dans les champs"
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr "Modifier votre mot de passe"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Vous devez spécifier votre mode de passe actuel pour continuer."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr ""
+"Le mot de passe que vous avez entré comme 'Nouveau mot de passe' est vide."
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr ""
+"Le programme externe pour changer votre mot de passe à renvoyé une erreur: %"
+"s."
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr ""
+"Le mot de passe entré comme mot de passe actuel ne correspond pas à votre "
+"mot de passe."
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr "Vous n'avez pas l'autorisation pour changer votre mot de passe."
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr "Mot de passe"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Le changement du mot de passe n'est pas autorisé"
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr ""
+"Vous n'avez pas l'autorisation pour changer votre mot de passe à ce moment"
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr "Compte / Groupes UNIX"
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr "Gestion SAMBA"
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr "Gestion de la messagerie"
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr "Gestion des FAX"
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr "Gestion d'asterisk"
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr "Gestion de l'inventaire"
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr "Gestion Système / Configuration"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Carnet d'adresses"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr "Envoyer vos réponses"
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr "Recevoir des notifications et des retour d'information"
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr "Notification et retour d'information"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr "Erreur d'installation"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr "Erreur du retour d'information"
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr "Impossible d'envoyer le retour d'information à '%s': %s"
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+"Erreur lors de l'envoi de votre retour d'information:  service "
+"temporairement non disponible"
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr "Veuillez indiquer une adresse de messagerie valide."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+"Vous devez au moins avoir activé une option, souscrire ou envoyer votre "
+"retour d'information."
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr "Terminé"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr "Suivant"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Configuration Samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr "Générateur de hash samba"
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr "SID Samba"
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr "Base du RID"
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr "Branche contenant les stations de travail"
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr "Correspondance des SID samba"
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr "Fuseau Horaire"
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr "Veuillez indiquer votre fuseau horaire préféré ici"
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr "Paramètres supplémentaire de GOsa"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr "Activer le Copier / Coller"
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr "Mode Gouvernemental"
+
+#: setup/setup_config2.tpl:123
+msgid "GOsa logging"
+msgstr "journaux systèmes GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Paramètres de messagerie"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Méthode de messagerie"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr "Attribut d'identification du compte"
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr "Modèles de messages d'absence "
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr "Utiliser Cyrus en mode UNIX"
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr "Copie instantanée / Undo"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr "Activer la copie instantanée"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr "Base pour les snapshots"
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr "Installation de GOsa"
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr " "
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr "Installation"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+"Pendant l'inspection LDAP, nous allons regarder pour les problèmes "
+"classiques qui peuvent arriver lorsque l'on migre vers une administration "
+"basée sur GOsa. Vous pouvez fixer les problèmes si dessous afin de procurer "
+"une administration facilitée."
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr "Vérifier à nouveau"
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr "Ajouter les Object class obligatoires a l'annuaire LDAP. "
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr "Actuel"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr "Après migration"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr "Migrer"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Fermer"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+"Bouger les stations windows dans un département valide pour les stations "
+"windows."
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+"Ce dialogue vous permet de bouger les stations windows affichées dans un "
+"département valide"
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+"Soyez prudent avec cet outil, il peut y avoir des références pointant vers "
+"ces machines qui ne seront pas migrées."
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr "Bouger les machines windows dans le département GOsa suivant"
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr "Bouger les stations de travail sélectionnées"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr "Que ce qui sera exécuté ici"
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr "Bouger les groupes dans le groupe configuré"
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Ce dialogue permet de bouger un couple de groupes dans le groupe configuré. "
+"Exécuter cela peut améliorer votre service LDAP."
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Soyez prudent avec cette opération ! Il peut exister des références qui "
+"pointent vers ces groupes. Le programme d'installation de GOsa ne peut pas "
+"migrer ces références, vous préférerez peut être annuler la migration dans "
+"ce cas."
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr "Bouger les groupes sélectionnés dans le groupe de base cet annuaire"
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr "Camoufler les changements"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr "Montrer les changements"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr "Bouger les utilisateurs dans la branche utilisateur configurée"
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Ce dialogue permet de bouger un ensemble d'utilisateurs dans la branche "
+"utilisateur configurée. Exécuter cette opération peut améliorer votre "
+"service LDAP."
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Soyez prudent avec cette opération ! Il peut exister des références qui "
+"pointent vers ces utilisateurs. Le programme d'installation de GOsa ne peut "
+"pas migrer ces références, vous préférerez peut être annuler la migration "
+"dans ce cas."
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr "Bouger les utilisateurs sélectionnés dans la branche utilisateurs."
+
+#: setup/setup_migrate.tpl:219
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Migrer les compte administrateur de GOsa 2.5"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+"Cette boite de dialogue permet la migration des comptes administrateurs de "
+"GOSa 2.5 vers GOsa 2.6."
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr "Recharger"
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr "Annuler"
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr "Créer un nouveau compte administrateur pour GOsa"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+"Ce dialogue vas automatiquement créer un nouveau super utilisateur dans "
+"votre arbre LDAP."
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr "Mot de passe (de nouveau)"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+"Les département listés sont actuellement invisibles dans l'interface "
+"utilisateur de GOsa. Si vous voulez changer cela pour un certain nombre "
+"d'entrée, sélectionnez les et utilisez le bouton migration ci dessous."
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+"Si vous voulez savoir ce qui sera effectué lorsque vous migrerez les entrées "
+"sélectionnées, utilisez le bouton 'Montrer les changements' pour voir le "
+"fichier LDIF."
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Les utilisateurs listés sont actuellement invisibles dans l'interface "
+"utilisateur de GOsa. Si vous voulez changer ceci pour certains "
+"d'utilisateurs, veuillez les sélectionner et utiliser le bouton 'migration' "
+"ci dessous."
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Les périphériques listés sont actuellement invisibles dans l'interface de "
+"GOsa. Si vous voulez changer ceci pour certains périphériques, veuillez les "
+"sélectionner et utiliser le bouton 'migration' ci dessous."
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr "Rafraîchir"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+"Les services listés sont actuellement invisibles dans l'interface de GOsa. "
+"Si vous voulez changer ceci certains services, veuillez les sélectionner et "
+"utiliser le bouton 'migration' ci dessous."
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Les menus listés sont actuellement invisibles dans l'interface de GOsa. Si "
+"vous voulez changer ceci pour certains menus, veuillez les sélectionner et "
+"utiliser le bouton 'migration' ci dessous."
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr "Ecrire le fichier de configuration"
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr "Fini - écrire le fichier de configuration"
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+"Votre fichier de configuration est lisible par tout le monde. Veuillez "
+"modifier les permissions !"
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "Le fichier de configuration ne peut être lu ou n'existe pas."
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Après avoir placé le fichier dans le répertoire %s, assurez vous que seul le "
+"serveur web puisse lire %s. Vous pouvez exécuter les commandes suivantes "
+"pour réaliser cette opération:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr "Vérification de l'installation"
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+"Vérification de base de la version de PHP et des extensions nécéssaires."
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr "Vérification de la version de PHP"
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr "PHP doit être à la version %s ou supérieure."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr "Veuillez faire la mise à jour vers une version supportée."
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr "GOsa à besoin de ce module pour dialoger avec votre annuaire ldap."
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr "GOsa à besoin de ce module pour afficher l'interface multilingue."
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr "GOsa à besoin de ce module pour dialoger avec Samba."
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+"GOsa à besoin de ce module est nécessaire pour l'utilisation de l'encryption "
+"SSHA."
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr "GOsa à besoin de ce module pour dialoguer avec un serveur imap."
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr "mbstring"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+"GOsa a besoin  de ce module pour gèrer les chaînes de caractère unicode."
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr "MySQL"
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"GOsa à besion de ce module pour dialoguer avec les bases de données "
+"supportées."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr "générateur de hash samba"
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+"GOsa à besoin de cette commande pour synchroniser les comptes POSIX et les "
+"mots de passe Samba."
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+"Déployez une installation gosa-si ou installer les modules perl Crypt::"
+"Smbash."
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr "GOsa a besoin  de ce module pour gérer les images."
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr "Module de compression"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr "GOsa a besoin de ce module pour gérer les copie instantanées."
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals est un mécanisme PHP pour enregistrer toutes les variables "
+"globales afin que les scripts puissent y accéder sans changer la porté des "
+"variables. Cela peut constituer un risque de sécurité."
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr ""
+"Recherchez l'option 'register_globals' dans votre php.ini et mettez la à "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr "PHP utilise cette variable pour effacer des anciennes sessions."
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"Mettre cette valeur à 1 jour permet d'éviter de perde les cookies et les "
+"sessions avant qu'elles soient réellement expirées."
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Cherchez pour 'session.gc_maxlifetime' dans votre php.ini et mettez le à "
+"86400 ou plus haut."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr "Eteint"
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Pour pouvoir utiliser GOSa sans problèmes, la variable session.auto_register "
+"doit être a 'Off' dans votre php.ini."
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Recherchez la variable session.auto_register  et mettez la à 'Off' dans "
+"votre php.ini."
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa a besoin au minimum de 32MB de mémoire. Moins que 32MB causera des "
+"erreurs imprévisibles, qui ne seront pas reproductibles ! Augmentez la "
+"mémoire pour les installations plus complexes."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+"Recherchez pour 'memory_limit' dans votre php.ini et mettez le à '32M' or "
+"plus haut."
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Cette option défini la gestion des sorties, mettez cette option à 'Off', "
+"pour améliorer la performance."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr "Recherchez 'implicit_flush' dans votre php.ini et mettez le à 'Off'."
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr "Le temps d'exécution doit être au moins de 30 secondes."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+"Rechercher l'option 'max_execution_time' dans votre php.ini et mettez le à "
+"'30' ou plus."
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Augmentez la sécurité de votre serveur en mettant l'option expose_php à "
+"'Off'. PHP n'enverra pas d'information a propos du serveur."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr "Recherchez 'expose_php' dans votre php.ini et mettez le à 'Off'."
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr "Ouvert"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Améliorez la sécurité de votre serveur en mettant magic_quotes_gpc à 'on'. "
+"PHP préfixera tout les guillemets dans les chaînes avec la séquence escape."
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+"Recherchez l'option 'magic_quotes_gpc' dans votre php.ini et mettez le à "
+"'On'."
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Améliorez la performance de votre serveur en mettant magic_quotes_gpc à "
+"'off'."
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Recherchez l'option 'zend.ze1_compatibility_mode' dans votre hp.ini et "
+"mettez la à 'Off'."
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr "Le fichier de configuration peut être écrit"
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr "Le fichier de configuration ne peut pas être écrit"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+"GOsa lit sa configuration d'un fichier situé dans (%s/%s). Le programme "
+"d'installation peut écrire la configuration directement si le fichier est "
+"permet l'écriture."
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr "Paramètres essentiels de GOsa"
+
+#: setup/setup_config3.tpl:6
+msgid "Enable primary group filter"
+msgstr "Activer le filtre sur les groupes primaires"
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr "Afficher les sommaires dans les listes"
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr "Honorer les entités administratives"
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr "Répertoire de compilation de smarty"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr "communauté SNMP"
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr "Répertoire pour le stockage des PPD"
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr "Répertoire pour le stockage des profiles kiosk"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr "Base pour SUDO"
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr "Script pour la gestion de la queue du serveur de messagerie"
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr "Script de notification"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr "Activer le vérrouillage lors de l'édition"
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr "Service GOsa"
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr "Délai d'attente pour le service GOsa"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr "connexion et session"
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr "Attribut de connexion"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr "Force register_globals à être désactivé"
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr "Force les connexions cryptées"
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr "Avertir si la session ne sera pas cryptée"
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr "Se souvenir des paramètres des filtres"
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr "Durée de vie de la session"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr "Deboguage"
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr "Afficher les erreur PHP"
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr "Durée maximale d'une requête LDAP"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr "Inscrit les statistique de l'annuaire LDAP dans les journaux systèmes"
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr "Niveau de débogage"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr "Désactivé"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr "Activé"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr "L'envoi du retour d'information à réussi"
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr "Souscrire à la liste de discutions gosa-announce"
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+"Quand vous cochez cette option, GOsa essayera de se connecter a http://oss."
+"gonicus.de afin de vous inscrire à la liste de discutions gosa-announce. "
+"Vous devrez confirmer cette inscription par email."
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Adresse de messagerie"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr "Envoyer vos commentaire au membres du projet Gosa"
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+"Quand vous cocher cette option, GOsa essayera de se connecter à http://oss."
+"gonicus.de pour pouvoir transmettre votre réponse de manière anonyme."
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr "Est ce que la procédure d'installation vous à aidé ?"
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "Oui"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "Non"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr "Si non, quels sont les problèmes que vous avez rencontrés"
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr "Est ce la première fois que vous utilisez GOsa ?"
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr "Je l'utilise depuis "
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr "Veuillez sélectionner l'année depuis laquelle vous utilisez GOsa"
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr "Quel système d'exploitation / distribution utilisez vous ?"
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr "Quel serveur web utilisez vous ?"
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr "Quelle version de php utilisez vous ?"
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr "Quel type de serveur(s) ldap utilisez vous ?"
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr "Combien d'objet sont dans votre annuaire LDAP ?"
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr "Fonctionalités"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr "Quel fonctionnalités de GOsa utilisez vous ?"
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+"Quelle fonctionnalités voulez vous voir dans les prochaines versions de "
+"GOsa ?"
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr "Envoyer vos réponses"
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr "Création du fichier de configuration"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr "Dependant de l'utilisateur exécutant votre serveur web :"
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Télécharger la configuration"
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr "Statut: "
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr "Configuration LDAP"
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr "Configuration de la connexion LDAP"
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"Cette boite de dialogue permet d'indiquer la configuration de base LDAP pour "
+"GOsa."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "La connexion anonyme sur le serveur '%s' à échoué !"
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "la connexion comme l'utilisateur '%s' à échoué !"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "La connexion anonyme sur le serveur '%s' à réussi."
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr "Veuillez introduire un utilisateur et un mot de passe !"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "La connexion comme l'utilisateur '%s' au serveur '%s' à réussi !"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr "Veuillez choisir l'utilisateur LDAP qui sera utilise par GOSa"
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr "Connexion LDAP"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Nom de l'emplacement"
+
+#: setup/setup_ldap.tpl:37
+msgid "Connection URI"
+msgstr "URI de connexion"
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr "Connexion TLS"
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr "Authentification"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "DN de l'administrateur"
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr "Sélectionner un utilisateur"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+"Ajouter automatiquement la base de l'annuaire LDAP au DN de l'administrateur"
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Mot de passe administrateur"
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr "Paramètres basé sur les schéma"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr "Utilisez des groupes rfc2307bis"
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr "Statut actuel"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr "Vérification de l'annuaire LDAP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr "Analyse de votre annuaire LDAP pour la compatibilité avec GOsa"
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr "Recherche de l'objet racine"
+
+#: setup/class_setupStep_Migrate.inc:141
+msgid "Inspecting object classes in root object"
+msgstr "Inspecter les classes d'objets de l'objet racine"
+
+#: setup/class_setupStep_Migrate.inc:147
+msgid "Checking permission for LDAP database"
+msgstr "Vérification des permissions sur l'annuaire LDAP"
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr "Vérification des départements invisibles"
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr "Vérification des utilisateurs invisibles"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr "Vérification du superadministrateur"
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr "Vérification d'utilisateurs en dehors de la branche people"
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr "Vérification des groupes en dehors de la branche groups"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr "Vérification de stations windows en dehors de la branche winstation"
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr "Vérification pour les uid en double"
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr "Vérification pour les gid en double"
+
+#: setup/class_setupStep_Migrate.inc:202
+msgid "Checking for old style USB devices"
+msgstr "Recherche de périphériques USB ancien style"
+
+#: setup/class_setupStep_Migrate.inc:208
+msgid "Checking for old services that have to be migrated"
+msgstr "Vérification des anciens services qui devront être migré."
+
+#: setup/class_setupStep_Migrate.inc:214
+msgid "Checking for old style application menus"
+msgstr "Vérifier pour les menu des applications ancienne mode"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr "La requête LDAP à échoué"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr "L'objet racine est probablement manquant."
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "J'ai trouvé %s valeur dupliquées pour l'attribut 'uidNumber'."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "J'ai trouvé %s valeur dupliquées pour l'attribut 'gidNumber'."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Echec"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+"J'ai trouvé %s winstations en dehors du département winstation prédéfini '%"
+"s'."
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "J'ai trouvé %s groupes en dehors de la branche configurée '%s'."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr "Bouger"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr "J'ai trouvé %s utilsateur(s) en dehors de la branche configurée '%s'."
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+"L'utilisateur spécifié '%s' n'a pas l'accès complet à votre annuaire ldap."
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr "J'ai trouvé %s utilisateur(s) qui ne seront pas visibles dans GOsa."
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr "Erreur de migration"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Impossible de migrer le département '%s' :"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr "J'ai trouvé %s département(s) qui ne seront pas visible dans GOsa."
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Compte administratifs de GOsa 2.5 trouvés : %s"
+
+#: setup/class_setupStep_Migrate.inc:1033
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr ""
+"Il n'y a pas d'administrateur GOsa 2.6 valide dans votre annuaire LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr "Il n'y a pas d'administrateur GOsa dans votre annuaire LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr "Impossible d'ajouter une ACL pour l'utilisateur '%s' :"
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr "Erreur d'entrée"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr "Erreur de mot de passe"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr ""
+"Le mot de passe entré dans le champ nouveau et celui dans le champ "
+"vérification ne concordent pas !"
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr "Le nom d'utilisateur est incorrect !"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+"L'ajout d'un utilisateur administratif à échoué : l'objet '%s' existe déja !"
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr "Impossible de bouger les utilisateurs vers le département spécifié !"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr "Les stations windows seront bougées depuis"
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr "Mise à jour des références suivantes aussi"
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr "Les groupes seront bougés depuis"
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr "Les utilisateurs seront bougés depuis"
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr "Les références suivantes seront mises à jour"
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+"L'objet LDAP racine est manquant. Il est indispensable pour utiliser votre "
+"annuaire LDAP."
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr "Essai de création de l'objet racine"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr "L'objet racine n'a pas pu être crée, vous devrez essayer vous même."
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Object class '%s' de GOsa manquante !"
+
+#: setup/class_setupStep_Migrate.inc:2059
+msgid "Please check your installation."
+msgstr "Veuillez vérifier votre installation."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+"Impossible de gérer l'objet structural de votre objet racine. S'il vous "
+"plaît essayer de ajouter la classe d'objet '%s' à la main."
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "La copie de '%s' vers '%s' à échoué :"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr "Il y a %s services qui ont besoin d'être migrés."
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr "L'ajout de '%s' à l'annuaire LDAP à échoué: %s"
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "La mise à jour de '%s' à échoué : %s"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr "Il y a %s services qui doivent être migrés."
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr "Il y a %s menu d'applications qui doivent être migrés."
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+"Il semble que c'est votre première installation de GOsa - nous n'avons pas "
+"trouvé de configuration. Ce programme d'aide à l'installation vous aidera à "
+"configurer GOsa."
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr "Qu'est ce que le programme d'aide à l'installation fera pour vous ?"
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr "Créer une simple configuration mono site"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+"Essaye de trouver si il existe des problèmes dans votre configuration PHP ou "
+"LDAP"
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr "Vous permet de choisir un jeu d'option de base ou avancées"
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr "Migration assistée d'un annuaire LDAP existant"
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr "Qu'est ce que le l'assistant d'installation ne fera pas pour vous ?"
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr "Trouver toutes les erreur possible dans votre configuration"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr "Migrer tout les scénario LDAP possible - créez des sauvegardes !"
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr "Suite de la configuration..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+"Pour des raisons de sécurité vous devez vous authentifier en créant le "
+"fichier '/tmp/gosa.auth', contenant l'ID de la session sur le(s) serveur(s). "
+"Ceci peut être réalisé en exécutant la commande suivante:"
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr "Cliquer sur 'Continuer' quand vous avez fini."
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr "J'ai lu la licence et je l'accepte"
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr "Paramètres de GOsa 3/3"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr "Customiser certains paramètres essentiels de GOsa"
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr "La durée de la session doit être une valeur numérique !"
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Le temps maximumpour une requête ldap doit être une valeur numérique !"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr "Extension PHP et vérification de ceux ci"
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr "GOsa ne fonctionnera pas si vous ne corriger pas cela."
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr "GOsa fonctionnera même si vous ne corrigez pas cela."
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr "Configuration de PHP"
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr "Montrer les informations"
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr "Paramètres spécifiques des schémas"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr "Activer la validation des schéma lors de la connexion"
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr "Vérifier les statuts"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr "La vérification des schéma à réussi"
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr "La vérification des schéma à échoué"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+"Impossible de lire les schémas, toutes les vérifications sont annulées. "
+"Ajuster les acl de votre annuaire ldap."
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+"Il semble que votre annuaire LDAP 'a pas encore été configuré. C'est peut "
+"être cela qui empêche GOsa de lire la configuration de vos schémas. "
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr "Thèmes et apparences"
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr "Thème"
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr "Apache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr "Compresser les données envoyées au navigateur web"
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr ""
+"Branches de l'arbre ldap ou sont stockes les utilisateurs et les groupes"
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr "Type d'attribut pour le DN des utilisateurs"
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr "Branches de l'arbre ldap ou sont stockes les utilisateurs"
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr "Branches de l'arbre ldap ou sont stockes les groupes"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr "Inclure le personal title dans le DN de l'utilisateur"
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr "Règles de de nommage souples"
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr "Uid automatiques"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr "GID / UID id min"
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr "Nombre de départ pour les utilisateurs/groupes"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr "Connexions pour le nombre de base"
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr "Algorithme de cryptage pour les mots de passe"
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr "Restrictions pour les mot de passe"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr "Taille minimum des mots de passe"
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr "Nombre de caractères différents de l'ancien mot de passe"
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr "Connexions pour le changement de mot de passe"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr "Utiliser SASL pour kerberos"
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr "Utiliser l'expiration du compte"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa supporte différents types de cryptage pour vos mots de passe. "
+"Normalement ceci est ajustable avec des modèles utilisateurs, mais vous "
+"pouvez spécifier ici une méthode qui sera utilisée par défaut."
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa agit toujours comme un administrateur et gère les droits (ACLs) en "
+"interne. C'est un procédé utilisé en attendant que les ACI de OpenLDAP "
+"soient finalisées. Pour ces raisons il est nécessaire d'indiquer le DN de "
+"l'administrateur et son mot de passe."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Des paramètres basiques du serveur LDAP sont modifiables et affectent "
+"l'endroit où GOsa va enregistrer les utilisateurs et les groupes, incluant "
+"la façon dont vont être créés les comptes. Vérifiez les valeurs suivantes "
+"afin quelles correspondent à vos besoins."
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa à un support modulaire des méthodes de messagerie. Ces méthodes "
+"fournissent des interfaces vers les boîtes à messages des utilisateurs ainsi "
+"que la gestion de leurs quotas. Vous pouvez choisir l'extension dummy pour "
+"que GOsa ne touche a rien."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr "Vérification des schémas LDAP"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr "Exécuter des test sur vos schéma LDAP actuels"
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr "Bienvenue"
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr "Le message d'accueil"
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr "Bienvenue dans l'installation de GOsa"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr "licence"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr "Termes et Conditions d'utilisation"
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr "Veuillez sélectionner la langue par défaut"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+"Maintenant vous pouvez choisir la langue par défaut pour GOSa. Automatique "
+"utilisera la langue demandée par le navigateur. Ce paramètre peut être "
+"configuré par utilisateur."
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr "Veuillez indiquer votre langue préférée ici"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr "Paramètres de GOsa 1/3"
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr "Préférences de base GOsa"
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "Le valeur spécifiée pour '%s' doit être une valeur numérique."
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr "N'ajoutez pas une virgule à la fin de '%s'."
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "Branches de l'arbre ldap ou sont stockes les utilisateurs"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "Branches de l'arbre ldap ou sont stockes les groupes"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr "l'uid de base doit être une valeur numérique"
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr "La longueur minimale du mot de passe n'est pas une valeur numérique."
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr "L'option password differ n'est pas une valeur numérique."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr "Paramètres de GOsa 2/3"
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr "Customiser les paramètres spéciaux"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr "Configuration de la langue"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr "Cette étape vous permet de sélectionner votre langue préférée."
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr "Automatique"
+
+#~ msgid "Inconsistent DN encoding detected: '%s'"
+#~ msgstr "Encodage du inconsistant du DN détecté : '%s'"
+
+#~ msgid "Choose a base"
+#~ msgstr "Sélectionnez une base"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Sélectionnez la branche où sera placée le groupe"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr ""
+#~ "Sélectionnez la branche de l'annuaire dans laquelle sera placée le "
+#~ "département"
diff --git a/gosa-core/locale/core/it/LC_MESSAGES/messages.po b/gosa-core/locale/core/it/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..a3c26de
--- /dev/null
+++ b/gosa-core/locale/core/it/LC_MESSAGES/messages.po
@@ -0,0 +1,8154 @@
+# translation of messages.po to Italian
+# Copyright (c) 2005 B-Open Solutions srl - http://www.bopen.it/
+# Copyright (c) 2005 Alessandro Amici <a.amici at bopen.it>
+# Alessandro Amici <a.amici at bopen.it>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2005-11-18 15:26+0100\n"
+"Last-Translator: Alessandro Amici <a.amici at bopen.it>\n"
+"Language-Team: Italian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Attenzione"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+#, fuzzy
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Quindi - Se sei sicuro - premi <i>Rimuovi</i> per continuare o <i>Annulla</"
+"i> per abortire."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Annulla"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+#, fuzzy
+msgid "Login screen"
+msgstr "Utenti di Dominio"
+
+#: ihtml/themes/default/login.tpl:34
+#, fuzzy
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr "Usa il tuo <i>nome utente</i> e <i>password</i> per connetterti"
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Nome utente"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Password"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Directory"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Entra"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Clicca qui per connetterti"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Salva"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+#, fuzzy
+msgid "Cancel all"
+msgstr "Annulla"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+#, fuzzy
+msgid "Operation complete"
+msgstr "incompleto"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Esegui"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Imposta"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+#, fuzzy
+msgid "New ACL"
+msgstr "Nuovo"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "ACL type"
+msgstr "Tipo"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "Select an acl type"
+msgstr "Rimuovi"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Applica"
+
+#: ihtml/themes/default/acl.tpl:36
+#, fuzzy
+msgid "Additional filter options"
+msgstr "Opzioni applicazione"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Membri"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+#, fuzzy
+msgid "List of available ACL categories"
+msgstr "Scegli il tuo numero di telefono personale"
+
+#: ihtml/themes/default/acl.tpl:112
+#, fuzzy
+msgid "ACL for this object"
+msgstr "Controllo il supporto per iconv"
+
+#: ihtml/themes/default/acl.tpl:118
+#, fuzzy
+msgid "Available roles"
+msgstr "Applicazioni disponibili"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+#, fuzzy
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+#, fuzzy
+msgid "Old password"
+msgstr "Password"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nuova password"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+#, fuzzy
+msgid "Verify password"
+msgstr "Password"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Cambia la password"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+#, fuzzy
+msgid "Click here to change your password"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr ""
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+#, fuzzy
+msgid "Restoring object snapshots"
+msgstr "Gruppo di oggetti"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Oggetto"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+#, fuzzy
+msgid "Creating object snapshots"
+msgstr "Gruppo di oggetti"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+#, fuzzy
+msgid "Timestamp"
+msgstr "Timeout"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Continua"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr ""
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Informazioni"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:6
+#, fuzzy
+msgid "Change your password"
+msgstr "Cambia la password"
+
+#: ihtml/themes/default/password.tpl:35
+#, fuzzy
+msgid "Success"
+msgstr "Setup completato"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+#, fuzzy
+msgid "Password change"
+msgstr "Cambia la password"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Password attuale"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+#, fuzzy
+msgid "New password repeated"
+msgstr "Nuova password"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+#, fuzzy
+msgid "Password strength"
+msgstr "Algorimo password"
+
+#: ihtml/themes/default/password.tpl:101
+#, fuzzy
+msgid "Change"
+msgstr "Annulla"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Rilevato un conflitto di accesso"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Cerca"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:10
+#, fuzzy
+msgid "Sign in again"
+msgstr "Entra"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Rilevato un conflitto di sessione"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Termina sessione"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Stai modificando un campo del database. Vuoi abbandonare i cambiamenti?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Principale"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Aiuto"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Termina la sessione"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Connesso:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Fatal error"
+msgstr "Terminal Server"
+
+#: html/password.php:58 html/index.php:144
+#, fuzzy, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "Il file di configurazione di GOsa %s/gosa.conf non è legibile."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+#, fuzzy
+msgid "Configuration error"
+msgstr "File di configurazione"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "Password method"
+msgstr "Algorimo password"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr "Le password nuova e ripetuta non corrispondono"
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr ""
+"La password immessa come 'Nuova password' è troppo simile a quella attuale."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "La 'Nuova password' immessa è troppo corta."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Nome utente"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr ""
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "Il programma esterno per cambiare la password ha avuto un problema:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr ""
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr ""
+
+#: html/index.php:57
+#, fuzzy
+msgid "Session is not encrypted!"
+msgstr "Rilevato un conflitto di sessione"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+#, fuzzy
+msgid "Smarty error"
+msgstr "Stato"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+#, fuzzy
+msgid "LDAP error"
+msgstr "Errore LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr ""
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr ""
+
+#: html/index.php:314
+#, fuzzy
+msgid "Authentication error"
+msgstr "Destinazione"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+#, fuzzy
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: html/setup.php:66
+#, fuzzy
+msgid "Smarty"
+msgstr "Avvio"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+#, fuzzy
+msgid "PHP configuration"
+msgstr "Scarica il file di  configurazione"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+#, fuzzy
+msgid "Your password is about to expire, please change your password!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: html/main.php:349
+#, fuzzy
+msgid "Plugin"
+msgstr "Ricerca"
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr ""
+
+#: html/main.php:364
+#, fuzzy
+msgid "Configuration Error"
+msgstr "File di configurazione"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr ""
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr ""
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr ""
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr ""
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "non configurata"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Terminal Server"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+#, fuzzy
+msgid "Permission"
+msgstr "Permessi"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+#, fuzzy
+msgid "Permission error"
+msgstr "Permessi"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, fuzzy, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, fuzzy, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+#, fuzzy
+msgid "Access control"
+msgstr "Opzioni di accesso"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+#, fuzzy
+msgid "Manage access control lists"
+msgstr "Opzioni di accesso"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "utenti"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+#, fuzzy
+msgid "All categories"
+msgstr "Aggiungi contatto"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr ""
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr ""
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+#, fuzzy
+msgid "Current object"
+msgstr "Password attuale"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+#, fuzzy
+msgid "Complete subtree"
+msgstr "incompleto"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr ""
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Utenti"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Gruppi di utenti"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr ""
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+#, fuzzy
+msgid "Down"
+msgstr "Dominio"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Modifica"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Rimuovi"
+
+#: include/class_acl.inc:543
+#, fuzzy
+msgid "No ACL settings for this category!"
+msgstr "Nome descrittivo del gruppo"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+#, fuzzy
+msgid "category ACL"
+msgstr "classe"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr ""
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr ""
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+#, fuzzy
+msgid "Show/hide advanced settings"
+msgstr "Opzioni di posta avanzate"
+
+#: include/class_acl.inc:803
+#, fuzzy
+msgid "Create objects"
+msgstr "Gruppo di oggetti"
+
+#: include/class_acl.inc:804
+#, fuzzy
+msgid "Move objects"
+msgstr "Oggetti membri"
+
+#: include/class_acl.inc:805
+#, fuzzy
+msgid "Remove objects"
+msgstr "Oggetti membri"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "Rimuovi"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "leggere"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "scrivere"
+
+#: include/class_acl.inc:816
+#, fuzzy
+msgid "Complete object"
+msgstr "Gruppo di oggetti"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+#, fuzzy
+msgid "Internal error"
+msgstr "Terminal Server"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr ""
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr ""
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, fuzzy, php-format
+msgid "Role: %s"
+msgstr "Ruolo"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr ""
+
+#: include/class_acl.inc:1079
+#, fuzzy, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Nome descrittivo del gruppo"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "inactive"
+msgstr "Privato"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Membri del gruppo"
+
+#: include/class_acl.inc:1266
+#, fuzzy
+msgid "Access control list"
+msgstr "Opzioni di accesso"
+
+#: include/class_acl.inc:1271
+#, fuzzy
+msgid "ACL roles"
+msgstr "ACL"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+#, fuzzy
+msgid "Select all"
+msgstr "Rimuovi"
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "Creare"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Vai al dipartimento base"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Root"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Sali di dipartimento"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Vai agli utenti del dipartimento"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Home"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr ""
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr ""
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Azioni"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+#, fuzzy
+msgid "Copy"
+msgstr "Azienda"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+#, fuzzy
+msgid "Cut"
+msgstr "Esegui"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+#, fuzzy
+msgid "Paste"
+msgstr "Data"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+#, fuzzy
+msgid "Cut this entry"
+msgstr "Modifica questo record"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+#, fuzzy
+msgid "Copy this entry"
+msgstr "Modifica questo record"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "Crea estensioni di posta"
+
+#: include/class_listing.inc:1474
+#, fuzzy
+msgid "Export list"
+msgstr "Esporta"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+#, fuzzy
+msgid "Create snapshot"
+msgstr "Crea estensioni di posta"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+#, fuzzy
+msgid "Create a new snapshot from this object"
+msgstr "Gruppo di oggetti"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Modifica questo record"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Elimina questo record"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, fuzzy, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr "Errore durante la connessione al server LDAP. Il server dice: '%s'"
+
+#: include/functions.inc:519
+#, fuzzy
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: include/functions.inc:604
+#, fuzzy
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr ""
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr ""
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Configura"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "incompleto"
+
+#: include/functions.inc:1642
+#, fuzzy
+msgid "Continue anyway"
+msgstr "Continua"
+
+#: include/functions.inc:1644
+#, fuzzy
+msgid "Edit anyway"
+msgstr "Modifica contatto"
+
+#: include/functions.inc:1646
+#, fuzzy, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr ""
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr ""
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr ""
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "versione di sviluppo di GOsa (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+#, fuzzy
+msgid "Cannot write to revision file!"
+msgstr "Rimuovi"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "LDAP warning"
+msgstr "Amministrazione LDAP"
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, fuzzy, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Lista dei dipartimenti"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr ""
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Tedesco"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Francese"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italiano"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Spagnolo"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Inglese"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Tedesco"
+
+#: include/functions.inc:2823
+#, fuzzy
+msgid "Polish"
+msgstr "Inglese"
+
+#: include/functions.inc:2825
+#, fuzzy
+msgid "Chinese"
+msgstr "reset"
+
+#: include/functions.inc:2826
+#, fuzzy
+msgid "Vietnamese"
+msgstr "Nome"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Russo"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr "Troppi utenti non posso allocare un ID libero!"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Vai al dipartimento base"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr ""
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+#, fuzzy
+msgid "Cannot allocate a free ID!"
+msgstr "Troppi utenti non posso allocare un ID libero!"
+
+#: include/class_tabs.inc:57
+#, fuzzy, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr "Impossibile connettersi al server del database!"
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr ""
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Riferimenti"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:137
+#, fuzzy
+msgid "Remove snapshot"
+msgstr "Crea estensioni di posta"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Descrizione"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "Pager"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr ""
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "Password reset"
+msgstr "La password spira il"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "The user password was resetted, please set a new password value!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/class_certificate.inc:73
+#, fuzzy
+msgid "Certificate is empty!"
+msgstr "Certificati"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+#, fuzzy
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "Rimuovi"
+
+#: include/class_certificate.inc:219
+#, fuzzy
+msgid "No valid certificate loaded!"
+msgstr "Non ci sono certificati installati"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr ""
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "Errore PHP"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "classe"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "funzione"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "statico"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "metodo"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Tipo"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Argomenti"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+#, fuzzy
+msgid "Search in subtrees"
+msgstr "Seleziona per mostrare le applicazioni"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+#, fuzzy
+msgid "from"
+msgstr "e"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+#, fuzzy
+msgid "to"
+msgstr "Rapporto"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+#, fuzzy
+msgid "Restore"
+msgstr "Riprova"
+
+#: include/class_plugin.inc:2042
+#, fuzzy
+msgid "cut"
+msgstr "Esegui"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr ""
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr ""
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr ""
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr ""
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr ""
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "Principale"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Continua"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "Errore LDAP"
+
+#: include/utils/class_msgPool.inc:16
+#, fuzzy, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Gruppo di oggetti"
+
+#: include/utils/class_msgPool.inc:18
+#, fuzzy, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Mostra gruppi che contengono utenti"
+
+#: include/utils/class_msgPool.inc:20
+#, fuzzy, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Gruppo di oggetti"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#, fuzzy
+msgid "Select to search within subtrees"
+msgstr "Seleziona per mostrare le applicazioni"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+#, fuzzy
+msgid "You have no permission to delete this object!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+#, fuzzy
+msgid "You have no permission to delete the object:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:75
+#, fuzzy
+msgid "You have no permission to delete these objects:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:82
+#, fuzzy
+msgid "You have no permission to create this object!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+#, fuzzy
+msgid "You have no permission to create the object:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:93
+#, fuzzy
+msgid "You have no permission to create these objects:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:100
+#, fuzzy
+msgid "You have no permission to modify this object!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+#, fuzzy
+msgid "You have no permission to modify the object:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:111
+#, fuzzy
+msgid "You have no permission to modify these objects:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:118
+#, fuzzy
+msgid "You have no permission to view this object!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+#, fuzzy
+msgid "You have no permission to view the object:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:129
+#, fuzzy
+msgid "You have no permission to view these objects:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:136
+#, fuzzy
+msgid "You have no permission to move this object!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+#, fuzzy
+msgid "You have no permission to move the object:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:147
+#, fuzzy
+msgid "You have no permission to move these objects:"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+#, fuzzy
+msgid "Connection information"
+msgstr "Informazioni personali"
+
+#: include/utils/class_msgPool.inc:159
+#, fuzzy, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Impossibile connettersi al server del database!"
+
+#: include/utils/class_msgPool.inc:171
+#, fuzzy, php-format
+msgid "Cannot select %s database!"
+msgstr "Impossibile selezionare il database!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, fuzzy, php-format
+msgid "Cannot query %s database!"
+msgstr "Impossibile selezionare il database!"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:208
+#, fuzzy, php-format
+msgid "'%s' command is invalid!"
+msgstr "Il valore specificato per l'UID non è valido."
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, fuzzy, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "Il valore specificato per l'UID non è valido."
+
+#: include/utils/class_msgPool.inc:222
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Impossibile selezionare il database!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Impossibile selezionare il database!"
+
+#: include/utils/class_msgPool.inc:236
+#, fuzzy, php-format
+msgid "Value for '%s' is too large!"
+msgstr "Il valore specificato per l'UID è troppo basso."
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "PHP deve essere la versione 4.1.0 o superiore."
+
+#: include/utils/class_msgPool.inc:246
+#, fuzzy, php-format
+msgid "Value for '%s' is too small!"
+msgstr "Il valore specificato per l'UID è troppo basso."
+
+#: include/utils/class_msgPool.inc:248
+#, fuzzy, php-format
+msgid "'%s' must be %d or above!"
+msgstr "PHP deve essere la versione 4.1.0 o superiore."
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:267
+#, fuzzy, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Il campo necessario 'Home directory' non è vuoto"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, fuzzy, php-format
+msgid "'%s' are not allowed!"
+msgstr "Cambia la password"
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:303
+#, fuzzy, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Elimina foto"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Aggiungi"
+
+#: include/utils/class_msgPool.inc:333
+#, fuzzy, php-format
+msgid "Add %s"
+msgstr "Aggiungi"
+
+#: include/utils/class_msgPool.inc:339
+#, fuzzy, php-format
+msgid "Delete %s"
+msgstr "Rimuovi"
+
+#: include/utils/class_msgPool.inc:345
+#, fuzzy, php-format
+msgid "Set %s"
+msgstr "Imposta"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit..."
+msgstr "Modifica"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit %s..."
+msgstr "Modifica contatto"
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Indietro"
+
+#: include/utils/class_msgPool.inc:377
+#, fuzzy, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Questa identità non possiede estensioni GOsa."
+
+#: include/utils/class_msgPool.inc:383
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr "Questa identià possiede estensioni Unix."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Questa identià possiede estensioni Unix. Per eliminarle devi eliminare prima "
+"le estensioni Samba / ambiente."
+
+#: include/utils/class_msgPool.inc:402
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr "Questa identità non possiede estensioni Unix"
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Questa identià possiede estensioni Unix. Per eliminarle devi eliminare prima "
+"le estensioni Samba / ambiente."
+
+#: include/utils/class_msgPool.inc:420
+#, fuzzy, php-format
+msgid "Add %s settings"
+msgstr "Opzioni applicazione"
+
+#: include/utils/class_msgPool.inc:426
+#, fuzzy, php-format
+msgid "Remove %s settings"
+msgstr "Impostazioni Unix"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Click sul bottone 'Modifica' qui sotto per cambiare le informazioni in "
+"questo dialogo"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Gennaio"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Febbraio"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Marzo"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Aprile"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Maggio"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Giugno"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Luglio"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Agosto"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Settembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Ottobre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Novembre"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Dicembre"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Sunday"
+msgstr "Cognome"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Monday"
+msgstr "mese"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:453
+#, fuzzy
+msgid "MySQL operation failed!"
+msgstr "La query al database è fallita!"
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "read operation"
+msgstr "Opzioni di posta"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "modify operation"
+msgstr "Informazioni personali"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "delete operation"
+msgstr "Selezione le workstation da aggiungere"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "search operation"
+msgstr "L'account spira dopo"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "authentication"
+msgstr "Destinazione"
+
+#: include/utils/class_msgPool.inc:465
+#, fuzzy, php-format
+msgid "LDAP %s failed!"
+msgstr "La query al database è fallita!"
+
+#: include/utils/class_msgPool.inc:467
+#, fuzzy
+msgid "LDAP operation failed!"
+msgstr "La query al database è fallita!"
+
+#: include/utils/class_msgPool.inc:482
+#, fuzzy
+msgid "Upload failed!"
+msgstr "Nome applicazione"
+
+#: include/utils/class_msgPool.inc:485
+#, fuzzy, php-format
+msgid "Upload failed: %s"
+msgstr "Utenti di Dominio"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, fuzzy, php-format
+msgid "This '%s' is still in use."
+msgstr "Nome descrittivo del gruppo"
+
+#: include/utils/class_msgPool.inc:509
+#, fuzzy, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "Nome descrittivo del gruppo"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Rimuovi"
+
+#: include/utils/class_msgPool.inc:527
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Rimuovi"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, fuzzy, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Rimuovi"
+
+#: include/utils/class_msgPool.inc:545
+#, fuzzy, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Vai al dipartimento base"
+
+#: include/utils/class_msgPool.inc:551
+#, fuzzy, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Rimuovi"
+
+#: include/utils/class_msgPool.inc:557
+#, fuzzy, php-format
+msgid "Checking for %s support"
+msgstr "Controllo il supporto per iconv"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, fuzzy, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "Errore durante la connessione al server LDAP. Il server dice: '%s'"
+
+#: include/class_ldap.inc:830
+#, fuzzy, php-format
+msgid "while operating on LDAP server %s"
+msgstr "Errore durante la connessione al server LDAP. Il server dice: '%s'"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+
+#: include/class_log.inc:87
+#, fuzzy, php-format
+msgid "Logging failed: %s"
+msgstr "Utenti di Dominio"
+
+#: include/class_log.inc:102
+#, fuzzy, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "L'uid contiene dei caratteri invalidi!"
+
+#: include/class_log.inc:106
+#, fuzzy
+msgid "Specified objectType is empty or invalid!"
+msgstr "Il valore specificato per l'UID non è valido."
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+#, fuzzy
+msgid "Cannot not parse XML!"
+msgstr "Troppi utenti non posso allocare un ID libero!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, fuzzy, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Rimuovi"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr ""
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:318
+#, fuzzy
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "Scarica il file di  configurazione"
+
+#: include/class_config.inc:1105
+#, fuzzy
+msgid "Configuration"
+msgstr "File di configurazione"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+#, fuzzy
+msgid "All objects in this category"
+msgstr "Nome descrittivo del gruppo"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, fuzzy, php-format
+msgid "Copy and paste failed!"
+msgstr "Nome applicazione"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, fuzzy, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Rimuovi"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, fuzzy, php-format
+msgid "No write permission in '%s'"
+msgstr "Rimuovi"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+#, fuzzy
+msgid "Cannot paste"
+msgstr "Crea estensioni telefoniche"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Generale"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "Unix"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Posta"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "FAX"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Gruppo"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Dipartimento"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Telefono"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Applicazione"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Server"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Gruppo di oggetti"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Stampante"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Nome dell'oggetto"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Contenuti"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Questo oggetto non ha relazioni con altri oggetti."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Benvenuto %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+#, fuzzy
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Questa è la schermata principale di GOsa. Puoi selezionare le attività "
+"tramite il menù sulla sinitra o cliccando slle icone qui sotto. Tutti i "
+"cambiamenti sono applicati immediatamente al server LDAP."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Usa <b>Termina la sessione</b> in alto a sinistra per uscire e "
+"<b>Principale</b> per tornare alla schermata principale."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Il team di GOsa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "Lingua preferita"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+#, fuzzy
+msgid "Terminal"
+msgstr "Terminali"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Cognome"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Base"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Filtri"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Mostra dipartimenti"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "Mostra server"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "Mostra gruppi samba"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "Mostra server"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "Mostra workstation"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "Mostra terminali"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "Mostra stampanti"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Mostra telefoni"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Gruppi di oggetti"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+#, fuzzy
+msgid "Manage object groups"
+msgstr "Nome del gruppo"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+#, fuzzy
+msgid "Infrastructure error"
+msgstr "Errore PHP"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+#, fuzzy
+msgid "Templates"
+msgstr "Template"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "nessuno"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "utenti"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "gruppi"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "applicazioni"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "dipartimenti"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "server"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+#, fuzzy
+msgid "winstations"
+msgstr "Amministrazione"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "telefoni"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "stampanti"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "disabilitato"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "accesso completo"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "accesso limitato ai seguenti host"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+#, fuzzy
+msgid "Object group generic"
+msgstr "Gruppo di oggetti"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "Accesso ai sistemi"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+#, fuzzy
+msgid "Member"
+msgstr "Membri"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Nome gruppo"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Nome del gruppo"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Nome descrittivo del gruppo"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Accesso ai sistemi"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Oggetti membri"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+#, fuzzy
+msgid "Phone queue"
+msgstr "Numero di telefono"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+#, fuzzy
+msgid "Systems"
+msgstr "Sistemi"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Avvio"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Dispositivi"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Ambiente"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Applicazioni"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+#, fuzzy
+msgid "Please enter the new object group name"
+msgstr "Inserisci la URI del server LDAP"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+#, fuzzy
+msgid "user groups"
+msgstr "gruppi"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+#, fuzzy
+msgid "nested groups"
+msgstr "Gruppi di oggetti"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+#, fuzzy
+msgid "application groups"
+msgstr "Mostra gruppi di applicazioni"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+#, fuzzy
+msgid "department groups"
+msgstr "dipartimenti"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+#, fuzzy
+msgid "server groups"
+msgstr "server"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+#, fuzzy
+msgid "workstation groups"
+msgstr "Mostra workstation"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+#, fuzzy
+msgid "windows workstation groups"
+msgstr "Mostra workstation"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+#, fuzzy
+msgid "terminal groups"
+msgstr "Mostra gruppi di posta"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+#, fuzzy
+msgid "printer groups"
+msgstr "Gruppo primario"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+#, fuzzy
+msgid "phone groups"
+msgstr "Mostra gruppi"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+#, fuzzy
+msgid "List of object groups"
+msgstr "Nome del gruppo"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Creare"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+#, fuzzy
+msgid "Send message"
+msgstr "Home Page"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Gruppo di oggetti"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "server"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filtri"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Scegli il dipartimento di base per la ricerca"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr ""
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Seleziona un sistema da aggiungere"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Mostra i sistemi del dipartimento"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Mostra i sistemi che corrispondono a:"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Espressione regolare per selezionare l'indirizzo"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Nome"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Cognome"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Nome Unix del gruppo"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Normalmente le ID sono autogenerate, selezionare per specificarelo "
+"manulamente"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Forza GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Forza numero ID"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Seleziona per creare un gruppo conforme Samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "nel dominio"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "I membri sono in un gruppo di risposta telefonica"
+
+#: plugins/admin/groups/generic.tpl:146
+#, fuzzy
+msgid "Members are in a nagios group"
+msgstr "I membri sono in un gruppo di risposta telefonica"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Membri del gruppo"
+
+#: plugins/admin/groups/generic.tpl:243
+#, fuzzy
+msgid "In all groups"
+msgstr "Gruppo primario"
+
+#: plugins/admin/groups/generic.tpl:246
+#, fuzzy
+msgid "Not in all groups"
+msgstr "Mostra gruppi di posta"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Mostra gruppi principali"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Mostra gruppi samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "Mostra gruppi samba"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+#, fuzzy
+msgid "Group settings"
+msgstr "Impostazioni FAX"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Lista dei gruppi"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "Gruppo primario"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "server"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Gruppo Samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Amministratori di Dominio"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Utenti di Dominio"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Ospiti di Dominio"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Gruppo speciale (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+msgid "! unknown UID"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, fuzzy, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Rimuovi"
+
+#: plugins/admin/groups/class_group.inc:899
+#, fuzzy, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Rimuovi"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+#, fuzzy
+msgid "Generic group settings"
+msgstr "Impostazioni generali delle code"
+
+#: plugins/admin/groups/class_group.inc:1198
+#, fuzzy
+msgid "Samba group type"
+msgstr "Gruppo Samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+#, fuzzy
+msgid "Samba domain name"
+msgstr "Home di Samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+#, fuzzy
+msgid "Phone pickup group"
+msgstr "I membri sono in un gruppo di risposta telefonica"
+
+#: plugins/admin/groups/class_group.inc:1202
+#, fuzzy
+msgid "Nagios group"
+msgstr "Contatto"
+
+#: plugins/admin/groups/class_group.inc:1204
+#, fuzzy
+msgid "Group member"
+msgstr "Membri del gruppo"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Amministrazione dei gruppi di utenti"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+#, fuzzy
+msgid "Posix"
+msgstr "Proxy"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+#, fuzzy
+msgid "Edit mail properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+#, fuzzy
+msgid "Edit samba properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+#, fuzzy
+msgid "Edit phone properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+#, fuzzy
+msgid "Menu"
+msgstr "Stampante"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+#, fuzzy
+msgid "Edit environment properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Cambiare la passord influisce sull'autenticazione su posta, proxu Internet, "
+"Samba e Unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Ripeti la password"
+
+#: plugins/admin/users/password.tpl:21
+#, fuzzy
+msgid "Strength"
+msgstr "Strada"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Cambia password"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Crea un nuovo utente usando i template"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr ""
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+#, fuzzy
+msgid "Last name"
+msgstr "Scegli il tuo numero di telefono personale"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+#, fuzzy
+msgid "First name"
+msgstr "Liste di blocco"
+
+#: plugins/admin/users/class_userManagement.inc:26
+#, fuzzy
+msgid "Manage users"
+msgstr "Utenti di Dominio"
+
+#: plugins/admin/users/class_userManagement.inc:278
+#, fuzzy
+msgid "You have no permission to change this users password!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: plugins/admin/users/class_userManagement.inc:656
+#, fuzzy
+msgid "Account locking"
+msgstr "Sicurezza"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "Identità"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "Identità"
+
+#: plugins/admin/users/class_userManagement.inc:745
+#, fuzzy
+msgid "Edit generic properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:761
+#, fuzzy
+msgid "Edit netatalk properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Modifica proprietà"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Lista degli utenti"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Lista degli utenti"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Utenti di Dominio"
+
+#: plugins/admin/users/user-list.xml:167
+#, fuzzy
+msgid "Apply template"
+msgstr "Template"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Nuovo template"
+
+#: plugins/admin/users/user-list.xml:213
+#, fuzzy
+msgid "Edit user"
+msgstr "Modifica contatto"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Elimina foto"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Mostra utenti template"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "Mostra utenti funzionali"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Impostazioni Unix"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Mostra utenti di posta"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Mostra utenti di posta"
+
+#: plugins/admin/users/templatize.tpl:2
+#, fuzzy
+msgid "Applying a template"
+msgstr "Template"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Lista dei dipartimenti"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "nel dominio"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Amministratori di Dominio"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Paese"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "Località"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organizzazione"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "Nome locazione"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+#, fuzzy
+msgid "Administrative settings"
+msgstr "Amministrazione"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Nome descrittivo del gruppo"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Località"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Stato"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Indirizzo"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "Amministratori di Dominio"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Dipartimenti"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+#, fuzzy
+msgid "Manage Departments"
+msgstr "Dipartimenti"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+#, fuzzy
+msgid "Organization name"
+msgstr "Organizzazione"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "CAP"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Numero di telefono"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+#, fuzzy
+msgid "Country name"
+msgstr "Paese"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Amministratori di Dominio"
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr ""
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:604
+#, fuzzy
+msgid "Department name"
+msgstr "Dipartimento"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Telefono"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "Organizzazione"
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+#, fuzzy
+msgid "Acl"
+msgstr "Annulla"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "Riferimenti"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+#, fuzzy
+msgid "ACL Templates"
+msgstr "Template"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+#, fuzzy
+msgid "Access control roles"
+msgstr "Opzioni di accesso"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+#, fuzzy
+msgid "Edit AC roles"
+msgstr "ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+#, fuzzy
+msgid "Reset ACL"
+msgstr "Rimuovi"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+#, fuzzy
+msgid "No ACL settings for this category"
+msgstr "Nome descrittivo del gruppo"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, fuzzy, php-format
+msgid "ACL for these objects: %s"
+msgstr "Nome descrittivo del gruppo"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+#, fuzzy
+msgid "Edit category ACL"
+msgstr "classe"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+#, fuzzy
+msgid "Reset category ACL"
+msgstr "classe"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy
+msgid "Object in use"
+msgstr "Nome dell'oggetto"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Ruolo"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+#, fuzzy
+msgid "Permissions"
+msgstr "Permessi"
+
+#: plugins/admin/acl/acl-list.xml:11
+#, fuzzy
+msgid "List of acls"
+msgstr "Lista dei gruppi"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Opzioni di accesso"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Mostra telefoni"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+#, fuzzy
+msgid "Edit organizational user settings"
+msgstr "Opzioni applicazione"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "femmina"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "maschio"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+#, fuzzy
+msgid "Serial number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "valido"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "invalido"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Non ci sono certificati installati"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Home Page"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Cellulare"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Pager"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Data di nascita"
+
+#: plugins/personal/generic/class_user.inc:1433
+#, fuzzy
+msgid "Cannot open certificate!"
+msgstr "Impossibile aprite il certificato selezionato!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Unità"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Identificativo della casa"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Ultimo recapito"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Località personale"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Descrizoione unità"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Funzione"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Numero seriale del certificato"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Pubblico"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Strada"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "CAP"
+
+#: plugins/personal/generic/class_user.inc:1603
+#, fuzzy
+msgid "Generic user settings"
+msgstr "Impostazioni generali delle code"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Identità"
+
+#: plugins/personal/generic/class_user.inc:1615
+#, fuzzy
+msgid "User identification"
+msgstr "Amministrazione utenti"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Titolo onorifico"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Titolo di studio"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Sesso"
+
+#: plugins/personal/generic/class_user.inc:1621
+#, fuzzy
+msgid "Preferred language"
+msgstr "Lingua preferita"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+#, fuzzy
+msgid "User picture"
+msgstr "Foto personale"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "La password spira il"
+
+#: plugins/personal/generic/class_user.inc:1630
+#, fuzzy
+msgid "Department number"
+msgstr "Dipartimento"
+
+#: plugins/personal/generic/class_user.inc:1631
+#, fuzzy
+msgid "Employee number"
+msgstr "Qualifica"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Qualifica"
+
+#: plugins/personal/generic/class_user.inc:1634
+#, fuzzy
+msgid "Room number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:1635
+#, fuzzy
+msgid "Telefon number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:1636
+#, fuzzy
+msgid "Pager number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:1637
+#, fuzzy
+msgid "Mobile number"
+msgstr "Cellulare"
+
+#: plugins/personal/generic/class_user.inc:1638
+#, fuzzy
+msgid "Fax number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1645
+#, fuzzy
+msgid "Home phone number"
+msgstr "Numero di telefono"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "Algorimo password"
+
+#: plugins/personal/generic/class_user.inc:1648
+#, fuzzy
+msgid "User certificates"
+msgstr "Certificato standard"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Informazioni personali"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Foto personale"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Cambia foto"
+
+#: plugins/personal/generic/generic.tpl:62
+#, fuzzy
+msgid "Template name"
+msgstr "Template"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Lingua preferita"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Telefono privato"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Algorimo password"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certificati"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Modifica certificati"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Informazioni organizzazione"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Dipartimento No."
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Matricola"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Stanza No."
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Usa il tab del telefono"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Scegli il subtree per l'utente"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+#, fuzzy
+msgid "Select a base"
+msgstr "Rimuovi"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+#, fuzzy
+msgid "User settings"
+msgstr "Opzioni di posta dell'identità"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+#, fuzzy
+msgid "Clear password"
+msgstr "Nuova password"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+#, fuzzy
+msgid "Set new password"
+msgstr "Cambia password"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Elimina foto"
+
+#: plugins/personal/generic/main.inc:115
+#, fuzzy
+msgid "You have no permission to set your password!"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Informazioni generali"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Hai modificato il metodo con cui la tua password è immagazzinata nel "
+"database LDAP. Per questo motivo devi inserire nuovamnete la tua password."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Certificato standard"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Certificato S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Certificato PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+#, fuzzy
+msgid "Edit users POSIX settings"
+msgstr "Impostazioni Unix"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+#, fuzzy
+msgid "expired"
+msgstr "Esporta"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+#, fuzzy
+msgid "active"
+msgstr "Privato"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#, fuzzy
+msgid "password not changeable"
+msgstr "Nuova password"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+#, fuzzy
+msgid "password expired"
+msgstr "La password spira il"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automatico"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"La password non può essere cambiata per %s giorni dall'ultimo cambiamento"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "La password deve essere cambiata dopo %s giorni"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Disabilita l'account dopo %s giorni di inattività dopo che la password è "
+"spirata"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Avvisa l'utente %s giorni prima che la password spiri"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Gruppo di utenti"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Home directory"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+#, fuzzy
+msgid "shadowMin"
+msgstr "Mostra terminali"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+#, fuzzy
+msgid "shadowWarning"
+msgstr "Mostra workstation"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+#, fuzzy
+msgid "shadowInactive"
+msgstr "Mostra stampanti"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+#, fuzzy
+msgid "POSIX account"
+msgstr "Estenzioni FTP"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+#, fuzzy
+msgid "Group ID"
+msgstr "Gruppo"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+#, fuzzy
+msgid "Force password change on login"
+msgstr "Cambia la password"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+#, fuzzy
+msgid "Shadow min"
+msgstr "Mostra terminali"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+#, fuzzy
+msgid "Shadow warning"
+msgstr "Mostra workstation"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+#, fuzzy
+msgid "Shadow inactive"
+msgstr "Mostra stampanti"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+#, fuzzy
+msgid "Shadow expire"
+msgstr "Mostra persone"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+#, fuzzy
+msgid "System trust model"
+msgstr "Accesso ai sistemi"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Gruppo primario"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Stato"
+
+#: plugins/personal/posix/generic.tpl:41
+#, fuzzy
+msgid "Last logon"
+msgstr "Scegli il tuo numero di telefono personale"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Forza UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Gruppi di appartenenza"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Attenzione: L'NFS non supporta più di 16 gruppi!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "Mostra gruppi"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Gruppo di utenti"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Sicurezza"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Seleziona un gruppo da aggiungere"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Mostra gruppi di dipartimenti"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Mosra gruppi corrispondenti a"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Espressioni regolare per selezionare il nome del gruppo"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Mostra gruppi di utenti"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Nome dell'utente del quale mostrare i gruppi"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Mostra server"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Mostra workstation"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Mostra terminali"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+#, fuzzy
+msgid "Posix settings"
+msgstr "Impostazioni Unix"
+
+#: plugins/personal/posix/main.inc:142
+#, fuzzy
+msgid "POSIX settings"
+msgstr "Impostazioni Unix"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "L'utente deve cambiare la password alla prima connessione"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "La password spira il"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Hai cambiato con successo la tua password. Ricorda di cambiare tutto i "
+"programmmi configurati per usarla."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+#, fuzzy
+msgid "Password settings"
+msgstr "Opzioni di posta dell'identità"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Per cambiare la tua password usa i campi qui sotto. I cambiamenti avrenno "
+"effetto immediatamente. Memorizza la nuova password perché non sarai in "
+"grado di connetterti senza di essa."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Ripulisci i campi"
+
+#: plugins/personal/password/class_password.inc:27
+#, fuzzy
+msgid "Change user password"
+msgstr "Cambia la password"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Devi specificare la tua 'Password attuale' per procedere."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "La password immessa come 'Nuova password' è vuota"
+
+#: plugins/personal/password/class_password.inc:94
+#, fuzzy, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "Il programma esterno per cambiare la password ha avuto un problema:"
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "La password immessa come 'Password attuale' è errata"
+
+#: plugins/personal/password/class_password.inc:114
+#, fuzzy
+msgid "You have no permission to change your password."
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: plugins/personal/password/class_password.inc:146
+#, fuzzy
+msgid "User password"
+msgstr "Nuova password"
+
+#: plugins/personal/password/nochange.tpl:2
+#, fuzzy
+msgid "Password change not allowed"
+msgstr "Cambia la password"
+
+#: plugins/personal/password/nochange.tpl:6
+#, fuzzy
+msgid "You have no permission to change your password at this time"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: setup/class_setupStep_Feedback.inc:92
+#, fuzzy
+msgid "UNIX accounts/groups"
+msgstr "Account Unix"
+
+#: setup/class_setupStep_Feedback.inc:94
+#, fuzzy
+msgid "Samba management"
+msgstr "Dirigenza"
+
+#: setup/class_setupStep_Feedback.inc:96
+#, fuzzy
+msgid "Mailsystem management"
+msgstr "Riferimenti"
+
+#: setup/class_setupStep_Feedback.inc:98
+#, fuzzy
+msgid "FAX system administration"
+msgstr "Amministrazione utenti"
+
+#: setup/class_setupStep_Feedback.inc:100
+#, fuzzy
+msgid "Asterisk administration"
+msgstr "Amministrazione utenti"
+
+#: setup/class_setupStep_Feedback.inc:102
+#, fuzzy
+msgid "System inventory"
+msgstr "Elimina contatto"
+
+#: setup/class_setupStep_Feedback.inc:104
+#, fuzzy
+msgid "System-/Configmanagement"
+msgstr "Riferimenti"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Rubrica"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+#, fuzzy
+msgid "Get notifications or send feedback"
+msgstr "Non ci sono certificati installati"
+
+#: setup/class_setupStep_Feedback.inc:114
+#, fuzzy
+msgid "Notification and feedback"
+msgstr "Non ci sono certificati installati"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+#, fuzzy
+msgid "Setup error"
+msgstr "Stato"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+#, fuzzy
+msgid "Please specify a valid email address."
+msgstr "Prego inserire un numero di telefono valido!"
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+#, fuzzy
+msgid "Completed"
+msgstr "incompleto"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr ""
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Impostazioni Samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+#, fuzzy
+msgid "Samba SID"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:31
+#, fuzzy
+msgid "RID base"
+msgstr "Database"
+
+#: setup/setup_config2.tpl:46
+#, fuzzy
+msgid "Workstation container"
+msgstr "Mostra workstation"
+
+#: setup/setup_config2.tpl:61
+#, fuzzy
+msgid "Samba SID mapping"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:71
+#, fuzzy
+msgid "Timezone"
+msgstr "Cellulare"
+
+#: setup/setup_config2.tpl:74
+#, fuzzy
+msgid "Please choose your preferred timezone here"
+msgstr "Lingua preferita"
+
+#: setup/setup_config2.tpl:96
+#, fuzzy
+msgid "Additional GOsa settings"
+msgstr "Opzioni applicazione"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+#, fuzzy
+msgid "Government mode"
+msgstr "nella cartella"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/setup_config2.tpl:135
+#, fuzzy
+msgid "Mail settings"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Metodo di amministrazione della posta"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+#, fuzzy
+msgid "Vacation templates"
+msgstr "Messaggio di di risposta automatica"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+#, fuzzy
+msgid "Snapshots / Undo"
+msgstr "Nome applicazione"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+#, fuzzy
+msgid "Enable snapshots"
+msgstr "Crea estensioni di posta"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+#, fuzzy
+msgid "Snapshot base"
+msgstr "Nome applicazione"
+
+#: setup/setup_frame.tpl:12
+#, fuzzy
+msgid "GOsa setup wizard"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Installation"
+msgstr "Amministrazione"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Setup"
+msgstr "Imposta"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+#, fuzzy
+msgid "Check again"
+msgstr "Continua"
+
+#: setup/setup_migrate.tpl:37
+#, fuzzy
+msgid "Add required object classes to the LDAP base"
+msgstr "Lista dei dipartimenti"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+#, fuzzy
+msgid "Current"
+msgstr "Password attuale"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+#, fuzzy
+msgid "After migration"
+msgstr "Amministrazione utenti"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+#, fuzzy
+msgid "Migrate"
+msgstr "Creare"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+#, fuzzy
+msgid "Close"
+msgstr "Scegli"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+#, fuzzy
+msgid "Move selected workstations"
+msgstr "Selezione le workstation da aggiungere"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+#, fuzzy
+msgid "Hide changes"
+msgstr "Open-Xchange"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+#, fuzzy
+msgid "Show changes"
+msgstr "Mostra telefoni"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+#, fuzzy
+msgid "Move selected users into this people tree"
+msgstr "Nuovo template"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Crea estensioni di posta"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+#, fuzzy
+msgid "Reload"
+msgstr "leggere"
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr ""
+
+#: setup/setup_migrate.tpl:275
+#, fuzzy
+msgid "Create a new GOsa administrator account"
+msgstr "Crea estensioni di posta"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+#, fuzzy
+msgid "Password (again)"
+msgstr "Algorimo password"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+#, fuzzy
+msgid "Refresh"
+msgstr "Riferimenti"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+#, fuzzy
+msgid "Write configuration file"
+msgstr "File di configurazione"
+
+#: setup/class_setupStep_Finish.inc:39
+#, fuzzy
+msgid "Finish - write the configuration file"
+msgstr "File di configurazione"
+
+#: setup/class_setupStep_Finish.inc:104
+#, fuzzy
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr "Il file di configurazione di GOsa %s/gosa.conf non è legibile."
+
+#: setup/class_setupStep_Finish.inc:106
+#, fuzzy
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "Il file di configurazione di GOsa %s/gosa.conf non è legibile."
+
+#: setup/class_setupStep_Finish.inc:115
+#, fuzzy, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Dopo averlo scaricato dentro /etc/gosa/, assicurati che l'utente del "
+"webserver sia in grado di leggerlo mentre tutti gli altri utenti non "
+"possono. In molti casi è sufficiente eseguire i comandi seguenti."
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+#, fuzzy
+msgid "Checking PHP version"
+msgstr "Controllo della versione di PHP (>=4.1.0)"
+
+#: setup/class_setupStep_Checks.inc:65
+#, fuzzy, php-format
+msgid "PHP must be of version %s or above."
+msgstr "PHP deve essere la versione 4.1.0 o superiore."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+#, fuzzy
+msgid "mbstring"
+msgstr "Impostazioni Samba"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+#, fuzzy
+msgid "MySQL"
+msgstr "Errore LDAP"
+
+#: setup/class_setupStep_Checks.inc:121
+#, fuzzy
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"Queso modulo serve a leggere i report di GOfax dal database.GOsa funziona "
+"correttamente anche senza."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+#, fuzzy
+msgid "compression module"
+msgstr "Opzioni di accesso"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+#, fuzzy
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals è un meccanismo PHP che può comportare maggiori rischi per "
+"la sicurezza. GOsa funziona in entrambe le modalità"
+
+#: setup/class_setupStep_Checks.inc:182
+#, fuzzy
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "Controllo se register_globals e impostato su 'off'"
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:192
+#, fuzzy
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione session."
+"auto_register su 'off' nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:200
+#, fuzzy
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione session."
+"auto_register su 'off' nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:201
+#, fuzzy
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione session."
+"auto_register su 'off' nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:208
+#, fuzzy
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione "
+"memory_limit a 16MB o più nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+#, fuzzy
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Per motivi di performance è consigliato di impostare l'opzione "
+"implicit_flush su 'off' nel file php.ini."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+#, fuzzy
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione "
+"max_execution_time a 30 secondi o più nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+#, fuzzy
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Per motivi di sicurezza è consigliato di impostare l'opzione expose_php su "
+"'off' nel file php.ini."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+#, fuzzy
+msgid "On"
+msgstr "Opzioni"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Per motivi di sicurezza è consigliato di impostare l'opzione "
+"magic_quotes_gpc su 'on' nel file php.ini."
+
+#: setup/class_setupStep_Checks.inc:241
+#, fuzzy
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr "Controllo se register_globals e impostato su 'off'"
+
+#: setup/class_setupStep_Checks.inc:248
+#, fuzzy
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Per motivi di sicurezza è consigliato di impostare l'opzione "
+"magic_quotes_gpc su 'on' nel file php.ini."
+
+#: setup/class_setupStep_Checks.inc:249
+#, fuzzy
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Per non avere problemi con GOsa è necessario impostare l'opzione session."
+"auto_register su 'off' nel file php.ini"
+
+#: setup/class_setupStep_Checks.inc:259
+#, fuzzy
+msgid "Configuration writeable"
+msgstr "File di configurazione"
+
+#: setup/class_setupStep_Checks.inc:260
+#, fuzzy
+msgid "The configuration file can't be written"
+msgstr "File di configurazione"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+#, fuzzy
+msgid "GOsa core settings"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "Mostra gruppi di utenti"
+
+#: setup/setup_config3.tpl:18
+#, fuzzy
+msgid "Display summary in listings"
+msgstr "Mosra gruppi corrispondenti a"
+
+#: setup/setup_config3.tpl:30
+#, fuzzy
+msgid "Honour administrative units"
+msgstr "Amministrazione dei gruppi di utenti"
+
+#: setup/setup_config3.tpl:42
+#, fuzzy
+msgid "Smarty compile directory"
+msgstr "Home directory"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+#, fuzzy
+msgid "Path for PPD storage"
+msgstr "Algorimo password"
+
+#: setup/setup_config3.tpl:77
+#, fuzzy
+msgid "Path for kiosk profile storage"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+#, fuzzy
+msgid "Mail queue script"
+msgstr "Script path"
+
+#: setup/setup_config3.tpl:134
+#, fuzzy
+msgid "Notification script"
+msgstr "Non ci sono certificati installati"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr ""
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+#, fuzzy
+msgid "Daemon timeout"
+msgstr "Dominio"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+#, fuzzy
+msgid "Login attribute"
+msgstr "Attributo DN delle persone"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr ""
+
+#: setup/setup_config3.tpl:257
+#, fuzzy
+msgid "Remember dialog filter settings"
+msgstr "Impostazioni generali delle code"
+
+#: setup/setup_config3.tpl:269
+#, fuzzy
+msgid "Session lifetime"
+msgstr "Rilevato un conflitto di sessione"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+#, fuzzy
+msgid "Show PHP errors"
+msgstr "Errore PHP"
+
+#: setup/setup_config3.tpl:294
+#, fuzzy
+msgid "Maximum LDAP query time"
+msgstr "Inoltra i messaggi a"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+#, fuzzy
+msgid "Debug level"
+msgstr "Rimuovi"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+#, fuzzy
+msgid "Disabled"
+msgstr "disabilitato"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+#, fuzzy
+msgid "Enabled"
+msgstr "disabilitato"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Indirizzo principale"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+#, fuzzy
+msgid "Yes"
+msgstr "Sistemi"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+#, fuzzy
+msgid "No"
+msgstr "nessuno"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+#, fuzzy
+msgid "Features"
+msgstr "Futuro"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+#, fuzzy
+msgid "Create your configuration file"
+msgstr "File di configurazione"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Scarica il file di  configurazione"
+
+#: setup/setup_finish.tpl:33
+#, fuzzy
+msgid "Status: "
+msgstr "Stato"
+
+#: setup/class_setupStep_Ldap.inc:53
+#, fuzzy
+msgid "LDAP setup"
+msgstr "Dispositivi"
+
+#: setup/class_setupStep_Ldap.inc:54
+#, fuzzy
+msgid "LDAP connection setup"
+msgstr "Disconnessione "
+
+#: setup/class_setupStep_Ldap.inc:55
+#, fuzzy
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr "I campi seguenti permettono una configurazione base di GOsa."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:107
+#, fuzzy, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Impossibile selezionare il database!"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Impossibile selezionare il database!"
+
+#: setup/class_setupStep_Ldap.inc:113
+#, fuzzy
+msgid "Please specify user and password!"
+msgstr "Prego inserire un numero di telefono valido!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, fuzzy, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Impossibile selezionare il database!"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+#, fuzzy
+msgid "LDAP connection"
+msgstr "Disconnessione "
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Nome locazione"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "Connessione"
+
+#: setup/setup_ldap.tpl:45
+#, fuzzy
+msgid "TLS connection"
+msgstr "Connessione"
+
+#: setup/setup_ldap.tpl:69
+#, fuzzy
+msgid "Authentication"
+msgstr "Destinazione"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "DN dell'amministratore"
+
+#: setup/setup_ldap.tpl:78
+#, fuzzy
+msgid "Select user"
+msgstr "Rimuovi"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Password dell'amministratore"
+
+#: setup/setup_ldap.tpl:101
+#, fuzzy
+msgid "Schema based settings"
+msgstr "Impostazioni Samba"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+#, fuzzy
+msgid "Current status"
+msgstr "Stato"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+#, fuzzy
+msgid "LDAP inspection"
+msgstr "Ispezione della configurazione PHP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+#, fuzzy
+msgid "Checking for root object"
+msgstr "Controllo il supporto per iconv"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "Controllo il supporto per iconv"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: setup/class_setupStep_Migrate.inc:153
+#, fuzzy
+msgid "Checking for invisible departments"
+msgstr "Controllo il supporto per iconv"
+
+#: setup/class_setupStep_Migrate.inc:158
+#, fuzzy
+msgid "Checking for invisible users"
+msgstr "Controllo il supporto per iconv"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+#, fuzzy
+msgid "Checking for super administrator"
+msgstr "Controllo la presenza di alcuni programmi addizionali"
+
+#: setup/class_setupStep_Migrate.inc:171
+#, fuzzy
+msgid "Checking for users outside the people tree"
+msgstr "Controllo il modulo cups"
+
+#: setup/class_setupStep_Migrate.inc:177
+#, fuzzy
+msgid "Checking for groups outside the groups tree"
+msgstr "Controllo il modulo cups"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+#, fuzzy
+msgid "Checking for duplicated UID numbers"
+msgstr "Controllo il supporto per %s"
+
+#: setup/class_setupStep_Migrate.inc:196
+#, fuzzy
+msgid "Checking for duplicate GID numbers"
+msgstr "Controllo il supporto per %s"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "Controllo il supporto per iconv"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "Controllo il modulo cups"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "Controllo il supporto per %s"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+#, fuzzy
+msgid "LDAP query failed"
+msgstr "La query al database è fallita!"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Prego inserire un numero di telefono valido!"
+
+#: setup/class_setupStep_Migrate.inc:315
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Prego inserire un numero di telefono valido!"
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Fallito"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, fuzzy, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "Non hai il permesso di cambiare la tua password."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+#, fuzzy
+msgid "Move"
+msgstr "Dominio"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+#, fuzzy
+msgid "Migration error"
+msgstr "Creare"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, fuzzy, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Vai al dipartimento base"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Crea estensioni di posta"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Crea estensioni di posta"
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Input error"
+msgstr "Errore PHP"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Password error"
+msgstr "La password spira il"
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Provided passwords do not match!"
+msgstr "Le password nuova e ripetuta non corrispondono"
+
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Specify a valid user ID!"
+msgstr "Prego inserire un numero di telefono valido!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#, fuzzy
+msgid "Cannot move users to the requested department!"
+msgstr "Mostra utenti del dipartimento"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+#, fuzzy
+msgid "Try to create root object"
+msgstr "Gruppo di oggetti"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, fuzzy, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Lista dei dipartimenti"
+
+#: setup/class_setupStep_Migrate.inc:2059
+msgid "Please check your installation."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Utenti di Dominio"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+#, fuzzy
+msgid "Create a basic, single site configuration"
+msgstr "Scarica il file di  configurazione"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+#, fuzzy
+msgid "Find every possible configuration error"
+msgstr "File di configurazione"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+#, fuzzy
+msgid "To continue..."
+msgstr "Configurazione continua..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+#, fuzzy
+msgid "GOsa settings 3/3"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:216
+#, fuzzy
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Inoltra i messaggi a"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "PHP setup configuration"
+msgstr "Scarica il file di  configurazione"
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "show information"
+msgstr "Informazioni personali"
+
+#: setup/setup_schema.tpl:3
+#, fuzzy
+msgid "Schema specific settings"
+msgstr "Impostazioni Samba"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+#, fuzzy
+msgid "Check status"
+msgstr "Stato"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+#, fuzzy
+msgid "Schema check failed"
+msgstr "Server"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+#, fuzzy
+msgid "Theme"
+msgstr "Cellulare"
+
+#: setup/setup_config1.tpl:15
+#, fuzzy
+msgid "Apache"
+msgstr "Annulla"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+#, fuzzy
+msgid "People and group storage"
+msgstr "Ou delle persone"
+
+#: setup/setup_config1.tpl:30
+#, fuzzy
+msgid "People DN attribute"
+msgstr "Attributo DN delle persone"
+
+#: setup/setup_config1.tpl:41
+#, fuzzy
+msgid "People storage subtree"
+msgstr "Ou delle persone"
+
+#: setup/setup_config1.tpl:50
+#, fuzzy
+msgid "Group storage subtree"
+msgstr "Ou dei gruppi"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+#, fuzzy
+msgid "Automatic UIDs"
+msgstr "automatico"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+#, fuzzy
+msgid "Number base for people/groups"
+msgstr "UID di base per utenti/gruppi"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+#, fuzzy
+msgid "Password encryption algorithm"
+msgstr "Algoritmo di criptaggio"
+
+#: setup/setup_config1.tpl:151
+#, fuzzy
+msgid "Password restrictions"
+msgstr "La password spira il"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+#, fuzzy
+msgid "Password change hook"
+msgstr "Cambia la password"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+#, fuzzy
+msgid "Use account expiration"
+msgstr "L'account spira dopo"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa supporta numerosi algoritmi di criptaggio per le password. Imposta "
+"quello di default."
+
+#: setup/setup_config1.tpl:222
+#, fuzzy
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa agisce sul DIT tramite l'utente di amministrazione e possiede uno "
+"schema di permessi interno. Questo è un workaround finché non sarà "
+"completato il supportp per le ACL all'interno del DIT in OpenLDAP."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Alcuni parametri di LDAP sono selezionabili e influenzano il posto in cui "
+"GOsa salva le identità e i gruppi. Controlla che i valori riportati "
+"corrispondano alle impostaioni del tuo DIT."
+
+#: setup/setup_config1.tpl:224
+#, fuzzy
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa supporta numerosi metodi per amministrare la posta. Questi metodi "
+"possiedono interfacce per impostare opzioni come ad esempio la quota. Puoi "
+"impostare il metodo 'dummy' per mantenere tutte le impostazioni."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+#, fuzzy
+msgid "LDAP schema check"
+msgstr "Server"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+#, fuzzy
+msgid "Welcome"
+msgstr "Benvenuto %s!"
+
+#: setup/class_setupStep_Welcome.inc:39
+#, fuzzy
+msgid "The welcome message"
+msgstr "Elimina questo record"
+
+#: setup/class_setupStep_Welcome.inc:40
+#, fuzzy
+msgid "Welcome to GOsa setup wizard"
+msgstr "Benvenuto nel setup di GOsa!"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr ""
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+#, fuzzy
+msgid "Please select the preferred language"
+msgstr "Lingua preferita"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+#, fuzzy
+msgid "Please select your preferred language here"
+msgstr "Lingua preferita"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+#, fuzzy
+msgid "GOsa settings 1/3"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/class_setupStep_Config1.inc:76
+#, fuzzy
+msgid "GOsa generic settings"
+msgstr "Impostazioni generali delle code"
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "Ou delle persone"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "Ou dei gruppi"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+#, fuzzy
+msgid "GOsa settings 2/3"
+msgstr "Opzioni di posta dell'identità"
+
+#: setup/class_setupStep_Config2.inc:82
+#, fuzzy
+msgid "Customize special parameters"
+msgstr "Parametro"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+#, fuzzy
+msgid "Language setup"
+msgstr "Lingua"
+
+#: setup/class_setupStep_Language.inc:42
+#, fuzzy
+msgid "This step allows you to select your preferred language."
+msgstr "Lingua preferita"
+
+#: setup/class_setupStep_Language.inc:47
+#, fuzzy
+msgid "Automatic"
+msgstr "automatico"
+
+#, fuzzy
+#~ msgid "Choose a base"
+#~ msgstr "Rimuovi"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Scegli il subtree dove mettere il gruppo"
+
+#, fuzzy
+#~ msgid "Show %s"
+#~ msgstr "Mostra gruppi"
+
+#, fuzzy
+#~ msgid "people"
+#~ msgstr "Mostra persone"
+
+#, fuzzy
+#~ msgid "printer"
+#~ msgstr "stampanti"
+
+#~ msgid "Select users to add"
+#~ msgstr "Selezioni utenti da aggiungere"
+
+#~ msgid "Display users of department"
+#~ msgstr "Mostra utenti del dipartimento"
+
+#~ msgid "Display users matching"
+#~ msgstr "Mostra utenti che corrispondono a"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Lista degli utenti"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Nome"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Cognome"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Lista dei gruppi"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "Lista dei gruppi"
+
+#, fuzzy
+#~ msgid "Use"
+#~ msgstr "Utenti"
+
+#, fuzzy
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Mostra gli indirizzi che corrispondono"
+
+#, fuzzy
+#~ msgid "MySQL error"
+#~ msgstr "Errore LDAP"
+
+#, fuzzy
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "Impossibile connettersi al server del database!"
+
+#~ msgid "Submit department"
+#~ msgstr "Imposta dipartimento"
+
+#~ msgid "edit"
+#~ msgstr "modifica"
+
+#~ msgid "delete"
+#~ msgstr "elimina"
+
+#, fuzzy
+#~ msgid "Number of listed object groups"
+#~ msgstr "Nome del gruppo"
+
+#, fuzzy
+#~ msgid "Number of listed departments"
+#~ msgstr "Imposta dipartimento"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr ""
+#~ "Selezione per mostrare i gruppi che sono gruppi primari per gli utenti"
+
+#, fuzzy
+#~ msgid "primary groups"
+#~ msgstr "Gruppo primario"
+
+#, fuzzy
+#~ msgid "samba groups mappings"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "samba groups"
+#~ msgstr "Gruppo Samba"
+
+#, fuzzy
+#~ msgid "application settings"
+#~ msgstr "applicazioni"
+
+#, fuzzy
+#~ msgid "mail settings"
+#~ msgstr "Opzioni di posta dell'identità"
+
+#, fuzzy
+#~ msgid "mail groups"
+#~ msgstr "Mostra gruppi di posta"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr "Seleziona per mostrare i gruppi che hanno solo aspetti funzionali"
+
+#, fuzzy
+#~ msgid "functional groups"
+#~ msgstr "Mostra gruppi funzionali"
+
+#, fuzzy
+#~ msgid "Not allowed"
+#~ msgstr "Cambia la password"
+
+#, fuzzy
+#~ msgid "Number of listed groups"
+#~ msgstr "Nome del gruppo"
+
+#, fuzzy
+#~ msgid "group"
+#~ msgstr "gruppi"
+
+#~ msgid "User administration"
+#~ msgstr "Amministrazione utenti"
+
+#, fuzzy
+#~ msgid "templates"
+#~ msgstr "Template"
+
+#, fuzzy
+#~ msgid "GOsa object"
+#~ msgstr "Oggetto"
+
+#, fuzzy
+#~ msgid "functional users"
+#~ msgstr "Mostra utenti funzionali"
+
+#, fuzzy
+#~ msgid "POSIX users"
+#~ msgstr "Impostazioni Unix"
+
+#, fuzzy
+#~ msgid "samba users"
+#~ msgstr "Utenti di Dominio"
+
+#, fuzzy
+#~ msgid "proxy users"
+#~ msgstr "Mostra utenti proxy"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Mostra utenti proxy"
+
+#, fuzzy
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Modifica proprietà"
+
+#, fuzzy
+#~ msgid "Edit fax properies"
+#~ msgstr "Modifica proprietà"
+
+#, fuzzy
+#~ msgid "Create user with this template"
+#~ msgstr "Nuovo template"
+
+#, fuzzy
+#~ msgid "user"
+#~ msgstr "utenti"
+
+#, fuzzy
+#~ msgid "password"
+#~ msgstr "Password"
+
+#, fuzzy
+#~ msgid "Delete user"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Sali di dipartimento"
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "ACL"
+
+#, fuzzy
+#~ msgid "Display acls matching"
+#~ msgstr "Mosra gruppi corrispondenti a"
+
+#, fuzzy
+#~ msgid "Edit acl role"
+#~ msgstr "Modifica contatto"
+
+#, fuzzy
+#~ msgid "Edit acl"
+#~ msgstr "classe"
+
+#, fuzzy
+#~ msgid "Delete acl"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Gender"
+#~ msgstr "Generale"
+
+#, fuzzy
+#~ msgid "Logging options"
+#~ msgstr "Utenti di Dominio"
+
+#, fuzzy
+#~ msgid "Syslog"
+#~ msgstr "Log di sitema"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "Mostra gruppi di posta"
+
+#, fuzzy
+#~ msgid "Enable DNS extension"
+#~ msgstr "Elimina foto"
+
+#, fuzzy
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Elimina foto"
+
+#, fuzzy
+#~ msgid "Enable mime type management"
+#~ msgstr "Riferimenti"
+
+#, fuzzy
+#~ msgid "Enable FAI release management"
+#~ msgstr "Riferimenti"
+
+#, fuzzy
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Crea estensioni telefoniche"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Cambia la password"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Creare"
+
+#, fuzzy
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "Questa identià possiede estensioni Unix. Per eliminarle devi eliminare "
+#~ "prima le estensioni Samba / ambiente."
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "Queso modulo serve a leggere i report di GOfax dal database.GOsa funziona "
+#~ "correttamente anche senza."
+
+#, fuzzy
+#~ msgid "Role name"
+#~ msgstr "Cognome"
+
+#, fuzzy
+#~ msgid "Role description"
+#~ msgstr "Descrizoione unità"
+
+#~ msgid "Terminals"
+#~ msgstr "Terminali"
+
+#~ msgid "Action"
+#~ msgstr "Azione"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "Aggiungi"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "department"
+#~ msgstr "dipartimenti"
+
+#, fuzzy
+#~ msgid "Delete acl role"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Steps"
+#~ msgstr "Sistemi"
+
+#, fuzzy
+#~ msgid "Move object"
+#~ msgstr "Oggetti membri"
+
+#, fuzzy
+#~ msgid "Remove object"
+#~ msgstr "Oggetti membri"
+
+#, fuzzy
+#~ msgid "Repository"
+#~ msgstr "Riprova"
+
+#, fuzzy
+#~ msgid "DAK repository"
+#~ msgstr "Directory"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "Setup completato"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "Opzioni di posta"
+
+#, fuzzy
+#~ msgid "Hour"
+#~ msgstr "ora"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "giorno"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "mese"
+
+#, fuzzy
+#~ msgid "Year"
+#~ msgstr "Cerca"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "Password"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "Nome applicazione"
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "Parametro"
+
+#~ msgid "Language"
+#~ msgstr "Lingua"
+
+#~ msgid "User list of %s on %s"
+#~ msgstr "Lista degli utenti di %s su %s"
+
+#~ msgid "Groups of %s on %s"
+#~ msgstr "Gruppi di %s su %s"
+
+#~ msgid "Computers"
+#~ msgstr "Computer"
+
+#~ msgid "Common name"
+#~ msgstr "Nome comune"
+
+#~ msgid "Servers of %s on %s"
+#~ msgstr "Server di %s su %s"
+
+#~ msgid "Display name"
+#~ msgstr "Mostra il nome"
+
+#~ msgid "Home phone"
+#~ msgstr "Telefono privato"
+
+#~ msgid "Initials"
+#~ msgstr "Iniziali"
+
+#~ msgid "Mobile phone"
+#~ msgstr "Cellulare"
+
+#~ msgid "City"
+#~ msgstr "Città"
+
+#~ msgid "Function"
+#~ msgstr "Funzione"
+
+#~ msgid "Adressbook"
+#~ msgstr "Rubrica"
+
+#~ msgid "Adressbook of %s on %s"
+#~ msgstr "Rubrica di %s su %s"
+
+#~ msgid "Common Name"
+#~ msgstr "Nome comune"
+
+#~ msgid "Day of birth"
+#~ msgstr "Data di nascita"
+
+#~ msgid "Email address"
+#~ msgstr "Indirizzo principale"
+
+#~ msgid "Organizational unit"
+#~ msgstr "Unità del'organizzazione"
+
+#~ msgid "Postal Code"
+#~ msgstr "CAP"
+
+#~ msgid "Title"
+#~ msgstr "Titolo"
+
+#~ msgid "Computers of %s on %s"
+#~ msgstr "Computer di %s su %s"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#~ msgid "Could not connect to database server!"
+#~ msgstr "Impossibile connettersi al server del database!"
+
+#~ msgid "Could not select database!"
+#~ msgstr "Impossibile selezionare il database!"
+
+#~ msgid "Database query failed!"
+#~ msgstr "La query al database è fallita!"
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "Lista degli utenti"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "Espressioni regolare per selezionare il nome del gruppo"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "Espressioni regolare per selezionare il nome del gruppo"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "Nome del gruppo"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "Cognome"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "Utenti di Dominio"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "Attenzione"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "stampanti"
+
+#, fuzzy
+#~ msgid "lists"
+#~ msgstr "classe"
+
+#, fuzzy
+#~ msgid "Invalid"
+#~ msgstr "invalido"
+
+#, fuzzy
+#~ msgid "Command"
+#~ msgstr "e"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "Utenti di Dominio"
+
+#, fuzzy
+#~ msgid "Available options"
+#~ msgstr "Applicazioni disponibili"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "Amministrazione dei gruppi di utenti"
+
+#, fuzzy
+#~ msgid "Flags"
+#~ msgstr "classe"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "Dipartimento"
+
+#, fuzzy
+#~ msgid "Checking for LDAP support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr ""
+#~ "Questo è il modulo più importante usato da GOsa ed è quindi necessario."
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "Controllo il support per gettext"
+
+#, fuzzy
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr "Gettext è necessario al supporto per le lingue."
+
+#~ msgid "Checking for iconv support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is used by GOsa to convert samba munged dial informations and "
+#~ "is therefore required. "
+#~ msgstr ""
+#~ "Questo modulo è usato da GOsa per convertire alcune informazioni usate da "
+#~ "samba ed è necessario."
+
+#, fuzzy
+#~ msgid "Checking for mhash support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid "Checking for IMAP support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr "Questo modulo è necessario per comunicare con il server di posta."
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "Controllo il support per gettext"
+
+#, fuzzy
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "Controllo il supporto per getacl"
+
+#, fuzzy
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "Il support per getacl serve a ottenere i permessi di accesso delle "
+#~ "cartelle di posta sul server. GOsa funziona correttamente anche senza."
+
+#, fuzzy
+#~ msgid "Checking for MySQL support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr ""
+#~ "Questo modulo serve ad amministrare gli utenti in un dominio Kerberos. "
+#~ "GOsa funziona correttamente anche senza."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr ""
+#~ "Questo modulo serve ad amministrare gli utenti in un dominio Kerberos. "
+#~ "GOsa funziona correttamente anche senza."
+
+#, fuzzy
+#~ msgid "Checking for SNMP support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid "Checking for CUPS support"
+#~ msgstr "Controllo il supporto per iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "Questo modulo serve a ottenere le informazioni sulle stampanti di rete. "
+#~ "GOsa funziona correttamente anche senza."
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "Controllo il supporto per fping"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr ""
+#~ "Il programma fping è usato solo nel caso di ambienti basati su terminali "
+#~ "'thin client'."
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr ""
+#~ "Il programma fping è usato solo nel caso di ambienti basati su terminali "
+#~ "'thin client'."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr ""
+#~ "Un programma in grado di generare password con algoritmo LM/NT è "
+#~ "necessario per poter usare Samba 2 o 3."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr ""
+#~ "Un programma in grado di generare password con algoritmo LM/NT è "
+#~ "necessario per poter usare Samba 2 o 3."
+
+#, fuzzy
+#~ msgid "Choose subtree to place %s in"
+#~ msgstr "Scegli il subtree per l'utente"
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "Mostra gruppi che contengono utenti"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "server"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "Mostra utenti Samba"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "funzione"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Proxy"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "maschio"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "Proxy"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "Avvio"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "applicazioni"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "Mostra gruppi che contengono utenti"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "Telefono"
+
+#, fuzzy
+#~ msgid "Click here to Change your password"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#~ msgid "Can't create/open File"
+#~ msgstr "Errore nella creazione/apertura del file"
+
+#~ msgid "LDAP error:"
+#~ msgstr "Errore LDAP"
+
+#, fuzzy
+#~ msgid "You are not allowed to change your password at this time"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "Numero di telefono"
+
+#, fuzzy
+#~ msgid "Service infrastructure"
+#~ msgstr "Seleziona per mostrare le applicazioni"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "Cambia la password"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "elimina"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "elimina"
+
+#~ msgid "User List of %s on %s"
+#~ msgstr "Lista degli utenti di %s su %s"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "Permessi"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "File di configurazione"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "File di configurazione"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "La password spira il"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "File di configurazione"
+
+#, fuzzy
+#~ msgid "New Password"
+#~ msgstr "Nuova password"
+
+#, fuzzy
+#~ msgid "Change Password"
+#~ msgstr "Cambia la password"
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Entry with id '%s' not found."
+#~ msgstr "Imposta dipartimento"
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "Seleziona per vedere gli utenti template"
+
+#, fuzzy
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr "Seleziona per vedere gli utenti funzionali"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr "Seleziona per vedere gli utenti Unix"
+
+#~ msgid "Show unix users"
+#~ msgstr "Mostra utenti Unix"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr "Seleziona per vedere gli utenti di posta"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "Seleziona per vedere gli utenti Samba"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr "Seleziona per vedere gli utenti proxy"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr ""
+#~ "Seleziona per mostrare i gruppi che sono gruppi samba per gli utenti"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr ""
+#~ "Seleziona per mostrare i gruppi che hanno configurate delle applicazioni"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr "Seleziona per mostrare i gruppi che hanno configurata la posta"
+
+#~ msgid "Select to see applications"
+#~ msgstr "Seleziona per mostrare le applicazioni"
+
+#~ msgid "Show applications"
+#~ msgstr "Mostra applicazioni"
+
+#, fuzzy
+#~ msgid "Cannot connect to logging server '%s'."
+#~ msgstr "Impossibile connettersi al server del database!"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr "Impossibile selezionare il database!"
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr "Impossibile selezionare il database!"
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "Indietro"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "Modifica contatto"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "Principale"
+
+#, fuzzy
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You have no permission to edit this ACL!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "List of acl"
+#~ msgstr "Lista dei gruppi"
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entry %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entries %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Name of object groups"
+#~ msgstr "Nome del gruppo"
+
+#, fuzzy
+#~ msgid "Select to see groups containing groups"
+#~ msgstr "Mostra gruppi che contengono gruppi"
+
+#~ msgid "Show groups containing groups"
+#~ msgstr "Mostra gruppi che contengono gruppi"
+
+#, fuzzy
+#~ msgid "Select to see groups containing applications"
+#~ msgstr "Mostra gruppi che contengono applicazioni"
+
+#~ msgid "Show groups containing applications"
+#~ msgstr "Mostra gruppi che contengono applicazioni"
+
+#, fuzzy
+#~ msgid "Select to see groups containing departments"
+#~ msgstr "Mostra gruppi che contengono dipartimenti"
+
+#~ msgid "Show groups containing departments"
+#~ msgstr "Mostra gruppi che contengono dipartimenti"
+
+#, fuzzy
+#~ msgid "Select to see groups containing servers"
+#~ msgstr "Mostra gruppi che contengono server"
+
+#~ msgid "Show groups containing servers"
+#~ msgstr "Mostra gruppi che contengono server"
+
+#, fuzzy
+#~ msgid "Select to see groups containing workstations"
+#~ msgstr "Mostra gruppi che contengono workstation"
+
+#~ msgid "Show groups containing workstations"
+#~ msgstr "Mostra gruppi che contengono workstation"
+
+#, fuzzy
+#~ msgid "Select to see groups containing windows workstations"
+#~ msgstr "Mostra gruppi che contengono workstation"
+
+#, fuzzy
+#~ msgid "Show groups containing windows workstations"
+#~ msgstr "Mostra gruppi che contengono workstation"
+
+#, fuzzy
+#~ msgid "Select to see groups containing terminals"
+#~ msgstr "Mostra gruppi che contengono terminali"
+
+#~ msgid "Show groups containing terminals"
+#~ msgstr "Mostra gruppi che contengono terminali"
+
+#, fuzzy
+#~ msgid "Select to see groups containing printer"
+#~ msgstr "Mostra gruppi che contengono stampanti"
+
+#, fuzzy
+#~ msgid "Show groups containing printer"
+#~ msgstr "Mostra gruppi che contengono stampanti"
+
+#, fuzzy
+#~ msgid "Select to see groups containing phones"
+#~ msgstr "Mostra gruppi che contengono stampanti"
+
+#, fuzzy
+#~ msgid "Show groups containing phones"
+#~ msgstr "Mostra gruppi che contengono stampanti"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this entry."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Edit ACL"
+#~ msgstr "Modifica"
+
+#, fuzzy
+#~ msgid "ACLs"
+#~ msgstr "ACL"
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "Privato"
+
+#, fuzzy
+#~ msgid "Active"
+#~ msgstr "Privato"
+
+#, fuzzy
+#~ msgid "Members:"
+#~ msgstr "Membri"
+
+#, fuzzy
+#~ msgid "Adding a lock failed."
+#~ msgstr "Imposta dipartimento"
+
+#, fuzzy
+#~ msgid "Access control list templates"
+#~ msgstr "Opzioni di accesso"
+
+#, fuzzy
+#~ msgid "Acl roles"
+#~ msgstr "Riferimenti"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "Elimina estensioni per le applicazioni"
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr "Estenzioni Proxy Internet"
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "Prego inserire un numero di telefono valido!"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "Questo menù permette di creare, modificare e cancellare gli utenti "
+#~ "selezionati. Avendo un gran numero di utenti, puoi usare i selettori di "
+#~ "intervalli in cima alla lista degli utenti."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "Questo menù permette di creare, modificare e cancellare i gruppi "
+#~ "selezionati. Avendo un gran numero di gruppi, puoi usare i selettori di "
+#~ "intervalli in cima alla lista dei gruppi."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "Questo menù permette di creare, modificare e cancellare gli utenti "
+#~ "selezionati. Avendo un gran numero di utenti, puoi usare i selettori di "
+#~ "intervalli in cima alla lista degli utenti."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to add, edit or remove selected groups. You may want "
+#~ "to use the range selector on top of the group listbox, when working with  "
+#~ "a large number of groups."
+#~ msgstr ""
+#~ "Questo menù permette di creare, modificare e cancellare i gruppi "
+#~ "selezionati. Avendo un gran numero di gruppi, puoi usare i selettori di "
+#~ "intervalli in cima alla lista dei gruppi."
+
+#~ msgid "Can't bind to LDAP. Please contact the system administrator."
+#~ msgstr ""
+#~ "Errore di connessione al server LDAP. Contatta l'amministratore del "
+#~ "sistema."
+
+#, fuzzy
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr "Elimina estensioni Unix"
+
+#, fuzzy
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "Estenzioni Proxy Internet"
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "Questa identità non possiede estensioni Unix"
+
+#~ msgid "Remove posix account"
+#~ msgstr "Elimina estensioni Unix"
+
+#~ msgid "Create posix account"
+#~ msgstr "Crea estensioni Unix"
+
+#, fuzzy
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr "Elimina estensioni Unix"
+
+#, fuzzy
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "Estenzioni Proxy Internet"
+
+#~ msgid "Unix settings"
+#~ msgstr "Impostazioni Unix"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "Località"
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "Amministrazione utenti"
+
+#, fuzzy
+#~ msgid "Please specify at least one recipient to send a message!"
+#~ msgstr "Prego inserire un numero di telefono valido!"
+
+#, fuzzy
+#~ msgid "Cannot find a DESC tag in file '%s'!"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Località"
+
+#, fuzzy
+#~ msgid "Notification plugin"
+#~ msgstr "Non ci sono certificati installati"
+
+#, fuzzy
+#~ msgid "Allow sending notifications"
+#~ msgstr "Opzioni applicazione"
+
+#, fuzzy
+#~ msgid "Notification target"
+#~ msgstr "Non ci sono certificati installati"
+
+#, fuzzy
+#~ msgid "Recipients"
+#~ msgstr "Descrizione"
+
+#~ msgid "Import"
+#~ msgstr "Importa"
+
+#, fuzzy
+#~ msgid "Notification send!"
+#~ msgstr "Non ci sono certificati installati"
+
+#, fuzzy
+#~ msgid "Saving of object group/generic with dn '%s' failed."
+#~ msgstr "Account Kolab"
+
+#, fuzzy
+#~ msgid "Removing of object group/generic with dn '%s' failed."
+#~ msgstr "Elimina estensioni Unix"
+
+#, fuzzy
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "Imposta dipartimento"
+
+#, fuzzy
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "Imposta dipartimento"
+
+#, fuzzy
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "Nome applicazione"
+
+#, fuzzy
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "Elimina estensioni per le applicazioni"
+
+#, fuzzy
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "Mostra gruppi di applicazioni"
+
+#, fuzzy
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "Mostra gruppi di applicazioni"
+
+#, fuzzy
+#~ msgid "Saving object snapshot with dn '%s' failed."
+#~ msgstr "Account Kolab"
+
+#, fuzzy
+#~ msgid "Restore snapshot with dn '%s' failed."
+#~ msgstr "Elimina estensioni per le applicazioni"
+
+#, fuzzy
+#~ msgid "Creating subtree '%s' failed."
+#~ msgstr "Gruppo di oggetti"
+
+#, fuzzy
+#~ msgid "Ldap import with dn '%s' failed."
+#~ msgstr "Imposta dipartimento"
+
+#~ msgid "This does something"
+#~ msgstr "Questo fa qualcosa"
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr "Inserire un nome cartella valido per il campo 'Home directory'."
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "Il valore specificato per l'UID non è valido."
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "Il valore specificato per il GID non è valido."
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "Il valore specificato per il GID è troppo basso."
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "Il valore specificato come 'shadowMin' non è valido"
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "Il valore specificato come 'shadowMax' non è valido"
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "Il valore specificato come 'shadowWarning' non è valido"
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowWarning' senza 'shadowMax' non ha senso."
+
+#, fuzzy
+#~ msgid "Please select a valid template."
+#~ msgstr "Prego inserire un numero di telefono valido!"
+
+#, fuzzy
+#~ msgid "You are going to paste the cutted entry '%s'."
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Please specify a valid description for this snapshot."
+#~ msgstr "Specificare una dimenzione valida per le mail da rigettare."
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "Foto personale"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "Dipartimento"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "Lista dei dipartimenti"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "reset"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "Estenzioni PHPGroupware"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "Rimuovi"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Shell"
+
+#, fuzzy
+#~ msgid "System mass deployment"
+#~ msgstr "Dipartimento"
+
+#, fuzzy
+#~ msgid "Header Tag"
+#~ msgstr "leggere"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "Estenzioni PHPGroupware"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "reset"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "Generale"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "Marzo"
+
+#, fuzzy
+#~ msgid "Available targets"
+#~ msgstr "Applicazioni disponibili"
+
+#, fuzzy
+#~ msgid "Show object groups"
+#~ msgstr "Gruppi di oggetti"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "Non hai il permesso di cambiare la tua password."
+
+#, fuzzy
+#~ msgid "Network resolv hook"
+#~ msgstr "Mostra dispositiva di rete"
+
+#~ msgid "Administration"
+#~ msgstr "Amministrazione"
+
+#~ msgid "Addons"
+#~ msgstr "Extra"
+
+#, fuzzy
+#~ msgid "ACL Role"
+#~ msgstr "ACL"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Connectivity"
+#~ msgstr "Connettività"
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "Terminali"
+
+#~ msgid "Nagios"
+#~ msgstr "Nagios"
+
+#~ msgid "Options"
+#~ msgstr "Opzioni"
+
+#~ msgid "Parameter"
+#~ msgstr "Parametro"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "Aggiungi contatto"
+
+#~ msgid "Services"
+#~ msgstr "Servizi"
+
+#~ msgid "Excel Export"
+#~ msgstr "Esporta in formato Excel"
+
+#~ msgid "CSV Import"
+#~ msgstr "Importa da CSV"
+
+#~ msgid "Partitions"
+#~ msgstr "Partizioni"
+
+#~ msgid "Script"
+#~ msgstr "Script"
+
+#~ msgid "Variables"
+#~ msgstr "Variabili"
+
+#~ msgid "Profiles"
+#~ msgstr "Profili"
+
+#~ msgid "Packages"
+#~ msgstr "Pacchetti"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "Utenti di Dominio"
+
+#, fuzzy
+#~ msgid ""
+#~ "Can't connect to glpi database, there is no mysl extension available in "
+#~ "your php setup."
+#~ msgstr "Impossibile connettersi al server del database!"
+
+#, fuzzy
+#~ msgid "Can't read file '%s', check permissions."
+#~ msgstr "Rimuovi"
diff --git a/gosa-core/locale/core/messages.po b/gosa-core/locale/core/messages.po
new file mode 100644
index 0000000..26f4e19
--- /dev/null
+++ b/gosa-core/locale/core/messages.po
@@ -0,0 +1,6240 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr ""
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr ""
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr ""
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr ""
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr ""
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr ""
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr ""
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr ""
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr ""
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr ""
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr ""
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr ""
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr ""
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr ""
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr ""
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr ""
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr ""
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr ""
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr ""
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr ""
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr ""
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr ""
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr ""
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr ""
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr ""
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr ""
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr ""
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr ""
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr ""
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr ""
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr ""
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr ""
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr ""
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr ""
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr ""
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr ""
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr ""
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr ""
+
+#: include/class_management.inc:145
+msgid "Filter error"
+msgstr ""
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr ""
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr ""
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr ""
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr ""
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, php-format
+msgid "All users"
+msgstr ""
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr ""
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr ""
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr ""
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr ""
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr ""
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr ""
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr ""
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr ""
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr ""
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr ""
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr ""
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr ""
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr ""
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr ""
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr ""
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr ""
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr ""
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr ""
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr ""
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr ""
+
+#: include/class_acl.inc:807
+msgid "Grant permission to owner"
+msgstr ""
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr ""
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr ""
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr ""
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr ""
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr ""
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr ""
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr ""
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr ""
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr ""
+
+#: include/class_acl.inc:1096
+msgid "No members"
+msgstr ""
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr ""
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr ""
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr ""
+
+#: include/class_listing.inc:519
+msgid "created by"
+msgstr ""
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr ""
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr ""
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr ""
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr ""
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr ""
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr ""
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr ""
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr ""
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr ""
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr ""
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr ""
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr ""
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr ""
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+msgid "Restore snapshots"
+msgstr ""
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr ""
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr ""
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr ""
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr ""
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr ""
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr ""
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr ""
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr ""
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr ""
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr ""
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr ""
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr ""
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr ""
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr ""
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr ""
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr ""
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr ""
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr ""
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr ""
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr ""
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr ""
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr ""
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr ""
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr ""
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr ""
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr ""
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr ""
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr ""
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr ""
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+msgid "Cannot allocate a free ID:"
+msgstr ""
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr ""
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr ""
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr ""
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr ""
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr ""
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+msgid "Page"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr ""
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr ""
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr ""
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr ""
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr ""
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr ""
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr ""
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr ""
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr ""
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr ""
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr ""
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr ""
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr ""
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr ""
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr ""
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr ""
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr ""
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr ""
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr ""
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+msgid "in"
+msgstr ""
+
+#: include/utils/class_xml.inc:50
+msgid "on line"
+msgstr ""
+
+#: include/utils/class_xml.inc:51
+msgid "XML error"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:238
+#, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr ""
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr ""
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr ""
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr ""
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr ""
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+
+#: include/class_config.inc:695
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr ""
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr ""
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr ""
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr ""
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr ""
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr ""
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr ""
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr ""
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr ""
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+msgid "Please select the desired entries"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+msgid "Filter"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+msgid "Show department"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+msgid "Show users"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+msgid "Show groups"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+msgid "Show server"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+msgid "Show workstation"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+msgid "Show terminal"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+msgid "Show printer"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+msgid "Show phone"
+msgstr ""
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+msgid "Sytem trust"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr ""
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+msgid "Edit object group"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+msgid "Remove object group"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr ""
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr ""
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr ""
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr ""
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr ""
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr ""
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr ""
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr ""
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr ""
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+msgid "Show mail groups"
+msgstr ""
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr ""
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr ""
+
+#: plugins/admin/groups/group-list.xml:138
+msgid "Edit group"
+msgstr ""
+
+#: plugins/admin/groups/group-list.xml:151
+msgid "Remove group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+msgid "! unknown UID"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+msgid "Edit posix properties"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+msgid "Edit start menu properties"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr ""
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr ""
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr ""
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr ""
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr ""
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr ""
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr ""
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+msgid "Unlock account"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:732
+msgid "Lock account"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+msgid "Edit POSIX properties"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:769
+msgid "Edit FAX properties"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:140
+msgid "Lock users"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:148
+msgid "Unlock users"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:199
+msgid "New user from template"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+msgid "Remove user"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:12
+msgid "Show functional users"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:13
+msgid "Show POSIX users"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:14
+msgid "Show Mail users"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:15
+msgid "Show Samba users"
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+msgid "Domain"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+msgid "Domain component"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+msgid "Locality"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+msgid "Locality name"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:22
+msgid "Descriptive text for   department"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+msgid "Domain Component"
+msgstr ""
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr ""
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr ""
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr ""
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr ""
+
+#: plugins/admin/departments/domain.tpl:11
+msgid "Domain name"
+msgstr ""
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr ""
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:11
+msgid "Name of organization"
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr ""
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr ""
+
+#: plugins/admin/acl/acl-filter.tpl:11
+msgid "Show access control lists"
+msgstr ""
+
+#: plugins/admin/acl/acl-filter.tpl:12
+msgid "Show roles"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1626
+msgid "Login restrictions"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1647
+msgid "User password method"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr ""
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr ""
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr ""
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr ""
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr ""
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr ""
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr ""
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr ""
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr ""
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr ""
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr ""
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, php-format
+msgid "Warn user %s days before password expiry"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:100
+msgid "Common group"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:104
+msgid "Groups differ"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr ""
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr ""
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr ""
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr ""
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr ""
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr ""
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr ""
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr ""
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr ""
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr ""
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr ""
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr ""
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr ""
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr ""
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr ""
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr ""
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr ""
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr ""
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr ""
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr ""
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr ""
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr ""
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr ""
+
+#: setup/setup_config2.tpl:123
+msgid "GOsa logging"
+msgstr ""
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr ""
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr ""
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr ""
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr ""
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr ""
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr ""
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr ""
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr ""
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr ""
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr ""
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr ""
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr ""
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr ""
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr ""
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr ""
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr ""
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr ""
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr ""
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:219
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr ""
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr ""
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr ""
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr ""
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr ""
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr ""
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr ""
+
+#: setup/setup_config3.tpl:6
+msgid "Enable primary group filter"
+msgstr ""
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr ""
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr ""
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr ""
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr ""
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr ""
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr ""
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr ""
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr ""
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr ""
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr ""
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr ""
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr ""
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr ""
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr ""
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr ""
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr ""
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr ""
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr ""
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr ""
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr ""
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr ""
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr ""
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr ""
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr ""
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr ""
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr ""
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr ""
+
+#: setup/setup_ldap.tpl:37
+msgid "Connection URI"
+msgstr ""
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr ""
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr ""
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr ""
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr ""
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr ""
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:141
+msgid "Inspecting object classes in root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:147
+msgid "Checking permission for LDAP database"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:202
+msgid "Checking for old style USB devices"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:208
+msgid "Checking for old services that have to be migrated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:214
+msgid "Checking for old style application menus"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1033
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2059
+msgid "Please check your installation."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, php-format
+msgid "Updating '%s' failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr ""
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr ""
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr ""
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr ""
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr ""
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr ""
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr ""
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr ""
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr ""
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr ""
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr ""
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr ""
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr ""
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr ""
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr ""
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr ""
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr ""
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr ""
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr ""
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr ""
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr ""
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr ""
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr ""
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr ""
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr ""
diff --git a/gosa-core/locale/core/nl/LC_MESSAGES/messages.po b/gosa-core/locale/core/nl/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..6350021
--- /dev/null
+++ b/gosa-core/locale/core/nl/LC_MESSAGES/messages.po
@@ -0,0 +1,8605 @@
+# translation of messages.po to Dutch
+# GOsa2 Translations
+# Copyright (C) 2003 GONICUS GmbH, Germany
+# This file is distributed under the same license as the GOsa2 package.
+# Alfred Schroeder <schroeder at GONICUS.de>, 2004.
+# Cajus Pollmeier <pollmeier at gonicus.de>, 2004.
+#
+# Translator:
+# Niels Klomp (CareWorks ICT Services) <nk at careworks.nl>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2006-06-02 16:58+0100\n"
+"Last-Translator: Niels Klomp (CareWorks ICT Services) <nk at careworks.nl>\n"
+"Language-Team: CareWorks ICT Services <info at careworks.nl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Waarschuwing"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Dit kan gebruikt worden door meerdere groepen. Verzeker uzelf ervan dat dit "
+"is wat u wil, aangezien er geen mogelijkheid voor GOsa is om uw date terug "
+"te halen."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Indien u zeker bent drukt u dan 'Verwijderen' om door te gaan of 'Annuleren' "
+"om te annuleren."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+#, fuzzy
+msgid "Login screen"
+msgstr "Log DB gebruiker"
+
+#: ihtml/themes/default/login.tpl:34
+#, fuzzy
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr "Voer uw <i>gebruikersnaam</i> en <i>wachtwoord</i> in"
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Directory"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Inloggen"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Klik hier om in te loggen"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+#, fuzzy
+msgid "Copy & paste wizard"
+msgstr "Kopieren & plakken wizard"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Somige waardes moeten uniek zijn binnen de gehele directory, terwijl sommige "
+"combinaties geen zin hebben. GOsa toont de relevante attributen. Bewaar de "
+"waardes hieronder a.u.b. om aan deze vereisten te voldoen."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Opslaan"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+#, fuzzy
+msgid "Cancel all"
+msgstr "Annuleren"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Bewerking afgerond"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Opslaan"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"De grootte limiet optie maakt LDAP bewerkingen sneller en behoedt de LDAP "
+"server voor een te grote werkdruk. De eenvoudigste manier om met grote "
+"databases te werken zonder lange timeouts is door zoekopdrachten in grootte "
+"te beperken en door filters te gebruiken voor de informatie die u zoekt."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Kies a.u.b. de manier waarop gereageerd moet worden voor deze sessie"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr "Negeer deze fout en toon alle gegevens die de LDAP server teruggeeft"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"Negeer deze fout en toon alle gegevens die passen binnen de gedefiniëerde "
+"grootte limiet en laat me daarvoor in de plaats filters gebruiken"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Stel in"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+#, fuzzy
+msgid "New ACL"
+msgstr "Nieuw"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "ACL type"
+msgstr "type"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "Select an acl type"
+msgstr "Selecteer een basis"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Toepassen"
+
+#: ihtml/themes/default/acl.tpl:36
+#, fuzzy
+msgid "Additional filter options"
+msgstr "Programma instellingen"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Groepsleden"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+#, fuzzy
+msgid "List of available ACL categories"
+msgstr "Lijst met beschikbare pakketten"
+
+#: ihtml/themes/default/acl.tpl:112
+#, fuzzy
+msgid "ACL for this object"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: ihtml/themes/default/acl.tpl:118
+#, fuzzy
+msgid "Available roles"
+msgstr "Beschikbare programma's"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+#, fuzzy
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Uw wachtwoord is verlopen! Kies a.u.b. een nieuw wachtwoord. "
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+#, fuzzy
+msgid "Old password"
+msgstr "Oud wachtwoord"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nieuw wachtwoord"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+#, fuzzy
+msgid "Verify password"
+msgstr "Nogmaals wachtwoord"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Verander wachtwoord"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+#, fuzzy
+msgid "Click here to change your password"
+msgstr "Klik hier om uw wachtwoord te veranderen."
+
+#: ihtml/themes/default/logout-close.tpl:5
+#, fuzzy
+msgid "Your GOsa session has been closed!"
+msgstr "Uw GOsa sessie is verlopen!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+#, fuzzy
+msgid "Restoring object snapshots"
+msgstr "Nieuwe objectgroep aanmaken"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Object"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+#, fuzzy
+msgid "There is no snapshot available that could be restored"
+msgstr ""
+"Er is geen MySQL extensie beschikbaar. Controleer uw PHP installatie a.u.b."
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+#, fuzzy
+msgid "Creating object snapshots"
+msgstr "Nieuwe objectgroep aanmaken"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+#, fuzzy
+msgid "Timestamp"
+msgstr "Timeout"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Doorgaan"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Fout"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Informatie"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:6
+#, fuzzy
+msgid "Change your password"
+msgstr "Verander wachtwoord"
+
+#: ihtml/themes/default/password.tpl:35
+#, fuzzy
+msgid "Success"
+msgstr "Export was succesvol"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+#, fuzzy
+msgid "Password change"
+msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Huidig wachtwoord"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+#, fuzzy
+msgid "New password repeated"
+msgstr "Nieuw wachtwoord"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+#, fuzzy
+msgid "Password strength"
+msgstr "Wachtwoord encryptie"
+
+#: ihtml/themes/default/password.tpl:101
+#, fuzzy
+msgid "Change"
+msgstr "Kanaal"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Er is een blokkade conflict gedetecteerd"
+
+#: ihtml/themes/default/islocked.tpl:9
+#, fuzzy
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Indien deze blokkade detectie foutief is dan heeft de andere persoon de "
+"webbrowser afgesloten tijdens de bewerking. U kunt de blokkade in dit geval "
+"overnemen door de <i>Alsnog bewerken</i> knop te gebruiken."
+
+#: ihtml/themes/default/islocked.tpl:16
+#, fuzzy
+msgid "Read only"
+msgstr "Lijst herladen"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "GOsa help"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Index"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Zoeken"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Uw GOsa sessie is verlopen!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"Uw laatste interactie met de GOsa webinterface is enige tijd geleden. Uit "
+"veiligheidsoverwegingen is de sessie gesloten. Om door te gaan met "
+"administratieve taken, dient u opnieuw in te loggen."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Opnieuw inloggen"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Er is een sessie conflict gedetecteerd"
+
+#: ihtml/themes/default/conflict.tpl:6
+#, fuzzy
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Er is vermoedelijk een andere actieve instantiatie van uw sessie. Werken m.b."
+"v. meerdere schermen is technisch onmogelijk en is sterk afhankelijk van de "
+"gebruikte browser. Gelijktijdig gebruik van verschillende browsers "
+"(bijvoorbeeld Internet Explorer en Mozilla) is wel mogelijk. Via de "
+"<b>Uitloggen</b> knop wordt deze sessie afgesloten."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Het negeren van dit bericht zal de data die u op dit moment aan het bewerken "
+"bent veranderen/vernietigen, dus sluit a.u.b. enige overige vensters en log "
+"opnieuw in."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"U bent momenteel database gegevens aan het bewerken. Wilt u eventuele "
+"wijzigingen ongedaan maken?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Hoofdmenu"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Help"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Uitloggen"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Aangemeld:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Fatal error"
+msgstr "Terminal server"
+
+#: html/password.php:58 html/index.php:144
+#, fuzzy, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "GOsa configuratie %s/gosa.conf is niet leesbaar. Geannuleerd."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+#, fuzzy
+msgid "Configuration error"
+msgstr "Configuratie bestand"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+"Directory '%s' die opgegeven is als compileer directory is niet toegankelijk!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "Password method"
+msgstr "Wachtwoord encryptie"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"Het nieuwe wachtwoord en het herhaalde wachtwoord komen niet met elkaar "
+"overeen."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr ""
+"Het huidige wachtwoord en het nieuwe wachtwoord lijken te veel op elkaar."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "Het nieuw opgegeven wachtwoord is te kort."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Inlognaam"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Controleer a.u.b. de gebruikersnaam/wachtwoord combinatie."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "Extern wachtwoord verander mechanisme rapporteerde een probleem:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "De sessie zal niet versleuteld zijn."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Gebruik een SSL sessie"
+
+#: html/index.php:57
+#, fuzzy
+msgid "Session is not encrypted!"
+msgstr "De sessie zal niet versleuteld zijn."
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+#, fuzzy
+msgid "Smarty error"
+msgstr "Systeem status"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+#, fuzzy
+msgid "LDAP error"
+msgstr "LDAP fout:"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+#, fuzzy
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+"Uw LDAP installatie bevat oude schema definities. Draai het installatie "
+"programma a.u.b. opnieuw."
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Geef a.u.b. een geldige gebruikersnaam op!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Geef a.u.b. uw wachtwoord op!"
+
+#: html/index.php:314
+#, fuzzy
+msgid "Authentication error"
+msgstr "Nagios authenticatie"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+#, fuzzy
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Account is geblokkeerd. Neem a.u.b. contact op met de systeembeheerder."
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Cookies zijn uitgeschakeld in uw browser. Schakel cookies a.u.b. in en "
+"herlaad deze pagina voordat u inlogt!"
+
+#: html/setup.php:66
+#, fuzzy
+msgid "Smarty"
+msgstr "Samenvatting"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+#, fuzzy
+msgid "PHP configuration"
+msgstr "FAX database"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"FATAAL: 'Register globals' is geactiveerd in PHP. GOsa zal niemand laten "
+"inloggen totdat dit opgelost is door een systeembeheerder."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+#, fuzzy
+msgid "Your password is about to expire, please change your password!"
+msgstr "Uw wachtwoord zal spoedig verlopen! Kies a.u.b. een nieuw wachtwoord."
+
+#: html/main.php:349
+#, fuzzy
+msgid "Plugin"
+msgstr "in"
+
+#: html/main.php:350
+#, fuzzy, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "FATAAL: Kan geen enkele module defenities vinden voor module '%s'!"
+
+#: html/main.php:364
+#, fuzzy
+msgid "Configuration Error"
+msgstr "Configuratie bestand"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Help verkenner"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Er is (nog) geen help bestand aanwezig voor deze klasse."
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "vorige"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "volgende"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Help directory '%s' is niet toegankelijk. Er kunnen geen helpbestanden "
+"gelezen worden."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "niet geconfigureerd"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Terminal server"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+#, fuzzy
+msgid "Permission"
+msgstr "Rechten"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+#, fuzzy
+msgid "Permission error"
+msgstr "Rechten"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, fuzzy, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen!"
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, fuzzy, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen!"
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+#, fuzzy
+msgid "Access control"
+msgstr "Toegangsopties"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+#, fuzzy
+msgid "Manage access control lists"
+msgstr "Toegangsopties"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "gebruikers"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+#, fuzzy
+msgid "All categories"
+msgstr "Categorie toevoegen"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr ""
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+#, fuzzy
+msgid "One level"
+msgstr "Log prioriteit"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+#, fuzzy
+msgid "Current object"
+msgstr "Nieuw FAI object aanmaken"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+#, fuzzy
+msgid "Complete subtree"
+msgstr "Subonderdelen negeren"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr ""
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Gebruikers"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Groepen"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Omhoog"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "Omlaag"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Bewerken"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "Rechten"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr ""
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+#, fuzzy
+msgid "category ACL"
+msgstr "Categorie"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr ""
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr ""
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+#, fuzzy
+msgid "Show/hide advanced settings"
+msgstr "Geavanceerde telefoon instellingen"
+
+#: include/class_acl.inc:803
+#, fuzzy
+msgid "Create objects"
+msgstr "Nieuw FAI object aanmaken"
+
+#: include/class_acl.inc:804
+#, fuzzy
+msgid "Move objects"
+msgstr "Lidmaatschap objecten"
+
+#: include/class_acl.inc:805
+#, fuzzy
+msgid "Remove objects"
+msgstr "Lidmaatschap objecten"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "alleen lezen"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "afleveren, lezen & schrijven"
+
+#: include/class_acl.inc:816
+#, fuzzy
+msgid "Complete object"
+msgstr "Nieuw FAI object aanmaken"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+#, fuzzy
+msgid "Internal error"
+msgstr "Terminal server"
+
+#: include/class_acl.inc:960
+#, fuzzy, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "Onbekende FAI status %s"
+
+#: include/class_acl.inc:1005
+#, fuzzy, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Onbekende FAI status %s"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, fuzzy, php-format
+msgid "Role: %s"
+msgstr "Funktie"
+
+#: include/class_acl.inc:1071
+#, fuzzy
+msgid "unknown role"
+msgstr "! onbekend id"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "inactive"
+msgstr "actief"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Groepsleden"
+
+#: include/class_acl.inc:1266
+#, fuzzy
+msgid "Access control list"
+msgstr "Toegangsopties"
+
+#: include/class_acl.inc:1271
+#, fuzzy
+msgid "ACL roles"
+msgstr "Rechten"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr "Gebruikersnaam / UID is niet uniek. Controleer uw LDAP database a.u.b."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+#, fuzzy
+msgid "Select all"
+msgstr "Selecteer"
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "Aanmaken"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Ga naar basis afdelingen"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Basis"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Ga een afdeling omhoog"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Ga naar gebruikers afdeling"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Home"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Lijst herladen"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Verwerk"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Acties"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+#, fuzzy
+msgid "Copy"
+msgstr "kopieer"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+#, fuzzy
+msgid "Cut"
+msgstr "knippen"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Plakken"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Deze invoer knippen"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Deze invoer kopieren"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "Nagios account aanmaken"
+
+#: include/class_listing.inc:1474
+#, fuzzy
+msgid "Export list"
+msgstr "Exporteer"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+#, fuzzy
+msgid "Create snapshot"
+msgstr "Nagios account aanmaken"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+#, fuzzy
+msgid "Create a new snapshot from this object"
+msgstr "Nieuw FAI object aanmaken"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Bewerk deze invoer"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Verwijder deze invoer"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+"FATAAL: Fout bij het verbinden met de LDAP server. De server meldt: '%s'."
+
+#: include/functions.inc:519
+#, fuzzy
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "Gebruikersnaam / UID is niet uniek. Controleer uw LDAP database a.u.b."
+
+#: include/functions.inc:604
+#, fuzzy
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr "Gebruikersnaam / UID is niet uniek. Controleer uw LDAP database a.u.b."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Kan de blokkade informatie niet ophalen uit de LDAP database. Controleer a.u."
+"b. de 'config' regel in gosa.conf!"
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP server"
+
+#: include/functions.inc:929
+#, fuzzy
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Er zijn meerdere blokkades voor het te blokkeren object gevonden. Dat zou "
+"niet mogelijk moeten zijn. Meervoudige verwijzingen worden opgeschoond."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "De hoeveelheidslimiet van %d invoeren is overschreden!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Stel de nieuwe hoeveelheidslimiet in op %s en toon me dit bericht indien de "
+"limiet nog steeds overschreden wordt."
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Instellen"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "onvolledig"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Toch doorgaan"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Alsnog bewerken"
+
+#: include/functions.inc:1646
+#, fuzzy, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "U staat op het punt de invoer '%s' te kopieren."
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "Regels per pagina"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Filter toepassen"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "GOsa ontwikkelversie (Revisie %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+#, fuzzy
+msgid "Cannot write to revision file!"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "LDAP warning"
+msgstr "LDAP beheer"
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"Kan de schema informatie niet ophalen van de server. Schema controle is "
+"onmogelijk!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, fuzzy, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Toon FAI sjabloon objecten"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, fuzzy, php-format
+msgid "Class(es) available"
+msgstr "Bestand is beschikbaar"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Duits"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Frans"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italiaans"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Spaans"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Engels"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Nederlands"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Pools"
+
+#: include/functions.inc:2825
+#, fuzzy
+msgid "Chinese"
+msgstr "Chipset"
+
+#: include/functions.inc:2826
+#, fuzzy
+msgid "Vietnamese"
+msgstr "Naam"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Russisch"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"Het commando '%s' dat gespecificeerd is als POSTMODIFY voor module '%s' "
+"bestaat niet."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr ""
+"Er zitten te veel gebruikers in de database. Kan geen vrij ID toewijzen!"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Ga naar basis afdelingen"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+#, fuzzy
+msgid "no ID available!"
+msgstr "Bestand is beschikbaar"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+#, fuzzy
+msgid "Cannot allocate a free ID!"
+msgstr ""
+"Er zitten te veel gebruikers in de database. Kan geen vrij ID toewijzen!"
+
+#: include/class_tabs.inc:57
+#, fuzzy, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+"Kan niet verbinden met de opgegeven database. Controleer uw GLPI "
+"configuratie a.u.b."
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "Het verwijder proces is geannuleerd door plugin '%s': %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Referenties"
+
+#: include/class_SnapShotDialog.inc:82
+#, fuzzy, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "U staat op het punt de macro '%s' te verwijderen."
+
+#: include/class_SnapShotDialog.inc:137
+#, fuzzy
+msgid "Remove snapshot"
+msgstr "Nagios account aanmaken"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Omschrijving"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "Pieper"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+#, fuzzy
+msgid "You are currently editing mutliple entries."
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "Password reset"
+msgstr "Wachtwoord verloopt op"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "The user password was resetted, please set a new password value!"
+msgstr "Uw wachtwoord is verlopen! Kies a.u.b. een nieuw wachtwoord. "
+
+#: include/class_certificate.inc:73
+#, fuzzy
+msgid "Certificate is empty!"
+msgstr "Certificaten"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+#, fuzzy
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "Kan quota informatie niet ophaleven voor '%s'."
+
+#: include/class_certificate.inc:219
+#, fuzzy
+msgid "No valid certificate loaded!"
+msgstr "Geen geldig certificaat geladen"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+"Er is minimaal één PHP fout opgetreden bij het genereren van deze pagina!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+#, fuzzy
+msgid "Send bugreport"
+msgstr "Afzender"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Informatie weergeven/verbergen"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "PHP fout"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "klasse"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "functie"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "statisch"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "methode"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Trace"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "Bestand"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Regel"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Type"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Argumenten"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+#, fuzzy
+msgid "Search in subtrees"
+msgstr "Zoek binnen subtree"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+#, fuzzy
+msgid "from"
+msgstr "willekeurig"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+#, fuzzy
+msgid "to"
+msgstr "Stop"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+#, fuzzy
+msgid "Restore"
+msgstr "Opnieuw proberen"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "knippen"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "kopieer"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "XML fout in guide.conf: %s op regel %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "Help is (nog) niet beschikbaar voor deze module."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s resultaten voor uw zoekopdracht met sleutelwoord %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% resultaat in bestand %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "Hoofdmenu"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Doorgaan"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "LDAP fout:"
+
+#: include/utils/class_msgPool.inc:16
+#, fuzzy, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Selecteer de toe te voegen objecten"
+
+#: include/utils/class_msgPool.inc:18
+#, fuzzy, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Selecteer om groepen die gebruikers bevatten te tonen"
+
+#: include/utils/class_msgPool.inc:20
+#, fuzzy, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Selecteer de toe te voegen objecten"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Selecteer om binnen subonderdelen te zoeken"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+#, fuzzy
+msgid "You have no permission to delete this object!"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+#, fuzzy
+msgid "You have no permission to delete the object:"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:75
+#, fuzzy
+msgid "You have no permission to delete these objects:"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:82
+#, fuzzy
+msgid "You have no permission to create this object!"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+#, fuzzy
+msgid "You have no permission to create the object:"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:93
+#, fuzzy
+msgid "You have no permission to create these objects:"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: include/utils/class_msgPool.inc:100
+#, fuzzy
+msgid "You have no permission to modify this object!"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+#, fuzzy
+msgid "You have no permission to modify the object:"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:111
+#, fuzzy
+msgid "You have no permission to modify these objects:"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:118
+#, fuzzy
+msgid "You have no permission to view this object!"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+#, fuzzy
+msgid "You have no permission to view the object:"
+msgstr ""
+"U heeft geen toestemming om een telefoon aan te maken onder deze 'Basis'."
+
+#: include/utils/class_msgPool.inc:129
+#, fuzzy
+msgid "You have no permission to view these objects:"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:136
+#, fuzzy
+msgid "You have no permission to move this object!"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+#, fuzzy
+msgid "You have no permission to move the object:"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:147
+#, fuzzy
+msgid "You have no permission to move these objects:"
+msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+#, fuzzy
+msgid "Connection information"
+msgstr "Persoonlijke informatie"
+
+#: include/utils/class_msgPool.inc:159
+#, fuzzy, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Kan niet verbinden met de database server!"
+
+#: include/utils/class_msgPool.inc:171
+#, fuzzy, php-format
+msgid "Cannot select %s database!"
+msgstr "De opgegeven database kon niet geselecteerd worden!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, fuzzy, php-format
+msgid "Cannot query %s database!"
+msgstr "De opgegeven database kon niet geselecteerd worden!"
+
+#: include/utils/class_msgPool.inc:195
+#, fuzzy, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Het veld 'Fax' bevat een ongeldig Faxnummer."
+
+#: include/utils/class_msgPool.inc:201
+#, fuzzy, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+"Het commando '%s' dat gespecificeerd is als CHECK inhaker voor module '%s' "
+"bestaat niet."
+
+#: include/utils/class_msgPool.inc:208
+#, fuzzy, php-format
+msgid "'%s' command is invalid!"
+msgstr "De opgegeven naam is ongeldig."
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, fuzzy, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "De opgegeven naam is ongeldig."
+
+#: include/utils/class_msgPool.inc:222
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "De opgegeven database kon niet geselecteerd worden!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "De opgegeven database kon niet geselecteerd worden!"
+
+#: include/utils/class_msgPool.inc:236
+#, fuzzy, php-format
+msgid "Value for '%s' is too large!"
+msgstr "De opgegeven 'UID' waarde is te klein."
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr ""
+"De waarde opgegeven voor 'shadowMin' moet kleiner zijn dan 'shadowMax'."
+
+#: include/utils/class_msgPool.inc:246
+#, fuzzy, php-format
+msgid "Value for '%s' is too small!"
+msgstr "De opgegeven 'UID' waarde is te klein."
+
+#: include/utils/class_msgPool.inc:248
+#, fuzzy, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+"PHP moet minimaal versienummer 4.1.0 hebben. GOsa gebruikt bepaalde "
+"functionaliteit die in voorgaande versies niet goed of helemaal niet "
+"voorhanden is."
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, fuzzy, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "Er bestaat al een account met deze 'Inlog naam' in de database."
+
+#: include/utils/class_msgPool.inc:267
+#, fuzzy, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Het vereiste veld '(Achter)naam' is leeg."
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Het veld 'Naam' bevat ongeldige karakters."
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, fuzzy, php-format
+msgid "'%s' are not allowed!"
+msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#: include/utils/class_msgPool.inc:296
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Het veld 'Naam' bevat ongeldige karakters."
+
+#: include/utils/class_msgPool.inc:303
+#, fuzzy, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Verwijder printer mogelijkheden"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Toevoegen"
+
+#: include/utils/class_msgPool.inc:333
+#, fuzzy, php-format
+msgid "Add %s"
+msgstr "Toevoegen"
+
+#: include/utils/class_msgPool.inc:339
+#, fuzzy, php-format
+msgid "Delete %s"
+msgstr "Verwijderen"
+
+#: include/utils/class_msgPool.inc:345
+#, fuzzy, php-format
+msgid "Set %s"
+msgstr "Stel in"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit..."
+msgstr "Bewerken"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit %s..."
+msgstr "Bewerk gebruiker"
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Terug"
+
+#: include/utils/class_msgPool.inc:377
+#, fuzzy, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Dit account heeft geen geldige GOsa extensies."
+
+#: include/utils/class_msgPool.inc:383
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"Dit account heeft POSIX mogelijkheden ingeschakeld. U kunt deze uitschakelen "
+"door de knop hieronder te gebruiken."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Dit account heeft Unix mogelijkheden ingeschakeld. Om deze te verwijderen "
+"moet u eerst het samba / omgevings account verwijderen."
+
+#: include/utils/class_msgPool.inc:402
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"Dit account heeft POSIX mogelijkheden uitgeschakeld. U kunt deze inschakelen "
+"door de knop hieronder te gebruiken."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Dit account heeft Unix mogelijkheden ingeschakeld. Om deze te verwijderen "
+"moet u eerst het samba / omgevings account verwijderen."
+
+#: include/utils/class_msgPool.inc:420
+#, fuzzy, php-format
+msgid "Add %s settings"
+msgstr "Programma instellingen"
+
+#: include/utils/class_msgPool.inc:426
+#, fuzzy, php-format
+msgid "Remove %s settings"
+msgstr "Posix instellingen"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Gebruik de 'Bewerk' knop hieronder om de informatie in deze dialoog te "
+"veranderen"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Januari"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Februari"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Maart"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "April"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Mei"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Juni"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Juli"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Augustus"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "September"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Oktober"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "November"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "December"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Sunday"
+msgstr "Achternaam"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Monday"
+msgstr "maand"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:453
+#, fuzzy
+msgid "MySQL operation failed!"
+msgstr "De database zoekopdracht is mislukt"
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "read operation"
+msgstr "E-mail opties"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "modify operation"
+msgstr "Persoonlijke informatie"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "delete operation"
+msgstr "Selecteer om werkstations te zien"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "search operation"
+msgstr "Het account verloopt op"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "authentication"
+msgstr "Nagios authenticatie"
+
+#: include/utils/class_msgPool.inc:465
+#, fuzzy, php-format
+msgid "LDAP %s failed!"
+msgstr "De database zoekopdracht is mislukt"
+
+#: include/utils/class_msgPool.inc:467
+#, fuzzy
+msgid "LDAP operation failed!"
+msgstr "De database zoekopdracht is mislukt"
+
+#: include/utils/class_msgPool.inc:482
+#, fuzzy
+msgid "Upload failed!"
+msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#: include/utils/class_msgPool.inc:485
+#, fuzzy, php-format
+msgid "Upload failed: %s"
+msgstr "Log DB gebruiker"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, fuzzy, php-format
+msgid "This '%s' is still in use."
+msgstr "Deze 'dn' is geen groep."
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Kan bestand '%s' niet openen."
+
+#: include/utils/class_msgPool.inc:527
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Kan bestand '%s' niet openen."
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, fuzzy, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Kan bestand '%s' niet openen."
+
+#: include/utils/class_msgPool.inc:545
+#, fuzzy, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Ga naar basis afdelingen"
+
+#: include/utils/class_msgPool.inc:551
+#, fuzzy, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Kan bestand '%s' niet openen."
+
+#: include/utils/class_msgPool.inc:557
+#, fuzzy, php-format
+msgid "Checking for %s support"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "bij het bewerken van '%s' op LDAP server '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "bij het bewerken van LDAP server %s"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"Dit is geen geldige DN: '%s'. Een blok dat geïmporteerd wordt, dient te "
+"beginnen met 'dn: ...' op regel %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Fout bij het importeren van dn: '%s', controleer uw LDIF bestand a.u.b. "
+"vanaf regel %s!"
+
+#: include/class_log.inc:87
+#, fuzzy, php-format
+msgid "Logging failed: %s"
+msgstr "Log DB gebruiker"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr ""
+
+#: include/class_log.inc:106
+#, fuzzy
+msgid "Specified objectType is empty or invalid!"
+msgstr "De opgegeven naam is ongeldig."
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+#, fuzzy
+msgid "Cannot not parse XML!"
+msgstr ""
+"Er zitten te veel gebruikers in de database. Kan geen vrij ID toewijzen!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, fuzzy, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, fuzzy, php-format
+msgid "Cannot remove entry %s!"
+msgstr "Onbekende FAI status %s"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "XML fout in gosa.conf: %s op regel %d"
+
+#: include/class_config.inc:318
+#, fuzzy
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Kan niet verbinden met de LDAP server. Neem a.u.b. contact op met de "
+"systeembeheerder."
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "SID en/of RIDBASE ontbreken in uw configuratie!"
+
+#: include/class_config.inc:1105
+#, fuzzy
+msgid "Configuration"
+msgstr "Configuratie bestand"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr ""
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, fuzzy, php-format
+msgid "Copy and paste failed!"
+msgstr "Kopieren & plakken wizard"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, fuzzy, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, fuzzy, php-format
+msgid "No write permission in '%s'"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+#, fuzzy
+msgid "Cannot paste"
+msgstr "Plakken onmogelijk"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Algemeen"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "Unix"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "E-mail"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "Fax"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "Ftp"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Groep"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Afdeling"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Telefoon"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Programma"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Server"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Thin Client"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Werkstation"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Objectgroep"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Printer"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Objectnaam"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Inhoud"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Dit object heeft geen relatie met andere objecten."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Welkom %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Dit is het GOsa hoofdmenu. U kunt taken selecteren door het menu aan de "
+"linkerzijde te gebruiken of door een van de pictogrammen hieronder te "
+"selecteren. Alle veranderingen worden direct op de LDAP server van uw "
+"bedrijf doorgevoerd."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Gebruik 'Uitloggen' bovenin om de verbinding te verbreken en 'Hoofdmenu' om "
+"terug te keren naar het onderstaande pictogrammen overzicht."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Het GOsa team"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "Voorkeurstaal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "Terminal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Gebruiker"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Naam"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Basis"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Filters"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Toon afdelingen"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "Toon servers"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "Toon Samba groepen"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "Toon servers"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "Toon werkstations"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "Toon terminals"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "Toon printers"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Toon pakketten"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Controleer a.u.b. of u dit daadwerkelijk wil doen, aangezien er geen "
+"mogelijkheid voor GOsa is om uw data terug te krijgen."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Objectgroepen"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+#, fuzzy
+msgid "Manage object groups"
+msgstr "Naam van objectgroepen"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+#, fuzzy
+msgid "Infrastructure error"
+msgstr "PHP fout"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+#, fuzzy
+msgid "Templates"
+msgstr "Sjabloon"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+#, fuzzy
+msgid "Windows Install"
+msgstr "Windows werkstation"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "geen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "te veel verschillende object tpyes!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "gebruikers"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "groepen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "programma's"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "afdelingen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "servers"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "werkstations"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+#, fuzzy
+msgid "winstations"
+msgstr "Windows werkstation"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "terminals"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "telefoons"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "printers"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "gedeactiveerd"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "volledige toegang"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "sta toegang op deze computers toe"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "Niet bestaande dn: "
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+#, fuzzy
+msgid "You can combine two different object types at maximum, only!"
+msgstr "U kunt maximaal twee verschillende object types tegelijk combineren!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+#, fuzzy
+msgid "Object group generic"
+msgstr "Objectgroep"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "Systeem vertrouwen"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+#, fuzzy
+msgid "Member"
+msgstr "Groepsleden"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Groepnaam"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Naam van de groep"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Omschrijving voor deze groep"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Systeem vertrouwen"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Vertrouwensmodus"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Lidmaatschap objecten"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Telefoonwachtrij"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+#, fuzzy
+msgid "Systems"
+msgstr "Systeem"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Opstarten"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Apparaten"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "FAI samenvatting"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Omgeving"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Programma's"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+#, fuzzy
+msgid "Please enter the new object group name"
+msgstr "Geef a.u.b. een nieuwe naam op"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+#, fuzzy
+msgid "user groups"
+msgstr "groepen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+#, fuzzy
+msgid "nested groups"
+msgstr "Objectgroepen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+#, fuzzy
+msgid "application groups"
+msgstr "Toon programma groepen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+#, fuzzy
+msgid "department groups"
+msgstr "afdelingen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+#, fuzzy
+msgid "server groups"
+msgstr "servers"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+#, fuzzy
+msgid "workstation groups"
+msgstr "werkstations"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+#, fuzzy
+msgid "windows workstation groups"
+msgstr "Toon werkstations"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+#, fuzzy
+msgid "terminal groups"
+msgstr "Toon E-mail groepen"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+#, fuzzy
+msgid "printer groups"
+msgstr "Primaire groep"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+#, fuzzy
+msgid "phone groups"
+msgstr "Toon groepen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Lijst met objectgroepen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Eigenschappen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Aanmaken"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+#, fuzzy
+msgid "Send message"
+msgstr "Bericht in wachtstand plaatsen"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Objectgroep"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "servers"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Selecteer de toe te voegen objecten"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filters"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Toon objecten van afdeling"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Selecteer de afdeling waarbinnen gezocht zal worden"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Toon overeenkomende objecten"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Reguliere expressie voor overeenkomende objectnamen"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Selecteer de toe te voegen systemen"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Toon systemen van afdeling"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Toon de overeenkomende systemen"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Reguliere expresie voor overeenkomende adressen"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Dit kan een primaire groep zijn. Verzeker uzelf ervan dat dit is wat u wilt, "
+"aangezien er geen mogelijkheid voor GOsa is om deze gegevens terug te halen."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Naam"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Achternaam"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "POSIX naam van de groep"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Normaliter worden IDs automatisch gegenereerd. Selecteer om handmatig te "
+"specificeren"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Forceer GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Geforceerd ID nummer"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Selecteer om een samba conforme groep te maken"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "in domein"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Leden zitten in een telefoon beantwoordgroep"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Leden zitten in een systeeminformatie groep (Nagios)"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Groepsleden"
+
+#: plugins/admin/groups/generic.tpl:243
+#, fuzzy
+msgid "In all groups"
+msgstr "Primaire groep"
+
+#: plugins/admin/groups/generic.tpl:246
+#, fuzzy
+msgid "Not in all groups"
+msgstr "Toon E-mail groepen"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Toon primaire groepen"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Toon Samba groepen"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "Toon Samba groepen"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Groep instellingen"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Lijst met groepen"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "Primaire groep"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "servers"
+
+#: plugins/admin/groups/class_group.inc:162
+#, fuzzy
+msgid "Cannot find group SID in your configuration!"
+msgstr ""
+"Kan de SID van deze groep niet vinden in de LDAP database of in uw "
+"configuratie bestand."
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Samba groep"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Windows beheerders"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Windows gebruikers"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Windows gasten"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Speciale groep (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "! onbekend id"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, fuzzy, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: plugins/admin/groups/class_group.inc:899
+#, fuzzy, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Kan bestand '%s' niet aanmaken."
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+#, fuzzy
+msgid "Generic group settings"
+msgstr "Algemene wachtrij instellingen"
+
+#: plugins/admin/groups/class_group.inc:1198
+#, fuzzy
+msgid "Samba group type"
+msgstr "Samba groep"
+
+#: plugins/admin/groups/class_group.inc:1199
+#, fuzzy
+msgid "Samba domain name"
+msgstr "Samba home"
+
+#: plugins/admin/groups/class_group.inc:1201
+#, fuzzy
+msgid "Phone pickup group"
+msgstr "Leden zitten in een telefoon beantwoordgroep"
+
+#: plugins/admin/groups/class_group.inc:1202
+#, fuzzy
+msgid "Nagios group"
+msgstr "Nagios account"
+
+#: plugins/admin/groups/class_group.inc:1204
+#, fuzzy
+msgid "Group member"
+msgstr "Groepsleden"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Groepen beheer"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Bewerk telefoon eigenschappen"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Bewerk E-mail eigenschappen"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Bewerk Samba eigenschappen"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Bewerk telefoon eigenschappen"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+#, fuzzy
+msgid "Menu"
+msgstr "Printer"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Bewerk Samba eigenschappen"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Bewerk omgeving eigenschappen"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Dit omvat alle account gegevens, systeem toegangsregels, imap instellingen "
+"etc. voor deze gebruiker. Verzeker uzelf hiervan, aangezien er geen "
+"mogelijkheid voor GOsa is om deze informatie terug te halen."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Gebruik de velden hieronder om het gebruikers wachtwoord te veranderen. De "
+"veranderingen worden onmiddelijk doorgevoerd. Onthoud het nieuwe wachtwoord "
+"a.u.b. aangezien de gebruiker niet in kan loggen zonder dit wachtwoord."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Het veranderen van het wachtwoord is van invloed op E-mail, proxy, samba en "
+"Unix diensten."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Herhaal het nieuwe wachtwoord"
+
+#: plugins/admin/users/password.tpl:21
+#, fuzzy
+msgid "Strength"
+msgstr "Straat"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Wachtwoord instellen"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Een nieuwe gebruiker aanmaken m.b.v. een sjabloon"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Het aanmaken van een nieuwe gebruiker kan m.b.v. sjablonen gebeuren. Veel "
+"database records zullen dan automatisch gevuld worden. Kies 'geen' om het "
+"gebruik van sjablonen over te slaan."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Sjabloon"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Achternaam"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Voornaam"
+
+#: plugins/admin/users/class_userManagement.inc:26
+#, fuzzy
+msgid "Manage users"
+msgstr "Windows gebruikers"
+
+#: plugins/admin/users/class_userManagement.inc:278
+#, fuzzy
+msgid "You have no permission to change this users password!"
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#: plugins/admin/users/class_userManagement.inc:656
+#, fuzzy
+msgid "Account locking"
+msgstr "Account"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "Mijn account"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "Mijn account"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Bewerk algemene eigenschappen"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Bewerk UNIX eigenschappen"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Bewerk Netatalk eigenschappen"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Bewerk UNIX eigenschappen"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Lijst met gebruikers"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Lijst met gebruikers"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Windows gebruikers"
+
+#: plugins/admin/users/user-list.xml:167
+#, fuzzy
+msgid "Apply template"
+msgstr "Sjablonen"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Maak gebruiker aan vanuit sjabloon"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "Bewerk gebruiker"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Plaatje verwijderen"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Toon sjablonen"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "Toon functionele gebruikers"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Posix instellingen"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Toon E-mail gebruikers"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Toon E-mail gebruikers"
+
+#: plugins/admin/users/templatize.tpl:2
+#, fuzzy
+msgid "Applying a template"
+msgstr "Sjablonen"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+#, fuzzy
+msgid "No templates available!"
+msgstr "Bestand is beschikbaar"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Dit omvat 'alle' accounts, systemen etc. in deze subtree. Verzeker uzelf er "
+"van dat dit is wat u wilt, aangezien er geen mogelijkheid voor GOsa is om "
+"deze gegevens terug te halen."
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Het is aan te raden de huidige inhoud van uw LDAP database op te slaan "
+"alvorens u doorgaat. Indien u dat gedaan heeft drukt u op 'Verwijderen' om "
+"door te gaan of op 'Annuleren' om te annuleren."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Lijst met afdelingen"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "in domein"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Windows beheerders"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Land"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "Plaats"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organisatie"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "Naam van de locatie"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+#, fuzzy
+msgid "Name of locality to create"
+msgstr "Naam van de aan te maken subtree"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Omschrijving voor de afdeling"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Administratieve instellingen"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Markeer de afdeling als een onafhankelijke administratieve eenheid"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Naam van de afdeling"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Naam van de aan te maken subtree"
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Omschrijving voor de afdeling"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Categorie"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Categorie voor deze subtree"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Plaats"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Provincie"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Provincie waar deze subtree zich bevindt"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Plaats van deze subtree"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Adres"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Post adres van deze subtree"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Basis telefoonnummer van deze subtree"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Basis Fax nummer van deze subtree"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "Windows beheerders"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Afdelingen"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+#, fuzzy
+msgid "Manage Departments"
+msgstr "Afdelingen"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+#, fuzzy
+msgid "Organization name"
+msgstr "Organisatie"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Adres thuis"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Telefoonnummer"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+#, fuzzy
+msgid "Country name"
+msgstr "Land"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Windows beheerders"
+
+#: plugins/admin/departments/domain.tpl:14
+#, fuzzy
+msgid "Name of domain to create"
+msgstr "Naam van de aan te maken subtree"
+
+#: plugins/admin/departments/country.tpl:14
+#, fuzzy
+msgid "Name of country to create"
+msgstr "Naam van de aan te maken subtree"
+
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+"Fatale fout: Kon geen ongebruikte markering vinden om de administratieve "
+"eenheid te markeren!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Markeren van '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Verplaatsen van %s naar %s"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "Kopieren van %s is mislukt. Bewerking afgebroken."
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Afdelingnaam"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Telefoon"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "Object '%s' is al gemarkeerd"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Toevoegen van markering (%s) aan object '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Verwijderen van markering van object '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Bezig met verwerken van de gevraagde opdracht"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Uw browser heeft geen ondersteuning voor frames. Gebruik a.u.b. deze link om "
+"de gewenste opdracht uit te voeren."
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "Organisatie"
+
+#: plugins/admin/departments/organization.tpl:14
+#, fuzzy
+msgid "Name of organization to create"
+msgstr "Naam van de aan te maken subtree"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#, fuzzy
+msgid "You are currently moving/renaming this department."
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+#, fuzzy
+msgid "Acl"
+msgstr "Alle"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "Blokkeerlijst beheer"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+#, fuzzy
+msgid "ACL Templates"
+msgstr "Sjablonen"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+#, fuzzy
+msgid "Access control roles"
+msgstr "Toegangsopties"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+#, fuzzy
+msgid "Edit AC roles"
+msgstr "Rechten"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+#, fuzzy
+msgid "Reset ACL"
+msgstr "Verwijderen"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, fuzzy, php-format
+msgid "ACL for these objects: %s"
+msgstr "Nieuw FAI object aanmaken"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+#, fuzzy
+msgid "Edit category ACL"
+msgstr "Bewerk klasse"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+#, fuzzy
+msgid "Reset category ACL"
+msgstr "Categorie"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy
+msgid "Object in use"
+msgstr "Objectnaam"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Funktie"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+#, fuzzy
+msgid "Permissions"
+msgstr "Rechten"
+
+#: plugins/admin/acl/acl-list.xml:11
+#, fuzzy
+msgid "List of acls"
+msgstr "Lijst met macro's"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Toegangsopties"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Toon telefoons"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+#, fuzzy
+msgid "Edit organizational user settings"
+msgstr "Programma instellingen"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "vrouw"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "man"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+#, fuzzy
+msgid "Serial number"
+msgstr "Telefoonnummer"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Certificaat is geldig van '%s' tot '%s' en de huidige status is '%s'."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "geldig"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "ongeldig"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Geen certificaat geinstalleerd"
+
+#: plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "The selected password method is no longer available."
+msgstr "Dit programma is niet meer beschikbaar."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+#, fuzzy
+msgid "The selected password method requires initial configuration!"
+msgstr "Dit programma is niet meer beschikbaar."
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Homepage"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "GSM"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Pieper"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Geboortedatum"
+
+#: plugins/personal/generic/class_user.inc:1433
+#, fuzzy
+msgid "Cannot open certificate!"
+msgstr "Het opgegeven certificaat kon geopend worden!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Eenheid"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Huis identificatie"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Beroep"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Laatste levering"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Werkplaats"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Eenheid omschrijving"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Werkgebied"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Functionele titel"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Certificaat serienummer"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Publiek zichtbaar"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Straat"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Postcode"
+
+#: plugins/personal/generic/class_user.inc:1603
+#, fuzzy
+msgid "Generic user settings"
+msgstr "Algemene wachtrij instellingen"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Mijn account"
+
+#: plugins/personal/generic/class_user.inc:1615
+#, fuzzy
+msgid "User identification"
+msgstr "Gebruikersinformatie"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Aanhef"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Academische titel"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Geslacht"
+
+#: plugins/personal/generic/class_user.inc:1621
+#, fuzzy
+msgid "Preferred language"
+msgstr "Voorkeurstaal"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Persoonlijk plaatje"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Wachtwoord verloopt op"
+
+#: plugins/personal/generic/class_user.inc:1630
+#, fuzzy
+msgid "Department number"
+msgstr "Afdelingnaam"
+
+#: plugins/personal/generic/class_user.inc:1631
+#, fuzzy
+msgid "Employee number"
+msgstr "Functie"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Functie"
+
+#: plugins/personal/generic/class_user.inc:1634
+#, fuzzy
+msgid "Room number"
+msgstr "Telefoonnummer"
+
+#: plugins/personal/generic/class_user.inc:1635
+#, fuzzy
+msgid "Telefon number"
+msgstr "Telefoonnummer"
+
+#: plugins/personal/generic/class_user.inc:1636
+#, fuzzy
+msgid "Pager number"
+msgstr "Telefoonnummer"
+
+#: plugins/personal/generic/class_user.inc:1637
+#, fuzzy
+msgid "Mobile number"
+msgstr "GSM nummer"
+
+#: plugins/personal/generic/class_user.inc:1638
+#, fuzzy
+msgid "Fax number"
+msgstr "Serienummer"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Adres thuis"
+
+#: plugins/personal/generic/class_user.inc:1645
+#, fuzzy
+msgid "Home phone number"
+msgstr "Telefoonnummer"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "Wachtwoord encryptie"
+
+#: plugins/personal/generic/class_user.inc:1648
+#, fuzzy
+msgid "User certificates"
+msgstr "Standaard certificaat"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Persoonlijke informatie"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Persoonlijk plaatje"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Verander plaatje"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Sjabloon naam"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Voorkeurstaal"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Telefoon privé"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Wachtwoord encryptie"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certificaten"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Bewerk certificaten"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Organisatie informatie"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Afdeling nr."
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Personeel nr."
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Kamer nr."
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Gebruik a.u.b. de telefoon tab"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Kies de subtree waaronder de gebruiker geplaatst wordt"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Selecteer een basis"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Gebruikersinstellingen"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Wachtwoord wissen"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Nieuw wachtwoord instellen"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Plaatje verwijderen"
+
+#: plugins/personal/generic/main.inc:115
+#, fuzzy
+msgid "You have no permission to set your password!"
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Algemene gebruikersinformatie"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"U heeft de manier waarop uw wachtwoord wordt opgeslagen in de LDAP database "
+"veranderd. Daarom moet u het wachtwoord op dit moment opnieuw invoeren. GOsa "
+"zal dan het wachtwoord versleutelen op de door u geselecteerde methode."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Standaard certificaat"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "S/MIME certificaat"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "PKCS12 certificaat"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+#, fuzzy
+msgid "Edit users POSIX settings"
+msgstr "Posix instellingen"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "verlopen"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "gratie tijd actief"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "actief"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#, fuzzy
+msgid "password not changeable"
+msgstr "actief, wachtwoord onveranderbaar"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+#, fuzzy
+msgid "password expired"
+msgstr "actief, wachtwoord verlopen"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automatisch"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"Het wachtwoord kan pas %s dag(en) na de laatste wijziging gewijzigd worden"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Het wachtwoord moet na %s dag(en) gewijzigd worden"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Blokkeer het account na %s dag(en) inactiviteit nadat het wachtwoord "
+"verlopen is"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Waarschuw de gebruiker %s dagen voordat het wachtwoord verloopt"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Gebruikersgroep"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Persoonlijke map"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+#, fuzzy
+msgid "shadowMin"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+#, fuzzy
+msgid "shadowMax"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+#, fuzzy
+msgid "shadowWarning"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+#, fuzzy
+msgid "shadowInactive"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+#, fuzzy
+msgid "POSIX account"
+msgstr "GLPI account"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "Gebruikers ID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+#, fuzzy
+msgid "Group ID"
+msgstr "Groep"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+#, fuzzy
+msgid "Force password change on login"
+msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+#, fuzzy
+msgid "Shadow min"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+#, fuzzy
+msgid "Shadow max"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+#, fuzzy
+msgid "Shadow warning"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+#, fuzzy
+msgid "Shadow inactive"
+msgstr "Schaduwen van andere sessie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+#, fuzzy
+msgid "Shadow expire"
+msgstr "Toon personen"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+#, fuzzy
+msgid "System trust model"
+msgstr "Systeem vertrouwen"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Primaire groep"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Status"
+
+#: plugins/personal/posix/generic.tpl:41
+#, fuzzy
+msgid "Last logon"
+msgstr "Achternaam"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Forceer UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Groep lidmaatschap"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Waarschuwing: NFS ondersteunt niet meer dan 16 groepen!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "Toon groepen"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Gebruikersgroep"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Account"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Selecteer de toe te voegen groepen"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Toon groepen van afdeling"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Toon overeenkomende groepen"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Reguliere expressie voor overeenkomende groepnamen"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Toon groepen van gebruiker"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Gebruikersnaam van wie de groepen getoond worden"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Toon servers"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Toon werkstations"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Toon terminals"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Posix instellingen"
+
+#: plugins/personal/posix/main.inc:142
+#, fuzzy
+msgid "POSIX settings"
+msgstr "Posix instellingen"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "Het wachtwoord moet bij de eerste aanmelding gewijzigd worden"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Wachtwoord verloopt op"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"U heeft succesvol uw wachtwoord veranderd. Denkt u eraan dat u alle "
+"programma's die dit wachtwoord gebruiken ook aanpast!"
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+#, fuzzy
+msgid "Password settings"
+msgstr "Gebruikersinstellingen"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Gebruik het veld hieronder om uw persoonlijke wachtwoord te veranderen. De "
+"veranderingen worden direct doorgevoerd. Onthoud het nieuwe wachtwoord a.u."
+"b. aangezien u niet in zult kunnen loggen zonder dit wachtwoord."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Wis velden"
+
+#: plugins/personal/password/class_password.inc:27
+#, fuzzy
+msgid "Change user password"
+msgstr "Verander wachtwoord"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "U moet uw huidige wachtwoord opgeven om door te kunnen gaan."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "Het nieuw ingevoerde wachtwoord is leeg."
+
+#: plugins/personal/password/class_password.inc:94
+#, fuzzy, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "Extern wachtwoord verander mechanisme rapporteerde een probleem:"
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr ""
+"Het wachtwoord dat u opgegeven heeft als uw huidige wachtwoord is niet "
+"correct."
+
+#: plugins/personal/password/class_password.inc:114
+#, fuzzy
+msgid "You have no permission to change your password."
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#: plugins/personal/password/class_password.inc:146
+#, fuzzy
+msgid "User password"
+msgstr "Wachtwoord wissen"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#: plugins/personal/password/nochange.tpl:6
+#, fuzzy
+msgid "You have no permission to change your password at this time"
+msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#: setup/class_setupStep_Feedback.inc:92
+#, fuzzy
+msgid "UNIX accounts/groups"
+msgstr "Account code"
+
+#: setup/class_setupStep_Feedback.inc:94
+#, fuzzy
+msgid "Samba management"
+msgstr "Systeembeheer"
+
+#: setup/class_setupStep_Feedback.inc:96
+#, fuzzy
+msgid "Mailsystem management"
+msgstr "Systeembeheer"
+
+#: setup/class_setupStep_Feedback.inc:98
+#, fuzzy
+msgid "FAX system administration"
+msgstr "Gebruikersbeheer"
+
+#: setup/class_setupStep_Feedback.inc:100
+#, fuzzy
+msgid "Asterisk administration"
+msgstr "Gebruikersbeheer"
+
+#: setup/class_setupStep_Feedback.inc:102
+#, fuzzy
+msgid "System inventory"
+msgstr "Inventaris verwijderen"
+
+#: setup/class_setupStep_Feedback.inc:104
+#, fuzzy
+msgid "System-/Configmanagement"
+msgstr "Systeembeheer"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Adresboek"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+#, fuzzy
+msgid "Get notifications or send feedback"
+msgstr "Secties voor deze versie"
+
+#: setup/class_setupStep_Feedback.inc:114
+#, fuzzy
+msgid "Notification and feedback"
+msgstr "Geen certificaat geinstalleerd"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+#, fuzzy
+msgid "Setup error"
+msgstr "Systeem status"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+#, fuzzy
+msgid "Please specify a valid email address."
+msgstr "Geef a.u.b. een geldige scriptnaam op."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+#, fuzzy
+msgid "Completed"
+msgstr "onvolledig"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+#, fuzzy
+msgid "Next"
+msgstr "tekst"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Samba Instellingen"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+#, fuzzy
+msgid "Samba SID"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:31
+#, fuzzy
+msgid "RID base"
+msgstr "Database"
+
+#: setup/setup_config2.tpl:46
+#, fuzzy
+msgid "Workstation container"
+msgstr "Werkstation naam"
+
+#: setup/setup_config2.tpl:61
+#, fuzzy
+msgid "Samba SID mapping"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:71
+#, fuzzy
+msgid "Timezone"
+msgstr "Tijdzone"
+
+#: setup/setup_config2.tpl:74
+#, fuzzy
+msgid "Please choose your preferred timezone here"
+msgstr "Voorkeurstaal"
+
+#: setup/setup_config2.tpl:96
+#, fuzzy
+msgid "Additional GOsa settings"
+msgstr "Programma instellingen"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+#, fuzzy
+msgid "Government mode"
+msgstr "naar map"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "E-mail instellingen"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "E-mail methode"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+#, fuzzy
+msgid "Vacation templates"
+msgstr "Werkstation sjabloon"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+#, fuzzy
+msgid "Snapshots / Undo"
+msgstr "Het opslaan van de telefoon is mislukt"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+#, fuzzy
+msgid "Enable snapshots"
+msgstr "Nagios account aanmaken"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+#, fuzzy
+msgid "Snapshot base"
+msgstr "Het opslaan van de telefoon is mislukt"
+
+#: setup/setup_frame.tpl:12
+#, fuzzy
+msgid "GOsa setup wizard"
+msgstr "GOsa help"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Installation"
+msgstr "Windows werkstation"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Setup"
+msgstr "Stel in"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+#, fuzzy
+msgid "Check again"
+msgstr "Controleer"
+
+#: setup/setup_migrate.tpl:37
+#, fuzzy
+msgid "Add required object classes to the LDAP base"
+msgstr "Toon FAI sjabloon objecten"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+#, fuzzy
+msgid "Current"
+msgstr "Nieuw FAI object aanmaken"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+#, fuzzy
+msgid "After migration"
+msgstr "Gebruikersbeheer"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+#, fuzzy
+msgid "Migrate"
+msgstr "Aanmaken"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Sluiten"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+#, fuzzy
+msgid "Move selected workstations"
+msgstr "Selecteer om werkstations te zien"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+#, fuzzy
+msgid "Hide changes"
+msgstr "Open-Xchange"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+#, fuzzy
+msgid "Show changes"
+msgstr "Toon pakketten"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+#, fuzzy
+msgid "Move selected users into this people tree"
+msgstr "Maak gebruiker aan met dit sjabloon"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Netatalk account aanmaken"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+#, fuzzy
+msgid "Reload"
+msgstr "Lezen"
+
+#: setup/setup_migrate.tpl:273
+#, fuzzy
+msgid "Abort"
+msgstr "Poort"
+
+#: setup/setup_migrate.tpl:275
+#, fuzzy
+msgid "Create a new GOsa administrator account"
+msgstr "Netatalk account aanmaken"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+#, fuzzy
+msgid "Password (again)"
+msgstr "Wachtwoord encryptie"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+#, fuzzy
+msgid "Refresh"
+msgstr "Referenties"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+#, fuzzy
+msgid "Write configuration file"
+msgstr "Configuratie bestand"
+
+#: setup/class_setupStep_Finish.inc:39
+#, fuzzy
+msgid "Finish - write the configuration file"
+msgstr "Configuratie bestand"
+
+#: setup/class_setupStep_Finish.inc:104
+#, fuzzy
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr "GOsa configuratie %s/gosa.conf is niet leesbaar. Geannuleerd."
+
+#: setup/class_setupStep_Finish.inc:106
+#, fuzzy
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "GOsa configuratie %s/gosa.conf is niet leesbaar. Geannuleerd."
+
+#: setup/class_setupStep_Finish.inc:115
+#, fuzzy, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Controleer dat de webserver het bestand kan lezen (zonder dat andere "
+"gebruikers dit kunnen) nadat u het bestand in de directory /etc/gosa "
+"geplaatst heeft. U wil misschien de volgende commando's uitvoeren om aan "
+"deze vereiste te voldoen: "
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+#, fuzzy
+msgid "Checking PHP version"
+msgstr "Controle op PHP versie (>=4.1.0)"
+
+#: setup/class_setupStep_Checks.inc:65
+#, fuzzy, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+"PHP moet minimaal versienummer 4.1.0 hebben. GOsa gebruikt bepaalde "
+"functionaliteit die in voorgaande versies niet goed of helemaal niet "
+"voorhanden is."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+#, fuzzy
+msgid "mbstring"
+msgstr "Samba Instellingen"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+#, fuzzy
+msgid "MySQL"
+msgstr "LDAP fout:"
+
+#: setup/class_setupStep_Checks.inc:121
+#, fuzzy
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"MySQL ondersteuning is nodig voor het lezen van GOfax rapporten uit "
+"databases."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+#, fuzzy
+msgid "compression module"
+msgstr "Toegangsopties"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+#, fuzzy
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"'register_globals' is een PHP mechanisme om alle globale variabelen te "
+"registreren zodat deze toegankelijk zijn voor scripts zonder dat de scope "
+"veranderd hoeft te worden. Dit is een veiligheidsrisico. GOsa zal in beide "
+"modi draaien."
+
+#: setup/class_setupStep_Checks.inc:182
+#, fuzzy
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "Controle of 'register_globals' ingesteld staat op 'off'"
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+#, fuzzy
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"PHP gebruikt deze waarde voor de garbage collector om oude sessies op te "
+"ruimen. Door deze waarde op een dag te zetten, voorkomt u dat sessie en "
+"cookie informatie verloren gaan, voordat deze daadwerkelijk ongeldig zijn."
+
+#: setup/class_setupStep_Checks.inc:192
+#, fuzzy
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Om GOsa zonder problemen te gebruiken, moet de session.auto_register optie "
+"in uw php.ini ingesteld zijn op 'Off'."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+#, fuzzy
+msgid "Off"
+msgstr "Offline"
+
+#: setup/class_setupStep_Checks.inc:200
+#, fuzzy
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Om GOsa zonder problemen te gebruiken, moet de session.auto_register optie "
+"in uw php.ini ingesteld zijn op 'Off'."
+
+#: setup/class_setupStep_Checks.inc:201
+#, fuzzy
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Om GOsa zonder problemen te gebruiken, moet de session.auto_register optie "
+"in uw php.ini ingesteld zijn op 'Off'."
+
+#: setup/class_setupStep_Checks.inc:208
+#, fuzzy
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa heeft tenminste 16MB geheugen nodig. Minder geheugen kan diverse "
+"onvoorspelbare fouten opleveren!.Verhoog deze waarde nog verder voor zeer "
+"grote omgevingen."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+#, fuzzy
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Deze Optie definieert Uitvoer afhandeling. Zet deze Optie uit om "
+"snelheiswinst te behalen"
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+#, fuzzy
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+"De uitvoer tijd moet minimaal 30 seconden zijn, omdat sommige acties lang "
+"kunnen duren."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+#, fuzzy
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Verhoog de server veiligheid door 'expose_php' op 'Off' in te stellen. PHP "
+"zal dan geen enkele informatie over de Server die u gebruikt weergeven."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+#, fuzzy
+msgid "On"
+msgstr "Open"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Verhoog de server veiligheid door 'magic_quotes_gpc op 'On' in te stellen."
+"PHP zal dan alle aanhalingstekens in strings omzetten."
+
+#: setup/class_setupStep_Checks.inc:241
+#, fuzzy
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr "Controle of 'register_globals' ingesteld staat op 'off'"
+
+#: setup/class_setupStep_Checks.inc:248
+#, fuzzy
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Verhoog de server veiligheid door 'magic_quotes_gpc op 'On' in te stellen."
+"PHP zal dan alle aanhalingstekens in strings omzetten."
+
+#: setup/class_setupStep_Checks.inc:249
+#, fuzzy
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Om GOsa zonder problemen te gebruiken, moet de session.auto_register optie "
+"in uw php.ini ingesteld zijn op 'Off'."
+
+#: setup/class_setupStep_Checks.inc:259
+#, fuzzy
+msgid "Configuration writeable"
+msgstr "Configuratie bestand"
+
+#: setup/class_setupStep_Checks.inc:260
+#, fuzzy
+msgid "The configuration file can't be written"
+msgstr "Configuratie bestand"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+#, fuzzy
+msgid "GOsa core settings"
+msgstr "E-mail instellingen"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "Toon groepen van gebruiker"
+
+#: setup/setup_config3.tpl:18
+#, fuzzy
+msgid "Display summary in listings"
+msgstr "Toon overeenkomende macro's"
+
+#: setup/setup_config3.tpl:30
+#, fuzzy
+msgid "Honour administrative units"
+msgstr "Groepen beheer"
+
+#: setup/setup_config3.tpl:42
+#, fuzzy
+msgid "Smarty compile directory"
+msgstr "Persoonlijke map"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+#, fuzzy
+msgid "Path for PPD storage"
+msgstr "Wachtwoord encryptie"
+
+#: setup/setup_config3.tpl:77
+#, fuzzy
+msgid "Path for kiosk profile storage"
+msgstr "Kiosk profiel instellingen"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+#, fuzzy
+msgid "Mail queue script"
+msgstr "Inlogscript"
+
+#: setup/setup_config3.tpl:134
+#, fuzzy
+msgid "Notification script"
+msgstr "Geen certificaat geinstalleerd"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr ""
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+#, fuzzy
+msgid "Daemon timeout"
+msgstr "Omlaag"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+#, fuzzy
+msgid "Login attribute"
+msgstr "Telefoon attributen "
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+#, fuzzy
+msgid "Warn if session is not encrypted"
+msgstr "De sessie zal niet versleuteld zijn."
+
+#: setup/setup_config3.tpl:257
+#, fuzzy
+msgid "Remember dialog filter settings"
+msgstr "Algemene wachtrij instellingen"
+
+#: setup/setup_config3.tpl:269
+#, fuzzy
+msgid "Session lifetime"
+msgstr "Er is een sessie conflict gedetecteerd"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+#, fuzzy
+msgid "Show PHP errors"
+msgstr "PHP fout"
+
+#: setup/setup_config3.tpl:294
+#, fuzzy
+msgid "Maximum LDAP query time"
+msgstr "E-mail grootte"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+#, fuzzy
+msgid "Debug level"
+msgstr "Log prioriteit"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+#, fuzzy
+msgid "Disabled"
+msgstr "gedeactiveerd"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+#, fuzzy
+msgid "Enabled"
+msgstr "gedeactiveerd"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "E-mail adres"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "Ja"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "Nee"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+#, fuzzy
+msgid "Features"
+msgstr "Toekomstig"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+#, fuzzy
+msgid "Create your configuration file"
+msgstr "Configuratie bestand"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Systeem configuratie"
+
+#: setup/setup_finish.tpl:33
+#, fuzzy
+msgid "Status: "
+msgstr "Status"
+
+#: setup/class_setupStep_Ldap.inc:53
+#, fuzzy
+msgid "LDAP setup"
+msgstr "LDAP server"
+
+#: setup/class_setupStep_Ldap.inc:54
+#, fuzzy
+msgid "LDAP connection setup"
+msgstr "Bel..."
+
+#: setup/class_setupStep_Ldap.inc:55
+#, fuzzy
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"De volgende velden definiëren de basis configuratie van GOsa's gedrag en "
+"beïnvloeden diverse eigenschappen in uw hoofd configuratie."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#: setup/class_setupStep_Ldap.inc:107
+#, fuzzy, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#: setup/class_setupStep_Ldap.inc:112
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#: setup/class_setupStep_Ldap.inc:113
+#, fuzzy
+msgid "Please specify user and password!"
+msgstr "Geef a.u.b. uw wachtwoord op!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, fuzzy, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+#, fuzzy
+msgid "LDAP connection"
+msgstr "Max. verbrekingsduur"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Naam van de locatie"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "Verbindingings URL"
+
+#: setup/setup_ldap.tpl:45
+#, fuzzy
+msgid "TLS connection"
+msgstr "Bel..."
+
+#: setup/setup_ldap.tpl:69
+#, fuzzy
+msgid "Authentication"
+msgstr "Nagios authenticatie"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "Beheerders DN"
+
+#: setup/setup_ldap.tpl:78
+#, fuzzy
+msgid "Select user"
+msgstr "Verwijder gebruiker"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Beheerders wachtwoord"
+
+#: setup/setup_ldap.tpl:101
+#, fuzzy
+msgid "Schema based settings"
+msgstr "Samba Instellingen"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+#, fuzzy
+msgid "Current status"
+msgstr "Systeem status"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+#, fuzzy
+msgid "LDAP inspection"
+msgstr "PHP configuratie inspectie"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+#, fuzzy
+msgid "Checking for root object"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#: setup/class_setupStep_Migrate.inc:153
+#, fuzzy
+msgid "Checking for invisible departments"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: setup/class_setupStep_Migrate.inc:158
+#, fuzzy
+msgid "Checking for invisible users"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+#, fuzzy
+msgid "Checking for super administrator"
+msgstr "Zoeken naar enkele additionele programma's"
+
+#: setup/class_setupStep_Migrate.inc:171
+#, fuzzy
+msgid "Checking for users outside the people tree"
+msgstr "Zoeken naar CUPS module"
+
+#: setup/class_setupStep_Migrate.inc:177
+#, fuzzy
+msgid "Checking for groups outside the groups tree"
+msgstr "Zoeken naar CUPS module"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+#, fuzzy
+msgid "Checking for duplicated UID numbers"
+msgstr "Zoeken naar functie %s"
+
+#: setup/class_setupStep_Migrate.inc:196
+#, fuzzy
+msgid "Checking for duplicate GID numbers"
+msgstr "Zoeken naar functie %s"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "Zoeken naar iconv ondersteuning"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "Zoeken naar CUPS module"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "Zoeken naar functie %s"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+#, fuzzy
+msgid "LDAP query failed"
+msgstr "De database zoekopdracht is mislukt"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Er is een dubbele waarde gevonden voor record type '%s'."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Er is een dubbele waarde gevonden voor record type '%s'."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Mislukt"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, fuzzy, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "U staat op het punt de invoer '%s' te kopieren."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+#, fuzzy
+msgid "Move"
+msgstr "Modus"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+#, fuzzy
+msgid "Migration error"
+msgstr "Aanmaken"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, fuzzy, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Ga naar basis afdelingen"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Netatalk account aanmaken"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Netatalk account aanmaken"
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Input error"
+msgstr "PHP fout"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Password error"
+msgstr "Wachtwoord verloopt op"
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Provided passwords do not match!"
+msgstr ""
+"Het nieuwe wachtwoord en het herhaalde wachtwoord komen niet met elkaar "
+"overeen!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Specify a valid user ID!"
+msgstr "Geef a.u.b. een geldige gebruikersnaam op!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#, fuzzy
+msgid "Cannot move users to the requested department!"
+msgstr "Ga naar de afdeling van de gebruiker"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+#, fuzzy
+msgid "Try to create root object"
+msgstr "Nieuw FAI object aanmaken"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, fuzzy, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Toon FAI sjabloon objecten"
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "Controleer a.u.b. de gebruikersnaam/wachtwoord combinatie."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, fuzzy, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Verplaatsen van %s naar %s"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Log DB gebruiker"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+#, fuzzy
+msgid "Create a basic, single site configuration"
+msgstr "FAX database"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+#, fuzzy
+msgid "Find every possible configuration error"
+msgstr "Configuratie bestand"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+#, fuzzy
+msgid "To continue..."
+msgstr "Installatie vervolg..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+#, fuzzy
+msgid "GOsa settings 3/3"
+msgstr "Gebruikersinstellingen"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+#, fuzzy
+msgid "Session lifetime must be a numeric value!"
+msgstr "Toekomstige dagen moet een waarde bevatten."
+
+#: setup/class_setupStep_Config3.inc:216
+#, fuzzy
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Toekomstige dagen moet een waarde bevatten."
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "PHP setup configuration"
+msgstr "FAX database"
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "show information"
+msgstr "Persoonlijke informatie"
+
+#: setup/setup_schema.tpl:3
+#, fuzzy
+msgid "Schema specific settings"
+msgstr "Samba Instellingen"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+#, fuzzy
+msgid "Check status"
+msgstr "Systeem status"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+#, fuzzy
+msgid "Schema check failed"
+msgstr "Het opslaan van de telefoon is mislukt"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+#, fuzzy
+msgid "Theme"
+msgstr "MIME"
+
+#: setup/setup_config1.tpl:15
+#, fuzzy
+msgid "Apache"
+msgstr "Cache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+#, fuzzy
+msgid "People and group storage"
+msgstr "OU voor gebruikers opslag"
+
+#: setup/setup_config1.tpl:30
+#, fuzzy
+msgid "People DN attribute"
+msgstr "DN atribuut voor gebruikers"
+
+#: setup/setup_config1.tpl:41
+#, fuzzy
+msgid "People storage subtree"
+msgstr "OU voor gebruikers opslag"
+
+#: setup/setup_config1.tpl:50
+#, fuzzy
+msgid "Group storage subtree"
+msgstr "OU voor groepen opslag"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+#, fuzzy
+msgid "Automatic UIDs"
+msgstr "Automatische modusregels"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+#, fuzzy
+msgid "Number base for people/groups"
+msgstr "ID basis voor gebruikers/groepen"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+#, fuzzy
+msgid "Password encryption algorithm"
+msgstr "Encryptie algoritme"
+
+#: setup/setup_config1.tpl:151
+#, fuzzy
+msgid "Password restrictions"
+msgstr "Wachtwoord verloopt op"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+#, fuzzy
+msgid "Password change hook"
+msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+#, fuzzy
+msgid "Use account expiration"
+msgstr "Het account verloopt op"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa ondersteunt diverse encryptie types voor uw wachtwoorden. Normaliter is "
+"dit aanpasbaar via gebruikerssjablonen. Hier kunt u echter een standaard te "
+"gebruiken methode opgeven."
+
+#: setup/setup_config1.tpl:222
+#, fuzzy
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa werkt altijd als een beheerder en verzorgt het toegangsbeheer intern. "
+"Dit is een tijdelijke oplossing totdat directory ACIs volledig "
+"geïmplementeerd zijn in OpenLDAP. Om dit te kunnen laten werken is een "
+"beheerders DN en het bijbehorende wachtwoord nodig."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Sommige LDAP parameters zijn aan te passen en bepalen de locaties waar GOsa "
+"gebruikers en groepen opslaat, evenals de manier waarop gebruikers "
+"aangemaakt worden. Controleer of de waardes hieronder in uw behoeften "
+"voorzien."
+
+#: setup/setup_config1.tpl:224
+#, fuzzy
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa heeft modulaire ondersteuning voor diverse E-mail methodes. Deze "
+"methodes leveren toegang tot gebruikers mailboxen en algemene afhandeling "
+"voor quota's. U kunt de dummy module kiezen om alle E-mail instellingen "
+"ongewijzigd te laten."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+#, fuzzy
+msgid "LDAP schema check"
+msgstr "Ldap server"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+#, fuzzy
+msgid "Welcome"
+msgstr "Welkom %s!"
+
+#: setup/class_setupStep_Welcome.inc:39
+#, fuzzy
+msgid "The welcome message"
+msgstr "Verwijder dit bericht"
+
+#: setup/class_setupStep_Welcome.inc:40
+#, fuzzy
+msgid "Welcome to GOsa setup wizard"
+msgstr "Welkom bij het GOsa installatie programma!"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+#, fuzzy
+msgid "License"
+msgstr "Regel"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+#, fuzzy
+msgid "Please select the preferred language"
+msgstr "Voorkeurstaal"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+#, fuzzy
+msgid "Please select your preferred language here"
+msgstr "Voorkeurstaal"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+#, fuzzy
+msgid "GOsa settings 1/3"
+msgstr "Gebruikersinstellingen"
+
+#: setup/class_setupStep_Config1.inc:76
+#, fuzzy
+msgid "GOsa generic settings"
+msgstr "Algemene wachtrij instellingen"
+
+#: setup/class_setupStep_Config1.inc:118
+#, fuzzy, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "De sieve poort dient nummeriek te zijn."
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "OU voor gebruikers opslag"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "OU voor groepen opslag"
+
+#: setup/class_setupStep_Config1.inc:130
+#, fuzzy
+msgid "Uid base must be numeric"
+msgstr "Timeout dient nummeriek te zijn"
+
+#: setup/class_setupStep_Config1.inc:134
+#, fuzzy
+msgid "The given password minimum length is not numeric."
+msgstr "De sieve poort dient nummeriek te zijn."
+
+#: setup/class_setupStep_Config1.inc:137
+#, fuzzy
+msgid "The given password differ value is not numeric."
+msgstr "De sieve poort dient nummeriek te zijn."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+#, fuzzy
+msgid "GOsa settings 2/3"
+msgstr "Gebruikersinstellingen"
+
+#: setup/class_setupStep_Config2.inc:82
+#, fuzzy
+msgid "Customize special parameters"
+msgstr "Controleer parameter"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+#, fuzzy
+msgid "Language setup"
+msgstr "Taal"
+
+#: setup/class_setupStep_Language.inc:42
+#, fuzzy
+msgid "This step allows you to select your preferred language."
+msgstr ""
+"Deze dialoog maakt het mogelijk om een apparaat te verbinden aan de computer "
+"die u momenteel aan het bewerken bent."
+
+#: setup/class_setupStep_Language.inc:47
+#, fuzzy
+msgid "Automatic"
+msgstr "automatisch"
+
+#, fuzzy
+#~ msgid "Choose a base"
+#~ msgstr "Selecteer een basis"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Selecteer de subtree waaronder deze groep geplaatst wordt"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "Selecteer de subtree waaronder deze afdeling geplaatst wordt"
+
+#, fuzzy
+#~ msgid "Show %s"
+#~ msgstr "Toon groepen"
+
+#, fuzzy
+#~ msgid "people"
+#~ msgstr "Toon personen"
+
+#, fuzzy
+#~ msgid "printer"
+#~ msgstr "printers"
+
+#~ msgid "Select users to add"
+#~ msgstr "Selecteer de toe te voegen gebruikers"
+
+#~ msgid "Select to see servers"
+#~ msgstr "Selecteer om servers te zien"
+
+#~ msgid "Search within subtree"
+#~ msgstr "Zoek binnen subtree"
+
+#~ msgid "Display users of department"
+#~ msgstr "Toon gebruikers van afdeling"
+
+#~ msgid "Display users matching"
+#~ msgstr "Toon overeenkomende gebruikers"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "Reguliere expressie voor overeenkomende gebruikersnamen"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Lijst met gebruikers"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Naam"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Achternaam"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Lijst met groepen"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "Lijst met groepen"
+
+#, fuzzy
+#~ msgid "Use"
+#~ msgstr "Gebruiker"
+
+#, fuzzy
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Filter regels met deze syntax"
+
+#, fuzzy
+#~ msgid "MySQL error"
+#~ msgstr "LDAP fout:"
+
+#, fuzzy
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "Kan niet verbinden met de database server!"
+
+#~ msgid "Submit department"
+#~ msgstr "Verwerk afdeling"
+
+#~ msgid "edit"
+#~ msgstr "Bewerk"
+
+#~ msgid "delete"
+#~ msgstr "Verwijder"
+
+#, fuzzy
+#~ msgid "Number of listed object groups"
+#~ msgstr "Naam van objectgroepen"
+
+#, fuzzy
+#~ msgid "Number of listed departments"
+#~ msgstr "Naam van de afdeling"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr ""
+#~ "Selecteer om de groepen te zien die primaire groepen van gebruikers zijn"
+
+#, fuzzy
+#~ msgid "primary groups"
+#~ msgstr "Primaire groep"
+
+#, fuzzy
+#~ msgid "samba groups mappings"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "samba groups"
+#~ msgstr "Samba groep"
+
+#, fuzzy
+#~ msgid "application settings"
+#~ msgstr "programma's"
+
+#, fuzzy
+#~ msgid "mail settings"
+#~ msgstr "E-mail instellingen"
+
+#, fuzzy
+#~ msgid "mail groups"
+#~ msgstr "Toon E-mail groepen"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr ""
+#~ "Selecteer om normale groepen die alleen functionele aspecten hebben te "
+#~ "zien"
+
+#, fuzzy
+#~ msgid "functional groups"
+#~ msgstr "Toon functionele groepen"
+
+#, fuzzy
+#~ msgid "Not allowed"
+#~ msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#, fuzzy
+#~ msgid "Number of listed groups"
+#~ msgstr "Naam van de groep"
+
+#, fuzzy
+#~ msgid "group"
+#~ msgstr "groepen"
+
+#~ msgid "User administration"
+#~ msgstr "Gebruikersbeheer"
+
+#, fuzzy
+#~ msgid "templates"
+#~ msgstr "Sjablonen"
+
+#, fuzzy
+#~ msgid "GOsa object"
+#~ msgstr "Object"
+
+#, fuzzy
+#~ msgid "functional users"
+#~ msgstr "Toon functionele gebruikers"
+
+#, fuzzy
+#~ msgid "POSIX users"
+#~ msgstr "Posix instellingen"
+
+#, fuzzy
+#~ msgid "samba users"
+#~ msgstr "Windows gebruikers"
+
+#, fuzzy
+#~ msgid "proxy users"
+#~ msgstr "Toon Proxy gebruikers"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Toon Proxy gebruikers"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Bewerk UNIX eigenschappen"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "Bewerk Fax eigenschappen"
+
+#~ msgid "Create user with this template"
+#~ msgstr "Maak gebruiker aan met dit sjabloon"
+
+#, fuzzy
+#~ msgid "user"
+#~ msgstr "gebruikers"
+
+#~ msgid "password"
+#~ msgstr "wachtwoord"
+
+#~ msgid "Delete user"
+#~ msgstr "Verwijder gebruiker"
+
+#, fuzzy
+#~ msgid "Number of listed users"
+#~ msgstr "Naam van de afdeling"
+
+#, fuzzy
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#, fuzzy
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#, fuzzy
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "U heeft geen toestemming om uw wachtwoord te veranderen."
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Naam van de afdeling"
+
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "Reguliere expressie voor overeenkomende afdelingen"
+
+#~ msgid "Department management"
+#~ msgstr "Afdeling beheer"
+
+#, fuzzy
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "Dit omvat <b>alle</b> systeem en configuratie informatie. Verzeker uzelf "
+#~ "hiervan, aangezien er geen manier is voor GOsa om deze gegevens terug te "
+#~ "halen."
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "Rechten"
+
+#~ msgid "Summary"
+#~ msgstr "Samenvatting"
+
+#, fuzzy
+#~ msgid "Display acls matching"
+#~ msgstr "Toon overeenkomende macro's"
+
+#, fuzzy
+#~ msgid "Edit acl role"
+#~ msgstr "Bewerk share"
+
+#, fuzzy
+#~ msgid "Edit acl"
+#~ msgstr "Bewerk klasse"
+
+#, fuzzy
+#~ msgid "Delete acl"
+#~ msgstr "Verwijder klasse"
+
+#, fuzzy
+#~ msgid "Gender"
+#~ msgstr "Afzender"
+
+#, fuzzy
+#~ msgid "Logging options"
+#~ msgstr "Onbekend"
+
+#, fuzzy
+#~ msgid "Syslog"
+#~ msgstr "Systeem logs"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "Toon E-mail groepen"
+
+#, fuzzy
+#~ msgid "Enable DNS extension"
+#~ msgstr "Verwijder printer mogelijkheden"
+
+#, fuzzy
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Verwijder printer mogelijkheden"
+
+#, fuzzy
+#~ msgid "Enable mime type management"
+#~ msgstr "Systeembeheer"
+
+#, fuzzy
+#~ msgid "Enable FAI release management"
+#~ msgstr "Blokkeerlijst beheer"
+
+#, fuzzy
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Netatalk account beheren"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Aanmaken"
+
+#, fuzzy
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "Dit account heeft Unix mogelijkheden ingeschakeld. Om deze te verwijderen "
+#~ "moet u eerst het samba / omgevings account verwijderen."
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "MySQL ondersteuning is nodig voor het lezen van GOfax rapporten uit "
+#~ "databases."
+
+#, fuzzy
+#~ msgid "Role name"
+#~ msgstr "Hernoemen"
+
+#, fuzzy
+#~ msgid "Role description"
+#~ msgstr "Eenheid omschrijving"
+
+#, fuzzy
+#~ msgid "Override sudo role ou"
+#~ msgstr "! onbekend id"
+
+#~ msgid "Terminals"
+#~ msgstr "Terminals"
+
+#~ msgid "Action"
+#~ msgstr "Actie"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "Selecteer een basis"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "Toevoegen"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "Verwijderen"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "U staat op het punt de hele LDAP subtree onder '%s' te verwijderen."
+
+#~ msgid "department"
+#~ msgstr "afdeling"
+
+#, fuzzy
+#~ msgid "Delete acl role"
+#~ msgstr "Verwijder gebruiker"
+
+#, fuzzy
+#~ msgid "Steps"
+#~ msgstr "Systemen"
+
+#, fuzzy
+#~ msgid "Move object"
+#~ msgstr "Lidmaatschap objecten"
+
+#, fuzzy
+#~ msgid "Remove object"
+#~ msgstr "Lidmaatschap objecten"
+
+#, fuzzy
+#~ msgid "Repository"
+#~ msgstr "Opnieuw proberen"
+
+#, fuzzy
+#~ msgid "DAK repository"
+#~ msgstr "Directory"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "Verwijder gebruiker"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "Import was succesvol"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "E-mail opties"
+
+#, fuzzy
+#~ msgid "Hour"
+#~ msgstr "uur"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "dag"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "maand"
+
+#, fuzzy
+#~ msgid "Year"
+#~ msgstr "Zoeken"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "Wachtwoord"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "Programmanaam"
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "Controleer parameter"
+
+#~ msgid "Birthday"
+#~ msgstr "Geboortedatum"
+
+#~ msgid "Language"
+#~ msgstr "Taal"
+
+#~ msgid "User list of %s on %s"
+#~ msgstr "Gebruikerslijst van %s in %s "
+
+#~ msgid "Groups of %s on %s"
+#~ msgstr "Groepen van %s in %s"
+
+#~ msgid "Servers"
+#~ msgstr "Servers"
+
+#~ msgid "Computers"
+#~ msgstr "Computers"
+
+#~ msgid "Common name"
+#~ msgstr "Algemene naam"
+
+#~ msgid "Server name"
+#~ msgstr "Servernaam"
+
+#~ msgid "Servers of %s on %s"
+#~ msgstr "Servers van %s in %s"
+
+#~ msgid "Display name"
+#~ msgstr "Getoonde naam"
+
+#~ msgid "Home phone"
+#~ msgstr "Telefoon Privé"
+
+#~ msgid "Initials"
+#~ msgstr "Initialen"
+
+#~ msgid "Mobile phone"
+#~ msgstr "GSM nummer"
+
+#~ msgid "City"
+#~ msgstr "Plaats"
+
+#~ msgid "Function"
+#~ msgstr "Functie"
+
+#~ msgid "Adressbook"
+#~ msgstr "Adresboek"
+
+#~ msgid "Adressbook of %s on %s"
+#~ msgstr "Adresboek van %s in %s"
+
+#~ msgid "Common Name"
+#~ msgstr "Algemene naam"
+
+#~ msgid "Day of birth"
+#~ msgstr "Geboortedatum"
+
+#~ msgid "Email address"
+#~ msgstr "E-mail adres"
+
+#~ msgid "Organizational unit"
+#~ msgstr "Afdeling"
+
+#~ msgid "Postal Code"
+#~ msgstr "Postcode"
+
+#~ msgid "Title"
+#~ msgstr "Titel"
+
+#~ msgid "Full"
+#~ msgstr "Volledig"
+
+#~ msgid "Computers of %s on %s"
+#~ msgstr "Computers van %s in %s"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr ""
+#~ "U heeft geen toestemming om een gebruiker aan te maken onder deze 'Basis'."
+
+#~ msgid "Could not connect to database server!"
+#~ msgstr "Kan niet verbinden met de database server!"
+
+#~ msgid "Could not select database!"
+#~ msgstr "De opgegeven database kon niet geselecteerd worden!"
+
+#~ msgid "Database query failed!"
+#~ msgstr "De database zoekopdracht is mislukt"
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "Lijst met gebruikers"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "Reguliere expressie voor overeenkomende groepnamen"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "Reguliere expressie voor overeenkomende objectnamen"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "Naam van de groep"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "Achternaam"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "Windows gebruikers"
+
+#, fuzzy
+#~ msgid "sudo role"
+#~ msgstr "! onbekend id"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "Waarschuwing"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "printers"
+
+#, fuzzy
+#~ msgid "lists"
+#~ msgstr "klasse"
+
+#, fuzzy
+#~ msgid "Invalid"
+#~ msgstr "ongeldig"
+
+#, fuzzy
+#~ msgid "Sudo role"
+#~ msgstr "! onbekend id"
+
+#, fuzzy
+#~ msgid "Host"
+#~ msgstr "Inhakers"
+
+#, fuzzy
+#~ msgid "Command"
+#~ msgstr "en"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "Windows gebruikers"
+
+#, fuzzy
+#~ msgid "Available options"
+#~ msgstr "Beschikbare programma's"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "Groepen beheer"
+
+#, fuzzy
+#~ msgid "Flags"
+#~ msgstr "klasse"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "Systeembeheer"
+
+#, fuzzy
+#~ msgid "Checking for LDAP support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr "Dit is hoofd module die GOsa nodig heeft en is daarom noodzakelijk."
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "Zoeken naar gettext ondersteuning"
+
+#, fuzzy
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr ""
+#~ "Gettext ondersteuning is vereist voor ondersteuning van meerdere talen in "
+#~ "GOsa."
+
+#~ msgid "Checking for iconv support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is used by GOsa to convert samba munged dial informations and "
+#~ "is therefore required. "
+#~ msgstr ""
+#~ "Deze module wordt gebruikt door GOsa om samba munged dial informatie "
+#~ "(terminal server) te converteren en is daarom vereist."
+
+#, fuzzy
+#~ msgid "Checking for mhash support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid "Checking for IMAP support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr ""
+#~ "De IMAP module is benodigd om met de IMAP server te communiceren. Het "
+#~ "ontvangt status informatie, maakt E-mail gebruikers aan en verwijdert E-"
+#~ "mail gebruikers."
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "Zoeken naar gettext ondersteuning"
+
+#, fuzzy
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "Controle op getacl in imap"
+
+#, fuzzy
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "De getacl ondersteuning is nodig voor gedeelde map permissies. De "
+#~ "standaard IMAP module is niet in staat om acl's te lezen. U heeft een "
+#~ "recente PHP versie nodig voor deze mogelijkheid."
+
+#, fuzzy
+#~ msgid "Checking for MySQL support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr ""
+#~ "Het beheren van gebruikers in kerberos vereist de kadm5 module welke via "
+#~ "het PEAR netwerk te downloaden is."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr ""
+#~ "Het beheren van gebruikers in kerberos vereist de kadm5 module welke via "
+#~ "het PEAR netwerk te downloaden is."
+
+#, fuzzy
+#~ msgid "Checking for SNMP support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid ""
+#~ "The simple network management protocol is needed to get status "
+#~ "information from clients."
+#~ msgstr ""
+#~ "Het Simple Network Management Protocol (SNMP) is vereist voor werkstation "
+#~ "monitoring."
+
+#, fuzzy
+#~ msgid "Checking for CUPS support"
+#~ msgstr "Zoeken naar iconv ondersteuning"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "U moet de CUPS module installeren om beschikbare printers via het IPP "
+#~ "protocol te kunnen aflezen i.p.v. via printcap bestanden."
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "Zoeken naar het fping programma"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr ""
+#~ "Het fping programma wordt alleen gebruikt indien u een thin client "
+#~ "gebaseerde terminal omgeving heeft draaien."
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr ""
+#~ "Het fping programma wordt alleen gebruikt indien u een thin client "
+#~ "gebaseerde terminal omgeving heeft draaien."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr ""
+#~ "Om Samba 2.x/3.x te gebruiken moet u enkele additionele pakketten "
+#~ "installeren om wachtwoord hashes te genereren"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr ""
+#~ "Om Samba 2.x/3.x te gebruiken moet u enkele additionele pakketten "
+#~ "installeren om wachtwoord hashes te genereren"
+
+#, fuzzy
+#~ msgid "Choose subtree to place %s in"
+#~ msgstr "Kies de subtree waaronder de gebruiker geplaatst wordt"
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "Toon groepen die gebruikers bevatten"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "servers"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "Toon Samba gebruikers"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "functie"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Posix"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "man"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "Proxy"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "Samenvatting"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "programma's"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "Selecteer om groepen die gebruikers bevatten te tonen"
+
+#, fuzzy
+#~ msgid "Workstations"
+#~ msgstr "Werkstation"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "Telefoon"
+
+#~ msgid "Click here to Change your password"
+#~ msgstr "Klik hier om uw wachtwoord te veranderen."
+
+#~ msgid "Can't open specified file, check accessibility and or existence"
+#~ msgstr ""
+#~ "Kan het opgegeven bestand niet openen. Controleer of het bestand bestaat "
+#~ "en toegankelijk is."
+
+#~ msgid "Can't read specified certificate / or empty string given"
+#~ msgstr ""
+#~ "Kan het opgegeven certificaat niet lezen of er is een lege string "
+#~ "opgegeven."
+
+#~ msgid "Can't load certificate, possibly unsupported format (use PEM/DER) "
+#~ msgstr ""
+#~ "Kan het certificaat niet laden. Mogelijk is een niet ondersteund formaat "
+#~ "gebruikt (gebruik PEM/DER)."
+
+#~ msgid "The Format must be PEM, to output certificate informations"
+#~ msgstr "Het formaat moet PEM zijn om certificaat informatie te tonen"
+
+#~ msgid "Can't create/open File"
+#~ msgstr "Kan bestand niet aanmaken/openen"
+
+#~ msgid "LDAP error:"
+#~ msgstr "LDAP fout:"
+
+#~ msgid ""
+#~ "Problems with the LDAP server mean that you probably lost the last "
+#~ "changes. Please check your LDAP setup for possible errors and try again."
+#~ msgstr ""
+#~ "Problemen met de LDAP server betekenen meestal dat de laatste wijzigingen "
+#~ "verloren gegaan zijn. Controleer uw LDAP instellingen voor mogelijke "
+#~ "fouten en probeer het opnieuw."
+
+#~ msgid ""
+#~ "Please check your input and fix the error. Press 'OK' to close this "
+#~ "message box."
+#~ msgstr ""
+#~ "Controleer uw invoer a.u.b. en verbeter de fout. Druk 'OK' om dit "
+#~ "berichtvenster te sluiten."
+
+#~ msgid "You are not allowed to change your password at this time"
+#~ msgstr "U heeft momenteel geen toestemming om uw wachtwoord te veranderen"
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "Serienummer"
+
+#, fuzzy
+#~ msgid "Service infrastructure"
+#~ msgstr "Zoek binnen subtree"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "Het veranderen van het wachtwoord is niet toegestaan"
+
+#~ msgid "You are not allowed to set this users password!"
+#~ msgstr ""
+#~ "U heeft geen toestemming om het wachtwoord van deze gebruiker veranderen!"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "Verwijder"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "Verwijder"
+
+#~ msgid "User List of %s on %s"
+#~ msgstr "Gebruikerslijst van %s in %s"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "Rechten"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "U heeft geen toestemming om deze macro te verwijderen!"
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "U heeft geen toestemming om uw wachtwoord te veranderen!"
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "Configuratie bestand"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "Configuratie bestand"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "Wachtwoord verloopt op"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "Configuratie bestand"
+
+#, fuzzy
+#~ msgid "Anonymous bind failed on server '%s'."
+#~ msgstr "Gebruikers inlog mislukt. De LDAP server meldt: '%s'."
+
+#~ msgid "New Password"
+#~ msgstr "Nieuw wachtwoord"
+
+#~ msgid "Change Password"
+#~ msgstr "Wachtwoord veranderen"
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "Kan bestand '%s' niet aanmaken."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "Kan bestand '%s' niet aanmaken."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "Kan bestand '%s' niet aanmaken."
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "Kan bestand '%s' niet aanmaken."
+
+#, fuzzy
+#~ msgid "Entry with id '%s' not found."
+#~ msgstr "Het opslaan van de printer is mislukt"
+
+#, fuzzy
+#~ msgid "Can't set priority for ID '%s'. ID does not exist."
+#~ msgstr "Pakketbestand '%s' bestaat niet."
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "Selecteer om sjabloon pseudo gebruikers te zien"
+
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr "Selecteer om gebruikers te zien die alleen een GOsa object hebben"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr "Selecteer om gebruikers te zien die POSIX instellingen hebben"
+
+#~ msgid "Show unix users"
+#~ msgstr "Toon Unix gebruikers"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr "Selecteer om gebruikers te zien die E-mail instellingen hebben"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "Selecteer om gebruikers te zien die Samba instellingen hebben"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr "Selecteer om gebruikers te zien die Proxy instellingen hebben"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr "Selecteer om groepen te zien die Samba groep verbindingen hebben"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr "Selecteer om groepen te zien die programma's geconfigureerd hebben"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr "Selecteer om groepen te zien die E-mail instellingen hebben"
+
+#, fuzzy
+#~ msgid "acl"
+#~ msgstr "Annuleren"
+
+#~ msgid "Ignore subtrees"
+#~ msgstr "Subonderdelen negeren"
+
+#~ msgid "Select to see departments"
+#~ msgstr "Selecteer om afdelingen te zien"
+
+#~ msgid "Select to see GOsa accounts"
+#~ msgstr "Selecteer om GOsa accounts te zien"
+
+#~ msgid "Select to see GOsa groups"
+#~ msgstr "Selecteer om GOsa groepen te zien"
+
+#~ msgid "Select to see applications"
+#~ msgstr "Selecteer om programma's te zien"
+
+#~ msgid "Show applications"
+#~ msgstr "Toon programma's"
+
+#~ msgid "Select to see workstations"
+#~ msgstr "Selecteer om werkstations te zien"
+
+#~ msgid "Select to see terminals"
+#~ msgstr "Selecteer om terminals te zien"
+
+#~ msgid "Select to see printers"
+#~ msgstr "Selecteer om printers te zien"
+
+#~ msgid "Select to see phones"
+#~ msgstr "Selecteer om telefoons te zien"
+
+#, fuzzy
+#~ msgid "Cannot connect to logging server '%s'."
+#~ msgstr "Kan niet verbinden met de database server!"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr "Kan de database %s op %s niet selecteren."
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr "Kan de database %s op %s niet selecteren."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "U staat op het punt de invoer '%s' te kopieren."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "U staat op het punt de invoer '%s' te kopieren."
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "Terug"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "Bewerk gebruiker"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "Hoofdmenu"
+
+#, fuzzy
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "U heeft momenteel geen toestemming om uw wachtwoord te veranderen"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "U heeft geen toestemming om deze gebruiker te verwijderen!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#, fuzzy
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "U heeft geen toestemming om deze gebruiker te verwijderen!"
+
+#~ msgid "You're about to delete the user %s."
+#~ msgstr "U staat op het punt gebruiker %s te verwijderen."
+
+#~ msgid "You are not allowed to delete this user!"
+#~ msgstr "U heeft geen toestemming om deze gebruiker te verwijderen!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#~ msgid "You're about to delete the group '%s'."
+#~ msgstr "U staat op het punt de groep '%s' te verwijderen."
+
+#, fuzzy
+#~ msgid "You have no permission to edit this ACL!"
+#~ msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#, fuzzy
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "U staat op het punt de macro '%s' te verwijderen."
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#, fuzzy
+#~ msgid "List of acl"
+#~ msgstr "Lijst met macro's"
+
+#~ msgid "Required field 'Name' is not set."
+#~ msgstr "Vereist veld 'Naam' is leeg."
+
+#~ msgid "Required field 'Description' is not set."
+#~ msgstr "Vereist veld 'Omschrijving' is leeg."
+
+#, fuzzy
+#~ msgid ""
+#~ "Moving LDAP tree failed: destination tree is a subtree of the source!"
+#~ msgstr ""
+#~ "Het verplaatsen van de tree is mislukt. Bestemmings-tree is een subtree "
+#~ "van de bron-tree."
+
+#~ msgid "This 'dn' is no object group."
+#~ msgstr "Deze 'dn' is geen objectgroep."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entry %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entries %s"
+#~ msgstr "U staat op het punt de objectgroep '%s' te verwijderen."
+
+#~ msgid "You're about to delete the object group '%s'."
+#~ msgstr "U staat op het punt de objectgroep '%s' te verwijderen."
+
+#~ msgid "Name of object groups"
+#~ msgstr "Naam van objectgroepen"
+
+#~ msgid "Select to see groups containing groups"
+#~ msgstr "Selecteer om groepen die groepen bevatten te tonen"
+
+#~ msgid "Show groups containing groups"
+#~ msgstr "Toon groepen die groepen bevatten"
+
+#~ msgid "Select to see groups containing applications"
+#~ msgstr "Selecteer om groepen die programma's bevatten te tonen"
+
+#~ msgid "Show groups containing applications"
+#~ msgstr "Toon groepen die programma's bevatten"
+
+#~ msgid "Select to see groups containing departments"
+#~ msgstr "Selecteer om groepen die afdelingen bevatten te tonen"
+
+#~ msgid "Show groups containing departments"
+#~ msgstr "Toon groepen die afdelingen bevatten"
+
+#~ msgid "Select to see groups containing servers"
+#~ msgstr "Selecteer om groepen die servers bevatten te tonen"
+
+#~ msgid "Show groups containing servers"
+#~ msgstr "Toon groepen die servers bevatten"
+
+#~ msgid "Select to see groups containing workstations"
+#~ msgstr "Selecteer om groepen die werkstations bevatten te tonen"
+
+#~ msgid "Show groups containing workstations"
+#~ msgstr "Toon groepen die werkstations bevatten"
+
+#, fuzzy
+#~ msgid "Select to see groups containing windows workstations"
+#~ msgstr "Selecteer om groepen die werkstations bevatten te tonen"
+
+#, fuzzy
+#~ msgid "Show groups containing windows workstations"
+#~ msgstr "Toon groepen die werkstations bevatten"
+
+#~ msgid "Select to see groups containing terminals"
+#~ msgstr "Selecteer om groepen die terminals bevatten te tonen"
+
+#~ msgid "Show groups containing terminals"
+#~ msgstr "Toon groepen die terminals bevatten"
+
+#~ msgid "Select to see groups containing printer"
+#~ msgstr "Selecteer om groepen die printers bevatten te tonen"
+
+#~ msgid "Show groups containing printer"
+#~ msgstr "Toon groepen die printers bevatten"
+
+#~ msgid "Select to see groups containing phones"
+#~ msgstr "Selecteer om groepen die printers bevatten te tonen"
+
+#~ msgid "Show groups containing phones"
+#~ msgstr "Toon groepen die telefoons bevatten"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this entry."
+#~ msgstr "U heeft geen toestemming om deze gegevens te verwijderen!"
+
+#, fuzzy
+#~ msgid "Edit ACL"
+#~ msgstr "Bewerken"
+
+#, fuzzy
+#~ msgid "ACLs"
+#~ msgstr "Rechten"
+
+#~ msgid "Groupname / Department"
+#~ msgstr "Groepsnaam / Afdeling"
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "Geactiveerd"
+
+#~ msgid "Active"
+#~ msgstr "Actief"
+
+#, fuzzy
+#~ msgid "Members:"
+#~ msgstr "Groepsleden"
+
+#, fuzzy
+#~ msgid "Adding a lock failed."
+#~ msgstr "Het opslaan van de FAI inhaker is mislukt"
+
+#, fuzzy
+#~ msgid "Access control list templates"
+#~ msgstr "Toegangsopties"
+
+#, fuzzy
+#~ msgid "Acl roles"
+#~ msgstr "Nieuw profiel"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "Het verwijderen van de FAI inhaker is mislukt"
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr ""
+#~ "Instellen van het wachtwoord is mislukt. De LDAP server meldt: '%s'."
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "Geef a.u.b. een geldig serienummer op"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "U heeft geen toestemming om deze blokkeerlijst te verwijderen."
+
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om geselecteerde gebruikers toe te voegen, "
+#~ "bewerken of verwijderen. Indien u veel gebruikers heeft, dan is het aan "
+#~ "te raden de selectie mogelijkheden te gebruiken."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om geselecteerde groepen toe te voegen, "
+#~ "bewerken of verwijderen. Indien u veel groepen heeft, dan is het aan te "
+#~ "raden de selectie mogelijkheden te gebruiken."
+
+#, fuzzy
+#~ msgid "This menu allows you to edit and delete selected acls."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om FAI klassen aan te maken, bewerken en "
+#~ "verwijderen."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om geselecteerde afdelingen toe te voegen, "
+#~ "bewerken of verwijderen. Indien u veel afdelingen heeft is het aan te "
+#~ "raden de selectie mogelijkheden te gebruiken."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit or remove selected groups. You may want "
+#~ "to use the range selector on top of the group listbox, when working with  "
+#~ "a large number of groups."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om geselecteerde groepen toe te voegen, "
+#~ "bewerken of verwijderen. Indien u veel groepen heeft is het aan te raden "
+#~ "de selectie mogelijkheden te gebruiken."
+
+#~ msgid "Can't bind to LDAP. Please contact the system administrator."
+#~ msgstr ""
+#~ "Kan niet verbinden met de LDAP server. Neem a.u.b. contact op met de "
+#~ "systeembeheerder."
+
+#, fuzzy
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr "Het verwijderen van het algemene gebruikers account is mislukt"
+
+#, fuzzy
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "Het opslaan van het algemene gerbuikers account is mislukt"
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "Dit account heeft geen Unix mogelijkheden."
+
+#~ msgid "Remove posix account"
+#~ msgstr "Verwijder POSIX account"
+
+#~ msgid "Create posix account"
+#~ msgstr "POSIX account aanmaken"
+
+#, fuzzy
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr "Het verwijderen van het proxy account is mislukt"
+
+#, fuzzy
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "Het opslaan van het Open-Xchange account is mislukt"
+
+#~ msgid "Unix settings"
+#~ msgstr "Unix instellingen"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "Beroep"
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "Gebruikersinformatie"
+
+#, fuzzy
+#~ msgid "Please specify at least one recipient to send a message!"
+#~ msgstr "Geef a.u.b. een geldige scriptnaam op."
+
+#, fuzzy
+#~ msgid "Cannot find a DESC tag in file '%s'!"
+#~ msgstr "Kan bestand '%s' niet aanmaken."
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Beroep"
+
+#, fuzzy
+#~ msgid "Notification plugin"
+#~ msgstr "Geen certificaat geinstalleerd"
+
+#, fuzzy
+#~ msgid "Allow sending notifications"
+#~ msgstr "Host notificatie opties"
+
+#, fuzzy
+#~ msgid "Notification target"
+#~ msgstr "Geen certificaat geinstalleerd"
+
+#, fuzzy
+#~ msgid "Recipients"
+#~ msgstr "Ontvanger"
+
+#~ msgid "Message"
+#~ msgstr "Bericht"
+
+#~ msgid "Import"
+#~ msgstr "Importeren"
+
+#, fuzzy
+#~ msgid "Notification send!"
+#~ msgstr "Geen certificaat geinstalleerd"
+
+#, fuzzy
+#~ msgid "Saving of object group/generic with dn '%s' failed."
+#~ msgstr "Het opslaan van de objectgroep is mislukt"
+
+#, fuzzy
+#~ msgid "Removing of object group/generic with dn '%s' failed."
+#~ msgstr "Het verwijderen van de objectgroep is mislukt"
+
+#, fuzzy
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "Het verwijderen van de afdeling is mislukt"
+
+#, fuzzy
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "Het opslaan van de afdeling is mislukt"
+
+#, fuzzy
+#~ msgid "Handle object tagging with dn '%s' failed."
+#~ msgstr "Het verwerken van object markeringen is mislukt"
+
+#, fuzzy
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "Het opslaan van de ACL informatie is mislukt"
+
+#, fuzzy
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "Het verwijderen van het blokeerlijst object is mislukt"
+
+#, fuzzy
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "Het verwijderen van het programma van objectgroep '%s' is mislukt"
+
+#, fuzzy
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "Het verwijderen van het programma van groep '%s' is mislukt"
+
+#, fuzzy
+#~ msgid "Saving object snapshot with dn '%s' failed."
+#~ msgstr "Het opslaan van de objectgroep is mislukt"
+
+#, fuzzy
+#~ msgid "Restore snapshot with dn '%s' failed."
+#~ msgstr "Het verwijderen van de telefoon is mislukt"
+
+#, fuzzy
+#~ msgid "Creating subtree '%s' failed."
+#~ msgstr "Het aanmaken van de FAI script basis is mislukt"
+
+#, fuzzy
+#~ msgid "Ldap import with dn '%s' failed."
+#~ msgstr "Het opslaan van de printer is mislukt"
+
+#~ msgid "This does something"
+#~ msgstr "Dit doet iets"
+
+#~ msgid "The required field 'Home directory' is not set."
+#~ msgstr "Het vereiste veld 'Persoonlijke map' is leeg."
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr "Geef a.u.b. een geldige map op in het 'Persoonlijke map' veld."
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "De opgegeven 'UID' waarde is niet correct."
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "De opgegeven 'GID' waarde is niet geldig."
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "De opgegeven 'GID' waarde is te klein."
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "De opgegeven 'shadowMin' waarde is niet geldig."
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "De opgegeven 'shadowMax' waarde is niet geldig."
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "De opgegeven 'shadowWarning' waarde is niet geldig."
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowWarning' zonder 'shadowMax' is niet logisch."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be smaller than 'shadowMax'."
+#~ msgstr ""
+#~ "De waarde opgegeven voor 'shadowWarning' moet kleiner zijn dan "
+#~ "'shadowMax'."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be greater than 'shadowMin'."
+#~ msgstr ""
+#~ "De waarde opgegeven voor 'shadowWarning' moet groter dan 'shadowMin' zijn."
+
+#~ msgid "Value specified as 'shadowInactive' is not valid."
+#~ msgstr "De waarde opgegeven voor 'shadowInactive' is niet geldig."
+
+#~ msgid "'shadowInactive' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowInactive' zonder 'shadowMax' is niet logisch."
+
+#~ msgid "The required field 'Given name' is not set."
+#~ msgstr "Het vereiste veld 'Voornaam' is leeg."
+
+#~ msgid "The required field 'Login' is not set."
+#~ msgstr "Het vereiste veld 'Inlog naam' is leeg."
+
+#~ msgid ""
+#~ "There's already a person with this 'Name'/'Given name' combination in the "
+#~ "database."
+#~ msgstr ""
+#~ "Er bestaat al een persoon met deze '(Achter)naam'/'Voornaam' combinatie "
+#~ "in de database."
+
+#~ msgid ""
+#~ "The field 'Login' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Het veld 'Inlog naam' bevat ongeldige karakters. Kleine letters, nummers "
+#~ "en liggende streepjes zijn toegestaan."
+
+#~ msgid "The field 'Homepage' contains an invalid URL definition."
+#~ msgstr "Het veld 'Website' bevat een ongeldige URL."
+
+#~ msgid "The field 'Given name' contains invalid characters."
+#~ msgstr "Het veld 'Voornaam' bevat ongeldige karakters."
+
+#~ msgid "The field 'Phone' contains an invalid phone number."
+#~ msgstr "Het veld 'Telefoon' bevat een ongeldig telefoonnummer."
+
+#~ msgid "The field 'Mobile' contains an invalid phone number."
+#~ msgstr "Het veld 'GSM' bevat een ongeldig telefoonnummer"
+
+#~ msgid "The field 'Pager' contains an invalid phone number."
+#~ msgstr "Het veld 'Pieper' bevat een ongeldig telefoonnummer."
+
+#~ msgid ""
+#~ "The field 'Name' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Het veld 'Naam' bevat ongeldige karakters. Kleine letters, cijfers en "
+#~ "liggende streepjes zijn toegestaan."
+
+#~ msgid "Value specified as 'Name' is already used."
+#~ msgstr "De waarde die opgegeven is voor de naam wordt al gebruikt."
+
+#, fuzzy
+#~ msgid "Please select a valid template."
+#~ msgstr "Selecteer a.u.b. een geldig bestand."
+
+#~ msgid "A person with the choosen name is already used in this tree."
+#~ msgstr "Er bestaat al een persoon met deze naam in deze tree."
+
+#~ msgid "Department with that 'Name' already exists."
+#~ msgstr "Er bestaat al een afdeling met deze 'Naam'."
+
+#~ msgid ""
+#~ "The field 'Name' contains the reserved word '%s'. Please choose another "
+#~ "name."
+#~ msgstr ""
+#~ "Het veld 'Naam' bevat het gereserveerde woord '%s'. Kies a.u.b. een "
+#~ "andere naam."
+
+#~ msgid "There is already an object with this cn."
+#~ msgstr "Er bestaat al een object met deze cn."
+
+#, fuzzy
+#~ msgid "Cannot use %s encryption: no PHP functions for sha1/mhash available"
+#~ msgstr ""
+#~ "Kan SHA niet gebruiken voor encryptie. Functie sha1 / mhash / crypt "
+#~ "ontbreekt."
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTCREATE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Het commando '%s' dat gespecificeerd is als POSTCREATE voor module '%s' "
+#~ "bestaat niet."
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTREMOVE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Het commando '%s' dat gespecificeerd is als POSTREMOVE voor module '%s' "
+#~ "bestaat niet."
+
+#, fuzzy
+#~ msgid "You are going to paste the cutted entry '%s'."
+#~ msgstr "U staat op het punt de invoer '%s' te kopieren."
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr ""
+#~ "U heeft geen toestemming om een gebruiker aan te maken onder deze 'Basis'."
+
+#, fuzzy
+#~ msgid "Please specify a valid description for this snapshot."
+#~ msgstr "Geef a.u.b. een geldige naam op voor deze bijlage."
+
+#, fuzzy
+#~ msgid ""
+#~ "Setting for SMBHASH in gosa.conf is incorrect! Cannot change Samba "
+#~ "password."
+#~ msgstr ""
+#~ "De instelling voor 'SMBHASH' in gosa.conf is niet correct. Kan het samba "
+#~ "wachtwoord niet veranderen."
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "Persoonlijk plaatje"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "Systeembeheer"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "U staat op het punt de invoer %s te verwijderen."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to remove and change the properties of GOsa deamon "
+#~ "tasks."
+#~ msgstr ""
+#~ "Dit menu maakt het mogelijk om specifieke systemen toe te voegen, "
+#~ "bewerken en verwijderen. U kunt alleen systemen toevoegen die al eens "
+#~ "opgestart geweest zijn."
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "Lijst met afdelingen"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "Chipset"
+
+#~ msgid "Task"
+#~ msgstr "Taak"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "PHPScheduleIt"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "Verwijderen"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Shell"
+
+#, fuzzy
+#~ msgid "System mass deployment"
+#~ msgstr "Systeembeheer"
+
+#, fuzzy
+#~ msgid "Header Tag"
+#~ msgstr "header"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "PHPScheduleIt"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "Chipset"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "Afzender"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "Maart"
+
+#, fuzzy
+#~ msgid "Available targets"
+#~ msgstr "Beschikbare programma's"
+
+#, fuzzy
+#~ msgid "Show object groups"
+#~ msgstr "Objectgroepen"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "U heeft geen toestemming om deze macro te verwijderen!"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "U heeft geen toestemming om deze macro te verwijderen!"
+
+#~ msgid ""
+#~ "Your search method returned more than '%s' users, only '%s' users are "
+#~ "shown."
+#~ msgstr ""
+#~ "Uw zoekopdracht gaf meer dan '%s' gebruikers terug. Slechts '%s' "
+#~ "gebruikers worden getoond."
+
+#~ msgid "No configured SID found for '%s'."
+#~ msgstr "Er kon geen geconfigureerde SID gevonden worden voor '%s'."
+
+#~ msgid "No configured RIDBASE found for '%s'."
+#~ msgstr "Er kon geen geconfigureerde RIDBASE gevonden worden voor '%s'."
+
+#~ msgid "You are not allowed to delete this group!"
+#~ msgstr "U heeft geen toestemming om deze groep te verwijderen!"
+
+#~ msgid "You have no permission to remove this department."
+#~ msgstr "U heeft geen toestemming om deze afdeling te verwijderen."
+
+#~ msgid "You are not allowed to delete this object group!"
+#~ msgstr "U heeft geen toestemming deze objectgroep te verwijderen!"
+
+#, fuzzy
+#~ msgid "Network resolv hook"
+#~ msgstr "Netwerkadres"
+
+#~ msgid "Administration"
+#~ msgstr "Beheer"
+
+#~ msgid "Addons"
+#~ msgstr "Plugins"
+
+#, fuzzy
+#~ msgid "ACL Role"
+#~ msgstr "Rechten"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Connectivity"
+#~ msgstr "Verbindingen"
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "Speciaal"
+
+#~ msgid "Nagios"
+#~ msgstr "Nagios"
+
+#~ msgid "Options"
+#~ msgstr "Opties"
+
+#~ msgid "Parameter"
+#~ msgstr "Parameters"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "Inventaris toevoegen"
+
+#~ msgid "Services"
+#~ msgstr "Services"
+
+#~ msgid "OGo"
+#~ msgstr "OGo"
+
+#~ msgid "Excel Export"
+#~ msgstr "Excel Export"
+
+#~ msgid "CSV Import"
+#~ msgstr "CSV Import"
+
+#~ msgid "Partitions"
+#~ msgstr "Partities"
+
+#~ msgid "Script"
+#~ msgstr "Script"
+
+#~ msgid "Variables"
+#~ msgstr "Variabelen"
+
+#~ msgid "Profiles"
+#~ msgstr "Profielen"
+
+#~ msgid "Packages"
+#~ msgstr "Pakketten"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "Log DB gebruiker"
+
+#~ msgid ""
+#~ "Can't connect to glpi database, there is no mysl extension available in "
+#~ "your php setup."
+#~ msgstr ""
+#~ "Kan niet verbinden met de GLPI database. Er is geen MySQL extensie "
+#~ "beschikbaar. Controleer uw PHP installatie."
+
+#~ msgid "Can't get specified attachment file, there is no entry with this id."
+#~ msgstr ""
+#~ "Kan het opgegeven bijlage bestand niet openen. Er is geen invoer met dit "
+#~ "ID beschikbaar."
+
+#~ msgid "Can't open file '%s', possibly the file does not exist."
+#~ msgstr "Kan '%s' niet openen. Het is mogelijk dat het bestand niet bestaat."
+
+#~ msgid "Can't read file '%s', check permissions."
+#~ msgstr ""
+#~ "Kan bestand '%s' niet openen. Controleer de bestandspermissies a.u.b."
diff --git a/gosa-core/locale/core/pl/LC_MESSAGES/messages.po b/gosa-core/locale/core/pl/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..bc5ef2a
--- /dev/null
+++ b/gosa-core/locale/core/pl/LC_MESSAGES/messages.po
@@ -0,0 +1,8372 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: polski\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2009-09-05 15:13+0100\n"
+"Last-Translator: Piort Rybicki <meritus at innervision.pl>\n"
+"Language-Team: Piotr Rybicki <meritus at innervision.pl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: POLAND\n"
+"X-Poedit-SourceCharset: iso-8859-2\n"
+"X-Poedit-Basepath: tedst\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Ostrzeżenie"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"To może być używane przez kilka grup. Proszę upewnić się czy kontynuować, "
+"gdyż nie ma operacji powrotu."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Jeśli jesteś pewien - naciśnij 'Usuń' aby kontynuować lub 'Anuluj' aby "
+"anulować."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr "Ekran logowania GOsa"
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr "Ekran Logowania"
+
+#: ihtml/themes/default/login.tpl:34
+#, fuzzy
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr "Proszę użyć swojego loginu i hasła aby się zalogować"
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Nazwa użytkownika"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Hasło"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Katalog"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Zaloguj"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Kliknij tutaj aby się zalogować"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+#, fuzzy
+msgid "Copy & paste wizard"
+msgstr "Kreator Copy & paste"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Niektóre wartości muszą być unikalne w całym katalogu, podczas gdy niektóre "
+"kombinacje nie mają sensu. GOsa pokazuje dotyczące atrybuty. Proszę poprawić "
+"wartości poniżej aby utrzymać zgodność z regułami."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+"Pamiętaj, że niektóre właściwości jak snapshoty nie zostaną skopiowane!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Zapisz"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr "Anuluj wszystko"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Operacja zakończona"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Zakończ"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"Limit rozmiaru powoduje szybsze operacje LDAP i zapobiega nadmiernemu "
+"obciążeniu serwera LDAP. Najprostrzym sposobem działania na dużych bazach "
+"bez opóźnień jest ograniczanie wyszukiwań do mniejszej ilości wyników oraz "
+"użycie filtrów dla otrzymania poszukiwanych elementów."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Proszę wybrać sposób reakcji dla tej sesji"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr "Ignoruj ten błąd i pokaż wszystkie elementy które zwraca serwer LDAP"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"ignoruj ten błąd i pokaż wszystkie elementy które zmieszczą się w "
+"zdefiniowanych limicie rozmiaru i pozwól mi użyć filtrów"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Ustaw"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+#, fuzzy
+msgid "Assigned ACL for current entry"
+msgstr "Przypisane ACL'e dla obecnego wpisu"
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr "Nowy ACL"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr "typ ACL"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr "Wybierz typ ACL"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Zastosuj"
+
+#: ihtml/themes/default/acl.tpl:36
+#, fuzzy
+msgid "Additional filter options"
+msgstr "Ustawienia Aplikacji"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr "Użyj członków z"
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr "Dostępni członkowie"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr "Wyświetl możliwe cele wiadomości"
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Członkowie"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr "Wyświetl odbiorców wiadomości"
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr "Lista dostępnych kategorii ACL"
+
+#: ihtml/themes/default/acl.tpl:112
+#, fuzzy
+msgid "ACL for this object"
+msgstr "ACLe dla tego obiektu"
+
+#: ihtml/themes/default/acl.tpl:118
+#, fuzzy
+msgid "Available roles"
+msgstr "Dostępni członkowie"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+#, fuzzy
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Twoje hasło wygasło !! Proszę wybrać inne hasło"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr "Stare hasło"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nowe hasło"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr "Weryfikacja hasła"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Zmień hasło"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Kliknij tutaj aby zmienić swoje hasło"
+
+#: ihtml/themes/default/logout-close.tpl:5
+#, fuzzy
+msgid "Your GOsa session has been closed!"
+msgstr "Twoja sesja w GOsa wygasła!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr "Odtwarzanie obiektu snapshotów"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+"Ta procedura przywróci snapshot wybranego obiektu. Obecny obiekt zostanie "
+"zamieniony po naciśnięciu przycisku przywróć."
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Obiekt"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr "Brak snapshot'u który mógłby zostać odtworzony"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr "Wybierz snapshot i klinij w obrazek folderu, aby odtwodzyć snapshot."
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr "Tworzenie obiektu snapshoty"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+"Ta procedura utworzy snapshot wybranego obiektu. Kopia obiektu zostanie "
+"zachowana w specjalnej gałęzi i będzie mogła zostać przywrócona później."
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr "Czas"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr "Przyczyna utworzenia tego snapshot'u"
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Kontynuuj"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Błąd"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Informacja"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Zmień swoje hasło"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Powodzenie"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Twoje hasło zostało pomyślnie zmienione."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Zmiana hasła"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Obecne hasło"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+#, fuzzy
+msgid "New password repeated"
+msgstr "Nowe hasło"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+#, fuzzy
+msgid "Password strength"
+msgstr "Przechowywanie hasła"
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Zmień"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Wykryto konflikt blokady"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Jeśli to wykrycie blokady jest błędne, inna osoba prawdopodobnie zamknęła "
+"okno przeglądarki podczas operacji edycji. Można przejąć blokadę naciskając "
+"Edytuj."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr "Tylko do odczytu"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "Podgląd pomocy GOsa"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Indeks"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Szukaj"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Twoja sesja w GOsa wygasła!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"Ostatnia interakcja z interfejsem GOsa była już jakiś czas temu. Z powodów "
+"bezpieczeństwa sesja została zamknięta. Aby kontynuować proszę zalogować się "
+"ponownie."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Zaloguj się ponownie"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Wykryto konflikt sesji"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Prawdopodobnie istnieje inna aktywna instacja sesji. Operowanie na kilku "
+"oknach nie jest technicznie możliwe i mocno zależy od używanej przeglądarki. "
+"Użycie różnych przeglądarek (np. IE i Mozilla) jest możliwe. Naciśnięcie "
+"przycisku Wyloguj zamknie tą sesję."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Ignorując ten komunikat zmienisz/usuniesz dane które obecnie edytujesz. "
+"Proszę zamknąć wiele okien i zalogować się ponownie."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Wyloguj"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr "Obecnie edytujesz bazę danych. Czy chcesz porzucić zmiany?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Główne"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Pomoc"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Wyloguj"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Zalogowano:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr "Menu główne GOsa"
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr "Błąd krytyczny"
+
+#: html/password.php:58 html/index.php:144
+#, fuzzy, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "Nie można czytać pliku konfiguracji %s/gosa.conf. Kończę."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Błąd konfiguracji"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr "Katalog '%s' podany jako katalog kompilacji jest niedostępny!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "Password method"
+msgstr "Przechowywanie hasła"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr "Podane hasła 'Nowe hasło' oraz 'Powtórz nowe hasło' nie są itentyczne."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "Hasło podane jako nowe jest zbyt podobne do obecnego."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "Hasło podane jako nowe jest za krótkie."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Login"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Proszę sprawdzić kombinację login/hasło."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "Zewnętrzny program do zmiany hasła zgłosił następujący problem:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "Sesja nie będzie szyfrowana."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Sprowadź sesję SSL"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr "Sesja nie jest szyfrowana!"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr "Błąd Smarty"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr "Istnieje problem z ustawieniami autentykacji!"
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "błąd LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+#, fuzzy
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+"Ustawienia serwera LDAP zawierają stare definicje schema. Proszę uruchomić "
+"setup."
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Proszę podać prawidłową nazwę użytkownika!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Proszę podać prawidłowe hasło!"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr "Błąd autentykacji"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+#, fuzzy
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Konto zablokowane. Proszę skontaktować się z administratorem systemu."
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Twoja przeglądarka ma wyłączone cookies. Proszę włączyć cookies i "
+"przeładować stronę przed logowaniem!"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr "Smarty"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr "Konfiguracja PHP"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"BŁĄD: Register globals jest włączone. GOsa odmówi logowania do momentu "
+"poprawienia tego parametru przez administratora."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+#, fuzzy
+msgid "Your password is about to expire, please change your password!"
+msgstr "Twoje hasło zaraz wygaśnie, proszę zmienić hasło"
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr "Dodatek"
+
+#: html/main.php:350
+#, fuzzy, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "BŁĄD: Nie można znaleźć żadnych definicji dla pluginu '%s'!"
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr "Błąd konfiguracji"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Wyszukiwarka pomocy"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Pomoc nie jest dostępna dla tej klasy."
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "poprzednie"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "następne"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Katalog pomocy '%s' nie jest osiągalny, nie można czytać żadnych plików "
+"pomocy."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "nieskonfigurowane"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Błąd krytyczny"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr "Uprawnienie"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+#, fuzzy
+msgid "Permission error"
+msgstr "Uprawnienia"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, fuzzy, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Brak uprawnień do zmiany przekazywania poczty"
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, fuzzy, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Brak uprawnień do zmiany przekazywania poczty"
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, fuzzy, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+"Funkcjonalność snapshot jest włączona, lecz wymagana zmienna '%s' nie jest "
+"skonfigurowana w gosa.conf."
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, fuzzy, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+"Funkcjonalność snapshot jest włączona, lecz wymagana zmienna '%s' nie jest "
+"skonfigurowana w gosa.conf."
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Kontrola dostępu"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+#, fuzzy
+msgid "Manage access control lists"
+msgstr "Kontrola dostępu"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "użytkownicy"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Wszystkie kategorie"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "Resetuj ACL'e"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Jeden poziom"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Obecny obiekt"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Pełne poddrzewo"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Pełne poddrzewo (trwałe)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Użyj ACL zdefiniowanego w tej roli"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Użytkownicy"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Grupy"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Góra"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "W dół"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Edytuj"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Usuń"
+
+#: include/class_acl.inc:543
+#, fuzzy
+msgid "No ACL settings for this category!"
+msgstr "Brak ustawień ACL w tej kategorii"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Zawiera ACL'e w tych kategoriach: %s"
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "Kategoria ACL"
+
+#: include/class_acl.inc:608
+#, fuzzy, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "Edytuj ACL dla '%s', zakres to '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Wszystkie obiekty w obecnym poddrzewie"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+#, fuzzy
+msgid "Show/hide advanced settings"
+msgstr "Zaawansowane ustawienia telefonu"
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Utwórz obiekty"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Przenieś obiekty"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Usuń obiekty"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "czytanie"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "zapisywanie"
+
+#: include/class_acl.inc:816
+#, fuzzy
+msgid "Complete object"
+msgstr "Utwórz obiekty"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "Błąd wewnętrzny"
+
+#: include/class_acl.inc:960
+#, fuzzy, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "Nieznany wpis  '%s'!"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Nieznany wpis  '%s'!"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, fuzzy, php-format
+msgid "Role: %s"
+msgstr "Pełniona funkcja"
+
+#: include/class_acl.inc:1071
+#, fuzzy
+msgid "unknown role"
+msgstr "! nieznane id"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Zawiera ustawienia dla tych obiektów: %s"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "inactive"
+msgstr "Aktywne"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Członkowie grupy"
+
+#: include/class_acl.inc:1266
+#, fuzzy
+msgid "Access control list"
+msgstr "Kontrola dostępu"
+
+#: include/class_acl.inc:1271
+#, fuzzy
+msgid "ACL roles"
+msgstr "ACLe"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr "Użytkownik /UID nie są unikalne. Proszę sprawdzić bazę LDAP."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr "Wybierz wszystko"
+
+#: include/class_listing.inc:519
+msgid "created by"
+msgstr "utworzone przez"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Idź do głównego departamentu"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Główny"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Idź jeden departament wyżej"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Przejdź do departamentu użytkowników"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Katalog domowy"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Przeładuj listę"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Wyślij"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Akcje"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr "Kopiuj"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr "Wytnij"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Wklej"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Wytnij ten obiekt"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Kopiuj ten obiekt"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "Odtwórz snapshot"
+
+#: include/class_listing.inc:1474
+#, fuzzy
+msgid "Export list"
+msgstr "Export"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr "Odtwórz snapshot"
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr "Utwórz spanshot"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr "Utwórz nowy snapshot z tego obiektu"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Edytuj ten obiekt"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Usuń ten obiekt"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr "BŁĄD: Nie można połączyć się z serwerem LDAP. Odpowiedź serwera '%s'."
+
+#: include/functions.inc:519
+#, fuzzy
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "Użytkownik /UID nie są unikalne. Proszę sprawdzić bazę LDAP."
+
+#: include/functions.inc:604
+#, fuzzy
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr "Użytkownik /UID nie są unikalne. Proszę sprawdzić bazę LDAP."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Nie można pobrać informacji o blokadach w bazie LDAP. Proszę sprawdzić wpis "
+"'config' w gosa.conf!"
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid "LDAP server returned: %s"
+msgstr "Serwer LDAP"
+
+#: include/functions.inc:929
+#, fuzzy
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Znaleziono wiele blokad dla obiektu do zablokowania. Taka sytuacja nie "
+"powinna się wydażyć - czyszczę wiele odwołań."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "Limit wielkości %d elementów został przekroczony!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Ustaw nowy limit rozmiaru na %s i pokaż ten komunikat jeśli limit wciąż jest "
+"przekroczony"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Konfiguruj"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "niepełne"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Kontynuuj mimo wszystko"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Edytuj mimo wszystko"
+
+#: include/functions.inc:1646
+#, fuzzy, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Zamierzasz skopiować wpis '%s'."
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "Wpisów na stronie"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Zastosuj filtr"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "Wersja deweloperska GOsa (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr "Plik '%s' nie mógł zostać usunięty."
+
+#: include/functions.inc:2404 include/functions.inc:2424
+#, fuzzy
+msgid "Cannot write to revision file!"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr "Ostrzeżenie LDAP"
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"Nie można pobrać informacji o schematach z serwera. Sprawdzenie schematów "
+"niemożliwe!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, fuzzy, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Wyświetl szablony FAI"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr "Brak opcjonalnego obiektu klasy '%s'!"
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, fuzzy, php-format
+msgid "Class(es) available"
+msgstr "Plik jest dostępny"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Niemiecki"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Francuski"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Włoski"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Hiszpański"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Angielski"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Holenderski"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Polski"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "Chińsski"
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr "Wietnamski"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Rosyjski"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr "Polecenie '%s', podane jako POSTMODIFY dla dodatku '%s' nie istnieje."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr "Zbyt wielu użytkowników, nie można nadać wolnego ID"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Utwórz nowy departament"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+#, fuzzy
+msgid "no ID available!"
+msgstr "Brak szablonów!"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+#, fuzzy
+msgid "Cannot allocate a free ID!"
+msgstr "Zbyt wielu użytkowników, nie można nadać wolnego ID"
+
+#: include/class_tabs.inc:57
+#, fuzzy, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+"OpenGroupware: Nie można połączyć się z bazą. Proszę sprawdzić podane "
+"parametry konfiguracji."
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "Proces usuwania został anulowany przez dodatek '%s': %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Zależności"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Zamierzasz usunąć snapshot '%s'."
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr "Usuń snapshot"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Opis"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr "CSV"
+
+#: include/exporter/class_PDF.inc:24
+msgid "Page"
+msgstr "Strona"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr "PDF"
+
+#: include/class_multi_plug.inc:362
+#, fuzzy
+msgid "You are currently editing mutliple entries."
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr "Reset hasła"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "The user password was resetted, please set a new password value!"
+msgstr "Twoje hasło wygasło !! Proszę wybrać inne hasło"
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr "Certyfikat jest pusty!"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+#, fuzzy
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "Nie można pobrać informacji o quota dla '%s'."
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr "Nie załadowano prawidłowego certyfikatu!"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr "Tworzenie tej strony spowodowało, że interpreter PHP zwrócił błędy!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+#, fuzzy
+msgid "Send bugreport"
+msgstr "Nadawca"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Przełącz informacje"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "błąd PHP:"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "klasa"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "funkcja"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "statyczna"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "metoda"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Śledzenie"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "Plik"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Linia"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Typ"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Argumenty"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+#, fuzzy
+msgid "Search in subtrees"
+msgstr "Szukaj wewnątrz tego poddrzewa"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "od"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr "do"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr "Odtwórz"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "wytnij"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "kopiuj"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "Błąd XML w guide.xml: %s w linii %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "Pomoc nie jest dostępna dla tego dodatku."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s wyników zapytania ze słowem %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% trafień w pliku %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+msgid "in"
+msgstr "w"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Kontynuuj"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "błąd LDAP:"
+
+#: include/utils/class_msgPool.inc:16
+#, fuzzy, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Wybierz obiekty do dodania"
+
+#: include/utils/class_msgPool.inc:18
+#, fuzzy, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Zaznacz aby zobaczyć grupy zawierające użytkowników"
+
+#: include/utils/class_msgPool.inc:20
+#, fuzzy, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Wybierz obiekty do dodania"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Zaznacz aby wyszukiwać wewnątrz poddrzew"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+#, fuzzy
+msgid "You have no permission to delete this object!"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+#, fuzzy
+msgid "You have no permission to delete the object:"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:75
+#, fuzzy
+msgid "You have no permission to delete these objects:"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:82
+#, fuzzy
+msgid "You have no permission to create this object!"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+#, fuzzy
+msgid "You have no permission to create the object:"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:93
+#, fuzzy
+msgid "You have no permission to create these objects:"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: include/utils/class_msgPool.inc:100
+#, fuzzy
+msgid "You have no permission to modify this object!"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+#, fuzzy
+msgid "You have no permission to modify the object:"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:111
+#, fuzzy
+msgid "You have no permission to modify these objects:"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:118
+#, fuzzy
+msgid "You have no permission to view this object!"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+#, fuzzy
+msgid "You have no permission to view the object:"
+msgstr "Brak uprawnień do tworzenia telefonu w tym elemencie."
+
+#: include/utils/class_msgPool.inc:129
+#, fuzzy
+msgid "You have no permission to view these objects:"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:136
+#, fuzzy
+msgid "You have no permission to move this object!"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+#, fuzzy
+msgid "You have no permission to move the object:"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:147
+#, fuzzy
+msgid "You have no permission to move these objects:"
+msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+#, fuzzy
+msgid "Connection information"
+msgstr "Informacje osobiste"
+
+#: include/utils/class_msgPool.inc:159
+#, fuzzy, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Nie można połączyć się z serwerem baz danych!"
+
+#: include/utils/class_msgPool.inc:171
+#, fuzzy, php-format
+msgid "Cannot select %s database!"
+msgstr "Nie można wybrać bazy danych!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, fuzzy, php-format
+msgid "Cannot query %s database!"
+msgstr "Nie można wybrać bazy danych!"
+
+#: include/utils/class_msgPool.inc:195
+#, fuzzy, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Pole 'Fax' zawiera nieprawidłowy numer telefonu."
+
+#: include/utils/class_msgPool.inc:201
+#, fuzzy, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr "Polecenie '%s' podane jako CHECK dla dodatku '%s' nie istnieje."
+
+#: include/utils/class_msgPool.inc:208
+#, fuzzy, php-format
+msgid "'%s' command is invalid!"
+msgstr "Podana nazwa jest nieprawidłowa"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, fuzzy, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "Podana nazwa jest nieprawidłowa"
+
+#: include/utils/class_msgPool.inc:222
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Nie można wybrać bazy danych!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Nie można wybrać bazy danych!"
+
+#: include/utils/class_msgPool.inc:236
+#, fuzzy, php-format
+msgid "Value for '%s' is too large!"
+msgstr "Wartość podana jako 'UID' jest za mała."
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "Wartość podana jako 'shadowMin' powinna być mniejsza niż 'shadowMax'."
+
+#: include/utils/class_msgPool.inc:246
+#, fuzzy, php-format
+msgid "Value for '%s' is too small!"
+msgstr "Wartość podana jako 'UID' jest za mała."
+
+#: include/utils/class_msgPool.inc:248
+#, fuzzy, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+"PHP musi być w wersji 4.1.0 lub wyższej z powodu używanych funkcji i błędów "
+"w języku PHP."
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, fuzzy, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "Już istnieje osoba z takim samym loginem w bazie."
+
+#: include/utils/class_msgPool.inc:267
+#, fuzzy, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Wymagane pole 'Nazwa' jest puste."
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr "Przykład"
+
+#: include/utils/class_msgPool.inc:292
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Pole 'Nazwa' zawiera niedozwolone znaki."
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, fuzzy, php-format
+msgid "'%s' are not allowed!"
+msgstr "Brak uprawnień do zmiay hasła"
+
+#: include/utils/class_msgPool.inc:296
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Pole 'Nazwa' zawiera niedozwolone znaki."
+
+#: include/utils/class_msgPool.inc:303
+#, fuzzy, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Rozszerzenie inwentarza"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Dodaj"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr "Dodaj %s"
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr "Usuń %s"
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr "Ustaw %s"
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr "Edytuj..."
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr "Edytuj %s..."
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Wróć"
+
+#: include/utils/class_msgPool.inc:377
+#, fuzzy, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "To konto nie posiada poprawnych rozszerzeń GOsa."
+
+#: include/utils/class_msgPool.inc:383
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"To konto posiada rozszerzenia posix. Można je wyłączyć klikająć poniżej."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"To konto posiada rozszerzenia unix, Aby je wyłączyć należy najpierw usunąć "
+"konto Samba/Środowisko."
+
+#: include/utils/class_msgPool.inc:402
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"To konto nie posiada rozszerzenia posix. Można je włączyć klikająć poniżej."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"To konto posiada rozszerzenia unix, Aby je wyłączyć należy najpierw usunąć "
+"konto Samba/Środowisko."
+
+#: include/utils/class_msgPool.inc:420
+#, fuzzy, php-format
+msgid "Add %s settings"
+msgstr "Ustawienia Aplikacji"
+
+#: include/utils/class_msgPool.inc:426
+#, fuzzy, php-format
+msgid "Remove %s settings"
+msgstr "Ustawienia Posix"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr "Kliknij przycisk 'Edytuj' poniżej, aby zmienić informacje w tym oknie"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Styczeń"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Luty"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Marzec"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Kwiecień"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Maj"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Czerwiec"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Lipiec"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Sierpień"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Wrzesień"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Październik"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Listopad"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Grudzień"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Niedziela"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Poniedziałek"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Wednesday"
+msgstr "Środa"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Piątek"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Sobota"
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr "Zapytanie MySQL nieudane!"
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "read operation"
+msgstr "Opcje poczty"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "modify operation"
+msgstr "Informacje osobiste"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "delete operation"
+msgstr "Wybierz aby zobaczyc stacje robocze"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "search operation"
+msgstr "Konto wygasa po"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "authentication"
+msgstr "Autentykacja Nagios"
+
+#: include/utils/class_msgPool.inc:465
+#, fuzzy, php-format
+msgid "LDAP %s failed!"
+msgstr "Zapytanie do bazy danych nieudane"
+
+#: include/utils/class_msgPool.inc:467
+#, fuzzy
+msgid "LDAP operation failed!"
+msgstr "Zapytanie do bazy danych nieudane"
+
+#: include/utils/class_msgPool.inc:482
+#, fuzzy
+msgid "Upload failed!"
+msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#: include/utils/class_msgPool.inc:485
+#, fuzzy, php-format
+msgid "Upload failed: %s"
+msgstr "Użytkownik bazy logowania"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr "Błąd komunikacji z usługą infrastruktury!"
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr "Błąd komunikacji z usługą infrastruktury: %s"
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, fuzzy, php-format
+msgid "This '%s' is still in use."
+msgstr "Zawiera ustawienia dla tych obiektów: %s"
+
+#: include/utils/class_msgPool.inc:509
+#, fuzzy, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "Zawiera ustawienia dla tych obiektów: %s"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr "Plik '%s' nie istnieje!"
+
+#: include/utils/class_msgPool.inc:521
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Nie można otworzyć pliku '%s'."
+
+#: include/utils/class_msgPool.inc:527
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Nie można otworzyć pliku '%s'."
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, fuzzy, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Nie można otworzyć pliku '%s'."
+
+#: include/utils/class_msgPool.inc:545
+#, fuzzy, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Utwórz nowy departament"
+
+#: include/utils/class_msgPool.inc:551
+#, fuzzy, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Nie można otworzyć pliku '%s'."
+
+#: include/utils/class_msgPool.inc:557
+#, fuzzy, php-format
+msgid "Checking for %s support"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Ostrzeżenie wydajności"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "podczas działania na '%s' używając serwera LDAP '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "podczas połączenia z serwerem LDAP '%s'"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"To nie jest poprawne DN: '%s'. Blok dla importu powinien zaczynać się "
+"'dn: ...' w linii %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr "Błąd podczas importu dn: '%s', proszę sprawdzić LDIF od linii %s !"
+
+#: include/class_log.inc:87
+#, fuzzy, php-format
+msgid "Logging failed: %s"
+msgstr "Użytkownik bazy logowania"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "Podano nieprawidłową opcję '%s'!"
+
+#: include/class_log.inc:106
+#, fuzzy
+msgid "Specified objectType is empty or invalid!"
+msgstr "Podana nazwa jest nieprawidłowa"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+#, fuzzy
+msgid "Cannot not parse XML!"
+msgstr "Zbyt wielu użytkowników, nie można nadać wolnego ID"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, fuzzy, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, fuzzy, php-format
+msgid "Cannot remove entry %s!"
+msgstr "Nieznany wpis  '%s'!"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Błąd XML w pliku gosa.conf: %s w linii %d"
+
+#: include/class_config.inc:318
+#, fuzzy
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Nie można połączyć się z LDAP. Proszę skontaktować się z administratorem."
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "Brak parametru SID lub/i RIDBASE w konfiguracji!"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr "Konfiguracja"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Wszystkie obiekty w tej kategorii"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Nieznane"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, fuzzy, php-format
+msgid "Copy and paste failed!"
+msgstr "Kreator Copy & paste"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, fuzzy, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, fuzzy, php-format
+msgid "No write permission in '%s'"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "Nie można wkleić"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Ogólne"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Poczta"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "FAX"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Grupa"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Departament"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Telefon"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Aplikacja"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Serwer"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Cienki klient"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Stacja robocza"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Grupa obiektu"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Drukarka"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Nazwa obiektu"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Zawartość"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Ten obiekt nie posiada powiązań z innymi obiektami."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Witaj %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"To jest główny ekran GOsa. Można wybrać zadania z menu po lewej stronie, lub "
+"wybierając jeden z piktogramów poniżej. Wszelkie zmiany wchodzą bezpośrednio "
+"do serwera LDAP."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Użyj 'Wyloguj' na górze ekranu aby zamknąć połączenie oraz 'Główne' aby "
+"wrócić do głównego ekranu z widokiem piktogramów."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Zespół GOsa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "Preferowany język"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "Terminal"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Użytkownik"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Imię"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Kontener"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Filtry"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Pokaż departamenty"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "Pokaż serwery"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "Pokaż grupy samba"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "Pokaż serwery"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "Pokaż stacje robocze"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "Pokaż terminale"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "Pokaż drukarki"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Pokaż pakiety"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr "Proszę upewnić się czy kontynuować, gdyż nie ma możliwości powrotu."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Grupy obiektów"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+#, fuzzy
+msgid "Manage object groups"
+msgstr "Nazwa grupy obiektów"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+#, fuzzy
+msgid "Infrastructure error"
+msgstr "błąd PHP:"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr "Szablony"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+#, fuzzy
+msgid "Windows Install"
+msgstr "Stacja robocza Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "żaden"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "za dużo różnych obiektów!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "użytkownicy"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "grupy"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "aplikacje"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "departamenty"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "serwery"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "stacje robocze"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr "Stacje Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "terminale"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "telefony"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "drukarki"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "wyłączone"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "pełen dostęp"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "zezwól na dostęp do tych hostów"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "Nieistniejące dn:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+#, fuzzy
+msgid "You can combine two different object types at maximum, only!"
+msgstr "Można połączyć maksymalnie tylko 2 różne typy obiektów!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr "Podstawowa grupa obiektu"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "Zaufanie systemowe"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr "Członek"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Nazwa grupy"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Nazwa grupy"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Tekst opisowy dla tej grupy"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Zaufanie systemowe"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Tryb zaufania"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Dodaj członka"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Kolejka telefoniczna"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Systemy"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Startup"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Urządzenia"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "Podsumowanie FAI"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Środowisko"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Aplikacje"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+#, fuzzy
+msgid "Please enter the new object group name"
+msgstr "Proszę podać nową nazwę."
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+#, fuzzy
+msgid "user groups"
+msgstr "grupy"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+#, fuzzy
+msgid "nested groups"
+msgstr "Grupy obiektów"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+#, fuzzy
+msgid "application groups"
+msgstr "Pokaż grupy aplikacji"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+#, fuzzy
+msgid "department groups"
+msgstr "departamenty"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+#, fuzzy
+msgid "server groups"
+msgstr "serwery"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+#, fuzzy
+msgid "workstation groups"
+msgstr "stacje robocze"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+#, fuzzy
+msgid "windows workstation groups"
+msgstr "Pokaż stacje robocze"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+#, fuzzy
+msgid "terminal groups"
+msgstr "Pokaż grupy pocztowe"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+#, fuzzy
+msgid "printer groups"
+msgstr "Grupa podstawowa"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+#, fuzzy
+msgid "phone groups"
+msgstr "Pokaż grupy"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Lista grupy obiektów"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Właściwości"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Utwórz"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Usuń"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr "Wyślij wiadomość"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Grupa obiektu"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "serwery"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Wybierz obiekty do dodania"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filtry"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Wyświetl obiekty departamentu"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Wybierz departament na którym wyszukiwanie będzie bazować"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Wyświetl obiekty pasujące"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Wyrażenie regularne dla dopasowania nazw obiektów"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Wybierz systemy do dodania"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Wyświetl systemy departamentu"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Wyświetl systemy pasujące"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Wyrażenie regularne dla dopasowania adresów"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"To może być podstawowa grupa użytkownika. Proszę upewnić się czy aby na "
+"pewno kontynuować, gdyż tej operacji nie można cofnąć."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Imię"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Nazwisko"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Posixowa nazwa grupy"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr "Zwyczajowo ID są generowane automatycznie, wybierz aby podać ręcznie"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Wymuś GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Wymuś numer ID"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Wybierz aby utworzyć grupę samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "w domenie"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Członkowie są w grupie odbioru telefonu"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Członkowie są w grupie nagios."
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Członkowie grupy"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr "We wszystkich grupach"
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr "Nie we wszystkich grupach"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Pokaż podstawowe grupy"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Pokaż grupy samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "Pokaż grupy samba"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Ustawienia grupy"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Lista grup"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "Grupa podstawowa"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "serwery"
+
+#: plugins/admin/groups/class_group.inc:162
+#, fuzzy
+msgid "Cannot find group SID in your configuration!"
+msgstr ""
+"Nie można znaleźć SID tych grup ani w  LDAP, ani w pliku konfiguracyjnym!"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Grupa Samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Administratorzy domeny"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Użytkownicy domeny"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Goście domeny"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Specjalna grupa (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "! nieznane id"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, fuzzy, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: plugins/admin/groups/class_group.inc:899
+#, fuzzy, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Nie można stworzyć pliku '%s'."
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr "Ogólne ustawienia grupy"
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr "Typ grupy Samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+#, fuzzy
+msgid "Samba domain name"
+msgstr "Katalog domowy Samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr "Grupie odbioru telefonu"
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr "Grupa nagios"
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr "Członek grupy"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Administracja Grupą"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Edytuj właściwości Telefonu"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Edytuj właściwości Poczty"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Edytuj właściwości Samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Edytuj właściwości Telefonu"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+#, fuzzy
+msgid "Menu"
+msgstr "Drukarka"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Edytuj właściwości Samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Edytuj właściwości Środowiska"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Operacja odnosi się do wszystkich danych dotyczących konta, dostępu, "
+"ustawień imap, etc dla tego użytkownika. Proszę upewnić się czy na pewno "
+"kontynuować, gdyż nie ma możliwości powrotu."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Aby zmienić hasło użytkownika, proszę użyć formularza poniżej. Zmiany są "
+"wprowadzane natychmiastowo. Proszę zapamiętać nowe hasło, gdyż bez niego "
+"zalogowanie będzie niemożliwe."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Zmiana hasła jest powiązana z autentykacją do usług poczty, proxy, samba, "
+"oraz unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Powtórz nowe hasło"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr "Siła"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Ustaw hasło"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Utwórz nowego użytkownika używając szablonów"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Tworzenie nowego użytkownika może być wspomagane przez szablony. Wiele "
+"rekordów bazy będzie automatycznie wypełnionych. Wybierz 'brak' aby pominąć "
+"użycie szablonów."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Szablon"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Nazwisko"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Imię"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr "Zarządzaj użytkownikami"
+
+#: plugins/admin/users/class_userManagement.inc:278
+#, fuzzy
+msgid "You have no permission to change this users password!"
+msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr "Blokowanie konta"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+msgid "Unlock account"
+msgstr "Odblokuj konto"
+
+#: plugins/admin/users/class_userManagement.inc:732
+msgid "Lock account"
+msgstr "Zablokuj konto"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Edytuj ogólne właściwości"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr "POSIX"
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Edytuj właściwości UNIX"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Edytuj właściwości Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Edytuj właściwości UNIX"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Lista użytkowników"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Lista użytkowników"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Użytkownicy domeny"
+
+#: plugins/admin/users/user-list.xml:167
+#, fuzzy
+msgid "Apply template"
+msgstr "Szablony"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Utwórz użytkownika z szablonu"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "Edytuj użytkownika"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Usuń obrazek"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Pokaż szablony"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "Pokaż użytkowników funkcjonalnych"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Ustawienia Posix"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Pokaż użytkowników Poczty"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Pokaż użytkowników Poczty"
+
+#: plugins/admin/users/templatize.tpl:2
+#, fuzzy
+msgid "Applying a template"
+msgstr "Szablony"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr "Brak szablonów!"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Operacja odnosi sie do 'wszystkich' kont, systemów, etc w tym poddrzewie. "
+"Proszę upewnić się czy kontynuować, gdyż nie ma operacji powrotu."
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Przed wykonaniem tej operacji zaleca się wykonanie kopii bezpieczeństwa "
+"drzewa LDAP. Naciśnij 'Usuń' aby kontynuować, lub 'Anuluj' aby przerwać."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Lista departamentów"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "w domenie"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Administratorzy domeny"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Kraj"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "Lokalizacja"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organizacja"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "Nazwa lokalizacji"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+#, fuzzy
+msgid "Name of locality to create"
+msgstr "Nazwa tworzonego poddrzewa"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Tekst opisujący departament"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Ustawienia administracyjne"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Zaznacz departament jako niezależną jednostkę administracyjną"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Nazwa departamentu"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Nazwa tworzonego poddrzewa"
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Tekst opisujący departament"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Kategoria"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Kategoria dla tego poddrzewa"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Lokalizacja"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Stan"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Stan w którym jest umieszczone to poddrzewo"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Lokalizacja tego poddrzewa"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Adres"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Kod pocztowy tego poddrzewa"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Bazowy numer telefonu tego poddrzewa"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Bazowy numer faxu tego poddrzewa"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "Administratorzy domeny"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Departamenty"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr "Zarządzaj Departamentami"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr "Nazwa organizacji"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Adres pocztowy"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "Numer telefonu"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr "Nazwa Kraju"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Administratorzy domeny"
+
+#: plugins/admin/departments/domain.tpl:14
+#, fuzzy
+msgid "Name of domain to create"
+msgstr "Nazwa tworzonego poddrzewa"
+
+#: plugins/admin/departments/country.tpl:14
+#, fuzzy
+msgid "Name of country to create"
+msgstr "Nazwa tworzonego poddrzewa"
+
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+"Błąd krytyczny: Nie można znaleźć nieużywnego znacznika dla jednostki "
+"administracyjnej!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Zaznaczanie '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Przenoszenie '%s' do '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "BŁĄD kopiowania %s, anulowanie operacji"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Nazwa departamentu"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Telefon"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "Obiekt '%s' jest już zaznaczony"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Dodawanie znacznika (%s) do obiektu '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Usuwanie znacznika z obiektu '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Przetwarzam zadaną operację"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Twoja przeglądarka nie obsługuje iframes, proszę użyć tego linku aby wykonać "
+"żądaną operację."
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "Organizacja"
+
+#: plugins/admin/departments/organization.tpl:14
+#, fuzzy
+msgid "Name of organization to create"
+msgstr "Nazwa tworzonego poddrzewa"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#, fuzzy
+msgid "You are currently moving/renaming this department."
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr "GOsa NIE może naprawić tego dla Ciebie, jeszcze."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+#, fuzzy
+msgid "Acl"
+msgstr "ACL"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "Zarządzanie ACL"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr "Szablony ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+#, fuzzy
+msgid "Access control roles"
+msgstr "Kontrola dostępu"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+#, fuzzy
+msgid "Edit AC roles"
+msgstr "ACLe"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr "Resetuj ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr "Brak ustawień ACL w tej kategorii"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, fuzzy, php-format
+msgid "ACL for these objects: %s"
+msgstr "Zawiera ACL'e w tych kategoriach: %s"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+#, fuzzy
+msgid "Edit category ACL"
+msgstr "Edytuj kategorie ACL'i"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+#, fuzzy
+msgid "Reset category ACL"
+msgstr "Kategoria"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr "Edytuj ACL dla '%s', zakres to '%s'"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy
+msgid "Object in use"
+msgstr "Nazwa obiektu"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Pełniona funkcja"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr "Uprawnienia"
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr "Lista ACLi"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Kontrola dostępu"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Pokaż telefony"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+#, fuzzy
+msgid "Edit organizational user settings"
+msgstr "Ustawienia Aplikacji"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "kobieta"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "mężczyzna"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr "Nie można wgrać pliku!"
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Numer seryjny"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Certyfikat jest ważny od %s do %s i jest obecnie %s."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "prawidłowy"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "nieprawidłowy"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Brak zainstalowanych certyfikatów"
+
+#: plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "The selected password method is no longer available."
+msgstr "Ta aplikacja nie jest już dostępna."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+#, fuzzy
+msgid "The selected password method requires initial configuration!"
+msgstr "Ta aplikacja nie jest już dostępna."
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Strona domowa"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Komórka"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Pager"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Data urodzenia"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr "Nie można otworzyć certyfikatu!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Jednostka"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Identyfikator budynku"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Wywołanie"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Ostatnia dostawa"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Lokalizacja osoby"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Opis jednostki"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Sektor"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Tytuł funkcjonalny"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Nmer seryjny certyfikatu"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Publicznie widoczne"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Ulica"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Kod pocztowy"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr "Ogólne ustawienia użytkownika"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Moje konto "
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr "Identyfikacja użytkownika"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Osobisty tytuł"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Tytuł naukowy"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Płeć"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr "Preferowany język"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Zdjęcie użytkownika"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Hasło wygasa"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr "Numer departamentu"
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr "Numer pracownika"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Typ pracownika"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr "Numer pokoju"
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr "Numer telefonu"
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr "Numer pagera"
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr "Telefon komórkowy"
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr "Numer fax"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Adres domowy"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr "Numer telefonu domowego"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "Przechowywanie hasła"
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr "Certyfikaty użytkownika"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Informacje osobiste"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Osobiste zdjęcie"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Zmień zdjęcie"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Nazwa Szablonu"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Preferowany język"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Telefon prywatny"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Przechowywanie hasła"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certyfikaty"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Edytuj certyfikaty"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr "Ogranicz logowanie do"
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr "IP lub sieć"
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Informacje organizacyjne"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Numer departamentu"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Numer pracownika"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Numer pokoju"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Proszę użyć zakładki telefony"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Wybierz poddrzewo do umieszczenia konta."
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Wybierz bazę"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Ustawienia użytkownika"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Wyczyść hasło"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Ustaw nowe hasło"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Usuń obrazek"
+
+#: plugins/personal/generic/main.inc:115
+#, fuzzy
+msgid "You have no permission to set your password!"
+msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Ogólne informacje o użytkowniku"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Zmieniono metodę kodowania hasła w bazie ldap. Z tego powodu należy teraz "
+"podać ponownie swoje hasło. GOsa zakoduje to hasło używając wybranej metody."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Standardowy certyfikat"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "certyfikat S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "certyfikat PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+#, fuzzy
+msgid "Edit users POSIX settings"
+msgstr "Ustawienia Posix"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "wygasło"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "Czas prolongaty aktywny"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "Aktywne"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr "hasło niezmienialne"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr "hasło wygasło"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automatyczne"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr "Hasło nie może być zmienione do %s dni po ostatniej zmianie"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Hasło musi zostać zmienione po %s dniach"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr "Wyłącz konto po %s dniach nieaktywności po wygaśnięciu hasła"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Ostrzeż użytkownika na %s dni przed wygaśnięciem hasła"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Grupa użytkownika"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Katalog domowy"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr "shadowMin"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr "shadowMax"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr "shadowWarning"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+#, fuzzy
+msgid "shadowInactive"
+msgstr "Shadow nieaktywne"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr "Konto POSIX"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "Identyfikator użytkownika"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr "ID grupy"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr "Wymuś zmianę hasła podczas logowania"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr "Shadow min"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr "Shadow max"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr "Shadow ostrzeżenie"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr "Shadow nieaktywne"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr "Shadow wygasa"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr "Publiczny klucz SSH"
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr "Zaufanie do systemów"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Grupa podstawowa"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Status"
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr "Ostatnie logowanie"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Wymuś UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Przynależność do grup"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Uwaga: NFS nie wspiera więcej niż 16 grup!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "Pokaż grupy"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Grupa użytkownika"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr "Klucze SSH"
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr "Edytuj publiczne klucze ssh"
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Konto"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Wybierz grupy do dodania"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Wyświetl grupy departamentu"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Wyświetl grupy pasujące"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Wyrażenie regularne dla dopasowania nazw grup"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Wyświetl grupy użytkownika"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Nazwa użytkownika którego grupy są pokazane"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Pokaż serwery"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Pokaż stacje robocze"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Pokaż terminale"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Ustawienia Posix"
+
+#: plugins/personal/posix/main.inc:142
+#, fuzzy
+msgid "POSIX settings"
+msgstr "Ustawienia Posix"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "Użytkownik musi zmienić hasło przy pierwszym logowaniu"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Hasło wygasa"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Pomyślnie zmieniono hasło. Proszę pamiętać aby zmienić również ustawienia w "
+"programach skonfigurowanych do używania tego hasła."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+#, fuzzy
+msgid "Password settings"
+msgstr "Ustawienia użytkownika"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Aby zmienić własne hasło, proszę użyć formularza poniżej. Zmiany są "
+"wprowadzane do systemu natychmiast. Proszę zapamiętać nowe hasło, gdyż bez "
+"niego logowanie będzie niemożliwe."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Wyczyść pola"
+
+#: plugins/personal/password/class_password.inc:27
+#, fuzzy
+msgid "Change user password"
+msgstr "Zmień hasło"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Proszę podać obecne hasło aby kontynuować."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "Hasło które podano jako 'Nowe hasło' jest puste."
+
+#: plugins/personal/password/class_password.inc:94
+#, fuzzy, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "Zewnętrzny program do zmiany hasła zgłosił następujący problem:"
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "Hasło które podano jako obecne nie zgadza się z prawdziwym hasłem."
+
+#: plugins/personal/password/class_password.inc:114
+#, fuzzy
+msgid "You have no permission to change your password."
+msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr "Hasło użytkownika"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Brak uprawnień do zmiay hasła"
+
+#: plugins/personal/password/nochange.tpl:6
+#, fuzzy
+msgid "You have no permission to change your password at this time"
+msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#: setup/class_setupStep_Feedback.inc:92
+#, fuzzy
+msgid "UNIX accounts/groups"
+msgstr "Konta Unix"
+
+#: setup/class_setupStep_Feedback.inc:94
+#, fuzzy
+msgid "Samba management"
+msgstr "Zarządzanie systemem"
+
+#: setup/class_setupStep_Feedback.inc:96
+#, fuzzy
+msgid "Mailsystem management"
+msgstr "Zarządzanie systemem"
+
+#: setup/class_setupStep_Feedback.inc:98
+#, fuzzy
+msgid "FAX system administration"
+msgstr "Administracja użytkownikami"
+
+#: setup/class_setupStep_Feedback.inc:100
+#, fuzzy
+msgid "Asterisk administration"
+msgstr "Administracja użytkownikami"
+
+#: setup/class_setupStep_Feedback.inc:102
+#, fuzzy
+msgid "System inventory"
+msgstr "Usuń inwentarz"
+
+#: setup/class_setupStep_Feedback.inc:104
+#, fuzzy
+msgid "System-/Configmanagement"
+msgstr "Zarządzanie systemem"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Książka adresowa"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+#, fuzzy
+msgid "Get notifications or send feedback"
+msgstr "Ograniczenia dla nadawcy"
+
+#: setup/class_setupStep_Feedback.inc:114
+#, fuzzy
+msgid "Notification and feedback"
+msgstr "Powiadomienie wysłane!"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr "Błąd ustawień"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+#, fuzzy
+msgid "Please specify a valid email address."
+msgstr "Proszę podać prawidłową nazwę skryptu."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+#, fuzzy
+msgid "Completed"
+msgstr "niepełne"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr "Następne"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Ustawienia Samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr "Samba SID"
+
+#: setup/setup_config2.tpl:31
+#, fuzzy
+msgid "RID base"
+msgstr "Baza"
+
+#: setup/setup_config2.tpl:46
+#, fuzzy
+msgid "Workstation container"
+msgstr "Nazwa stacji roboczej"
+
+#: setup/setup_config2.tpl:61
+#, fuzzy
+msgid "Samba SID mapping"
+msgstr "Samba SID"
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr "Strefa czasowa"
+
+#: setup/setup_config2.tpl:74
+#, fuzzy
+msgid "Please choose your preferred timezone here"
+msgstr "Preferowany język"
+
+#: setup/setup_config2.tpl:96
+#, fuzzy
+msgid "Additional GOsa settings"
+msgstr "Ustawienia Aplikacji"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+#, fuzzy
+msgid "Government mode"
+msgstr "do folferu"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Ustawienia pocztowe"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Typ pocztowy"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+#, fuzzy
+msgid "Vacation templates"
+msgstr "Szablon stacji roboczej"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+#, fuzzy
+msgid "Snapshots / Undo"
+msgstr "Tworzenie snapshot'u nieudane"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+#, fuzzy
+msgid "Enable snapshots"
+msgstr "Utwórz spanshot"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+#, fuzzy
+msgid "Snapshot base"
+msgstr "Tworzenie snapshot'u nieudane"
+
+#: setup/setup_frame.tpl:12
+#, fuzzy
+msgid "GOsa setup wizard"
+msgstr "Podgląd pomocy GOsa"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Installation"
+msgstr "Stacja Windows"
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr "Ustawienia"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+#, fuzzy
+msgid "Check again"
+msgstr "Sprawdź"
+
+#: setup/setup_migrate.tpl:37
+#, fuzzy
+msgid "Add required object classes to the LDAP base"
+msgstr "Wyświetl szablony FAI"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr "Obecne"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+#, fuzzy
+msgid "After migration"
+msgstr "Administracja użytkownikami"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+#, fuzzy
+msgid "Migrate"
+msgstr "Utwórz"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Zamknij"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+#, fuzzy
+msgid "Move selected workstations"
+msgstr "Wybierz aby zobaczyc stacje robocze"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+#, fuzzy
+msgid "Hide changes"
+msgstr "Open xchange"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+#, fuzzy
+msgid "Show changes"
+msgstr "Pokaż pakiety"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr "Przenieś użytkowników do skonfigurowanego drzewa"
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+#, fuzzy
+msgid "Move selected users into this people tree"
+msgstr "Utwórz użytkownika z tego szablonu"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Utwórz konto Netatalk"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr "Przeładuj"
+
+#: setup/setup_migrate.tpl:273
+#, fuzzy
+msgid "Abort"
+msgstr "Port"
+
+#: setup/setup_migrate.tpl:275
+#, fuzzy
+msgid "Create a new GOsa administrator account"
+msgstr "Utwórz konto Netatalk"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+#, fuzzy
+msgid "Password (again)"
+msgstr "Przechowywanie hasła"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr "Odśwież"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr "Zapisz plik konfiguracyjny"
+
+#: setup/class_setupStep_Finish.inc:39
+#, fuzzy
+msgid "Finish - write the configuration file"
+msgstr "Plik konfiguracyjny"
+
+#: setup/class_setupStep_Finish.inc:104
+#, fuzzy
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr "Nie można czytać pliku konfiguracji %s/gosa.conf. Kończę."
+
+#: setup/class_setupStep_Finish.inc:106
+#, fuzzy
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "Nie można czytać pliku konfiguracji %s/gosa.conf. Kończę."
+
+#: setup/class_setupStep_Finish.inc:115
+#, fuzzy, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Po umieszczeniu pliku w /etc/gosa upewnij się, że serwer www ma uprawnienia "
+"do jego odczytu, podczas gdy inni użytkownicy nie mają. Aby uzyskać takie "
+"uprawnienia, można wykonać te polecenia:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr "Sprawdzenie instalacji"
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr "Sprawdzam wersję PHP"
+
+#: setup/class_setupStep_Checks.inc:65
+#, fuzzy, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+"PHP musi być w wersji 4.1.0 lub wyższej z powodu używanych funkcji i błędów "
+"w języku PHP."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr "Proszę zaktualizować do wspieranej wersji."
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr "mbstring"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr "MySQL"
+
+#: setup/class_setupStep_Checks.inc:121
+#, fuzzy
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"Wsparcie dla MySQL jest potrzebne do czytania raportów GOfax z bazy danych."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr "imagick"
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr "moduł kompresji"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+#, fuzzy
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals jest mechanizmem PHP umożliwiającym takie ustawienie "
+"zmiennych globalnych, że możliwy jest do nich dostęp bez zmiany zakresu. To "
+"może powodować zagrożenie bezpieczeństwa. Gosa może działać w obu trybach."
+
+#: setup/class_setupStep_Checks.inc:182
+#, fuzzy
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "Sprawdzam, czy register_globals jest ustawione na 'off'"
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+#, fuzzy
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"PHP używa tej wartości dla garbage collector'a do usuwania starych sesji. "
+"Ustawienie tej wartości na jeden dzień zapobiegnie ustraceniu sesji oraz "
+"cookie zanim faktycznie wygasną."
+
+#: setup/class_setupStep_Checks.inc:192
+#, fuzzy
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Aby używać GOsa bez problemow, opcja session.auto_register w pliku php.ini "
+"musi być ustawiona na 'off'."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr "Wyłączone"
+
+#: setup/class_setupStep_Checks.inc:200
+#, fuzzy
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Aby używać GOsa bez problemow, opcja session.auto_register w pliku php.ini "
+"musi być ustawiona na 'off'."
+
+#: setup/class_setupStep_Checks.inc:201
+#, fuzzy
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Aby używać GOsa bez problemow, opcja session.auto_register w pliku php.ini "
+"musi być ustawiona na 'off'."
+
+#: setup/class_setupStep_Checks.inc:208
+#, fuzzy
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa potrzebuje conajmniej 16MB pamięci. Mniej może prowadzić do "
+"nieprzewidywalnych błędów. Dla większych instalacji, należy zwiększyć ten "
+"parametr."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+#, fuzzy
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Ta opcja wpływa na obsługę output. Aby zwiększyć wydajność, należy ustawić "
+"na 'off'."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+#, fuzzy
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+"Ten parametr powinien byc ustawniony na co najmniej 30 sekund. Niektóre "
+"funkcje mogą zabierać dużo czasu."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+#, fuzzy
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Aby zwiększyć bezpieczeństwo, należy ustawić expose_php na 'off'. PHP nie "
+"będzie wysyłać żadnych informacji na temat serwera na którym działa."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr "Włączone"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Ustawienie macig_quotes_gpc na 'on' zwiększy bezpieczeństwo serwera. PHP "
+"będzie zabezpieczać cudzysłowa w stringach."
+
+#: setup/class_setupStep_Checks.inc:241
+#, fuzzy
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr "Sprawdzam, czy register_globals jest ustawione na 'off'"
+
+#: setup/class_setupStep_Checks.inc:248
+#, fuzzy
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Ustawienie macig_quotes_gpc na 'on' zwiększy bezpieczeństwo serwera. PHP "
+"będzie zabezpieczać cudzysłowa w stringach."
+
+#: setup/class_setupStep_Checks.inc:249
+#, fuzzy
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Aby używać GOsa bez problemow, opcja session.auto_register w pliku php.ini "
+"musi być ustawiona na 'off'."
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr "Plik konfiguracyjny zapisywalny"
+
+#: setup/class_setupStep_Checks.inc:260
+#, fuzzy
+msgid "The configuration file can't be written"
+msgstr "Plik konfiguracyjny"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+#, fuzzy
+msgid "GOsa core settings"
+msgstr "Ustawienia pocztowe"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "Wyświetl grupy użytkownika"
+
+#: setup/setup_config3.tpl:18
+#, fuzzy
+msgid "Display summary in listings"
+msgstr "Wyświetl makra pasujące"
+
+#: setup/setup_config3.tpl:30
+#, fuzzy
+msgid "Honour administrative units"
+msgstr "Administracja Grupą"
+
+#: setup/setup_config3.tpl:42
+#, fuzzy
+msgid "Smarty compile directory"
+msgstr "Katalog domowy"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr "SNMP community"
+
+#: setup/setup_config3.tpl:60
+#, fuzzy
+msgid "Path for PPD storage"
+msgstr "Przechowywanie hasła"
+
+#: setup/setup_config3.tpl:77
+#, fuzzy
+msgid "Path for kiosk profile storage"
+msgstr "Ustawienia profilu Kiosk"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+#, fuzzy
+msgid "Mail queue script"
+msgstr "Ogólna ścieżka do skryptu"
+
+#: setup/setup_config3.tpl:134
+#, fuzzy
+msgid "Notification script"
+msgstr "Cel powiadomienia"
+
+#: setup/setup_config3.tpl:153
+#, fuzzy
+msgid "Enable edit locking"
+msgstr "Włącz skanowanie antyfirusowe"
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+#, fuzzy
+msgid "Daemon timeout"
+msgstr "W dół"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+#, fuzzy
+msgid "Login attribute"
+msgstr "Atrybuty telefonu"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+#, fuzzy
+msgid "Warn if session is not encrypted"
+msgstr "Sesja nie będzie szyfrowana."
+
+#: setup/setup_config3.tpl:257
+#, fuzzy
+msgid "Remember dialog filter settings"
+msgstr "Ogólne ustawienia użytkownika"
+
+#: setup/setup_config3.tpl:269
+#, fuzzy
+msgid "Session lifetime"
+msgstr "Wykryto konflikt sesji"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+#, fuzzy
+msgid "Show PHP errors"
+msgstr "błąd PHP:"
+
+#: setup/setup_config3.tpl:294
+#, fuzzy
+msgid "Maximum LDAP query time"
+msgstr "Max rozmiar nagłówków poczty"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+#, fuzzy
+msgid "Debug level"
+msgstr "Jeden poziom"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr "Wyłączone"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr "Włączone"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Adres email"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "Tak"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "Nie"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr "Używam od"
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr "LDAP"
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr "Cechy"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+#, fuzzy
+msgid "Create your configuration file"
+msgstr "Plik konfiguracyjny"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Konfiguracja pobierania"
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr "Status:"
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr "Ustawienia LDAP"
+
+#: setup/class_setupStep_Ldap.inc:54
+#, fuzzy
+msgid "LDAP connection setup"
+msgstr "Połączenie dzwonienia..."
+
+#: setup/class_setupStep_Ldap.inc:55
+#, fuzzy
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"Poniższe pola pozwalają na podstawową konfigurację zachowania GOsa i "
+"wpływają na różne właściwości w głównej konfiguracji."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#: setup/class_setupStep_Ldap.inc:107
+#, fuzzy, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#: setup/class_setupStep_Ldap.inc:112
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#: setup/class_setupStep_Ldap.inc:113
+#, fuzzy
+msgid "Please specify user and password!"
+msgstr "Proszę podać prawidłowe hasło!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, fuzzy, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+#, fuzzy
+msgid "LDAP connection"
+msgstr "Rozłączenie"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Nazwa lokalizacji"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "Połączeniowy URL"
+
+#: setup/setup_ldap.tpl:45
+#, fuzzy
+msgid "TLS connection"
+msgstr "Połączenie dzwonienia..."
+
+#: setup/setup_ldap.tpl:69
+#, fuzzy
+msgid "Authentication"
+msgstr "Autentykacja Nagios"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "DN Administratora"
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr "Wybierz użytkownika"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Hasło Administratora"
+
+#: setup/setup_ldap.tpl:101
+#, fuzzy
+msgid "Schema based settings"
+msgstr "Ustawienia Samba"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr "Obecny status"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+#, fuzzy
+msgid "LDAP inspection"
+msgstr "Inspekcja instalacji PHP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+#, fuzzy
+msgid "Checking for root object"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#: setup/class_setupStep_Migrate.inc:153
+#, fuzzy
+msgid "Checking for invisible departments"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: setup/class_setupStep_Migrate.inc:158
+#, fuzzy
+msgid "Checking for invisible users"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+#, fuzzy
+msgid "Checking for super administrator"
+msgstr "Sprawedzam dodatkowe programy"
+
+#: setup/class_setupStep_Migrate.inc:171
+#, fuzzy
+msgid "Checking for users outside the people tree"
+msgstr "Sprawdzam moduł cups"
+
+#: setup/class_setupStep_Migrate.inc:177
+#, fuzzy
+msgid "Checking for groups outside the groups tree"
+msgstr "Sprawdzam moduł cups"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+#, fuzzy
+msgid "Checking for duplicated UID numbers"
+msgstr "Sprawdzam funkcję %s"
+
+#: setup/class_setupStep_Migrate.inc:196
+#, fuzzy
+msgid "Checking for duplicate GID numbers"
+msgstr "Sprawdzam funkcję %s"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "Sprawdzam wsparcie dla iconv"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "Sprawdzam moduł cups"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "Sprawdzam funkcję %s"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+#, fuzzy
+msgid "LDAP query failed"
+msgstr "Zapytanie do bazy danych nieudane"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Znaleziono powtórzoną wartość dla typu rekordu '%s'."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Znaleziono powtórzoną wartość dla typu rekordu '%s'."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Niepowodzenie"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, fuzzy, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "Zamierzasz skopiować wpis '%s'."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr "Przenieś"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr "Błąd migracji"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, fuzzy, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Utwórz nowy departament"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Utwórz konto Netatalk"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Utwórz konto Netatalk"
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr "Błąd wejścia"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr "Uid"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr "Błąd hasła"
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Provided passwords do not match!"
+msgstr "Hasła podane jako nowe i powtórzone nie zgadzają się!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Specify a valid user ID!"
+msgstr "Proszę podać prawidłową nazwę użytkownika!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#, fuzzy
+msgid "Cannot move users to the requested department!"
+msgstr "Przejdź do domowego departamentu użytkowników"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+#, fuzzy
+msgid "Group will be moved from"
+msgstr "Będzie możliwość odtworzenia z"
+
+#: setup/class_setupStep_Migrate.inc:1347
+#, fuzzy
+msgid "User will be moved from"
+msgstr "Użyj członków z"
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+#, fuzzy
+msgid "Try to create root object"
+msgstr "Utwórz obiekty"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, fuzzy, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Wyświetl szablony FAI"
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "Proszę sprawdzić kombinację login/hasło."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, fuzzy, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Przenoszenie '%s' do '%s'"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Użytkownik bazy logowania"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+#, fuzzy
+msgid "Create a basic, single site configuration"
+msgstr "Konfiguracja bazy FAX"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+#, fuzzy
+msgid "Find every possible configuration error"
+msgstr "Plik konfiguracyjny"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+#, fuzzy
+msgid "To continue..."
+msgstr "Ustawienia trwają..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+#, fuzzy
+msgid "GOsa settings 3/3"
+msgstr "Ustawienia użytkownika"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+#, fuzzy
+msgid "Session lifetime must be a numeric value!"
+msgstr "Przyszłe dni muszą być liczbą."
+
+#: setup/class_setupStep_Config3.inc:216
+#, fuzzy
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Przyszłe dni muszą być liczbą."
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "PHP setup configuration"
+msgstr "Konfiguracja bazy FAX"
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "show information"
+msgstr "Informacje osobiste"
+
+#: setup/setup_schema.tpl:3
+#, fuzzy
+msgid "Schema specific settings"
+msgstr "Ustawienia Samba"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+#, fuzzy
+msgid "Check status"
+msgstr "Ustaw status"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr "Sprawdzanie schematów zakończone powodzeniem"
+
+#: setup/setup_schema.tpl:23
+#, fuzzy
+msgid "Schema check failed"
+msgstr "Zapisywanie telefonu nieudane"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+#, fuzzy
+msgid "Theme"
+msgstr "Mime"
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr "Apache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+#, fuzzy
+msgid "People and group storage"
+msgstr "Prosze wyszczególnić długość pamięci."
+
+#: setup/setup_config1.tpl:30
+#, fuzzy
+msgid "People DN attribute"
+msgstr "Ten 'dn' nie jest aplikacją."
+
+#: setup/setup_config1.tpl:41
+#, fuzzy
+msgid "People storage subtree"
+msgstr "Prosze wyszczególnić długość pamięci."
+
+#: setup/setup_config1.tpl:50
+#, fuzzy
+msgid "Group storage subtree"
+msgstr "Proszę wybrać grupę obiektów"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+#, fuzzy
+msgid "Automatic UIDs"
+msgstr "Automatyczne tryby"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+#, fuzzy
+msgid "Number base for people/groups"
+msgstr "Podstawowe ID dla użytkowników/grup"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+#, fuzzy
+msgid "Password encryption algorithm"
+msgstr "Algorytm szyfrowania"
+
+#: setup/setup_config1.tpl:151
+#, fuzzy
+msgid "Password restrictions"
+msgstr "Hasło wygasa"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr "Minimalna długość hasła"
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+#, fuzzy
+msgid "Password change hook"
+msgstr "Brak uprawnień do zmiay hasła"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr "Użyj SASL dla kerberosa"
+
+#: setup/setup_config1.tpl:209
+#, fuzzy
+msgid "Use account expiration"
+msgstr "Konto wygasa po"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa wspiera kilka typów szyfrowania hasła. Typy można ustawić przez "
+"szablony użytkownika, oraz można też ustawić typ domyślny tutaj."
+
+#: setup/setup_config1.tpl:222
+#, fuzzy
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa zawsze zachowuje się jak admin i zarządza uprawnieniami wewnętrznie. "
+"Jest to obejście dopóki ACL w katalogu OpenLDAP zostaną w pełni "
+"zaimplementowane. Trzeba podać administracyjne DN i odpowiednie hasło."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Pewne podstawowe parametry LDAP są zmienialne i wpływają na lokalizacje "
+"gdzie GOsa zapisuje użytkowników i grupy razem ze sposobem w jaki konta są "
+"tworzone. Sprawdź wartości poniżej i dostosuj do wymagań."
+
+#: setup/setup_config1.tpl:224
+#, fuzzy
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa posiada modularne wsparcie dla kilku metod pocztowych. Te metody "
+"zapewniają interfejsy dla kont użytkowników oraz quota. Można wybrać "
+"sztuczny dodatek, aby pozostawić ustawienia poczty nietknięte."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+#, fuzzy
+msgid "LDAP schema check"
+msgstr "Usługa Ldap"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr "Witaj"
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr "Wiadomość powitalna"
+
+#: setup/class_setupStep_Welcome.inc:40
+#, fuzzy
+msgid "Welcome to GOsa setup wizard"
+msgstr "Witaj w instalacji GOsa!"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr "Licencja"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr "Warunki użytkowania"
+
+#: setup/setup_language.tpl:3
+#, fuzzy
+msgid "Please select the preferred language"
+msgstr "Preferowany język"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+#, fuzzy
+msgid "Please select your preferred language here"
+msgstr "Preferowany język"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr "Ustawienia GOsa 1/3"
+
+#: setup/class_setupStep_Config1.inc:76
+#, fuzzy
+msgid "GOsa generic settings"
+msgstr "Ogólne ustawienia użytkownika"
+
+#: setup/class_setupStep_Config1.inc:118
+#, fuzzy, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "Port sieve musi być liczbą."
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr "Nie dodawaj kropki na końcu '%s'."
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "Prosze wyszczególnić długość pamięci."
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "Proszę wybrać grupę obiektów"
+
+#: setup/class_setupStep_Config1.inc:130
+#, fuzzy
+msgid "Uid base must be numeric"
+msgstr "Limit czasu musi być liczbą"
+
+#: setup/class_setupStep_Config1.inc:134
+#, fuzzy
+msgid "The given password minimum length is not numeric."
+msgstr "Port sieve musi być liczbą."
+
+#: setup/class_setupStep_Config1.inc:137
+#, fuzzy
+msgid "The given password differ value is not numeric."
+msgstr "Port sieve musi być liczbą."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr "Ustawienia GOsa 2/3"
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr "Dostosuj specjalne parametry"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr "Ustawienia językowe"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr "Tek krok umożliwia wybranie preferowanego języka."
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr "Automatycznie"
+
+#, fuzzy
+#~ msgid "Choose a base"
+#~ msgstr "Wybierz bazę"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Wybierz poddrzewo do umieszczenia grupy"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "Wybierz poddrzewo do umieszczenia departamentu"
+
+#~ msgid "Update"
+#~ msgstr "Aktualizuj"
+
+#~ msgid "Show %s"
+#~ msgstr "Pokaż %s"
+
+#~ msgid "people"
+#~ msgstr "ludzie"
+
+#~ msgid "printer"
+#~ msgstr "drukarka"
+
+#~ msgid "Select users to add"
+#~ msgstr "Wybierz użytkowników do dodania"
+
+#~ msgid "Select to see servers"
+#~ msgstr "Proszę aby zobaczyć serwery"
+
+#~ msgid "Search within subtree"
+#~ msgstr "Szukaj wewnątrz tego poddrzewa"
+
+#~ msgid "Display users of department"
+#~ msgstr "Wyświetl użytkowników departamentu"
+
+#~ msgid "Display users matching"
+#~ msgstr "Wyświetl użytkowników pasujących"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "Wyrażenie regularne do dopasowania nazw użytkowników"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Lista użytkowników"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Imię"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Nazwisko"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Lista grup"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "Lista grup"
+
+#~ msgid "Use"
+#~ msgstr "Użyj"
+
+#, fuzzy
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Filtruj elementy z tą składnią"
+
+#~ msgid "MySQL error"
+#~ msgstr "błąd MySQL"
+
+#~ msgid "MySQL logging"
+#~ msgstr "logowanie MySQL"
+
+#, fuzzy
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "Nie można połączyć się z serwerem baz danych!"
+
+#~ msgid "Submit department"
+#~ msgstr "Zatwierdź departament"
+
+#~ msgid "edit"
+#~ msgstr "edytuj"
+
+#~ msgid "delete"
+#~ msgstr "Usuń"
+
+#, fuzzy
+#~ msgid "Number of listed object groups"
+#~ msgstr "Nazwa grupy obiektów"
+
+#, fuzzy
+#~ msgid "Number of listed departments"
+#~ msgstr "Nazwa departamentu"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr ""
+#~ "Zaznacz aby zobaczyć grupy które są podstawowymi grupami użytkowników"
+
+#~ msgid "primary groups"
+#~ msgstr "Grupy podstawowe"
+
+#, fuzzy
+#~ msgid "samba groups mappings"
+#~ msgstr "Samba SID"
+
+#~ msgid "samba groups"
+#~ msgstr "Grupy Samba"
+
+#~ msgid "application settings"
+#~ msgstr "ustawienia aplikacji"
+
+#~ msgid "mail settings"
+#~ msgstr "Ustawienia poczty"
+
+#~ msgid "mail groups"
+#~ msgstr "grupy pocztowe"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr ""
+#~ "Zaznacz aby zobaczyć grupy, które posiadają tylko aspekty funkcjonalne"
+
+#, fuzzy
+#~ msgid "functional groups"
+#~ msgstr "Pokaż grupy funkcjonalne"
+
+#, fuzzy
+#~ msgid "Not allowed"
+#~ msgstr "Brak uprawnień do zmiay hasła"
+
+#, fuzzy
+#~ msgid "Number of listed groups"
+#~ msgstr "Nazwa grupy"
+
+#~ msgid "Manage POSIX groups"
+#~ msgstr "Zarządzaj grupami POSIX"
+
+#~ msgid "group"
+#~ msgstr "grupa"
+
+#~ msgid "User administration"
+#~ msgstr "Administracja użytkownikami"
+
+#~ msgid "templates"
+#~ msgstr "Szablon"
+
+#~ msgid "GOsa object"
+#~ msgstr "Obiekt GOsa"
+
+#, fuzzy
+#~ msgid "functional users"
+#~ msgstr "Pokaż użytkowników funkcjonalnych"
+
+#, fuzzy
+#~ msgid "POSIX users"
+#~ msgstr "Ustawienia Posix"
+
+#, fuzzy
+#~ msgid "samba users"
+#~ msgstr "Użytkownicy domeny"
+
+#, fuzzy
+#~ msgid "proxy users"
+#~ msgstr "Pokaż użytkowników proxy"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Pokaż użytkowników proxy"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Edytuj właściwości UNIX"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "Edytuj właściwości Fax"
+
+#~ msgid "Create user with this template"
+#~ msgstr "Utwórz użytkownika z tego szablonu"
+
+#~ msgid "user"
+#~ msgstr "użytkownik"
+
+#~ msgid "password"
+#~ msgstr "hasło"
+
+#~ msgid "Delete user"
+#~ msgstr "Usuń użytkownika"
+
+#, fuzzy
+#~ msgid "Number of listed users"
+#~ msgstr "Nazwa departamentu"
+
+#, fuzzy
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#, fuzzy
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#, fuzzy
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Nazwa departamentu"
+
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "Wyrażenie regularne dla dopasowania nazw departamentów"
+
+#~ msgid "Department management"
+#~ msgstr "Zarządzanie departamentem"
+
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "To zawiera cały system i informacje instalacyjne. Proszę upewnić się, że "
+#~ "faktycznie chcesz wykonać tą operację. Nie ma możliwości odwrócenia tego "
+#~ "procesu."
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "ACLe"
+
+#~ msgid "Summary"
+#~ msgstr "Podsumowanie"
+
+#~ msgid "Display acls matching"
+#~ msgstr "Wyświetl ACL pasujące"
+
+#, fuzzy
+#~ msgid "Edit acl role"
+#~ msgstr "Edytuj makro"
+
+#~ msgid "Edit acl"
+#~ msgstr "Edytuj ACL"
+
+#~ msgid "Delete acl"
+#~ msgstr "Usuń ACL"
+
+#~ msgid "Gender"
+#~ msgstr "Płeć"
+
+#, fuzzy
+#~ msgid "Logging options"
+#~ msgstr "Nieznane"
+
+#~ msgid "Syslog"
+#~ msgstr "Syslog"
+
+#, fuzzy
+#~ msgid "ACL takes effect for all users"
+#~ msgstr "ACL jest prawidłowy dla wszystkich użytkowników"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "Pokaż grupy pocztowe"
+
+#, fuzzy
+#~ msgid "Enable DNS extension"
+#~ msgstr "Rozszerzenie inwentarza"
+
+#, fuzzy
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Rozszerzenie inwentarza"
+
+#, fuzzy
+#~ msgid "Enable mime type management"
+#~ msgstr "Zarządzanie typami mime"
+
+#, fuzzy
+#~ msgid "Enable FAI release management"
+#~ msgstr "Zarządzanie FAI"
+
+#, fuzzy
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Zarządzaj kontem Netatalk"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Brak uprawnień do zmiay hasła"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Utwórz"
+
+#, fuzzy
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "To konto posiada rozszerzenia unix, Aby je wyłączyć należy najpierw "
+#~ "usunąć konto Samba/Środowisko."
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "Wsparcie dla MySQL jest potrzebne do czytania raportów GOfax z bazy "
+#~ "danych."
+
+#~ msgid "Modifyable by owner"
+#~ msgstr "Modyfikowalne przez właściciela"
+
+#, fuzzy
+#~ msgid "Role name"
+#~ msgstr "Zmień nazwę"
+
+#, fuzzy
+#~ msgid "Role description"
+#~ msgstr "Opis jednostki"
+
+#, fuzzy
+#~ msgid "Override sudo role ou"
+#~ msgstr "! nieznane id"
+
+#~ msgid "Terminals"
+#~ msgstr "Terminale"
+
+#~ msgid "Action"
+#~ msgstr "Akcja"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "Wybierz bazę"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "Dodaj"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "Usuń"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "Zamierzasz usunąć całe poddrzewo LDAP umieszczone pod '%s'."
+
+#~ msgid "department"
+#~ msgstr "departament"
+
+#, fuzzy
+#~ msgid "Delete acl role"
+#~ msgstr "Usuń makro"
+
+#, fuzzy
+#~ msgid "Steps"
+#~ msgstr "Systemy"
+
+#~ msgid "Restore snapshopts of already deleted objects"
+#~ msgstr "Otwórz snapshoty usuniętych obiektów"
+
+#~ msgid "Move object"
+#~ msgstr "Przenieś obiekt"
+
+#~ msgid "Remove object"
+#~ msgstr "Usuń obiekt"
+
+#, fuzzy
+#~ msgid "Repository"
+#~ msgstr "Odtwórz"
+
+#, fuzzy
+#~ msgid "DAK repository"
+#~ msgstr "Katalog"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "Usuń użytkownika"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "Import powiódł się"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "Opcje poczty"
+
+#, fuzzy
+#~ msgid "Hour"
+#~ msgstr "godzina"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "dzień"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "miesiąc"
+
+#, fuzzy
+#~ msgid "Year"
+#~ msgstr "Szukaj"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "Hasło"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "Parametr aplikacji"
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "Parametr kernela"
+
+#~ msgid "Birthday"
+#~ msgstr "Urodziny"
+
+#~ msgid "Language"
+#~ msgstr "Język"
+
+#~ msgid "User list of %s on %s"
+#~ msgstr "Lista użytkowników %s na %s"
+
+#~ msgid "Groups of %s on %s"
+#~ msgstr "Grupy %s na %s"
+
+#~ msgid "Servers"
+#~ msgstr "Serwery"
+
+#~ msgid "Computers"
+#~ msgstr "Komputery"
+
+#~ msgid "Common name"
+#~ msgstr "Nazwa potoczna"
+
+#~ msgid "Server name"
+#~ msgstr "Nazwa serwera"
+
+#~ msgid "Servers of %s on %s"
+#~ msgstr "Serwery %s na %s"
+
+#~ msgid "Display name"
+#~ msgstr "Wyświetl nazwę"
+
+#~ msgid "Home phone"
+#~ msgstr "Telefon domowy"
+
+#~ msgid "Initials"
+#~ msgstr "Inicjały"
+
+#~ msgid "Mobile phone"
+#~ msgstr "Telefon komórkowy"
+
+#~ msgid "City"
+#~ msgstr "Miasto"
+
+#~ msgid "Function"
+#~ msgstr "Funkcja"
+
+#~ msgid "Adressbook"
+#~ msgstr "Książka adresowa"
+
+#~ msgid "Adressbook of %s on %s"
+#~ msgstr "Książka adresowa %s na %s"
+
+#~ msgid "Common Name"
+#~ msgstr "Zwykła nazwa"
+
+#~ msgid "Day of birth"
+#~ msgstr "Data urodzenia"
+
+#~ msgid "Email address"
+#~ msgstr "Adres email"
+
+#~ msgid "Organizational unit"
+#~ msgstr "Jednostka organizacyjna"
+
+#~ msgid "Postal Code"
+#~ msgstr "Kod Pocztowy"
+
+#~ msgid "Title"
+#~ msgstr "Tytuł"
+
+#~ msgid "Full"
+#~ msgstr "Pełne"
+
+#~ msgid "Computers of %s on %s"
+#~ msgstr "Komputery %s na %s"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr "Brak uprawnień do wysyłania wiadomości!"
+
+#~ msgid "Could not connect to database server!"
+#~ msgstr "Nie można połączyć się z serwerem baz danych!"
+
+#~ msgid "Could not select database!"
+#~ msgstr "Nie można wybrać bazy danych!"
+
+#~ msgid "Database query failed!"
+#~ msgstr "Zapytanie do bazy danych nieudane"
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "Lista użytkowników"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "Wyrażenie regularne dla dopasowania nazw grup"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "Wyrażenie regularne dla dopasowania nazw obiektów"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "Nazwa grupy"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "Nazwisko"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "Użytkownicy domeny"
+
+#, fuzzy
+#~ msgid "sudo role"
+#~ msgstr "! nieznane id"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "Ostrzeżenie"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "drukarki"
+
+#, fuzzy
+#~ msgid "lists"
+#~ msgstr "klasa"
+
+#, fuzzy
+#~ msgid "Invalid"
+#~ msgstr "nieprawidłowy"
+
+#, fuzzy
+#~ msgid "Sudo role"
+#~ msgstr "! nieznane id"
+
+#, fuzzy
+#~ msgid "Host"
+#~ msgstr "Zaczepy"
+
+#, fuzzy
+#~ msgid "Command"
+#~ msgstr "i"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "Użytkownicy domeny"
+
+#, fuzzy
+#~ msgid "Available options"
+#~ msgstr "Dostępni odbiorcy"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "Administracja Grupą"
+
+#, fuzzy
+#~ msgid "Flags"
+#~ msgstr "klasa"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "Zarządzanie systemem"
+
+#, fuzzy
+#~ msgid "Checking for LDAP support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr ""
+#~ "To jest główny moduł używany przez GOsa i dlatego jest szczególnie "
+#~ "wymagany."
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "Sprawdzam wsparcie dla gettext"
+
+#, fuzzy
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr ""
+#~ "Wsparcie dla gettext jest wymagane dla innych wersji językowych GOsa."
+
+#~ msgid "Checking for iconv support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is used by GOsa to convert samba munged dial informations and "
+#~ "is therefore required. "
+#~ msgstr ""
+#~ "Ten moduł jest używany przez GOsa do konwersji _MUNGED_DIAL_INFORMATIONS? "
+#~ "i dlatego jest wymagany."
+
+#, fuzzy
+#~ msgid "Checking for mhash support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid "Checking for IMAP support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr ""
+#~ "Moduł IMAP jest potrzebny do komunikacji z serwerem IMAP. Pozwala "
+#~ "uzyskiwać informacje, oraz tworzyć/usuwać konta pocztowe."
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "Sprawdzam wsparcie dla gettext"
+
+#, fuzzy
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "Sprawdzam getacl w imap"
+
+#, fuzzy
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "Wsparcie dla getacl jest wymagane dla uprawnień do foldera "
+#~ "współdzielonego. Standardowy moduł IMAP nie potrafi czytać acl'i. "
+#~ "Potrzeba nowszej wersji PHP ze wsparciem getacl."
+
+#, fuzzy
+#~ msgid "Checking for MySQL support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr ""
+#~ "Zarządzanie użytkownikami w kerberos wymaga modułu kadm5, który można "
+#~ "ściągnąć z sieci PEAR."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr ""
+#~ "Zarządzanie użytkownikami w kerberos wymaga modułu kadm5, który można "
+#~ "ściągnąć z sieci PEAR."
+
+#, fuzzy
+#~ msgid "Checking for SNMP support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "The simple network management protocol is needed to get status "
+#~ "information from clients."
+#~ msgstr "SNMP jest wymagane do monitorowani klientow."
+
+#, fuzzy
+#~ msgid "Checking for CUPS support"
+#~ msgstr "Sprawdzam wsparcie dla iconv"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "Aby zobaczyć dostępne drukarki za pomocą protokołu IPP zamiast plików "
+#~ "printcap, należy zainstalować moduł cups."
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "Sprawdzam program fping"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr ""
+#~ "Program fping jest używany tylko jeśli mamy środowisko cienkich klientów."
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr ""
+#~ "Program fping jest używany tylko jeśli mamy środowisko cienkich klientów."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr ""
+#~ "Aby używać SAMBA 2/3, należy zainstalować dodatkowe programy aby móc "
+#~ "generować hasła."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr ""
+#~ "Aby używać SAMBA 2/3, należy zainstalować dodatkowe programy aby móc "
+#~ "generować hasła."
+
+#, fuzzy
+#~ msgid "Choose subtree to place %s in"
+#~ msgstr "Wybierz poddrzewo do umieszczenia konta."
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "Pokaż grupy zawierające użytkowników"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "serwery"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "Pokaż użytkowników Samby"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "funkcja"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Posix"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "mężczyzna"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "Proxy"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "Podsumowanie"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "aplikacje"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające użytkowników"
+
+#, fuzzy
+#~ msgid "Workstations"
+#~ msgstr "Stacja robocza"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "Telefon"
+
+#~ msgid "Click here to Change your password"
+#~ msgstr "Brak uprawnień do zmiany własnego hasła"
+
+#~ msgid "Can't open specified file, check accessibility and or existence"
+#~ msgstr "Nie można otworzyć podanego pliku. Sprawdź istnienie i uprawnienia"
+
+#~ msgid "Can't read specified certificate / or empty string given"
+#~ msgstr "Nie można czytać certyfkatu / lub podano pusty ciąg znaków"
+
+#~ msgid "Can't load certificate, possibly unsupported format (use PEM/DER) "
+#~ msgstr ""
+#~ "Nie można załadować certyfikatu, prawdopodobnie niewspierany format (użyj "
+#~ "PEM/DER)"
+
+#~ msgid "The Format must be PEM, to output certificate informations"
+#~ msgstr "Format musi być PEM, aby wyświetlić informacje certyfikatu"
+
+#~ msgid "Can't create/open File"
+#~ msgstr "Nie można utworzyć/otworzyć Pliku"
+
+#~ msgid "LDAP error:"
+#~ msgstr "błąd LDAP:"
+
+#~ msgid ""
+#~ "Problems with the LDAP server mean that you probably lost the last "
+#~ "changes. Please check your LDAP setup for possible errors and try again."
+#~ msgstr ""
+#~ "Problemy z serwerem LDAP oznaczają, że prawdopodobnie utracono ostatnie "
+#~ "zmiany. Proszę sprawdzić konfiguracje LDAP w poszukiwaniu możliwych "
+#~ "błędów i spróbować ponownie."
+
+#~ msgid ""
+#~ "Please check your input and fix the error. Press 'OK' to close this "
+#~ "message box."
+#~ msgstr ""
+#~ "Proszę sprawdzić wprowadzane dane i poprawić błąd. Naciśnij 'OK' aby "
+#~ "zamknąć to okno."
+
+#~ msgid "You are not allowed to change your password at this time"
+#~ msgstr "Brak uprawnień do zmiany własnego hasła w tym momencie"
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "Numer fax"
+
+#, fuzzy
+#~ msgid "Service infrastructure"
+#~ msgstr "Szukaj wewnątrz tego poddrzewa"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "Brak uprawnień do zmiay hasła"
+
+#~ msgid "You are not allowed to set this users password!"
+#~ msgstr "Brak uprawnień do zmiany hasła tym użytkownikom!"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "Usuń"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "Usuń"
+
+#~ msgid "User List of %s on %s"
+#~ msgstr "Lista użytkowników %s na %s"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "Uprawnienia"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "Brak uprawnień do usunięcia  tego ACL!"
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "Brak uprawnień do zmiany przekazywania poczty"
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "Plik konfiguracyjny"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "Plik konfiguracyjny"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "Hasło wygasa"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "Plik konfiguracyjny"
+
+#, fuzzy
+#~ msgid "Anonymous bind failed on server '%s'."
+#~ msgstr "Logowanie użytkownika nieudane, odpowiedź serwera LDAP '%s'."
+
+#~ msgid "New Password"
+#~ msgstr "Nowe hasło"
+
+#~ msgid "Change Password"
+#~ msgstr "Zmień hasło"
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "Nie można stworzyć pliku '%s'."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "Nie można stworzyć pliku '%s'."
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "Nie można stworzyć pliku '%s'."
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "Nie można stworzyć pliku '%s'."
+
+#, fuzzy
+#~ msgid "Entry with id '%s' not found."
+#~ msgstr "Import LDAP z dn '%s' nieudany."
+
+#, fuzzy
+#~ msgid "Can't set priority for ID '%s'. ID does not exist."
+#~ msgstr "Plik pakietu '%s' nie istnieje."
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "Wybierz aby zobaczyć szablony"
+
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr ""
+#~ "Zaznacz aby zobaczyć użytkowników którzy posiadają tylko obiekt GOsa"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr "Zaznacz aby zobaczyć użytkowników którzy posiadają ustawienia posix"
+
+#~ msgid "Show unix users"
+#~ msgstr "Pokaż użytkowników Unix"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr ""
+#~ "Zaznacz aby zobaczyć użytkowników którzy posiadają ustawienia poczty"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "Zaznacz aby zobaczyć użytkowników którzy posiadają ustawienia samba"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr "Zaznacz aby zobaczyć użytkowników którzy posiadają ustawienia proxy"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr "Zaznacz aby zobaczyć grupy które posiadają mapowania grup samba"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr "Zaznacz aby zobaczyć grupy które posiadają skonfigurowane aplikacje"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr "Zaznacz aby zobaczyć grupy które zawierają ustawienia poczty"
+
+#, fuzzy
+#~ msgid "acl"
+#~ msgstr "Anuluj"
+
+#~ msgid "Ignore subtrees"
+#~ msgstr "Ignoruj poddrzewa"
+
+#~ msgid "Select to see departments"
+#~ msgstr "Wybierz aby zobaczyć departamenty"
+
+#~ msgid "Select to see GOsa accounts"
+#~ msgstr "Wybierz aby zobaczyć konta GOsa"
+
+#~ msgid "Select to see GOsa groups"
+#~ msgstr "Wybierz aby zobaczyć grupy GOsa"
+
+#~ msgid "Select to see applications"
+#~ msgstr "Wybież aby zobaczyć aplikacje"
+
+#~ msgid "Show applications"
+#~ msgstr "Pokaż aplikacje"
+
+#~ msgid "Select to see workstations"
+#~ msgstr "Wybierz aby zobaczyc stacje robocze"
+
+#~ msgid "Select to see terminals"
+#~ msgstr "Wybierz aby zobaczyć terminale"
+
+#~ msgid "Select to see printers"
+#~ msgstr "Wybierz aby zobaczyć drukarki"
+
+#~ msgid "Select to see phones"
+#~ msgstr "Wybież aby zobaczyć telefony"
+
+#, fuzzy
+#~ msgid "Cannot connect to logging server '%s'."
+#~ msgstr "Nie można połączyć się z serwerem baz danych!"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr "Nie można wybrać bazy %s na %s."
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr "Nie można wybrać bazy %s na %s."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "Zamierzasz skopiować wpis '%s'."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "Zamierzasz skopiować wpis '%s'."
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "Wróć"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "Edytuj użytkownika"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "Główne"
+
+#, fuzzy
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "Brak uprawnień do zmiany własnego hasła w tym momencie"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "Brak uprawnień do usunięcia tego użytkownika!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#, fuzzy
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "Brak uprawnień do usunięcia tego użytkownika!"
+
+#~ msgid "You're about to delete the user %s."
+#~ msgstr "Zamierzasz usunąć użytkownika %s."
+
+#~ msgid "You are not allowed to delete this user!"
+#~ msgstr "Brak uprawnień do usunięcia tego użytkownika!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#~ msgid "You're about to delete the group '%s'."
+#~ msgstr "Właśnie zamierzasz usunąć grupę '%s'."
+
+#~ msgid "Assigned ACLs for current entry"
+#~ msgstr "Przypisane ACL'e dla obecnego wpisu"
+
+#, fuzzy
+#~ msgid "You have no permission to edit this ACL!"
+#~ msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "Zamierzasz usunąć ACL '%s'."
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#~ msgid "List of acl"
+#~ msgstr "Lista ACL"
+
+#~ msgid "Required field 'Name' is not set."
+#~ msgstr "Wymagane pole 'Nazwa' jest puste."
+
+#~ msgid "Required field 'Description' is not set."
+#~ msgstr "Wymagane pole 'Opis' nie jest wypełnione."
+
+#, fuzzy
+#~ msgid ""
+#~ "Moving LDAP tree failed: destination tree is a subtree of the source!"
+#~ msgstr ""
+#~ "Próba przeniesienia drzewa nieudana. Docelowe drzewo jest poddrzewem w "
+#~ "drzewie źródłowym."
+
+#~ msgid "This 'dn' is no object group."
+#~ msgstr "Ten 'dn' nie jest grupą obiektową."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entry %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entries %s"
+#~ msgstr "Zamierzasz usunąć grupę obiektową '%s'."
+
+#~ msgid "You're about to delete the object group '%s'."
+#~ msgstr "Zamierzasz usunąć grupę obiektową '%s'."
+
+#~ msgid "Name of object groups"
+#~ msgstr "Nazwa grupy obiektów"
+
+#~ msgid "Select to see groups containing groups"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające grupy"
+
+#~ msgid "Show groups containing groups"
+#~ msgstr "Pokaż grupy zawierające grupy"
+
+#~ msgid "Select to see groups containing applications"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające aplikacje"
+
+#~ msgid "Show groups containing applications"
+#~ msgstr "Pokaż grupy zawierające aplikacje"
+
+#~ msgid "Select to see groups containing departments"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające departamenty"
+
+#~ msgid "Show groups containing departments"
+#~ msgstr "Pokaż grupy zawierające departamenty"
+
+#~ msgid "Select to see groups containing servers"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające serwery"
+
+#~ msgid "Show groups containing servers"
+#~ msgstr "Pokaż grupy zawierające serwery"
+
+#~ msgid "Select to see groups containing workstations"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające stacje robocze"
+
+#~ msgid "Show groups containing workstations"
+#~ msgstr "Pokaż grupy zawierające stacje robocze"
+
+#, fuzzy
+#~ msgid "Select to see groups containing windows workstations"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające stacje robocze"
+
+#, fuzzy
+#~ msgid "Show groups containing windows workstations"
+#~ msgstr "Pokaż grupy zawierające stacje robocze"
+
+#~ msgid "Select to see groups containing terminals"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające terminale"
+
+#~ msgid "Show groups containing terminals"
+#~ msgstr "Pokaż grupy zawierające terminale"
+
+#~ msgid "Select to see groups containing printer"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające drukarki"
+
+#~ msgid "Show groups containing printer"
+#~ msgstr "Pokaż grupy zawierające drukarki"
+
+#~ msgid "Select to see groups containing phones"
+#~ msgstr "Zaznacz aby zobaczyć grupy zawierające telefony"
+
+#~ msgid "Show groups containing phones"
+#~ msgstr "Pokaż grupy zawierające telefony"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this entry."
+#~ msgstr "Brak uprawnień do usunięcia tego elementu!"
+
+#~ msgid "Edit ACL"
+#~ msgstr "Edytuj ACL"
+
+#~ msgid "Delete ACL"
+#~ msgstr "Usuń ACL"
+
+#~ msgid "Clear categories ACLs"
+#~ msgstr "Wyczyść ACL'e kategorii"
+
+#~ msgid "ACLs"
+#~ msgstr "ACLe"
+
+#~ msgid "Groupname / Department"
+#~ msgstr "Nazwa grupy / Departament"
+
+#~ msgid "This 'dn' is no group."
+#~ msgstr "Podane 'dn' nie jest grupą."
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "Aktywne"
+
+#~ msgid "Active"
+#~ msgstr "Aktywne"
+
+#~ msgid "Unkown ACL type '%s'. Don't know how to handle it."
+#~ msgstr "Nieznany typ ACL '%s', Nie wiem co z tym zrobic."
+
+#~ msgid "Members:"
+#~ msgstr "Członkowie:"
+
+#, fuzzy
+#~ msgid "Adding a lock failed."
+#~ msgstr "Zapisywanie zaczepu FAI nieudane"
+
+#, fuzzy
+#~ msgid "Access control list templates"
+#~ msgstr "Kontrola dostępu"
+
+#, fuzzy
+#~ msgid "Acl roles"
+#~ msgstr "Profil FAI"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "Usuwanie zaczepu FAI nieudane"
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr "Ustawianie hasła nieudane, Odpowiedź serwera LDAP '%s'."
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "Proszę podać poprawny numer seryjny"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "To menu umożliwia tworzenie, edycję oraz usuwanie wybranych użytkowników. "
+#~ "Posiadając dużą liczbę użytkowników wygodniej jest używać selektorów "
+#~ "zakresu na górze listy użytkowników."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "To menu umożliwia tworzenie, edycję oraz usuwanie wybranych grup. "
+#~ "Posiadając dużą liczbę użytkowników wygodniej jest używać selektorów "
+#~ "zakresu na górze listy grup."
+
+#~ msgid "This menu allows you to edit and delete selected acls."
+#~ msgstr "To menu umożliwia dodawanie, edycję i kasowanie wybranych ACL."
+
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "To menu umożliwia tworzenie, usuwanie oraz edycję wybranych "
+#~ "departamentów. Posiadając dużą liczbę departamentów, może okazać się "
+#~ "wygodniejsze korzystanie z selektorów zakresu na górze."
+
+#~ msgid ""
+#~ "This menu allows you to add, edit or remove selected groups. You may want "
+#~ "to use the range selector on top of the group listbox, when working with  "
+#~ "a large number of groups."
+#~ msgstr ""
+#~ "To menu umożliwia tworzenie, edycję oraz usuwanie wybranych grup. "
+#~ "Posiadając dużą liczbę grup wygodniej jest używać selektorów zakresu na "
+#~ "górze listy grup."
+
+#~ msgid "Can't bind to LDAP. Please contact the system administrator."
+#~ msgstr ""
+#~ "Nie można połączyć się z LDAP. Proszę skontaktować się z administratorem."
+
+#, fuzzy
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr "Usuwanie konta ogólnego użytkownika nieudane"
+
+#, fuzzy
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "Zapisywanie konta ogólnego użytkownika nieudane"
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "To konto nie posiada rozszerzeń unix"
+
+#~ msgid "Remove posix account"
+#~ msgstr "Usuń konto posixowe"
+
+#~ msgid "Create posix account"
+#~ msgstr "Utwórz konto posixowe"
+
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr "Usuwanie konta posix z dn '%s' nieudane."
+
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "Zapisywanie konta posix z dn '%s' nieudane."
+
+#~ msgid "Unix settings"
+#~ msgstr "Ustawienia Unix"
+
+#~ msgid "Notifications"
+#~ msgstr "Powiadamiania"
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "Identyfikacja użytkownika"
+
+#~ msgid "Please specify at least one recipient to send a message!"
+#~ msgstr "Proszę podać przynajmniej jednego odbiorcę aby wysłać wiadomość!"
+
+#, fuzzy
+#~ msgid "Cannot find a DESC tag in file '%s'!"
+#~ msgstr "Nie można stworzyć pliku '%s'."
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Powiadamiania"
+
+#, fuzzy
+#~ msgid "Notification plugin"
+#~ msgstr "Powiadomienie wysłane!"
+
+#, fuzzy
+#~ msgid "Allow sending notifications"
+#~ msgstr "Opcje powiadamiania o hoście"
+
+#~ msgid "Notification target"
+#~ msgstr "Cel powiadomienia"
+
+#~ msgid "Use target from"
+#~ msgstr "Użyj celu z"
+
+#~ msgid "Recipients"
+#~ msgstr "Odbiorcy"
+
+#~ msgid "Message"
+#~ msgstr "Wiadomość"
+
+#~ msgid "Import"
+#~ msgstr "Import"
+
+#~ msgid "Notification send!"
+#~ msgstr "Powiadomienie wysłane!"
+
+#~ msgid ""
+#~ "Your message has been sent successfully. Press the continue button to get "
+#~ "back to the notification plugin."
+#~ msgstr ""
+#~ "Twoja wiadomość została wysłana prawidłowo. Naciśnij przycisk kontynuuj "
+#~ "aby wrócić do dodatku powiadamiania."
+
+#~ msgid "Saving of object group/generic with dn '%s' failed."
+#~ msgstr "Zapisywanie grupy/podstawowej z dn '%s' nieudane."
+
+#~ msgid "Removing of object group/generic with dn '%s' failed."
+#~ msgstr "Usuwanie grupy/podstawowej z dn '%s' nieudane."
+
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "Usuwanie departamentu z dn '%s' nieudane."
+
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "Zapisywanie departamentu z dn '%s' nieudane."
+
+#~ msgid "Handle object tagging with dn '%s' failed."
+#~ msgstr "Obsługa znakowania obiektu z dn '%s' nieudana."
+
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "Zapisywanie ACL w dn '%s' nieudane."
+
+#, fuzzy
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "Usuwanie bloklisty z dn '%s' nieudane."
+
+#, fuzzy
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "Usuwanie aplikacji z grupy obiektów '%s' nieudane"
+
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "Usuwanie grupy z dn '%s' nieudane."
+
+#~ msgid "Saving object snapshot with dn '%s' failed."
+#~ msgstr "Zapisywanie obiektu snapshotu w dn '%s' nieudane"
+
+#~ msgid "Restore snapshot with dn '%s' failed."
+#~ msgstr "Odtwarzanie snapshot'u z dn '%s' nieudane."
+
+#, fuzzy
+#~ msgid "Creating subtree '%s' failed."
+#~ msgstr "Tworzenie FAI/skryptu z dn '%s' nieudane."
+
+#~ msgid "Ldap import with dn '%s' failed."
+#~ msgstr "Import LDAP z dn '%s' nieudany."
+
+#~ msgid "This does something"
+#~ msgstr "To robi coś"
+
+#~ msgid "The required field 'Home directory' is not set."
+#~ msgstr "Wymagane pole 'Katalog domowy' nie jest ustawione."
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr "Proszę podać prawidłową ścieżkę w polu 'Katalog domowy'."
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "Wartość podana jako 'UID' jest nieprawidłowa."
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "Wartość podana jako 'GID' jest nieprawidłowa."
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "Wartość podana jako 'GID' jest za mała."
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "Wartość podana jako 'shadowMin' jest nieprawidłowa."
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "Wartość podana jako 'shadowMax' jest nieprawidłowa."
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "Wartość podana jako 'shadowWarning' jest nieprawidłowa."
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowWarning' bez 'shadowMax' nie ma sensu."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be smaller than 'shadowMax'."
+#~ msgstr ""
+#~ "Wartość podana jako 'shadowWarning' powinna być mniejsza niż 'shadowMax'."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be greater than 'shadowMin'."
+#~ msgstr ""
+#~ "Wartość podana jako 'shadowWarning' powinna być większa niż 'shadowMin'."
+
+#~ msgid "Value specified as 'shadowInactive' is not valid."
+#~ msgstr "Wartość podana jako ;shadowInactive' jest nieprawidłowa."
+
+#~ msgid "'shadowInactive' without 'shadowMax' makes no sense."
+#~ msgstr "'shadowInactive' bez 'shadowMax' nie ma sensu."
+
+#~ msgid "The required field 'Given name' is not set."
+#~ msgstr "Wymagane pole 'Podana nazwa' jest puste."
+
+#~ msgid "The required field 'Login' is not set."
+#~ msgstr "Wymagane pole 'Login' jest puste."
+
+#~ msgid ""
+#~ "There's already a person with this 'Name'/'Given name' combination in the "
+#~ "database."
+#~ msgstr "Już istnieje osoba z tą 'Nazwą'/'Podaną nazwą' w bazie."
+
+#~ msgid ""
+#~ "The field 'Login' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Pole 'Login' zawiera niedozwolone znaki. Tylko małe litery, liczny i "
+#~ "myślniki są dozwolone."
+
+#~ msgid "The field 'Homepage' contains an invalid URL definition."
+#~ msgstr "Pole 'Strona WWW' zawiera niepoprawną definicję URL."
+
+#~ msgid "The field 'Given name' contains invalid characters."
+#~ msgstr "Pole 'Podana nazwa' zawiera niedozwolone znaki."
+
+#~ msgid "The field 'Phone' contains an invalid phone number."
+#~ msgstr "Pole 'Telefon' zawiera nieprawidłowy numer telefonu."
+
+#~ msgid "The field 'Mobile' contains an invalid phone number."
+#~ msgstr "Pole 'Komórka' zawiera nieprawidłowy numer telefonu."
+
+#~ msgid "The field 'Pager' contains an invalid phone number."
+#~ msgstr "Pole 'Pager' zawiera nieprawidłowy numer telefonu."
+
+#~ msgid ""
+#~ "The field 'Name' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Pole 'Nazwa' zawiera niedozwolone znaki. Tylko małe litery, liczny i "
+#~ "myślniki są dozwolone."
+
+#~ msgid "Value specified as 'Name' is already used."
+#~ msgstr "Wartość podana jako 'Nazwa' jest już użyta."
+
+#, fuzzy
+#~ msgid "Please select a valid template."
+#~ msgstr "Proszę wybrać prawidłowy plik"
+
+#~ msgid "A person with the choosen name is already used in this tree."
+#~ msgstr "Osoba o wybranej nazwie już istnieje w tym drzewie."
+
+#~ msgid "Department with that 'Name' already exists."
+#~ msgstr "Istnieje już departament o takiej nazwie."
+
+#~ msgid ""
+#~ "The field 'Name' contains the reserved word '%s'. Please choose another "
+#~ "name."
+#~ msgstr ""
+#~ "Pole 'Nazwa' zawiera zarezerwowane słow '%s'. Proszę wybrać inną nazwę."
+
+#~ msgid "There is already an object with this cn."
+#~ msgstr "Już istnieje obiekt z tym cn."
+
+#, fuzzy
+#~ msgid "Cannot use %s encryption: no PHP functions for sha1/mhash available"
+#~ msgstr ""
+#~ "Nie można użyć sha do szyfrowania, brak funkcji sha1 / mhash / crypt"
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTCREATE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Polecenie '%s' podane jako POSTCREATE dla dodatku '%s' nie istnieje."
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTREMOVE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Polecenie '%s' podane jako POSTREMOVE dla dodatku '%s' nie istnieje."
+
+#, fuzzy
+#~ msgid "You are going to paste the cutted entry '%s'."
+#~ msgstr "Zamierzasz skopiować wpis '%s'."
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr "Brak uprawnień do wysyłania wiadomości!"
+
+#~ msgid "Please specify a valid description for this snapshot."
+#~ msgstr "Proszę podać prawidłowy opis dla tego snapshot'u."
+
+#, fuzzy
+#~ msgid ""
+#~ "Setting for SMBHASH in gosa.conf is incorrect! Cannot change Samba "
+#~ "password."
+#~ msgstr ""
+#~ "Parametr SMBHASH w gosa.conf jest nieprawidłowy! Nie można zmienić hasła "
+#~ "Samba."
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "Zdjęcie użytkownika"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "Zarządzanie systemem"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "Zamierzasz usunąć element %s."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to remove and change the properties of GOsa deamon "
+#~ "tasks."
+#~ msgstr ""
+#~ "To menu umożliwia tworzenie, usuwanie oraz edycję właściwości usług."
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "Lista departamentów"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "Kodowanie"
+
+#~ msgid "Task"
+#~ msgstr "Zadanie"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "PHP schedule it"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "Usuń"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Shell"
+
+#, fuzzy
+#~ msgid "System mass deployment"
+#~ msgstr "Zarządzanie systemem"
+
+#, fuzzy
+#~ msgid "Header Tag"
+#~ msgstr "nagłówek"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "PHP schedule it"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "Kodowanie"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "Płeć"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "Marzec"
+
+#, fuzzy
+#~ msgid "Available targets"
+#~ msgstr "Dostępni członkowie"
+
+#, fuzzy
+#~ msgid "Show object groups"
+#~ msgstr "Grupy obiektów"
+
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "Brak uprawnień do usunięcia  tego ACL!"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "Brak uprawnień do usunięcia  tego makro!"
+
+#~ msgid ""
+#~ "Your search method returned more than '%s' users, only '%s' users are "
+#~ "shown."
+#~ msgstr ""
+#~ "Metoda wyszukiwania zwróciła więcej niż '%s' użytkowników, tylko '%s' "
+#~ "jest pokazanych."
+
+#~ msgid "No configured SID found for '%s'."
+#~ msgstr "Nie znaleziono skonfigurowanego SID dla '%s'."
+
+#~ msgid "No configured RIDBASE found for '%s'."
+#~ msgstr "Nie znaleziono RIDBASE dla '%s'."
+
+#~ msgid "You are not allowed to delete this group!"
+#~ msgstr "Brak uprawnień do usunięcia tej grupy!"
+
+#~ msgid "You have no permission to remove this department."
+#~ msgstr "Brak uprawnień do usunięcia tego departamentu."
+
+#~ msgid "You are not allowed to delete this object group!"
+#~ msgstr "Brak uprawnień do usunięcia grupy obiektowej."
+
+#, fuzzy
+#~ msgid "Network resolv hook"
+#~ msgstr "Adres sieciowy"
+
+#~ msgid "Administration"
+#~ msgstr "Administracja"
+
+#~ msgid "Addons"
+#~ msgstr "Dodatki"
+
+#, fuzzy
+#~ msgid "ACL Role"
+#~ msgstr "ACLe"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Connectivity"
+#~ msgstr "Połączenia"
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "Specjalne"
+
+#~ msgid "Nagios"
+#~ msgstr "Nagios"
+
+#~ msgid "Options"
+#~ msgstr "Opcje"
+
+#~ msgid "Parameter"
+#~ msgstr "Parametr"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "Dodaj inwentarz"
+
+#~ msgid "Services"
+#~ msgstr "Usługi"
+
+#~ msgid "OGo"
+#~ msgstr "OGo"
+
+#~ msgid "Excel Export"
+#~ msgstr "Export do Excela"
+
+#~ msgid "CSV Import"
+#~ msgstr "Import z CSV"
+
+#~ msgid "Partitions"
+#~ msgstr "Partycje"
+
+#~ msgid "Script"
+#~ msgstr "Skrypt"
+
+#~ msgid "Variables"
+#~ msgstr "Zmienie"
+
+#~ msgid "Profiles"
+#~ msgstr "Profile"
+
+#~ msgid "Packages"
+#~ msgstr "Pakiety"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "Usługa Logowania"
+
+#~ msgid ""
+#~ "Can't connect to glpi database, there is no mysl extension available in "
+#~ "your php setup."
+#~ msgstr ""
+#~ "Nie można połączyć się z bazą glpi, brak wsparcia dla MySQL w "
+#~ "ustawieniach PHP."
+
+#~ msgid "Can't get specified attachment file, there is no entry with this id."
+#~ msgstr "Nie można pobrać zadanego załącznika, brak wpisu z tym id."
+
+#~ msgid "Can't open file '%s', possibly the file does not exist."
+#~ msgstr "Nie można otworzyć pliku '%s', prawdopodobnie plik nie istnieje."
+
+#~ msgid "Can't read file '%s', check permissions."
+#~ msgstr "Nie można czytać pliku '%s', proszę sprawdzić uprawnienia."
diff --git a/gosa-core/locale/core/pt/LC_MESSAGES/messages.po b/gosa-core/locale/core/pt/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..46fae58
--- /dev/null
+++ b/gosa-core/locale/core/pt/LC_MESSAGES/messages.po
@@ -0,0 +1,6425 @@
+# translation of messages.po to Brazilian Portuguese
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Clever de Oliveira Jr. <clever at dri.cefetmg.br>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages-2.6.4-pt_BR\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2009-03-02 15:03-0300\n"
+"Last-Translator: Clever de Oliveira Jr. <clever at dri.cefetmg.br>\n"
+"Language-Team: Brazilian Portuguese <pt at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Atenção"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Então, se você tem certeza, pressione 'Deletar' para continuar ou 'Cancelar' "
+"para abortar."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Nome do usuário"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Senha"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Diretório"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Entrar"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Clique aqui para logar"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Salvar"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Operação finalizada"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Finalizar"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Definir"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Aplicar"
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Membros"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Nova senha"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr ""
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Alterar senha"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Clique aqui para alterar sua senha"
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr ""
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Objeto"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Continuar"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Erro"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Informação"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Altere sua senha"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Sucesso"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Sua senha foi alterada com sucesso."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Senha alterada"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Senha atual"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr "Nova senha repetida"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Alterar"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Conflito de travamento detectado"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Se esta detecção for falsa, um usuário pode ter fechado o navegador durante "
+"a operação de edição. Você pode destravar pressionando o botão 'Editar mesmo "
+"assim'."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "Visualizador de ajuda do GOsa"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Índice"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Procura"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Sua sessão do GOsa expirou!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Entrar novamente"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Conflito de sessão detectado"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Sair"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Você esta atualmente editando uma entrada na base de dados. Você quer perder "
+"as alterações realizadas?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Principal"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Ajuda"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Sair"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Logado:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr ""
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "A configuração GOsa %s/%s não pôde ser lida. Abortado."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Erro de configuração"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr ""
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr "Erro: Método de senha não disponível!"
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"A senha digitada nos campos 'Nova senha' e 'Repita nova senha' não conferem."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "A senha utilizada como nova e atual são muito similares."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "A senha utilizada como nova é curta."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Login"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Por favor, verifique a combinação usuário / senha"
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Você não tem permissão para alterar sua senha."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "O alterador externo de senhas reportou um problema:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "A sessão não será criptografada."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Entre com a sessão SSL"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr ""
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr ""
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "Erro de LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Por favor, especifique um nome de usuário válido!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Por favor, especifique sua senha!"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr ""
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Seu navegador está com suporte a cookies desabilitado. Por favor, habilite-o "
+"e recarregue essa página antes de entrar!"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr ""
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr ""
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr ""
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr ""
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr ""
+
+#: html/main.php:364
+msgid "Configuration Error"
+msgstr ""
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Navegador de ajuda"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Não existe helpfile especificado para essa classe"
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr ""
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr ""
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Helpdir '%s' não está acessível, não foi possível ler nenhum helpfiles."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "desconfigurado"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Erro interno"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr ""
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr ""
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr "O módulo mcrypt não foi encontrado. Por favor, instale o php5-mcrypt."
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr "A conexão com o host '%s:%s' falhou: %s"
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr "Alcançado o limite de tempo de %s segundos para a conexão."
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Controle de acesso"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr "Gerenciar listas de controle de acesso"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "Usuários"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Todas as categorias"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "Limpar ACLs"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Um nível"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Objeto atual"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Subárvore completa"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Subárvore completa (permanente)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Use ACL definida na regra"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Usuários"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Grupos"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Para cima"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "Para baixo"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Editar"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Deletar"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr "Nenhuma configuração de ACL para essa categoria!"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Contém ACLs para estes objetos: %s"
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "Categoria ACL"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "Editar ACL para '%s' - o escopo é '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Todos os objetos na subárvore atual"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr "Exibir/Ocultar configurações avançadas"
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Criar objetos"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Mover objetos"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Remover objetos"
+
+#: include/class_acl.inc:807
+msgid "Grant permission to owner"
+msgstr "Conceder permissão para o dono"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "leitura"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "escrita"
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr "Objeto completo"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "Erro interno"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "Tipo de ACL desconhecida '%s'!"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entrada desconhecida '%s'!"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr "Regra: %s"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr "regra desconhecida"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Contém configurações para estes objetos: %s"
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr ""
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Membros do grupo"
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr "Lista de controle de acesso"
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr "Regras de ACL"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr ""
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "Criar"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Ir para departamento raiz"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Raiz"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Subir um departamento"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Ir para departamento de usuários"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Origem"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Recarregar lista"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Submeter"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Ações"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr ""
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr ""
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Colar"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr ""
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr ""
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+msgid "Restore snapshots"
+msgstr ""
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr ""
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr ""
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Editar esta entrada"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Deletar esta entrada"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr ""
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr ""
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr ""
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr ""
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr ""
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Editar mesmo assim"
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr ""
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr ""
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr ""
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr ""
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr ""
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr ""
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr ""
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Alemão"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Francês"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Italiano"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Espanhol"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Inglês"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Holandês"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Polonês"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr ""
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr ""
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Russo"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+msgid "Cannot allocate a free ID:"
+msgstr ""
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr ""
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr ""
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr ""
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr ""
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Referências"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Descrição"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "Pager"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr ""
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr ""
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr ""
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr ""
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr ""
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr ""
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr ""
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Tipo"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr ""
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr "Procurar em subárvores"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "de"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr ""
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr ""
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr ""
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr ""
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr ""
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr ""
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr ""
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr ""
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+"A configuração do fuso horário '%s' no gosa.conf não é válida. Não foi "
+"possível calcular o intervalo do fuso horário corretamente."
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "Principal"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Continuar"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "Erro de LDAP"
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Selecione para listar objetos do tipo '%s'."
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Selecione para listar objetos contendo '%s'."
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Selecione para listar objetos que possuem '%s' habilitado"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Selecione para pesquisar dentro das sub-árvores"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr "Esse objeto será apagado!"
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr "Esse objeto '%s' será apagado!"
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr "Esse objeto será apagado: %s"
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr "Esse objeto '%s' será apagado: %s"
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr "Esse objeto será apagado:"
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr "Esse objeto '%s' será apagado:"
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr "Estes objetos serão apagados: %s"
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr "Estes objetos '%s' serão apagados: %s"
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr "Você não tem permissão para apagar esse objeto!"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr "Você não tem permissão para apagar o objeto:"
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr "Você não tem permissão para apagar estes objetos:"
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr "Você não tem permissão para criar esse objeto!"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr "Você não tem permissão para criar o objeto:"
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr "Você não tem permissão para criar estes objetos:"
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr "Você não tem permissão para modificar esse objeto!"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr "Você não tem permissão para modificar o objeto:"
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr "Você não tem permissão para modificar estes objetos:"
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr "Você não tem permissão para ver esse objeto!"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr "Você não tem permissão para ver o objeto:"
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr "Você não tem permissão para ver estes objetos:"
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr "Você não tem permissão para mover esse objeto!"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr "Você não tem permissão para mover o objeto:"
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr "Você não tem permissão para mover estes objetos:"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr "Informação da conexão"
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Não foi possível conectar ao banco de dados  %s!"
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr "Não foi possível selecionar o banco de dados %s!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr "Servidor %s não definido!"
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr "Não foi possível pesquisar no banco de dados %s!"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "O campo '%s' contém uma palavra reservada!"
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr "O comando especificado como %s, relativo ao plugin '%s', não existe!"
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr "O comando '%s' é inválido!"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr "O comando '%s' (%s) para o plugin %s é inválido!"
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr "O comando '%s' para o plugin %s is invalid!"
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "O comando '%s' (%s) é inválido!"
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Não foi possível executar o comando '%s'!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr "Não foi possível executar o comando '%s' (%s) para o plugin %s!"
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr "Não foi possível executar o comando '%s' para o plugin %s!"
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:238
+#, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Adicionar"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Voltar"
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr "Clique em Editar para alterar as informações desta janela"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Janeiro"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Fevereiro"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Março"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Abril"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Maio"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Junho"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Julho"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Agosto"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Setembro"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Outubro"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Novembro"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Dezembro"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Domingo"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Segunda"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr "Terça"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr "Quarta"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr "Quinta"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Sexta"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Sábado"
+
+#: include/utils/class_msgPool.inc:453
+msgid "MySQL operation failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Alerta de performance"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+"A performance do LDAP está ruim: a última pesquisa levou cerca de %.2fs!"
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+"Não foi possível criar subárvores automaticamente com RDN '%s': classe de "
+"objeto não encontrada!"
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+"Não foi possível criar subárvores automaticamente com '%s': não suportado"
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "enquanto executava em '%s' usando LDAP server '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "enquanto executava no LDAP server %s"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"Esse não é um DN válido: '%s'. O bloco para importação deve iniciar com "
+"'dn: ...' na linha %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Erro enquanto importava dn: '%s', por favor, verifique seu LDIF na linha %s!"
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr ""
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr ""
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr ""
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Erro de XML no gosa.conf: %s na linha %d"
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Não foi possível realizar bind para o LDAP. Por favor, contacte o "
+"administrador do sistema."
+
+#: include/class_config.inc:695
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "sambaSID e/ou sambaRidBase não configurado!"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr "Configuração"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+"O arquivo de configuração do GOsa parece estar desatualizador. Por favor, "
+"remova-o e execute o configurador novamente."
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Todos os objetos nessa categoria"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+"O formato da configuração foi alterado. Por favor, execute novamente o "
+"configurador!"
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr "Falha em copiar e colar!"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Não foi possível atribuir permissão para '%s'"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr "'%s' não é um objeto LDAP válido"
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr "Sem permissão de escrita em '%s'"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr "Estes objetos serão colados: %s"
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr "Esse objeto será colado: %s"
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "Impossível colar"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Geral"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Correio"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "FAX"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Fone"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Aplicação"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Servidor"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Estação de trabalho"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Impressora"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Nome do objeto"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr ""
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr ""
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Bem vindo %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Este é o menu principal do GOsa. Você pode selecionar tarefas a partir do "
+"menu esquerdo ou através dos ícones abaixo. Todas as alterações serão "
+"aplicadas diretamente ao seu servidor LDAP."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Utilize 'Sair' no canto superior esquerdo para fechar a conexão e "
+"'Principal' para voltar a visão de ícones."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+msgid "Please select the desired entries"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr ""
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Usuário"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Nome"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Base"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Filtros"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Departamentos"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "Servidores"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "Servidores"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "Estações de Trabalho"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "Terminais"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "Impressoras"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Modelos"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Grupos de objeto"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+msgid "Templates"
+msgstr "Modelos"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "nenhum"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "Usuários"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "Grupos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "Aplicações"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "Departamentos"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "Servidores"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "Estações de Trabalho"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "Terminais"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "Telefones"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "Impressoras"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "desabilitado"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "acesso completo"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "permitir acesso a estas máquinas"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "Dn não existente:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+msgid "Sytem trust"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Nome do grupo"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr ""
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Sistema de confiança"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Modo de confiança"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Fila de Telefone"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Sistemas"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Início"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Dispositivos"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "Sumário FAI"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Ambiente"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Aplicações"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+#, fuzzy
+msgid "List of object groups"
+msgstr "Lista dos grupos"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Propriedades"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Criar"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Remover"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Lista dos grupos"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "Remover foto"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Filtros"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Escolha o departamento para base de procura"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Exibir combinação de objetos"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Expressão regular para combinação de nomes de objeto"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Selecione sistemas para adicionar"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Exibir sistemas do departamento"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Exibir sistemas combinados"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Expressão regular para conferência de endereços"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Ele pode ser o grupo primário de um usuário. Por favor, tenha certeza se "
+"realmente quer fazer isso, pois o GOsa não possui uma forma para restaurar "
+"seus dados anteriores."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Nome fornecido"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "Sobrenome"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Forçar GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "no domínio"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Membros estão no grupo phone pickup"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Membros do grupo"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr ""
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+#, fuzzy
+msgid "Show primary groups"
+msgstr "Grupo primário"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+#, fuzzy
+msgid "Show samba groups"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr ""
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Lista dos grupos"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "Lista dos grupos"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "Remover foto"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Grupo samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Administradores do domínio"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Convidados do domínio"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "! id desconhecido"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Administração de grupos"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Editar propriedades de telefone"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Editar propriedades de correio"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Editar propriedades do samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Editar propriedades de telefone"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Editar propriedades do samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Editar propriedades de ambiente"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Isso inclui, para este usuário, todos os dados da conta, regras de acesso, "
+"configurações imap e etc. Por favor, tenha certeza se quer realmente fazer "
+"isso, pois o GOsa não tem como recuperar seus dados anteriores."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Para alterar a senha do usuário utilize os campos abaixo. As alterações "
+"surtem efeito imediatamente. Por favor, memorize a nova senha porque o "
+"usuário não será capaz de acessar o sistema sem ela."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Alteração de senha afeta a autenticação dos serviços de correio, proxy, "
+"samba e unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Repita nova senha"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr ""
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Definir a senha"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Criando um novo usuário usando modelos"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"A criação de usuários pode ser assistida pelo uso de modelos. Muitos campos "
+"podem ser preenchidos automaticamente. Escolha 'nenhum' para não utilizar "
+"modelos."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Modelo"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Último nome"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Primeiro nome"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:656
+msgid "Account locking"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "Minha conta"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "Minha conta"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Editar propriedades gerais"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Editar propriedades UNIX"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Editar propriedades do netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Editar propriedades UNIX"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Lista de usuários"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Lista de usuários"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Minha conta"
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Criar usuário do modelo"
+
+#: plugins/admin/users/user-list.xml:213
+#, fuzzy
+msgid "Edit user"
+msgstr "Editar esta entrada"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Remover foto"
+
+#: plugins/admin/users/user-filter.tpl:11
+#, fuzzy
+msgid "Show templates"
+msgstr "Modelos"
+
+#: plugins/admin/users/user-filter.tpl:12
+msgid "Show functional users"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:13
+msgid "Show POSIX users"
+msgstr ""
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Usuários do domínio"
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"O melhor que se tem a fazer antes de realizar esta ação é salvar os dados da "
+"sua árvore LDAP em um arquivo. Então, se pronto, pressione 'Deletar' para "
+"continuar ou 'Cancelar' para abortar."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Lista dos departamentos"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "no domínio"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Administradores do domínio"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "País"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+msgid "Locality"
+msgstr ""
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Organização"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+msgid "Locality name"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+msgid "Name of locality to create"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr ""
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Exibir sistemas do departamento"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Localização"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Estado"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Endereço"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr ""
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+msgid "Domain Component"
+msgstr ""
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Departamentos"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr ""
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+msgid "Organization name"
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Caixa postal"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr ""
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+msgid "Country name"
+msgstr ""
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Administradores do domínio"
+
+#: plugins/admin/departments/domain.tpl:14
+msgid "Name of domain to create"
+msgstr ""
+
+#: plugins/admin/departments/country.tpl:14
+msgid "Name of country to create"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Nome do departamento"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:11
+msgid "Name of organization"
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:14
+msgid "Name of organization to create"
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Papel"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+msgid "Permissions"
+msgstr ""
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr ""
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Lista de controle de acesso"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Modelos"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "feminino"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "masculino"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Número serial"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+"(Alguns tipos de certificados não são suportados atualmente e podem ser "
+"exibidos como 'inválidos'.)"
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Certificado é válido de %s para %s e está atualmente %s."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "válido"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "inválido"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Nenhum certificado instalado"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Página pessoal"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Celular"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Pager"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Data de nascimento"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Unidade"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Identificação da residência"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Vocação"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Última entrega"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Localização da pessoa"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Descrição da unidade"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Área de assunto"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Título funcional"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Número serial do certificado"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Visível publicamente"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Rua"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "CEP"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Minha conta"
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Título pessoal"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Título acadêmico"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Sexo"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Foto do usuário"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Estações de Trabalho"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Tipo de empregado"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Caixa postal residencial"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1647
+msgid "User password method"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Informação pessoal"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Foto pessoal"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Alterar foto"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Nome modelo"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Linguagem preferida"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Telefone privativo"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Armazenamento da senha"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Certificados"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Editar certificados"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Informação organizacional"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Nº do departamento"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Nº do empregado"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Nº da sala"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Por favor, utilize a orelha telefone"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Escolha a sub-árvore para adicionar o usuário"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Selecione a base"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Configurações do usuário"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Senha limpa"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Definir nova senha"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Remover foto"
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr ""
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Informação geral do usuário"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Você alterou o método de armazenamento da senha na base ldap. Por esta razão "
+"você terá que digitar sua senha novamente agora. GOsa irá codifica-la com o "
+"método selecionado."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Certificado padrão"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Certificado S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Certificado PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "expirado"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "ativo"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+msgid "password not changeable"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "automático"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr "A senha não pode ser alterada até %s dias após a última troca"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "A senha deve ser alterada após %s dias"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, php-format
+msgid "Warn user %s days before password expiry"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Grupo do usuário"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Diretório pessoal"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "ID do usuário"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Grupo primário"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Estatus"
+
+#: plugins/personal/posix/generic.tpl:41
+msgid "Last logon"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Forçar UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Membros do grupo"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Atenção: mais do que 16 grupos não são suportados pelo NFS!)"
+
+#: plugins/personal/posix/generic.tpl:100
+msgid "Common group"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Grupo do usuário"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Conta"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Selecione grupos para adicionar"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Exibir grupos do departamento"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Exibir grupos combinados"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Expressão regular para combinação de nomes de grupos"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Exibir grupos de usuários"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Nome do usuário dos grupos exibidos"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+#, fuzzy
+msgid "Show servers"
+msgstr "Servidores"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+#, fuzzy
+msgid "Show workstations"
+msgstr "Estações de Trabalho"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+#, fuzzy
+msgid "Show terminals"
+msgstr "Terminais"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Configurações Posix"
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr ""
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "O usuário deve alterar sua senha no primeiro acesso"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Senha expira em"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Sua senha foi alterada com sucesso. Lembre-se de alterar todos os programas "
+"que a usem."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr "Configurações de senha"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Para alterar sua senha pessoal, use os campos abaixo. As alterações terão "
+"efeito imediato. Por favor, memorize a nova senha porque você não será capaz "
+"de acessar o sistema sem ela."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Limpar campos"
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Você precisa especificar sua senha atual para continuar."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "O campo 'Nova senha' esta vazio."
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "A senha digitada não confere com a senha atual."
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr ""
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr ""
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Alteração de senha não permitida"
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Catálogo de Endereços"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr ""
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr ""
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Configurações samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr ""
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr ""
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr ""
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr ""
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr ""
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr ""
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr ""
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr ""
+
+#: setup/setup_config2.tpl:123
+msgid "GOsa logging"
+msgstr ""
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Configurações de Correio"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Método de correio"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr ""
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr ""
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr ""
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr ""
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr ""
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr ""
+
+#: setup/setup_frame.tpl:19
+msgid "Setup"
+msgstr ""
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr ""
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr ""
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr ""
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr ""
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr ""
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Fechar"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr ""
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr ""
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr ""
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:219
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr ""
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr ""
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr ""
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr ""
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr ""
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+msgid "Refresh"
+msgstr "Recarregar"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+msgid "compression module"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr ""
+
+#: setup/setup_config3.tpl:6
+msgid "Enable primary group filter"
+msgstr ""
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr ""
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr ""
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr ""
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr ""
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr ""
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr ""
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr ""
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr ""
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr ""
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr ""
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr ""
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr ""
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr ""
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr ""
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr ""
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr ""
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr ""
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr ""
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Endereço de Correio"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr ""
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr ""
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr ""
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr ""
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr ""
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr ""
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr ""
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr ""
+
+#: setup/setup_ldap.tpl:37
+msgid "Connection URI"
+msgstr ""
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr ""
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr ""
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr ""
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr ""
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr ""
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:141
+msgid "Inspecting object classes in root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:147
+msgid "Checking permission for LDAP database"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:202
+msgid "Checking for old style USB devices"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:208
+msgid "Checking for old services that have to be migrated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:214
+msgid "Checking for old style application menus"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1033
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "Por favor, verifique a combinação usuário / senha"
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, php-format
+msgid "Updating '%s' failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr ""
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr ""
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr ""
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr ""
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr ""
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr ""
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr ""
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr ""
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr ""
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr ""
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr ""
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr ""
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr ""
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr ""
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr ""
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr ""
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr ""
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr ""
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr ""
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr ""
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr ""
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr ""
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr ""
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr ""
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr ""
+
+#~ msgid "Select to see servers"
+#~ msgstr "Selecione para ver servidores"
+
+#~ msgid "Display users matching"
+#~ msgstr "Exibir combinação de usuários"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Lista de usuários"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Nome fornecido"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Sobrenome"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Lista dos grupos"
+
+#~ msgid "Submit department"
+#~ msgstr "Submeter departamento"
+
+#~ msgid "edit"
+#~ msgstr "editar"
+
+#~ msgid "delete"
+#~ msgstr "deletar"
+
+#~ msgid "Number of listed departments"
+#~ msgstr "Número de departamentos listados"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr "Selecione para ver os grupos que são primários dos usuários"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr ""
+#~ "Selecione para ver grupos normais que tem somente aspectos funcionais"
+
+#~ msgid "User administration"
+#~ msgstr "Administração de usuários"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Telefones"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Editar propriedades UNIX"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "Editar propriedades de fax"
+
+#~ msgid "Create user with this template"
+#~ msgstr "Criar usuário com este modelo"
+
+#~ msgid "password"
+#~ msgstr "senha"
+
+#~ msgid "Delete user"
+#~ msgstr "Deletar usuário"
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Departamento"
+
+#~ msgid "Summary"
+#~ msgstr "Sumário"
+
+#~ msgid "ACL takes effect for all users"
+#~ msgstr "ACL surte efeito para todos os usuários"
diff --git a/gosa-core/locale/core/ru/LC_MESSAGES/messages.po b/gosa-core/locale/core/ru/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..824fe78
--- /dev/null
+++ b/gosa-core/locale/core/ru/LC_MESSAGES/messages.po
@@ -0,0 +1,8526 @@
+# Translation of messages.po to Russian
+# Valia V. Vaneeva <fattie at altlinux.ru>, 2004.
+# $Id: messages.po,v 1.61 2005/04/18 10:37:13 migor-guest Exp $
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2005-04-18 14:35+0300\n"
+"Last-Translator: Igor Muratov <migor at altlinux.org>\n"
+"Language-Team: ALT Linux Team\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: poEdit 1.3.1\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Предупреждение"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Это приложение может использоваться несколькими группами. Подумайте еще раз, "
+"действительно ли вы хотите удалить его, так как GOsa не сможет отменить "
+"результаты этой операции."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+#, fuzzy
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Если вы уверены в своих действиях, нажмите на кнопку <i>Удалить</i>, иначе "
+"нажмите <i>Отмена</i>."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Отмена"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+#, fuzzy
+msgid "Login screen"
+msgstr "Служба печати"
+
+#: ihtml/themes/default/login.tpl:34
+#, fuzzy
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+"Чтобы войти в систему<br> введите свои <i>имя пользователя</i> и <i>пароль</"
+"i>."
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Имя пользователя"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Пароль"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Каталог"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Войти"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Нажмите на эту кнопку, чтобы войти в систему"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Сохранить"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+#, fuzzy
+msgid "Cancel all"
+msgstr "Отмена"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+#, fuzzy
+msgid "Operation complete"
+msgstr "не полный"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Готово"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"Ограничение на количество возвращаемых объектов позволяет ускорить операции "
+"поиска и предохраняет сервер LDAP от большой нагрузки. Простейший способ "
+"снизить время обработки запроса при обслуживаии большой базы данных это "
+"установить минимальное значение. Кроме того, будет очень полезно "
+"использовать фильтры для просмотра только ограниченного количества объектов."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Выберите тип реакции для данной сессии"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr "игнорировать ошибку и показать все найденые объекты"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+#, fuzzy
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"Игнорировать ошибку и показать все возвращаемые объекты в пределах лимита и "
+"позволить использовать фильтры"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Установить"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+#, fuzzy
+msgid "New ACL"
+msgstr "Создать"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "ACL type"
+msgstr "Тип"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "Select an acl type"
+msgstr "Выберите, чтобы просмотреть серверы"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Применить"
+
+#: ihtml/themes/default/acl.tpl:36
+#, fuzzy
+msgid "Additional filter options"
+msgstr "Дополнительные записи в fstab"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+#, fuzzy
+msgid "Available members"
+msgstr "Доступные приложения"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+#, fuzzy
+msgid "Members"
+msgstr "Включаемые объекты"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+#, fuzzy
+msgid "List of available ACL categories"
+msgstr "Выберите тип мыши"
+
+#: ihtml/themes/default/acl.tpl:112
+#, fuzzy
+msgid "ACL for this object"
+msgstr "Проверка модуля gd"
+
+#: ihtml/themes/default/acl.tpl:118
+#, fuzzy
+msgid "Available roles"
+msgstr "Доступные приложения"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+#, fuzzy
+msgid "Your password has expired. Please choose a new one!"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+#, fuzzy
+msgid "Old password"
+msgstr "Пароль"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Новый пароль"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+#, fuzzy
+msgid "Verify password"
+msgstr "Пароль"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Сменить пароль"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+#, fuzzy
+msgid "Click here to change your password"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr ""
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+#, fuzzy
+msgid "Restoring object snapshots"
+msgstr "Объект группы"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "Объект"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+#, fuzzy
+msgid "Creating object snapshots"
+msgstr "Объект группы"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+#, fuzzy
+msgid "Timestamp"
+msgstr "Таймаут (с)"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Продолжить"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr ""
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Информация"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:6
+#, fuzzy
+msgid "Change your password"
+msgstr "Сменить пароль"
+
+#: ihtml/themes/default/password.tpl:35
+#, fuzzy
+msgid "Success"
+msgstr "Экспорт успешен."
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+#, fuzzy
+msgid "Password change"
+msgstr "Сменить пароль"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Текущий пароль"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+#, fuzzy
+msgid "New password repeated"
+msgstr "Новый пароль"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+#, fuzzy
+msgid "Password strength"
+msgstr "Хэширование паролей"
+
+#: ihtml/themes/default/password.tpl:101
+#, fuzzy
+msgid "Change"
+msgstr "Канал"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Конфликт блокировок"
+
+#: ihtml/themes/default/islocked.tpl:9
+#, fuzzy
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Если результат этой проверки блокировки - ложь, очевидно, другой человек "
+"закрыл браузер во время редактирования данных. Вы можете удалить файл "
+"блокировки, нажав на кнопку <i>Удалить</i>."
+
+#: ihtml/themes/default/islocked.tpl:16
+msgid "Read only"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr ""
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Поиск"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+
+#: ihtml/themes/default/logout.tpl:10
+#, fuzzy
+msgid "Sign in again"
+msgstr "Войти"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Конфликт сеансов"
+
+#: ihtml/themes/default/conflict.tpl:6
+#, fuzzy
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Возможно, есть еще один экземпляр вашего сеанса. Работа с несколькими окнами "
+"одновременно технически невозможна и в значительной мере зависит от "
+"используемого браузера. Использование разных браузеров одновременно "
+"(например, IE и Mozilla) возможно. Нажав на кнопку <b>Выход</b>, вы "
+"завершите текущий сеанс."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Если вы ничего не предпримете, редактируемые вами данные не будут сохранены, "
+"поэтому закройте все окна, кроме одного, и начните сеанс заново."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Выход"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Вы сейчас редактируете объект базы данных. Хотите отказаться от изменений?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Начало"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Справка"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Выход"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Пользователь:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Fatal error"
+msgstr "Терминал-сервер"
+
+#: html/password.php:58 html/index.php:144
+#, fuzzy, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr ""
+"Не удается прочитать файл настройки GOsa %s/gosa.conf. Операция прервана."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+#, fuzzy
+msgid "Configuration error"
+msgstr "Настроить"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, fuzzy, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr "Недоступен каталог \"%s\", указанный как каталог компиляции!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "Password method"
+msgstr "Хэширование паролей"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr "Введенные пароли не совпадают!"
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "Новый и текущий пароли слишком похожи."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "Новый пароль слишком короткий."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Имя пользователя"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Проверьте, правильно ли вы ввели имя пользователя и пароль."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "При попытке сменить пароль извне возникла проблема: "
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "Данные, передаваемые в течение этого сеанса, не будут зашифрованы."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Использовать шифрование SSL"
+
+#: html/index.php:57
+#, fuzzy
+msgid "Session is not encrypted!"
+msgstr "Данные, передаваемые в течение этого сеанса, не будут зашифрованы."
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+#, fuzzy
+msgid "Smarty error"
+msgstr "Состояние системы"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+#, fuzzy
+msgid "LDAP error"
+msgstr "Ошибка LDAP:"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr ""
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Введите корректное имя пользователя!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Введите свой пароль!"
+
+#: html/index.php:314
+#, fuzzy
+msgid "Authentication error"
+msgstr "Рабочая станция Windows"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+#, fuzzy
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Не удается начать сеанс на LDAP-сервере. Обратитесь к системному "
+"администратору."
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: html/setup.php:66
+#, fuzzy
+msgid "Smarty"
+msgstr "Запуск"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+#, fuzzy
+msgid "PHP configuration"
+msgstr "Базы данных"
+
+#: html/main.php:168
+#, fuzzy
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"Используется механизм register_globals. GOsa не допустит пользователей в "
+"систему, пока он не будет отключен администратором."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+#, fuzzy
+msgid "Your password is about to expire, please change your password!"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: html/main.php:349
+#, fuzzy
+msgid "Plugin"
+msgstr "в"
+
+#: html/main.php:350
+#, fuzzy, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "Не удается найти определение для модуля \"%s\"!"
+
+#: html/main.php:364
+#, fuzzy
+msgid "Configuration Error"
+msgstr "Настроить"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr ""
+
+#: html/helpviewer.php:118
+#, fuzzy
+msgid "There is no helpfile specified for this class"
+msgstr "Метод '%s' не описан в вашем файле конфигурации."
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr ""
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+#, fuzzy
+msgid "next"
+msgstr "текст"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "Не настроено"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Терминал-сервер"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+#, fuzzy
+msgid "Permission"
+msgstr "Права для членов группы"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+#, fuzzy
+msgid "Permission error"
+msgstr "Права для членов группы"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, fuzzy, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Вам не разрешено менять пароль."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, fuzzy, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Вам не разрешено менять пароль."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+#, fuzzy
+msgid "Access control"
+msgstr "Параметры доступа"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+#, fuzzy
+msgid "Manage access control lists"
+msgstr "Параметры доступа"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "пользователи"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+#, fuzzy
+msgid "All categories"
+msgstr "Категория"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr ""
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+#, fuzzy
+msgid "One level"
+msgstr "Уровень информативности"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+#, fuzzy
+msgid "Current object"
+msgstr "Текущий пароль"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+#, fuzzy
+msgid "Complete subtree"
+msgstr "не полный"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr ""
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Пользователи"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Группы"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr ""
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+#, fuzzy
+msgid "Down"
+msgstr "Домен"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Изменить"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "Доступ"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Удалить"
+
+#: include/class_acl.inc:543
+#, fuzzy
+msgid "No ACL settings for this category!"
+msgstr "Описание группы"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+#, fuzzy
+msgid "category ACL"
+msgstr "Категория"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr ""
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr ""
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+#, fuzzy
+msgid "Show/hide advanced settings"
+msgstr "Настройки телефона"
+
+#: include/class_acl.inc:803
+#, fuzzy
+msgid "Create objects"
+msgstr "Объект группы"
+
+#: include/class_acl.inc:804
+#, fuzzy
+msgid "Move objects"
+msgstr "Включаемые объекты"
+
+#: include/class_acl.inc:805
+#, fuzzy
+msgid "Remove objects"
+msgstr "Включаемые объекты"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "Удалить"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "чтение"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "запись"
+
+#: include/class_acl.inc:816
+#, fuzzy
+msgid "Complete object"
+msgstr "Включаемые объекты"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+#, fuzzy
+msgid "Internal error"
+msgstr "Терминал-сервер"
+
+#: include/class_acl.inc:960
+#, fuzzy, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "состояние неизвестно"
+
+#: include/class_acl.inc:1005
+#, fuzzy, php-format
+msgid "Unknown entry '%s'!"
+msgstr "состояние неизвестно"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, fuzzy, php-format
+msgid "Role: %s"
+msgstr "Роль"
+
+#: include/class_acl.inc:1071
+#, fuzzy
+msgid "unknown role"
+msgstr "состояние неизвестно"
+
+#: include/class_acl.inc:1079
+#, fuzzy, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Описание группы"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "inactive"
+msgstr "Личный"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Члены группы"
+
+#: include/class_acl.inc:1266
+#, fuzzy
+msgid "Access control list"
+msgstr "Параметры доступа"
+
+#: include/class_acl.inc:1271
+#, fuzzy
+msgid "ACL roles"
+msgstr "Доступ"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"Имя/идентификатор пользователя не уникальны. Проверьте свою базу данных LDAP."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+#, fuzzy
+msgid "Select all"
+msgstr "Удалить"
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "Создать"
+
+#: include/class_listing.inc:988
+#, fuzzy
+msgid "Go to root department"
+msgstr "Список подразделений"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+#, fuzzy
+msgid "Root"
+msgstr "Перезагрузить"
+
+#: include/class_listing.inc:996
+#, fuzzy
+msgid "Go up one department"
+msgstr "Подразделение"
+
+#: include/class_listing.inc:1004
+#, fuzzy
+msgid "Go to users department"
+msgstr "Выберите подразделение"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+#, fuzzy
+msgid "Home"
+msgstr "Имя системы"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr ""
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr ""
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Действия"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+#, fuzzy
+msgid "Copy"
+msgstr "Компания"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+#, fuzzy
+msgid "Cut"
+msgstr "Выполнить"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+#, fuzzy
+msgid "Paste"
+msgstr "Дата"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+#, fuzzy
+msgid "Cut this entry"
+msgstr "Редактиовать объект"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+#, fuzzy
+msgid "Copy this entry"
+msgstr "Редактиовать объект"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "Создать настройки запись эл. почты"
+
+#: include/class_listing.inc:1474
+#, fuzzy
+msgid "Export list"
+msgstr "Экспорт"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+#, fuzzy
+msgid "Create snapshot"
+msgstr "Создать настройки запись эл. почты"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+#, fuzzy
+msgid "Create a new snapshot from this object"
+msgstr "Объект группы"
+
+#: include/class_sortableListing.inc:194
+#, fuzzy
+msgid "Edit this entry"
+msgstr "Редактиовать объект"
+
+#: include/class_sortableListing.inc:199
+#, fuzzy
+msgid "Delete this entry"
+msgstr "Удалить"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, fuzzy, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr "Ошибка при подключении к LDAP-серверу. Ответ сервера: \"%s\"."
+
+#: include/functions.inc:519
+#, fuzzy
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr ""
+"Имя/идентификатор пользователя не уникальны. Проверьте свою базу данных LDAP."
+
+#: include/functions.inc:604
+#, fuzzy
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"Имя/идентификатор пользователя не уникальны. Проверьте свою базу данных LDAP."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Не удается считать блокировку в базе данных LDAP. Проверьте, раздел \"config"
+"\" в файле gosa.conf!"
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP-сервер"
+
+#: include/functions.inc:929
+#, fuzzy
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Для блокируемого объекта обнаружено несколько блокировок. Этого быть не "
+"должно, проверьте работу LDAP."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "Найдено более %d объектов."
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Установить новое значение лимита в %s и показать мне это сообщение если "
+"лимит будет исчерпан."
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Настроить"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "не полный"
+
+#: include/functions.inc:1642
+#, fuzzy
+msgid "Continue anyway"
+msgstr "Продолжить"
+
+#: include/functions.inc:1644
+#, fuzzy
+msgid "Edit anyway"
+msgstr "Редактиовать объект"
+
+#: include/functions.inc:1646
+#, fuzzy, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Вы собираетесь удалить объект %s."
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr ""
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr ""
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr ""
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+#, fuzzy
+msgid "Cannot write to revision file!"
+msgstr "Удалить"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr ""
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "LDAP warning"
+msgstr "Экспорт в LDIF"
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr "Не удается получить информацию о схемах. Проверка схем невозможна!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, fuzzy, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Список подразделений"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr ""
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Немецкий"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Французский"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr ""
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Испанский"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Английский"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Датский"
+
+#: include/functions.inc:2823
+#, fuzzy
+msgid "Polish"
+msgstr "Английский"
+
+#: include/functions.inc:2825
+#, fuzzy
+msgid "Chinese"
+msgstr "сброс"
+
+#: include/functions.inc:2826
+#, fuzzy
+msgid "Vietnamese"
+msgstr "Имя"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Русский"
+
+#: include/functions.inc:3022
+#, fuzzy, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"Не удается найти команду \"%s\", указанную в поле POSTREMOVE модуля \"%s\"."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr "Слишком много пользователей, невозможно создать идентификатор!"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Список подразделений"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+msgid "no ID available!"
+msgstr ""
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+#, fuzzy
+msgid "Cannot allocate a free ID!"
+msgstr "Слишком много пользователей, невозможно создать идентификатор!"
+
+#: include/class_tabs.inc:57
+#, fuzzy, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr "Не удается подключиться к базе журналов, отчеты показаны не будут!"
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr ""
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Ссылки"
+
+#: include/class_SnapShotDialog.inc:82
+#, fuzzy, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Вы собираетесь удалить группу \"%s\"."
+
+#: include/class_SnapShotDialog.inc:137
+#, fuzzy
+msgid "Remove snapshot"
+msgstr "Создать настройки запись эл. почты"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Описание"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "Пейджер"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+#, fuzzy
+msgid "You are currently editing mutliple entries."
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "Password reset"
+msgstr "Срок действия пароля истекает"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "The user password was resetted, please set a new password value!"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: include/class_certificate.inc:73
+#, fuzzy
+msgid "Certificate is empty!"
+msgstr "Сертификаты"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+#, fuzzy
+msgid "Cannot extract information for non PEM certificates!"
+msgstr "Не удается создать квоту IMAP. Ответ сервера: \"%s\"."
+
+#: include/class_certificate.inc:219
+#, fuzzy
+msgid "No valid certificate loaded!"
+msgstr "Изменить сертификаты"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+#, fuzzy
+msgid "Send bugreport"
+msgstr "Отправитель"
+
+#: include/php_setup.inc:110
+#, fuzzy
+msgid "Toggle information"
+msgstr "Личная информация"
+
+#: include/php_setup.inc:120
+#, fuzzy
+msgid "PHP error"
+msgstr "Ошибка LDAP:"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:145
+#, fuzzy
+msgid "function"
+msgstr "Действие"
+
+#: include/php_setup.inc:150
+#, fuzzy
+msgid "static"
+msgstr "Состояние"
+
+#: include/php_setup.inc:154
+#, fuzzy
+msgid "method"
+msgstr "Почтовые настройки"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:188
+#, fuzzy
+msgid "File"
+msgstr "Файлы"
+
+#: include/php_setup.inc:188
+#, fuzzy
+msgid "Line"
+msgstr "в"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Тип"
+
+#: include/php_setup.inc:189
+#, fuzzy
+msgid "Arguments"
+msgstr "подразделения"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+#, fuzzy
+msgid "Search in subtrees"
+msgstr "Искать в поддеревьях"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+#, fuzzy
+msgid "from"
+msgstr "и"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+#, fuzzy
+msgid "to"
+msgstr "Отношение"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+#, fuzzy
+msgid "Restore"
+msgstr "Повторить"
+
+#: include/class_plugin.inc:2042
+#, fuzzy
+msgid "cut"
+msgstr "Выполнить"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr ""
+
+#: include/functions_helpviewer.inc:45
+#, fuzzy, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "Ошибка XML в gosa.conf: %s в строке %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr ""
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr ""
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr ""
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "Начало"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Продолжить"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "Ошибка LDAP:"
+
+#: include/utils/class_msgPool.inc:16
+#, fuzzy, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Выбрать объекты для добавления"
+
+#: include/utils/class_msgPool.inc:18
+#, fuzzy, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Показать группы с пользователями"
+
+#: include/utils/class_msgPool.inc:20
+#, fuzzy, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Выбрать объекты для добавления"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#, fuzzy
+msgid "Select to search within subtrees"
+msgstr "Искать в поддеревьях"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+#, fuzzy
+msgid "You have no permission to delete this object!"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+#, fuzzy
+msgid "You have no permission to delete the object:"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:75
+#, fuzzy
+msgid "You have no permission to delete these objects:"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:82
+#, fuzzy
+msgid "You have no permission to create this object!"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+#, fuzzy
+msgid "You have no permission to create the object:"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:93
+#, fuzzy
+msgid "You have no permission to create these objects:"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: include/utils/class_msgPool.inc:100
+#, fuzzy
+msgid "You have no permission to modify this object!"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+#, fuzzy
+msgid "You have no permission to modify the object:"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:111
+#, fuzzy
+msgid "You have no permission to modify these objects:"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:118
+#, fuzzy
+msgid "You have no permission to view this object!"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+#, fuzzy
+msgid "You have no permission to view the object:"
+msgstr "У вас недостаточно прав для создания телефонов в этой ветке."
+
+#: include/utils/class_msgPool.inc:129
+#, fuzzy
+msgid "You have no permission to view these objects:"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:136
+#, fuzzy
+msgid "You have no permission to move this object!"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+#, fuzzy
+msgid "You have no permission to move the object:"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:147
+#, fuzzy
+msgid "You have no permission to move these objects:"
+msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+#, fuzzy
+msgid "Connection information"
+msgstr "Личная информация"
+
+#: include/utils/class_msgPool.inc:159
+#, fuzzy, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Невозможно подключиться к серверу базы данных!"
+
+#: include/utils/class_msgPool.inc:171
+#, fuzzy, php-format
+msgid "Cannot select %s database!"
+msgstr "Невозможно выбрать базу данных!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, fuzzy, php-format
+msgid "Cannot query %s database!"
+msgstr "Невозможно выбрать базу данных!"
+
+#: include/utils/class_msgPool.inc:195
+#, fuzzy, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Значение поля \"Факс\" содержит недопустимый номер телефона."
+
+#: include/utils/class_msgPool.inc:201
+#, fuzzy, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr ""
+"Не удается найти команду \"%s\", указанную в поле POSTCREATE модуля \"%s\"."
+
+#: include/utils/class_msgPool.inc:208
+#, fuzzy, php-format
+msgid "'%s' command is invalid!"
+msgstr "Указанное имя уже используется."
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, fuzzy, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "Указанное имя уже используется."
+
+#: include/utils/class_msgPool.inc:222
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Невозможно выбрать базу данных!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Невозможно выбрать базу данных!"
+
+#: include/utils/class_msgPool.inc:236
+#, fuzzy, php-format
+msgid "Value for '%s' is too large!"
+msgstr "Значение 'UID' слишком маленькое."
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr ""
+"Значение поля \"shadowMin\" должно быть меньше значения поля \"shadowMax\"."
+
+#: include/utils/class_msgPool.inc:246
+#, fuzzy, php-format
+msgid "Value for '%s' is too small!"
+msgstr "Значение 'UID' слишком маленькое."
+
+#: include/utils/class_msgPool.inc:248
+#, fuzzy, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+"У вас должна быть установка PHP версии не ниже 4.1.0, так как в ней "
+"реализованы некоторые новые функции и исправлены некоторые ошибки."
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, fuzzy, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr ""
+"Пользователь с таким регистрационным именем в базе данных уже существует."
+
+#: include/utils/class_msgPool.inc:267
+#, fuzzy, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Обязательное поле \"Имя\" не заполнено."
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Значение поля \"Имя\" содержит недопустимые символы."
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, fuzzy, php-format
+msgid "'%s' are not allowed!"
+msgstr "Сменить пароль"
+
+#: include/utils/class_msgPool.inc:296
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Значение поля \"Имя\" содержит недопустимые символы."
+
+#: include/utils/class_msgPool.inc:303
+#, fuzzy, php-format
+msgid "Missing %s PHP extension!"
+msgstr "Удалить параметры"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Добавить"
+
+#: include/utils/class_msgPool.inc:333
+#, fuzzy, php-format
+msgid "Add %s"
+msgstr "Добавить"
+
+#: include/utils/class_msgPool.inc:339
+#, fuzzy, php-format
+msgid "Delete %s"
+msgstr "Удалить"
+
+#: include/utils/class_msgPool.inc:345
+#, fuzzy, php-format
+msgid "Set %s"
+msgstr "Установить"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit..."
+msgstr "Изменить"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit %s..."
+msgstr "Пользователи домена"
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Назад"
+
+#: include/utils/class_msgPool.inc:377
+#, fuzzy, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Для этой учетной записи нет корректных расширений GOsa."
+
+#: include/utils/class_msgPool.inc:383
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"В этой учетной записи используются атрибуты POSIX. Вы можете отключить их "
+"использование, щелкнув ниже."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"В этой учетной записи используются атрибуты POSIX. Чтобы отключить их "
+"использование, сначала нужно удалить учетную запись Samba."
+
+#: include/utils/class_msgPool.inc:402
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"В этой учетной записи не используются атрибуты POSIX. Вы можете использовать "
+"их, щелкнув ниже."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"В этой учетной записи используются атрибуты POSIX. Чтобы отключить их "
+"использование, сначала нужно удалить учетную запись Samba."
+
+#: include/utils/class_msgPool.inc:420
+#, fuzzy, php-format
+msgid "Add %s settings"
+msgstr "Дополнительные записи в fstab"
+
+#: include/utils/class_msgPool.inc:426
+#, fuzzy, php-format
+msgid "Remove %s settings"
+msgstr "Атрибуты UNIX"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr "Нажмите 'Изменить' чтобы отредактировать данные в этой форме."
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Январь"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Февраль"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Март"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Апрель"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Май"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Июнь"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Июль"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Август"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Сентябрь"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Октябрь"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Ноябрь"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Декабрь"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Sunday"
+msgstr "Имя сервера"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Monday"
+msgstr "месяц"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:453
+#, fuzzy
+msgid "MySQL operation failed!"
+msgstr "Невозможно выполнить запрос к базе данных!"
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "read operation"
+msgstr "Почтовые настройки"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "modify operation"
+msgstr "Личная информация"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "delete operation"
+msgstr "Выберите чтобы посмотреть рабочие станции"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "search operation"
+msgstr "Учетная запись"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "authentication"
+msgstr "Рабочая станция Windows"
+
+#: include/utils/class_msgPool.inc:465
+#, fuzzy, php-format
+msgid "LDAP %s failed!"
+msgstr "Невозможно выполнить запрос к базе данных!"
+
+#: include/utils/class_msgPool.inc:467
+#, fuzzy
+msgid "LDAP operation failed!"
+msgstr "Невозможно выполнить запрос к базе данных!"
+
+#: include/utils/class_msgPool.inc:482
+#, fuzzy
+msgid "Upload failed!"
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: include/utils/class_msgPool.inc:485
+#, fuzzy, php-format
+msgid "Upload failed: %s"
+msgstr "Служба печати"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, fuzzy, php-format
+msgid "This '%s' is still in use."
+msgstr "Описание группы"
+
+#: include/utils/class_msgPool.inc:509
+#, fuzzy, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "Описание группы"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Удалить"
+
+#: include/utils/class_msgPool.inc:527
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Удалить"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, fuzzy, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Удалить"
+
+#: include/utils/class_msgPool.inc:545
+#, fuzzy, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Список подразделений"
+
+#: include/utils/class_msgPool.inc:551
+#, fuzzy, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Удалить"
+
+#: include/utils/class_msgPool.inc:557
+#, fuzzy, php-format
+msgid "Checking for %s support"
+msgstr "Проверка поддержки gettext"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, fuzzy, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "Ошибка при подключении к LDAP-серверу. Ответ сервера: \"%s\"."
+
+#: include/class_ldap.inc:830
+#, fuzzy, php-format
+msgid "while operating on LDAP server %s"
+msgstr "Ошибка при подключении к LDAP-серверу. Ответ сервера: \"%s\"."
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+
+#: include/class_log.inc:87
+#, fuzzy, php-format
+msgid "Logging failed: %s"
+msgstr "Служба печати"
+
+#: include/class_log.inc:102
+#, fuzzy, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "Значение поля \"Имя\" содержит недопустимые символы."
+
+#: include/class_log.inc:106
+#, fuzzy
+msgid "Specified objectType is empty or invalid!"
+msgstr "Указанное имя уже используется."
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+#, fuzzy
+msgid "Cannot not parse XML!"
+msgstr "Слишком много пользователей, невозможно создать идентификатор!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, fuzzy, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Удалить"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, fuzzy, php-format
+msgid "Cannot remove entry %s!"
+msgstr "состояние неизвестно"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Ошибка XML в gosa.conf: %s в строке %d"
+
+#: include/class_config.inc:318
+#, fuzzy
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Не удается начать сеанс на LDAP-сервере. Обратитесь к системному "
+"администратору."
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "В вашем файле настройки отсутствуют значения SID и/или RIDBASE!"
+
+#: include/class_config.inc:1105
+#, fuzzy
+msgid "Configuration"
+msgstr "Настроить"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+#, fuzzy
+msgid "All objects in this category"
+msgstr "Описание группы"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+#, fuzzy
+msgid "Unknown"
+msgstr "состояние неизвестно"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, fuzzy, php-format
+msgid "Copy and paste failed!"
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, fuzzy, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Удалить"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, fuzzy, php-format
+msgid "No write permission in '%s'"
+msgstr "Удалить"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+#, fuzzy
+msgid "Cannot paste"
+msgstr "Создать телефонный аккаунт"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr ""
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Общее"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "Unix"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Почта"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "Факс"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Прокси-сервер"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Группа"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Подразделение"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Телефон"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Приложение"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Сервер"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Тонкий клиент"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Рабочая станция"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Объект группы"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Принтер"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Имя объекта"
+
+#: plugins/generic/references/contents.tpl:11
+#, fuzzy
+msgid "Contents"
+msgstr "Контакт"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Данный объект не имеет ссылок на другие объекты"
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Добро пожаловать %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+#, fuzzy
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Это начальная страница GOsa. Из меню слева или среди пиктограмм ниже вы "
+"можете выбрать нужный вам раздел. Все изменения будут сразу же переноситься "
+"на LDAP-сервер вашей компании."
+
+#: plugins/generic/welcome/welcome.tpl:8
+#, fuzzy
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Чтобы завершить сеанс, выберите в меню слева вверху пункт <b>Выход</b>. "
+"Чтобы вернуться на начальную страницу, выберите <b>Начало</b>."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Команда разработчиков GOsa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "Язык по умолчанию"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+#, fuzzy
+msgid "Terminal"
+msgstr "Терминалы"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Пользователь"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Фамилия"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Ветка"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Фильтры"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Показать подразделения"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "Показать серверы"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "Показать группы samba"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "Показать серверы"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "Показать рабочие станции"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "Показать терминалы"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "Показать принтеры"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Показать телефоны"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Подумайте еще раз, действительно ли вам нужно удаление, так как GOsa не "
+"сможет восстановить эти данные."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Объединения"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+#, fuzzy
+msgid "Manage object groups"
+msgstr "Название группы"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+#, fuzzy
+msgid "Infrastructure error"
+msgstr "Ошибка LDAP:"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+#, fuzzy
+msgid "Templates"
+msgstr "Шаблон"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+#, fuzzy
+msgid "Windows Install"
+msgstr "Рабочая станция Windows"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "нет"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "слишком много различных объектов!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "пользователи"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "группы"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "приложения"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "подразделения"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "серверы"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "рабочие станции"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+#, fuzzy
+msgid "winstations"
+msgstr "Рабочая станция"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "терминалы"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "телефоны"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "принтеры"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "отключен"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "полный доступ"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "разрешить доступ только на эти хосты"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+#, fuzzy
+msgid "Non existing dn:"
+msgstr "Не существующий dn:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+#, fuzzy
+msgid "You can combine two different object types at maximum, only!"
+msgstr ""
+"Вы можете комбинировать не более двух различных классов в одном объекте!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+#, fuzzy
+msgid "Object group generic"
+msgstr "Объект группы"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "Системные доверия"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+#, fuzzy
+msgid "Member"
+msgstr "Включаемые объекты"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Группа"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Название группы"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Описание группы"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Системные доверия"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+#, fuzzy
+msgid "Trust mode"
+msgstr "Режим"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Включаемые объекты"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+#, fuzzy
+msgid "Phone queue"
+msgstr "Номер телефона"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+#, fuzzy
+msgid "Systems"
+msgstr "Системы"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Запуск"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Устройства"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr ""
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Окружение"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Приложения"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+#, fuzzy
+msgid "Please enter the new object group name"
+msgstr "Введите адрес сервера"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+#, fuzzy
+msgid "user groups"
+msgstr "группы"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+#, fuzzy
+msgid "nested groups"
+msgstr "Объединения"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+#, fuzzy
+msgid "application groups"
+msgstr "Показать группы приложений"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+#, fuzzy
+msgid "department groups"
+msgstr "подразделения"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+#, fuzzy
+msgid "server groups"
+msgstr "серверы"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+#, fuzzy
+msgid "workstation groups"
+msgstr "рабочие станции"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+#, fuzzy
+msgid "windows workstation groups"
+msgstr "Показать рабочие станции"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+#, fuzzy
+msgid "terminal groups"
+msgstr "Показать группы с эл. почтой"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+#, fuzzy
+msgid "printer groups"
+msgstr "Основная группа"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+#, fuzzy
+msgid "phone groups"
+msgstr "Показать группы"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+#, fuzzy
+msgid "List of object groups"
+msgstr "Название группы"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Свойства"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Создать"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Удалить"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+#, fuzzy
+msgid "Send message"
+msgstr "Домашняя страница"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Объект группы"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "серверы"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Выбрать объекты для добавления"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Фильтры"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Показать объекты подразделения"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Выбрать раздел, для которого будет осуществлен поиск"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Показать совпадения объектов"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Регулярное выражение, соответствующее именам объектов"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Выберите системы для добавления"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Показать системы в подразделении"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Показать подходяшие системы"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Регулярное выражение для поиска адреса"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Возможно, это основная группа пользователей. Еще раз проверте что Вы "
+"действительно хотите удалить ее, так как GOsa не сможет отменить результаты "
+"этой операции."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Имя"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+#, fuzzy
+msgid "Surname"
+msgstr "Имя сервера"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Имя группы, соответствующее стандарту POSIX"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Обычно идентификаторы создаются автоматически, но вы можете выбрать указание "
+"вручную"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Указать GID вручную"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Указанный вручную GID"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Создать группу для работы с Samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "в домене"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Члены телефонной группы"
+
+#: plugins/admin/groups/generic.tpl:146
+#, fuzzy
+msgid "Members are in a nagios group"
+msgstr "Члены телефонной группы"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Члены группы"
+
+#: plugins/admin/groups/generic.tpl:243
+#, fuzzy
+msgid "In all groups"
+msgstr "Основная группа"
+
+#: plugins/admin/groups/generic.tpl:246
+#, fuzzy
+msgid "Not in all groups"
+msgstr "Показать группы с эл. почтой"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "Показать основные группы"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "Показать группы samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "Показать группы samba"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+#, fuzzy
+msgid "Group settings"
+msgstr "Настройки Samba"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Список групп"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "Основная группа"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "серверы"
+
+#: plugins/admin/groups/class_group.inc:162
+#, fuzzy
+msgid "Cannot find group SID in your configuration!"
+msgstr "Не могу найти SID в базе LDAP или в сонфигурационном файле!"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Группа Samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Администраторы домена"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Пользователи домена"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Непривилегированные пользователи домена"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Специальная группа (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "состояние неизвестно"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, fuzzy, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Удалить"
+
+#: plugins/admin/groups/class_group.inc:899
+#, fuzzy, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Удалить"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+#, fuzzy
+msgid "Generic group settings"
+msgstr "Общая информация о пользователе"
+
+#: plugins/admin/groups/class_group.inc:1198
+#, fuzzy
+msgid "Samba group type"
+msgstr "Группа Samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+#, fuzzy
+msgid "Samba domain name"
+msgstr "Домашний каталог Samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+#, fuzzy
+msgid "Phone pickup group"
+msgstr "Члены телефонной группы"
+
+#: plugins/admin/groups/class_group.inc:1202
+#, fuzzy
+msgid "Nagios group"
+msgstr "Контакт"
+
+#: plugins/admin/groups/class_group.inc:1204
+#, fuzzy
+msgid "Group member"
+msgstr "Члены группы"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Управление группами"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+#, fuzzy
+msgid "Posix"
+msgstr "Прокси-сервер"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+#, fuzzy
+msgid "Edit mail properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+#, fuzzy
+msgid "Edit samba properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+#, fuzzy
+msgid "Edit phone properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+#, fuzzy
+msgid "Menu"
+msgstr "Принтер"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+#, fuzzy
+msgid "Edit environment properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Сюда входит вся информация об учетной записи этого пользователя, его права "
+"доступа в системе, настройки IMAP и т. д. Подумайте еще раз, действительно "
+"ли вам нужно удаление, так как GOsa не сможет отменить результаты этой "
+"операции."
+
+#: plugins/admin/users/password.tpl:4
+#, fuzzy
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"В полях ниже вы можете изменить пароль выбранного пользователя. Изменения "
+"вступят в силу немедленно. Пожалуйста, запомните новый пароль, так как иначе "
+"пользователь не сможет войти в систему."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+#, fuzzy
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Изменение пароля влияет на аутентификацию при использовании почты, прокси-"
+"сервера, Samba и служб UNIX."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Подтверждение"
+
+#: plugins/admin/users/password.tpl:21
+#, fuzzy
+msgid "Strength"
+msgstr "Улица"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Изменить пароль"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Создание пользователя на основе шаблона"
+
+#: plugins/admin/users/template.tpl:6
+#, fuzzy
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Можно создавать пользователей на основе шаблонов. При этом многие поля в "
+"базе данных будут заполнены автоматически. Выберите <b>нет</b>, чтобы не "
+"использовать шаблоны."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Шаблон"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+#, fuzzy
+msgid "Last name"
+msgstr "Список"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+#, fuzzy
+msgid "First name"
+msgstr "Список"
+
+#: plugins/admin/users/class_userManagement.inc:26
+#, fuzzy
+msgid "Manage users"
+msgstr "Пользователи домена"
+
+#: plugins/admin/users/class_userManagement.inc:278
+#, fuzzy
+msgid "You have no permission to change this users password!"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: plugins/admin/users/class_userManagement.inc:656
+#, fuzzy
+msgid "Account locking"
+msgstr "Учетная запись"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "Моя учетная запись"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "Моя учетная запись"
+
+#: plugins/admin/users/class_userManagement.inc:745
+#, fuzzy
+msgid "Edit generic properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:761
+#, fuzzy
+msgid "Edit netatalk properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Изменить свойства"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Список пользователей"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Список пользователей"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Пользователи домена"
+
+#: plugins/admin/users/user-list.xml:167
+#, fuzzy
+msgid "Apply template"
+msgstr "Шаблон"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Создать шаблон"
+
+#: plugins/admin/users/user-list.xml:213
+#, fuzzy
+msgid "Edit user"
+msgstr "Пользователи домена"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Удалить изображение"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "Показать шаблоны"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "Показать обычных пользователей"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Атрибуты UNIX"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Показать пользователей с почтой"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Показать пользователей с почтой"
+
+#: plugins/admin/users/templatize.tpl:2
+#, fuzzy
+msgid "Applying a template"
+msgstr "Шаблон"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr ""
+
+#: plugins/admin/departments/remove.tpl:6
+#, fuzzy
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Это включает <b>все</b> учетные записи, системы и т.п. для данного "
+"подразделения. Подумайте еще раз, действительно ли вы хотите его удалить, "
+"так как GOsa не сможет отменить результаты этой операции."
+
+#: plugins/admin/departments/remove.tpl:10
+#, fuzzy
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Лучше всего перед удалением сохранить резервную копию текущего дерева LDAP в "
+"файл. Если вы сделали это и действительно хотите выполнить удаление, нажмите "
+"<i>Удалить</i>, иначе нажмите <i>Отмена</i>."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Список подразделений"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "в домене"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Администраторы домена"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Страна"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "Местоположение"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Организация"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "Местоположение"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+#, fuzzy
+msgid "Name of locality to create"
+msgstr "Имя создаваемой ветки"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Описание подразделения"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+#, fuzzy
+msgid "Administrative settings"
+msgstr "Администрирование"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr ""
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Подразделение"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Имя создаваемой ветки"
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Описание подразделения"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Категория"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Категория этой ветки"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Местоположение"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Адм. единица"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Адм. единица, в которой находится ветка"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Местоположение ветки"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Адрес"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Почтовый адрес для ветки"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Основный телефонный номер для ветки"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Факс"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Основный номер факса для ветки"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "Администраторы домена"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Подразделения"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+#, fuzzy
+msgid "Manage Departments"
+msgstr "Подразделения"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+#, fuzzy
+msgid "Organization name"
+msgstr "Организация"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+#, fuzzy
+msgid "Postal address"
+msgstr "Почтовый индекс"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+#, fuzzy
+msgid "Phone number"
+msgstr "Телефонные номера"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+#, fuzzy
+msgid "Country name"
+msgstr "Страна"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Администраторы домена"
+
+#: plugins/admin/departments/domain.tpl:14
+#, fuzzy
+msgid "Name of domain to create"
+msgstr "Имя создаваемой ветки"
+
+#: plugins/admin/departments/country.tpl:14
+#, fuzzy
+msgid "Name of country to create"
+msgstr "Имя создаваемой ветки"
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:604
+#, fuzzy
+msgid "Department name"
+msgstr "Управление подразделениями"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Телефон"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr ""
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "Организация"
+
+#: plugins/admin/departments/organization.tpl:14
+#, fuzzy
+msgid "Name of organization to create"
+msgstr "Имя создаваемой ветки"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#, fuzzy
+msgid "You are currently moving/renaming this department."
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+#, fuzzy
+msgid "Acl"
+msgstr "Все"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "Управление подразделениями"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+#, fuzzy
+msgid "ACL Templates"
+msgstr "Шаблон"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+#, fuzzy
+msgid "Access control roles"
+msgstr "Параметры доступа"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+#, fuzzy
+msgid "Edit AC roles"
+msgstr "Доступ"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+#, fuzzy
+msgid "Reset ACL"
+msgstr "Удалить"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+#, fuzzy
+msgid "No ACL settings for this category"
+msgstr "Описание группы"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, fuzzy, php-format
+msgid "ACL for these objects: %s"
+msgstr "Описание группы"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+#, fuzzy
+msgid "Edit category ACL"
+msgstr "Список систем"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+#, fuzzy
+msgid "Reset category ACL"
+msgstr "Категория"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy
+msgid "Object in use"
+msgstr "Имя объекта"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Роль"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+#, fuzzy
+msgid "Permissions"
+msgstr "Права для членов группы"
+
+#: plugins/admin/acl/acl-list.xml:11
+#, fuzzy
+msgid "List of acls"
+msgstr "Список групп"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Параметры доступа"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Показать телефоны"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+#, fuzzy
+msgid "Edit organizational user settings"
+msgstr "Дополнительные записи в fstab"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "женский"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "мужской"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+#, fuzzy
+msgid "Serial number"
+msgstr "Телефонные номера"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:541
+#, fuzzy
+msgid "No certificate installed"
+msgstr "Изменить сертификаты"
+
+#: plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "The selected password method is no longer available."
+msgstr "У выбранного приложения нет параметров."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+#, fuzzy
+msgid "The selected password method requires initial configuration!"
+msgstr "У выбранного приложения нет параметров."
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Домашняя страница"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Мобильный"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Пейджер"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Дата рождения"
+
+#: plugins/personal/generic/class_user.inc:1433
+#, fuzzy
+msgid "Cannot open certificate!"
+msgstr "Невозможно выбрать базу данных!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Подразделение"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Номер дома"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Специальность"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Последняя доставка"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Местоположение сотрудника"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Описание подразделения"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Область деятельности"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Должность"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Серийный номер сертификата"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Видимый всем"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Улица"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Почтовый индекс"
+
+#: plugins/personal/generic/class_user.inc:1603
+#, fuzzy
+msgid "Generic user settings"
+msgstr "Общая информация о пользователе"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Моя учетная запись"
+
+#: plugins/personal/generic/class_user.inc:1615
+#, fuzzy
+msgid "User identification"
+msgstr "Информация"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Обращение"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Академическое звание"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Пол"
+
+#: plugins/personal/generic/class_user.inc:1621
+#, fuzzy
+msgid "Preferred language"
+msgstr "Язык по умолчанию"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+#, fuzzy
+msgid "User picture"
+msgstr "Изображение"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Срок действия пароля истекает"
+
+#: plugins/personal/generic/class_user.inc:1630
+#, fuzzy
+msgid "Department number"
+msgstr "Управление подразделениями"
+
+#: plugins/personal/generic/class_user.inc:1631
+#, fuzzy
+msgid "Employee number"
+msgstr "Форма трудоустройства"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Форма трудоустройства"
+
+#: plugins/personal/generic/class_user.inc:1634
+#, fuzzy
+msgid "Room number"
+msgstr "Телефонные номера"
+
+#: plugins/personal/generic/class_user.inc:1635
+#, fuzzy
+msgid "Telefon number"
+msgstr "Телефонные номера"
+
+#: plugins/personal/generic/class_user.inc:1636
+#, fuzzy
+msgid "Pager number"
+msgstr "Телефонные номера"
+
+#: plugins/personal/generic/class_user.inc:1637
+#, fuzzy
+msgid "Mobile number"
+msgstr "Домашний телефон"
+
+#: plugins/personal/generic/class_user.inc:1638
+#, fuzzy
+msgid "Fax number"
+msgstr "Терминал"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1645
+#, fuzzy
+msgid "Home phone number"
+msgstr "Телефонные номера"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "Хэширование паролей"
+
+#: plugins/personal/generic/class_user.inc:1648
+#, fuzzy
+msgid "User certificates"
+msgstr "Стандартный сертификат"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Личная информация"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Изображение"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Сменить изображение"
+
+#: plugins/personal/generic/generic.tpl:62
+#, fuzzy
+msgid "Template name"
+msgstr "Шаблон"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+#, fuzzy
+msgid "Preferred langage"
+msgstr "Язык по умолчанию"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Личный телефон"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Хэширование паролей"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Сертификаты"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Изменить сертификаты"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Информация об организации"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Номер подразделения"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Номер работника"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Номер комнаты"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Воспользуйтесь закладкой \"Телефон\""
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Выберите ветку для пользователя"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+#, fuzzy
+msgid "Select a base"
+msgstr "Выберите, чтобы просмотреть серверы"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+#, fuzzy
+msgid "User settings"
+msgstr "Почтовые настройки пользователя"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+#, fuzzy
+msgid "Clear password"
+msgstr "Новый пароль"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+#, fuzzy
+msgid "Set new password"
+msgstr "Изменить пароль"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Удалить изображение"
+
+#: plugins/personal/generic/main.inc:115
+#, fuzzy
+msgid "You have no permission to set your password!"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Общая информация о пользователе"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Вы изменили метод шифрования паролей в базе LDAP. В связи с этим введите "
+"свой пароль снова. GOsa произведет шифрование в соответствии с выбраной "
+"схемой."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Стандартный сертификат"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Сертификат S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Сертификат PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+#, fuzzy
+msgid "Edit users POSIX settings"
+msgstr "Атрибуты UNIX"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+#, fuzzy
+msgid "expired"
+msgstr "Экспорт"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+#, fuzzy
+msgid "active"
+msgstr "Личный"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#, fuzzy
+msgid "password not changeable"
+msgstr "Новый пароль"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+#, fuzzy
+msgid "password expired"
+msgstr "Срок действия пароля истекает"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "автоматически"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr "Пароль нельзя изменить в течение %s дн. с последней смены (shadowMin)"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Пароль должен быть изменен по истечении %s дн. (shadowMax)"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Отключить учетную запись, если срок действия пароля истек и прошло %s дн. "
+"бездействия (shadowInactive)"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr ""
+"Предупреждать пользователей за %s дн. до истечения срока действия пароля "
+"(shadowWarning)"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Группа пользователя"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Домашний каталог"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+#, fuzzy
+msgid "shadowMin"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+#, fuzzy
+msgid "shadowMax"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+#, fuzzy
+msgid "shadowWarning"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+#, fuzzy
+msgid "shadowInactive"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+#, fuzzy
+msgid "POSIX account"
+msgstr "Аккаунт FTP"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Оболочка"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "Идентификатор пользователя"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+#, fuzzy
+msgid "Group ID"
+msgstr "Группа"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+#, fuzzy
+msgid "Force password change on login"
+msgstr "Сменить пароль"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+#, fuzzy
+msgid "Shadow min"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+#, fuzzy
+msgid "Shadow max"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+#, fuzzy
+msgid "Shadow warning"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+#, fuzzy
+msgid "Shadow inactive"
+msgstr "Затенение"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+#, fuzzy
+msgid "Shadow expire"
+msgstr "Показать людей"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+#, fuzzy
+msgid "System trust model"
+msgstr "Системные доверия"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Основная группа"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Состояние"
+
+#: plugins/personal/posix/generic.tpl:41
+#, fuzzy
+msgid "Last logon"
+msgstr "Список"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Указать UID/GID вручную"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Членство в группах"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr ""
+"(Предупреждение: NFS не поддерживает более 16 групп для одного пользователя!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "Показать группы"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Группа пользователя"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Учетная запись"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Выберите группы для добавления"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Объединения в подразделении"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Шаблон для групп"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Регулярное выражение, соответствующее именам групп"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Показать группы пользователей"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Имя пользователя, для которого перечисляются группы"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "Показать серверы"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "Показать рабочие станции"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "Показать терминалы"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+#, fuzzy
+msgid "Posix settings"
+msgstr "Атрибуты UNIX"
+
+#: plugins/personal/posix/main.inc:142
+#, fuzzy
+msgid "POSIX settings"
+msgstr "Атрибуты UNIX"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "Пользователь должен сменить пароль при первом входе в систему"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Срок действия пароля истекает"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Вы успешно сменили свой пароль. Не забудьте изменить нужные настройки "
+"использующих его программ."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+#, fuzzy
+msgid "Password settings"
+msgstr "Почтовые настройки пользователя"
+
+#: plugins/personal/password/password.tpl:4
+#, fuzzy
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"В полях ниже вы можете изменить свой пароль. Изменения вступят в силу "
+"немедленно. Пожалуйста, запомните новый пароль, так как иначе вы не сможете "
+"войти в систему."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Очистить поля"
+
+#: plugins/personal/password/class_password.inc:27
+#, fuzzy
+msgid "Change user password"
+msgstr "Сменить пароль"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Для продолжения укажите свой текущий пароль."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "Вы не указали новый пароль."
+
+#: plugins/personal/password/class_password.inc:94
+#, fuzzy, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "При попытке сменить пароль извне возникла проблема: "
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "Введенный вами текущий пароль не совпадает с реальным."
+
+#: plugins/personal/password/class_password.inc:114
+#, fuzzy
+msgid "You have no permission to change your password."
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: plugins/personal/password/class_password.inc:146
+#, fuzzy
+msgid "User password"
+msgstr "Новый пароль"
+
+#: plugins/personal/password/nochange.tpl:2
+#, fuzzy
+msgid "Password change not allowed"
+msgstr "Сменить пароль"
+
+#: plugins/personal/password/nochange.tpl:6
+#, fuzzy
+msgid "You have no permission to change your password at this time"
+msgstr "У вас недостаточно прав для смены своего пароля."
+
+#: setup/class_setupStep_Feedback.inc:92
+#, fuzzy
+msgid "UNIX accounts/groups"
+msgstr "UNIX аккаунт"
+
+#: setup/class_setupStep_Feedback.inc:94
+#, fuzzy
+msgid "Samba management"
+msgstr "Управление системами"
+
+#: setup/class_setupStep_Feedback.inc:96
+#, fuzzy
+msgid "Mailsystem management"
+msgstr "Управление системами"
+
+#: setup/class_setupStep_Feedback.inc:98
+#, fuzzy
+msgid "FAX system administration"
+msgstr "Управление пользователями"
+
+#: setup/class_setupStep_Feedback.inc:100
+#, fuzzy
+msgid "Asterisk administration"
+msgstr "Управление пользователями"
+
+#: setup/class_setupStep_Feedback.inc:102
+#, fuzzy
+msgid "System inventory"
+msgstr "Удалить объект"
+
+#: setup/class_setupStep_Feedback.inc:104
+#, fuzzy
+msgid "System-/Configmanagement"
+msgstr "Управление системами"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Адресная книга"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+#, fuzzy
+msgid "Get notifications or send feedback"
+msgstr "Местоположение ветки"
+
+#: setup/class_setupStep_Feedback.inc:114
+#, fuzzy
+msgid "Notification and feedback"
+msgstr "Изменить сертификаты"
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+#, fuzzy
+msgid "Setup error"
+msgstr "Состояние системы"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+#, fuzzy
+msgid "Please specify a valid email address."
+msgstr "Введите корректное имя пользователя!"
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+#, fuzzy
+msgid "Completed"
+msgstr "не полный"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+#, fuzzy
+msgid "Next"
+msgstr "текст"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Настройки Samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+#, fuzzy
+msgid "Samba SID"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:31
+#, fuzzy
+msgid "RID base"
+msgstr "Базы данных"
+
+#: setup/setup_config2.tpl:46
+#, fuzzy
+msgid "Workstation container"
+msgstr "Имя рабочий станции"
+
+#: setup/setup_config2.tpl:61
+#, fuzzy
+msgid "Samba SID mapping"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:71
+#, fuzzy
+msgid "Timezone"
+msgstr "Мобильный"
+
+#: setup/setup_config2.tpl:74
+#, fuzzy
+msgid "Please choose your preferred timezone here"
+msgstr "Язык по умолчанию"
+
+#: setup/setup_config2.tpl:96
+#, fuzzy
+msgid "Additional GOsa settings"
+msgstr "Дополнительные записи в fstab"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+#, fuzzy
+msgid "Government mode"
+msgstr "в папку"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/setup_config2.tpl:135
+#, fuzzy
+msgid "Mail settings"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/setup_config2.tpl:139
+#, fuzzy
+msgid "Mail method"
+msgstr "Почтовые настройки"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+#, fuzzy
+msgid "Vacation templates"
+msgstr "Шаблон рабочей станции"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+#, fuzzy
+msgid "Snapshots / Undo"
+msgstr "Приложение"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+#, fuzzy
+msgid "Enable snapshots"
+msgstr "Создать настройки запись эл. почты"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+#, fuzzy
+msgid "Snapshot base"
+msgstr "Приложение"
+
+#: setup/setup_frame.tpl:12
+#, fuzzy
+msgid "GOsa setup wizard"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Installation"
+msgstr "Рабочая станция"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Setup"
+msgstr "Установить"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+#, fuzzy
+msgid "Check again"
+msgstr "Проверить"
+
+#: setup/setup_migrate.tpl:37
+#, fuzzy
+msgid "Add required object classes to the LDAP base"
+msgstr "Список подразделений"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+#, fuzzy
+msgid "Current"
+msgstr "Текущий пароль"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+#, fuzzy
+msgid "After migration"
+msgstr "Управление пользователями"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+#, fuzzy
+msgid "Migrate"
+msgstr "Дата"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+#, fuzzy
+msgid "Close"
+msgstr "Выбрать"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+#, fuzzy
+msgid "Move selected workstations"
+msgstr "Выберите чтобы посмотреть рабочие станции"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+#, fuzzy
+msgid "Hide changes"
+msgstr "Удалить телефонный аккаунт"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+#, fuzzy
+msgid "Show changes"
+msgstr "Показать телефоны"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+#, fuzzy
+msgid "Move selected users into this people tree"
+msgstr "Создать шаблон"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Создать настройки запись эл. почты"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+#, fuzzy
+msgid "Reload"
+msgstr "чтение"
+
+#: setup/setup_migrate.tpl:273
+#, fuzzy
+msgid "Abort"
+msgstr "Порт"
+
+#: setup/setup_migrate.tpl:275
+#, fuzzy
+msgid "Create a new GOsa administrator account"
+msgstr "Создать настройки запись эл. почты"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+#, fuzzy
+msgid "Password (again)"
+msgstr "Хэширование паролей"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+#, fuzzy
+msgid "Refresh"
+msgstr "Ссылки"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+#, fuzzy
+msgid "Write configuration file"
+msgstr "Настроить"
+
+#: setup/class_setupStep_Finish.inc:39
+#, fuzzy
+msgid "Finish - write the configuration file"
+msgstr "Настроить"
+
+#: setup/class_setupStep_Finish.inc:104
+#, fuzzy
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+"Не удается прочитать файл настройки GOsa %s/gosa.conf. Операция прервана."
+
+#: setup/class_setupStep_Finish.inc:106
+#, fuzzy
+msgid "The configuration is currently not readable or it does not exists."
+msgstr ""
+"Не удается прочитать файл настройки GOsa %s/gosa.conf. Операция прервана."
+
+#: setup/class_setupStep_Finish.inc:115
+#, fuzzy, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Поместив файл gosa.conf в каталог /etc/gosa, убедитесь, что только "
+"пользователь веб-сервера может его читать. Для этого вам, возможно, "
+"понадобится выполнить следующие команды:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+#, fuzzy
+msgid "Checking PHP version"
+msgstr "Проверка версии PHP (>=4.1.0)"
+
+#: setup/class_setupStep_Checks.inc:65
+#, fuzzy, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+"У вас должна быть установка PHP версии не ниже 4.1.0, так как в ней "
+"реализованы некоторые новые функции и исправлены некоторые ошибки."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+#, fuzzy
+msgid "mbstring"
+msgstr "Настройки Samba"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+#, fuzzy
+msgid "MySQL"
+msgstr "Ошибка LDAP:"
+
+#: setup/class_setupStep_Checks.inc:121
+#, fuzzy
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"Необходим для чтения отчетов о полученных факсимильных сообщениях из базы "
+"данных."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+#, fuzzy
+msgid "compression module"
+msgstr "Параметры доступа"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+#, fuzzy
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals - механизм PHP, позволяющий делать все глобальные "
+"переменные доступными из сценария без смены области действия. Это может быть "
+"нарушением безопасности. Тем не менее, GOsa будет работать в любом случае."
+
+#: setup/class_setupStep_Checks.inc:182
+#, fuzzy
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:192
+#, fuzzy
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+#, fuzzy
+msgid "Off"
+msgstr "не в сети"
+
+#: setup/class_setupStep_Checks.inc:200
+#, fuzzy
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:201
+#, fuzzy
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+#, fuzzy
+msgid "On"
+msgstr "Параметры"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:241
+#, fuzzy
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:249
+#, fuzzy
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr "Проверка значения параметра register_globals (должно быть: off)"
+
+#: setup/class_setupStep_Checks.inc:259
+#, fuzzy
+msgid "Configuration writeable"
+msgstr "Настроить"
+
+#: setup/class_setupStep_Checks.inc:260
+#, fuzzy
+msgid "The configuration file can't be written"
+msgstr "Настроить"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+#, fuzzy
+msgid "GOsa core settings"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "Показать группы пользователей"
+
+#: setup/setup_config3.tpl:18
+#, fuzzy
+msgid "Display summary in listings"
+msgstr "Шаблон для групп"
+
+#: setup/setup_config3.tpl:30
+#, fuzzy
+msgid "Honour administrative units"
+msgstr "Управление группами"
+
+#: setup/setup_config3.tpl:42
+#, fuzzy
+msgid "Smarty compile directory"
+msgstr "Домашний каталог"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+#, fuzzy
+msgid "Path for PPD storage"
+msgstr "Хэширование паролей"
+
+#: setup/setup_config3.tpl:77
+#, fuzzy
+msgid "Path for kiosk profile storage"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+#, fuzzy
+msgid "Mail queue script"
+msgstr "Путь к сценариям"
+
+#: setup/setup_config3.tpl:134
+#, fuzzy
+msgid "Notification script"
+msgstr "Изменить сертификаты"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr ""
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+#, fuzzy
+msgid "Daemon timeout"
+msgstr "Домен"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+#, fuzzy
+msgid "Login attribute"
+msgstr "Атрибут DN пользователей"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr ""
+
+#: setup/setup_config3.tpl:245
+#, fuzzy
+msgid "Warn if session is not encrypted"
+msgstr "Данные, передаваемые в течение этого сеанса, не будут зашифрованы."
+
+#: setup/setup_config3.tpl:257
+#, fuzzy
+msgid "Remember dialog filter settings"
+msgstr "Общая информация о пользователе"
+
+#: setup/setup_config3.tpl:269
+#, fuzzy
+msgid "Session lifetime"
+msgstr "Конфликт сеансов"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr ""
+
+#: setup/setup_config3.tpl:282
+#, fuzzy
+msgid "Show PHP errors"
+msgstr "Ошибка LDAP:"
+
+#: setup/setup_config3.tpl:294
+#, fuzzy
+msgid "Maximum LDAP query time"
+msgstr "Размер квоты"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+#, fuzzy
+msgid "Debug level"
+msgstr "Уровень информативности"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+#, fuzzy
+msgid "Disabled"
+msgstr "отключен"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+#, fuzzy
+msgid "Enabled"
+msgstr "отключен"
+
+#: setup/setup_feedback.tpl:5
+#, fuzzy
+msgid "Feedback sucessfully send"
+msgstr "Настройка завершена"
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+#, fuzzy
+msgid "Mail address"
+msgstr "MAC-адрес"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+#, fuzzy
+msgid "Yes"
+msgstr "Системы"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+#, fuzzy
+msgid "No"
+msgstr "нет"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr ""
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+#, fuzzy
+msgid "Create your configuration file"
+msgstr "Настроить"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+#, fuzzy
+msgid "Download configuration"
+msgstr "Системная информация"
+
+#: setup/setup_finish.tpl:33
+#, fuzzy
+msgid "Status: "
+msgstr "Состояние"
+
+#: setup/class_setupStep_Ldap.inc:53
+#, fuzzy
+msgid "LDAP setup"
+msgstr "LDAP-сервер"
+
+#: setup/class_setupStep_Ldap.inc:54
+#, fuzzy
+msgid "LDAP connection setup"
+msgstr "Соединение..."
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:105
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: setup/class_setupStep_Ldap.inc:107
+#, fuzzy, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: setup/class_setupStep_Ldap.inc:112
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: setup/class_setupStep_Ldap.inc:113
+#, fuzzy
+msgid "Please specify user and password!"
+msgstr "Введите свой пароль!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, fuzzy, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+#, fuzzy
+msgid "LDAP connection"
+msgstr "Отключение"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Местоположение"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "Подключение"
+
+#: setup/setup_ldap.tpl:45
+#, fuzzy
+msgid "TLS connection"
+msgstr "Соединение..."
+
+#: setup/setup_ldap.tpl:69
+#, fuzzy
+msgid "Authentication"
+msgstr "Рабочая станция Windows"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "DN администратора"
+
+#: setup/setup_ldap.tpl:78
+#, fuzzy
+msgid "Select user"
+msgstr "Удалить"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Пароль администратора"
+
+#: setup/setup_ldap.tpl:101
+#, fuzzy
+msgid "Schema based settings"
+msgstr "Настройки Samba"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+#, fuzzy
+msgid "Current status"
+msgstr "Состояние системы"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+#, fuzzy
+msgid "LDAP inspection"
+msgstr "Проверка конфигурации PHP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+#, fuzzy
+msgid "Checking for root object"
+msgstr "Проверка модуля gd"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "Проверка модуля gd"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#: setup/class_setupStep_Migrate.inc:153
+#, fuzzy
+msgid "Checking for invisible departments"
+msgstr "Проверка поддержки gettext"
+
+#: setup/class_setupStep_Migrate.inc:158
+#, fuzzy
+msgid "Checking for invisible users"
+msgstr "Проверка поддержки gettext"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+#, fuzzy
+msgid "Checking for super administrator"
+msgstr "Проверка дополнительных программ"
+
+#: setup/class_setupStep_Migrate.inc:171
+#, fuzzy
+msgid "Checking for users outside the people tree"
+msgstr "Проверка модуля cups"
+
+#: setup/class_setupStep_Migrate.inc:177
+#, fuzzy
+msgid "Checking for groups outside the groups tree"
+msgstr "Проверка модуля cups"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+#, fuzzy
+msgid "Checking for duplicated UID numbers"
+msgstr "Проверка поддержки gettext"
+
+#: setup/class_setupStep_Migrate.inc:196
+#, fuzzy
+msgid "Checking for duplicate GID numbers"
+msgstr "Проверка поддержки gettext"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "Проверка модуля gd"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "Проверка модуля cups"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "Проверка поддержки gettext"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+#, fuzzy
+msgid "LDAP query failed"
+msgstr "Невозможно выполнить запрос к базе данных!"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Укажите корректный номер телефона."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Укажите корректный номер телефона."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Ошибка"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, fuzzy, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "Вы собираетесь удалить объект %s."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+#, fuzzy
+msgid "Move"
+msgstr "Режим"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+#, fuzzy
+msgid "Migration error"
+msgstr "Дата"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, fuzzy, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Список подразделений"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Создать настройки запись эл. почты"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Создать настройки запись эл. почты"
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Input error"
+msgstr "Ошибка LDAP:"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Password error"
+msgstr "Срок действия пароля истекает"
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Provided passwords do not match!"
+msgstr "Введенные пароли не совпадают!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Specify a valid user ID!"
+msgstr "Введите корректное имя пользователя!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#, fuzzy
+msgid "Cannot move users to the requested department!"
+msgstr "Невозможно подключиться к серверу базы данных!"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+#, fuzzy
+msgid "Try to create root object"
+msgstr "Объект группы"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, fuzzy, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Список подразделений"
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "Проверьте, правильно ли вы ввели имя пользователя и пароль."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, fuzzy, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Ошибка при выполнении \"%s\"!"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Служба печати"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+#, fuzzy
+msgid "Create a basic, single site configuration"
+msgstr "Базы данных"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+#, fuzzy
+msgid "Find every possible configuration error"
+msgstr "Настроить"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+#, fuzzy
+msgid "To continue..."
+msgstr "Продолжение настройки..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+#, fuzzy
+msgid "GOsa settings 3/3"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:216
+#, fuzzy
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Размер квоты"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "PHP setup configuration"
+msgstr "Базы данных"
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "show information"
+msgstr "Личная информация"
+
+#: setup/setup_schema.tpl:3
+#, fuzzy
+msgid "Schema specific settings"
+msgstr "Настройки телефона"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+#, fuzzy
+msgid "Check status"
+msgstr "Состояние системы"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+#, fuzzy
+msgid "Schema check failed"
+msgstr "Приложение"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+#, fuzzy
+msgid "Theme"
+msgstr "Мобильный"
+
+#: setup/setup_config1.tpl:15
+#, fuzzy
+msgid "Apache"
+msgstr "Отмена"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+#, fuzzy
+msgid "People and group storage"
+msgstr "Структурная единица (OU) пользователей"
+
+#: setup/setup_config1.tpl:30
+#, fuzzy
+msgid "People DN attribute"
+msgstr "Атрибут DN пользователей"
+
+#: setup/setup_config1.tpl:41
+#, fuzzy
+msgid "People storage subtree"
+msgstr "Структурная единица (OU) пользователей"
+
+#: setup/setup_config1.tpl:50
+#, fuzzy
+msgid "Group storage subtree"
+msgstr "OU групп"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+#, fuzzy
+msgid "Automatic UIDs"
+msgstr "автоматически"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+#, fuzzy
+msgid "Number base for people/groups"
+msgstr "База идентификаторов для пользователей/групп"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr ""
+
+#: setup/setup_config1.tpl:151
+#, fuzzy
+msgid "Password restrictions"
+msgstr "Срок действия пароля истекает"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+#, fuzzy
+msgid "Password change hook"
+msgstr "Сменить пароль"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+#, fuzzy
+msgid "Use account expiration"
+msgstr "Учетная запись"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+
+#: setup/setup_config1.tpl:222
+#, fuzzy
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"Сейчас вам нужно указать параметры доступа к LDAP-серверу. GOsa всегда "
+"выступает в роли администратора и управляет правами доступа самостоятельно. "
+"Это временное решение, пока в OpenLDAP не будут реализованы полностью "
+"средства контроля доступа (ACI) внутри каталогов. Чтобы это решение "
+"работало, укажите DN (уникальное имя) администратора и соответствующий "
+"пароль."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Некоторые основные параметры LDAP изменяемы и влияют на расположение "
+"сохраняемой информации о пользователях и группах, а также на способ создания "
+"учетных записей. Проверьте, подходят ли вам значения, указанные ниже."
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+#, fuzzy
+msgid "LDAP schema check"
+msgstr "Сервер подкачки"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+#, fuzzy
+msgid "Welcome"
+msgstr "Добро пожаловать %s!"
+
+#: setup/class_setupStep_Welcome.inc:39
+#, fuzzy
+msgid "The welcome message"
+msgstr "Удалить"
+
+#: setup/class_setupStep_Welcome.inc:40
+#, fuzzy
+msgid "Welcome to GOsa setup wizard"
+msgstr "Добро пожаловать в раздел настройки GOsa!"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+#, fuzzy
+msgid "License"
+msgstr "в"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+#, fuzzy
+msgid "Please select the preferred language"
+msgstr "Язык по умолчанию"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+#, fuzzy
+msgid "Please select your preferred language here"
+msgstr "Язык по умолчанию"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+#, fuzzy
+msgid "GOsa settings 1/3"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/class_setupStep_Config1.inc:76
+#, fuzzy
+msgid "GOsa generic settings"
+msgstr "Общая информация о пользователе"
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "Структурная единица (OU) пользователей"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "OU групп"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:137
+#, fuzzy
+msgid "The given password differ value is not numeric."
+msgstr "Значение поля \"Квота\" некорректно."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+#, fuzzy
+msgid "GOsa settings 2/3"
+msgstr "Почтовые настройки пользователя"
+
+#: setup/class_setupStep_Config2.inc:82
+#, fuzzy
+msgid "Customize special parameters"
+msgstr "Изменить параметры"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+#, fuzzy
+msgid "Language setup"
+msgstr "Язык"
+
+#: setup/class_setupStep_Language.inc:42
+#, fuzzy
+msgid "This step allows you to select your preferred language."
+msgstr "Язык по умолчанию"
+
+#: setup/class_setupStep_Language.inc:47
+#, fuzzy
+msgid "Automatic"
+msgstr "автоматически"
+
+#, fuzzy
+#~ msgid "Choose a base"
+#~ msgstr "Выберите, чтобы просмотреть серверы"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Выберите ветку для группы"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "Выберите ветку для подразделения"
+
+#, fuzzy
+#~ msgid "Show %s"
+#~ msgstr "Показать группы"
+
+#, fuzzy
+#~ msgid "people"
+#~ msgstr "Показать людей"
+
+#, fuzzy
+#~ msgid "printer"
+#~ msgstr "принтеры"
+
+#~ msgid "Select users to add"
+#~ msgstr "Выбрать пользователей для добавления"
+
+#~ msgid "Select to see servers"
+#~ msgstr "Выберите, чтобы просмотреть серверы"
+
+#, fuzzy
+#~ msgid "Search within subtree"
+#~ msgstr "Искать в поддеревьях"
+
+#~ msgid "Display users of department"
+#~ msgstr "Подразделение"
+
+#~ msgid "Display users matching"
+#~ msgstr "Фильтр"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "Регулярное выражение, соответствующее именам пользователей"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Список пользователей"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Имя"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Имя сервера"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Список групп"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "Список групп"
+
+#, fuzzy
+#~ msgid "Use"
+#~ msgstr "Пользователь"
+
+#, fuzzy
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Показать подходяшие адреса"
+
+#, fuzzy
+#~ msgid "MySQL error"
+#~ msgstr "Ошибка LDAP:"
+
+#, fuzzy
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "Невозможно подключиться к серверу базы данных!"
+
+#, fuzzy
+#~ msgid "Submit department"
+#~ msgstr "Показать подразделения"
+
+#, fuzzy
+#~ msgid "edit"
+#~ msgstr "Изменить"
+
+#, fuzzy
+#~ msgid "delete"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Number of listed object groups"
+#~ msgstr "Название группы"
+
+#, fuzzy
+#~ msgid "Number of listed departments"
+#~ msgstr "Подразделение"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr "Выберите, чтобы просмотреть список основных групп пользователей"
+
+#, fuzzy
+#~ msgid "primary groups"
+#~ msgstr "Основная группа"
+
+#, fuzzy
+#~ msgid "samba groups mappings"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "samba groups"
+#~ msgstr "Группа Samba"
+
+#, fuzzy
+#~ msgid "application settings"
+#~ msgstr "приложения"
+
+#, fuzzy
+#~ msgid "mail settings"
+#~ msgstr "Почтовые настройки пользователя"
+
+#, fuzzy
+#~ msgid "mail groups"
+#~ msgstr "Показать группы с эл. почтой"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr "Выберите, чтобы просмотреть список обычных групп"
+
+#, fuzzy
+#~ msgid "functional groups"
+#~ msgstr "Показать обычные группы"
+
+#, fuzzy
+#~ msgid "Not allowed"
+#~ msgstr "Сменить пароль"
+
+#, fuzzy
+#~ msgid "Number of listed groups"
+#~ msgstr "Название группы"
+
+#, fuzzy
+#~ msgid "group"
+#~ msgstr "группы"
+
+#~ msgid "User administration"
+#~ msgstr "Управление пользователями"
+
+#, fuzzy
+#~ msgid "templates"
+#~ msgstr "Шаблон"
+
+#, fuzzy
+#~ msgid "GOsa object"
+#~ msgstr "Объект"
+
+#, fuzzy
+#~ msgid "functional users"
+#~ msgstr "Показать обычных пользователей"
+
+#, fuzzy
+#~ msgid "POSIX users"
+#~ msgstr "Атрибуты UNIX"
+
+#, fuzzy
+#~ msgid "samba users"
+#~ msgstr "Пользователи домена"
+
+#, fuzzy
+#~ msgid "proxy users"
+#~ msgstr "Показать пользователей с прокси-серверами"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Показать пользователей с прокси-серверами"
+
+#, fuzzy
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Изменить свойства"
+
+#, fuzzy
+#~ msgid "Edit fax properies"
+#~ msgstr "Изменить свойства"
+
+#, fuzzy
+#~ msgid "Create user with this template"
+#~ msgstr "Создать шаблон"
+
+#, fuzzy
+#~ msgid "user"
+#~ msgstr "пользователи"
+
+#, fuzzy
+#~ msgid "password"
+#~ msgstr "Пароль"
+
+#, fuzzy
+#~ msgid "Delete user"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Number of listed users"
+#~ msgstr "Подразделение"
+
+#, fuzzy
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#, fuzzy
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#, fuzzy
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "У вас недостаточно прав для смены своего пароля."
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Подразделение"
+
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "Регулярное выражение, соответствующее именам подразделений"
+
+#~ msgid "Department management"
+#~ msgstr "Управление подразделениями"
+
+#, fuzzy
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "Сюда входит <b>вся</b> информация о системе и ее настройках. Подумайте "
+#~ "еще раз, действительно ли вам нужно удаление, так как GOsa не сможет "
+#~ "отменить результаты этой операции."
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "Доступ"
+
+#, fuzzy
+#~ msgid "Display acls matching"
+#~ msgstr "Шаблон для групп"
+
+#, fuzzy
+#~ msgid "Edit acl role"
+#~ msgstr "Пользователи домена"
+
+#, fuzzy
+#~ msgid "Edit acl"
+#~ msgstr "Список систем"
+
+#, fuzzy
+#~ msgid "Delete acl"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Gender"
+#~ msgstr "Отправитель"
+
+#, fuzzy
+#~ msgid "Logging options"
+#~ msgstr "состояние неизвестно"
+
+#, fuzzy
+#~ msgid "Syslog"
+#~ msgstr "Системные журналы"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "Показать группы с эл. почтой"
+
+#, fuzzy
+#~ msgid "Enable DNS extension"
+#~ msgstr "Удалить параметры"
+
+#, fuzzy
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Удалить параметры"
+
+#, fuzzy
+#~ msgid "Enable mime type management"
+#~ msgstr "Управление системами"
+
+#, fuzzy
+#~ msgid "Enable FAI release management"
+#~ msgstr "Управление подразделениями"
+
+#, fuzzy
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Создать телефонный аккаунт"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Сменить пароль"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Создать"
+
+#, fuzzy
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "В этой учетной записи используются атрибуты POSIX. Чтобы отключить их "
+#~ "использование, сначала нужно удалить учетную запись Samba."
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "Необходим для чтения отчетов о полученных факсимильных сообщениях из базы "
+#~ "данных."
+
+#, fuzzy
+#~ msgid "Role name"
+#~ msgstr "Имя сервера"
+
+#, fuzzy
+#~ msgid "Role description"
+#~ msgstr "Описание подразделения"
+
+#, fuzzy
+#~ msgid "Override sudo role ou"
+#~ msgstr "состояние неизвестно"
+
+#~ msgid "Terminals"
+#~ msgstr "Терминалы"
+
+#~ msgid "Action"
+#~ msgstr "Действие"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "Выберите, чтобы просмотреть серверы"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "Добавить"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "Удалить"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "Вы собираетесь удалить целую ветку LDAP с корнем в \"%s\"."
+
+#, fuzzy
+#~ msgid "department"
+#~ msgstr "подразделения"
+
+#, fuzzy
+#~ msgid "Delete acl role"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Steps"
+#~ msgstr "Системы"
+
+#, fuzzy
+#~ msgid "Move object"
+#~ msgstr "Включаемые объекты"
+
+#, fuzzy
+#~ msgid "Remove object"
+#~ msgstr "Включаемые объекты"
+
+#, fuzzy
+#~ msgid "Repository"
+#~ msgstr "Повторить"
+
+#, fuzzy
+#~ msgid "DAK repository"
+#~ msgstr "Каталог"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "Настройка завершена"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "Почтовые настройки"
+
+#, fuzzy
+#~ msgid "Hour"
+#~ msgstr "час"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "день"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "месяц"
+
+#, fuzzy
+#~ msgid "Year"
+#~ msgstr "Поиск"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "Пароль"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "Приложение"
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "Изменить параметры"
+
+#~ msgid "Language"
+#~ msgstr "Язык"
+
+#, fuzzy
+#~ msgid "User list of %s on %s"
+#~ msgstr "Список пользователей"
+
+#, fuzzy
+#~ msgid "Groups of %s on %s"
+#~ msgstr "Группа пользователя"
+
+#~ msgid "Servers"
+#~ msgstr "Серверы"
+
+#, fuzzy
+#~ msgid "Computers"
+#~ msgstr "не полный"
+
+#, fuzzy
+#~ msgid "Common name"
+#~ msgstr "Местоположение"
+
+#~ msgid "Server name"
+#~ msgstr "Имя сервера"
+
+#, fuzzy
+#~ msgid "Servers of %s on %s"
+#~ msgstr "Серверы"
+
+#~ msgid "Display name"
+#~ msgstr "Отображаемое имя"
+
+#~ msgid "Home phone"
+#~ msgstr "Домашний телефон"
+
+#~ msgid "Initials"
+#~ msgstr "Отчество"
+
+#, fuzzy
+#~ msgid "Mobile phone"
+#~ msgstr "Домашний телефон"
+
+#~ msgid "City"
+#~ msgstr "Город"
+
+#, fuzzy
+#~ msgid "Function"
+#~ msgstr "Действие"
+
+#, fuzzy
+#~ msgid "Adressbook"
+#~ msgstr "Адресная книга"
+
+#, fuzzy
+#~ msgid "Adressbook of %s on %s"
+#~ msgstr "Адресная книга"
+
+#, fuzzy
+#~ msgid "Common Name"
+#~ msgstr "Местоположение"
+
+#, fuzzy
+#~ msgid "Day of birth"
+#~ msgstr "Дата рождения"
+
+#, fuzzy
+#~ msgid "Email address"
+#~ msgstr "Основной адрес"
+
+#, fuzzy
+#~ msgid "Organizational unit"
+#~ msgstr "Организация"
+
+#, fuzzy
+#~ msgid "Postal Code"
+#~ msgstr "Почтовый индекс"
+
+#, fuzzy
+#~ msgid "Title"
+#~ msgstr "Файлы"
+
+#, fuzzy
+#~ msgid "Computers of %s on %s"
+#~ msgstr "не полный"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr "У вас недостаточно прав для создания пользователя в этой ветке."
+
+#~ msgid "Could not connect to database server!"
+#~ msgstr "Невозможно подключиться к серверу базы данных!"
+
+#~ msgid "Could not select database!"
+#~ msgstr "Невозможно выбрать базу данных!"
+
+#~ msgid "Database query failed!"
+#~ msgstr "Невозможно выполнить запрос к базе данных!"
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "Список пользователей"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "Регулярное выражение, соответствующее именам групп"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "Регулярное выражение, соответствующее именам объектов"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "Название группы"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "Имя сервера"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "Пользователи домена"
+
+#, fuzzy
+#~ msgid "sudo role"
+#~ msgstr "состояние неизвестно"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "Предупреждение"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "принтеры"
+
+#, fuzzy
+#~ msgid "Sudo role"
+#~ msgstr "состояние неизвестно"
+
+#, fuzzy
+#~ msgid "Command"
+#~ msgstr "и"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "Пользователи домена"
+
+#, fuzzy
+#~ msgid "Available options"
+#~ msgstr "Доступные приложения"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "Управление группами"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "Управление системами"
+
+#, fuzzy
+#~ msgid "Checking for LDAP support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr "Основной модуль, используемый GOsa, и поэтому обязательный."
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr "Необходима для локализованных версий GOsa."
+
+#, fuzzy
+#~ msgid "Checking for iconv support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Checking for mhash support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Checking for IMAP support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr ""
+#~ "Этот модуль нужен для работы с сервером IMAP. С его помощью можно "
+#~ "получать информацию о состоянии учетной записи, создавать и удалять "
+#~ "пользователей."
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "Проверка использования getacl в IMAP"
+
+#, fuzzy
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "Поддержка getacl в IMAP нужна для выставления прав на общие папки. "
+#~ "Стандартный модуль IMAP не может обрабатывать acl. Для использования этой "
+#~ "функции вам нужна последняя версия PHP."
+
+#, fuzzy
+#~ msgid "Checking for MySQL support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "Проверка поддержки gettext"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr ""
+#~ "Чтобы управлять пользователями с помощью Kerberos, необходим модуль "
+#~ "kadm5, который можно загрузить из сети PEAR."
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr ""
+#~ "Чтобы управлять пользователями с помощью Kerberos, необходим модуль "
+#~ "kadm5, который можно загрузить из сети PEAR."
+
+#, fuzzy
+#~ msgid "Checking for SNMP support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid "Checking for CUPS support"
+#~ msgstr "Проверка поддержки gettext"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "Чтобы получать информацию о доступных принтерах по протоколу IPP вместо "
+#~ "чтения файлов printcap, вам нужно установить модуль CUPS."
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "Проверка утилиты fping"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr ""
+#~ "Эта программа используется, только если вы работате с бездисковыми "
+#~ "терминалами."
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr ""
+#~ "Эта программа используется, только если вы работате с бездисковыми "
+#~ "терминалами."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr ""
+#~ "Чтобы пользоваться Samba 2/3, вам нужно установить некоторые "
+#~ "дополнительные программы для создания хэшей паролей."
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr ""
+#~ "Чтобы пользоваться Samba 2/3, вам нужно установить некоторые "
+#~ "дополнительные программы для создания хэшей паролей."
+
+#, fuzzy
+#~ msgid "Choose subtree to place %s in"
+#~ msgstr "Выберите ветку для пользователя"
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "Показать группы с пользователями"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "серверы"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "Показать пользователей Samba"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "Действие"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Прокси-сервер"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "мужской"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "Прокси-сервер"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "Запуск"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "приложения"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "Показать группы с пользователями"
+
+#, fuzzy
+#~ msgid "Workstations"
+#~ msgstr "Рабочая станция"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "Телефон"
+
+#, fuzzy
+#~ msgid "Click here to Change your password"
+#~ msgstr "У вас недостаточно прав для смены своего пароля."
+
+#, fuzzy
+#~ msgid "Can't create/open File"
+#~ msgstr "Невозможно импортиовать пустой файл"
+
+#~ msgid "LDAP error:"
+#~ msgstr "Ошибка LDAP:"
+
+#, fuzzy
+#~ msgid "You are not allowed to change your password at this time"
+#~ msgstr "Вам не разрешено менять пароль."
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "Терминал"
+
+#, fuzzy
+#~ msgid "Service infrastructure"
+#~ msgstr "Искать в поддеревьях"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "Сменить пароль"
+
+#~ msgid "You are not allowed to set this users password!"
+#~ msgstr "У вас недостаточно прав для смены пароля этого пользователя!"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "User List of %s on %s"
+#~ msgstr "Список пользователей"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "Права для членов группы"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "У вас недостаточно прав для удаления этой группы!"
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "Вам не разрешено менять пароль."
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "Настроить"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "Настроить"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "Срок действия пароля истекает"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "Настроить"
+
+#, fuzzy
+#~ msgid "Anonymous bind failed on server '%s'."
+#~ msgstr "Ошибка при регистрации. Ответ сервера: \"%s\"."
+
+#, fuzzy
+#~ msgid "New Password"
+#~ msgstr "Новый пароль"
+
+#, fuzzy
+#~ msgid "Change Password"
+#~ msgstr "Сменить пароль"
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Entry with id '%s' not found."
+#~ msgstr "Показать подразделения"
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "Выберите, чтобы просмотреть шаблоны псевдопользователей"
+
+#, fuzzy
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr ""
+#~ "Выберите, чтобы просмотреть пользователей, у которых есть только объект "
+#~ "GOsa"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr ""
+#~ "Выберите, чтобы просмотреть пользователей с атрибутами в стандарте POSIX"
+
+#~ msgid "Show unix users"
+#~ msgstr "Показать UNIX-пользователей"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr "Выберите, чтобы просмотреть пользователей с настройками почты"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "Выберите, чтобы просмотреть пользователей с настройками Samba"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr ""
+#~ "Выберите, чтобы просмотреть пользователей с настройками прокси-сервера"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr "Выберите, чтобы просмотреть группы, которые входят в samba"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr ""
+#~ "Выберите, чтобы просмотреть список групп, которым доступны приложения"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr ""
+#~ "Выберите, чтобы просмотреть список групп, которым доступны функции эл. "
+#~ "почты"
+
+#, fuzzy
+#~ msgid "acl"
+#~ msgstr "Отмена"
+
+#~ msgid "Select to see departments"
+#~ msgstr "Выберите подразделение"
+
+#~ msgid "Select to see GOsa accounts"
+#~ msgstr "Выберите чтобы посмотреть пользователей GOsa"
+
+#~ msgid "Select to see GOsa groups"
+#~ msgstr "Выберите чтобы посмотреть группы GOsa"
+
+#~ msgid "Select to see applications"
+#~ msgstr "Выберите чтобы посмотреть приложения"
+
+#~ msgid "Show applications"
+#~ msgstr "Показать приложения"
+
+#~ msgid "Select to see workstations"
+#~ msgstr "Выберите чтобы посмотреть рабочие станции"
+
+#~ msgid "Select to see terminals"
+#~ msgstr "Выберите чтобы посмотреть терминалы"
+
+#~ msgid "Select to see printers"
+#~ msgstr "Выберите чтобы посмотреть принтеры"
+
+#~ msgid "Select to see phones"
+#~ msgstr "Выберите чтобы посмотреть телефоны"
+
+#, fuzzy
+#~ msgid "Cannot connect to logging server '%s'."
+#~ msgstr "Невозможно подключиться к серверу базы данных!"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr "Невозможно выбрать базу данных!"
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr "Невозможно выбрать базу данных!"
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "Назад"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "Пользователи домена"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "Начало"
+
+#, fuzzy
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "Вам не разрешено менять пароль."
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "У вас недостаточно прав для удаления этого пользователя!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "У вас недостаточно прав для удаления этого пользователя!"
+
+#~ msgid "You're about to delete the user %s."
+#~ msgstr "Вы собираетесь удалить пользователя %s."
+
+#~ msgid "You are not allowed to delete this user!"
+#~ msgstr "У вас недостаточно прав для удаления этого пользователя!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#~ msgid "You're about to delete the group '%s'."
+#~ msgstr "Вы собираетесь удалить группу \"%s\"."
+
+#, fuzzy
+#~ msgid "You have no permission to edit this ACL!"
+#~ msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#, fuzzy
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "Вы собираетесь удалить группу \"%s\"."
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#, fuzzy
+#~ msgid "List of acl"
+#~ msgstr "Список групп"
+
+#~ msgid "Required field 'Name' is not set."
+#~ msgstr "Обязательное поле \"Имя\" не заполнено."
+
+#~ msgid "Required field 'Description' is not set."
+#~ msgstr "Обязательное поле \"Описание\" не заполнено."
+
+#~ msgid "This 'dn' is no object group."
+#~ msgstr "Этот объект не является группой."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entry %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entries %s"
+#~ msgstr "Вы собираетесь удалить групповой объект \"%s\"."
+
+#~ msgid "You're about to delete the object group '%s'."
+#~ msgstr "Вы собираетесь удалить групповой объект \"%s\"."
+
+#, fuzzy
+#~ msgid "Name of object groups"
+#~ msgstr "Название группы"
+
+#, fuzzy
+#~ msgid "Select to see groups containing groups"
+#~ msgstr "Показать группы с группами"
+
+#~ msgid "Show groups containing groups"
+#~ msgstr "Показать группы с группами"
+
+#, fuzzy
+#~ msgid "Select to see groups containing applications"
+#~ msgstr "Показать группы с приложениями"
+
+#~ msgid "Show groups containing applications"
+#~ msgstr "Показать группы с приложениями"
+
+#, fuzzy
+#~ msgid "Select to see groups containing departments"
+#~ msgstr "Показать группы с подразделениями"
+
+#~ msgid "Show groups containing departments"
+#~ msgstr "Показать группы с подразделениями"
+
+#, fuzzy
+#~ msgid "Select to see groups containing servers"
+#~ msgstr "Показать группы с серверами"
+
+#~ msgid "Show groups containing servers"
+#~ msgstr "Показать группы с серверами"
+
+#, fuzzy
+#~ msgid "Select to see groups containing workstations"
+#~ msgstr "Показать группы с рабочими станциями"
+
+#~ msgid "Show groups containing workstations"
+#~ msgstr "Показать группы с рабочими станциями"
+
+#, fuzzy
+#~ msgid "Select to see groups containing windows workstations"
+#~ msgstr "Показать группы с рабочими станциями"
+
+#, fuzzy
+#~ msgid "Show groups containing windows workstations"
+#~ msgstr "Показать группы с рабочими станциями"
+
+#, fuzzy
+#~ msgid "Select to see groups containing terminals"
+#~ msgstr "Показать группы с терминалами"
+
+#~ msgid "Show groups containing terminals"
+#~ msgstr "Показать группы с терминалами"
+
+#, fuzzy
+#~ msgid "Select to see groups containing printer"
+#~ msgstr "Показать группы с принтерами"
+
+#, fuzzy
+#~ msgid "Show groups containing printer"
+#~ msgstr "Показать группы с принтерами"
+
+#, fuzzy
+#~ msgid "Select to see groups containing phones"
+#~ msgstr "Показать группы с принтерами"
+
+#, fuzzy
+#~ msgid "Show groups containing phones"
+#~ msgstr "Показать группы с принтерами"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this entry."
+#~ msgstr "У вас недостаточно прав для удаления этого объекта!"
+
+#, fuzzy
+#~ msgid "Edit ACL"
+#~ msgstr "Изменить"
+
+#, fuzzy
+#~ msgid "ACLs"
+#~ msgstr "Доступ"
+
+#, fuzzy
+#~ msgid "Groupname / Department"
+#~ msgstr "Подразделение"
+
+#~ msgid "This 'dn' is no group."
+#~ msgstr "Это DN соответствует не группе."
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "Личный"
+
+#, fuzzy
+#~ msgid "Active"
+#~ msgstr "Личный"
+
+#, fuzzy
+#~ msgid "Members:"
+#~ msgstr "Включаемые объекты"
+
+#, fuzzy
+#~ msgid "Adding a lock failed."
+#~ msgstr "Ошибка при создании блокировки. Ответ сервера: \"%s\"."
+
+#, fuzzy
+#~ msgid "Access control list templates"
+#~ msgstr "Параметры доступа"
+
+#, fuzzy
+#~ msgid "Acl roles"
+#~ msgstr "Управление системами"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "Удалить приложения"
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr "Ошибка при установке пароля. Ответ LDAP-сервера: \"%s\"."
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "Введите корректный серийный номер"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "У вас недостаточно прав для удаления этого стоп-листа."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять выбранных "
+#~ "пользователей. Если у вас достаточно большое количество пользователей, вы "
+#~ "можете использовать групповое выделение."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять выбранные "
+#~ "группы пользователей. Если у вас их достаточно большое количество, вы "
+#~ "можете использовать групповое выделение."
+
+#, fuzzy
+#~ msgid "This menu allows you to edit and delete selected acls."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять выбранные "
+#~ "стоп-листы. Если у вас достаточно большое количество списков, вы можете "
+#~ "использовать групповое выделение."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять выбранные "
+#~ "подразделения. Если у вас достаточно большое количество подразделений, вы "
+#~ "можете использовать групповое выделение."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to add, edit or remove selected groups. You may want "
+#~ "to use the range selector on top of the group listbox, when working with  "
+#~ "a large number of groups."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять выбранные "
+#~ "группы пользователей. Если у вас их достаточно большое количество, вы "
+#~ "можете использовать групповое выделение."
+
+#~ msgid "Can't bind to LDAP. Please contact the system administrator."
+#~ msgstr ""
+#~ "Не удается начать сеанс на LDAP-сервере. Обратитесь к системному "
+#~ "администратору."
+
+#, fuzzy
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr "Удалить учетную запись POSIX"
+
+#, fuzzy
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "Аккаунт Proxy"
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "В этой учетной записи нет расширений UNIX."
+
+#~ msgid "Remove posix account"
+#~ msgstr "Удалить учетную запись POSIX"
+
+#~ msgid "Create posix account"
+#~ msgstr "Создать учетную запись POSIX"
+
+#, fuzzy
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr "Удалить учетную запись POSIX"
+
+#, fuzzy
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "Аккаунт Proxy"
+
+#~ msgid "Unix settings"
+#~ msgstr "Атрибуты UNIX"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "Специальность"
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "Информация"
+
+#, fuzzy
+#~ msgid "Please specify at least one recipient to send a message!"
+#~ msgstr "Введите корректное имя пользователя!"
+
+#, fuzzy
+#~ msgid "Cannot find a DESC tag in file '%s'!"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "Специальность"
+
+#, fuzzy
+#~ msgid "Notification plugin"
+#~ msgstr "Изменить сертификаты"
+
+#, fuzzy
+#~ msgid "Allow sending notifications"
+#~ msgstr "Параметры приложения"
+
+#, fuzzy
+#~ msgid "Notification target"
+#~ msgstr "Изменить сертификаты"
+
+#, fuzzy
+#~ msgid "Recipients"
+#~ msgstr "Описание"
+
+#~ msgid "Message"
+#~ msgstr "Сообщение"
+
+#~ msgid "Import"
+#~ msgstr "Импортировать"
+
+#, fuzzy
+#~ msgid "Notification send!"
+#~ msgstr "Изменить сертификаты"
+
+#, fuzzy
+#~ msgid "Saving of object group/generic with dn '%s' failed."
+#~ msgstr "Моя учетная запись"
+
+#, fuzzy
+#~ msgid "Removing of object group/generic with dn '%s' failed."
+#~ msgstr "Атрибуты UNIX"
+
+#, fuzzy
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "Показать подразделения"
+
+#, fuzzy
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "Показать подразделения"
+
+#, fuzzy
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "Атрибуты UNIX"
+
+#, fuzzy
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "Удалить приложения"
+
+#, fuzzy
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "Показать группы приложений"
+
+#, fuzzy
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "Показать группы приложений"
+
+#, fuzzy
+#~ msgid "Saving object snapshot with dn '%s' failed."
+#~ msgstr "Моя учетная запись"
+
+#, fuzzy
+#~ msgid "Restore snapshot with dn '%s' failed."
+#~ msgstr "Удалить приложения"
+
+#, fuzzy
+#~ msgid "Creating subtree '%s' failed."
+#~ msgstr "Объект группы"
+
+#, fuzzy
+#~ msgid "Ldap import with dn '%s' failed."
+#~ msgstr "Показать подразделения"
+
+#~ msgid "This does something"
+#~ msgstr "Что-то будет"
+
+#~ msgid "The required field 'Home directory' is not set."
+#~ msgstr "Обязательное поле \"Домашний каталог\" не заполнено."
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr "Введите корректный путь в поле \"Домашний каталог\"."
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "Значение поля \"UID\" некорректно."
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "Значение поля 'GID' некорректно."
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "Значение 'GID' слишком маленькое."
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "Значение поля \"shadowMin\" некорректно."
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "Значение поля \"shadowMax\" некорректно."
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "Значение поля \"shadowWarning\" некорректно."
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "Использование \"shadowWarning\" без \"shadowMax\" бессмысленно."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be smaller than 'shadowMax'."
+#~ msgstr ""
+#~ "Значение поля \"shadowWarning\" должно быть меньше значения поля "
+#~ "\"shadowMax\"."
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be greater than 'shadowMin'."
+#~ msgstr ""
+#~ "Значение поля \"shadowWarning\" должно быть больше значения поля "
+#~ "\"shadowMin\"."
+
+#~ msgid "Value specified as 'shadowInactive' is not valid."
+#~ msgstr "Значение поля \"shadowInactive\" некорректно."
+
+#~ msgid "'shadowInactive' without 'shadowMax' makes no sense."
+#~ msgstr "Использование \"shadowInactive\" без \"shadowMax\" бессмысленно."
+
+#~ msgid "The required field 'Given name' is not set."
+#~ msgstr "Обязательное поле \"Личное имя\" не заполнено."
+
+#~ msgid "The required field 'Login' is not set."
+#~ msgstr "Обязательное поле \"Регистрационное имя\" не заполнено."
+
+#~ msgid ""
+#~ "There's already a person with this 'Name'/'Given name' combination in the "
+#~ "database."
+#~ msgstr ""
+#~ "Пользователь с такой комбинацией имени и личного имени в базе данных уже "
+#~ "существует."
+
+#~ msgid ""
+#~ "The field 'Login' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Значение поля \"Регистрационное имя\" содержит недопустимые символы. "
+#~ "Допустимыми являются буквы в нижнем регистре, цифры и дефисы."
+
+#~ msgid "The field 'Homepage' contains an invalid URL definition."
+#~ msgstr "Значение поля \"Домашняя страница\" содержит некорректный URL."
+
+#~ msgid "The field 'Given name' contains invalid characters."
+#~ msgstr "Значение поля \"Личное имя\" содержит недопустимые символы."
+
+#~ msgid "The field 'Phone' contains an invalid phone number."
+#~ msgstr "Значение поля \"Телефон\" содержит недопустимый номер телефона."
+
+#~ msgid "The field 'Mobile' contains an invalid phone number."
+#~ msgstr "Значение поля \"Мобильный\" содержит некорректный номер телефона."
+
+#~ msgid "The field 'Pager' contains an invalid phone number."
+#~ msgstr "Значение поля \"Пейджер\" содержит некорректный номер телефона."
+
+#~ msgid ""
+#~ "The field 'Name' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr ""
+#~ "Значение поля \"Имя\" содержит недопустимые символы. Допустимыми являются "
+#~ "буквы в нижнем регистре, цифры и дефисы."
+
+#~ msgid "Value specified as 'Name' is already used."
+#~ msgstr "Группа с таким именем уже существует."
+
+#, fuzzy
+#~ msgid "Please select a valid template."
+#~ msgstr "Введите корректный серийный номер"
+
+#~ msgid "A person with the choosen name is already used in this tree."
+#~ msgstr "Пользователь с таким именем уже есть в этой ветке."
+
+#~ msgid "Department with that 'Name' already exists."
+#~ msgstr "Подразделение с таким именем уже существует."
+
+#, fuzzy
+#~ msgid ""
+#~ "The field 'Name' contains the reserved word '%s'. Please choose another "
+#~ "name."
+#~ msgstr "Значение поля \"Имя\" содержит служебное слово \"incoming\"."
+
+#, fuzzy
+#~ msgid "There is already an object with this cn."
+#~ msgstr ""
+#~ "Пользователь с таким регистрационным именем в базе данных уже существует."
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTCREATE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Не удается найти команду \"%s\", указанную в поле POSTCREATE модуля \"%s"
+#~ "\"."
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTREMOVE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr ""
+#~ "Не удается найти команду \"%s\", указанную в поле POSTREMOVE модуля \"%s"
+#~ "\"."
+
+#, fuzzy
+#~ msgid "You are going to paste the cutted entry '%s'."
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr "У вас недостаточно прав для создания пользователя в этой ветке."
+
+#, fuzzy
+#~ msgid "Please specify a valid description for this snapshot."
+#~ msgstr "Укажите корректный номер телефона."
+
+#, fuzzy
+#~ msgid ""
+#~ "Setting for SMBHASH in gosa.conf is incorrect! Cannot change Samba "
+#~ "password."
+#~ msgstr ""
+#~ "Параметр SMBHASH в gosa.conf некорректен! Не удается сменить пароль Samba."
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "Управление системами"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "Вы собираетесь удалить объект %s."
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to remove and change the properties of GOsa deamon "
+#~ "tasks."
+#~ msgstr ""
+#~ "С помощью этого меню вы можете добавлять, изменять и удалять свойства "
+#~ "отдельных систем. Вы можете только добавлять системы которые однажды уже "
+#~ "были запущены."
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "Список подразделений"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "сброс"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "Учетная запись Groupware"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "Удалить"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Оболочка"
+
+#, fuzzy
+#~ msgid "System mass deployment"
+#~ msgstr "Управление системами"
+
+#, fuzzy
+#~ msgid "Header Tag"
+#~ msgstr "Отправитель"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "Учетная запись Groupware"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "сброс"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "Отправитель"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "Март"
+
+#, fuzzy
+#~ msgid "Available targets"
+#~ msgstr "Доступные приложения"
+
+#, fuzzy
+#~ msgid "Show object groups"
+#~ msgstr "Объединения"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "У вас недостаточно прав для удаления этой группы!"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "У вас недостаточно прав для удаления этой группы!"
+
+#~ msgid "You are not allowed to delete this group!"
+#~ msgstr "У вас недостаточно прав для удаления этой группы!"
+
+#~ msgid "You have no permission to remove this department."
+#~ msgstr "У вас недостаточно прав для удаления этого подразделения."
+
+#~ msgid "You are not allowed to delete this object group!"
+#~ msgstr "У вас недостаточно прав для удаления этого группового объекта!"
+
+#, fuzzy
+#~ msgid "Network resolv hook"
+#~ msgstr "Сетевые устройства"
+
+#~ msgid "Administration"
+#~ msgstr "Администрирование"
+
+#~ msgid "Addons"
+#~ msgstr "Дополнительно"
+
+#, fuzzy
+#~ msgid "ACL Role"
+#~ msgstr "Доступ"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Connectivity"
+#~ msgstr "Подключение"
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "терминалы"
+
+#~ msgid "Options"
+#~ msgstr "Параметры"
+
+#, fuzzy
+#~ msgid "Parameter"
+#~ msgstr "Параметры загрузки"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "Добавить объект"
+
+#~ msgid "Services"
+#~ msgstr "Сервисы"
+
+#, fuzzy
+#~ msgid "Excel Export"
+#~ msgstr "Экспорт"
+
+#, fuzzy
+#~ msgid "CSV Import"
+#~ msgstr "Импортировать"
+
+#, fuzzy
+#~ msgid "Partitions"
+#~ msgstr "Назначение"
+
+#, fuzzy
+#~ msgid "Script"
+#~ msgstr "Путь к сценариям"
+
+#, fuzzy
+#~ msgid "Variables"
+#~ msgstr "Переменная"
+
+#, fuzzy
+#~ msgid "Profiles"
+#~ msgstr "Путь к профилю"
+
+#, fuzzy
+#~ msgid "Packages"
+#~ msgstr "Показать телефоны"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "Служба печати"
+
+#, fuzzy
+#~ msgid ""
+#~ "Can't connect to glpi database, there is no mysl extension available in "
+#~ "your php setup."
+#~ msgstr "Не удается подключиться к базе журналов, отчеты показаны не будут!"
+
+#, fuzzy
+#~ msgid "Can't read file '%s', check permissions."
+#~ msgstr "Удалить"
diff --git a/gosa-core/locale/core/vi/LC_MESSAGES/messages.po b/gosa-core/locale/core/vi/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..f409e05
--- /dev/null
+++ b/gosa-core/locale/core/vi/LC_MESSAGES/messages.po
@@ -0,0 +1,6999 @@
+# translation of VIcore2.po to Vietnamese
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Stefan Koehler <stefan at gonicus.de>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: VIcore2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2008-07-04 09:59+0200\n"
+"Last-Translator: Stefan Koehler <stefan at gonicus.de>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Bookmarks: -1,848,-1,-1,-1,-1,-1,57,-1,-1\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms:  nplurals=1; plural=0;\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "Cảnh báo"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Thứ này có thể được sử dụng bởi một vài nhóm. Xin hãy kiểm tra hai lần nếu "
+"bạn thực sự muốn làm điều này bởi vì sẽ không có cách nào để GOsa phục hồi "
+"dữ liệu cho bạn."
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Vì thế nếu bạn chắc chắn hãy nhấn \"Xóa bỏ\" để tiếp tục hoặc'Hủy bỏ' để "
+"dừng lại."
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "Hủy bỏ"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr "Màn hình đăng nhập GOsa"
+
+#: ihtml/themes/default/login.tpl:27
+msgid "Login screen"
+msgstr "Màn hình đăng nhập"
+
+#: ihtml/themes/default/login.tpl:34
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr ""
+"Xin hãy sử dụng tên và mật khẩu của bạn để đăng nhập vào trang hệ thống quản "
+"trị."
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "Tên người dùng"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "Mật khẩu"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "Thư mục"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "Đăng ký"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "Kích vào đây để đăng nhập"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+msgid "Copy & paste wizard"
+msgstr "Copy & Paste wizard"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"Một số giá trị phải là duy nhất trong thư mục hoàn chỉnh trong khi một số "
+"kết hợp không có ý nghĩa nào. GOsa hiển thị những thuộc tính liên quan. Xin "
+"hãy giữ các giá trị bên dưới để thực hiện các chính sách đó."
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+"Hãy nhớ rằng một số đặc tính ví dụ như snapshot sẽ không được copy lại!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+"Hoặc nếu bạn copy hoặc cắt một entry trong GOsa và xóa đối tượng nguồn, bạn "
+"có thể lại gặp lỗi khi paste đối tượng này!"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "Lưu lại"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+msgid "Cancel all"
+msgstr "Hủy bỏ tất"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "Thao tác hoàn thành"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "Kết thúc"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"Lựa chọn giới hạn kích cỡ khiến cho hoạt động của LDAP nhanh hơn và giúp cho "
+"LDAP server không chịu quá nhiều tải. Cách đơn giản nhất để quản lý được các "
+"cơ sở dữ liệu lớn mà không có thời gian hạn định dài là hạn chế việc tìm "
+"kiếm của bạn vào các giá trị nhỏ hơn và sử dụng bộ lọc để có được các entry "
+"mà bạn đang tìm kiếm."
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "Xin hãy lựa chọn cách để phản ứng với phiên này"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr "Lờ đi lỗi này và hiển thị tất cả các entry mà LDAP server trả về "
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
+"Lờ lỗi này đi và hiển thị tất cả các entry mà phù hợp với giới hạn kích cỡ "
+"đã xác định và thay vào đó cho tôi sử dụng các bộ lọc "
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "Đặt"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr "Giao ACL cho entry hiện tại"
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+msgid "New ACL"
+msgstr "ACL mới"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+msgid "ACL type"
+msgstr "Dạng ACL"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+msgid "Select an acl type"
+msgstr "Chọn một dạng acl"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "Áp dụng"
+
+#: ihtml/themes/default/acl.tpl:36
+msgid "Additional filter options"
+msgstr "Các lựa chọn thêm cho bộ lọc"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr "Sử dụng các thành viên từ"
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr "Những thành viên đang có mặt"
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr "Liệt kê các mục tiêu có thể gửi tin nhắn"
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "Các thành viên"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr "Liệt kê người nhận tin"
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+msgid "List of available ACL categories"
+msgstr "Danh sách tất cả các mục ACL hiện có"
+
+#: ihtml/themes/default/acl.tpl:112
+msgid "ACL for this object"
+msgstr "ACL cho đối tượng này"
+
+#: ihtml/themes/default/acl.tpl:118
+msgid "Available roles"
+msgstr "Các vai trò hiện có"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+msgid "Your password has expired. Please choose a new one!"
+msgstr "Mật khẩu của bạn đã hết hạn. Xin hãy chọn một mật khẩu mới!"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+msgid "Old password"
+msgstr "Mật khẩu cũ"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "Mật khẩu mới"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+msgid "Verify password"
+msgstr "Xác minh mật khẩu"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "Thay đổi mật mã "
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+msgid "Click here to change your password"
+msgstr "Kích vào đây để thay đổi mật khẩu của bạn"
+
+#: ihtml/themes/default/logout-close.tpl:5
+msgid "Your GOsa session has been closed!"
+msgstr "Phiên GOsa của bạn vừa bị đóng!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+"Xin hãy đóng cửa sổ trình duyệt này lại và dọn sạch bộ nhớ đệm thẩm định "
+"quyền để tránh việc tự động thẩm định lại quyền bằng trình duyệt của bạn."
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr "Phục hồi chế độ snapshot của đối tượng"
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+"Thủ tục này sẽ phục hồi một snapshot của các đối tượng được chọn. Nó sẽ thay "
+"thế cho đối tượng hiện có sau khi bấm vào nút phục hồi."
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+"Hãy nhớ rằng các entry vào cấu  hình và cơ sở dữ liệu DNS không thể được "
+"phục hồi. Đối với một số đối tượng, thì chỉ cần mở và lưu chúng lại là được "
+"(goFon), nhưng với một số entry thì bạn cần phải tạo lại bằng tay (glpi)."
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+"Đừng quên kiểm tra các tham chiếu với các đối tượng khác, ví dụ như liệu máy "
+"in được chọn có còn tồn tại không?"
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "đối tượng"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+msgid "There is no snapshot available that could be restored"
+msgstr "Không có snapshot hiện có nào có thể được phục hồi"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr "Chọn một snapshot và kích vào hình folder, để phục hồi snapshot"
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+msgid "Creating object snapshots"
+msgstr "Tạo ra snapshot đối tượng"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+"Thủ tục này sẽ tạo ra một snapshot của đối tượng được chọn. Nó sẽ được lưu "
+"trữ trong một nhánh đặc biệt thuộc hệ thống thư mục của bạn và có thể được "
+"phục hồi sau này."
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+"Hãy nhớ rằng các entry vào cơ sở dữ liệu, các cấu hình DNS và các vùng có "
+"thể được tạo ra trong việc mở rộng server sẽ không được lưu lại trong "
+"snapshot."
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+msgid "Timestamp"
+msgstr "Timestamp"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr "Lý do để tạo ra snapshot này"
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "Tiếp tục"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "Lỗi"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "Thông tin"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "Ok"
+
+#: ihtml/themes/default/password.tpl:6
+msgid "Change your password"
+msgstr "Thay đổi mật khẩu của bạn"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Success"
+msgstr "Thành công"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr "Mật khẩu của bạn đã được thay đổi thành công."
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+msgid "Password change"
+msgstr "Thay đổi mật khẩu"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+"Hộp thoại này cung cấp một cách đơn giản để thay đổi mật khẩu của bạn. Hãy "
+"nhập mật khẩu hiện tại và mật khẩu mới vào (hai lần) trong các trường bên "
+"dưới và nhấn vào nút 'Thay đổi'."
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "Mật khẩu hiện tại"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+msgid "New password repeated"
+msgstr "Mật khẩu mới được lặp lại"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+msgid "Password strength"
+msgstr "Ưu điểm của mật khẩu"
+
+#: ihtml/themes/default/password.tpl:101
+msgid "Change"
+msgstr "Thay đổi"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "Phát hiện xung đột khóa"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"Nếu việc phát hiện khóa này sai, một người nào đó chắc hẳn đã đóng trình "
+"duyệt web trong quá trình thao tác hiệu chỉnh. Bạn có thể muốn tiếp quản "
+"việc khóa bằng các nhấn vào nút 'tiếp tục hiệu chỉnh'."
+
+#: ihtml/themes/default/islocked.tpl:16
+#, fuzzy
+msgid "Read only"
+msgstr "Danh sách reload"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "GOsa help viewer"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "Chỉ mục"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "Tìm kiếm"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "Phiên GOsa của bạn đã bị hết hạn!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"Tương tác cuối cùng với giao diện web của GOsa đã diễn ra được một thời gian "
+"trong quá khứ, Vì các lý do an ninh, phiên này vừa bị đóng. Để tiếp tục các "
+"tác vụ của admin, xin hãy đăng ký lại lần nữa."
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "Đăng ký lại"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "Phát hiện xung đột giữa các phiên"
+
+#: ihtml/themes/default/conflict.tpl:6
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"Có lẽ có một chức năng khác nữa trong phiên của bạn đang hoạt động. Việc "
+"chạy nhều cửa sổ cùng lúc về kỹ thuật là không thể và việc này phụ thuộc rất "
+"nhiều vào trình duyệt mà bạn đang dùng.Việc sử dụng các trình duyệt khác "
+"nhau cùng một lúc (ví dụ như IE và Mozilla) là có thể. Nhấn vào nút đăng "
+"xuất để đóng phiên này."
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"Bỏ qua tin nhắn này sẽ thay đổi/hủy dữ liệu mà hiện nay bạn đang hiệu chỉnh, "
+"vì thể xin hãy đóng các cửa sổ lại và đăng nhập lại."
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "Đăng xuất"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr ""
+"Bạn hiện đang hiệu chỉnh một entry vào cơ sở dữ liệu. Bạn có muốn hủy bỏ các "
+"thay đổi?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "Trang chính"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "Trợ giúp"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "Đăng xuất"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "Đăng nhập:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr "Menu chính của GOsa"
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+msgid "Fatal error"
+msgstr "Lỗi nặng"
+
+#: html/password.php:58 html/index.php:144
+#, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "Cấu hình GOsa %s/%s không đọc được. Bãi bỏ."
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+msgid "Configuration error"
+msgstr "Lỗi cấu hình"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr ""
+"Không thể truy cập vào thư mục '%s' được xác định là thư mục soạn thảo!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+msgid "Password method"
+msgstr "Phương pháp lập mật khẩu"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr "Lỗi: Phương pháp mật khẩu không có!"
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr ""
+"Các mật khẩu bạn vừa nhập vào: \"Mật khẩu mới\" và \"Mật khẩu lặp lại\" "
+"không giống nhau."
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "Mật khẩu mới và mật khẩu cũ quá giống nhau."
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "Mật khẩu mới cần được cắt ngắn lại."
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "Đăng nhập"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "Xin hãy kiểm tra kết hợp tên người dùng/mật khẩu."
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "Bạn không được phép thay đổi mật mã của bạn."
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "Bộ thay đổi mật khẩu bên ngoài báo cáo một vấn đề: "
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "Phiên sẽ không được mã hóa."
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "Vào phiên SSL"
+
+#: html/index.php:57
+msgid "Session is not encrypted!"
+msgstr "Phiên không được mã hóa!"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+"Thời gian hạn định của phiên được cấu hình trong file gosa.conf của bạn sẽ "
+"được ghi đè lên bởi các thiết lập php.ini."
+
+#: html/index.php:165
+msgid "Smarty error"
+msgstr "Lỗi Smarty"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr "Có vấn đề với  việc cài đặt chức năng xác định thẩm quyền!"
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+"Không thể tìm thấy một người dùng hợp lệ cho việc cài đặt xác định thẩm "
+"quyền hiện tại!"
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+"Thông tin người dùng không phải là duy nhất trong tất cả các cây LDAP đã "
+"được cấu hình!"
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+msgid "LDAP error"
+msgstr "Lỗi LDAP"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr "Không thể tìm ra thông tin về lược đồ  LDAP đã được cài đặt!"
+
+#: html/index.php:278
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr "Cài đặt LDAP của bạn có chứa các định nghĩa lược đồ cũ:"
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "Xin hãy xác định một tên người dùng hợp lệ!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "Xin hãy xác định mật mã của bạn!"
+
+#: html/index.php:314
+msgid "Authentication error"
+msgstr "Lỗi xác định thẩm quyền"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+"Không thể phục hồi thông tin của người dùng cho việc thẩm  định quyền "
+"htaccess (truy cập ht)!"
+
+#: html/index.php:369
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Tài khoản bị khóa. Xin hãy liên lạc với admin quản trị hệ thống của bạn!"
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Trình duyệt của bạn đã vô hiệu cookies. Xin hãy cho phép cookies vào và tải "
+"lại trang này trước khi đăng nhập!"
+
+#: html/setup.php:66
+msgid "Smarty"
+msgstr "Smarty"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr "Không thể xác định vị trí file '%s'- xin hãy chạy '%s' để sửa lỗi này!"
+
+#: html/main.php:167
+msgid "PHP configuration"
+msgstr "Cấu hình PHP"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr ""
+"LỖI NGHIÊM TRỌNG: Đăng ký toàn cầu đang bật. GOsa sẽ từ chối đăng nhập vào "
+"trừ khi lỗi này được một admin sửa."
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr "Hết dung lượng bộ nhớ!"
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr "Vô hiệu việc kiểm tra ACL của người dùng"
+
+#: html/main.php:339
+msgid "Your password is about to expire, please change your password!"
+msgstr "Mật khẩu của bạn chuẩn bị hết hạn, xin hãy thay đối mật khẩu của bạn!"
+
+#: html/main.php:349
+msgid "Plugin"
+msgstr "Plugin"
+
+#: html/main.php:350
+#, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr ""
+"LỖI NGHIÊM TRỌNG: không thể tìm thấy bất cứ  plugin definition nào cho "
+"plugin '%s'!"
+
+#: html/main.php:364
+#, fuzzy
+msgid "Configuration Error"
+msgstr "Lỗi cấu hình"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "Hỗ trợ trình duyệt"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "Không có file trợ giúp nào được chỉ định cho lớp này"
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "Trước"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "Tiếp theo"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr ""
+"Không thể truy cập Helpdir '%s', không thể đọc được bất cứ file trợ giúp nào."
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "không được cấu hình"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "Lỗi nặng"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+msgid "Permission"
+msgstr "Cho phép"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+msgid "Permission error"
+msgstr "Lỗi về cấp phép"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Bạn không được phép tạo ra snapshot cho %s."
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Bạn không được phép phục hồi một snapshot cho %s."
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr "Không tìm thấy Mô-đun mcrypt. Xin hãy cài đặt php5-mcrypt."
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr "Kết nối socket đến  '%s:%s' thất bại:  '%s'"
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr "Thời hạn cho socket là  %s giây đã đến."
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+"Không thể tìm thấy một phương pháp mật khẩu phù hợp cho hàm băm hiện tại!"
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+"Chức năng Snapshot đã được bật, nhưng biến số được yêu cầu: '%s' vẫn chưa "
+"được thiết lập."
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, fuzzy, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+"Chức năng Snapshot đã được bật, nhưng biến số được yêu cầu: '%s' vẫn chưa "
+"được thiết lập."
+
+#: include/class_acl.inc:27
+msgid "Access control"
+msgstr "Kiểm soát truy cập"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+msgid "Manage access control lists"
+msgstr "Quản lý các danh sách kiểm soát truy cập"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "người dùng"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+msgid "All categories"
+msgstr "Tất cả các mục"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr "Xác lập lại ACLs"
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+msgid "One level"
+msgstr "Một cấp độ"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+msgid "Current object"
+msgstr "Đối tượng hiện tại"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+msgid "Complete subtree"
+msgstr "Hoàn thành cây thư mục con"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr "Hoàn thành cây thư mục con (vĩnh viễn)"
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr "Sử dụng ACL được xác định trong vai trò"
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "Người dùng"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "Các nhóm"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "Lên"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "Xuống"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "Hiệu chỉnh"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "Xóa"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr "Không có thiết lập ACL cho hạng mục này!"
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr "Có chứa ACLs cho các đối tượng: %s "
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+msgid "category ACL"
+msgstr "Hạng mục ACL"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr "Hiệu chỉnh ACL cho '%s' - phạm vi là '%s'"
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr "Tất cả các đối tượng hiện trong  cây thư mục con hiện tại"
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+msgid "Show/hide advanced settings"
+msgstr "Hiển thị/ Ẩn các thiết lập cao cấp "
+
+#: include/class_acl.inc:803
+msgid "Create objects"
+msgstr "Tạo ra đối tượng"
+
+#: include/class_acl.inc:804
+msgid "Move objects"
+msgstr "Dịch chuyển đối tượng"
+
+#: include/class_acl.inc:805
+msgid "Remove objects"
+msgstr "Xóa đối tượng"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "Không thể thiết lập phép cho '%s'"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "đọc"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "viết"
+
+#: include/class_acl.inc:816
+msgid "Complete object"
+msgstr "Hoàn thành đối tượng"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+msgid "Internal error"
+msgstr "Lỗi nội bộ"
+
+#: include/class_acl.inc:960
+#, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "dạng ACL '%s' không được biết đến!"
+
+#: include/class_acl.inc:1005
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entry '%s' không được biết đến!"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, php-format
+msgid "Role: %s"
+msgstr "Vai trò: %s"
+
+#: include/class_acl.inc:1071
+msgid "unknown role"
+msgstr "Vai trò không được biết đến"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Chứa các thiết lập cho các đối tượng: %s"
+
+#: include/class_acl.inc:1096
+msgid "inactive"
+msgstr "không hoạt động"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "Các thành viên nhóm"
+
+#: include/class_acl.inc:1266
+msgid "Access control list"
+msgstr "Danh sách kiểm soát truy cập"
+
+#: include/class_acl.inc:1271
+msgid "ACL roles"
+msgstr "Các vai trò ACL"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr ""
+"Tên người dùng/UID không phải là duy nhất trong cây LDAP. Xin hãy liên Lạc "
+"với Admin của bạn."
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+msgid "Select all"
+msgstr "Chọn tất"
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "Tạo "
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "Đi đến bộ phận gốc"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "Gốc"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "Đi lên một bộ phận"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "Đi đến bộ phận người dùng"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr "Nhà"
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "Danh sách reload"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "Nộp"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "Các thao tác"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+msgid "Copy"
+msgstr "Copy"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+msgid "Cut"
+msgstr "Cut"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "Paste"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "Cắt entry này"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "Copy entry này"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "Phục hồi lại snapshot"
+
+#: include/class_listing.inc:1474
+msgid "Export list"
+msgstr ""
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr "Phục hồi lại snapshot"
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+msgid "Create snapshot"
+msgstr "Tạo ra snapshot"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+msgid "Create a new snapshot from this object"
+msgstr "Tạo ra một snapshot mới từ đối tượng này"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "Hiệu chỉnh entry này"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "Xóa bỏ entry"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Lỗi nghiêm trọng: không có vị trí lớp nào được xác định - xin hãy chạy '%s' "
+"để sửa lỗi này"
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Lỗi nghiêm trọng: không thể tạo ra lớp '%s' - hãy thử chạy '%s' để sửa lỗi "
+"này"
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr ""
+"LỖI NGHIÊM TRỌNG: Lỗi khi đang kết nối với LDAP. Server thông báo '%s'."
+
+#: include/functions.inc:519
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "Tên người dùng/ UID không phải là duy nhất trong cây LDAP!"
+
+#: include/functions.inc:604
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr ""
+"Tên người dùng/UID không phải là duy nhất trong cây LDAP. Xin hãy liên Lạc "
+"với Admin của bạn."
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Lỗi khi đang thêm một khóa vào. Hãy liên lạc với các nhà phát triển!"
+
+#: include/functions.inc:800
+#, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Không thể tạo ra việc khóa thông tin trong cây LDAP.Xin hãy liên lạc với "
+"admin của bạn!"
+
+#: include/functions.inc:800
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP server trả về: %s"
+
+#: include/functions.inc:929
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Tìm thấy nhiều khóa khác nhau để khóa đối tượng. Điều này không nên xảy ra - "
+"hãy dọn sạch các tham chiếu."
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "Đã vượt quá giới hạn kích cỡ của các entry %d!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr ""
+"Thiết lập kích cỡ mới cho %s và cho tôi thấy tin nhắn nếu giới hạn này vẫn "
+"vượt quá tiêu chuẩn"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "Cấu hình"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "chưa hoàn thành"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "Cứ tiếp tục"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "Cứ hiệu chỉnh"
+
+#: include/functions.inc:1646
+#, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "Bạn sẽ hiệu chỉnh entry/các entry %s của LDAP"
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "các entry cho mỗi trang"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "Áp dụng bộ lọc"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "snapshot phát triển GOsa (Rev %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr "File '%s' không thể bị xóa."
+
+#: include/functions.inc:2404 include/functions.inc:2424
+msgid "Cannot write to revision file!"
+msgstr "Không thể viết lên revision file!"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+#, fuzzy
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr "'base_hook' không có. Hãy sử dụng cơ sở mặc định!"
+
+#: include/functions.inc:2676
+msgid "LDAP warning"
+msgstr "Cảnh báo LDAP"
+
+#: include/functions.inc:2676
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr ""
+"Không thể dùng thông tin lược đồ từ server. Không thể kiểm tra giản đồ!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr "Đã từng lưu trữ thông tin cụ thể về tài khoản."
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+"Đã từng khóa các entry hiện đang được hiệu chỉnh nhằm tránh các thay đổi "
+"khác nhau tại cùng một thời điểm."
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr "Lớp đối tượng '%s' được yêu cầu mất tích!"
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr "Lớp đối tượng lựa chọn '%s' mất tích!"
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr "Phiên bản không phù hợp với lớp đối tượng '%s' được yêu cầu (!=%s)!"
+
+#: include/functions.inc:2765
+#, php-format
+msgid "Class(es) available"
+msgstr "Đã có lớp"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+"Bạn vừa bật lựa chọn rfc2307bis lên trên bước ' cài đặt ldap', nhưng cấu "
+"hình giản đồ của bạn không hỗ trợ lựa chọn này."
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+"Để có thể sử dụng được nhóm conform rfc2307bis, objectClass "
+"'posixGroup' (nhóm posix) phải được hỗ trợ     "
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+"Lược đồ của bạn được cấu hình để hỗ trợ nhóm rfc2307bis, nhưng bạn đã vừa "
+"tắt chức năng này đi trong bước 'cài đặt ldap'."
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr "ObjectClass (Lớp đối tượng) 'posixGroup' phải CÓ CẤU TRÚC"
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "Tiếng Đức"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "Tiếng Pháp"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "Tiếng Ý"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "Tiếng Tây Ban Nha"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "Tiếng Anh"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "Tiếng Hà Lan"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "Tiếng Phần Lan"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "Tiếng Trung Quốc"
+
+#: include/functions.inc:2826
+msgid "Vietnamese"
+msgstr "Tiếng Việt"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "Tiếng Nga"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr ""
+"Lệnh '%s', được xác định là POSTMODIFY (thay đổi sau) cho chế độ plugin '%s' "
+"hình như không tồn tại."
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr "Không thể sinh ra hàm băm samba!"
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr "Không thể phân phối một ID miễn phí!"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "Không thể tạo ra folder '%s'!"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+#, fuzzy
+msgid "no ID available!"
+msgstr "Không có mẫu nào!"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+msgid "Cannot allocate a free ID!"
+msgstr "Không thể phân phối một ID miễn phí!"
+
+#: include/class_tabs.inc:57
+#, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr ""
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "Qúa trình xóa đã bị hủy bỏ bởi plugin '%s': %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "Các tham chiếu"
+
+#: include/class_SnapShotDialog.inc:82
+#, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "Bạn chuẩn bị xóa chế độ snapshot '%s'."
+
+#: include/class_SnapShotDialog.inc:137
+msgid "Remove snapshot"
+msgstr "Xóa snapshot"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s (Năm-tháng-ngày)"
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "Mô tả"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "Máy nhắn tin"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+msgid "You are currently editing mutliple entries."
+msgstr "Bạn hiện đang hiệu chỉnh rất nhiều entry."
+
+#: include/class_multi_plug.inc:391
+msgid "Password reset"
+msgstr "Xác lập lại mật khẩu"
+
+#: include/class_multi_plug.inc:391
+msgid "The user password was resetted, please set a new password value!"
+msgstr ""
+"Mật khẩu người dùng đã được xác lập lại, hãy thiết lập một giá trị mật khẩu "
+"mới!"
+
+#: include/class_certificate.inc:73
+msgid "Certificate is empty!"
+msgstr "Giấy chứng nhận trống!"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr "Không thể tải giấy chứng nhận - chỉ có PEM/DER là được hỗ trợ!"
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr ""
+"Không thể triết xuất thông tin cho những giấy chứng nhận không phải là PEM!"
+
+#: include/class_certificate.inc:219
+msgid "No valid certificate loaded!"
+msgstr "Không tải được giấy chứng nhận có hiệu lực nào!"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr "Tạo ra trang này khiến cho bộ dịch PHP sinh ra một số lỗi!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr "Gửi báo cáo lỗi cho nhóm phát triển GOsa"
+
+#: include/php_setup.inc:105
+msgid "Send bugreport"
+msgstr "Gửi thông báo lỗi"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "Thông tin Toggle"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "Lỗi PHP"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "lớp"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "chức năng"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "tĩnh"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "phương pháp"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "Dò theo"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "File"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "Dòng"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "Loại"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "Tranh luận"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+msgid "Search in subtrees"
+msgstr "Tìm kiếm tại các cây con"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+"Đối tượng đã bị thay đổi từ khi được mở trong GOsa. Nếu bạn lưu entry này "
+"lại, khi các đối tượng khác lạc hướng có thể gây ra thêm tất cả các thay đổi!"
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr "Thay đổi ACL dn"
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "Từ"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "to"
+msgstr "đến"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+msgid "Restore"
+msgstr "Phục hồi"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "cắt"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "Copy"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "Lỗi XML trong thư mục guide.xml : %s ở dòng %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "Không có sự trợ giúp nào cho plugin này."
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s kết quả cho việc tìm kiếm của bạn với từ khóa %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% tỷ lệ hit trong file %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+"Múi giờ thiết lập '%s' trong gosa.config không hợp lệ. Không thể tính toán "
+"chính xác thời gian bù thêm vào múi giờ."
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "Trang chính"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "Tiếp tục"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "Lỗi MySQL"
+
+#: include/utils/class_msgPool.inc:16
+#, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "Chọn để liệt kê các đối tượng loại '%s'."
+
+#: include/utils/class_msgPool.inc:18
+#, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "Chọn để liệt kê đối tượng chứa '%s'."
+
+#: include/utils/class_msgPool.inc:20
+#, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "Chọn để liệt kê đối tượng mà cho phép '%s'"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "Chọn để tìm kiếm trong các cây con"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr "Đối tượng này sẽ bị xóa!"
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr "Đối tượng '%s' này sẽ bị xóa!"
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr "Đối tượng này sẽ bị xóa: %s"
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr "Đối tượng '%s' này sẽ bị xóa: '%s'"
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr "Đối tượng này sẽ bị xóa:"
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr "Đối tượng '%s' này sẽ bị xóa:"
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr "Đối tượng này sẽ bị xóa: %s"
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr "Đối tượng '%s' này sẽ bị xóa; %s"
+
+#: include/utils/class_msgPool.inc:64
+msgid "You have no permission to delete this object!"
+msgstr "Bạn không có quyền xóa đối tượng này!"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+msgid "You have no permission to delete the object:"
+msgstr "Bạn không có quyền xóa đối tượng này:"
+
+#: include/utils/class_msgPool.inc:75
+msgid "You have no permission to delete these objects:"
+msgstr "Bạn không có quyền xóa những đối tượng này:"
+
+#: include/utils/class_msgPool.inc:82
+msgid "You have no permission to create this object!"
+msgstr "Bạn không có quyền tạo ra đối tượng này!"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+msgid "You have no permission to create the object:"
+msgstr "Bạn không có quyền tạo ra đối tượng này:"
+
+#: include/utils/class_msgPool.inc:93
+msgid "You have no permission to create these objects:"
+msgstr "Bạn không có quyền tạo ra những đối tượng này:"
+
+#: include/utils/class_msgPool.inc:100
+msgid "You have no permission to modify this object!"
+msgstr "Bạn không có quyền thay đổi đối tượng này!"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+msgid "You have no permission to modify the object:"
+msgstr "Bạn không có quyền thay đổi đối tượng này:"
+
+#: include/utils/class_msgPool.inc:111
+msgid "You have no permission to modify these objects:"
+msgstr "Bạn không có quyền thay đổi những đối tượng này:"
+
+#: include/utils/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
+msgstr "Bạn không có quyền xem đối tượng này!"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
+msgstr "Bạn không có quyền xem đối tượng này:"
+
+#: include/utils/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
+msgstr "Bạn không có quyền xem những đối tượng này:"
+
+#: include/utils/class_msgPool.inc:136
+msgid "You have no permission to move this object!"
+msgstr "Bạn không có quyền di chuyển đối tượng này!"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+msgid "You have no permission to move the object:"
+msgstr "Bạn không có quyền di chuyển đối tượng này:"
+
+#: include/utils/class_msgPool.inc:147
+msgid "You have no permission to move these objects:"
+msgstr "Bạn không có quyền di chuyển những đối tượng này:"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+msgid "Connection information"
+msgstr "Thông tin kết nối"
+
+#: include/utils/class_msgPool.inc:159
+#, php-format
+msgid "Cannot connect to %s database!"
+msgstr "Không thể kết nối đến cơ sở dữ liệu %s!"
+
+#: include/utils/class_msgPool.inc:171
+#, php-format
+msgid "Cannot select %s database!"
+msgstr "Không thể lựa chọn cơ sở dữ liệu %s!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr "Không xác định được  Server '%s'!"
+
+#: include/utils/class_msgPool.inc:189
+#, php-format
+msgid "Cannot query %s database!"
+msgstr "Không truy vấn được cơ sở dữ liệu %s!"
+
+#: include/utils/class_msgPool.inc:195
+#, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "Trường '%s' có chứa một từ khóa dự trữ!"
+
+#: include/utils/class_msgPool.inc:201
+#, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr "Lệnh được cụ thể hóa là %s móc nối với plugin '%s' không tồn tại!"
+
+#: include/utils/class_msgPool.inc:208
+#, php-format
+msgid "'%s' command is invalid!"
+msgstr "Lệnh '%s' không hợp lệ!"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr "Lệnh '%s' (%s) cho plugin %s không hợp lệ!"
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr "Lệnh '%s' cho plugin '%s' không hợp lệ!"
+
+#: include/utils/class_msgPool.inc:214
+#, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "Lệnh '%s' (%s) không hợp lệ!"
+
+#: include/utils/class_msgPool.inc:222
+#, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "Không thể chạy lệnh '%s'!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr "Không thể chạy lệnh '%s' ('%s) cho plugin %s!"
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr "Không thể chạy lệnh '%s' cho plugin %s!"
+
+#: include/utils/class_msgPool.inc:228
+#, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "Không thể chạy lệnh '%s' ('%s)!"
+
+#: include/utils/class_msgPool.inc:236
+#, php-format
+msgid "Value for '%s' is too large!"
+msgstr "Gía trị '%s' quá lớn!"
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "'%s' phải thấp hơn %d!"
+
+#: include/utils/class_msgPool.inc:246
+#, php-format
+msgid "Value for '%s' is too small!"
+msgstr "Gía trị '%s' quá nhỏ!"
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr "'%s' phải lớn hơn %d hoặc trên nữa!"
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr "'%s' phụ thuộc vào '%s'- xin hãy cung cấp cả hai giá trị!"
+
+#: include/utils/class_msgPool.inc:261
+#, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "Đã có sẵn một entry với thuộc tính '%s' trong hệ thống này!"
+
+#: include/utils/class_msgPool.inc:267
+#, php-format
+msgid "The required field '%s' is empty!"
+msgstr "Trường được yêu cầu '%s' bị rỗng!"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr "Ví dụ"
+
+#: include/utils/class_msgPool.inc:292
+#, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "Trường '%s' chứa các ký tự không hợp lệ"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr "'%s' không được phép:"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' are not allowed!"
+msgstr "'%s' không được cho phép!"
+
+#: include/utils/class_msgPool.inc:296
+#, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "Trường '%s' chứa các ký tự không hợp lệ!"
+
+#: include/utils/class_msgPool.inc:303
+#, php-format
+msgid "Missing %s PHP extension!"
+msgstr "PHP mở rộng %s mất tích!"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "Thêm vào"
+
+#: include/utils/class_msgPool.inc:333
+#, php-format
+msgid "Add %s"
+msgstr "Thêm %s"
+
+#: include/utils/class_msgPool.inc:339
+#, php-format
+msgid "Delete %s"
+msgstr "Xóa %s"
+
+#: include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set %s"
+msgstr "Thiết lập %s"
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit..."
+msgstr "Hiệu chỉnh..."
+
+#: include/utils/class_msgPool.inc:351
+#, php-format
+msgid "Edit %s..."
+msgstr "Hiệu chỉnh %s..."
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "Quay lại"
+
+#: include/utils/class_msgPool.inc:377
+#, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "Tài khoản này không có chức năng mở rộng %s hợp lệ!"
+
+#: include/utils/class_msgPool.inc:383
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr ""
+"Tài khoản này đã bật các thiết lập %s lên. Bạn có thể tắt chúng đi bằng việc "
+"kích vào bên dưới."
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"Tài khoản này đã bật các thiết lập %s lên. Để tắt chúng đi, bạn cần phải xóa "
+"thiết lập %s trước!"
+
+#: include/utils/class_msgPool.inc:402
+#, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr ""
+"Tài khoản này đã tắt các thiết lập %s đi. Bạn có thể bật chúng lên bằng việc "
+"kích vào bên dưới."
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"Tài khoản này đã tắt các thiết lập %s đi. Để bật chúng lên, bạn cần phải "
+"thêm thiết lập %s trước!"
+
+#: include/utils/class_msgPool.inc:420
+#, php-format
+msgid "Add %s settings"
+msgstr "Thêm thiết lập %s "
+
+#: include/utils/class_msgPool.inc:426
+#, php-format
+msgid "Remove %s settings"
+msgstr "Xóa thiết lập %s"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr ""
+"Kích phím 'Hiệu chỉnh' bên dưới để thay đổi thông tin trong hộp thoại này "
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "Tháng Một"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "Tháng Hai"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "Tháng Ba"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "Tháng Tư"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "Tháng Năm"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "Tháng Sáu"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "Tháng Bảy"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "Tháng Tám"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "Tháng Chín"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "Tháng Mười"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "Tháng Mười Một"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "Tháng Mười Hai"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Sunday"
+msgstr "Chủ nhật"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Monday"
+msgstr "Thứ Hai"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr "Thứ Ba"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Wednesday"
+msgstr "Thứ Tư"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr "Thứ Năm"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr "Thứ Sáu"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr "Thứ Bảy"
+
+#: include/utils/class_msgPool.inc:453
+#, fuzzy
+msgid "MySQL operation failed!"
+msgstr "Hoạt động LDAP thất bại!"
+
+#: include/utils/class_msgPool.inc:461
+msgid "read operation"
+msgstr "Đọc thao tác"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr "thêm tao tác"
+
+#: include/utils/class_msgPool.inc:461
+msgid "modify operation"
+msgstr "thay đối thao tác"
+
+#: include/utils/class_msgPool.inc:462
+msgid "delete operation"
+msgstr "xóa thao tác"
+
+#: include/utils/class_msgPool.inc:462
+msgid "search operation"
+msgstr "tìm kiếm thao tác"
+
+#: include/utils/class_msgPool.inc:462
+msgid "authentication"
+msgstr "Xác định thẩm quyền"
+
+#: include/utils/class_msgPool.inc:465
+#, php-format
+msgid "LDAP %s failed!"
+msgstr "LDAP %s thất bại!"
+
+#: include/utils/class_msgPool.inc:467
+msgid "LDAP operation failed!"
+msgstr "Hoạt động LDAP thất bại!"
+
+#: include/utils/class_msgPool.inc:482
+msgid "Upload failed!"
+msgstr "Tải lên thất bại!"
+
+#: include/utils/class_msgPool.inc:485
+#, php-format
+msgid "Upload failed: %s"
+msgstr "Tải lên thất bại: %s"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr "Giao tiếp với dịch vụ cơ sở hạ tầng bị thất bại!"
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr "Giao tiếp với dịch vụ cơ sở hạ tầng bị thất bại: %s"
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr "'%s' này vẫn còn được sử dụng bởi đối tượng: %s "
+
+#: include/utils/class_msgPool.inc:507
+#, php-format
+msgid "This '%s' is still in use."
+msgstr "'%s' này vẫn còn được sử dụng."
+
+#: include/utils/class_msgPool.inc:509
+#, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "'%s' vẫn còn được sử dụng bởi các đối tượng này: %s"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr "File '%s' không tồn tại!"
+
+#: include/utils/class_msgPool.inc:521
+#, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "Không thể mở file '%s' để đọc!"
+
+#: include/utils/class_msgPool.inc:527
+#, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "Không thể mở file '%s' để viết!"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "Không thế xóa file '%s'!"
+
+#: include/utils/class_msgPool.inc:545
+#, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "Không thể tạo ra folder '%s'!"
+
+#: include/utils/class_msgPool.inc:551
+#, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "Không thể xóa folder '%s'!"
+
+#: include/utils/class_msgPool.inc:557
+#, php-format
+msgid "Checking for %s support"
+msgstr "Kiểm tra hỗ trợ %s"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr "Cài đặt và kích hoạt mô-đun PHP %s."
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr "Cảnh báo khả năng hoạt động"
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+"Khả năng hoạt động của LDAP rất thấp: truy vấn lần cuối mất khoảng %.2fs!"
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+"Không thể tự động tạo ra cây con với RDN '%s': không có lớp đối tượng nào "
+"được tìm thấy!"
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr "Không thể tự động tạo ra cây con với RDN '%s': không được hỗ trợ "
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "Trong khi chạy trên '%s' sử dụng LDAP server '%s'"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "Trong khi chạy trên LDAP server %s"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr ""
+"Đây không phải là một DN hợp lệ: '%s'. Khóa để chặn việc nạp thêm phải được "
+"bắt đầu với 'dn:...' trong dòng %s "
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr ""
+"Lỗi trong khi đang nạp thêm dn:'%s', xin hãy kiểm tra lại LDIF của bạn từ "
+"dòng %s trở đi!"
+
+#: include/class_log.inc:87
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Đăng nhập thất bại: %s"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr "Lựa chọn '%s' không hợp lệ đã được chỉ định!"
+
+#: include/class_log.inc:106
+msgid "Specified objectType is empty or invalid!"
+msgstr "ObjecType được chỉ định đang rỗng hặc không hợp lệ!"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr "GOsa hỗ trợ chương trình daemon"
+
+#: include/class_gosaSupportDaemon.inc:787
+msgid "Cannot not parse XML!"
+msgstr "Không thể phân tách XML!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "Không thể  gửi thông báo trì hoãn đến entry %s!"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, php-format
+msgid "Cannot remove entry %s!"
+msgstr "Không thể xóa entry %s!"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "Lỗi XML trong gosa.conf: %s tại dòng %d"
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr "Không thể nối kết với LDAP. Xin hãy liên lạc với với admin hệ thống."
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "SID và/hoặc RIDBASE đang bị mất trong cấu hình này!"
+
+#: include/class_config.inc:1105
+msgid "Configuration"
+msgstr "Cấu hình"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+"File cấu hình bạn đang sử dụng hình như đã lỗi thời. Hãy chuyển file cấu "
+"hình của GOsa ra chỗ khác để chạy việc cài đặt GOsa lần nữa."
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr "Tất cả các đối tượng trong hạng mục này"
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr "Định dạng cấu hình đã thay đổi. Xin hãy chạy lại cài đặt!"
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, php-format
+msgid "Copy and paste failed!"
+msgstr "Copy và Paste bị thất bại!"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "Không thể thiết lập phép cho '%s'"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr "'%s' không phải là một đối tượng LDAP hợp lệ"
+
+#: include/class_CopyPasteHandler.inc:176
+#, php-format
+msgid "No write permission in '%s'"
+msgstr "Không có phép viết cho '%s'"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr "Các đối tượng này sẽ được paste: %s"
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr "Đối tượng này sẽ được paste: %s"
+
+#: include/class_CopyPasteHandler.inc:516
+msgid "Cannot paste"
+msgstr "Không thể paste"
+
+#: include/class_msg_dialog.inc:124
+msgid "Please fix the above error and reload the page."
+msgstr "Xin hãy sửa lỗi trên và reload trang trên."
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "Thông tin chung"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "Thư"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "Fax"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "Proxy"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP "
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "Nhóm "
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "Bộ phận"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "Số điện thoại"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "Ứng dụng"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "Máy chủ (server)"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "Máy khách yếu"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "Máy trạm"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "Nhóm đối tượng"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "Máy in"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "Tên đối tượng"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "Nội dung"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "Đối tượng này không có mối quan hệ nào với các đối tượng khác."
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "Chào mừng %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"Đây là danh mục chính của Gosa. Bạn có thể lựa chọn tác vụ của bạn từ danh "
+"mục ở bên trái hoặc bằng cách chọn một trong những biểu tượng dưới đây. Tất "
+"cả những thay đổi này được áp dụng trực tiếp cho Máy chủ LDAP trong công ty "
+"bạn."
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr ""
+"Sử dụng \"Đăng xuất\" ở phía trên bên trái để đóng kết nối và \"Trang chính"
+"\" để quay lại xem biểu tượng."
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "Nhóm phát triển Gosa"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "Xin hãy lựa chọn ngôn ngữ ưu thích"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "Thiết bị cuối "
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "Người dùng"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "Tên"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "Cơ sở"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "Các bộ lọc"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "Bộ phận"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "các server"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "các nhóm mail"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "các server"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "máy trạm"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "các thiết bị cuối"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "máy in"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "Hiển thị các thay đổi"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr ""
+"Xin hãy kiểm tra hai lần nếu bạn thực sự muốn làm việc này bởi sẽ không có "
+"cách nào để GOsa lấy lại dữ liệu cho bạn."
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "Tất cả các nhóm đối tượng"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+msgid "Manage object groups"
+msgstr "Quản lý các nhóm đối tượng "
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+msgid "Infrastructure error"
+msgstr "Lỗi cơ sở hạ tầng"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+#, fuzzy
+msgid "Templates"
+msgstr "Mẫu"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+msgid "Windows Install"
+msgstr "Cài đặt window"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+"Bạn không thể kết hợp các thiết bị cuối và máy trạm vào trong một nhóm đối "
+"tượng!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "không có"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "có quá nhiều các đối tượng khác nhau!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "người dùng"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "các nhóm"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "các ứng dụng"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "các bộ phận"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "các server"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "máy trạm"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+msgid "winstations"
+msgstr "máy trạm dùng win "
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "các thiết bị cuối"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "điện thoại"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "các máy in"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "Đã vô hiệu"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "Truy cập hoàn toàn"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "Cho phép truy cập đến các máy chủ này"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "dn không tồn tại:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+msgid "You can combine two different object types at maximum, only!"
+msgstr "Bạn chỉ có thể kết hợp hai đối tượng khác nhau tại mức cực đại!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+msgid "Object group generic"
+msgstr "Nhóm đối tượng chung"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "Ủy thác hệ thống"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+msgid "Member"
+msgstr "Thành viên"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "Tên nhóm"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "Tên của nhóm"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "Văn bản mô tả cho nhóm này"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "Ủy thác hệ thống"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "Chế độ ủy thác"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "Các đối tượng thành viên"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "Các hàng phone"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+msgid "Systems"
+msgstr "Các hệ thống"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "Khởi động"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "Các thiết bị"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "Tóm tắt FAI"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "Môi trường"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "Các ứng dụng"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr "Xin mời nhập tên nhóm đối tượng mới vào"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+msgid "user groups"
+msgstr "các nhóm người dùng"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+msgid "nested groups"
+msgstr "các nhóm làm tổ"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+msgid "application groups"
+msgstr "các nhóm ứng dụng"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+msgid "department groups"
+msgstr "các nhóm bộ phận"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+msgid "server groups"
+msgstr "các nhóm server"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+msgid "workstation groups"
+msgstr "các nhóm máy trạm"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+msgid "windows workstation groups"
+msgstr "các nhóm máy trạm windows"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+msgid "terminal groups"
+msgstr "các nhóm thiết bị cuối"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+msgid "printer groups"
+msgstr "các nhóm máy in"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+msgid "phone groups"
+msgstr "các nhóm điện thoại"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "Danh sách các nhóm đối tượng"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "Properties"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "Tạo "
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "Xóa bỏ"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+msgid "Send message"
+msgstr ""
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "Nhóm đối tượng"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "các nhóm server"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "Chọn nhóm đối tượng để thêm vào"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "Các bộ lọc"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "Hiển thị nhóm đối tượng của các bộ phận"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "Chọn bộ phận mà việc tìm kiếm sẽ tiến hành trên đó "
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "Hiển thị việc khớp các đối tượng"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "Hiển thị thông thường cho việc khớp tên các đối tượng"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "Chọn hệ thống để thêm vào"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "Hiển thị các hệ thống của bộ phận"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "Hiển thị việc khớp các hệ thống"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "Biểu thức thông thường cho việc khớp các địa chỉ"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"Đây có thể là một nhóm người dùng sơ cấp. Xin hãy kiểm tra lại hai lần nếu "
+"bạn thực sự muốn làm việc này bởi sẽ không có cách nào để GOsa lấy lại dữ "
+"liệu cho bạn."
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "Tên thật"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+#, fuzzy
+msgid "Surname"
+msgstr "Họ "
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr "Hiệu chỉnh đa dạng"
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "Tên Posix của nhóm"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr ""
+"Thường thì các ID sẽ được tự động sinh ra, hãy lựa chọn để xác định thủ "
+"công  "
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "Áp dụng GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "Số ID được áp dụng"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "Chọn để tạo ra một nhóm thích hợp với samba"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "trong miền"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "Các thành viên trong một nhóm nhấc điện thoại"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "Các thành viên trong một nhóm Nargios"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "Các thành viên nhóm"
+
+#: plugins/admin/groups/generic.tpl:243
+msgid "In all groups"
+msgstr "Trong tất cả các nhóm"
+
+#: plugins/admin/groups/generic.tpl:246
+msgid "Not in all groups"
+msgstr "Không ở trong tất cả các nhóm"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+#, fuzzy
+msgid "Show primary groups"
+msgstr "các nhóm sơ cấp"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+#, fuzzy
+msgid "Show samba groups"
+msgstr "các nhóm samba"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "các nhóm mail"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "Thiết lập nhóm"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "Danh sách các nhóm"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "các nhóm máy in"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "các nhóm server"
+
+#: plugins/admin/groups/class_group.inc:162
+msgid "Cannot find group SID in your configuration!"
+msgstr "Không thể tìm được nhóm SID trong cấu hình của bạn!"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Nhóm Samba"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "Admin miền"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "Người dùng miền"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "Khách miền"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "Nhóm đặc biệt (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "! không nhận ra id này"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+"Việc tìm kiếm có quá nhiều kết quả. Không hiển thị nhiều hơn %s mục vào!"
+
+#: plugins/admin/groups/class_group.inc:894
+#, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "Không thể tìm thấy một SID nào cho '%s'!"
+
+#: plugins/admin/groups/class_group.inc:899
+#, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "Không thể tìm thấy một RIDBASE nào cho '%s'!"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "Số ID của nhóm"
+
+#: plugins/admin/groups/class_group.inc:1184
+msgid "Generic group settings"
+msgstr "Thiết lập nhóm chung"
+
+#: plugins/admin/groups/class_group.inc:1198
+msgid "Samba group type"
+msgstr "Loại nhóm Samba"
+
+#: plugins/admin/groups/class_group.inc:1199
+msgid "Samba domain name"
+msgstr "Tên miền Samba"
+
+#: plugins/admin/groups/class_group.inc:1201
+msgid "Phone pickup group"
+msgstr "Nhóm nhấc điện thoại"
+
+#: plugins/admin/groups/class_group.inc:1202
+msgid "Nagios group"
+msgstr "Nhóm phần mềm Nagios"
+
+#: plugins/admin/groups/class_group.inc:1204
+msgid "Group member"
+msgstr "Thành viên nhóm"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "Quản trị nhóm"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "Hiệu chỉnh các tính năng điện thoại"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "Hiệu chỉnh các tính năng mail"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "Hiệu chỉnh các tính năng samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "Hiệu chỉnh các tính năng điện thoại"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+msgid "Menu"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "Hiệu chỉnh các tính năng samba"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "Hiệu chỉnh các tính năng môi trường"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"Ở đây bao gồm tất cả các dữ liệu tài khoản, quy định về truy cập hệ thống, "
+"cài đặt imap, vân vân cho người dùng này. Xin hãy kiểm tra hai lần nếu bạn "
+"thực sự muốn làm điều này bởi sẽ không có cách nào để GOsa phục hồi dữ liệu "
+"cho bạn."
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr ""
+"Để thay đổi mật khẩu người dùng sử dụng các trường dưới đây. Việc thay đổi "
+"sẽ có hiệu lực ngay lập tức. Hãy nhớ mật mã mới bởi người dùng sẽ không thể "
+"đăng nhập nếu thiếu nó."
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr ""
+"Thay đổi mật khẩu có thể ảnh hưởng đến sự xác nhận của bạn lên các dịch vụ "
+"mail, ủy quyền (proxy), samba và unix."
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "Lặp lại mật khẩu mới"
+
+#: plugins/admin/users/password.tpl:21
+msgid "Strength"
+msgstr "Cường độ"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "Đặt mật khẩu"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "Tạo ra một người sử dụng mới sử dụng các mấu"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"Dùng các mẫu có thể hỗ trợ việc tạo ra một người sử dụng mới. Nhiều ghi chép "
+"cơ sở dữ liệu có thể tự động tiến hành. Chọn 'none' để bỏ qua việc sử dụng "
+"các mẫu."
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "Mẫu"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "Họ"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "Tên"
+
+#: plugins/admin/users/class_userManagement.inc:26
+msgid "Manage users"
+msgstr "Quản lý người dùng"
+
+#: plugins/admin/users/class_userManagement.inc:278
+msgid "You have no permission to change this users password!"
+msgstr "Bạn không được phép thay đổi mật mã người dùng này!"
+
+#: plugins/admin/users/class_userManagement.inc:656
+#, fuzzy
+msgid "Account locking"
+msgstr "Tài khoản"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "Tài khoản của tôi"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "Tài khoản của tôi"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "Hiệu chỉnh các tính năng chung"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr "POSIX (giao diện hệ điều hành lưu động)"
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "Hiệu chỉnh các tính năng UNIX"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "Hiệu chỉnh các đặc tính của netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "Hiệu chỉnh các tính năng UNIX"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "Danh sách người dùng"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "Danh sách người dùng"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "Người dùng mail"
+
+#: plugins/admin/users/user-list.xml:167
+msgid "Apply template"
+msgstr "Áp dụng mẫu"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "Tạo ra người dùng từ một mẫu"
+
+#: plugins/admin/users/user-list.xml:213
+#, fuzzy
+msgid "Edit user"
+msgstr "Hiệu chỉnh entry này"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "Xóa ảnh "
+
+#: plugins/admin/users/user-filter.tpl:11
+#, fuzzy
+msgid "Show templates"
+msgstr "các mẫu"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "Người dùng chức năng"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Người sử dụng POSIX"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "Người dùng mail"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "Người dùng samba"
+
+#: plugins/admin/users/templatize.tpl:2
+msgid "Applying a template"
+msgstr "Áp dụng một mẫu"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+"Việc áp dụng một mẫu cho vài người dùng sẽ thay thế tất cả các thuộc tính "
+"của người dùng được xác định trên mẫu."
+
+#: plugins/admin/users/templatize.tpl:33
+msgid "No templates available!"
+msgstr "Không có mẫu nào!"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"Trong cây con này có 'tất cả' các tài khoản, hệ thống, vân vân. Xin hãy kiểm "
+"tra lại hai lần nếu bạn thực sự muốn thực hiện điều này tuy nhiên sẽ không "
+"có cách nào để Gosa phục hồi lại dữ liệu cho bạn."
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"Tốt nhất là trước khi thực hiện thao tác này bạn nên  lưu lại nội dung hiện "
+"tại của cây thư mục LDAP trong một file. Nếu bạn đã làm thế, hãy kích "
+"'Delete' để tiếp tục hoặc kích 'Cancel' để hủy bỏ."
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "Danh sách các bộ phận"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "trong miền"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "Admin miền"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "Quốc Gia"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "Vị trí"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "Tổ chức"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "Tên vị trí"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+#, fuzzy
+msgid "Name of locality to create"
+msgstr "Tên của cây con được tạo"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "Văn bản mô tả cho bộ phận"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "Thiết lập quản trị"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "Đặt bộ phận như một đơn vị quản trị độc lập"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "Tên bộ phận"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "Tên của cây con được tạo"
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "Văn bản mô tả cho bộ phận"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "Các danh mục"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "Các danh mục cho cây con"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "Vị trí"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "Bang"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "Xác định xem tập cây con này ở đâu"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "Vị trí của cây con"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "Địa chỉ"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "Địa chỉ bưu điện của cây con này"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "Đặt số điện thoại của cây con này"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "Số fax"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "Đặt số fax của cây con này"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "Admin miền"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "Các bộ phận"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+msgid "Manage Departments"
+msgstr "Quản lý  các bộ phận"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+#, fuzzy
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+"Ngay sau khi thao tác tag kết thúc, bạn có thể kéo xuống cuối trang và kích "
+"vào phím \"Tiếp tục\" để tiếp tục với hộp thoại quản lý bộ phận."
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+#, fuzzy
+msgid "Organization name"
+msgstr "Tổ chức"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "Địa chỉ theo bưu điện"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+#, fuzzy
+msgid "Phone number"
+msgstr "Số điện thoại nhà"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+#, fuzzy
+msgid "Country name"
+msgstr "Quốc Gia"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "Admin miền"
+
+#: plugins/admin/departments/domain.tpl:14
+#, fuzzy
+msgid "Name of domain to create"
+msgstr "Tên của cây con được tạo"
+
+#: plugins/admin/departments/country.tpl:14
+#, fuzzy
+msgid "Name of country to create"
+msgstr "Tên của cây con được tạo"
+
+#: plugins/admin/departments/class_department.inc:372
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr "Không thể tìm được một tag chưa được dùng cho đơn vị quản trị này!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "Tagging '%s'."
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "Chuyển từ '%s' đến '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "Thất bại trong việc copy %s, bãi bỏ thao tác"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "Tên bộ phận"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "Số điện thoại"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "Đối tượng '%s' đã bị tag"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "Thêm tag (%s) vào đối tượng '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "Bỏ tag từ đối tượng '%s'"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "Xử lý thao tác được yêu cầu"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr ""
+"Trình duyệt của bạn không hỗ trợ iframe, xin hãy sử dụng đường link này để "
+"thực hiện những thao tác được yêu cầu."
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "Tổ chức"
+
+#: plugins/admin/departments/organization.tpl:14
+#, fuzzy
+msgid "Name of organization to create"
+msgstr "Tên của cây con được tạo"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+msgid "You are currently moving/renaming this department."
+msgstr "Bạn hiện đang bỏ/đổi tên bộ phận này."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+"Thay đổi thuộc tính đặt tên 'ou' của các bộ phận hoặc cơ sở có thể ảnh hưởng "
+"đển các file acl và các entry snapshot cho toàn bộ các đối tượng."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr "Gosa chưa thể sửa được lỗi này cho bạn."
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+"Trước khi bạn xác nhận hành động này, hãy đảm bảo rằng mọi thứ sẽ như mong "
+"đợi, có lẽ cách giải quyết tốt nhất là có một bản backup."
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+msgid "Acl"
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "Quản lý ACL"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+msgid "ACL Templates"
+msgstr "Các mẫu ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+msgid "Access control roles"
+msgstr "Các vai trò kiểm soát truy cập"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+msgid "Edit AC roles"
+msgstr "Hiệu chỉnh các vai trò ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+msgid "Reset ACL"
+msgstr "Xác lập lại ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr "Không có cài đặt ACL cho mục này"
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "ACL cho các đối tượng sau: %s"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+msgid "Edit category ACL"
+msgstr "Hiệu chính mục ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+msgid "Reset category ACL"
+msgstr "Xác lập mục ACL"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr "Hiệu chỉnh ACL cho'%s', vùng là '%s'"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+msgid "Object in use"
+msgstr "Đối tượng đang được sử dụng"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr ""
+"Vai trò này không thể bị xóa bỏ trong khi nó vẫn đang được sử dụng bởi các "
+"đối tượng:"
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "Vai trò"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+#, fuzzy
+msgid "Permissions"
+msgstr "Cho phép"
+
+#: plugins/admin/acl/acl-list.xml:11
+msgid "List of acls"
+msgstr "Danh sách các ads"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "Danh sách kiểm soát truy cập"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "Hiển thị %s"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr "Bộ nộp lỗi"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+
+#: plugins/personal/generic/class_user.inc:38
+msgid "Edit organizational user settings"
+msgstr "Hiệu chỉnh thiết lập tổ chức của người sử dụng "
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "Nữ"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "Nam"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr "Không thể tải file lên!"
+
+#: plugins/personal/generic/class_user.inc:477
+msgid "Serial number"
+msgstr "Số seri"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr ""
+"(Một số loại chứng nhận hiện không được hỗ trợ và có thể hiển thị 'không hợp "
+"lệ'.)"
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "Giấy chứng nhận có hiệu lực từ %s đến %s và hiện tại đang là %s."
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "hợp lệ"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "không hợp lệ"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "Không có giấy chứng nhận nào được cài đặt"
+
+#: plugins/personal/generic/class_user.inc:567
+msgid "The selected password method is no longer available."
+msgstr "Phương pháp lập mật khẩu được chọn này không còn ở đây."
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+msgid "The selected password method requires initial configuration!"
+msgstr "Phương pháp lập mật khẩu được chọn yêu cầu cấu hình ban đầu!"
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "Trang chủ"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "Điện thoại di động"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "Máy nhắn tin"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "Ngày sinh"
+
+#: plugins/personal/generic/class_user.inc:1433
+msgid "Cannot open certificate!"
+msgstr "Không mở được giấy chứng nhận!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "Đơn vị"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "Mô tả căn nhà"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "Nghề nghiệp"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "Lần cung cấp cuối"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr "Địa phương của người dùng"
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "Mô tả đơn vị "
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr "Lĩnh vực chuyên môn"
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "Danh xưng chức năng"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "Số seri chứng nhận"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "Hiển thị với tất cả mọi người"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "Phố"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "Mã bưu điện"
+
+#: plugins/personal/generic/class_user.inc:1603
+msgid "Generic user settings"
+msgstr "Thiết lập chung của người dùng"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "Tài khoản của tôi"
+
+#: plugins/personal/generic/class_user.inc:1615
+msgid "User identification"
+msgstr "Chứng nhận người dùng"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "Chức danh cá nhân"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "Chức danh học thuật"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "Giới tính"
+
+#: plugins/personal/generic/class_user.inc:1621
+msgid "Preferred language"
+msgstr "Ngôn ngữ muốn sử dụng"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "Ảnh của người sử dụng"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "Các hạn chế mật khẩu"
+
+#: plugins/personal/generic/class_user.inc:1630
+msgid "Department number"
+msgstr "Số phòng làm việc"
+
+#: plugins/personal/generic/class_user.inc:1631
+msgid "Employee number"
+msgstr "Số nhân viên"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "Loại nhân viên"
+
+#: plugins/personal/generic/class_user.inc:1634
+msgid "Room number"
+msgstr "Số phòng"
+
+#: plugins/personal/generic/class_user.inc:1635
+msgid "Telefon number"
+msgstr "Số điện thoại"
+
+#: plugins/personal/generic/class_user.inc:1636
+msgid "Pager number"
+msgstr "Số máy nhắn tin"
+
+#: plugins/personal/generic/class_user.inc:1637
+msgid "Mobile number"
+msgstr "Số di động"
+
+#: plugins/personal/generic/class_user.inc:1638
+msgid "Fax number"
+msgstr "Số fax"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "Đại chỉ nhà theo bưu điện"
+
+#: plugins/personal/generic/class_user.inc:1645
+msgid "Home phone number"
+msgstr "Số điện thoại nhà"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "Phương pháp lập mật khẩu"
+
+#: plugins/personal/generic/class_user.inc:1648
+msgid "User certificates"
+msgstr "Giấy phép của người dùng"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "Thông tin cá nhân"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "Ảnh cá nhân"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "Thay đổi hình ảnh"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "Tên Mẫu"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "Ngôn ngữ muốn dùng"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "Số điện thoại riêng"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "Kho lưu mật khẩu"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "Các giấy phép"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "Hiệu chỉnh các giấy phép"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "Thông tin về tổ chức"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "Số phòng ban"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "Số nhân viên"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "Số phòng"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "Xin hãy sử dụng Phone Tab"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "Chọn một cây con để cho người dùng vào"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "Chọn một cơ sở"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "Thiết lập của người dùng"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "Bỏ mật khẩu"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "Đặt mật khẩu mới"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "Xóa ảnh "
+
+#: plugins/personal/generic/main.inc:115
+msgid "You have no permission to set your password!"
+msgstr "Bạn không có quyền lập mật khẩu cho bạn!"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "Thông tin chung của người dùng"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"Bạn đã thay đổi phương pháp mà mật khẩu của bạn được lưu trữ trong cơ sở dữ "
+"liệu ldap. Vì lý do đó bạn phải nhập mật khẩu lại tại điểm này. Gosa sau đó "
+"sẽ mã hóa nó với phương pháp đã được lựa chọn."
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "Giấy phép chuẩn"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "Giấy phép S/MIME"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "Giấy phép PKCS12"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+msgid "Edit users POSIX settings"
+msgstr "Hiệu chỉnh cài đặt POSIX của người dùng"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "hết hạn"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "Thời gian trước khi tài khoản bị khóa đang hoạt động"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "hoạt động"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#, fuzzy
+msgid "password not changeable"
+msgstr "Mật khẩu không thay đổi được"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+msgid "password expired"
+msgstr "mật khẩu hết hạn"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "tự động"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr ""
+"Mật khẩu không thể được thay đổi it nhất là %s ngày sau lần thay đổi trước"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "Mật khẩu phải được thay đổi sau %s ngày"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr ""
+"Vô hiệu hóa tài khoản sau %s ngày không hoạt động sau khi mật khẩu hết hạn"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "Cảnh báo người sử dụng còn %s ngày nữa là hết hạn password"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr "Thời gian chờ khóa. Bỏ qua khóa!"
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "Nhóm người dùng"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+"Số UID nhân bản đã được viết cho người sử dụng này. Nếu vệc này là không cố "
+"ý, xin hãy xác minh lại tất cả các số UID!"
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "Thư mục chủ"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "Số ID của người sử dụng"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+msgid "shadowMin"
+msgstr "shadowMin"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr "shadowMax"
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+msgid "shadowWarning"
+msgstr "Cảnh báo về Shadow"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+msgid "shadowInactive"
+msgstr "Shadow  không hoạt động"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+msgid "POSIX account"
+msgstr "tài khoản POSIX"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "ID người dùng"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+msgid "Group ID"
+msgstr "ID nhóm"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+msgid "Force password change on login"
+msgstr "Ép buộc thay đổi mật khẩu trong khi đăng nhập"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+msgid "Shadow min"
+msgstr "Shadow min"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr "Shadow max"
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+msgid "Shadow warning"
+msgstr "Cảnh báo Shadow"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+msgid "Shadow inactive"
+msgstr "Shadow không hoạt động"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+msgid "Shadow expire"
+msgstr "Shadow hết hạn"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+msgid "System trust model"
+msgstr "Mô hình ủy thác hệ thống"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "Nhóm sơ cấp"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "Trạng thái"
+
+#: plugins/personal/posix/generic.tpl:41
+#, fuzzy
+msgid "Last logon"
+msgstr "Họ"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "Bắt buộc có UID/GID "
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "Tư cách thành viên nhóm"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(Cảnh báo: hơn 16 nhóm không được hỗ trợ bởi NFS!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "các nhóm điện thoại"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "Nhóm người dùng"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "Tài khoản"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "Chọn các nhóm để thêm vào"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "Hiển thị các nhóm trong bộ phận"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "Hiển thị sự khớp nhóm"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "Biểu thức thông thường cho việc khớp các tên nhóm"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "Hiển thị các nhóm người sử dụng"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "Username của các nhóm được hiển thị"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+#, fuzzy
+msgid "Show servers"
+msgstr "các server"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+#, fuzzy
+msgid "Show workstations"
+msgstr "máy trạm"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+#, fuzzy
+msgid "Show terminals"
+msgstr "các thiết bị cuối"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Thiết lập Posix"
+
+#: plugins/personal/posix/main.inc:142
+msgid "POSIX settings"
+msgstr "Thiết lập POSIX"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "Người dùng phải thay đổi mật khẩu ngay lần đăng nhập đầu tiên"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "Mật khẩu hết hạn vào ngày"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr ""
+"Bạn đã thay đổi mật khẩu thành công. Hãy nhớ thay đổi cả các chương trình "
+"cấu hình để sử dụng được nó."
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+msgid "Password settings"
+msgstr "Thiết lập mật khẩu"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"Để thay đổi được mật khẩu cá nhân, sử dụng các trường dưới đây. Các thay đổi "
+"sẽ diễn ra ngay lập tức. Xin hãy nhớ mật khẩu mới, bởi vì bạn sẽ không thể "
+"đăng nhập vào nếu không có nó."
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "Dọn sạch các trường "
+
+#: plugins/personal/password/class_password.inc:27
+msgid "Change user password"
+msgstr "Thay đổi mật khẩu người dùng"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "Bạn cần xác định mật khẩu hiện tại để có thể tiếp tục."
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "Mật khẩu bạn vừa nhập vào làm \"Mật khẩu mới\" bị rỗng."
+
+#: plugins/personal/password/class_password.inc:94
+#, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "Bộ thay đổi mật khẩu bên ngoài báo cáo có vấn đề:%s."
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr ""
+"Mật khẩu bạn vừa đưa vào làm mật khẩu hiện tại không giống mật khẩu thật."
+
+#: plugins/personal/password/class_password.inc:114
+msgid "You have no permission to change your password."
+msgstr "Bạn không có quyền thay đổi mật khẩu của bạn."
+
+#: plugins/personal/password/class_password.inc:146
+msgid "User password"
+msgstr "Mật khẩu người dùng"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "Bạn không được phép thay đổi mật khẩu"
+
+#: plugins/personal/password/nochange.tpl:6
+msgid "You have no permission to change your password at this time"
+msgstr "Bạn không được phép thay đổi mật khẩu tại thời điểm này"
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr "Tài khoản/nhóm UNIX"
+
+#: setup/class_setupStep_Feedback.inc:94
+msgid "Samba management"
+msgstr "Quản trị Samba"
+
+#: setup/class_setupStep_Feedback.inc:96
+msgid "Mailsystem management"
+msgstr "Quản trị hệ thống thư"
+
+#: setup/class_setupStep_Feedback.inc:98
+msgid "FAX system administration"
+msgstr "Quản trị hệ thống FAX"
+
+#: setup/class_setupStep_Feedback.inc:100
+msgid "Asterisk administration"
+msgstr "Quản trị Asterisk"
+
+#: setup/class_setupStep_Feedback.inc:102
+msgid "System inventory"
+msgstr "Bảng kiểm kê hệ thống"
+
+#: setup/class_setupStep_Feedback.inc:104
+msgid "System-/Configmanagement"
+msgstr "Quản trị cấu hình/hệ thống-"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "Sổ địa chỉ"
+
+#: setup/class_setupStep_Feedback.inc:112
+#, fuzzy
+msgid "Feedback"
+msgstr "Lỗi phản hồi"
+
+#: setup/class_setupStep_Feedback.inc:113
+msgid "Get notifications or send feedback"
+msgstr "Lấy thông báo và gửi phản hồi"
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr "Thông báo và phản hồi "
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+msgid "Setup error"
+msgstr "Lỗi cài đặt"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr "Lỗi phản hồi"
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr "Không thể gửi phản hồi đển '%s': %s"
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr "Không thể gửi phản hồi: dịch vụ hiện tại không có "
+
+#: setup/class_setupStep_Feedback.inc:180
+msgid "Please specify a valid email address."
+msgstr "Xin hãy  xác định một địa chỉ email hợp lệ."
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+"Bạn phải lựa chọn ít nhất mọt trong hai chọn lựa, thuê bao hoặc gửi phản hồi."
+
+#: setup/class_setup.inc:197
+msgid "Completed"
+msgstr "Đã hoàn thành"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+msgid "Next"
+msgstr "Tiếp tục"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Thiết lập Samba"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr "Bộ tạo ra các hàm băm Samba"
+
+#: setup/setup_config2.tpl:15
+msgid "Samba SID"
+msgstr "SID của Samba"
+
+#: setup/setup_config2.tpl:31
+msgid "RID base"
+msgstr "Gốc RID"
+
+#: setup/setup_config2.tpl:46
+msgid "Workstation container"
+msgstr "Công ten nơ chứa máy trạm"
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr "Ánh xạ SID samba"
+
+#: setup/setup_config2.tpl:71
+msgid "Timezone"
+msgstr "Múi giờ"
+
+#: setup/setup_config2.tpl:74
+msgid "Please choose your preferred timezone here"
+msgstr "Xin hãy lựa chọn múi giờ bạn muốn ở đây"
+
+#: setup/setup_config2.tpl:96
+msgid "Additional GOsa settings"
+msgstr "Thiết lập thêm của GOsa"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr "Bật chức năng Copy & Paste"
+
+#: setup/setup_config2.tpl:112
+msgid "Government mode"
+msgstr "Chế độ nhà nước"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "Màn hình đăng nhập GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "Thiết lập mail"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "Phương pháp Mail"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr "Thuộc tính xác minh tài khoản"
+
+#: setup/setup_config2.tpl:169
+msgid "Vacation templates"
+msgstr "Mẫu kỳ nghỉ"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr "Sử dụng phong cách Cyrus Unix"
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr "Snapshots/Undo"
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr "Bật chức năng snapshots"
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr "Gốc snapshot"
+
+#: setup/setup_frame.tpl:12
+msgid "GOsa setup wizard"
+msgstr "Hướng dẫn cài đặt GOsa chi tiết "
+
+#: setup/setup_frame.tpl:19
+msgid "Installation"
+msgstr "Cài đặt"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Setup"
+msgstr "Đặt"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+"Trong quá trình thanh tra LDAP, chúng tôi sẽ kiểm tra một vài lỗi thông "
+"thường mà có thể xảy ra khi di trú đến quản trị LDAP gốc GOsa. Bạn có thể "
+"muốn sửa những vấn đề dưới đây để cung cấp các dịch vụ êm xuôi hơn."
+
+#: setup/setup_migrate.tpl:33
+msgid "Check again"
+msgstr "Kiểm tra lại"
+
+#: setup/setup_migrate.tpl:37
+#, fuzzy
+msgid "Add required object classes to the LDAP base"
+msgstr "Lớp đối tượng '%s' được yêu cầu mất tích!"
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+msgid "Current"
+msgstr "Hiện tại"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+msgid "After migration"
+msgstr "Sau khi di trú"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+msgid "Migrate"
+msgstr "Di trú"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "Đóng"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+"Chuyển một máy trạm window thành một bộ phận máy trạm windown có hiệu lực"
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+"Hộp thoại này cho phép bạn chuyển từ một máy trạm window được hiển thị sang "
+"một bộ phận có hiệu lực"
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+"Hãy cẩn thận với công cụ này, có thể có các tham chiếu hướng đến máy trạm "
+"này mà không thể được du nhập vào."
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+"Chuyển những máy trạm window đã chọn vào trong những bộ phận GOsa tiếp theo"
+
+#: setup/setup_migrate.tpl:100
+msgid "Move selected workstations"
+msgstr "Chuyển các máy trạm đã chọn"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr "Việc sẽ được làm ở đây"
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr "Chuyển nhóm thành cây nhóm đã được cấu hình"
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Hộp thoại này cho phép việc chuyển một vài nhóm đến cây nhóm đã được cấu "
+"hình. Thực hiện việc này có thể sẽ làm gọn gàng dịch vụ LDAP của bạn."
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Hãy cẩn thận với lựa chọn này! Có thể có các thông tin tham chiếu hướng đến "
+"nhóm này. Cài đặt Gosa không thể di trú các tham chiếu này, vì thế bạn có "
+"thể muốn hủy bỏ việc di trú trong trường hợp này."
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr "Chuyển các nhóm đã chọn vào trong các cây nhóm"
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr "Ẩn các thay đổi"
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+msgid "Show changes"
+msgstr "Hiển thị các thay đổi"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr "Chuyển người dùng sang cây người dùng được cấu hình"
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+"Hộp thoại này cho phép việc chuyển một vài nhóm đến cây nhóm đã được cấu "
+"hình. Thực hiện việc này có thể sẽ làm gọn gàng dịch vụ LDAP của bạn."
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+"Hãy cẩn thận với lựa chọn này! Có thể có các thông tin tham chiếu hướng đến "
+"nhóm này. Cài đặt Gosa không thể di trú các tham chiếu này, vì thế bạn có "
+"thể muốn hủy bỏ việc di trú trong trường hợp này."
+
+#: setup/setup_migrate.tpl:176
+msgid "Move selected users into this people tree"
+msgstr "Chuyển người dùng sang cây người dùng được cấu hình"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "Tạo ra một tài khoản admin GOsa mới"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+msgid "Reload"
+msgstr "Tải lại"
+
+#: setup/setup_migrate.tpl:273
+msgid "Abort"
+msgstr "Ngừng lại"
+
+#: setup/setup_migrate.tpl:275
+msgid "Create a new GOsa administrator account"
+msgstr "Tạo ra một tài khoản admin GOsa mới"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr "Hộp thoại này sẽ tự động thêm một siêu admin mới vào cây LDAP của bạn."
+
+#: setup/setup_migrate.tpl:307
+msgid "Password (again)"
+msgstr "Mật khẩu (nhập lại)"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+"Các bộ  phận  được liệt kê hiện đang bị ẩn trên giao diện người dùng của "
+"GOsa. Nếu bạn muốn thay đổi việc này cho một số entry, lựa chọn chúng và sử "
+"dụng phím 'di trú' ở dưới."
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+"Nếu bạn muốn biết việc gì sẽ được tiến hành khi di trú các entry được chọn "
+"này, hãy sử dụng phím 'hiển thị thay đổi 'để xem định dạng LDIF."
+
+#: setup/setup_migrate.tpl:388
+#, fuzzy
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Các bộ  phận  được liệt kê hiện đang bị ẩn trên giao diện người dùng của "
+"Gosa. Nếu bạn muốn thay đổi việc này cho một số entry, lựa chọn chúng và sử "
+"dụng phím \"Di trú\" ở dưới."
+
+#: setup/setup_migrate.tpl:444
+#, fuzzy
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Các bộ  phận  được liệt kê hiện đang bị ẩn trên giao diện người dùng của "
+"Gosa. Nếu bạn muốn thay đổi việc này cho một số entry, lựa chọn chúng và sử "
+"dụng phím \"Di trú\" ở dưới."
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+#, fuzzy
+msgid "Refresh"
+msgstr "Các tham chiếu"
+
+#: setup/setup_migrate.tpl:488
+#, fuzzy
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+"Các bộ  phận  được liệt kê hiện đang bị ẩn trên giao diện người dùng của "
+"Gosa. Nếu bạn muốn thay đổi việc này cho một số entry, lựa chọn chúng và sử "
+"dụng phím \"Di trú\" ở dưới."
+
+#: setup/setup_migrate.tpl:532
+#, fuzzy
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+"Các bộ  phận  được liệt kê hiện đang bị ẩn trên giao diện người dùng của "
+"Gosa. Nếu bạn muốn thay đổi việc này cho một số entry, lựa chọn chúng và sử "
+"dụng phím \"Di trú\" ở dưới."
+
+#: setup/class_setupStep_Finish.inc:38
+msgid "Write configuration file"
+msgstr "Viết file cấu hình"
+
+#: setup/class_setupStep_Finish.inc:39
+msgid "Finish - write the configuration file"
+msgstr "Kết thúc - viết file cấu hình"
+
+#: setup/class_setupStep_Finish.inc:104
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr ""
+"File cấu hình của bạn hiện cả thế giới đều đọc được. Xin hãy cập nhật quyền "
+"truy cập file!"
+
+#: setup/class_setupStep_Finish.inc:106
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "Cấu hình hiện tại không thể đọc được hoặc nó không tồn tại."
+
+#: setup/class_setupStep_Finish.inc:115
+#, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"Sau khi tải về và đặt file này dưới %s, xin hãy đảm bảo rằng người dùng mà "
+"webserver này đang chạy với có thể đọc được %s, trong khi những người dùng "
+"khác không thể. Bạn có thể muốn chạy những lệnh này để đạt được yêu cầu:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr "Kiểm tra cài đặt"
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr "Kiểm tra cơ bản cho khả năng tương thích và mở rộng PHP "
+
+#: setup/class_setupStep_Checks.inc:64
+msgid "Checking PHP version"
+msgstr "Kiểm tra phiên bản PHP"
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr "PHP phải là phiên bản %s hoặc như trên."
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr "Xin hãy cập nhật cho một phiên bản hỗ trợ."
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr "GOsa yêu cầu môdun này giao tiếp với server LDAP của bạn."
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr "GOsa yêu cầu môdun này cho một giao diện được quốc tế hóa."
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr "GOsa yêu cầu mô-đun này cho việc tích hợp samba."
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr "GOsa yêu cầu môdun này để tận dụng được việc mã hóa SSHA."
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr "GOsa yêu cầu mô-đun này để giao tiếp với server IMAP."
+
+#: setup/class_setupStep_Checks.inc:112
+msgid "mbstring"
+msgstr "mbstring"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr "GOsa cần môđun này để sử lý những đoạn mã unicode."
+
+#: setup/class_setupStep_Checks.inc:120
+msgid "MySQL"
+msgstr "MySOL"
+
+#: setup/class_setupStep_Checks.inc:121
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr ""
+"GOsa cần mô đun này để giao tiếp với một vài cơ sở dữ liệu được hỗ trợ."
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr "Bộ sinh ra hàm băm Samba"
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr "GOsa cần lệnh này để đồng bộ hóa mật khẩu của POSIX và Samba."
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+"Triển khai việc cài đặt gosa-si hoặc cài đặt các môđun ngôn ngữ perl Crypt::"
+"SmbHash."
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+#, fuzzy
+msgid "GOsa requires this extension to handle images."
+msgstr "GOsa cần môđun này để sử lý những đoạn mã unicode."
+
+#: setup/class_setupStep_Checks.inc:169
+#, fuzzy
+msgid "compression module"
+msgstr "Kiểm soát truy cập"
+
+#: setup/class_setupStep_Checks.inc:170
+#, fuzzy
+msgid "GOsa requires this extension to handle snapshots."
+msgstr "GOsa cần môđun này để sử lý những đoạn mã unicode."
+
+#: setup/class_setupStep_Checks.inc:181
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"đăng ký_toàn cầu (register_globals) là một cơ chế PHP dùng để đăng ký tất cả "
+"các biến số toàn cầu mà có thể truy cập từ các tập lệnh mà không phải thay "
+"đổi phạm vi. Đây có thể là một rủi ro về bảo mật."
+
+#: setup/class_setupStep_Checks.inc:182
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr ""
+"Tìm kiếm 'register_globals' trong thư mục php.ini của bạn và chuyển nó thành "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+"PHP sử dụng giá trị này để phần mềm thu dọn rác có thể sóa các phiên cũ đi."
+
+#: setup/class_setupStep_Checks.inc:191
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"Thiết lập giá trị này đến một ngày sẽ ngăn cản việc mất đi các phiên và "
+"cookies trước khi chúng thực sự hết hạn."
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+"Tìm kiếm  'session.gc_maxlifetime' trong thư mục php.ini của bạn và thiết "
+"lập nó đển 86400 hoặc cao hơn."
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr "Tắt"
+
+#: setup/class_setupStep_Checks.inc:200
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"Để có thể sử dụng được GOsa mà không gặp vấn đề nào, lựa chọn session."
+"auto_register trong php.ini nên được thiết lập là 'Off' (tắt)."
+
+#: setup/class_setupStep_Checks.inc:201
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"Tìm kiếm  'session.auto_start' trong thư mục php.ini của bạn và đặt nó thành "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:208
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr ""
+"GOsa cần một dung lượng bộ nhớ ít nhất là 32MB. Thiết lập nó dưới giới hạn "
+"này có thể sẽ gây ra lỗi mà không thể tự sản sinh ra kết quả nữa! Hãy tăng "
+"dung lượng lên cho cài đặt lớn hơn."
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+"Tìm kiếm  'memory_limit' trong thư mục php.ini của bạn và thiết lập nó lên "
+"'32M' hoặc cao hơn."
+
+#: setup/class_setupStep_Checks.inc:216
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr ""
+"Lựa chọn này sẽ ảnh hưởng tới việc sử lý đầu vào PHP. Tắt chức năng này đi, "
+"để tăng khả năng hoạt động."
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+"Tìm kiếm 'implicit_flush' trong thư mục php.ini của bạn và chuyển nó sang "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:224
+msgid "The Execution time should be at least 30 seconds."
+msgstr "Thời gian chạy ít nhất là 30 giây."
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+"Tìm kiếm 'max_execution_time' trong thư mục php.ini của bạn và thiết lập nó "
+"đến '30' hoặc cao hơn."
+
+#: setup/class_setupStep_Checks.inc:232
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"Tăng tính bảo mật của server bằng việc thiết lập expose_php thành 'off'. PHP "
+"sẽ không gửi bất cứ thông tin nào về server bạn đang chạy trong trường hợp "
+"này."
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+"Tìm kiếm 'expose_php' trong thư much php.ini của bạn và chuyển nó thành "
+"'Off'."
+
+#: setup/class_setupStep_Checks.inc:239
+msgid "On"
+msgstr "Bật"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"Tăng cường an ninh cho server của bạn bằng cách thiết lập magic_quotes_gpc "
+"thành 'on'. PHP sẽ giải thoát tất cả các trích dẫn trong các đoạn mã trong "
+"trường hợp này."
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+"Tìm kiếm ''magic_quotes_gpc' trong thư mục php.ini của bạn và chuyển nó "
+"thành 'On'"
+
+#: setup/class_setupStep_Checks.inc:248
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"Tăng cường khả năng hoạt động cho server của bạn bằng việc thiết lập "
+"magic_quotes_gpc thành 'off'."
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+"Tìm kiếm 'zend.ze1_compatibility_mode' trong thư mục  php.ini và chuyển nó "
+"thành 'Off'."
+
+#: setup/class_setupStep_Checks.inc:259
+msgid "Configuration writeable"
+msgstr "Cấu hình có thể lưu trữ dữ liệu (writable)"
+
+#: setup/class_setupStep_Checks.inc:260
+msgid "The configuration file can't be written"
+msgstr "Không thể viết lên File cấu hình "
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+"GOsa đọc cấu hình của nó từ một file trong (%s/%s). Việc cài đặt có thể trực "
+"tiếp viết cấu hình nếu nó là writeable."
+
+#: setup/setup_config3.tpl:2
+msgid "GOsa core settings"
+msgstr "thiết lập lõi của GOsa"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "Vô hiệu bộ lọc nhóm sơ cấp"
+
+#: setup/setup_config3.tpl:18
+msgid "Display summary in listings"
+msgstr "Hiển thị tóm tắt trên danh sách"
+
+#: setup/setup_config3.tpl:30
+msgid "Honour administrative units"
+msgstr "Các đơn vị quản trị chức danh"
+
+#: setup/setup_config3.tpl:42
+msgid "Smarty compile directory"
+msgstr "Thư mục soạn thảo Smarty"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr "Cộng đồng SNMP"
+
+#: setup/setup_config3.tpl:60
+msgid "Path for PPD storage"
+msgstr "Đường dẫn đến kho lưu trữ PPD"
+
+#: setup/setup_config3.tpl:77
+msgid "Path for kiosk profile storage"
+msgstr "Đường dẫn đến kho lưu trữ profile của ki-ốt"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+msgid "Mail queue script"
+msgstr "Tập lệnh sắp hàng mail"
+
+#: setup/setup_config3.tpl:134
+msgid "Notification script"
+msgstr "Tập lệnh thông báo"
+
+#: setup/setup_config3.tpl:153
+msgid "Enable edit locking"
+msgstr "Bật chức năng khóa việc hiệu chỉnh lên"
+
+#: setup/setup_config3.tpl:174
+#, fuzzy
+msgid "Gosa support daemon"
+msgstr "GOsa hỗ trợ chương trình daemon"
+
+#: setup/setup_config3.tpl:193
+msgid "Daemon timeout"
+msgstr ""
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr "Đăng nhập và phiên"
+
+#: setup/setup_config3.tpl:210
+msgid "Login attribute"
+msgstr "Thuộc tính đăng nhập"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr "Tắt chức năng đăng ký _toàn cầu "
+
+#: setup/setup_config3.tpl:233
+msgid "Enforce encrypted connections"
+msgstr "Thực thi việc mã hóa các kết nối"
+
+#: setup/setup_config3.tpl:245
+msgid "Warn if session is not encrypted"
+msgstr "Cảnh báo nếu một phiên chưa được mã hóa"
+
+#: setup/setup_config3.tpl:257
+msgid "Remember dialog filter settings"
+msgstr "Nhớ thiết lập bộ lọc đối thoại "
+
+#: setup/setup_config3.tpl:269
+msgid "Session lifetime"
+msgstr "Thời gian cho một phiên (một Session)"
+
+#: setup/setup_config3.tpl:278
+msgid "Debugging"
+msgstr "Sửa lỗi"
+
+#: setup/setup_config3.tpl:282
+msgid "Show PHP errors"
+msgstr "Hiển thị lỗi PHP"
+
+#: setup/setup_config3.tpl:294
+msgid "Maximum LDAP query time"
+msgstr "Thời gian truy vấn LDAP tối đa"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr "Đăng nhập thống kê LDAP"
+
+#: setup/setup_config3.tpl:324
+msgid "Debug level"
+msgstr "Cấp độ sửa lỗi"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+msgid "Disabled"
+msgstr "Vô hiệu hóa/ Tắt chức năng"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+msgid "Enabled"
+msgstr "Bật chức năng"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr "Phản hồi đã được gửi thành công"
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr "Thuê bao đến maillinglist do gosa công bố"
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+"Khi kiểm tra lựa chọn này, GOsa sẽ cố thử kết nói với http://oss.gonicus.de "
+"để có thể thuê bao bạn với mailing list mà gosa công bố. Bạn phải xác minh "
+"việc này bằng thư."
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "Địa chỉ thư"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr "Gửi phản hồi lại cho nhóm phát triển dự án GOsa"
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+"Khi kiểm tra lựa chọn này, GOsa sẽ cố gắng kết nối bạn với http://oss."
+"gonicus.de để nộp đăng ký của bạn nặc danh."
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr "Các thủ tục cài đặt có giúp bạn bắt đầu được không?"
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "Có"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "Không"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr "Nếu không, vấn đề mà bạn gặp phải là gì?"
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr "Đây có phải là lần đầu tiên bạn sử dụng GOsa không?"
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr "Tôi sử dụng nó từ khi"
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr "Lựa chọn năm mà bạn đang sử dụng GOsa"
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr "Bạn sử dụng loại hệ điều hành/bản phân phối nảo?"
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr "Bạn sử dụng loại web server nào?"
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr "Bạn sử dụng phiên bản PHP nào?"
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr "LDAP"
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr "Bạn sử dụng loại LDAP server nào?"
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr "Có bao nhiêu đối tượng trong LDAP của bạn?"
+
+#: setup/setup_feedback.tpl:132
+msgid "Features"
+msgstr "Các tính năng"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr "Bạn sử dụng tính năng nào của GOsa?"
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+"Bạn muốn được thấy tính năng nào trong các phiên bản tương lai của GOsa?"
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr "Gửi phản hồi"
+
+#: setup/setup_finish.tpl:3
+msgid "Create your configuration file"
+msgstr "Tạo ra file cấu hình của bạn"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "Tải cấu hình về"
+
+#: setup/setup_finish.tpl:33
+msgid "Status: "
+msgstr "Trạng thái: "
+
+#: setup/class_setupStep_Ldap.inc:53
+msgid "LDAP setup"
+msgstr "Cài đặt LDAP"
+
+#: setup/class_setupStep_Ldap.inc:54
+msgid "LDAP connection setup"
+msgstr "Thiết lập kết nối LDAP"
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+"Đối thoại này chạy cấu hình đơn giản của khả năng kết nối LDAP với Gosa."
+
+#: setup/class_setupStep_Ldap.inc:105
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "Kết nối nặc danh với server '%s' thất bại!"
+
+#: setup/class_setupStep_Ldap.inc:107
+#, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "Kết nối với vai trò người dùng '%s' thất bại!"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "Kết nối nặc danh đến server '%s' thành công."
+
+#: setup/class_setupStep_Ldap.inc:113
+msgid "Please specify user and password!"
+msgstr "Xin hãy xác định người dùng và mật khẩu!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "Kết nối với tư cách người dùng '%s' đến server '%s' thành công!"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr "Xin hãy chọn người dùng LDAP để được sử dụng bởi GOsa"
+
+#: setup/setup_ldap.tpl:25
+msgid "LDAP connection"
+msgstr "Kết nối LDAP"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "Tên vị trí"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "Kết nối URL"
+
+#: setup/setup_ldap.tpl:45
+msgid "TLS connection"
+msgstr "Kết nối TLS"
+
+#: setup/setup_ldap.tpl:69
+msgid "Authentication"
+msgstr "Thẩm định quyền"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "Admin DN"
+
+#: setup/setup_ldap.tpl:78
+msgid "Select user"
+msgstr "Chọn người dùng"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr "Tự động nối cơ sở LDAP với admin DN"
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "Mật khẩu Admin"
+
+#: setup/setup_ldap.tpl:101
+msgid "Schema based settings"
+msgstr "Thiết lập dựa trên Schema"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr "Sử dụng các nhóm tuân thủ tiêu chuẩn rfc2307bis"
+
+#: setup/setup_ldap.tpl:117
+msgid "Current status"
+msgstr "Tình trạng hiện tại"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+msgid "LDAP inspection"
+msgstr "Thanh tra LDAP"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr "Phân tích LDAP hiện tại của bạn để xem khả năng tương thích với GOsa"
+
+#: setup/class_setupStep_Migrate.inc:135
+msgid "Checking for root object"
+msgstr "Kiểm tra đối tượng gốc"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "Kiểm tra đối tượng gốc"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "Kiểm tra các cho phép trên cơ sở dữ liệu LDAP "
+
+#: setup/class_setupStep_Migrate.inc:153
+msgid "Checking for invisible departments"
+msgstr "Kiểm tra các bộ phận ẩn"
+
+#: setup/class_setupStep_Migrate.inc:158
+msgid "Checking for invisible users"
+msgstr "Kiểm tra những người dùng ẩn"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+msgid "Checking for super administrator"
+msgstr "Kiểm tra siêu admin"
+
+#: setup/class_setupStep_Migrate.inc:171
+msgid "Checking for users outside the people tree"
+msgstr "Kiểm tra người dùng bên ngoài cây con người"
+
+#: setup/class_setupStep_Migrate.inc:177
+msgid "Checking for groups outside the groups tree"
+msgstr "Kiểm tra nhóm bên ngoài cây nhóm"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr "Kiểm tra máy trạm window bên ngoài cây máy trạm window"
+
+#: setup/class_setupStep_Migrate.inc:190
+msgid "Checking for duplicated UID numbers"
+msgstr "Kiểm tra các số ID cuả người dùng (UID) được nhân bản"
+
+#: setup/class_setupStep_Migrate.inc:196
+msgid "Checking for duplicate GID numbers"
+msgstr "Kiểm tra các số ID của nhóm (GID) được nhân bản"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "Kiểm tra đối tượng gốc"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "Kiểm tra người dùng bên ngoài cây con người"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "Kiểm tra các bộ phận ẩn"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+msgid "LDAP query failed"
+msgstr "Yêu cầu LDAP thất bại"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr "Có thể 'đối tượng gốc' bị mất tích."
+
+#: setup/class_setupStep_Migrate.inc:263
+#, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "Đã tìm được %s giá trị nhân bản cho thuộc tính  'uidNumder'."
+
+#: setup/class_setupStep_Migrate.inc:315
+#, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "Đã tìm được %s giá trị nhân bản cho thuộc tính  'gidNumder'."
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "Thất bại"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+"Đã tìm thấy %s máy trạm win bên ngoài bộ phận winstation đã được xác định "
+"trước '%s'."
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr "Đã tìm thấy %s nhóm bên ngoài cây được cấu hình '%s'."
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+msgid "Move"
+msgstr "Chuyển"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr "Đã tìm thấy %s người dùng  bên ngoài cây được cấu hình '%s'."
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+"Người dùng '%s' không có toàn quyền truy cập vào cơ sở dữ liệu LDAP của bạn."
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr "Đã tìm thấy %s người dùng mà không hiên thị trên GOsa."
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+msgid "Migration error"
+msgstr "Lỗi di trú"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "Không thể di trú bộ phận '%s':"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr "Tìm thấy %s bộ phận mà không hiển thị trên Gosa."
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "Tạo ra một tài khoản admin GOsa mới"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "Không có một tài khoản Admin cùa Gosa nào trong LDAP của bạn."
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr "Không có một tài khoản Admin cùa Gosa nào trong LDAP của bạn."
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr "Không thể thêm ACL cho người dùng '%s':"
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Input error"
+msgstr "Lỗi nhập vào"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Password error"
+msgstr "Lỗi mật mã"
+
+#: setup/class_setupStep_Migrate.inc:1162
+msgid "Provided passwords do not match!"
+msgstr "Những mật khẩu được cung cấp không phù hợp!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+msgid "Specify a valid user ID!"
+msgstr "Xác định một ID người dùng hợp lệ!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr ""
+"Việc thêm một người dùng quản trị đã thất bại: đối tượng '%s' đã có rồi!"
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+msgid "Cannot move users to the requested department!"
+msgstr "Không thể chuyển người dùng đến bộ phận được yêu cầu!"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr "Máy trạm Win sẽ được chuyển từ"
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr "Cập nhật cả các tham chiếu sau"
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr "Nhóm sẽ được chuyển từ"
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr "Người dùng sẽ được chuyển từ"
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr "Tham chiếu sau sẽ được cập nhật"
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+"Đối tượng gốc LDAP đang mất tích. Để sử dụng dịch vụ LDAP của bạn, bạn cần "
+"có nó."
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr "Cố tạo ra một đối tượng gốc"
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr "Đối tượng gốc không thể được tạo ra, bạn phải cố tự mình tạo ra nó."
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, fuzzy, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr "Lớp đối tượng lựa chọn '%s' mất tích!"
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "Xin hãy kiểm tra kết hợp tên người dùng/mật khẩu."
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "Sao chép '%s' đến '%s' bị thất bại:"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Tải lên thất bại: %s"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+"Có vẻ đây là lần đầu tiên bạn khởi động Gosa - chúng tôi không tìm thấy cấu "
+"hình nào ngay lúc này. Wizard đơn giản dự định giúp bạn trong khi đang cài "
+"đặt nó."
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr "Wizard sẽ giúp bạn những gì?"
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr "Tạo ra một cấu hình trang đơn, đơn giản"
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr "Cố gắng tìm ra vấn đề trong cài đặt PHP và LDAP của bạn "
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+"Cho phép bạn lựa chọn từ một loạt các phím chuyển cấu hình cơ bản và cao cấp"
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr "Di trú có hướng dẫn của các cây LDAP hiện có"
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr "Wizard không thể làm gì được cho bạn?"
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr "Tìm được mọi lỗi cấu hình có thể xảy ra"
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr "Di trú mọi cài đặt LDAP - và tạo ra các xổ backup!"
+
+#: setup/setup_welcome.tpl:25
+msgid "To continue..."
+msgstr "Còn nữa..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+"Vì lý do an ninh, bạn cần phải xác minh việc cài đặt bằng cách tạo ra file '/"
+"tmp/gosa.auth', bao gồm phiên ID hiện tại trên hệ thống file nôi bộ của "
+"server. Ta làm việc này bằng cách chạy các lệnh sau:"
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr "Kích vào phím 'Continue' khi bạn làm xong."
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr "Tôi đã đọc giấy phép và chấp nhận nó"
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+msgid "GOsa settings 3/3"
+msgstr "Thiết lập GOsa 3/3"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr "Chỉnh sửa một số đặc tính lõi của GOsa"
+
+#: setup/class_setupStep_Config3.inc:212
+msgid "Session lifetime must be a numeric value!"
+msgstr "Khoảng thời gian của phiên phải là một giá trị số!"
+
+#: setup/class_setupStep_Config3.inc:216
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "Thời gian tối đa để yêu cầu LDAP phải là một giá trị số!"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr "Kiểm tra các module và mở rộng của PHP"
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr "GOsa sẽ không chạy được nếu không sửa chỗ này."
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr "GOsa sẽ chạy mà không cần sửa chỗ này."
+
+#: setup/setup_checks.tpl:67
+msgid "PHP setup configuration"
+msgstr "Cấu hình cài đặt PHP"
+
+#: setup/setup_checks.tpl:67
+msgid "show information"
+msgstr "hiển thị thông tin"
+
+#: setup/setup_schema.tpl:3
+msgid "Schema specific settings"
+msgstr "Thiết lập cụ thể lược đồ (schema)"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr "Cho phép thông qua lược đồ khi đăng nhập"
+
+#: setup/setup_schema.tpl:16
+msgid "Check status"
+msgstr "Kiểm tra trạng thái"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr "Kiểm tra lược đồ thành công"
+
+#: setup/setup_schema.tpl:23
+msgid "Schema check failed"
+msgstr "Kiểm tra lược đồ thất bại"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+"Không thể đọc một thông tin lược đồ nào, bỏ qua toàn bộ việc kiểm tra. Điều "
+"chỉnh các acls ldap của bạn."
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+"Dường như cơ sở dữ liệu Ldap của bạn vẫn chưa được khởi chạy trước. Đây có "
+"thể là lý do tại sao Gosa không thể đọc cấu hình lược đồ của bạn!"
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr "Xem và cảm nhận"
+
+#: setup/setup_config1.tpl:6
+msgid "Theme"
+msgstr "Theme"
+
+#: setup/setup_config1.tpl:15
+msgid "Apache"
+msgstr "Apache"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr "Nén output lại gửi cho trình duyệt"
+
+#: setup/setup_config1.tpl:27
+msgid "People and group storage"
+msgstr "Kho lưu trữ người và nhóm"
+
+#: setup/setup_config1.tpl:30
+msgid "People DN attribute"
+msgstr "Thuộc tính DN người"
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr "Cây con lưu trữ người"
+
+#: setup/setup_config1.tpl:50
+msgid "Group storage subtree"
+msgstr "Cây con lưu trữ nhóm"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr "Bao gồm chức danh cá nhân trong DN của người dùng"
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr "Chính sách đặt tên thoải mái"
+
+#: setup/setup_config1.tpl:81
+msgid "Automatic UIDs"
+msgstr "Các UID tự động"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr "ID min GID/UID"
+
+#: setup/setup_config1.tpl:113
+msgid "Number base for people/groups"
+msgstr "Cơ sơ số cho người/nhóm"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr "Móc nối với cơ sở số"
+
+#: setup/setup_config1.tpl:140
+msgid "Password encryption algorithm"
+msgstr "Thuật toán mã hóa mật khẩu"
+
+#: setup/setup_config1.tpl:151
+msgid "Password restrictions"
+msgstr "Các hạn chế mật khẩu"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr "Độ dài tối thiểu của mật khẩu"
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr "Các ký tự khác với mật khẩu cũ"
+
+#: setup/setup_config1.tpl:182
+msgid "Password change hook"
+msgstr "Móc nối việc thay đổi mật khẩu"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr "Sử dụng ngôn ngữ SASL cho hệ thống Kerberos"
+
+#: setup/setup_config1.tpl:209
+msgid "Use account expiration"
+msgstr "Sử dụng việc hết hạn tài khoản"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa hỗ trợ một vài kiểu mã hóa cho các mật khẩu của bạn. Thông thường thì "
+"việc này có thể được điều chỉnh thông qua các khuôn mẫu của người dùng, "
+"nhưng bạn có thể xác định một phương pháp mặc định để nó cũng được sử dụng ở "
+"đây."
+
+#: setup/setup_config1.tpl:222
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa sẽ luôn luôn đóng vai trò admin và quản lý các quyền truy cập nội bộ. "
+"Đây là một cách khác cho tới khi các file OpenLDAP' trong thư mục và ACI's "
+"được thực hiện đầy đủ. Để làm được điều này, chúng ta cần DN của admin và "
+"mật khẩu tương ứng."
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"Một số thông số cơ bản của LDAP có thể được điều chỉnh và ảnh hưởng tới nơi "
+"mà Gosa lưu trữ thông tin về người và nhóm, bao gồm cả cách mà các tài khoản "
+"được lập ra. Kiểm tra các giá trị dưới đây nếu chúng phù hợp với nhu cầu của "
+"bạn."
+
+#: setup/setup_config1.tpl:224
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa có  mô-đun hỗ trợ cho một vài phương pháp gửi thư. Các phương pháp này "
+"cung cấp các giao diện đến hộp thư của người dùng và cách giải quyết thông "
+"thường với các hạn ngạnh. Bạn có thể lựa chọn chế độ dummy plugin để không "
+"ai đụng tới được tất cả các thiết lập mail của bạn."
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr "Kiểm tra lược đồ LDAP"
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr "Thực hiện việc kiểm tra trên lược đồ LDAP hiện tại của bạn"
+
+#: setup/class_setupStep_Welcome.inc:38
+msgid "Welcome"
+msgstr "Chào mừng"
+
+#: setup/class_setupStep_Welcome.inc:39
+msgid "The welcome message"
+msgstr "Tin nhắn chào mừng"
+
+#: setup/class_setupStep_Welcome.inc:40
+msgid "Welcome to GOsa setup wizard"
+msgstr "Chào mừng bạn đến với bộ cài đặt wizard GOsa"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+msgid "License"
+msgstr "Giấy Phép"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr "Điều khoản và điều kiện cho việc sử dụng"
+
+#: setup/setup_language.tpl:3
+msgid "Please select the preferred language"
+msgstr "Xin hãy lựa chọn ngôn ngữ ưu thích"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+"Tại thời điểm này, bạn có thể lựa chọn trang này với ngôn ngữ mặc định. Nếu "
+"chọn 'tự động', bạn sẽ sử dụng ngôn ngữ được yêu cẩu bởi trình duyệt này. "
+"Việc thiết lập này có  bị ghi đè với mỗi một người dùng."
+
+#: setup/setup_language.tpl:9
+msgid "Please select your preferred language here"
+msgstr "Xin hãy lựa chọn ngôn ngữ bạn muốn dùng ở đây"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+msgid "GOsa settings 1/3"
+msgstr "Thiết lập GOsa 1/3"
+
+#: setup/class_setupStep_Config1.inc:76
+msgid "GOsa generic settings"
+msgstr "Thiết lập GOsa chung "
+
+#: setup/class_setupStep_Config1.inc:118
+#, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "Gía trị cụ thể cho '%s' phải là một giá trị số"
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr "Đừng thêm dấu phẩy đuôi vào '%s'."
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr "ou lưu trữ người"
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr "ou lưu trữ nhóm"
+
+#: setup/class_setupStep_Config1.inc:130
+msgid "Uid base must be numeric"
+msgstr "Gốc UID phải là số"
+
+#: setup/class_setupStep_Config1.inc:134
+msgid "The given password minimum length is not numeric."
+msgstr "Độ dài tối thiểu của mật khẩu đã cho không phải là số."
+
+#: setup/class_setupStep_Config1.inc:137
+msgid "The given password differ value is not numeric."
+msgstr "Gía trị khác của mật khẩu cho trước không phải là số."
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+msgid "GOsa settings 2/3"
+msgstr "Các thiết lập GOsa 2/3"
+
+#: setup/class_setupStep_Config2.inc:82
+msgid "Customize special parameters"
+msgstr "Tùy biến các thông số đặc biệt"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+msgid "Language setup"
+msgstr "Cài đặt ngôn ngữ"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr "Bước này cho phép bạn lựa chọn ngôn ngữ bạn muốn dùng."
+
+#: setup/class_setupStep_Language.inc:47
+msgid "Automatic"
+msgstr "Tự động"
+
+#~ msgid "Inconsistent DN encoding detected: '%s'"
+#~ msgstr "Việc mã hóa DN không thống nhất phát hiện: '%s'"
+
+#~ msgid "Choose a base"
+#~ msgstr "Chọn một gốc"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "Chọn một cây thư mục con để đặt nhóm vào"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "Lựa chọn cây con để đặt bộ phận này vào  "
+
+#~ msgid "Show %s"
+#~ msgstr "Hiển thị %s"
+
+#~ msgid "people"
+#~ msgstr "Người"
+
+#~ msgid "Select users to add"
+#~ msgstr "Chọn người sử dụng để thêm vào"
+
+#~ msgid "Select to see servers"
+#~ msgstr "Chọn để xem các server"
+
+#~ msgid "Search within subtree"
+#~ msgstr "Tìm kiếm trong cây con"
+
+#~ msgid "Display users of department"
+#~ msgstr "Hiển thị người dùng của bộ phận"
+
+#~ msgid "Display users matching"
+#~ msgstr "Hiển thị việc khớp người dùng"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "Hiển thị thông thường cho việc khớp tên người sử dụng"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "Danh sách người dùng"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "Tên thật"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "Họ "
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "Danh sách các nhóm"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "Danh sách các nhóm"
+
+#~ msgid ""
+#~ "Step in the prefered tree and click save to use the current subtree as "
+#~ "base. Or click the image at the end of each entry."
+#~ msgstr ""
+#~ "Vào cây ưa dùng và kích vào save để sử dụng cây con hiện tại làm cơ sở. "
+#~ "Hoặc kích vào hình ở cuối mỗi một entry."
+
+#~ msgid "Use"
+#~ msgstr "Sử dụng "
+
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "Lọc các entry với chỉ lệnh này"
+
+#~ msgid "MySQL error"
+#~ msgstr "Lỗi MySQL"
+
+#, fuzzy
+#~ msgid "Logging to MySQL database will be disabled for server '%s'!"
+#~ msgstr "Bạn sẽ không truy cập vào cơ sở dữ liệu MySQL trong phiên này!"
+
+#~ msgid "MySQL logging"
+#~ msgstr "Đăng nhập vào MySQL"
+
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "Không thể thêm vị trí vào cơ sở dữ liệu!"
+
+#~ msgid "Submit department"
+#~ msgstr "Bộ phận nộp"
+
+#~ msgid "edit"
+#~ msgstr "hiệu chỉnh"
+
+#~ msgid "delete"
+#~ msgstr "Xóa bỏ"
+
+#~ msgid "Number of listed object groups"
+#~ msgstr "Tên của các nhóm đối tượng được liệt kê"
+
+#~ msgid "Number of listed departments"
+#~ msgstr "Số các bộ phận được liệt kê"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr "Chọn để xem nhóm nào là nhóm người dùng sơ cấp"
+
+#~ msgid "samba groups mappings"
+#~ msgstr "ánh xạ các nhóm samba"
+
+#~ msgid "application settings"
+#~ msgstr "thiết lập ứng dụng"
+
+#~ msgid "mail settings"
+#~ msgstr "thiết lập mail"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr ""
+#~ "Chọn để xem các nhóm thông thường mà chỉ có các khía cạnh chức năng "
+
+#~ msgid "functional groups"
+#~ msgstr "các nhóm chức năng"
+
+#~ msgid "Not allowed"
+#~ msgstr "Không cho phép"
+
+#~ msgid "Number of listed groups"
+#~ msgstr "Tên các nhóm đã được lên danh sách"
+
+#~ msgid "Manage POSIX groups"
+#~ msgstr "Quản trị các nhóm POSIX"
+
+#~ msgid "group"
+#~ msgstr "Nhóm"
+
+#~ msgid "User administration"
+#~ msgstr "Quản trị người dùng"
+
+#~ msgid "templates"
+#~ msgstr "các mẫu"
+
+#~ msgid "GOsa object"
+#~ msgstr "Đối tượng GOsa"
+
+#~ msgid "functional users"
+#~ msgstr "Người dùng chức năng"
+
+#~ msgid "POSIX users"
+#~ msgstr "Người sử dụng POSIX"
+
+#~ msgid "samba users"
+#~ msgstr "Người dùng samba"
+
+#~ msgid "proxy users"
+#~ msgstr "Người dùng Proxy"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "Người dùng Proxy"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "Hiệu chỉnh các tính năng UNIX"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "Hiệu chỉnh các tính năng fax"
+
+#~ msgid "Create user with this template"
+#~ msgstr "Tạo ra người dùng từ mẫu này"
+
+#~ msgid "user"
+#~ msgstr "người dùng"
+
+#~ msgid "password"
+#~ msgstr "mật khẩu"
+
+#~ msgid "Delete user"
+#~ msgstr "Xóa người dùng"
+
+#~ msgid "Number of listed users"
+#~ msgstr "Số người dùng được liệt kê"
+
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "Bạn không được phép thay đổi đối tượng '%s'!"
+
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "Bạn không được phép sử dụng mẫu này!"
+
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "Bạn không được phép thay đổi trạng thái khóa cho người dùng này!"
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "Tên bộ phận"
+
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "Những biểu thức thông thường cho việc khớp tên các bộ phận"
+
+#~ msgid ""
+#~ "As soon as the move operation has finished, you can scroll down to end of "
+#~ "the page and press the 'Continue' button to continue with the department "
+#~ "management dialog."
+#~ msgstr ""
+#~ "Ngay sau khi thao tác chuyển dời kết thúc, bạn có thể kéo xuống cuối "
+#~ "trang và kích vào phím \"Tiếp tục\" để tiếp tục với hộp thoại quản lý bộ "
+#~ "phận."
+
+#~ msgid "Department management"
+#~ msgstr "Quản trị phòng ban "
+
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "Ở đây bao gồm tất cả các thông tin hệ thống và cài đặt. Xin hãy kiểm tra "
+#~ "hai lần neus bạn thực sự muốn thực hiện điều này bởi vì sẽ không có cách "
+#~ "nào để GOsa có thể lấy lại dữ liệu cho bạn."
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "Các vai trò ACL"
+
+#~ msgid "Summary"
+#~ msgstr "Bản tóm tắt"
+
+#~ msgid "Display acls matching"
+#~ msgstr "Hiển thị việc khớp ads"
+
+#~ msgid "Edit acl role"
+#~ msgstr "Hiệu chỉnh vai trò acl"
+
+#~ msgid "Edit acl"
+#~ msgstr "Hiệu chỉnh acl"
+
+#~ msgid "Delete acl"
+#~ msgstr "Xóa acl"
+
+#~ msgid "Gender"
+#~ msgstr "Giới tính"
+
+#~ msgid "Logging options"
+#~ msgstr "Các lựa chọn đăng nhập"
+
+#~ msgid "Syslog"
+#~ msgstr "Syslog"
+
+#~ msgid "ACL takes effect for all users"
+#~ msgstr "ACL tác động lên tất cả người dùng"
+
+#~ msgid "Version mismatch for optional object class '%s' (!=%s)!"
+#~ msgstr "Phiên bản không phù hợp với lớp đối tượng lựa chọn '%s' (!=%s)!"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "Không ở trong tất cả các nhóm"
+
+#~ msgid "Enable DNS extension"
+#~ msgstr "Bật chức năng mở rộng DNS"
+
+#~ msgid "Enable DHCP extension"
+#~ msgstr "Bật chức năng mở rộng DHCP"
+
+#~ msgid "Enable mime type management"
+#~ msgstr "Bật chức năng quản lý dạng mime"
+
+#~ msgid "Enable FAI release management"
+#~ msgstr "Bật chức năng quản lý việc tung ra FAI"
+
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "Cho phép người dùng mở rộng tính năng netatalk "
+
+#, fuzzy
+#~ msgid "Missing GOsa class %s."
+#~ msgstr "Lớp đối tượng lựa chọn '%s' mất tích!"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "Thay đổi mật khẩu"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "Tạo "
+
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "Tài khoản này đã có các thiết lập tính năng %s . Để tắt chúng đi, bạn cần "
+#~ "phải thêm thiết lập %s trước!"
+
+#~ msgid "CUPS"
+#~ msgstr "CUPS  (hệ thống in unix thông thường)"
+
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr ""
+#~ "GOsa cần môđun này để hiển thị các máy in mà không được định rõ trong "
+#~ "LDAP."
+
+#~ msgid "Modifyable by owner"
+#~ msgstr "Có thể chỉnh sửa được bởi người sở hữu "
+
+#~ msgid "Role name"
+#~ msgstr "Tên vai trò"
+
+#~ msgid "Role description"
+#~ msgstr "Mô tả vai trò"
+
+#~ msgid "Swedish"
+#~ msgstr "Tiếng Thụy Điển"
+
+#~ msgid "Override sudo role ou"
+#~ msgstr "Viết đè lên lệnh sudo role ou"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "Bạn chuẩn bị xóa tất cả cây thư mục LDAP nhỏ được đặt dưới '%s'."
+
+#~ msgid "Delete acl role"
+#~ msgstr "Xóa vai trò acl"
+
+#~ msgid "Terminals"
+#~ msgstr "Các thiết bị cuối"
+
+#~ msgid "Steps"
+#~ msgstr "Các bước"
+
+#~ msgid "Action"
+#~ msgstr "Hành động"
+
+#~ msgid "Select this base"
+#~ msgstr "Chọn cơ sở này"
diff --git a/gosa-core/locale/core/zh/LC_MESSAGES/messages.po b/gosa-core/locale/core/zh/LC_MESSAGES/messages.po
new file mode 100644
index 0000000..03e5e42
--- /dev/null
+++ b/gosa-core/locale/core/zh/LC_MESSAGES/messages.po
@@ -0,0 +1,8364 @@
+# translation of messages.po to Chinese Simplified
+# Copyright (C) 2003 GONICUS GmbH, Germany
+# This file is distributed under the same license as the GOsa2 package.
+#
+# Jiang Xin <worldhello.net at gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: messages\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-12 19:47+0100\n"
+"PO-Revision-Date: 2007-06-03 12:27+0800\n"
+"Last-Translator: Jiang Xin <worldhello.net at gmail.com>\n"
+"Language-Team: Chinese Simplified <zh at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ihtml/themes/default/remove.tpl:2 ihtml/themes/default/msg_dialog.tpl:59
+#: ihtml/themes/default/msg_dialog.tpl:106 ihtml/themes/default/islocked.tpl:6
+#: ihtml/themes/default/conflict.tpl:6 html/password.php:280 html/index.php:57
+#: html/index.php:63 html/index.php:414 html/index.php:420
+#: include/functions.inc:929 include/functions.inc:2642
+#: include/functions.inc:2646 include/functions.inc:2652
+#: include/class_tabs.inc:268 include/utils/class_xml.inc:37
+#: plugins/admin/ogroups/remove.tpl:2 plugins/admin/groups/remove.tpl:2
+#: plugins/admin/groups/class_group.inc:1003 plugins/admin/users/remove.tpl:2
+#: plugins/admin/departments/remove.tpl:2
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#: plugins/admin/acl/remove.tpl:2
+#: plugins/personal/posix/class_posixAccount.inc:793
+#: plugins/personal/posix/class_posixAccount.inc:946
+#: setup/class_setupStep_Migrate.inc:261 setup/class_setupStep_Migrate.inc:313
+#: setup/class_setupStep_Migrate.inc:446 setup/class_setupStep_Migrate.inc:523
+#: setup/class_setupStep_Migrate.inc:662 setup/class_setupStep_Migrate.inc:803
+#: setup/class_setupStep_Migrate.inc:2572
+#: setup/class_setupStep_Migrate.inc:2725
+#: setup/class_setupStep_Migrate.inc:3057 setup/setup_checks.tpl:32
+#: setup/setup_checks.tpl:93
+msgid "Warning"
+msgstr "警告"
+
+#: ihtml/themes/default/remove.tpl:6
+msgid ""
+"This may be used by several groups. Please double check if your really want "
+"to do this since there is no way for GOsa to get your data back."
+msgstr ""
+"这可能被好几个组使用。请再次检查您是否要这么做,因为 GOsa 没有办法将您的数据"
+"找回。"
+
+#: ihtml/themes/default/remove.tpl:9 plugins/admin/ogroups/remove.tpl:10
+#: plugins/admin/groups/remove.tpl:10 plugins/admin/users/remove.tpl:10
+#: plugins/admin/acl/remove.tpl:10
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr "所以,如果您确定,请按“删除”继续,否则按“取消”退出。"
+
+#: ihtml/themes/default/remove.tpl:15
+#: ihtml/themes/default/copyPasteDialog.tpl:21
+#: ihtml/themes/default/acl.tpl:128 ihtml/themes/default/acl.tpl:142
+#: ihtml/themes/default/snapshotdialog.tpl:44
+#: ihtml/themes/default/snapshotdialog.tpl:89
+#: ihtml/themes/default/msg_dialog.tpl:79
+#: ihtml/themes/default/msg_dialog.tpl:139
+#: ihtml/themes/default/msg_dialog.tpl:144
+#: ihtml/themes/default/islocked.tpl:19 include/utils/class_msgPool.inc:309
+#: setup/setup_migrate.tpl:163 setup/setup_migrate.tpl:214
+#: setup/setup_migrate.tpl:261 setup/setup_migrate.tpl:326
+#: setup/setup_migrate.tpl:382 setup/setup_migrate.tpl:435
+#: setup/setup_migrate.tpl:480 setup/setup_migrate.tpl:523
+#: setup/setup_migrate.tpl:567 setup/setup_ldap.tpl:17
+#, php-format
+msgid "Cancel"
+msgstr "取消"
+
+#: ihtml/themes/default/login.tpl:10
+msgid "GOsa login screen"
+msgstr ""
+
+#: ihtml/themes/default/login.tpl:27
+#, fuzzy
+msgid "Login screen"
+msgstr "登录脚本"
+
+#: ihtml/themes/default/login.tpl:34
+#, fuzzy
+msgid ""
+"Please use your username and your password to log into the site "
+"administration system."
+msgstr "请用您的用户名和口令登录"
+
+#: ihtml/themes/default/login.tpl:42 ihtml/themes/default/login.tpl:44
+#: ihtml/themes/default/password.tpl:69 ihtml/themes/default/password.tpl:71
+msgid "Username"
+msgstr "用户名"
+
+#: ihtml/themes/default/login.tpl:47 ihtml/themes/default/login.tpl:49
+#: ihtml/themes/default/password.tpl:40
+#: plugins/personal/generic/paste_generic.tpl:20
+#: plugins/personal/password/class_password.inc:26 setup/setup_config2.tpl:237
+#: setup/setup_config2.tpl:282 setup/setup_migrate.tpl:299
+msgid "Password"
+msgstr "口令"
+
+#: ihtml/themes/default/login.tpl:52 ihtml/themes/default/login.tpl:53
+#: ihtml/themes/default/password.tpl:60 ihtml/themes/default/password.tpl:62
+msgid "Directory"
+msgstr "目录"
+
+#: ihtml/themes/default/login.tpl:77 ihtml/themes/default/login.tpl:80
+msgid "Sign in"
+msgstr "登录"
+
+#: ihtml/themes/default/login.tpl:78
+msgid "Click here to log in"
+msgstr "点击这里登录"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:1
+#, fuzzy
+msgid "Copy & paste wizard"
+msgstr "拷贝和粘贴精灵"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:7
+msgid ""
+"Some values need to be unique in the complete directory while some "
+"combinations make no sense. GOsa shows the relevant attributes. Please "
+"maintain the values below to fullfill the policies."
+msgstr ""
+"有的变量需要在整个目录中保持唯一,而有的组合没有意义。GOsa 显示有关属性。请按"
+"照这个原则维护其取值。"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:9
+msgid "Remember that some properties like taken snapshots will not be copied!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:10
+msgid ""
+"Or if you copy or cut an entry within GOsa and delete the source object, you "
+"may get errors while pasting this object again!"
+msgstr ""
+
+#: ihtml/themes/default/copyPasteDialog.tpl:19
+#: include/utils/class_msgPool.inc:327
+#, php-format
+msgid "Save"
+msgstr "保存"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:24
+#, fuzzy
+msgid "Cancel all"
+msgstr "取消"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:30
+msgid "Operation complete"
+msgstr "操作完成"
+
+#: ihtml/themes/default/copyPasteDialog.tpl:32
+#: setup/class_setupStep_Finish.inc:37
+msgid "Finish"
+msgstr "完成"
+
+#: ihtml/themes/default/sizelimit.tpl:3
+msgid ""
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
+msgstr ""
+"大小限制选项会让 LDAP 操作更快,以免使 LDAP 服务器过载。最简单让大数据库处理"
+"不发成长时间超时的办法是,将查询缩小到更少并且使用过滤器。"
+
+#: ihtml/themes/default/sizelimit.tpl:6
+msgid "Please choose the way to react for this session"
+msgstr "请选择响应这个会话的方法"
+
+#: ihtml/themes/default/sizelimit.tpl:9
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr "忽略错误并显示 LDAP 服务器返回的所有条目"
+
+#: ihtml/themes/default/sizelimit.tpl:10
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr "忽略错误并显示在定义限制长度内的所有条目,并让我使用过滤器。"
+
+#: ihtml/themes/default/sizelimit.tpl:14 include/utils/class_msgPool.inc:345
+#, php-format
+msgid "Set"
+msgstr "设置"
+
+#: ihtml/themes/default/acl.tpl:7 plugins/admin/acl/acl_role.tpl:3
+msgid "Assigned ACL for current entry"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:12 plugins/admin/acl/acl_role.tpl:38
+#, fuzzy
+msgid "New ACL"
+msgstr "新"
+
+#: ihtml/themes/default/acl.tpl:17 plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "ACL type"
+msgstr "分类类型"
+
+#: ihtml/themes/default/acl.tpl:19 ihtml/themes/default/acl.tpl:24
+#: plugins/admin/acl/acl_role.tpl:44
+#, fuzzy
+msgid "Select an acl type"
+msgstr "选择一个位置"
+
+#: ihtml/themes/default/acl.tpl:29 ihtml/themes/default/acl.tpl:52
+#: ihtml/themes/default/acl.tpl:125 ihtml/themes/default/acl.tpl:140
+#: include/utils/class_msgPool.inc:321 setup/setup_migrate.tpl:161
+#: setup/setup_migrate.tpl:212 setup/setup_migrate.tpl:260
+#: setup/setup_migrate.tpl:325 setup/setup_migrate.tpl:380
+#: setup/setup_migrate.tpl:433 setup/setup_migrate.tpl:478
+#: setup/setup_migrate.tpl:521 setup/setup_migrate.tpl:565
+#: setup/setup_ldap.tpl:16
+#, php-format
+msgid "Apply"
+msgstr "应用"
+
+#: ihtml/themes/default/acl.tpl:36
+#, fuzzy
+msgid "Additional filter options"
+msgstr "应用程序设置"
+
+#: ihtml/themes/default/acl.tpl:47
+msgid "Use members from"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:61
+msgid "Available members"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:63 ihtml/themes/default/acl.tpl:68
+msgid "List message possible targets"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:82 include/class_acl.inc:1090
+msgid "Members"
+msgstr "成员"
+
+#: ihtml/themes/default/acl.tpl:84 ihtml/themes/default/acl.tpl:90
+msgid "List message recipients"
+msgstr ""
+
+#: ihtml/themes/default/acl.tpl:104 plugins/admin/acl/acl_role.tpl:49
+#, fuzzy
+msgid "List of available ACL categories"
+msgstr "可用软件包列表"
+
+#: ihtml/themes/default/acl.tpl:112
+#, fuzzy
+msgid "ACL for this object"
+msgstr "检查 iconv 支持"
+
+#: ihtml/themes/default/acl.tpl:118
+#, fuzzy
+msgid "Available roles"
+msgstr "可用的应用程序"
+
+#: ihtml/themes/default/accountexpired.tpl:15
+#, fuzzy
+msgid "Your password has expired. Please choose a new one!"
+msgstr "您的口令已经过期 !! 选择一个新口令"
+
+#: ihtml/themes/default/accountexpired.tpl:23
+#: ihtml/themes/default/accountexpired.tpl:27
+#, fuzzy
+msgid "Old password"
+msgstr "旧口令"
+
+#: ihtml/themes/default/accountexpired.tpl:32
+#: ihtml/themes/default/accountexpired.tpl:36
+#: ihtml/themes/default/password.tpl:82 ihtml/themes/default/password.tpl:83
+#: html/password.php:196 plugins/admin/users/password.tpl:13
+#: plugins/admin/users/class_userManagement.inc:249
+#: plugins/personal/generic/main.inc:97
+#: plugins/personal/generic/password.tpl:7
+#: plugins/personal/password/password.tpl:18
+msgid "New password"
+msgstr "新口令"
+
+#: ihtml/themes/default/accountexpired.tpl:41
+#: ihtml/themes/default/accountexpired.tpl:45
+#, fuzzy
+msgid "Verify password"
+msgstr "口令确认"
+
+#: ihtml/themes/default/accountexpired.tpl:51
+#: plugins/admin/users/user-list.xml:128 plugins/admin/users/user-list.xml:230
+msgid "Change password"
+msgstr "修改口令"
+
+#: ihtml/themes/default/accountexpired.tpl:52
+#: ihtml/themes/default/password.tpl:102
+#, fuzzy
+msgid "Click here to change your password"
+msgstr "点击这里来修改您的口令"
+
+#: ihtml/themes/default/logout-close.tpl:5
+#, fuzzy
+msgid "Your GOsa session has been closed!"
+msgstr "您的 GOsa 会话已经过期!"
+
+#: ihtml/themes/default/logout-close.tpl:7
+msgid ""
+"Please close this browser window and clean the authentication caches to "
+"avoid an automatic re-authentication by your browser."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:3
+msgid "Restoring object snapshots"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:6
+msgid ""
+"This procedure will restore a snapshot of the selected object. It will "
+"replace the existing object after pressing the restore button."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:9
+msgid ""
+"Remember that DNS configuration and database entries could not be restored. "
+"For some objects it is only nescessary to open and save them again (goFon), "
+"but some entries must be recreated manually (glpi)."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:12
+msgid ""
+"Don't forget to check references to other objects, for example does the "
+"selected printer still exists ?"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:20
+#: ihtml/themes/default/snapshotdialog.tpl:62 include/class_acl.inc:777
+#: include/class_acl.inc:784 include/class_acl.inc:791
+#: include/class_acl.inc:797 include/utils/class_msgPool.inc:472
+#: plugins/admin/departments/class_department.inc:560
+msgid "Object"
+msgstr "对象"
+
+#: ihtml/themes/default/snapshotdialog.tpl:29
+#, fuzzy
+msgid "There is no snapshot available that could be restored"
+msgstr "没有可用的 mysql 扩展,请检查您的 php 设置。"
+
+#: ihtml/themes/default/snapshotdialog.tpl:31
+msgid "Choose a snapshot and click the folder image, to restore the snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:49
+#, fuzzy
+msgid "Creating object snapshots"
+msgstr "创建新对象组"
+
+#: ihtml/themes/default/snapshotdialog.tpl:52
+msgid ""
+"This procedure will create a snapshot of the selected object. It will be "
+"stored inside a special branch of your directory system and can be restored "
+"later on."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:55
+msgid ""
+"Remember that database entries, DNS configurations and possibly created "
+"zones in server extensions will not be stored in the snapshot."
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:70
+#, fuzzy
+msgid "Timestamp"
+msgstr "过期"
+
+#: ihtml/themes/default/snapshotdialog.tpl:79
+msgid "Reason for generating this snapshot"
+msgstr ""
+
+#: ihtml/themes/default/snapshotdialog.tpl:87
+#: plugins/admin/users/template.tpl:48
+#: plugins/admin/departments/class_department.inc:500
+#: plugins/admin/departments/class_department.inc:582
+msgid "Continue"
+msgstr "继续"
+
+#: ihtml/themes/default/msg_dialog.tpl:57
+#: ihtml/themes/default/msg_dialog.tpl:104 html/index.php:224
+#: html/index.php:228 include/class_management.inc:448
+#: include/class_management.inc:584 include/class_management.inc:916
+#: include/password-methods/class_password-methods.inc:250
+#: include/class_listing.inc:477 include/functions.inc:3349
+#: include/functions.inc:3363 include/functions.inc:3393
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441 include/functions.inc:3501
+#: include/class_tabs.inc:56 include/class_plugin.inc:658
+#: include/class_plugin.inc:700 include/class_plugin.inc:743
+#: include/class_plugin.inc:1612 include/utils/class_xml.inc:40
+#: include/utils/class_msgPool.inc:154 include/utils/class_msgPool.inc:166
+#: include/utils/class_msgPool.inc:184 include/utils/class_msgPool.inc:454
+#: include/utils/class_msgPool.inc:475 include/utils/class_msgPool.inc:494
+#: include/class_gosaSupportDaemon.inc:1184
+#: include/class_gosaSupportDaemon.inc:1204
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#: include/class_CopyPasteHandler.inc:375 include/class_msg_dialog.inc:99
+#: plugins/admin/ogroups/class_ogroup.inc:500
+#: plugins/admin/groups/class_group.inc:539
+#: plugins/admin/groups/class_group.inc:545
+#: plugins/admin/groups/class_group.inc:753
+#: plugins/admin/groups/class_group.inc:894
+#: plugins/admin/groups/class_group.inc:899
+#: plugins/admin/groups/class_group.inc:1230
+#: plugins/admin/departments/class_department.inc:250
+#: plugins/admin/acl/class_aclRole.inc:681
+#: plugins/personal/generic/class_user.inc:279
+#: plugins/personal/generic/class_user.inc:382
+#: plugins/personal/generic/class_user.inc:477
+#: plugins/personal/generic/class_user.inc:754
+#: plugins/personal/generic/class_user.inc:1143
+#: plugins/personal/generic/class_user.inc:1150
+#: plugins/personal/generic/class_user.inc:1168
+#: plugins/personal/generic/class_user.inc:1433
+#: plugins/personal/generic/class_user.inc:1709
+#: plugins/personal/generic/main.inc:115
+#: setup/class_setupStep_Migrate.inc:1200 setup/setup_checks.tpl:30
+#: setup/setup_checks.tpl:91
+#, php-format
+msgid "Error"
+msgstr "错误"
+
+#: ihtml/themes/default/msg_dialog.tpl:61
+#: ihtml/themes/default/msg_dialog.tpl:108
+#: plugins/admin/ogroups/class_ogroup.inc:249 setup/setup_ldap.tpl:121
+msgid "Information"
+msgstr "提示信息"
+
+#: ihtml/themes/default/msg_dialog.tpl:76
+#: ihtml/themes/default/msg_dialog.tpl:78
+#: ihtml/themes/default/msg_dialog.tpl:134
+#: ihtml/themes/default/msg_dialog.tpl:137
+#: ihtml/themes/default/msg_dialog.tpl:142 include/utils/class_msgPool.inc:315
+#: setup/class_setupStep_Migrate.inc:267 setup/class_setupStep_Migrate.inc:319
+#: setup/class_setupStep_Migrate.inc:380 setup/class_setupStep_Migrate.inc:453
+#: setup/class_setupStep_Migrate.inc:530 setup/class_setupStep_Migrate.inc:605
+#: setup/class_setupStep_Migrate.inc:658 setup/class_setupStep_Migrate.inc:799
+#: setup/class_setupStep_Migrate.inc:1045
+#: setup/class_setupStep_Migrate.inc:2012
+#: setup/class_setupStep_Migrate.inc:2156
+#: setup/class_setupStep_Migrate.inc:2578
+#: setup/class_setupStep_Migrate.inc:2732
+#: setup/class_setupStep_Migrate.inc:3062 setup/setup_checks.tpl:27
+#: setup/setup_checks.tpl:87
+#, php-format
+msgid "Ok"
+msgstr "好"
+
+#: ihtml/themes/default/password.tpl:6
+#, fuzzy
+msgid "Change your password"
+msgstr "修改口令"
+
+#: ihtml/themes/default/password.tpl:35
+#, fuzzy
+msgid "Success"
+msgstr "访问"
+
+#: ihtml/themes/default/password.tpl:35
+msgid "Your password has been changed successfully."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:41 html/main.php:339
+#: plugins/admin/users/class_userManagement.inc:277
+#: plugins/personal/password/class_password.inc:78
+#: plugins/personal/password/class_password.inc:81
+#: plugins/personal/password/class_password.inc:84
+#: plugins/personal/password/class_password.inc:87
+#: plugins/personal/password/class_password.inc:90
+#: plugins/personal/password/class_password.inc:93
+#: plugins/personal/password/class_password.inc:107
+#: plugins/personal/password/class_password.inc:113
+#, fuzzy
+msgid "Password change"
+msgstr "不允许修改口令"
+
+#: ihtml/themes/default/password.tpl:53
+msgid ""
+"This dialog provides a simple way to change your password. Enter the current "
+"password and the new password (twice) in the fields below and press the "
+"'Change' button."
+msgstr ""
+
+#: ihtml/themes/default/password.tpl:78 ihtml/themes/default/password.tpl:79
+#: html/password.php:217 plugins/personal/password/password.tpl:13
+msgid "Current password"
+msgstr "当前口令"
+
+#: ihtml/themes/default/password.tpl:86 ihtml/themes/default/password.tpl:87
+#, fuzzy
+msgid "New password repeated"
+msgstr "新口令"
+
+#: ihtml/themes/default/password.tpl:90
+#: plugins/personal/password/password.tpl:28
+#, fuzzy
+msgid "Password strength"
+msgstr "口令存储"
+
+#: ihtml/themes/default/password.tpl:101
+#, fuzzy
+msgid "Change"
+msgstr "频道"
+
+#: ihtml/themes/default/islocked.tpl:2
+msgid "Locking conflict detected"
+msgstr "检测到锁定冲突"
+
+#: ihtml/themes/default/islocked.tpl:9
+msgid ""
+"If this lock detection is false, the other person has obviously closed the "
+"webbrowser during the edit operation. You may want to take over the lock by "
+"pressing the 'Edit anyway' button."
+msgstr ""
+"如果锁检查失败,明显的是另外的人在进行编辑操作时关闭了浏览器。您可以通过按“仍"
+"然编辑”按钮来接管这个锁文件。"
+
+#: ihtml/themes/default/islocked.tpl:16
+#, fuzzy
+msgid "Read only"
+msgstr "重新加载列表"
+
+#: ihtml/themes/default/help.tpl:9
+msgid "GOsa help viewer"
+msgstr "GOsa 帮助浏览器"
+
+#: ihtml/themes/default/help.tpl:15
+msgid "Index"
+msgstr "索引"
+
+#: ihtml/themes/default/help.tpl:21 setup/setup_ldap.tpl:13
+msgid "Search"
+msgstr "查找"
+
+#: ihtml/themes/default/logout.tpl:5
+msgid "Your GOsa session has expired!"
+msgstr "您的 GOsa 会话已经过期!"
+
+#: ihtml/themes/default/logout.tpl:7
+msgid ""
+"The last interaction with the GOsa web interface has been some time ago in "
+"the past. For security reasons, the session has been closed. To continue "
+"with administrative tasks, please sign in again."
+msgstr ""
+"上一次操作 GOsa 界面是在很长时间之前。出于安全上的考虑,已经关闭了连接。要继"
+"续执行管理任务,请重新登录。"
+
+#: ihtml/themes/default/logout.tpl:10
+msgid "Sign in again"
+msgstr "重新登录"
+
+#: ihtml/themes/default/conflict.tpl:2
+msgid "Session conflict detected"
+msgstr "检测道会话冲突"
+
+#: ihtml/themes/default/conflict.tpl:6
+#, fuzzy
+msgid ""
+"Probably there's another active instance of your session. Multiple window "
+"operation is technical not possible and heavily depends on the browser "
+"you're using. Usage of different browsers at a time (i.e. IE and Mozilla) is "
+"possible. Pressing the Logout button will close this session."
+msgstr ""
+"可能已经存在另外一个您的活动的会话。多窗口操作在技术上不可能并且和严重依赖您"
+"使用浏览器。使用不同的浏览器(如 IE 和 Mozilla)是可能的。按“退出”按钮关闭此"
+"会话。"
+
+#: ihtml/themes/default/conflict.tpl:10
+msgid ""
+"Ignoring this message will change/destroy the data you're currently editing, "
+"so please close multiple windows and log in again."
+msgstr ""
+"忽略这条信息将会修改/破坏您当前编辑的数据,所以请关闭多个窗口并重新登录。"
+
+#: ihtml/themes/default/conflict.tpl:14
+msgid "Logout"
+msgstr "退出"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+#: ihtml/themes/default/framework.tpl:20 ihtml/themes/default/framework.tpl:24
+#: include/class_pluglist.inc:207
+msgid ""
+"You are currently editing a database entry. Do you want to dismiss the "
+"changes?"
+msgstr "您正在编辑一个数据项。您确认要丢弃当前的修改么?"
+
+#: ihtml/themes/default/framework.tpl:8 ihtml/themes/default/framework.tpl:11
+msgid "Main"
+msgstr "首页"
+
+#: ihtml/themes/default/framework.tpl:16
+msgid "Help"
+msgstr "帮助"
+
+#: ihtml/themes/default/framework.tpl:21 ihtml/themes/default/framework.tpl:25
+msgid "Sign out"
+msgstr "退出"
+
+#: ihtml/themes/default/framework.tpl:29
+msgid "Signed in:"
+msgstr "登录:"
+
+#: ihtml/themes/default/framework.tpl:32
+msgid "GOsa main menu"
+msgstr ""
+
+#: html/password.php:58 html/main.php:147 include/functions.inc:447
+#: include/utils/class_xml.inc:43
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Fatal error"
+msgstr "终端服务器"
+
+#: html/password.php:58 html/index.php:144
+#, fuzzy, php-format
+msgid "GOsa configuration %s/%s is not readable. Aborted."
+msgstr "GOsa 配置 %s/gosa.conf 不可读取。退出。"
+
+#: html/password.php:74 html/index.php:144 html/index.php:216
+#: html/main.php:228
+#: include/password-methods/class_password-methods-ssha.inc:51
+#: include/password-methods/class_password-methods-sha.inc:48
+#: include/class_SnapshotHandler.inc:45 include/class_SnapshotHandler.inc:58
+#: include/class_SnapshotHandler.inc:76 include/functions.inc:800
+#: include/functions.inc:3023 include/functions.inc:3055
+#: include/functions.inc:3068 include/utils/class_timezone.inc:47
+#: include/class_config.inc:155 include/class_config.inc:695
+#: include/class_config.inc:1146 include/class_config.inc:1159
+#: include/class_config.inc:1177 include/class_pluglist.inc:177
+#: include/class_CopyPasteHandler.inc:119
+#: include/class_CopyPasteHandler.inc:128
+#: include/class_CopyPasteHandler.inc:177
+#: include/class_CopyPasteHandler.inc:186
+#: include/class_CopyPasteHandler.inc:194
+#: plugins/admin/groups/class_group.inc:162
+#: plugins/admin/groups/class_group.inc:667
+#, fuzzy
+msgid "Configuration error"
+msgstr "配置文件"
+
+#: html/password.php:74 html/index.php:165 html/setup.php:66
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
+msgstr "目录 '%s' 作为编译目录无法访问!"
+
+#: html/password.php:159 plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "Password method"
+msgstr "口令存储"
+
+#: html/password.php:159
+msgid "Error: Password method not available!"
+msgstr ""
+
+#: html/password.php:193 plugins/admin/users/class_userManagement.inc:246
+#: plugins/personal/generic/main.inc:92
+#: plugins/personal/password/class_password.inc:82
+msgid ""
+"The passwords you've entered as 'New password' and 'Repeated new password' "
+"do not match."
+msgstr "您输入的“新口令”和“重复新口令”不匹配。"
+
+#: html/password.php:204 plugins/personal/password/class_password.inc:88
+msgid "The password used as new and current are too similar."
+msgstr "输入的新口令和当前口令非常相似。"
+
+#: html/password.php:209 plugins/personal/password/class_password.inc:91
+msgid "The password used as new is to short."
+msgstr "输入的新口令太短了。"
+
+#: html/password.php:215 plugins/admin/groups/userSelect/user-list.xml:56
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:65
+#: plugins/admin/users/template.tpl:32 plugins/admin/users/user-list.xml:65
+#: plugins/personal/generic/class_user.inc:1266
+#: plugins/personal/generic/class_user.inc:1284
+#: plugins/personal/generic/class_user.inc:1298
+#: plugins/personal/generic/class_user.inc:1300
+#: plugins/personal/generic/generic.tpl:82
+#: plugins/personal/generic/paste_generic.tpl:15
+msgid "Login"
+msgstr "登录名"
+
+#: html/password.php:224 html/index.php:321
+msgid "Please check the username/password combination."
+msgstr "请检查用户名/口令。"
+
+#: html/password.php:228
+msgid "You have no permissions to change your password."
+msgstr "您无权修改您的口令。"
+
+#: html/password.php:249
+msgid "External password changer reported a problem: "
+msgstr "外部口令更改程序报告错误:"
+
+#: html/password.php:280 html/index.php:414
+msgid "Session will not be encrypted."
+msgstr "会话不会被加密。"
+
+#: html/password.php:280 html/index.php:414
+msgid "Enter SSL session"
+msgstr "进入 SSL 会话"
+
+#: html/index.php:57
+#, fuzzy
+msgid "Session is not encrypted!"
+msgstr "会话不会被加密。"
+
+#: html/index.php:64
+msgid ""
+"The session lifetime configured in your gosa.conf will be overridden by php."
+"ini settings."
+msgstr ""
+
+#: html/index.php:165
+#, fuzzy
+msgid "Smarty error"
+msgstr "PHP 错误"
+
+#: html/index.php:216
+msgid "There is a problem with the authentication setup!"
+msgstr ""
+
+#: html/index.php:224
+msgid "Cannot find a valid user for the current authentication setup!"
+msgstr ""
+
+#: html/index.php:228
+msgid "User information is not unique accross the configured LDAP trees!"
+msgstr ""
+
+#: html/index.php:254 html/index.php:265 html/index.php:278
+#: include/class_SnapshotHandler.inc:124 include/class_SnapshotHandler.inc:281
+#: include/class_SnapshotHandler.inc:329 include/class_SnapshotHandler.inc:333
+#: include/class_SnapshotHandler.inc:348 include/class_SnapshotHandler.inc:383
+#: include/class_SnapshotHandler.inc:438 include/class_SnapshotHandler.inc:503
+#: include/class_SnapshotHandler.inc:518 include/class_acl.inc:1233
+#: include/class_acl.inc:1329 include/functions.inc:476
+#: include/functions.inc:511 include/functions.inc:519
+#: include/functions.inc:564 include/functions.inc:815
+#: include/functions.inc:864 include/functions.inc:921
+#: include/functions.inc:974 include/functions.inc:3002
+#: include/functions.inc:3275 include/class_plugin.inc:1289
+#: include/class_plugin.inc:1338 include/class_plugin.inc:1342
+#: include/class_plugin.inc:1358 include/class_plugin.inc:1398
+#: include/class_plugin.inc:1456 include/class_plugin.inc:1522
+#: include/class_plugin.inc:1537 include/class_ldap.inc:753
+#: include/class_ldap.inc:1219 include/class_config.inc:318
+#: plugins/admin/ogroups/class_ogroup.inc:915
+#: plugins/admin/ogroups/class_ogroup.inc:929
+#: plugins/admin/groups/class_group.inc:697
+#: plugins/admin/groups/class_group.inc:1027
+#: plugins/admin/departments/class_department.inc:218
+#: plugins/admin/departments/class_department.inc:415
+#: plugins/admin/departments/class_department.inc:688
+#: plugins/admin/departments/class_department.inc:719
+#: plugins/admin/acl/class_aclRole.inc:613
+#: plugins/admin/acl/class_aclRole.inc:653
+#: plugins/admin/acl/class_aclRole.inc:667
+#: plugins/personal/generic/class_user.inc:685
+#: plugins/personal/generic/class_user.inc:1065
+#: plugins/personal/posix/class_posixAccount.inc:631
+#: plugins/personal/posix/class_posixAccount.inc:963
+#: setup/class_setupStep_Migrate.inc:1211
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#: setup/class_setupStep_Migrate.inc:2142
+#: setup/class_setupStep_Migrate.inc:2439
+#: setup/class_setupStep_Migrate.inc:2443
+#: setup/class_setupStep_Migrate.inc:2633
+#: setup/class_setupStep_Migrate.inc:2653
+#: setup/class_setupStep_Migrate.inc:2770
+#: setup/class_setupStep_Migrate.inc:3117
+#: setup/class_setupStep_Migrate.inc:3131
+#, fuzzy
+msgid "LDAP error"
+msgstr "LDAP 错误:"
+
+#: html/index.php:265
+msgid "Cannot detect information about the installed LDAP schema!"
+msgstr ""
+
+#: html/index.php:278
+#, fuzzy
+msgid "Your LDAP setup contains old schema definitions:"
+msgstr "您 LDAP 的设置包含老的 schema 定义。请重新执行安装。"
+
+#: html/index.php:299
+msgid "Please specify a valid username!"
+msgstr "请输入一个有效的用户名!"
+
+#: html/index.php:302
+msgid "Please specify your password!"
+msgstr "请输入您的口令!"
+
+#: html/index.php:314
+#, fuzzy
+msgid "Authentication error"
+msgstr "Nagios 鉴权"
+
+#: html/index.php:314
+msgid "Cannot retrieve user information for htaccess authentication!"
+msgstr ""
+
+#: html/index.php:369
+#, fuzzy
+msgid "Account locked. Please contact your system administrator!"
+msgstr "账户锁定。请联系管理员。"
+
+#: html/index.php:420
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr "您的浏览器已经禁用 cookies。请启用 cookies 并在登录前重新加载本页面!"
+
+#: html/setup.php:66
+#, fuzzy
+msgid "Smarty"
+msgstr "总结"
+
+#: html/main.php:148
+#, php-format
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgstr ""
+
+#: html/main.php:167
+#, fuzzy
+msgid "PHP configuration"
+msgstr "PHP 安装检查"
+
+#: html/main.php:168
+msgid ""
+"FATAL: Register globals is on. GOsa will refuse to login unless this is "
+"fixed by an administrator."
+msgstr "致命错误:全局注册已打开。GOsa 将拒绝登录直到被管理修正。"
+
+#: html/main.php:228
+msgid "Running out of memory!"
+msgstr ""
+
+#: html/main.php:285
+msgid "User ACL checks disabled"
+msgstr ""
+
+#: html/main.php:339
+#, fuzzy
+msgid "Your password is about to expire, please change your password!"
+msgstr "您的口令就要过期,请修改您的口令"
+
+#: html/main.php:349
+#, fuzzy
+msgid "Plugin"
+msgstr "于"
+
+#: html/main.php:350
+#, fuzzy, php-format
+msgid "FATAL: Cannot find any plugin definitions for plugin '%s'!"
+msgstr "警告: 没有发现针对插件 '%s' 的任何插件定义!"
+
+#: html/main.php:364
+#, fuzzy
+msgid "Configuration Error"
+msgstr "配置文件"
+
+#: html/main.php:365
+#, php-format
+msgid ""
+"FATAL: not all POST variables have been transfered by PHP - please inform "
+"your administrator!"
+msgstr ""
+
+#: html/helpviewer.php:64
+msgid "Help browser"
+msgstr "帮助浏览器"
+
+#: html/helpviewer.php:118
+msgid "There is no helpfile specified for this class"
+msgstr "此类没有帮助文件"
+
+#: html/helpviewer.php:194 include/functions_helpviewer.inc:97
+msgid "previous"
+msgstr "上一个"
+
+#: html/helpviewer.php:198 include/functions_helpviewer.inc:101
+msgid "next"
+msgstr "下一个"
+
+#: html/helpviewer.php:269
+#, php-format
+msgid "Helpdir '%s' is not accessible, can't read any helpfiles."
+msgstr "帮助目录 '%s' 不能访问,无法读取任何帮助文件。"
+
+#: include/class_management.inc:32 include/class_management.inc:33
+#: plugins/personal/posix/class_posixAccount.inc:237
+msgid "unconfigured"
+msgstr "未配置"
+
+#: include/class_management.inc:145
+#, fuzzy
+msgid "Filter error"
+msgstr "终端服务器"
+
+#: include/class_management.inc:145
+msgid "The filter is incomplete!"
+msgstr ""
+
+#: include/class_management.inc:292 include/class_management.inc:427
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1560
+#: include/class_plugin.inc:1572 include/class_plugin.inc:1587
+#: include/class_plugin.inc:1600
+#: plugins/admin/users/class_userManagement.inc:221
+#: plugins/admin/users/class_userManagement.inc:618
+#, fuzzy
+msgid "Permission"
+msgstr "允许"
+
+#: include/class_management.inc:353
+#: plugins/admin/users/class_userManagement.inc:576
+#: plugins/admin/users/class_userManagement.inc:580
+#: plugins/admin/acl/class_aclManagement.inc:98
+#, fuzzy
+msgid "Permission error"
+msgstr "允许"
+
+#: include/class_management.inc:427 include/class_plugin.inc:1560
+#, fuzzy, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "您无权删除这个用户!"
+
+#: include/class_management.inc:474 include/class_management.inc:511
+#: include/class_management.inc:525 include/class_plugin.inc:1572
+#: include/class_plugin.inc:1587 include/class_plugin.inc:1600
+#, fuzzy, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "您无权删除这个用户!"
+
+#: include/class_management.inc:584
+#, php-format
+msgid ""
+"No tab declaration for '%s' found in your configuration file. Cannot create "
+"plugin instance!"
+msgstr ""
+
+#: include/class_socketClient.inc:60
+msgid "The mcrypt module was not found. Please install php5-mcrypt."
+msgstr ""
+
+#: include/class_socketClient.inc:108
+#, php-format
+msgid "Socket connection to host '%s:%s' failed: %s"
+msgstr ""
+
+#: include/class_socketClient.inc:191
+#, php-format
+msgid "Socket timeout of %s seconds reached."
+msgstr ""
+
+#: include/password-methods/class_password-methods.inc:250
+msgid "Cannot find a suitable password method for the current hash!"
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:46 include/class_SnapshotHandler.inc:77
+#: include/class_config.inc:1147 include/class_config.inc:1178
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable '%s' is not "
+"set."
+msgstr ""
+
+#: include/class_SnapshotHandler.inc:59 include/class_config.inc:1160
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install '%s'."
+msgstr ""
+
+#: include/class_acl.inc:27
+#, fuzzy
+msgid "Access control"
+msgstr "访问选项"
+
+#: include/class_acl.inc:28 plugins/admin/acl/class_aclManagement.inc:26
+#, fuzzy
+msgid "Manage access control lists"
+msgstr "访问选项"
+
+#: include/class_acl.inc:120 include/class_acl.inc:581
+#: include/class_acl.inc:1009
+#, fuzzy, php-format
+msgid "All users"
+msgstr "用户"
+
+#: include/class_acl.inc:214 plugins/admin/acl/class_aclRole.inc:127
+#, fuzzy
+msgid "All categories"
+msgstr "添加分类"
+
+#: include/class_acl.inc:222
+msgid "Reset ACLs"
+msgstr ""
+
+#: include/class_acl.inc:223 plugins/admin/acl/class_aclRole.inc:135
+#, fuzzy
+msgid "One level"
+msgstr "日志级别"
+
+#: include/class_acl.inc:224 include/class_acl.inc:229
+#: plugins/admin/acl/class_aclRole.inc:136
+#, fuzzy
+msgid "Current object"
+msgstr "创建新 FAI 对象"
+
+#: include/class_acl.inc:225 plugins/admin/acl/class_aclRole.inc:137
+#, fuzzy
+msgid "Complete subtree"
+msgstr "忽略子树"
+
+#: include/class_acl.inc:226 plugins/admin/acl/class_aclRole.inc:138
+msgid "Complete subtree (permanent)"
+msgstr ""
+
+#: include/class_acl.inc:227 include/class_acl.inc:230
+msgid "Use ACL defined in role"
+msgstr ""
+
+#: include/class_acl.inc:233 plugins/admin/users/class_userManagement.inc:25
+#: plugins/personal/generic/class_user.inc:1608
+#: setup/class_setupStep_Migrate.inc:1039
+msgid "Users"
+msgstr "用户"
+
+#: include/class_acl.inc:233 plugins/admin/groups/class_group.inc:1189
+#: plugins/admin/groups/class_groupManagement.inc:25
+#: setup/class_setupStep_Migrate.inc:1042
+msgid "Groups"
+msgstr "用户组"
+
+#: include/class_acl.inc:496 include/class_listing.inc:239
+#: include/class_listing.inc:996 include/class_listing.inc:998
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:372
+msgid "Up"
+msgstr "上"
+
+#: include/class_acl.inc:498 include/class_listing.inc:239
+#: include/class_sortableListing.inc:225
+#: plugins/admin/acl/class_aclRole.inc:374
+msgid "Down"
+msgstr "关闭"
+
+#: include/class_acl.inc:503 include/class_acl.inc:551
+#: include/class_sortableListing.inc:192 include/class_sortableListing.inc:194
+#: plugins/admin/ogroups/ogroup-list.xml:91
+#: plugins/admin/groups/group-list.xml:91
+#: plugins/admin/users/user-list.xml:114
+#: plugins/admin/departments/dep-list.xml:172
+#: plugins/admin/acl/class_aclRole.inc:377
+#: plugins/admin/acl/class_aclRole.inc:426 plugins/admin/acl/acl-list.xml:131
+msgid "Edit"
+msgstr "编辑"
+
+#: include/class_acl.inc:503 include/class_acl.inc:507
+#: include/class_acl.inc:1265 include/class_acl.inc:1266
+#: include/class_acl.inc:1271 include/class_tabs.inc:401
+#: plugins/admin/acl/tabs_acl.inc:28 plugins/admin/acl/class_aclRole.inc:378
+#: plugins/admin/acl/class_aclRole.inc:382
+#: plugins/admin/acl/class_aclRole.inc:762
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:507 include/class_acl.inc:555
+#: include/class_sortableListing.inc:197 include/class_sortableListing.inc:199
+#: include/utils/class_msgPool.inc:339 plugins/admin/acl/class_aclRole.inc:381
+#: plugins/admin/acl/class_aclRole.inc:430
+#, php-format
+msgid "Delete"
+msgstr "删除"
+
+#: include/class_acl.inc:543
+msgid "No ACL settings for this category!"
+msgstr ""
+
+#: include/class_acl.inc:545
+#, php-format
+msgid "Contains ACLs for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:551 include/class_acl.inc:555
+#, fuzzy
+msgid "category ACL"
+msgstr "分类"
+
+#: include/class_acl.inc:608
+#, php-format
+msgid "Edit ACL for '%s' - scope is '%s'"
+msgstr ""
+
+#: include/class_acl.inc:618 plugins/admin/acl/class_aclRole.inc:460
+msgid "All objects in current subtree"
+msgstr ""
+
+#: include/class_acl.inc:779 include/class_acl.inc:786
+#, fuzzy
+msgid "Show/hide advanced settings"
+msgstr "高级电话设置"
+
+#: include/class_acl.inc:803
+#, fuzzy
+msgid "Create objects"
+msgstr "创建新 FAI 对象"
+
+#: include/class_acl.inc:804
+#, fuzzy
+msgid "Move objects"
+msgstr "成员对象"
+
+#: include/class_acl.inc:805
+#, fuzzy
+msgid "Remove objects"
+msgstr "成员对象"
+
+#: include/class_acl.inc:807
+#, fuzzy
+msgid "Grant permission to owner"
+msgstr "无法创建文件 '%s'。"
+
+#: include/class_acl.inc:811 include/class_acl.inc:916
+#: include/class_acl.inc:920
+msgid "read"
+msgstr "读"
+
+#: include/class_acl.inc:812 include/class_acl.inc:918
+#: include/class_acl.inc:921
+msgid "write"
+msgstr "写"
+
+#: include/class_acl.inc:816
+#, fuzzy
+msgid "Complete object"
+msgstr "成员对象"
+
+#: include/class_acl.inc:960 include/class_session.inc:76
+#: include/class_session.inc:101 include/class_session.inc:127
+#: include/functions.inc:604 include/functions.inc:790
+#: include/functions.inc:908 include/functions.inc:1306
+#: include/functions.inc:2370 include/functions.inc:2404
+#: include/functions.inc:2424 include/class_ldap.inc:693
+#: include/class_ldap.inc:741 include/class_log.inc:87
+#: include/class_CopyPasteHandler.inc:160
+#: include/class_CopyPasteHandler.inc:274
+#, fuzzy
+msgid "Internal error"
+msgstr "终端服务器"
+
+#: include/class_acl.inc:960
+#, fuzzy, php-format
+msgid "Unkown ACL type '%s'!"
+msgstr "未知 FAIstate %s"
+
+#: include/class_acl.inc:1005
+#, fuzzy, php-format
+msgid "Unknown entry '%s'!"
+msgstr "未知 FAIstate %s"
+
+#: include/class_acl.inc:1069 include/class_acl.inc:1071
+#, fuzzy, php-format
+msgid "Role: %s"
+msgstr "角色"
+
+#: include/class_acl.inc:1071
+#, fuzzy
+msgid "unknown role"
+msgstr "! 未知 id"
+
+#: include/class_acl.inc:1079
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr ""
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "inactive"
+msgstr "活动"
+
+#: include/class_acl.inc:1096
+#, fuzzy
+msgid "No members"
+msgstr "组成员"
+
+#: include/class_acl.inc:1266
+#, fuzzy
+msgid "Access control list"
+msgstr "访问选项"
+
+#: include/class_acl.inc:1271
+#, fuzzy
+msgid "ACL roles"
+msgstr "MAC 地址"
+
+#: include/class_session.inc:76 include/class_session.inc:101
+#: include/class_session.inc:127
+#, fuzzy
+msgid "Requested channel does not exist! Please contact your Administrator."
+msgstr "用户名 / UID 不唯一。请检查您的 LDAP 数据库。"
+
+#: include/class_listing.inc:298 setup/setup_migrate.tpl:93
+#: setup/setup_migrate.tpl:149 setup/setup_migrate.tpl:201
+#: setup/setup_migrate.tpl:368 setup/setup_migrate.tpl:421
+#: setup/setup_migrate.tpl:464 setup/setup_migrate.tpl:507
+#: setup/setup_migrate.tpl:551
+#, fuzzy
+msgid "Select all"
+msgstr "选择"
+
+#: include/class_listing.inc:519
+#, fuzzy
+msgid "created by"
+msgstr "创建"
+
+#: include/class_listing.inc:988
+msgid "Go to root department"
+msgstr "转到根部门"
+
+#: include/class_listing.inc:988 include/class_listing.inc:990
+#: include/class_baseSelector.inc:159
+msgid "Root"
+msgstr "根"
+
+#: include/class_listing.inc:996
+msgid "Go up one department"
+msgstr "向上跳转一个部门"
+
+#: include/class_listing.inc:1004
+msgid "Go to users department"
+msgstr "转到用户部门"
+
+#: include/class_listing.inc:1004 include/class_listing.inc:1006
+msgid "Home"
+msgstr ""
+
+#: include/class_listing.inc:1011
+msgid "Reload list"
+msgstr "重新加载列表"
+
+#: include/class_listing.inc:1011 include/class_baseSelector.inc:206
+msgid "Submit"
+msgstr "提交"
+
+#: include/class_listing.inc:1106 plugins/admin/ogroups/ogroup-list.xml:62
+#: plugins/admin/groups/group-list.xml:62 plugins/admin/users/user-list.xml:78
+#: plugins/admin/departments/dep-list.xml:87 plugins/admin/acl/acl-list.xml:65
+msgid "Actions"
+msgstr "动作"
+
+#: include/class_listing.inc:1376 include/class_listing.inc:1426
+#: include/class_plugin.inc:2084
+#, fuzzy
+msgid "Copy"
+msgstr "复制"
+
+#: include/class_listing.inc:1382 include/class_listing.inc:1416
+#: include/class_plugin.inc:2088
+#, fuzzy
+msgid "Cut"
+msgstr "剪切"
+
+#: include/class_listing.inc:1390 include/class_listing.inc:1392
+#: include/class_plugin.inc:2095 include/class_plugin.inc:2098
+#: include/class_CopyPasteHandler.inc:514
+msgid "Paste"
+msgstr "粘贴"
+
+#: include/class_listing.inc:1416 include/class_plugin.inc:2042
+msgid "Cut this entry"
+msgstr "剪切条目"
+
+#: include/class_listing.inc:1426 include/class_plugin.inc:2050
+msgid "Copy this entry"
+msgstr "拷贝条目"
+
+#: include/class_listing.inc:1458 include/class_listing.inc:1460
+#, fuzzy
+msgid "Restore snapshots"
+msgstr "删除记录"
+
+#: include/class_listing.inc:1474
+#, fuzzy
+msgid "Export list"
+msgstr "导出"
+
+#: include/class_listing.inc:1509 include/class_listing.inc:1510
+#: include/class_SnapShotDialog.inc:135 include/class_plugin.inc:2016
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/class_listing.inc:1519 include/class_plugin.inc:2023
+#, fuzzy
+msgid "Create snapshot"
+msgstr "创建 nagios 账户"
+
+#: include/class_listing.inc:1520 include/class_plugin.inc:2024
+#, fuzzy
+msgid "Create a new snapshot from this object"
+msgstr "创建新 FAI 对象"
+
+#: include/class_sortableListing.inc:194
+msgid "Edit this entry"
+msgstr "编辑这条记录"
+
+#: include/class_sortableListing.inc:199
+msgid "Delete this entry"
+msgstr "删除这个条目"
+
+#: include/functions.inc:127
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:134
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+
+#: include/functions.inc:448
+#, php-format
+msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgstr "致命错误:连接 LDAP 错误。服务器返回 '%s'。"
+
+#: include/functions.inc:519
+#, fuzzy
+msgid "Username / UID is not unique inside the LDAP tree!"
+msgstr "用户名 / UID 不唯一。请检查您的 LDAP 数据库。"
+
+#: include/functions.inc:604
+#, fuzzy
+msgid ""
+"Username / UID is not unique inside the LDAP tree. Please contact your "
+"Administrator."
+msgstr "用户名 / UID 不唯一。请检查您的 LDAP 数据库。"
+
+#: include/functions.inc:790 include/functions.inc:908
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr "无法获得 LDAP 数据库的锁信息。检查 gosa.conf 中的 'config' 条目!"
+
+#: include/functions.inc:800
+#, fuzzy, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP 服务器"
+
+#: include/functions.inc:929
+#, fuzzy
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr "发现要锁定的对象由多个锁。这虽然不可能──清除多个引用。"
+
+#: include/functions.inc:1233
+#, php-format
+msgid "The size limit of %d entries is exceed!"
+msgstr "超过了 %d 个条目的大小限制!"
+
+#: include/functions.inc:1235
+#, php-format
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
+msgstr "设置新的大小限制为 %s 并且如果限制依然超出还显示这条信息。"
+
+#: include/functions.inc:1247 plugins/personal/generic/generic.tpl:221
+msgid "Configure"
+msgstr "配置"
+
+#: include/functions.inc:1252
+msgid "incomplete"
+msgstr "不完整"
+
+#: include/functions.inc:1642
+msgid "Continue anyway"
+msgstr "仍然继续"
+
+#: include/functions.inc:1644
+msgid "Edit anyway"
+msgstr "仍然编辑"
+
+#: include/functions.inc:1646
+#, fuzzy, php-format
+msgid "You're going to edit the LDAP entry/entries %s"
+msgstr "您将要拷贝条目 '%s'。"
+
+#: include/functions.inc:1886
+msgid "Entries per page"
+msgstr "每页条目数"
+
+#: include/functions.inc:1915 include/class_filter.inc:314
+msgid "Apply filter"
+msgstr "应用过滤器"
+
+#: include/functions.inc:2227 include/class_filter.inc:280
+msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+#: include/functions.inc:2273
+#, php-format
+msgid "GOsa development snapshot (Rev %s)"
+msgstr "GOsa 开发版(版本 %s)"
+
+#: include/functions.inc:2370
+#, php-format
+msgid "File '%s' could not be deleted."
+msgstr ""
+
+#: include/functions.inc:2404 include/functions.inc:2424
+#, fuzzy
+msgid "Cannot write to revision file!"
+msgstr "无法创建文件 '%s'。"
+
+#: include/functions.inc:2642 include/functions.inc:2646
+#: include/functions.inc:2652
+#, fuzzy
+msgid "'baseIdHook' is not available. Using default base!"
+msgstr "警告: nextIdHook不可用。使用缺省 base。"
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "LDAP warning"
+msgstr "LDAP 管理"
+
+#: include/functions.inc:2676
+#, fuzzy
+msgid "Cannot get schema information from server. No schema check possible!"
+msgstr "不能从服务器得到 schema 信息。无法对 schema 检查!"
+
+#: include/functions.inc:2702
+msgid "Used to store account specific informations."
+msgstr ""
+
+#: include/functions.inc:2709
+msgid ""
+"Used to lock currently edited entries to avoid multiple changes at the same "
+"time."
+msgstr ""
+
+#: include/functions.inc:2754
+#, php-format
+msgid "Missing required object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2757
+#, php-format
+msgid "Missing optional object class '%s'!"
+msgstr ""
+
+#: include/functions.inc:2762
+#, php-format
+msgid "Version mismatch for required object class '%s' (!=%s)!"
+msgstr ""
+
+#: include/functions.inc:2765
+#, fuzzy, php-format
+msgid "Class(es) available"
+msgstr "文件可用。"
+
+#: include/functions.inc:2787
+msgid ""
+"You have enabled the rfc2307bis option on the 'ldap setup' step, but your "
+"schema    configuration do not support this option."
+msgstr ""
+
+#: include/functions.inc:2788
+msgid ""
+"In order to use rfc2307bis conform groups the objectClass 'posixGroup' must "
+"be      AUXILIARY"
+msgstr ""
+
+#: include/functions.inc:2792
+msgid ""
+"Your schema is configured to support the rfc2307bis group, but you have "
+"disabled this option on the 'ldap setup' step."
+msgstr ""
+
+#: include/functions.inc:2793
+msgid "The objectClass 'posixGroup' must be STRUCTURAL"
+msgstr ""
+
+#: include/functions.inc:2817
+msgid "German"
+msgstr "德语"
+
+#: include/functions.inc:2818
+msgid "French"
+msgstr "法语"
+
+#: include/functions.inc:2819
+msgid "Italian"
+msgstr "意大利语"
+
+#: include/functions.inc:2820
+msgid "Spanish"
+msgstr "西班牙语"
+
+#: include/functions.inc:2821
+msgid "English"
+msgstr "英语"
+
+#: include/functions.inc:2822
+msgid "Dutch"
+msgstr "荷兰语"
+
+#: include/functions.inc:2823
+msgid "Polish"
+msgstr "波兰语"
+
+#: include/functions.inc:2825
+msgid "Chinese"
+msgstr "芯片组"
+
+#: include/functions.inc:2826
+#, fuzzy
+msgid "Vietnamese"
+msgstr "名"
+
+#: include/functions.inc:2827
+msgid "Russian"
+msgstr "俄语"
+
+#: include/functions.inc:3022
+#, php-format
+msgid ""
+"Command '%s', specified as POSTMODIFY for plugin '%s' doesn't seem to exist."
+msgstr "命令 '%s',作为插件 '%s' 的 POSTMODIFY 好像并不存在。"
+
+#: include/functions.inc:3055
+msgid "Cannot generate samba hash!"
+msgstr ""
+
+#: include/functions.inc:3068
+#, php-format
+msgid ""
+"Cannot generate samba hash: running '%s' failed, check the 'sambaHashHook'!"
+msgstr ""
+
+#: include/functions.inc:3349 include/functions.inc:3363
+#: include/functions.inc:3401 include/functions.inc:3413
+#: include/functions.inc:3417 include/functions.inc:3432
+#: include/functions.inc:3441
+#, fuzzy
+msgid "Cannot allocate a free ID:"
+msgstr "太多用户,无法分配一个可用的 ID!"
+
+#: include/functions.inc:3349
+msgid "unknown idAllocation method!"
+msgstr ""
+
+#: include/functions.inc:3363
+#, php-format
+msgid "%sPoolMin >= %sPoolMax!"
+msgstr ""
+
+#: include/functions.inc:3393
+#, fuzzy
+msgid "Cannot create sambaUnixIdPool entry!"
+msgstr "转到根部门"
+
+#: include/functions.inc:3401
+msgid "sambaUnixIdPool is not unique!"
+msgstr ""
+
+#: include/functions.inc:3413 include/functions.inc:3417
+#, fuzzy
+msgid "no ID available!"
+msgstr "文件可用。"
+
+#: include/functions.inc:3441
+msgid "maximum tries exceeded!"
+msgstr ""
+
+#: include/functions.inc:3501
+#, fuzzy
+msgid "Cannot allocate a free ID!"
+msgstr "太多用户,无法分配一个可用的 ID!"
+
+#: include/class_tabs.inc:57
+#, fuzzy, php-format
+msgid ""
+"No plugin definitions found to initialize '%s', please check your "
+"configuration file."
+msgstr "无法连接到指定数据库,请检查您 glpi 设置。"
+
+#: include/class_tabs.inc:268
+#, php-format
+msgid "Delete process has been canceled by plugin '%s': %s"
+msgstr "删除进程被插件 '%s' 取消: %s"
+
+#: include/class_tabs.inc:406
+msgid "References"
+msgstr "参考"
+
+#: include/class_SnapShotDialog.inc:82
+#, fuzzy, php-format
+msgid "You're about to delete the snapshot '%s'."
+msgstr "您将要删除宏 '%s'。"
+
+#: include/class_SnapShotDialog.inc:137
+#, fuzzy
+msgid "Remove snapshot"
+msgstr "删除记录"
+
+#: include/class_SnapShotDialog.inc:139 include/class_SnapShotDialog.inc:159
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/class_SnapShotDialog.inc:171
+#: plugins/generic/references/contents.tpl:11
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:105
+#: plugins/admin/ogroups/class_ogroup.inc:1004
+#: plugins/admin/ogroups/generic.tpl:15
+#: plugins/admin/ogroups/ogroup-list.xml:49
+#: plugins/admin/groups/generic.tpl:24
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:49
+#: plugins/admin/groups/class_group.inc:1193
+#: plugins/admin/departments/dep-list.xml:79
+#: plugins/admin/departments/locality.tpl:19
+#: plugins/admin/departments/generic.tpl:19
+#: plugins/admin/departments/class_domain.inc:59
+#: plugins/admin/departments/class_domain.inc:87
+#: plugins/admin/departments/class_localityGeneric.inc:60
+#: plugins/admin/departments/class_localityGeneric.inc:88
+#: plugins/admin/departments/class_organizationGeneric.inc:91
+#: plugins/admin/departments/class_organizationGeneric.inc:119
+#: plugins/admin/departments/class_countryGeneric.inc:59
+#: plugins/admin/departments/class_countryGeneric.inc:88
+#: plugins/admin/departments/class_dcObject.inc:59
+#: plugins/admin/departments/class_dcObject.inc:87
+#: plugins/admin/departments/domain.tpl:19
+#: plugins/admin/departments/country.tpl:19
+#: plugins/admin/departments/dcObject.tpl:19
+#: plugins/admin/departments/class_department.inc:298
+#: plugins/admin/departments/class_department.inc:605
+#: plugins/admin/departments/organization.tpl:19
+#: plugins/admin/acl/class_aclRole.inc:735 plugins/admin/acl/acl-list.xml:57
+#: plugins/admin/acl/acl_role.tpl:17
+#: plugins/personal/posix/trustSelect/trust-list.xml:64
+#: plugins/personal/posix/groupSelect/group-list.xml:49
+msgid "Description"
+msgstr "描述"
+
+#: include/exporter/class_cvsExporter.inc:48
+msgid "CSV"
+msgstr ""
+
+#: include/exporter/class_PDF.inc:24
+#, fuzzy
+msgid "Page"
+msgstr "呼机"
+
+#: include/exporter/class_pdfExporter.inc:18
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:145
+msgid "PDF"
+msgstr ""
+
+#: include/class_multi_plug.inc:362
+#, fuzzy
+msgid "You are currently editing mutliple entries."
+msgstr "您无权删除这个部门。"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "Password reset"
+msgstr "口令过期截止日"
+
+#: include/class_multi_plug.inc:391
+#, fuzzy
+msgid "The user password was resetted, please set a new password value!"
+msgstr "您的口令已经过期 !! 选择一个新口令"
+
+#: include/class_certificate.inc:73
+#, fuzzy
+msgid "Certificate is empty!"
+msgstr "证书"
+
+#: include/class_certificate.inc:100
+msgid "Cannot load certificate - only PEM/DER is supported!"
+msgstr ""
+
+#: include/class_certificate.inc:115
+msgid "Cannot extract information for non PEM certificates!"
+msgstr ""
+
+#: include/class_certificate.inc:219
+#, fuzzy
+msgid "No valid certificate loaded!"
+msgstr "无有效证书加载"
+
+#: include/php_setup.inc:100
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr "生成这个页面导致 PHP 解析器发生一些错误!"
+
+#: include/php_setup.inc:105
+msgid "Send bug report to the GOsa Team"
+msgstr ""
+
+#: include/php_setup.inc:105
+#, fuzzy
+msgid "Send bugreport"
+msgstr "发送者"
+
+#: include/php_setup.inc:110
+msgid "Toggle information"
+msgstr "切换信息"
+
+#: include/php_setup.inc:120
+msgid "PHP error"
+msgstr "PHP 错误"
+
+#: include/php_setup.inc:139
+msgid "class"
+msgstr "类"
+
+#: include/php_setup.inc:145
+msgid "function"
+msgstr "功能"
+
+#: include/php_setup.inc:150
+msgid "static"
+msgstr "静态"
+
+#: include/php_setup.inc:154
+msgid "method"
+msgstr "方法"
+
+#: include/php_setup.inc:187
+msgid "Trace"
+msgstr "跟踪"
+
+#: include/php_setup.inc:188
+msgid "File"
+msgstr "文件"
+
+#: include/php_setup.inc:188
+msgid "Line"
+msgstr "行"
+
+#: include/php_setup.inc:188
+msgid "Type"
+msgstr "类型"
+
+#: include/php_setup.inc:189
+msgid "Arguments"
+msgstr "参数"
+
+#: include/class_filter.inc:321 include/utils/class_msgPool.inc:24
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+#: plugins/personal/posix/posix_groups.tpl:68
+#, fuzzy
+msgid "Search in subtrees"
+msgstr "在子树中查找"
+
+#: include/class_plugin.inc:509
+msgid ""
+"The object has changed since opened in GOsa. All changes that may be done by "
+"others get lost if you save this entry!"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "Changing ACL dn"
+msgstr ""
+
+#: include/class_plugin.inc:1814
+msgid "from"
+msgstr "从"
+
+#: include/class_plugin.inc:1815 setup/class_setupStep_Migrate.inc:1249
+#: setup/class_setupStep_Migrate.inc:1299
+#: setup/class_setupStep_Migrate.inc:1347
+#, fuzzy
+msgid "to"
+msgstr "停止"
+
+#: include/class_plugin.inc:1998 include/class_plugin.inc:2000
+#, fuzzy
+msgid "Restore"
+msgstr "仓库"
+
+#: include/class_plugin.inc:2042
+msgid "cut"
+msgstr "剪切"
+
+#: include/class_plugin.inc:2050
+msgid "copy"
+msgstr "复制"
+
+#: include/functions_helpviewer.inc:45
+#, php-format
+msgid "XML error in guide.xml: %s at line %d"
+msgstr "XML 出错于 guide.xml: %s ,行 %d"
+
+#: include/functions_helpviewer.inc:88
+msgid "No help available for this plugin."
+msgstr "此插件没有可用帮助信息。"
+
+#: include/functions_helpviewer.inc:388
+#, php-format
+msgid "%s results for your search with the keyword %s"
+msgstr "%s 结果当您查找关键字 %s"
+
+#: include/functions_helpviewer.inc:462
+#, php-format
+msgid "%s%% hit rate in file %s"
+msgstr "%s%% 点击率于文件 %s"
+
+#: include/utils/class_timezone.inc:47
+#, php-format
+msgid ""
+"The timezone setting '%s' in your gosa.conf is not valid. Cannot calculate "
+"correct timezone offset."
+msgstr ""
+
+#: include/utils/class_xml.inc:48
+#, fuzzy
+msgid "in"
+msgstr "首页"
+
+#: include/utils/class_xml.inc:50
+#, fuzzy
+msgid "on line"
+msgstr "继续"
+
+#: include/utils/class_xml.inc:51
+#, fuzzy
+msgid "XML error"
+msgstr "LDAP 错误:"
+
+#: include/utils/class_msgPool.inc:16
+#, fuzzy, php-format
+msgid "Select to list objects of type '%s'."
+msgstr "选择要添加的对象"
+
+#: include/utils/class_msgPool.inc:18
+#, fuzzy, php-format
+msgid "Select to list objects containig '%s'."
+msgstr "选择查看包含用户的组"
+
+#: include/utils/class_msgPool.inc:20
+#, fuzzy, php-format
+msgid "Select to list objects that have '%s' enabled"
+msgstr "选择要添加的对象"
+
+#: include/utils/class_msgPool.inc:22
+#: plugins/admin/ogroups/ogroup_objects.tpl:33
+msgid "Select to search within subtrees"
+msgstr "选择在子树中查询"
+
+#: include/utils/class_msgPool.inc:34
+msgid "This object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:36
+#, php-format
+msgid "This '%s' object will be deleted!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:41
+#, php-format
+msgid "This object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:43
+#, php-format
+msgid "This '%s' object will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:48
+msgid "This object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:50
+#, php-format
+msgid "This '%s' object will be deleted:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:54
+#, php-format
+msgid "These objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:56
+#, php-format
+msgid "These '%s' objects will be deleted: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:64
+#, fuzzy
+msgid "You have no permission to delete this object!"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:68 include/utils/class_msgPool.inc:72
+#, fuzzy
+msgid "You have no permission to delete the object:"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:75
+#, fuzzy
+msgid "You have no permission to delete these objects:"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:82
+#, fuzzy
+msgid "You have no permission to create this object!"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:86 include/utils/class_msgPool.inc:90
+#, fuzzy
+msgid "You have no permission to create the object:"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:93
+#, fuzzy
+msgid "You have no permission to create these objects:"
+msgstr "您无权删除这个部门。"
+
+#: include/utils/class_msgPool.inc:100
+#, fuzzy
+msgid "You have no permission to modify this object!"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:104 include/utils/class_msgPool.inc:108
+#, fuzzy
+msgid "You have no permission to modify the object:"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:111
+#, fuzzy
+msgid "You have no permission to modify these objects:"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:118
+#, fuzzy
+msgid "You have no permission to view this object!"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:122 include/utils/class_msgPool.inc:126
+#, fuzzy
+msgid "You have no permission to view the object:"
+msgstr "您无权在此 'Base' 下创建一个电话"
+
+#: include/utils/class_msgPool.inc:129
+#, fuzzy
+msgid "You have no permission to view these objects:"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:136
+#, fuzzy
+msgid "You have no permission to move this object!"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:140 include/utils/class_msgPool.inc:144
+#, fuzzy
+msgid "You have no permission to move the object:"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:147
+#, fuzzy
+msgid "You have no permission to move these objects:"
+msgstr "您无权删除这个黑名单。"
+
+#: include/utils/class_msgPool.inc:157 include/utils/class_msgPool.inc:169
+#: include/utils/class_msgPool.inc:187
+#, fuzzy
+msgid "Connection information"
+msgstr "个人信息"
+
+#: include/utils/class_msgPool.inc:159
+#, fuzzy, php-format
+msgid "Cannot connect to %s database!"
+msgstr "无法连接到数据库!"
+
+#: include/utils/class_msgPool.inc:171
+#, fuzzy, php-format
+msgid "Cannot select %s database!"
+msgstr "无法选择数据库!"
+
+#: include/utils/class_msgPool.inc:177
+#, php-format
+msgid "No %s server defined!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:189
+#, fuzzy, php-format
+msgid "Cannot query %s database!"
+msgstr "无法选择数据库!"
+
+#: include/utils/class_msgPool.inc:195
+#, fuzzy, php-format
+msgid "The field '%s' contains a reserved keyword!"
+msgstr "“传真”字段包含一个无效电话号码"
+
+#: include/utils/class_msgPool.inc:201
+#, fuzzy, php-format
+msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgstr "命令 '%s',作为插件 '%s' 的 CHECK hook 好像并不存在。"
+
+#: include/utils/class_msgPool.inc:208
+#, fuzzy, php-format
+msgid "'%s' command is invalid!"
+msgstr "指定的 branch 名称无效。"
+
+#: include/utils/class_msgPool.inc:210
+#, php-format
+msgid "'%s' command (%s) for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:212
+#, php-format
+msgid "'%s' command for plugin %s is invalid!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:214
+#, fuzzy, php-format
+msgid "'%s' command (%s) is invalid!"
+msgstr "指定的 branch 名称无效。"
+
+#: include/utils/class_msgPool.inc:222
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command!"
+msgstr "无法选择数据库!"
+
+#: include/utils/class_msgPool.inc:224
+#, php-format
+msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:226
+#, php-format
+msgid "Cannot execute '%s' command for plugin %s!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:228
+#, fuzzy, php-format
+msgid "Cannot execute '%s' command (%s)!"
+msgstr "无法选择数据库!"
+
+#: include/utils/class_msgPool.inc:236
+#, fuzzy, php-format
+msgid "Value for '%s' is too large!"
+msgstr "'UID' 赋值太小。"
+
+#: include/utils/class_msgPool.inc:238
+#, fuzzy, php-format
+msgid "'%s' must be smaller than %s!"
+msgstr "提供的 'shadowMin' 应该小于'shadowMax'。"
+
+#: include/utils/class_msgPool.inc:246
+#, fuzzy, php-format
+msgid "Value for '%s' is too small!"
+msgstr "'UID' 赋值太小。"
+
+#: include/utils/class_msgPool.inc:248
+#, php-format
+msgid "'%s' must be %d or above!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:255
+#, php-format
+msgid "'%s' depends on '%s' - please provide both values!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:261
+#, fuzzy, php-format
+msgid "There is already an entry with this '%s' attribute in the system!"
+msgstr "数据库中已经有同样登录名的用户。"
+
+#: include/utils/class_msgPool.inc:267
+#, fuzzy, php-format
+msgid "The required field '%s' is empty!"
+msgstr "需要的“姓名”字段没有设置"
+
+#: include/utils/class_msgPool.inc:275
+msgid "Example"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:292
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters"
+msgstr "“姓名”字段包含无效字符。"
+
+#: include/utils/class_msgPool.inc:293
+#, php-format
+msgid "'%s' is not allowed:"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:293
+#, fuzzy, php-format
+msgid "'%s' are not allowed!"
+msgstr "不允许修改口令"
+
+#: include/utils/class_msgPool.inc:296
+#, fuzzy, php-format
+msgid "The Field '%s' contains invalid characters!"
+msgstr "“姓名”字段包含无效字符。"
+
+#: include/utils/class_msgPool.inc:303
+#, fuzzy, php-format
+msgid "Missing %s PHP extension!"
+msgstr "删除打印机扩展"
+
+#: include/utils/class_msgPool.inc:333
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:123
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:83
+#: plugins/personal/generic/generic.tpl:250
+#: setup/class_setupStep_Migrate.inc:2868
+#, php-format
+msgid "Add"
+msgstr "添加"
+
+#: include/utils/class_msgPool.inc:333
+#, fuzzy, php-format
+msgid "Add %s"
+msgstr "添加"
+
+#: include/utils/class_msgPool.inc:339
+#, fuzzy, php-format
+msgid "Delete %s"
+msgstr "删除"
+
+#: include/utils/class_msgPool.inc:345
+#, fuzzy, php-format
+msgid "Set %s"
+msgstr "设置"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit..."
+msgstr "编辑"
+
+#: include/utils/class_msgPool.inc:351
+#, fuzzy, php-format
+msgid "Edit %s..."
+msgstr "编辑用户"
+
+#: include/utils/class_msgPool.inc:357
+msgid "Back"
+msgstr "返回"
+
+#: include/utils/class_msgPool.inc:377
+#, fuzzy, php-format
+msgid "This account has no valid %s extensions!"
+msgstr "该账户没有有效的 Gosa 扩展。"
+
+#: include/utils/class_msgPool.inc:383
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
+msgstr "这个账户已经启用 posix 功能。要禁用请点击下面按钮。"
+
+#: include/utils/class_msgPool.inc:386 include/utils/class_msgPool.inc:393
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
+msgstr ""
+"这个账户已经启用 unix 功能。要禁用,您需要先删除 samba / 环境变量账户。"
+
+#: include/utils/class_msgPool.inc:402
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
+msgstr "这个账户已经启用 posix 功能。要启用请点击下面按钮。"
+
+#: include/utils/class_msgPool.inc:405 include/utils/class_msgPool.inc:412
+#, fuzzy, php-format
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
+msgstr ""
+"这个账户已经启用 unix 功能。要禁用,您需要先删除 samba / 环境变量账户。"
+
+#: include/utils/class_msgPool.inc:420
+#, fuzzy, php-format
+msgid "Add %s settings"
+msgstr "应用程序设置"
+
+#: include/utils/class_msgPool.inc:426
+#, fuzzy, php-format
+msgid "Remove %s settings"
+msgstr "Posix 设置"
+
+#: include/utils/class_msgPool.inc:432
+msgid "Click the 'Edit' button below to change informations in this dialog"
+msgstr "点击下面的“编辑”按钮修改该对话框内的信息"
+
+#: include/utils/class_msgPool.inc:438
+msgid "January"
+msgstr "一月"
+
+#: include/utils/class_msgPool.inc:438
+msgid "February"
+msgstr "二月"
+
+#: include/utils/class_msgPool.inc:438
+msgid "March"
+msgstr "三月"
+
+#: include/utils/class_msgPool.inc:438
+msgid "April"
+msgstr "四月"
+
+#: include/utils/class_msgPool.inc:439
+msgid "May"
+msgstr "五月"
+
+#: include/utils/class_msgPool.inc:439
+msgid "June"
+msgstr "六月"
+
+#: include/utils/class_msgPool.inc:439
+msgid "July"
+msgstr "七月"
+
+#: include/utils/class_msgPool.inc:439
+msgid "August"
+msgstr "八月"
+
+#: include/utils/class_msgPool.inc:439
+msgid "September"
+msgstr "九月"
+
+#: include/utils/class_msgPool.inc:440
+msgid "October"
+msgstr "十月"
+
+#: include/utils/class_msgPool.inc:440
+msgid "November"
+msgstr "十一月"
+
+#: include/utils/class_msgPool.inc:440
+msgid "December"
+msgstr "十二月"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Sunday"
+msgstr "姓"
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Monday"
+msgstr "月"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Tuesday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+#, fuzzy
+msgid "Wednesday"
+msgstr "星期三"
+
+#: include/utils/class_msgPool.inc:446
+msgid "Thursday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Friday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:446
+msgid "Saturday"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:453
+#, fuzzy
+msgid "MySQL operation failed!"
+msgstr "Mysql 查询失败。"
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "read operation"
+msgstr "邮件选项"
+
+#: include/utils/class_msgPool.inc:461
+msgid "add operation"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:461
+#, fuzzy
+msgid "modify operation"
+msgstr "个人信息"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "delete operation"
+msgstr "选择查看工作站"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "search operation"
+msgstr "账号过期于"
+
+#: include/utils/class_msgPool.inc:462
+#, fuzzy
+msgid "authentication"
+msgstr "Nagios 鉴权"
+
+#: include/utils/class_msgPool.inc:465
+#, fuzzy, php-format
+msgid "LDAP %s failed!"
+msgstr "Mysql 查询失败。"
+
+#: include/utils/class_msgPool.inc:467
+#, fuzzy
+msgid "LDAP operation failed!"
+msgstr "Mysql 查询失败。"
+
+#: include/utils/class_msgPool.inc:482
+#, fuzzy
+msgid "Upload failed!"
+msgstr "用户登录失败。LDAP 服务器返回 '%s'。"
+
+#: include/utils/class_msgPool.inc:485
+#, fuzzy, php-format
+msgid "Upload failed: %s"
+msgstr "Logging DB 用户"
+
+#: include/utils/class_msgPool.inc:492
+msgid "Communication failure with the infrastructure service!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:494
+#, php-format
+msgid "Communication failure with the infrastructure service: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:501 include/utils/class_msgPool.inc:504
+#, php-format
+msgid "This '%s' is still in use by this object: %s"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:507
+#, fuzzy, php-format
+msgid "This '%s' is still in use."
+msgstr "这个共享不能被删除,因为仍然被 %d 个用户使用:"
+
+#: include/utils/class_msgPool.inc:509
+#, fuzzy, php-format
+msgid "This '%s' is still in use by these objects: %s"
+msgstr "这个共享不能被删除,因为仍然被 %d 个用户使用:"
+
+#: include/utils/class_msgPool.inc:515
+#, php-format
+msgid "File '%s' does not exist!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:521
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for reading!"
+msgstr "无法打开文件 '%s'。"
+
+#: include/utils/class_msgPool.inc:527
+#, fuzzy, php-format
+msgid "Cannot open file '%s' for writing!"
+msgstr "无法打开文件 '%s'。"
+
+#: include/utils/class_msgPool.inc:533
+#, php-format
+msgid ""
+"The value for '%s' is currently unconfigured or invalid, please check your "
+"configuration file!"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:539
+#, fuzzy, php-format
+msgid "Cannot delete file '%s'!"
+msgstr "无法打开文件 '%s'。"
+
+#: include/utils/class_msgPool.inc:545
+#, fuzzy, php-format
+msgid "Cannot create folder '%s'!"
+msgstr "转到根部门"
+
+#: include/utils/class_msgPool.inc:551
+#, fuzzy, php-format
+msgid "Cannot delete folder '%s'!"
+msgstr "无法打开文件 '%s'。"
+
+#: include/utils/class_msgPool.inc:557
+#, fuzzy, php-format
+msgid "Checking for %s support"
+msgstr "检查 iconv 支持"
+
+#: include/utils/class_msgPool.inc:563
+#, php-format
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/utils/class_msgPool.inc:569
+#, php-format
+msgid ""
+"Cannot initialize class '%s'! Maybe there is a plugin missing in your gosa "
+"setup?"
+msgstr ""
+
+#: include/utils/class_msgPool.inc:575
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+msgid "Performance warning"
+msgstr ""
+
+#: include/class_ldap.inc:233 include/class_ldap.inc:266
+#, php-format
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr ""
+
+#: include/class_ldap.inc:693
+#, php-format
+msgid ""
+"Cannot automatically create subtrees with RDN '%s': no object class found!"
+msgstr ""
+
+#: include/class_ldap.inc:741
+#, php-format
+msgid "Cannot automatically create subtrees with RDN '%s': not supported"
+msgstr ""
+
+#: include/class_ldap.inc:828
+#, php-format
+msgid "while operating on '%s' using LDAP server '%s'"
+msgstr "当操作 '%s' 使用 LDAP 服务器 '%s' 时"
+
+#: include/class_ldap.inc:830
+#, php-format
+msgid "while operating on LDAP server %s"
+msgstr "当操作  LDAP 服务器 '%s' 时"
+
+#: include/class_ldap.inc:1052
+#, php-format
+msgid ""
+"This is not a valid DN: '%s'. A block for import should begin with 'dn: ...' "
+"in line %s"
+msgstr "这不是一条有效的 DN: '%s'。导入数据应该以 'dn:...' 开始于行 %s"
+
+#: include/class_ldap.inc:1081
+#, php-format
+msgid "Error while importing dn: '%s', please check your LDIF from line %s on!"
+msgstr "导入 dn: '%s' 时错误,请从行 %s 开始检查您的 LDIF!"
+
+#: include/class_log.inc:87
+#, fuzzy, php-format
+msgid "Logging failed: %s"
+msgstr "Logging DB 用户"
+
+#: include/class_log.inc:102
+#, php-format
+msgid "Invalid option '%s' specified!"
+msgstr ""
+
+#: include/class_log.inc:106
+#, fuzzy
+msgid "Specified objectType is empty or invalid!"
+msgstr "指定的 branch 名称无效。"
+
+#: include/class_gosaSupportDaemon.inc:112
+msgid "GOsa support daemon"
+msgstr ""
+
+#: include/class_gosaSupportDaemon.inc:787
+#, fuzzy
+msgid "Cannot not parse XML!"
+msgstr "太多用户,无法分配一个可用的 ID!"
+
+#: include/class_gosaSupportDaemon.inc:1184
+#, fuzzy, php-format
+msgid "Cannot send abort event for entry %s!"
+msgstr "无法创建文件 '%s'。"
+
+#: include/class_gosaSupportDaemon.inc:1204
+#, fuzzy, php-format
+msgid "Cannot remove entry %s!"
+msgstr "未知 FAIstate %s"
+
+#: include/class_config.inc:152
+#, php-format
+msgid "XML error in gosa.conf: %s at line %d"
+msgstr "XML 出错于 gosa.conf: %s ,行 %d"
+
+#: include/class_config.inc:318
+#, fuzzy
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr "无法绑定 LDAP。请联系系统管理员。"
+
+#: include/class_config.inc:695
+#, fuzzy
+msgid "sambaSID and/or sambaRidBase missing in the configuration!"
+msgstr "您的配置文件缺少 SID 和/或 RIDBASE!"
+
+#: include/class_config.inc:1105
+#, fuzzy
+msgid "Configuration"
+msgstr "配置文件"
+
+#: include/class_config.inc:1105
+msgid ""
+"The configuration file you are using seems to be outdated. Please move the "
+"GOsa configuration file away to run the GOsa setup again."
+msgstr ""
+
+#: include/class_pluglist.inc:58
+msgid "All objects in this category"
+msgstr ""
+
+#: include/class_pluglist.inc:178
+msgid "The configuration format has changed. Please re-run setup!"
+msgstr ""
+
+#: include/class_pluglist.inc:197 include/class_pluglist.inc:198
+#: include/class_pluglist.inc:311
+msgid "Unknown"
+msgstr "未知"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:127
+#: include/class_CopyPasteHandler.inc:159
+#: include/class_CopyPasteHandler.inc:176
+#: include/class_CopyPasteHandler.inc:185
+#: include/class_CopyPasteHandler.inc:193
+#: include/class_CopyPasteHandler.inc:273
+#, fuzzy, php-format
+msgid "Copy and paste failed!"
+msgstr "拷贝和粘贴精灵"
+
+#: include/class_CopyPasteHandler.inc:118
+#: include/class_CopyPasteHandler.inc:193
+#, fuzzy, php-format
+msgid "Cannot set permission for '%s'"
+msgstr "无法创建文件 '%s'。"
+
+#: include/class_CopyPasteHandler.inc:159
+#, php-format
+msgid "'%s' is no vaild LDAP object"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:176
+#, fuzzy, php-format
+msgid "No write permission in '%s'"
+msgstr "无法创建文件 '%s'。"
+
+#: include/class_CopyPasteHandler.inc:394
+#, php-format
+msgid "These objects will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:418
+#, php-format
+msgid "This object will be pasted: %s"
+msgstr ""
+
+#: include/class_CopyPasteHandler.inc:516
+#, fuzzy
+msgid "Cannot paste"
+msgstr "无法粘贴"
+
+#: include/class_msg_dialog.inc:124
+#, fuzzy
+msgid "Please fix the above error and reload the page."
+msgstr "请看一下 GOsa 日志文件。"
+
+#: plugins/generic/references/class_reference.inc:41
+#: plugins/admin/ogroups/class_ogroup.inc:993
+#: plugins/admin/groups/class_group.inc:1183
+#: plugins/admin/users/class_userManagement.inc:744
+#: plugins/admin/departments/class_department.inc:595
+#: plugins/personal/generic/class_user.inc:37
+#: plugins/personal/generic/class_user.inc:1602
+#: plugins/personal/posix/generic.tpl:4 setup/setup_feedback.tpl:55
+msgid "Generic"
+msgstr "通用配置"
+
+#: plugins/generic/references/class_reference.inc:43
+#: plugins/personal/posix/class_posixAccount.inc:37
+msgid "UNIX"
+msgstr "UNIX"
+
+#: plugins/generic/references/class_reference.inc:45
+#: plugins/admin/ogroups/tabs_ogroups.inc:148
+#: plugins/admin/groups/class_groupManagement.inc:164
+#: plugins/admin/users/class_userManagement.inc:751
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:70
+msgid "Mail"
+msgstr "邮件"
+
+#: plugins/generic/references/class_reference.inc:47
+#: plugins/generic/references/class_reference.inc:49
+#: plugins/admin/groups/class_groupManagement.inc:172
+#: plugins/admin/users/class_userManagement.inc:756
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:78
+msgid "Samba"
+msgstr "Samba"
+
+#: plugins/generic/references/class_reference.inc:51
+#: plugins/admin/users/class_userManagement.inc:768
+msgid "FAX"
+msgstr "传真"
+
+#: plugins/generic/references/class_reference.inc:53
+msgid "Proxy"
+msgstr "代理"
+
+#: plugins/generic/references/class_reference.inc:55
+msgid "FTP"
+msgstr "FTP"
+
+#: plugins/generic/references/class_reference.inc:57
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:71
+#: plugins/admin/ogroups/class_ogroupManagement.inc:184
+#: plugins/admin/ogroups/ogroup-list.xml:79
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:23
+#: plugins/admin/groups/group-list.xml:15
+#: plugins/admin/groups/group-list.xml:79
+#: plugins/personal/posix/groupSelect/group-list.xml:15
+msgid "Group"
+msgstr "组"
+
+#: plugins/generic/references/class_reference.inc:59
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:15
+#: plugins/admin/ogroups/class_ogroupManagement.inc:186
+#: plugins/admin/departments/dep-list.xml:55
+#: plugins/admin/departments/dep-list.xml:71
+#: plugins/admin/departments/dep-list.xml:138
+#: plugins/admin/departments/class_departmentManagement.inc:237
+#: plugins/personal/generic/class_user.inc:1629
+#: plugins/personal/generic/generic.tpl:288
+#: plugins/personal/generic/multiple_generic.tpl:159
+msgid "Department"
+msgstr "部门"
+
+#: plugins/generic/references/class_reference.inc:61
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:55
+#: plugins/admin/ogroups/class_ogroupManagement.inc:188
+#: plugins/admin/groups/class_groupManagement.inc:180
+#: plugins/admin/users/class_userManagement.inc:772
+#: plugins/admin/departments/generic.tpl:82
+#: plugins/admin/departments/class_department.inc:309
+#: plugins/admin/departments/organization.tpl:82
+#: plugins/personal/generic/class_user.inc:1309
+#: plugins/personal/generic/class_user.inc:1739
+#: plugins/personal/generic/generic.tpl:339
+#: plugins/personal/generic/generic.tpl:520
+#: plugins/personal/generic/multiple_generic.tpl:217
+#: plugins/personal/generic/multiple_generic.tpl:428
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:86
+msgid "Phone"
+msgstr "电话"
+
+#: plugins/generic/references/class_reference.inc:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:185
+msgid "Application"
+msgstr "应用程序"
+
+#: plugins/generic/references/class_reference.inc:65
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:23
+#: plugins/admin/ogroups/class_ogroupManagement.inc:187
+#: plugins/personal/posix/trustSelect/trust-list.xml:14
+#: setup/setup_config2.tpl:219 setup/setup_config2.tpl:264
+msgid "Server"
+msgstr "服务器"
+
+#: plugins/generic/references/class_reference.inc:67
+msgid "Thin Client"
+msgstr "瘦客户机"
+
+#: plugins/generic/references/class_reference.inc:69
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:31
+#: plugins/admin/ogroups/class_ogroupManagement.inc:189
+#: plugins/personal/posix/trustSelect/trust-list.xml:22
+msgid "Workstation"
+msgstr "工作站"
+
+#: plugins/generic/references/class_reference.inc:71
+#: plugins/admin/ogroups/ogroup-list.xml:15
+msgid "Object group"
+msgstr "对象组"
+
+#: plugins/generic/references/class_reference.inc:73
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:47
+#: plugins/admin/ogroups/class_ogroupManagement.inc:192
+msgid "Printer"
+msgstr "打印机"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Object name"
+msgstr "对象名称"
+
+#: plugins/generic/references/contents.tpl:11
+msgid "Contents"
+msgstr "内容"
+
+#: plugins/generic/references/contents.tpl:18
+msgid "This object has no relationship to other objects."
+msgstr "这个对象和其他对象没有关系。"
+
+#: plugins/generic/welcome/main.inc:26
+#, php-format
+msgid "Welcome %s!"
+msgstr "欢迎 %s!"
+
+#: plugins/generic/welcome/welcome.tpl:4
+msgid ""
+"This is the GOsa main menu. You can select your tasks from the menu on the "
+"left, or by choosing one of the pictograms below. All changes apply directly "
+"to your companies LDAP server."
+msgstr ""
+"这是 Gosa 主菜单。您可以从左侧的菜单中选择,或者点击下面的图标。所有改变都将"
+"直接修改您公司的 LDAP 服务器。"
+
+#: plugins/generic/welcome/welcome.tpl:8
+msgid ""
+"Use 'Sign out' on the upper left to close the connection and 'Main' to get "
+"back to the pictogram view."
+msgstr "选择上方左侧的“退出”按钮断开链接,选择“首页”回到图标程序界面。"
+
+#: plugins/generic/welcome/welcome.tpl:15
+msgid "The GOsa team"
+msgstr "GOsa 团队"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:11
+#: plugins/admin/groups/userSelect/user-list.xml:10
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:11
+#: plugins/personal/posix/trustSelect/trust-list.xml:10
+#: plugins/personal/posix/groupSelect/group-list.xml:11
+#, fuzzy
+msgid "Please select the desired entries"
+msgstr "请选择一个打印机或者取消。"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:39
+#: plugins/admin/ogroups/class_ogroupManagement.inc:191
+#: plugins/personal/posix/trustSelect/trust-list.xml:30
+msgid "Terminal"
+msgstr "终端"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:63
+#: plugins/admin/ogroups/class_ogroupManagement.inc:183
+#: plugins/admin/groups/userSelect/user-list.xml:14
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:15
+#: plugins/admin/users/user-list.xml:23 plugins/admin/users/user-list.xml:95
+#: setup/setup_config2.tpl:228 setup/setup_config2.tpl:273
+msgid "User"
+msgstr "用户"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.xml:97
+#: plugins/admin/ogroups/class_ogroup.inc:799
+#: plugins/admin/ogroups/class_ogroup.inc:814
+#: plugins/admin/ogroups/class_ogroup.inc:1002
+#: plugins/admin/ogroups/ogroup-list.xml:41
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml:49
+#: plugins/admin/groups/group-list.xml:41
+#: plugins/admin/groups/class_group.inc:1054
+#: plugins/admin/groups/class_group.inc:1065
+#: plugins/admin/groups/class_group.inc:1067
+#: plugins/admin/groups/class_group.inc:1084
+#: plugins/admin/groups/class_group.inc:1098
+#: plugins/admin/groups/class_group.inc:1105
+#: plugins/admin/groups/class_group.inc:1192
+#: plugins/admin/users/class_userManagement.inc:412
+#: plugins/admin/users/class_userManagement.inc:459
+#: plugins/admin/departments/class_domain.inc:43
+#: plugins/admin/departments/class_domain.inc:45
+#: plugins/admin/departments/class_domain.inc:50
+#: plugins/admin/departments/class_domain.inc:52
+#: plugins/admin/departments/class_domain.inc:54
+#: plugins/admin/departments/class_domain.inc:86
+#: plugins/admin/departments/class_localityGeneric.inc:44
+#: plugins/admin/departments/class_localityGeneric.inc:46
+#: plugins/admin/departments/class_localityGeneric.inc:51
+#: plugins/admin/departments/class_localityGeneric.inc:53
+#: plugins/admin/departments/class_localityGeneric.inc:55
+#: plugins/admin/departments/class_organizationGeneric.inc:75
+#: plugins/admin/departments/class_organizationGeneric.inc:77
+#: plugins/admin/departments/class_organizationGeneric.inc:82
+#: plugins/admin/departments/class_organizationGeneric.inc:84
+#: plugins/admin/departments/class_organizationGeneric.inc:86
+#: plugins/admin/departments/class_countryGeneric.inc:43
+#: plugins/admin/departments/class_countryGeneric.inc:45
+#: plugins/admin/departments/class_countryGeneric.inc:50
+#: plugins/admin/departments/class_countryGeneric.inc:52
+#: plugins/admin/departments/class_countryGeneric.inc:54
+#: plugins/admin/departments/class_dcObject.inc:43
+#: plugins/admin/departments/class_dcObject.inc:45
+#: plugins/admin/departments/class_dcObject.inc:50
+#: plugins/admin/departments/class_dcObject.inc:52
+#: plugins/admin/departments/class_dcObject.inc:54
+#: plugins/admin/departments/class_dcObject.inc:86
+#: plugins/admin/departments/class_department.inc:288
+#: plugins/admin/departments/class_department.inc:290
+#: plugins/admin/departments/class_department.inc:295
+#: plugins/admin/departments/class_department.inc:302
+#: plugins/admin/departments/class_department.inc:306
+#: plugins/admin/acl/class_aclRole.inc:733
+#: plugins/admin/acl/class_aclRole.inc:745
+#: plugins/admin/acl/class_aclRole.inc:755 plugins/admin/acl/acl-list.xml:49
+#: plugins/admin/acl/paste_role.tpl:4 plugins/admin/acl/acl_role.tpl:7
+#: plugins/personal/generic/class_user.inc:1271
+#: plugins/personal/generic/class_user.inc:1289
+#: plugins/personal/generic/class_user.inc:1331
+#: plugins/personal/generic/class_user.inc:1754
+#: plugins/personal/posix/trustSelect/trust-list.xml:56
+#: plugins/personal/posix/groupSelect/group-list.xml:41
+#: setup/setup_migrate.tpl:283 setup/setup_feedback.tpl:31
+msgid "Name"
+msgstr "名称"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-list.tpl:13
+#: plugins/admin/ogroups/ogroup-list.tpl:13
+#: plugins/admin/ogroups/class_ogroup.inc:1003
+#: plugins/admin/ogroups/generic.tpl:26
+#: plugins/admin/groups/userSelect/user-list.tpl:13
+#: plugins/admin/groups/generic.tpl:39
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl:13
+#: plugins/admin/groups/group-list.tpl:13
+#: plugins/admin/groups/class_group.inc:1194
+#: plugins/admin/users/user-list.tpl:13
+#: plugins/admin/departments/locality.tpl:28
+#: plugins/admin/departments/generic.tpl:39
+#: plugins/admin/departments/class_domain.inc:88
+#: plugins/admin/departments/class_localityGeneric.inc:89
+#: plugins/admin/departments/class_organizationGeneric.inc:121
+#: plugins/admin/departments/class_countryGeneric.inc:89
+#: plugins/admin/departments/class_dcObject.inc:88
+#: plugins/admin/departments/domain.tpl:28
+#: plugins/admin/departments/country.tpl:28
+#: plugins/admin/departments/dcObject.tpl:28
+#: plugins/admin/departments/class_department.inc:607
+#: plugins/admin/departments/dep-list.tpl:13
+#: plugins/admin/departments/organization.tpl:39
+#: plugins/admin/acl/acl-list.tpl:13 plugins/admin/acl/class_aclRole.inc:734
+#: plugins/admin/acl/acl_role.tpl:27
+#: plugins/personal/generic/class_user.inc:1622
+#: plugins/personal/generic/generic.tpl:164
+#: plugins/personal/generic/multiple_generic.tpl:47
+#: plugins/personal/posix/trustSelect/trust-list.tpl:13
+#: plugins/personal/posix/groupSelect/group-list.tpl:13
+#: setup/setup_ldap.tpl:55
+msgid "Base"
+msgstr "位置"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:3
+#: plugins/admin/ogroups/ogroup-filter.tpl:3
+#: plugins/admin/groups/userSelect/user-filter.tpl:3
+#: plugins/admin/groups/group-filter.tpl:3
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:3
+#: plugins/admin/users/user-filter.tpl:3
+#: plugins/admin/departments/dep-filter.tpl:3
+#: plugins/admin/acl/acl-filter.tpl:3
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:3
+#: plugins/personal/posix/groupSelect/group-filter.tpl:3
+#, fuzzy
+msgid "Filter"
+msgstr "过滤器"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:11
+#, fuzzy
+msgid "Show department"
+msgstr "显示部门"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:12
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:11
+#, fuzzy
+msgid "Show users"
+msgstr "显示服务器"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:13
+#: plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl:12
+#, fuzzy
+msgid "Show groups"
+msgstr "显示 samba 用户组"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:15
+#, fuzzy
+msgid "Show server"
+msgstr "显示服务器"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:16
+#, fuzzy
+msgid "Show workstation"
+msgstr "显示工作站"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:17
+#, fuzzy
+msgid "Show terminal"
+msgstr "显示终端"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:19
+#, fuzzy
+msgid "Show printer"
+msgstr "显示打印机"
+
+#: plugins/admin/ogroups/objectSelect/selectObject-filter.tpl:20
+#, fuzzy
+msgid "Show phone"
+msgstr "显示软件包"
+
+#: plugins/admin/ogroups/remove.tpl:6
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"GOsa to get your data back."
+msgstr "请再次检查您是否要这么做,因为 GOsa 没有办法将您的数据找回。"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:25
+#: plugins/admin/ogroups/class_ogroup.inc:999
+msgid "Object groups"
+msgstr "对象组"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:26
+#, fuzzy
+msgid "Manage object groups"
+msgstr "对象组名称"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:115
+#: plugins/admin/groups/class_groupManagement.inc:98
+#: plugins/admin/users/class_userManagement.inc:189
+#, fuzzy
+msgid "Infrastructure error"
+msgstr "PHP 错误"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:182
+#, fuzzy
+msgid "Templates"
+msgstr "模板"
+
+#: plugins/admin/ogroups/class_ogroupManagement.inc:190
+#, fuzzy
+msgid "Windows Install"
+msgstr "Windows 工作站"
+
+#: plugins/admin/ogroups/class_ogroup.inc:249
+msgid "You cannot combine terminals and workstations in one object group!"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:385
+#: plugins/admin/users/class_userManagement.inc:337
+#: plugins/admin/users/class_userManagement.inc:371
+#: plugins/admin/users/class_userManagement.inc:402
+msgid "none"
+msgstr "无"
+
+#: plugins/admin/ogroups/class_ogroup.inc:387
+msgid "too many different objects!"
+msgstr "太多不同对象!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:389
+msgid "users"
+msgstr "用户"
+
+#: plugins/admin/ogroups/class_ogroup.inc:390
+msgid "groups"
+msgstr "组"
+
+#: plugins/admin/ogroups/class_ogroup.inc:391
+msgid "applications"
+msgstr "应用程序"
+
+#: plugins/admin/ogroups/class_ogroup.inc:392
+msgid "departments"
+msgstr "部门"
+
+#: plugins/admin/ogroups/class_ogroup.inc:393
+msgid "servers"
+msgstr "服务器"
+
+#: plugins/admin/ogroups/class_ogroup.inc:394
+msgid "workstations"
+msgstr "工作站"
+
+#: plugins/admin/ogroups/class_ogroup.inc:395
+#, fuzzy
+msgid "winstations"
+msgstr "Windows 工作站"
+
+#: plugins/admin/ogroups/class_ogroup.inc:396
+msgid "terminals"
+msgstr "终端"
+
+#: plugins/admin/ogroups/class_ogroup.inc:397
+msgid "phones"
+msgstr "电话"
+
+#: plugins/admin/ogroups/class_ogroup.inc:398
+msgid "printers"
+msgstr "打印机"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+#: setup/setup_config2.tpl:143
+msgid "disabled"
+msgstr "禁用"
+
+#: plugins/admin/ogroups/class_ogroup.inc:443
+#: plugins/admin/groups/class_group.inc:433
+#: plugins/personal/posix/class_posixAccount.inc:573
+msgid "full access"
+msgstr "完全访问权限"
+
+#: plugins/admin/ogroups/class_ogroup.inc:444
+#: plugins/admin/groups/class_group.inc:434
+#: plugins/personal/posix/class_posixAccount.inc:574
+msgid "allow access to these hosts"
+msgstr "允许访问这些主机"
+
+#: plugins/admin/ogroups/class_ogroup.inc:632
+msgid "Non existing dn:"
+msgstr "不存在的 dn:"
+
+#: plugins/admin/ogroups/class_ogroup.inc:789
+#, php-format
+msgid ""
+"These systems are already configured by other object groups and cannot be "
+"added:"
+msgstr ""
+
+#: plugins/admin/ogroups/class_ogroup.inc:819
+#, fuzzy
+msgid "You can combine two different object types at maximum, only!"
+msgstr "您最多只能组合两个不同的对象类!"
+
+#: plugins/admin/ogroups/class_ogroup.inc:994
+#, fuzzy
+msgid "Object group generic"
+msgstr "对象组"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1005
+#, fuzzy
+msgid "Sytem trust"
+msgstr "信赖的系统"
+
+#: plugins/admin/ogroups/class_ogroup.inc:1006
+#, fuzzy
+msgid "Member"
+msgstr "成员"
+
+#: plugins/admin/ogroups/generic.tpl:7
+#: plugins/admin/ogroups/paste_generic.tpl:4
+#: plugins/admin/groups/generic.tpl:11
+#: plugins/admin/groups/paste_generic.tpl:5
+msgid "Group name"
+msgstr "组名"
+
+#: plugins/admin/ogroups/generic.tpl:10
+msgid "Name of the group"
+msgstr "组名称"
+
+#: plugins/admin/ogroups/generic.tpl:18 plugins/admin/groups/generic.tpl:28
+msgid "Descriptive text for this group"
+msgstr "组的描述文字"
+
+#: plugins/admin/ogroups/generic.tpl:36
+#: plugins/admin/groups/class_group.inc:1200
+#: plugins/personal/posix/generic.tpl:139
+msgid "System trust"
+msgstr "信赖的系统"
+
+#: plugins/admin/ogroups/generic.tpl:37 plugins/admin/groups/generic.tpl:160
+#: plugins/admin/groups/generic.tpl:194 plugins/personal/posix/generic.tpl:141
+#: plugins/personal/posix/generic.tpl:169
+msgid "Trust mode"
+msgstr "信赖模式"
+
+#: plugins/admin/ogroups/generic.tpl:65
+msgid "Member objects"
+msgstr "成员对象"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:133
+msgid "Phone queue"
+msgstr "电话队列"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:160
+#, fuzzy
+msgid "Systems"
+msgstr "系统"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:171
+#: plugins/admin/ogroups/tabs_ogroups.inc:194
+msgid "Startup"
+msgstr "启动"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:182
+#: plugins/admin/ogroups/tabs_ogroups.inc:203
+msgid "Devices"
+msgstr "设备"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:213
+msgid "FAI summary"
+msgstr "自动化安装说明"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:222
+#: plugins/admin/groups/class_groupManagement.inc:196
+#: plugins/admin/users/class_userManagement.inc:764
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:102
+msgid "Environment"
+msgstr "环境设置"
+
+#: plugins/admin/ogroups/tabs_ogroups.inc:241
+msgid "Applications"
+msgstr "应用程序"
+
+#: plugins/admin/ogroups/paste_generic.tpl:7
+msgid "Please enter the new object group name"
+msgstr "请输入新对象组名称"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:11
+#, fuzzy
+msgid "user groups"
+msgstr "组"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:12
+#, fuzzy
+msgid "nested groups"
+msgstr "对象组"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:13
+#, fuzzy
+msgid "application groups"
+msgstr "显示应用程序组"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:14
+#, fuzzy
+msgid "department groups"
+msgstr "部门"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:15
+#, fuzzy
+msgid "server groups"
+msgstr "服务器"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:16
+#, fuzzy
+msgid "workstation groups"
+msgstr "工作站"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:17
+#, fuzzy
+msgid "windows workstation groups"
+msgstr "显示工作站"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:18
+#, fuzzy
+msgid "terminal groups"
+msgstr "显示邮件组"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:19
+#, fuzzy
+msgid "printer groups"
+msgstr "主要用户组"
+
+#: plugins/admin/ogroups/ogroup-filter.tpl:20
+#, fuzzy
+msgid "phone groups"
+msgstr "显示组"
+
+#: plugins/admin/ogroups/ogroup-list.xml:11
+msgid "List of object groups"
+msgstr "对象组列表"
+
+#: plugins/admin/ogroups/ogroup-list.xml:57
+#: plugins/admin/groups/group-list.xml:57 plugins/admin/users/user-list.xml:73
+#: plugins/admin/departments/locality.tpl:8
+#: plugins/admin/departments/generic.tpl:7
+#: plugins/admin/departments/domain.tpl:8
+#: plugins/admin/departments/country.tpl:8
+#: plugins/admin/departments/dcObject.tpl:8
+#: plugins/admin/departments/organization.tpl:7
+msgid "Properties"
+msgstr "属性"
+
+#: plugins/admin/ogroups/ogroup-list.xml:73
+#: plugins/admin/groups/group-list.xml:73 plugins/admin/users/user-list.xml:89
+#: plugins/admin/departments/dep-list.xml:98 plugins/admin/acl/acl-list.xml:76
+#: setup/class_setupStep_Migrate.inc:1035
+#: setup/class_setupStep_Migrate.inc:1051
+msgid "Create"
+msgstr "创建"
+
+#: plugins/admin/ogroups/ogroup-list.xml:98
+#: plugins/admin/groups/group-list.xml:98
+#: plugins/admin/users/user-list.xml:121
+#: plugins/admin/departments/dep-list.xml:160
+#: plugins/admin/departments/dep-list.xml:181
+#: plugins/admin/acl/acl-list.xml:95 plugins/admin/acl/acl-list.xml:144
+#: plugins/personal/generic/generic_certs.tpl:21
+#: plugins/personal/generic/generic_certs.tpl:45
+#: plugins/personal/generic/generic_certs.tpl:69
+#: setup/class_setupStep_Migrate.inc:2869
+msgid "Remove"
+msgstr "删除"
+
+#: plugins/admin/ogroups/ogroup-list.xml:106
+#: plugins/admin/groups/group-list.xml:106
+#: plugins/admin/users/user-list.xml:156
+#, fuzzy
+msgid "Send message"
+msgstr "挂起邮件"
+
+#: plugins/admin/ogroups/ogroup-list.xml:142
+#, fuzzy
+msgid "Edit object group"
+msgstr "对象组"
+
+#: plugins/admin/ogroups/ogroup-list.xml:155
+#, fuzzy
+msgid "Remove object group"
+msgstr "服务器"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:6
+msgid "Select objects to add"
+msgstr "选择要添加的对象"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:20
+#: plugins/admin/groups/trust_machines.tpl:19
+#: plugins/personal/posix/posix_groups.tpl:21
+msgid "Filters"
+msgstr "过滤器"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:36
+msgid "Display objects of department"
+msgstr "选择查看部门对象"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:37
+#: plugins/admin/ogroups/trust_machines.tpl:27
+#: plugins/admin/groups/trust_machines.tpl:26
+#: plugins/personal/posix/posix_groups.tpl:35
+#: plugins/personal/posix/trust_machines.tpl:27
+msgid "Choose the department the search will be based on"
+msgstr "选择一个部门来做查询"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:40
+msgid "Display objects matching"
+msgstr "显示匹配对象"
+
+#: plugins/admin/ogroups/ogroup_objects.tpl:41
+msgid "Regular expression for matching object names"
+msgstr "匹配对象名的正则表达式"
+
+#: plugins/admin/ogroups/trust_machines.tpl:6
+#: plugins/admin/groups/trust_machines.tpl:6
+#: plugins/personal/posix/trust_machines.tpl:6
+msgid "Select systems to add"
+msgstr "选择要添加的系统"
+
+#: plugins/admin/ogroups/trust_machines.tpl:26
+#: plugins/admin/groups/trust_machines.tpl:25
+#: plugins/personal/posix/trust_machines.tpl:26
+msgid "Display systems of department"
+msgstr "显示部门的系统"
+
+#: plugins/admin/ogroups/trust_machines.tpl:30
+#: plugins/admin/groups/trust_machines.tpl:29
+#: plugins/personal/posix/trust_machines.tpl:30
+msgid "Display systems matching"
+msgstr "显示匹配的系统"
+
+#: plugins/admin/ogroups/trust_machines.tpl:31
+#: plugins/admin/groups/trust_machines.tpl:30
+#: plugins/personal/posix/trust_machines.tpl:31
+msgid "Regular expression for matching addresses"
+msgstr "匹配地址的正则表达式"
+
+#: plugins/admin/groups/remove.tpl:6
+msgid ""
+"This may be a primary user group. Please double check if you really want to "
+"do this since there is no way for GOsa to get your data back."
+msgstr ""
+"这可能是一个主要的用户组。请再次检查您是否要这么做,因为 GOsa 没有办法将您的"
+"数据找回。"
+
+#: plugins/admin/groups/userSelect/user-list.xml:40
+#: plugins/admin/users/class_userManagement.inc:415
+#: plugins/admin/users/user-list.xml:57
+#: plugins/personal/generic/class_user.inc:1281
+#: plugins/personal/generic/class_user.inc:1328
+#: plugins/personal/generic/class_user.inc:1614
+#: plugins/personal/generic/class_user.inc:1751
+msgid "Given name"
+msgstr "名"
+
+#: plugins/admin/groups/userSelect/user-list.xml:48
+#: plugins/admin/users/user-list.xml:49
+#: plugins/personal/generic/class_user.inc:1613
+msgid "Surname"
+msgstr "姓"
+
+#: plugins/admin/groups/generic.tpl:14 plugins/personal/generic/generic.tpl:52
+#: plugins/personal/generic/generic.tpl:73
+#: plugins/personal/generic/generic.tpl:89
+msgid "Multiple edit"
+msgstr ""
+
+#: plugins/admin/groups/generic.tpl:17
+#: plugins/admin/groups/paste_generic.tpl:8
+msgid "Posix name of the group"
+msgstr "组的 posix 名称"
+
+#: plugins/admin/groups/generic.tpl:59
+#: plugins/admin/groups/paste_generic.tpl:13
+msgid "Normally IDs are autogenerated, select to specify manually"
+msgstr "一般 ID 是自动创建的,要手工设置请选择"
+
+#: plugins/admin/groups/generic.tpl:62
+#: plugins/admin/groups/paste_generic.tpl:15
+msgid "Force GID"
+msgstr "强制 GID"
+
+#: plugins/admin/groups/generic.tpl:65
+#: plugins/admin/groups/paste_generic.tpl:18
+msgid "Forced ID number"
+msgstr "强制 ID 编号"
+
+#: plugins/admin/groups/generic.tpl:75 plugins/admin/groups/generic.tpl:102
+msgid "Select to create a samba conform group"
+msgstr "选择创建一个 samba 确认组"
+
+#: plugins/admin/groups/generic.tpl:87 plugins/admin/groups/generic.tpl:110
+msgid "in domain"
+msgstr "于域"
+
+#: plugins/admin/groups/generic.tpl:131
+msgid "Members are in a phone pickup group"
+msgstr "成员属于电话应答组"
+
+#: plugins/admin/groups/generic.tpl:146
+msgid "Members are in a nagios group"
+msgstr "成员属于 nagios 组"
+
+#: plugins/admin/groups/generic.tpl:236
+msgid "Group members"
+msgstr "组成员"
+
+#: plugins/admin/groups/generic.tpl:243
+#, fuzzy
+msgid "In all groups"
+msgstr "显示邮件组"
+
+#: plugins/admin/groups/generic.tpl:246
+#, fuzzy
+msgid "Not in all groups"
+msgstr "显示邮件组"
+
+#: plugins/admin/groups/group-filter.tpl:11
+#: plugins/personal/posix/groupSelect/group-filter.tpl:11
+msgid "Show primary groups"
+msgstr "显示主要组"
+
+#: plugins/admin/groups/group-filter.tpl:12
+#: plugins/personal/posix/groupSelect/group-filter.tpl:12
+msgid "Show samba groups"
+msgstr "显示 samba 用户组"
+
+#: plugins/admin/groups/group-filter.tpl:13
+#: plugins/personal/posix/groupSelect/group-filter.tpl:13
+#, fuzzy
+msgid "Show mail groups"
+msgstr "显示 samba 用户组"
+
+#: plugins/admin/groups/paste_generic.tpl:1
+msgid "Group settings"
+msgstr "组设置"
+
+#: plugins/admin/groups/group-list.xml:11
+msgid "List of groups"
+msgstr "组列表"
+
+#: plugins/admin/groups/group-list.xml:138
+#, fuzzy
+msgid "Edit group"
+msgstr "主要用户组"
+
+#: plugins/admin/groups/group-list.xml:151
+#, fuzzy
+msgid "Remove group"
+msgstr "服务器"
+
+#: plugins/admin/groups/class_group.inc:162
+#, fuzzy
+msgid "Cannot find group SID in your configuration!"
+msgstr "无法在 LDAP 或您的配置文件中查找这个组 SID。"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Samba group"
+msgstr "Samba 组"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain admins"
+msgstr "域管理员"
+
+#: plugins/admin/groups/class_group.inc:400
+msgid "Domain users"
+msgstr "域用户"
+
+#: plugins/admin/groups/class_group.inc:401
+msgid "Domain guests"
+msgstr "域名 guests"
+
+#: plugins/admin/groups/class_group.inc:406
+#, php-format
+msgid "Special group (%d)"
+msgstr "特殊组 (%d)"
+
+#: plugins/admin/groups/class_group.inc:540
+#, php-format
+msgid "Adding UID '%s' to group '%s' failed: cannot find user object!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:546
+#, php-format
+msgid "Add UID '%s' to group '%s' failed: UID is used more than once!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:624
+#, fuzzy
+msgid "! unknown UID"
+msgstr "! 未知 id"
+
+#: plugins/admin/groups/class_group.inc:667
+#, php-format
+msgid "Search returned too many results. Not displaying more than %s entries!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:894
+#, fuzzy, php-format
+msgid "Cannot find any SID for '%s'!"
+msgstr "无法创建文件 '%s'。"
+
+#: plugins/admin/groups/class_group.inc:899
+#, fuzzy, php-format
+msgid "Cannot find any RIDBASE for '%s'!"
+msgstr "无法创建文件 '%s'。"
+
+#: plugins/admin/groups/class_group.inc:1003
+#, php-format
+msgid "The gidNumber '%s' is already in use by %s!"
+msgstr ""
+
+#: plugins/admin/groups/class_group.inc:1114
+#: plugins/admin/groups/class_group.inc:1117
+#: plugins/admin/groups/class_group.inc:1196
+#: plugins/personal/posix/class_posixAccount.inc:1045
+#: plugins/personal/posix/class_posixAccount.inc:1048
+#: plugins/personal/posix/generic.tpl:74
+#: plugins/personal/posix/paste_generic.tpl:45
+msgid "GID"
+msgstr "GID"
+
+#: plugins/admin/groups/class_group.inc:1184
+#, fuzzy
+msgid "Generic group settings"
+msgstr "组设置"
+
+#: plugins/admin/groups/class_group.inc:1198
+#, fuzzy
+msgid "Samba group type"
+msgstr "Samba 组"
+
+#: plugins/admin/groups/class_group.inc:1199
+#, fuzzy
+msgid "Samba domain name"
+msgstr "Samba 主目录"
+
+#: plugins/admin/groups/class_group.inc:1201
+#, fuzzy
+msgid "Phone pickup group"
+msgstr "成员属于电话应答组"
+
+#: plugins/admin/groups/class_group.inc:1202
+#, fuzzy
+msgid "Nagios group"
+msgstr "Nagios 账号"
+
+#: plugins/admin/groups/class_group.inc:1204
+#, fuzzy
+msgid "Group member"
+msgstr "组成员"
+
+#: plugins/admin/groups/class_groupManagement.inc:26
+msgid "Group administration"
+msgstr "组管理"
+
+#: plugins/admin/groups/class_groupManagement.inc:156
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:62
+msgid "Posix"
+msgstr "Posix"
+
+#: plugins/admin/groups/class_groupManagement.inc:157
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:63
+#, fuzzy
+msgid "Edit posix properties"
+msgstr "编辑电话属性"
+
+#: plugins/admin/groups/class_groupManagement.inc:165
+#: plugins/admin/users/class_userManagement.inc:753
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:71
+msgid "Edit mail properties"
+msgstr "编辑邮件属性"
+
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/users/class_userManagement.inc:757
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:79
+msgid "Edit samba properties"
+msgstr "编辑 samba 属性"
+
+#: plugins/admin/groups/class_groupManagement.inc:181
+#: plugins/admin/users/class_userManagement.inc:773
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:87
+msgid "Edit phone properties"
+msgstr "编辑电话属性"
+
+#: plugins/admin/groups/class_groupManagement.inc:188
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:94
+#, fuzzy
+msgid "Menu"
+msgstr "打印机"
+
+#: plugins/admin/groups/class_groupManagement.inc:189
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:95
+#, fuzzy
+msgid "Edit start menu properties"
+msgstr "编辑 samba 属性"
+
+#: plugins/admin/groups/class_groupManagement.inc:197
+#: plugins/admin/users/class_userManagement.inc:765
+#: plugins/personal/posix/trustSelect/class_trustSelect.inc:103
+msgid "Edit environment properties"
+msgstr "编辑环境属性"
+
+#: plugins/admin/users/remove.tpl:6 plugins/admin/acl/remove.tpl:6
+msgid ""
+"This includes all account data, system access rules, imap settings, etc. for "
+"this user. Please double check if your really want to do this since there is "
+"no way for GOsa to get your data back."
+msgstr ""
+"这包含该用户所有账号数据,系统访问规则,imap 设置等等。请再次检查您是否要这么"
+"做,因为 GOsa 没有办法将您的数据找回。"
+
+#: plugins/admin/users/password.tpl:4
+msgid ""
+"To change the user password use the fields below. The changes take effect "
+"immediately. Please memorize the new password, because the user wouldn't be "
+"able to login without it."
+msgstr "用下面的字段修改用口令。修改即时生效。请记住新密码,否则无法登录。"
+
+#: plugins/admin/users/password.tpl:8 plugins/personal/password/password.tpl:8
+msgid ""
+"Changing the password affects your authentification on mail, proxy, samba "
+"and unix services."
+msgstr "修改口令将影响邮件,代理,samba,unix等的登录。"
+
+#: plugins/admin/users/password.tpl:17
+#: plugins/personal/generic/password.tpl:11
+#: plugins/personal/password/password.tpl:23
+msgid "Repeat new password"
+msgstr "重复新口令"
+
+#: plugins/admin/users/password.tpl:21
+#, fuzzy
+msgid "Strength"
+msgstr "街道"
+
+#: plugins/admin/users/password.tpl:30
+#: plugins/personal/generic/password.tpl:17
+#: plugins/personal/password/password.tpl:39
+msgid "Set password"
+msgstr "设置口令"
+
+#: plugins/admin/users/template.tpl:2
+msgid "Creating a new user using templates"
+msgstr "用模板创建一个新用户"
+
+#: plugins/admin/users/template.tpl:6
+msgid ""
+"Creating a new user can be assisted by using templates. Many database "
+"records will be filled automatically. Choose 'none' to skip the usage of "
+"templates."
+msgstr ""
+"可以使用模板来辅助新用户的创建。很多数据记录可以被自动填充。选择“无”来跳过模"
+"板选择。"
+
+#: plugins/admin/users/template.tpl:15
+#: plugins/admin/users/class_userManagement.inc:409
+#: plugins/admin/users/user-list.xml:15 plugins/admin/users/user-list.xml:102
+#: plugins/admin/users/templatize.tpl:15
+msgid "Template"
+msgstr "模板"
+
+#: plugins/admin/users/template.tpl:23 plugins/personal/generic/generic.tpl:49
+#: plugins/personal/generic/paste_generic.tpl:7
+msgid "Last name"
+msgstr "姓"
+
+#: plugins/admin/users/template.tpl:27 plugins/personal/generic/generic.tpl:69
+#: plugins/personal/generic/paste_generic.tpl:11
+msgid "First name"
+msgstr "名"
+
+#: plugins/admin/users/class_userManagement.inc:26
+#, fuzzy
+msgid "Manage users"
+msgstr "域用户"
+
+#: plugins/admin/users/class_userManagement.inc:278
+#, fuzzy
+msgid "You have no permission to change this users password!"
+msgstr "您无权修改您的口令。"
+
+#: plugins/admin/users/class_userManagement.inc:656
+#, fuzzy
+msgid "Account locking"
+msgstr "账户"
+
+#: plugins/admin/users/class_userManagement.inc:657
+#, php-format
+msgid ""
+"Password method '%s' does not support locking. Account (%s) has not been "
+"locked!"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:730
+#, fuzzy
+msgid "Unlock account"
+msgstr "我的账号"
+
+#: plugins/admin/users/class_userManagement.inc:732
+#, fuzzy
+msgid "Lock account"
+msgstr "我的账号"
+
+#: plugins/admin/users/class_userManagement.inc:745
+msgid "Edit generic properties"
+msgstr "编辑通用属性"
+
+#: plugins/admin/users/class_userManagement.inc:748
+#: plugins/personal/posix/class_posixAccount.inc:304
+#: plugins/personal/posix/class_posixAccount.inc:324
+#: plugins/personal/posix/class_posixAccount.inc:326
+#: plugins/personal/posix/class_posixAccount.inc:329
+msgid "POSIX"
+msgstr ""
+
+#: plugins/admin/users/class_userManagement.inc:749
+#, fuzzy
+msgid "Edit POSIX properties"
+msgstr "编辑 UNIX 属性"
+
+#: plugins/admin/users/class_userManagement.inc:760
+msgid "Netatalk"
+msgstr "Netatalk"
+
+#: plugins/admin/users/class_userManagement.inc:761
+msgid "Edit netatalk properties"
+msgstr "编辑 netatalk 属性"
+
+#: plugins/admin/users/class_userManagement.inc:769
+#, fuzzy
+msgid "Edit FAX properties"
+msgstr "编辑 UNIX 属性"
+
+#: plugins/admin/users/user-list.xml:11
+msgid "List of users"
+msgstr "用户列表"
+
+#: plugins/admin/users/user-list.xml:140
+#, fuzzy
+msgid "Lock users"
+msgstr "用户列表"
+
+#: plugins/admin/users/user-list.xml:148
+#, fuzzy
+msgid "Unlock users"
+msgstr "域用户"
+
+#: plugins/admin/users/user-list.xml:167
+#, fuzzy
+msgid "Apply template"
+msgstr "模板"
+
+#: plugins/admin/users/user-list.xml:199
+#, fuzzy
+msgid "New user from template"
+msgstr "从模板创建用户"
+
+#: plugins/admin/users/user-list.xml:213
+msgid "Edit user"
+msgstr "编辑用户"
+
+#: plugins/admin/users/user-list.xml:222
+msgid "%{filter:lockLabel(userPassword)}"
+msgstr ""
+
+#: plugins/admin/users/user-list.xml:245
+#, fuzzy
+msgid "Remove user"
+msgstr "删除图片"
+
+#: plugins/admin/users/user-filter.tpl:11
+msgid "Show templates"
+msgstr "显示模板"
+
+#: plugins/admin/users/user-filter.tpl:12
+#, fuzzy
+msgid "Show functional users"
+msgstr "显示用户"
+
+#: plugins/admin/users/user-filter.tpl:13
+#, fuzzy
+msgid "Show POSIX users"
+msgstr "Posix 设置"
+
+#: plugins/admin/users/user-filter.tpl:14
+#, fuzzy
+msgid "Show Mail users"
+msgstr "显示邮件用户"
+
+#: plugins/admin/users/user-filter.tpl:15
+#, fuzzy
+msgid "Show Samba users"
+msgstr "显示邮件用户"
+
+#: plugins/admin/users/templatize.tpl:2
+#, fuzzy
+msgid "Applying a template"
+msgstr "模板"
+
+#: plugins/admin/users/templatize.tpl:6
+msgid ""
+"Applying a template to several users will replace all user attributes "
+"defined in the template."
+msgstr ""
+
+#: plugins/admin/users/templatize.tpl:33
+#, fuzzy
+msgid "No templates available!"
+msgstr "文件可用。"
+
+#: plugins/admin/departments/remove.tpl:6
+msgid ""
+"This includes 'all' accounts, systems, etc. in this subtree. Please double "
+"check if your really want to do this since there is no way for GOsa to get "
+"your data back."
+msgstr ""
+"在这个子树中包含了所有账号,系统等等。请再次检查您是否要这么做,因为 GOsa 没"
+"有办法将您的数据找回。"
+
+#: plugins/admin/departments/remove.tpl:10
+msgid ""
+"Best thing to do before performing this action would be to save the current "
+"contents of your LDAP tree in a file. So - if you've done so - press "
+"'Delete' to continue or 'Cancel' to abort."
+msgstr ""
+"最好在执行这个操作之前,保存当前 LDAP 树中的内容到一个文件。所以,如果您已经"
+"这么做了,按“删除”继续或者按“取消”退出。"
+
+#: plugins/admin/departments/dep-list.xml:11
+msgid "List of departments"
+msgstr "部门列表"
+
+#: plugins/admin/departments/dep-list.xml:15
+#: plugins/admin/departments/dep-list.xml:103
+#: plugins/admin/departments/class_departmentManagement.inc:177
+#, fuzzy
+msgid "Domain"
+msgstr "于域"
+
+#: plugins/admin/departments/dep-list.xml:23
+#: plugins/admin/departments/dep-list.xml:110
+#, fuzzy
+msgid "Domain component"
+msgstr "域管理员"
+
+#: plugins/admin/departments/dep-list.xml:31
+#: plugins/admin/departments/dep-list.xml:117
+#: plugins/admin/departments/class_departmentManagement.inc:201
+#: plugins/admin/departments/class_countryGeneric.inc:78
+#: plugins/admin/departments/class_countryGeneric.inc:79
+msgid "Country"
+msgstr "国家"
+
+#: plugins/admin/departments/dep-list.xml:39
+#: plugins/admin/departments/dep-list.xml:124
+#: plugins/admin/departments/class_departmentManagement.inc:213
+#: plugins/admin/departments/class_localityGeneric.inc:78
+#: plugins/admin/departments/class_localityGeneric.inc:79
+#, fuzzy
+msgid "Locality"
+msgstr "位置"
+
+#: plugins/admin/departments/dep-list.xml:47
+#: plugins/admin/departments/dep-list.xml:131
+#: plugins/admin/departments/class_departmentManagement.inc:225
+#: plugins/admin/departments/class_organizationGeneric.inc:109
+#: plugins/admin/departments/class_organizationGeneric.inc:110
+#: plugins/personal/generic/class_user.inc:1628
+#: plugins/personal/generic/generic.tpl:280
+#: plugins/personal/generic/multiple_generic.tpl:149
+#: setup/setup_feedback.tpl:23
+msgid "Organization"
+msgstr "组织/公司"
+
+#: plugins/admin/departments/locality.tpl:11
+#: plugins/admin/departments/dcObject.tpl:11
+#, fuzzy
+msgid "Locality name"
+msgstr "位置名称"
+
+#: plugins/admin/departments/locality.tpl:14
+#: plugins/admin/departments/dcObject.tpl:14
+#, fuzzy
+msgid "Name of locality to create"
+msgstr "要创建子树的名称"
+
+#: plugins/admin/departments/locality.tpl:22
+#: plugins/admin/departments/domain.tpl:22
+#: plugins/admin/departments/country.tpl:22
+#: plugins/admin/departments/dcObject.tpl:22
+#: plugins/admin/departments/organization.tpl:22
+msgid "Descriptive text for department"
+msgstr "部门描述文件"
+
+#: plugins/admin/departments/locality.tpl:44
+#: plugins/admin/departments/generic.tpl:108
+#: plugins/admin/departments/class_domain.inc:89
+#: plugins/admin/departments/class_localityGeneric.inc:90
+#: plugins/admin/departments/class_organizationGeneric.inc:129
+#: plugins/admin/departments/class_countryGeneric.inc:90
+#: plugins/admin/departments/class_dcObject.inc:89
+#: plugins/admin/departments/domain.tpl:44
+#: plugins/admin/departments/country.tpl:44
+#: plugins/admin/departments/dcObject.tpl:44
+#: plugins/admin/departments/class_department.inc:615
+#: plugins/admin/departments/organization.tpl:108
+msgid "Administrative settings"
+msgstr "管理设置"
+
+#: plugins/admin/departments/locality.tpl:46
+#: plugins/admin/departments/generic.tpl:110
+#: plugins/admin/departments/domain.tpl:46
+#: plugins/admin/departments/country.tpl:46
+#: plugins/admin/departments/dcObject.tpl:46
+#: plugins/admin/departments/organization.tpl:110
+msgid "Tag department as an independent administrative unit"
+msgstr "将部门标记为独立的管理单元"
+
+#: plugins/admin/departments/generic.tpl:11
+msgid "Name of department"
+msgstr "部门名称"
+
+#: plugins/admin/departments/generic.tpl:14
+msgid "Name of subtree to create"
+msgstr "要创建子树的名称"
+
+#: plugins/admin/departments/generic.tpl:22
+#, fuzzy
+msgid "Descriptive text for   department"
+msgstr "部门描述文件"
+
+#: plugins/admin/departments/generic.tpl:27
+#: plugins/admin/departments/class_organizationGeneric.inc:120
+#: plugins/admin/departments/class_department.inc:606
+#: plugins/admin/departments/organization.tpl:27
+msgid "Category"
+msgstr "分类"
+
+#: plugins/admin/departments/generic.tpl:30
+#: plugins/admin/departments/organization.tpl:30
+msgid "Category for this subtree"
+msgstr "这个子树的分类"
+
+#: plugins/admin/departments/generic.tpl:55
+#: plugins/admin/departments/generic.tpl:67
+#: plugins/admin/departments/class_localityGeneric.inc:87
+#: plugins/admin/departments/class_organizationGeneric.inc:124
+#: plugins/admin/departments/class_department.inc:610
+#: plugins/admin/departments/organization.tpl:55
+#: plugins/admin/departments/organization.tpl:67
+#: plugins/personal/generic/class_user.inc:1641
+#: plugins/personal/generic/generic.tpl:382
+#: plugins/personal/generic/multiple_generic.tpl:265
+msgid "Location"
+msgstr "位置"
+
+#: plugins/admin/departments/generic.tpl:59
+#: plugins/admin/departments/class_organizationGeneric.inc:123
+#: plugins/admin/departments/class_department.inc:609
+#: plugins/admin/departments/organization.tpl:59
+#: plugins/personal/generic/class_user.inc:1640
+#: plugins/personal/generic/generic.tpl:390
+#: plugins/personal/generic/multiple_generic.tpl:275
+msgid "State"
+msgstr "州/省"
+
+#: plugins/admin/departments/generic.tpl:62
+#: plugins/admin/departments/organization.tpl:62
+msgid "State where this subtree is located"
+msgstr "这个子树位于的状态"
+
+#: plugins/admin/departments/generic.tpl:70
+#: plugins/admin/departments/organization.tpl:70
+msgid "Location of this subtree"
+msgstr "这个子树的位置"
+
+#: plugins/admin/departments/generic.tpl:75
+#: plugins/admin/departments/class_department.inc:611
+#: plugins/admin/departments/organization.tpl:75
+#: plugins/personal/generic/generic.tpl:183
+#: plugins/personal/generic/generic.tpl:398
+#: plugins/personal/generic/multiple_generic.tpl:67
+#: plugins/personal/generic/multiple_generic.tpl:285
+msgid "Address"
+msgstr "住址"
+
+#: plugins/admin/departments/generic.tpl:78
+#: plugins/admin/departments/organization.tpl:78
+msgid "Postal address of this subtree"
+msgstr "这个子树的地址"
+
+#: plugins/admin/departments/generic.tpl:85
+#: plugins/admin/departments/organization.tpl:85
+msgid "Base telephone number of this subtree"
+msgstr "这个子树的电话号码"
+
+#: plugins/admin/departments/generic.tpl:90
+#: plugins/admin/departments/class_organizationGeneric.inc:127
+#: plugins/admin/departments/class_department.inc:312
+#: plugins/admin/departments/class_department.inc:613
+#: plugins/admin/departments/organization.tpl:90
+#: plugins/personal/generic/class_user.inc:1312
+#: plugins/personal/generic/class_user.inc:1742
+#: plugins/personal/generic/generic.tpl:364
+#: plugins/personal/generic/generic.tpl:532
+#: plugins/personal/generic/multiple_generic.tpl:247
+#: plugins/personal/generic/multiple_generic.tpl:438
+msgid "Fax"
+msgstr "传真"
+
+#: plugins/admin/departments/generic.tpl:93
+#: plugins/admin/departments/organization.tpl:93
+msgid "Base facsimile telephone number of this subtree"
+msgstr "这个子树的传真号码"
+
+#: plugins/admin/departments/class_domain.inc:77
+#: plugins/admin/departments/class_domain.inc:78
+#: plugins/admin/departments/class_departmentManagement.inc:189
+#: plugins/admin/departments/class_dcObject.inc:77
+#: plugins/admin/departments/class_dcObject.inc:78
+#, fuzzy
+msgid "Domain Component"
+msgstr "域管理员"
+
+#: plugins/admin/departments/class_departmentManagement.inc:25
+#: plugins/admin/departments/class_department.inc:596
+#: plugins/admin/departments/class_department.inc:601
+msgid "Departments"
+msgstr "部门"
+
+#: plugins/admin/departments/class_departmentManagement.inc:26
+#, fuzzy
+msgid "Manage Departments"
+msgstr "部门"
+
+#: plugins/admin/departments/class_departmentManagement.inc:128
+msgid ""
+"As soon as the tag operation has finished, you can scroll down to end of the "
+"page and    press the 'Continue' button to continue with the department "
+"management dialog."
+msgstr ""
+
+#: plugins/admin/departments/class_organizationGeneric.inc:118
+#, fuzzy
+msgid "Organization name"
+msgstr "组织/公司"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:125
+#: plugins/personal/generic/class_user.inc:1642
+msgid "Postal address"
+msgstr "地址"
+
+#: plugins/admin/departments/class_organizationGeneric.inc:126
+msgid "Phone number"
+msgstr "电话号码"
+
+#: plugins/admin/departments/class_countryGeneric.inc:87
+#: plugins/admin/departments/country.tpl:11
+#, fuzzy
+msgid "Country name"
+msgstr "国家"
+
+#: plugins/admin/departments/domain.tpl:11
+#, fuzzy
+msgid "Domain name"
+msgstr "域管理员"
+
+#: plugins/admin/departments/domain.tpl:14
+#, fuzzy
+msgid "Name of domain to create"
+msgstr "要创建子树的名称"
+
+#: plugins/admin/departments/country.tpl:14
+#, fuzzy
+msgid "Name of country to create"
+msgstr "要创建子树的名称"
+
+#: plugins/admin/departments/class_department.inc:372
+#, fuzzy
+msgid "Cannot find an unused tag for this administrative unit!"
+msgstr "致命错误:无法找到一个未使用的标志来标记管理单元!"
+
+#: plugins/admin/departments/class_department.inc:443
+#, php-format
+msgid "Tagging '%s'."
+msgstr "标记 '%s'。"
+
+#: plugins/admin/departments/class_department.inc:524
+#, php-format
+msgid "Moving '%s' to '%s'"
+msgstr "移动 '%s' 到 '%s'"
+
+#: plugins/admin/departments/class_department.inc:565
+#, php-format
+msgid "FAILED to copy %s, aborting operation"
+msgstr "拷贝 %s 失败,退出操作"
+
+#: plugins/admin/departments/class_department.inc:604
+msgid "Department name"
+msgstr "部门名称"
+
+#: plugins/admin/departments/class_department.inc:612
+msgid "Telephone"
+msgstr "电话"
+
+#: plugins/admin/departments/class_department.inc:666
+#, php-format
+msgid "Object '%s' is already tagged"
+msgstr "对象 '%s' 已经做标记"
+
+#: plugins/admin/departments/class_department.inc:673
+#, php-format
+msgid "Adding tag (%s) to object '%s'"
+msgstr "添加标识(%s)到对象 '%s'"
+
+#: plugins/admin/departments/class_department.inc:705
+#, php-format
+msgid "Removing tag from object '%s'"
+msgstr "从对象 '%s' 删除标记"
+
+#: plugins/admin/departments/dep_iframe.tpl:1
+msgid "Processing the requested operation"
+msgstr "处理请求的操作"
+
+#: plugins/admin/departments/dep_iframe.tpl:7
+msgid ""
+"Your browser doesn't support iframes, please use this link to perform the "
+"requested operation."
+msgstr "您的浏览器不支持 iframe,请使用这个链接来执行请求的操作。"
+
+#: plugins/admin/departments/organization.tpl:11
+#, fuzzy
+msgid "Name of organization"
+msgstr "组织/公司"
+
+#: plugins/admin/departments/organization.tpl:14
+#, fuzzy
+msgid "Name of organization to create"
+msgstr "要创建子树的名称"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:2
+#, fuzzy
+msgid "You are currently moving/renaming this department."
+msgstr "您无权删除这个部门。"
+
+#: plugins/admin/departments/dep_move_confirm.tpl:5
+msgid ""
+"Modifying a departments naming attribute 'ou' or base may corrupt acls and "
+"snapshot entries for all entire objects."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:8
+msgid "GOsa can NOT fix this for you, yet."
+msgstr ""
+
+#: plugins/admin/departments/dep_move_confirm.tpl:11
+msgid ""
+"Before you confirm this action, ensure that everything will be as expected, "
+"possibly the best solution is a backup."
+msgstr ""
+
+#: plugins/admin/acl/class_aclManagement.inc:25
+#: plugins/admin/acl/acl-list.xml:15
+#, fuzzy
+msgid "Acl"
+msgstr "全部"
+
+#: plugins/admin/acl/class_aclManagement.inc:154
+#, fuzzy
+msgid "ACL Assignment"
+msgstr "管理"
+
+#: plugins/admin/acl/tabs_acl_role.inc:28
+#, fuzzy
+msgid "ACL Templates"
+msgstr "模板"
+
+#: plugins/admin/acl/class_aclRole.inc:26
+#: plugins/admin/acl/class_aclRole.inc:726
+#, fuzzy
+msgid "Access control roles"
+msgstr "访问选项"
+
+#: plugins/admin/acl/class_aclRole.inc:27
+#, fuzzy
+msgid "Edit AC roles"
+msgstr "MAC 地址"
+
+#: plugins/admin/acl/class_aclRole.inc:134
+#, fuzzy
+msgid "Reset ACL"
+msgstr "删除"
+
+#: plugins/admin/acl/class_aclRole.inc:418
+msgid "No ACL settings for this category"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:420
+#, fuzzy, php-format
+msgid "ACL for these objects: %s"
+msgstr "创建新 FAI 对象"
+
+#: plugins/admin/acl/class_aclRole.inc:426
+#, fuzzy
+msgid "Edit category ACL"
+msgstr "编辑分类"
+
+#: plugins/admin/acl/class_aclRole.inc:430
+#, fuzzy
+msgid "Reset category ACL"
+msgstr "分类"
+
+#: plugins/admin/acl/class_aclRole.inc:450
+#, php-format
+msgid "Edit ACL for '%s', scope is '%s'"
+msgstr ""
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy
+msgid "Object in use"
+msgstr "对象名称"
+
+#: plugins/admin/acl/class_aclRole.inc:646
+#, fuzzy, php-format
+msgid "This role cannot be removed while it is in use by these objects:"
+msgstr "这个共享不能被删除,因为仍然被 %d 个用户使用:"
+
+#: plugins/admin/acl/class_aclRole.inc:725 plugins/admin/acl/acl-list.xml:23
+#: plugins/admin/acl/acl-list.xml:82
+#: plugins/personal/generic/class_user.inc:1598
+#: plugins/personal/generic/generic.tpl:449
+#: plugins/personal/generic/multiple_generic.tpl:345
+msgid "Role"
+msgstr "角色"
+
+#: plugins/admin/acl/class_aclRole.inc:736
+#, fuzzy
+msgid "Permissions"
+msgstr "允许"
+
+#: plugins/admin/acl/acl-list.xml:11
+#, fuzzy
+msgid "List of acls"
+msgstr "宏列表"
+
+#: plugins/admin/acl/acl-filter.tpl:11
+#, fuzzy
+msgid "Show access control lists"
+msgstr "访问选项"
+
+#: plugins/admin/acl/acl-filter.tpl:12
+#, fuzzy
+msgid "Show roles"
+msgstr "显示电话"
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:25
+msgid "Bug submitter"
+msgstr ""
+
+#: plugins/addons/bugsubmitter/class_bugsubmitter.inc:26
+msgid ""
+"<a\thref='https://oss.gonicus.de/labs/gosa/"
+"newticket'\ttarget='_blank'>Bugsubmitter</a>"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:38
+#, fuzzy
+msgid "Edit organizational user settings"
+msgstr "应用程序设置"
+
+#: plugins/personal/generic/class_user.inc:279
+msgid "Please add a single IP address or a network/netmask combination!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "female"
+msgstr "女"
+
+#: plugins/personal/generic/class_user.inc:294
+msgid "male"
+msgstr "男"
+
+#: plugins/personal/generic/class_user.inc:382
+msgid "Cannot upload file!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:477
+#, fuzzy
+msgid "Serial number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:522
+msgid ""
+"(Some types of certificates are currently not supported and may be displayed "
+"as 'invalid'.)"
+msgstr "(目前有的种类的证书不支持,可能显示为“无效”)"
+
+#: plugins/personal/generic/class_user.inc:532
+#, php-format
+msgid "Certificate is valid from %s to %s and is currently %s."
+msgstr "证书从 %s 到 %s 是有效的,当前为 %s。"
+
+#: plugins/personal/generic/class_user.inc:535
+msgid "valid"
+msgstr "有效"
+
+#: plugins/personal/generic/class_user.inc:536
+msgid "invalid"
+msgstr "无效"
+
+#: plugins/personal/generic/class_user.inc:541
+msgid "No certificate installed"
+msgstr "未安装证书"
+
+#: plugins/personal/generic/class_user.inc:567
+#, fuzzy
+msgid "The selected password method is no longer available."
+msgstr "此应用程序不再可用。"
+
+#: plugins/personal/generic/class_user.inc:1143
+msgid "Cannot build RDN: no + allowed to build sub RDN!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1150
+msgid "Cannot build RDN: attribute is not defined!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1168
+msgid "Cannot build RDN: invalid attribute parameters!"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1239
+#, fuzzy
+msgid "The selected password method requires initial configuration!"
+msgstr "此应用程序不再可用。"
+
+#: plugins/personal/generic/class_user.inc:1304
+#: plugins/personal/generic/class_user.inc:1646
+#: plugins/personal/generic/class_user.inc:1736
+#: plugins/personal/generic/generic.tpl:199
+#: plugins/personal/generic/multiple_generic.tpl:88
+msgid "Homepage"
+msgstr "个人主页"
+
+#: plugins/personal/generic/class_user.inc:1315
+#: plugins/personal/generic/class_user.inc:1745
+#: plugins/personal/generic/generic.tpl:348
+#: plugins/personal/generic/multiple_generic.tpl:227
+msgid "Mobile"
+msgstr "手机"
+
+#: plugins/personal/generic/class_user.inc:1318
+#: plugins/personal/generic/class_user.inc:1748
+#: plugins/personal/generic/generic.tpl:356
+#: plugins/personal/generic/multiple_generic.tpl:237
+msgid "Pager"
+msgstr "呼机"
+
+#: plugins/personal/generic/class_user.inc:1323
+#: plugins/personal/generic/class_user.inc:1619
+#: plugins/personal/generic/generic.tpl:119
+msgid "Date of birth"
+msgstr "生日"
+
+#: plugins/personal/generic/class_user.inc:1433
+#, fuzzy
+msgid "Cannot open certificate!"
+msgstr "无法打开指定证书!"
+
+#: plugins/personal/generic/class_user.inc:1587
+#: plugins/personal/generic/generic.tpl:472
+#: plugins/personal/generic/multiple_generic.tpl:371
+msgid "Unit"
+msgstr "单元"
+
+#: plugins/personal/generic/class_user.inc:1588
+#: plugins/personal/generic/generic.tpl:497
+#: plugins/personal/generic/multiple_generic.tpl:402
+msgid "House identifier"
+msgstr "家庭角色"
+
+#: plugins/personal/generic/class_user.inc:1589
+#: plugins/personal/generic/generic.tpl:414
+#: plugins/personal/generic/multiple_generic.tpl:302
+msgid "Vocation"
+msgstr "行业"
+
+#: plugins/personal/generic/class_user.inc:1590
+#: plugins/personal/generic/generic.tpl:541
+#: plugins/personal/generic/multiple_generic.tpl:449
+msgid "Last delivery"
+msgstr "最后传递"
+
+#: plugins/personal/generic/class_user.inc:1591
+#: plugins/personal/generic/generic.tpl:463
+#: plugins/personal/generic/multiple_generic.tpl:360
+msgid "Person locality"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1592
+#: plugins/personal/generic/generic.tpl:422
+#: plugins/personal/generic/multiple_generic.tpl:312
+msgid "Unit description"
+msgstr "单元描述"
+
+#: plugins/personal/generic/class_user.inc:1593
+#: plugins/personal/generic/generic.tpl:431
+#: plugins/personal/generic/multiple_generic.tpl:323
+msgid "Subject area"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:1594
+#: plugins/personal/generic/generic.tpl:440
+#: plugins/personal/generic/multiple_generic.tpl:334
+msgid "Functional title"
+msgstr "单位职称"
+
+#: plugins/personal/generic/class_user.inc:1595
+#: plugins/personal/generic/generic_certs.tpl:78
+msgid "Certificate serial number"
+msgstr "证书系列号"
+
+#: plugins/personal/generic/class_user.inc:1596
+#: plugins/personal/generic/generic.tpl:550
+#: plugins/personal/generic/multiple_generic.tpl:460
+msgid "Public visible"
+msgstr "公开"
+
+#: plugins/personal/generic/class_user.inc:1597
+#: plugins/personal/generic/generic.tpl:481
+#: plugins/personal/generic/multiple_generic.tpl:382
+msgid "Street"
+msgstr "街道"
+
+#: plugins/personal/generic/class_user.inc:1599
+#: plugins/personal/generic/generic.tpl:489
+#: plugins/personal/generic/multiple_generic.tpl:392
+msgid "Postal code"
+msgstr "邮编"
+
+#: plugins/personal/generic/class_user.inc:1603
+#, fuzzy
+msgid "Generic user settings"
+msgstr "通用队列设置"
+
+#: plugins/personal/generic/class_user.inc:1607
+#: plugins/personal/posix/class_posixAccount.inc:1444
+#: plugins/personal/password/class_password.inc:150
+msgid "My account"
+msgstr "我的账号"
+
+#: plugins/personal/generic/class_user.inc:1615
+#, fuzzy
+msgid "User identification"
+msgstr "用户信息"
+
+#: plugins/personal/generic/class_user.inc:1616
+#: plugins/personal/generic/generic.tpl:98
+msgid "Personal title"
+msgstr "个人称谓"
+
+#: plugins/personal/generic/class_user.inc:1617
+#: plugins/personal/generic/generic.tpl:108
+#: plugins/personal/generic/multiple_generic.tpl:23
+msgid "Academic title"
+msgstr "学位头衔"
+
+#: plugins/personal/generic/class_user.inc:1620
+#: plugins/personal/generic/generic.tpl:138
+msgid "Sex"
+msgstr "性别"
+
+#: plugins/personal/generic/class_user.inc:1621
+#, fuzzy
+msgid "Preferred language"
+msgstr "首选语种"
+
+#: plugins/personal/generic/class_user.inc:1624
+#: plugins/personal/generic/paste_generic.tpl:47
+msgid "User picture"
+msgstr "用户图片"
+
+#: plugins/personal/generic/class_user.inc:1626
+#, fuzzy
+msgid "Login restrictions"
+msgstr "口令过期截止日"
+
+#: plugins/personal/generic/class_user.inc:1630
+#, fuzzy
+msgid "Department number"
+msgstr "部门名称"
+
+#: plugins/personal/generic/class_user.inc:1631
+#, fuzzy
+msgid "Employee number"
+msgstr "员工类别"
+
+#: plugins/personal/generic/class_user.inc:1632
+#: plugins/personal/generic/generic.tpl:312
+#: plugins/personal/generic/multiple_generic.tpl:189
+msgid "Employee type"
+msgstr "员工类别"
+
+#: plugins/personal/generic/class_user.inc:1634
+#, fuzzy
+msgid "Room number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:1635
+#, fuzzy
+msgid "Telefon number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:1636
+#, fuzzy
+msgid "Pager number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:1637
+#, fuzzy
+msgid "Mobile number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:1638
+#, fuzzy
+msgid "Fax number"
+msgstr "系列号"
+
+#: plugins/personal/generic/class_user.inc:1644
+msgid "Home postal address"
+msgstr "住宅地址"
+
+#: plugins/personal/generic/class_user.inc:1645
+#, fuzzy
+msgid "Home phone number"
+msgstr "电话号码"
+
+#: plugins/personal/generic/class_user.inc:1647
+#, fuzzy
+msgid "User password method"
+msgstr "口令存储"
+
+#: plugins/personal/generic/class_user.inc:1648
+#, fuzzy
+msgid "User certificates"
+msgstr "编辑证书"
+
+#: plugins/personal/generic/generic.tpl:6
+#: plugins/personal/generic/multiple_generic.tpl:5
+msgid "Personal information"
+msgstr "个人信息"
+
+#: plugins/personal/generic/generic.tpl:20
+#: plugins/personal/generic/generic.tpl:22
+#: plugins/personal/generic/generic.tpl:38
+#: plugins/personal/generic/multiple_generic.tpl:13
+#: plugins/personal/generic/paste_generic.tpl:37
+#: plugins/personal/generic/generic_picture.tpl:5
+#: plugins/personal/generic/generic_picture.tpl:15
+msgid "Personal picture"
+msgstr "个人图片"
+
+#: plugins/personal/generic/generic.tpl:29
+#: plugins/personal/generic/generic.tpl:40
+msgid "Change picture"
+msgstr "更换图片"
+
+#: plugins/personal/generic/generic.tpl:62
+msgid "Template name"
+msgstr "模板名称"
+
+#: plugins/personal/generic/generic.tpl:151
+#: plugins/personal/generic/multiple_generic.tpl:33
+msgid "Preferred langage"
+msgstr "首选语种"
+
+#: plugins/personal/generic/generic.tpl:191
+#: plugins/personal/generic/multiple_generic.tpl:78
+msgid "Private phone"
+msgstr "私人电话"
+
+#: plugins/personal/generic/generic.tpl:212
+#: plugins/personal/generic/multiple_generic.tpl:105
+msgid "Password storage"
+msgstr "口令存储"
+
+#: plugins/personal/generic/generic.tpl:229
+#: plugins/personal/generic/multiple_generic.tpl:117
+#: plugins/personal/generic/generic_certs.tpl:3
+msgid "Certificates"
+msgstr "证书"
+
+#: plugins/personal/generic/generic.tpl:232
+#: plugins/personal/generic/multiple_generic.tpl:121
+msgid "Edit certificates"
+msgstr "编辑证书"
+
+#: plugins/personal/generic/generic.tpl:245
+msgid "Restrict login to"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:249
+msgid "IP or network"
+msgstr ""
+
+#: plugins/personal/generic/generic.tpl:268
+#: plugins/personal/generic/multiple_generic.tpl:137
+msgid "Organizational information"
+msgstr "组织信息"
+
+#: plugins/personal/generic/generic.tpl:296
+#: plugins/personal/generic/multiple_generic.tpl:169
+msgid "Department No."
+msgstr "部门编号"
+
+#: plugins/personal/generic/generic.tpl:304
+#: plugins/personal/generic/multiple_generic.tpl:179
+msgid "Employee No."
+msgstr "员工编号"
+
+#: plugins/personal/generic/generic.tpl:330
+#: plugins/personal/generic/generic.tpl:512
+#: plugins/personal/generic/multiple_generic.tpl:207
+#: plugins/personal/generic/multiple_generic.tpl:418
+msgid "Room No."
+msgstr "房间号"
+
+#: plugins/personal/generic/generic.tpl:526
+msgid "Please use the phone tab"
+msgstr "请使用电话页面"
+
+#: plugins/personal/generic/multiple_generic.tpl:53
+msgid "Choose subtree to place user in"
+msgstr "将用户放到所选择子树中"
+
+#: plugins/personal/generic/multiple_generic.tpl:56
+msgid "Select a base"
+msgstr "选择一个位置"
+
+#: plugins/personal/generic/paste_generic.tpl:1
+msgid "User settings"
+msgstr "用户设置"
+
+#: plugins/personal/generic/paste_generic.tpl:23
+msgid "Clear password"
+msgstr "清除口令"
+
+#: plugins/personal/generic/paste_generic.tpl:24
+msgid "Set new password"
+msgstr "设置新密码"
+
+#: plugins/personal/generic/paste_generic.tpl:52
+#: plugins/personal/generic/generic_picture.tpl:27
+msgid "Remove picture"
+msgstr "删除图片"
+
+#: plugins/personal/generic/main.inc:115
+#, fuzzy
+msgid "You have no permission to set your password!"
+msgstr "您无权修改您的口令。"
+
+#: plugins/personal/generic/main.inc:206
+msgid "Generic user information"
+msgstr "用户一般信息"
+
+#: plugins/personal/generic/password.tpl:2
+msgid ""
+"You have changed the method your password is stored in the ldap database. "
+"For that reason you've to enter your password at this point again. GOsa will "
+"then encode it with the selected method."
+msgstr ""
+"您已经修改了口令在 LDAP 数据库中存储的方法。因此您需要再输入您的口令。GOsa 将"
+"会按照您选择的方法重新编码。"
+
+#: plugins/personal/generic/generic_certs.tpl:8
+msgid "Standard certificate"
+msgstr "标准证书"
+
+#: plugins/personal/generic/generic_certs.tpl:33
+msgid "S/MIME certificate"
+msgstr "S/MIME 证书"
+
+#: plugins/personal/generic/generic_certs.tpl:57
+msgid "PKCS12 certificate"
+msgstr "PKCS12 证书"
+
+#: plugins/personal/posix/class_posixAccount.inc:38
+#, fuzzy
+msgid "Edit users POSIX settings"
+msgstr "Posix 设置"
+
+#: plugins/personal/posix/class_posixAccount.inc:168
+msgid "expired"
+msgstr "过期"
+
+#: plugins/personal/posix/class_posixAccount.inc:170
+msgid "grace time active"
+msgstr "时间限制激活"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#: plugins/personal/posix/class_posixAccount.inc:175
+#: plugins/personal/posix/class_posixAccount.inc:177
+msgid "active"
+msgstr "活动"
+
+#: plugins/personal/posix/class_posixAccount.inc:173
+#, fuzzy
+msgid "password not changeable"
+msgstr "活动,口令不可更改"
+
+#: plugins/personal/posix/class_posixAccount.inc:175
+#, fuzzy
+msgid "password expired"
+msgstr "活动,口令过期"
+
+#: plugins/personal/posix/class_posixAccount.inc:248
+msgid "automatic"
+msgstr "自动"
+
+#: plugins/personal/posix/class_posixAccount.inc:444
+#, php-format
+msgid "Password can't be changed up to %s days after last change"
+msgstr "自上次更改以来 %s 天,不能修改口令"
+
+#: plugins/personal/posix/class_posixAccount.inc:448
+#, php-format
+msgid "Password must be changed after %s days"
+msgstr "口令必须在 %s 天之后更改"
+
+#: plugins/personal/posix/class_posixAccount.inc:452
+#, fuzzy, php-format
+msgid "Disable account after %s days of inactivity after password expiry"
+msgstr "口令过期 %s 天后,禁用账号"
+
+#: plugins/personal/posix/class_posixAccount.inc:456
+#, fuzzy, php-format
+msgid "Warn user %s days before password expiry"
+msgstr "在口令过期 %s 天之前警告用户"
+
+#: plugins/personal/posix/class_posixAccount.inc:793
+msgid "Timeout while waiting for lock. Ignoring lock!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:851
+#: plugins/personal/posix/class_posixAccount.inc:1169
+msgid "Group of user"
+msgstr "用户组"
+
+#: plugins/personal/posix/class_posixAccount.inc:946
+msgid ""
+"A duplicated UID number was written for this user. If this was not intended "
+"please verify all used uidNumbers!"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1027
+#: plugins/personal/posix/class_posixAccount.inc:1030
+#: plugins/personal/posix/class_posixAccount.inc:1105
+#: plugins/personal/posix/class_posixAccount.inc:1108
+#: plugins/personal/posix/class_posixAccount.inc:1450
+#: plugins/personal/posix/generic.tpl:7
+#: plugins/personal/posix/paste_generic.tpl:8
+msgid "Home directory"
+msgstr "用户主目录"
+
+#: plugins/personal/posix/class_posixAccount.inc:1038
+#: plugins/personal/posix/class_posixAccount.inc:1041
+#: plugins/personal/posix/generic.tpl:63
+#: plugins/personal/posix/paste_generic.tpl:36
+msgid "UID"
+msgstr "UID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1061
+#: plugins/personal/posix/class_posixAccount.inc:1114
+#, fuzzy
+msgid "shadowMin"
+msgstr "显示终端"
+
+#: plugins/personal/posix/class_posixAccount.inc:1066
+#: plugins/personal/posix/class_posixAccount.inc:1119
+msgid "shadowMax"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1071
+#: plugins/personal/posix/class_posixAccount.inc:1124
+#, fuzzy
+msgid "shadowWarning"
+msgstr "显示分区"
+
+#: plugins/personal/posix/class_posixAccount.inc:1085
+#: plugins/personal/posix/class_posixAccount.inc:1138
+#, fuzzy
+msgid "shadowInactive"
+msgstr "显示打印机"
+
+#: plugins/personal/posix/class_posixAccount.inc:1440
+#, fuzzy
+msgid "POSIX account"
+msgstr "GLPI 账号"
+
+#: plugins/personal/posix/class_posixAccount.inc:1451
+#: plugins/personal/posix/generic.tpl:15
+msgid "Shell"
+msgstr "Shell"
+
+#: plugins/personal/posix/class_posixAccount.inc:1452
+#: setup/setup_migrate.tpl:291
+msgid "User ID"
+msgstr "用户 ID"
+
+#: plugins/personal/posix/class_posixAccount.inc:1453
+#, fuzzy
+msgid "Group ID"
+msgstr "组"
+
+#: plugins/personal/posix/class_posixAccount.inc:1455
+#, fuzzy
+msgid "Force password change on login"
+msgstr "不允许修改口令"
+
+#: plugins/personal/posix/class_posixAccount.inc:1456
+#, fuzzy
+msgid "Shadow min"
+msgstr "显示终端"
+
+#: plugins/personal/posix/class_posixAccount.inc:1457
+msgid "Shadow max"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1458
+#, fuzzy
+msgid "Shadow warning"
+msgstr "显示分区"
+
+#: plugins/personal/posix/class_posixAccount.inc:1459
+#, fuzzy
+msgid "Shadow inactive"
+msgstr "显示打印机"
+
+#: plugins/personal/posix/class_posixAccount.inc:1460
+#, fuzzy
+msgid "Shadow expire"
+msgstr "显示人员"
+
+#: plugins/personal/posix/class_posixAccount.inc:1461
+msgid "Public SSH key"
+msgstr ""
+
+#: plugins/personal/posix/class_posixAccount.inc:1462
+#, fuzzy
+msgid "System trust model"
+msgstr "信赖的系统"
+
+#: plugins/personal/posix/generic.tpl:25
+#: plugins/personal/posix/paste_generic.tpl:17
+msgid "Primary group"
+msgstr "主要用户组"
+
+#: plugins/personal/posix/generic.tpl:36
+msgid "Status"
+msgstr "状态"
+
+#: plugins/personal/posix/generic.tpl:41
+#, fuzzy
+msgid "Last logon"
+msgstr "姓"
+
+#: plugins/personal/posix/generic.tpl:59
+#: plugins/personal/posix/paste_generic.tpl:31
+msgid "Force UID/GID"
+msgstr "指定 UID/GID"
+
+#: plugins/personal/posix/generic.tpl:89
+#: plugins/personal/posix/paste_generic.tpl:55
+msgid "Group membership"
+msgstr "组成员身份"
+
+#: plugins/personal/posix/generic.tpl:91
+#: plugins/personal/posix/paste_generic.tpl:62
+msgid "(Warning: more than 16 groups are not supported by NFS!)"
+msgstr "(警告:NFS不支持超过 16 个组!)"
+
+#: plugins/personal/posix/generic.tpl:100
+#, fuzzy
+msgid "Common group"
+msgstr "显示组"
+
+#: plugins/personal/posix/generic.tpl:104
+#, fuzzy
+msgid "Groups differ"
+msgstr "用户组"
+
+#: plugins/personal/posix/generic.tpl:127
+msgid "SSH keys"
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:128
+msgid "Edit public ssh keys..."
+msgstr ""
+
+#: plugins/personal/posix/generic.tpl:132
+msgid "Account"
+msgstr "账户"
+
+#: plugins/personal/posix/posix_groups.tpl:6
+msgid "Select groups to add"
+msgstr "选择要添加的组"
+
+#: plugins/personal/posix/posix_groups.tpl:32
+msgid "Display groups of department"
+msgstr "显示部门的组"
+
+#: plugins/personal/posix/posix_groups.tpl:44
+msgid "Display groups matching"
+msgstr "显示匹配的组"
+
+#: plugins/personal/posix/posix_groups.tpl:48
+msgid "Regular expression for matching group names"
+msgstr "用于匹配组名的正则表达式"
+
+#: plugins/personal/posix/posix_groups.tpl:55
+msgid "Display groups of user"
+msgstr "显示用户组"
+
+#: plugins/personal/posix/posix_groups.tpl:59
+msgid "User name of which groups are shown"
+msgstr "显示属于该组的用户名"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:11
+msgid "Show servers"
+msgstr "显示服务器"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:12
+msgid "Show workstations"
+msgstr "显示工作站"
+
+#: plugins/personal/posix/trustSelect/trust-filter.tpl:13
+msgid "Show terminals"
+msgstr "显示终端"
+
+#: plugins/personal/posix/paste_generic.tpl:4
+msgid "Posix settings"
+msgstr "Posix 设置"
+
+#: plugins/personal/posix/main.inc:142
+#, fuzzy
+msgid "POSIX settings"
+msgstr "Posix 设置"
+
+#: plugins/personal/posix/posix_shadow.tpl:9
+msgid "User must change password on first login"
+msgstr "用户必须在第一次登录修改口令"
+
+#: plugins/personal/posix/posix_shadow.tpl:34
+msgid "Password expires on"
+msgstr "口令过期截止日"
+
+#: plugins/personal/password/changed.tpl:3
+msgid ""
+"You've successfully changed your password. Remember to change all programms "
+"configured to use it as well."
+msgstr "您已经成功更改口令。还要记住更改相关程序设定。"
+
+#: plugins/personal/password/main.inc:57 setup/setup_config1.tpl:136
+#, fuzzy
+msgid "Password settings"
+msgstr "用户设置"
+
+#: plugins/personal/password/password.tpl:4
+msgid ""
+"To change your personal password use the fields below. The changes take "
+"effect immediately. Please memorize the new password, because you wouldn't "
+"be able to login without it."
+msgstr ""
+"用下面的表格更改个人口令。口令更改即时生效。请记住新口令,忘记口令将无法登"
+"录。"
+
+#: plugins/personal/password/password.tpl:41
+msgid "Clear fields"
+msgstr "清除字段"
+
+#: plugins/personal/password/class_password.inc:27
+#, fuzzy
+msgid "Change user password"
+msgstr "修改口令"
+
+#: plugins/personal/password/class_password.inc:79
+msgid "You need to specify your current password in order to proceed."
+msgstr "您需要输入当前口令才能继续。"
+
+#: plugins/personal/password/class_password.inc:85
+msgid "The password you've entered as 'New password' is empty."
+msgstr "输入的“新口令”为空。"
+
+#: plugins/personal/password/class_password.inc:94
+#, fuzzy, php-format
+msgid "External password changer reported a problem: %s."
+msgstr "外部口令更改程序报告错误:"
+
+#: plugins/personal/password/class_password.inc:108
+msgid ""
+"The password you've entered as your current password doesn't match the real "
+"one."
+msgstr "您输入的当前口令不正确。"
+
+#: plugins/personal/password/class_password.inc:114
+#, fuzzy
+msgid "You have no permission to change your password."
+msgstr "您无权修改您的口令。"
+
+#: plugins/personal/password/class_password.inc:146
+#, fuzzy
+msgid "User password"
+msgstr "清除口令"
+
+#: plugins/personal/password/nochange.tpl:2
+msgid "Password change not allowed"
+msgstr "不允许修改口令"
+
+#: plugins/personal/password/nochange.tpl:6
+#, fuzzy
+msgid "You have no permission to change your password at this time"
+msgstr "您无权修改您的口令。"
+
+#: setup/class_setupStep_Feedback.inc:92
+msgid "UNIX accounts/groups"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:94
+#, fuzzy
+msgid "Samba management"
+msgstr "系统管理"
+
+#: setup/class_setupStep_Feedback.inc:96
+#, fuzzy
+msgid "Mailsystem management"
+msgstr "系统管理"
+
+#: setup/class_setupStep_Feedback.inc:98
+#, fuzzy
+msgid "FAX system administration"
+msgstr "用户管理"
+
+#: setup/class_setupStep_Feedback.inc:100
+#, fuzzy
+msgid "Asterisk administration"
+msgstr "用户管理"
+
+#: setup/class_setupStep_Feedback.inc:102
+#, fuzzy
+msgid "System inventory"
+msgstr "删除 inventory"
+
+#: setup/class_setupStep_Feedback.inc:104
+#, fuzzy
+msgid "System-/Configmanagement"
+msgstr "系统管理"
+
+#: setup/class_setupStep_Feedback.inc:106
+msgid "Addressbook"
+msgstr "地址簿"
+
+#: setup/class_setupStep_Feedback.inc:112
+msgid "Feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:113
+#, fuzzy
+msgid "Get notifications or send feedback"
+msgstr "主机通知命令"
+
+#: setup/class_setupStep_Feedback.inc:114
+msgid "Notification and feedback"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:131 setup/class_setup.inc:77
+#, fuzzy
+msgid "Setup error"
+msgstr "PHP 错误"
+
+#: setup/class_setupStep_Feedback.inc:140
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Feedback error"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:140
+#, php-format
+msgid "Cannot send feedback to '%s': %s"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:147
+msgid "Cannot send feedback: service temporarily unavailable"
+msgstr ""
+
+#: setup/class_setupStep_Feedback.inc:180
+#, fuzzy
+msgid "Please specify a valid email address."
+msgstr "请输入一个有效的 iSerial。"
+
+#: setup/class_setupStep_Feedback.inc:184
+msgid ""
+"You have to select at least one of both options, subscribe or send feedback."
+msgstr ""
+
+#: setup/class_setup.inc:197
+#, fuzzy
+msgid "Completed"
+msgstr "不完整"
+
+#: setup/class_setup.inc:267 setup/setup_migrate.tpl:272
+#, fuzzy
+msgid "Next"
+msgstr "下一个"
+
+#: setup/setup_config2.tpl:2
+msgid "Samba settings"
+msgstr "Samba 设置"
+
+#: setup/setup_config2.tpl:6
+msgid "Samba hash generator"
+msgstr ""
+
+#: setup/setup_config2.tpl:15
+#, fuzzy
+msgid "Samba SID"
+msgstr "Samba"
+
+#: setup/setup_config2.tpl:31
+#, fuzzy
+msgid "RID base"
+msgstr "数据库"
+
+#: setup/setup_config2.tpl:46
+#, fuzzy
+msgid "Workstation container"
+msgstr "工作站名称"
+
+#: setup/setup_config2.tpl:61
+msgid "Samba SID mapping"
+msgstr ""
+
+#: setup/setup_config2.tpl:71
+#, fuzzy
+msgid "Timezone"
+msgstr "用户时区"
+
+#: setup/setup_config2.tpl:74
+#, fuzzy
+msgid "Please choose your preferred timezone here"
+msgstr "首选语种"
+
+#: setup/setup_config2.tpl:96
+#, fuzzy
+msgid "Additional GOsa settings"
+msgstr "应用程序设置"
+
+#: setup/setup_config2.tpl:100
+msgid "Enable Copy & Paste"
+msgstr ""
+
+#: setup/setup_config2.tpl:112
+#, fuzzy
+msgid "Government mode"
+msgstr "部门名称"
+
+#: setup/setup_config2.tpl:123
+#, fuzzy
+msgid "GOsa logging"
+msgstr "GOsa"
+
+#: setup/setup_config2.tpl:135
+msgid "Mail settings"
+msgstr "邮件选项"
+
+#: setup/setup_config2.tpl:139
+msgid "Mail method"
+msgstr "邮件方法"
+
+#: setup/setup_config2.tpl:155
+msgid "Account identification attribute"
+msgstr ""
+
+#: setup/setup_config2.tpl:169
+#, fuzzy
+msgid "Vacation templates"
+msgstr "工作站模板"
+
+#: setup/setup_config2.tpl:185
+msgid "Use Cyrus UNIX style"
+msgstr ""
+
+#: setup/setup_config2.tpl:195
+msgid "Snapshots / Undo"
+msgstr ""
+
+#: setup/setup_config2.tpl:204 setup/setup_config2.tpl:249
+msgid "Enable snapshots"
+msgstr ""
+
+#: setup/setup_config2.tpl:210 setup/setup_config2.tpl:255
+msgid "Snapshot base"
+msgstr ""
+
+#: setup/setup_frame.tpl:12
+#, fuzzy
+msgid "GOsa setup wizard"
+msgstr "GOsa 帮助浏览器"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Installation"
+msgstr "Windows 工作站"
+
+#: setup/setup_frame.tpl:19
+#, fuzzy
+msgid "Setup"
+msgstr "设置"
+
+#: setup/setup_migrate.tpl:5
+msgid ""
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to GOsa base LDAP administration. You may want "
+"to fix the problems below, in order to provide smooth services."
+msgstr ""
+
+#: setup/setup_migrate.tpl:33
+#, fuzzy
+msgid "Check again"
+msgstr "检查"
+
+#: setup/setup_migrate.tpl:37
+msgid "Add required object classes to the LDAP base"
+msgstr ""
+
+#: setup/setup_migrate.tpl:39 setup/setup_migrate.tpl:244
+#: setup/setup_migrate.tpl:344 setup/setup_migrate.tpl:398
+#: setup/setup_migrate.tpl:453 setup/setup_migrate.tpl:496
+#: setup/setup_migrate.tpl:540
+#, fuzzy
+msgid "Current"
+msgstr "当前版本"
+
+#: setup/setup_migrate.tpl:46 setup/setup_migrate.tpl:248
+#: setup/setup_migrate.tpl:351 setup/setup_migrate.tpl:405
+#: setup/setup_migrate.tpl:457 setup/setup_migrate.tpl:500
+#: setup/setup_migrate.tpl:544
+#, fuzzy
+msgid "After migration"
+msgstr "用户管理"
+
+#: setup/setup_migrate.tpl:54 setup/class_setupStep_Migrate.inc:376
+#: setup/class_setupStep_Migrate.inc:665 setup/class_setupStep_Migrate.inc:805
+#: setup/class_setupStep_Migrate.inc:1034
+#: setup/class_setupStep_Migrate.inc:2132
+#: setup/class_setupStep_Migrate.inc:2575
+#: setup/class_setupStep_Migrate.inc:2729
+#: setup/class_setupStep_Migrate.inc:3059
+#, fuzzy
+msgid "Migrate"
+msgstr "创建"
+
+#: setup/setup_migrate.tpl:60 setup/setup_migrate.tpl:107
+msgid "Close"
+msgstr "关闭"
+
+#: setup/setup_migrate.tpl:65
+msgid "Move windows workstations into a valid windows workstation department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:67
+msgid ""
+"This dialog allows you to move the displayed windows workstations into a "
+"valid department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:69
+msgid ""
+"Be careful with this tool, there may be references pointing to this "
+"workstations that can't be migrated."
+msgstr ""
+
+#: setup/setup_migrate.tpl:95
+msgid "Move selected windows workstations into the following GOsa department"
+msgstr ""
+
+#: setup/setup_migrate.tpl:100
+#, fuzzy
+msgid "Move selected workstations"
+msgstr "选择查看工作站"
+
+#: setup/setup_migrate.tpl:101
+msgid "What will be done here"
+msgstr ""
+
+#: setup/setup_migrate.tpl:113
+msgid "Move groups into configured group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:116
+msgid ""
+"This dialog allows moving a couple of groups to the configured group tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:119
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"groups. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:122
+msgid "Move selected groups into this group tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:153 setup/setup_migrate.tpl:205
+#: setup/setup_migrate.tpl:254 setup/setup_migrate.tpl:372
+#: setup/setup_migrate.tpl:425 setup/setup_migrate.tpl:469
+#: setup/setup_migrate.tpl:512 setup/setup_migrate.tpl:556
+msgid "Hide changes"
+msgstr ""
+
+#: setup/setup_migrate.tpl:155 setup/setup_migrate.tpl:207
+#: setup/setup_migrate.tpl:237 setup/setup_migrate.tpl:374
+#: setup/setup_migrate.tpl:427 setup/setup_migrate.tpl:472
+#: setup/setup_migrate.tpl:515 setup/setup_migrate.tpl:559
+#, fuzzy
+msgid "Show changes"
+msgstr "显示软件包"
+
+#: setup/setup_migrate.tpl:168
+msgid "Move users into configured user tree"
+msgstr ""
+
+#: setup/setup_migrate.tpl:170
+msgid ""
+"This dialog allows moving a couple of users to the configured user tree. "
+"Doing this may straighten your LDAP service."
+msgstr ""
+
+#: setup/setup_migrate.tpl:173
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"users. The GOsa setup can't migrate references, so you may want to cancel "
+"the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate.tpl:176
+#, fuzzy
+msgid "Move selected users into this people tree"
+msgstr "创建使用该模板的用户"
+
+#: setup/setup_migrate.tpl:219
+#, fuzzy
+msgid "Migrate GOsa 2.5 administrative accounts"
+msgstr "创建 netatalk 账号"
+
+#: setup/setup_migrate.tpl:221
+msgid ""
+"This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 "
+"useable accounts."
+msgstr ""
+
+#: setup/setup_migrate.tpl:257 setup/setup_ldap.tpl:65
+#, fuzzy
+msgid "Reload"
+msgstr "读"
+
+#: setup/setup_migrate.tpl:273
+#, fuzzy
+msgid "Abort"
+msgstr "端口"
+
+#: setup/setup_migrate.tpl:275
+#, fuzzy
+msgid "Create a new GOsa administrator account"
+msgstr "创建 netatalk 账号"
+
+#: setup/setup_migrate.tpl:278
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate.tpl:307
+#, fuzzy
+msgid "Password (again)"
+msgstr "口令存储"
+
+#: setup/setup_migrate.tpl:333
+msgid ""
+"The listed departments are currently invisible in the GOsa user interface. "
+"If you want to change this for a couple of entries, select them and use the "
+"migrate button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:334 setup/setup_migrate.tpl:389
+#: setup/setup_migrate.tpl:445 setup/setup_migrate.tpl:489
+#: setup/setup_migrate.tpl:533
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate.tpl:388
+msgid ""
+"The listed users are currently invisible in the GOsa user interface. If you "
+"want to change this for a couple of users, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:444
+msgid ""
+"The listed devices are currently invisible in the GOsa interface. If you "
+"want to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:470 setup/setup_migrate.tpl:513
+#: setup/setup_migrate.tpl:557
+#, fuzzy
+msgid "Refresh"
+msgstr "参考"
+
+#: setup/setup_migrate.tpl:488
+msgid ""
+"The listed services are currently invalid for the GOsa version you are going "
+"to install. If you want to update a couple of service, just select them and "
+"use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate.tpl:532
+msgid ""
+"The listed menus are currently invisible in the GOsa interface. If you want "
+"to change this for a couple of devices, just select them and use the "
+"'Migrate' button below."
+msgstr ""
+
+#: setup/class_setupStep_Finish.inc:38
+#, fuzzy
+msgid "Write configuration file"
+msgstr "配置文件"
+
+#: setup/class_setupStep_Finish.inc:39
+#, fuzzy
+msgid "Finish - write the configuration file"
+msgstr "需要 XML 功能来解析配置文件。"
+
+#: setup/class_setupStep_Finish.inc:104
+#, fuzzy
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
+msgstr "GOsa 配置 %s/gosa.conf 不可读取。退出。"
+
+#: setup/class_setupStep_Finish.inc:106
+#, fuzzy
+msgid "The configuration is currently not readable or it does not exists."
+msgstr "GOsa 配置 %s/gosa.conf 不可读取。退出。"
+
+#: setup/class_setupStep_Finish.inc:115
+#, fuzzy, php-format
+msgid ""
+"After downloading and placing the file under %s, please make sure that the "
+"user the webserver is running with is able to read %s, while other users "
+"shouldn't. You may want to execute these commands to achieve this "
+"requirement:"
+msgstr ""
+"将文件保存在 GOsa 配置文件目录中,确认 Web 服务器运行的账号能够读取 gosa."
+"conf,其他用户则无权访问。您可以执行如下命令来实现:"
+
+#: setup/class_setupStep_Checks.inc:38 setup/class_setupStep_Checks.inc:39
+msgid "Installation check"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:40
+msgid "Basic checks for PHP compatibility and extensions"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:64
+#, fuzzy
+msgid "Checking PHP version"
+msgstr "检查 PHP 版本 (>=4.1.0)"
+
+#: setup/class_setupStep_Checks.inc:65
+#, php-format
+msgid "PHP must be of version %s or above."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:66
+msgid "Please upgrade to a supported version."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:73
+msgid "GOsa requires this module to talk with your LDAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:81
+msgid "GOsa requires this module for an internationalized interface."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:89
+msgid "GOsa requires this module for the samba integration."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:97
+msgid "GOsa requires this module to make use of SSHA encryption."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:105
+msgid "GOsa requires this module to talk to an IMAP server."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:112
+#, fuzzy
+msgid "mbstring"
+msgstr "Samba 设置"
+
+#: setup/class_setupStep_Checks.inc:113
+msgid "GOsa requires this module to handle unicode strings."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:120
+#, fuzzy
+msgid "MySQL"
+msgstr "LDAP 错误:"
+
+#: setup/class_setupStep_Checks.inc:121
+#, fuzzy
+msgid ""
+"GOsa requires this module to communicate with several supported databases."
+msgstr "需要 MySQL 支持来从数据库中读取 GOfax 报告。"
+
+#: setup/class_setupStep_Checks.inc:138
+msgid "samba hash generator"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:139
+msgid "GOsa requires this command to synchronize POSIX and samba passwords."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:140
+msgid ""
+"Deploy a gosa-si installation or install the perl Crypt::SmbHash modules."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:153
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:154
+msgid "GOsa requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:169
+#, fuzzy
+msgid "compression module"
+msgstr "访问选项"
+
+#: setup/class_setupStep_Checks.inc:170
+msgid "GOsa requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:181
+#, fuzzy
+msgid ""
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
+msgstr ""
+"register_globals 是 PHP 的一个不必修改范围就可以从脚本中访问所有全局变量的机"
+"制。这可能存在安全风险。GOsa 在两种情况下都可以运行。"
+
+#: setup/class_setupStep_Checks.inc:182
+#, fuzzy
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+msgstr "检查 register_globals 是否设置为 'off'"
+
+#: setup/class_setupStep_Checks.inc:190
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:191
+#, fuzzy
+msgid ""
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
+msgstr ""
+"PHP 用这个值来进行垃圾回收,删除旧的会话。设置这个值为一天,将会防止在真正超"
+"时之前的会话和 cookie 丢失。"
+
+#: setup/class_setupStep_Checks.inc:192
+msgid ""
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:199 setup/class_setupStep_Checks.inc:215
+#: setup/class_setupStep_Checks.inc:231 setup/class_setupStep_Checks.inc:247
+msgid "Off"
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:200
+#, fuzzy
+msgid ""
+"In Order to use GOsa without any trouble, the session.auto_register option "
+"in your php.ini should be set to 'Off'."
+msgstr ""
+"为了在是使用 GOsa 中不遇到麻烦,您的 php.ini 中 session.auto_register 选项必"
+"须设置为 'Off'。"
+
+#: setup/class_setupStep_Checks.inc:201
+#, fuzzy
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+"为了在是使用 GOsa 中不遇到麻烦,您的 php.ini 中 session.auto_register 选项必"
+"须设置为 'Off'。"
+
+#: setup/class_setupStep_Checks.inc:208
+#, fuzzy
+msgid ""
+"GOsa needs at least 32MB of memory. Setting it below this limit may cause "
+"errors that are not reproducable! Increase it for larger setups."
+msgstr "GOsa 需要至少 16MB 内存,太少会导致无法预料的错误!将其设置为更大。"
+
+#: setup/class_setupStep_Checks.inc:209
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '32M' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:216
+#, fuzzy
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
+msgstr "这个选项影响输出处理。关闭这个选项,可以提高性能。"
+
+#: setup/class_setupStep_Checks.inc:217
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:224
+#, fuzzy
+msgid "The Execution time should be at least 30 seconds."
+msgstr "执行时间应该至少 30 秒,因为一些动作可能会花很多时间。"
+
+#: setup/class_setupStep_Checks.inc:225
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:232
+#, fuzzy
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
+msgstr ""
+"将 expose_php 设置为“off”可以增强服务器安全性。PHP 将不会发送任何有关正运行着"
+"的服务器的信息。"
+
+#: setup/class_setupStep_Checks.inc:233
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:239
+#, fuzzy
+msgid "On"
+msgstr "打开"
+
+#: setup/class_setupStep_Checks.inc:240
+msgid ""
+"Increase your server security by setting magic_quotes_gpc to 'on'. PHP will "
+"escape all quotes in strings in this case."
+msgstr ""
+"将 magic_quotes_gpc 设置为 'on' 会增加服务器安全性。这种情况下 PHP 会将字符串"
+"中所有引号编码。"
+
+#: setup/class_setupStep_Checks.inc:241
+msgid "Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:248
+#, fuzzy
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+msgstr ""
+"将 magic_quotes_gpc 设置为 'on' 会增加服务器安全性。这种情况下 PHP 会将字符串"
+"中所有引号编码。"
+
+#: setup/class_setupStep_Checks.inc:249
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStep_Checks.inc:259
+#, fuzzy
+msgid "Configuration writeable"
+msgstr "配置文件"
+
+#: setup/class_setupStep_Checks.inc:260
+#, fuzzy
+msgid "The configuration file can't be written"
+msgstr "查看配置信息"
+
+#: setup/class_setupStep_Checks.inc:261
+#, php-format
+msgid ""
+"GOsa reads its configuration from a file located in (%s/%s). The setup can "
+"write the configuration directly if it is writeable."
+msgstr ""
+
+#: setup/setup_config3.tpl:2
+#, fuzzy
+msgid "GOsa core settings"
+msgstr "用户设置"
+
+#: setup/setup_config3.tpl:6
+#, fuzzy
+msgid "Enable primary group filter"
+msgstr "显示用户组"
+
+#: setup/setup_config3.tpl:18
+#, fuzzy
+msgid "Display summary in listings"
+msgstr "显示匹配的宏"
+
+#: setup/setup_config3.tpl:30
+#, fuzzy
+msgid "Honour administrative units"
+msgstr "组管理"
+
+#: setup/setup_config3.tpl:42
+#, fuzzy
+msgid "Smarty compile directory"
+msgstr "用户主目录"
+
+#: setup/setup_config3.tpl:51
+msgid "SNMP community"
+msgstr ""
+
+#: setup/setup_config3.tpl:60
+#, fuzzy
+msgid "Path for PPD storage"
+msgstr "口令存储"
+
+#: setup/setup_config3.tpl:77
+#, fuzzy
+msgid "Path for kiosk profile storage"
+msgstr "Kiosk profile 设置"
+
+#: setup/setup_config3.tpl:96
+msgid "SUDO role base"
+msgstr ""
+
+#: setup/setup_config3.tpl:115
+#, fuzzy
+msgid "Mail queue script"
+msgstr "邮件队列"
+
+#: setup/setup_config3.tpl:134
+#, fuzzy
+msgid "Notification script"
+msgstr "主机通知周期"
+
+#: setup/setup_config3.tpl:153
+#, fuzzy
+msgid "Enable edit locking"
+msgstr "启用邮件扫描"
+
+#: setup/setup_config3.tpl:174
+msgid "Gosa support daemon"
+msgstr ""
+
+#: setup/setup_config3.tpl:193
+#, fuzzy
+msgid "Daemon timeout"
+msgstr "关闭"
+
+#: setup/setup_config3.tpl:207
+msgid "Login and session"
+msgstr ""
+
+#: setup/setup_config3.tpl:210
+#, fuzzy
+msgid "Login attribute"
+msgstr "电话属性"
+
+#: setup/setup_config3.tpl:221
+msgid "Enforce register_globals to be deactivated"
+msgstr ""
+
+#: setup/setup_config3.tpl:233
+#, fuzzy
+msgid "Enforce encrypted connections"
+msgstr "封锁加密归档"
+
+#: setup/setup_config3.tpl:245
+#, fuzzy
+msgid "Warn if session is not encrypted"
+msgstr "会话不会被加密。"
+
+#: setup/setup_config3.tpl:257
+#, fuzzy
+msgid "Remember dialog filter settings"
+msgstr "通用队列设置"
+
+#: setup/setup_config3.tpl:269
+#, fuzzy
+msgid "Session lifetime"
+msgstr "检测道会话冲突"
+
+#: setup/setup_config3.tpl:278
+#, fuzzy
+msgid "Debugging"
+msgstr "启用 debug"
+
+#: setup/setup_config3.tpl:282
+#, fuzzy
+msgid "Show PHP errors"
+msgstr "PHP 错误"
+
+#: setup/setup_config3.tpl:294
+#, fuzzy
+msgid "Maximum LDAP query time"
+msgstr "最大文件大小"
+
+#: setup/setup_config3.tpl:312
+msgid "Log LDAP statistics"
+msgstr ""
+
+#: setup/setup_config3.tpl:324
+#, fuzzy
+msgid "Debug level"
+msgstr "日志级别"
+
+#: setup/setup_config3.tpl:329 setup/setup_config3.tpl:332
+#, fuzzy
+msgid "Disabled"
+msgstr "禁用"
+
+#: setup/setup_config3.tpl:330 setup/setup_config3.tpl:333
+#, fuzzy
+msgid "Enabled"
+msgstr "禁用"
+
+#: setup/setup_feedback.tpl:5
+msgid "Feedback sucessfully send"
+msgstr ""
+
+#: setup/setup_feedback.tpl:15
+msgid "Subscribe to the gosa-announce mailinglist"
+msgstr ""
+
+#: setup/setup_feedback.tpl:18
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to subscribe you to the gosa-announce mailing list. You've to confirm "
+"this by mail."
+msgstr ""
+
+#: setup/setup_feedback.tpl:39
+msgid "Mail address"
+msgstr "邮件地址"
+
+#: setup/setup_feedback.tpl:50
+msgid "Send feedback to the GOsa project team"
+msgstr ""
+
+#: setup/setup_feedback.tpl:53
+msgid ""
+"When checking this option, GOsa will try to connect http://oss.gonicus.de in "
+"order to submit your form anonymously."
+msgstr ""
+
+#: setup/setup_feedback.tpl:59
+msgid "Did the setup procedure help you to get started?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:62 setup/setup_feedback.tpl:80
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "Yes"
+msgstr "是"
+
+#: setup/setup_feedback.tpl:64 setup/setup_feedback.tpl:82
+#: setup/class_setupStep_Ldap.inc:74 setup/class_setupStep_Config3.inc:93
+#: setup/class_setupStep_Schema.inc:86 setup/class_setupStep_Config1.inc:88
+#: setup/class_setupStep_Config2.inc:136
+msgid "No"
+msgstr "否"
+
+#: setup/setup_feedback.tpl:69
+msgid "If not, what problems did you encounter"
+msgstr ""
+
+#: setup/setup_feedback.tpl:77
+msgid "Is this the first time you use GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:83
+msgid "I use it since"
+msgstr ""
+
+#: setup/setup_feedback.tpl:84
+msgid "Select the year since when you are using GOsa"
+msgstr ""
+
+#: setup/setup_feedback.tpl:91
+msgid "What operating system / distribution do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:99
+msgid "What web server do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:107
+msgid "What PHP version do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:115
+msgid "LDAP"
+msgstr ""
+
+#: setup/setup_feedback.tpl:119
+msgid "What kind of LDAP server(s) do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:125
+msgid "How many objects are in your LDAP?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:132
+#, fuzzy
+msgid "Features"
+msgstr "功能"
+
+#: setup/setup_feedback.tpl:135
+msgid "What features of GOsa do you use?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:145
+msgid "What features do you want to see in future versions of GOsa?"
+msgstr ""
+
+#: setup/setup_feedback.tpl:152
+msgid "Send feedback"
+msgstr ""
+
+#: setup/setup_finish.tpl:3
+#, fuzzy
+msgid "Create your configuration file"
+msgstr "配置文件"
+
+#: setup/setup_finish.tpl:10
+msgid "Depending on the user name your webserver is running on:"
+msgstr ""
+
+#: setup/setup_finish.tpl:28
+msgid "Download configuration"
+msgstr "下载配置"
+
+#: setup/setup_finish.tpl:33
+#, fuzzy
+msgid "Status: "
+msgstr "状态"
+
+#: setup/class_setupStep_Ldap.inc:53
+#, fuzzy
+msgid "LDAP setup"
+msgstr "LDAP 服务器"
+
+#: setup/class_setupStep_Ldap.inc:54
+#, fuzzy
+msgid "LDAP connection setup"
+msgstr "断开"
+
+#: setup/class_setupStep_Ldap.inc:55
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Ldap.inc:105
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' failed!"
+msgstr "为服务器 '%s' 插入新宏失败。"
+
+#: setup/class_setupStep_Ldap.inc:107
+#, fuzzy, php-format
+msgid "Bind as user '%s' failed!"
+msgstr "为服务器 '%s' 插入新宏失败。"
+
+#: setup/class_setupStep_Ldap.inc:112
+#, fuzzy, php-format
+msgid "Anonymous bind to server '%s' succeeded."
+msgstr "为服务器 '%s' 插入新宏失败。"
+
+#: setup/class_setupStep_Ldap.inc:113
+#, fuzzy
+msgid "Please specify user and password!"
+msgstr "请输入您的口令!"
+
+#: setup/class_setupStep_Ldap.inc:115
+#, fuzzy, php-format
+msgid "Bind as user '%s' to server '%s' succeeded!"
+msgstr "无法在主服务器 '%s' 上选择数据库 '%s'。"
+
+#: setup/setup_ldap.tpl:7
+msgid "Please choose the LDAP user to be used by GOsa"
+msgstr ""
+
+#: setup/setup_ldap.tpl:25
+#, fuzzy
+msgid "LDAP connection"
+msgstr "断开"
+
+#: setup/setup_ldap.tpl:29
+msgid "Location name"
+msgstr "位置名称"
+
+#: setup/setup_ldap.tpl:37
+#, fuzzy
+msgid "Connection URI"
+msgstr "连接 URL"
+
+#: setup/setup_ldap.tpl:45
+#, fuzzy
+msgid "TLS connection"
+msgstr "连接"
+
+#: setup/setup_ldap.tpl:69
+#, fuzzy
+msgid "Authentication"
+msgstr "Nagios 鉴权"
+
+#: setup/setup_ldap.tpl:73
+msgid "Admin DN"
+msgstr "管理员 DN"
+
+#: setup/setup_ldap.tpl:78
+#, fuzzy
+msgid "Select user"
+msgstr "删除用户"
+
+#: setup/setup_ldap.tpl:86
+msgid "Automatically append LDAP base to admin DN"
+msgstr ""
+
+#: setup/setup_ldap.tpl:93
+msgid "Admin password"
+msgstr "管理员口令"
+
+#: setup/setup_ldap.tpl:101
+#, fuzzy
+msgid "Schema based settings"
+msgstr "Samba 设置"
+
+#: setup/setup_ldap.tpl:105
+msgid "Use rfc2307bis compliant groups"
+msgstr ""
+
+#: setup/setup_ldap.tpl:117
+#, fuzzy
+msgid "Current status"
+msgstr "当前版本"
+
+#: setup/class_setupStep_Migrate.inc:127 setup/class_setupStep_Migrate.inc:128
+#, fuzzy
+msgid "LDAP inspection"
+msgstr "PHP 安装检查"
+
+#: setup/class_setupStep_Migrate.inc:129
+msgid "Analyze your current LDAP for GOsa compatibility"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:135
+#, fuzzy
+msgid "Checking for root object"
+msgstr "检查 iconv 支持"
+
+#: setup/class_setupStep_Migrate.inc:141
+#, fuzzy
+msgid "Inspecting object classes in root object"
+msgstr "检查 iconv 支持"
+
+#: setup/class_setupStep_Migrate.inc:147
+#, fuzzy
+msgid "Checking permission for LDAP database"
+msgstr "您无权删除这个部门。"
+
+#: setup/class_setupStep_Migrate.inc:153
+#, fuzzy
+msgid "Checking for invisible departments"
+msgstr "检查 iconv 支持"
+
+#: setup/class_setupStep_Migrate.inc:158
+#, fuzzy
+msgid "Checking for invisible users"
+msgstr "检查 iconv 支持"
+
+#: setup/class_setupStep_Migrate.inc:165
+#: setup/class_setupStep_Migrate.inc:3210
+#, fuzzy
+msgid "Checking for super administrator"
+msgstr "检查一些附加程序"
+
+#: setup/class_setupStep_Migrate.inc:171
+#, fuzzy
+msgid "Checking for users outside the people tree"
+msgstr "检查 cups 模块"
+
+#: setup/class_setupStep_Migrate.inc:177
+#, fuzzy
+msgid "Checking for groups outside the groups tree"
+msgstr "检查 cups 模块"
+
+#: setup/class_setupStep_Migrate.inc:184
+msgid "Checking for windows workstations outside the winstation tree"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:190
+#, fuzzy
+msgid "Checking for duplicated UID numbers"
+msgstr "检查函数 %s"
+
+#: setup/class_setupStep_Migrate.inc:196
+#, fuzzy
+msgid "Checking for duplicate GID numbers"
+msgstr "检查函数 %s"
+
+#: setup/class_setupStep_Migrate.inc:202
+#, fuzzy
+msgid "Checking for old style USB devices"
+msgstr "检查 iconv 支持"
+
+#: setup/class_setupStep_Migrate.inc:208
+#, fuzzy
+msgid "Checking for old services that have to be migrated"
+msgstr "检查 cups 模块"
+
+#: setup/class_setupStep_Migrate.inc:214
+#, fuzzy
+msgid "Checking for old style application menus"
+msgstr "检查函数 %s"
+
+#: setup/class_setupStep_Migrate.inc:240 setup/class_setupStep_Migrate.inc:292
+#: setup/class_setupStep_Migrate.inc:357 setup/class_setupStep_Migrate.inc:421
+#: setup/class_setupStep_Migrate.inc:492 setup/class_setupStep_Migrate.inc:569
+#: setup/class_setupStep_Migrate.inc:654 setup/class_setupStep_Migrate.inc:795
+#: setup/class_setupStep_Migrate.inc:891
+#: setup/class_setupStep_Migrate.inc:2037
+#: setup/class_setupStep_Migrate.inc:2505
+#: setup/class_setupStep_Migrate.inc:2696
+#: setup/class_setupStep_Migrate.inc:2833
+#, fuzzy
+msgid "LDAP query failed"
+msgstr "Mysql 查询失败。"
+
+#: setup/class_setupStep_Migrate.inc:241 setup/class_setupStep_Migrate.inc:293
+#: setup/class_setupStep_Migrate.inc:358 setup/class_setupStep_Migrate.inc:422
+#: setup/class_setupStep_Migrate.inc:493 setup/class_setupStep_Migrate.inc:570
+#: setup/class_setupStep_Migrate.inc:655 setup/class_setupStep_Migrate.inc:796
+#: setup/class_setupStep_Migrate.inc:892
+#: setup/class_setupStep_Migrate.inc:2038
+#: setup/class_setupStep_Migrate.inc:2506
+#: setup/class_setupStep_Migrate.inc:2697
+#: setup/class_setupStep_Migrate.inc:2834
+msgid "Possibly the 'root object' is missing."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:263
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'uidNumber'."
+msgstr "发现记录类型 '%s' 有重复。"
+
+#: setup/class_setupStep_Migrate.inc:315
+#, fuzzy, php-format
+msgid "Found %s duplicate values for attribute 'gidNumber'."
+msgstr "发现记录类型 '%s' 有重复。"
+
+#: setup/class_setupStep_Migrate.inc:373 setup/class_setupStep_Migrate.inc:584
+#: setup/class_setupStep_Migrate.inc:597
+#: setup/class_setupStep_Migrate.inc:1031
+#: setup/class_setupStep_Migrate.inc:1049
+#: setup/class_setupStep_Migrate.inc:1989
+#: setup/class_setupStep_Migrate.inc:2002
+#: setup/class_setupStep_Migrate.inc:2057
+#: setup/class_setupStep_Migrate.inc:2078
+#: setup/class_setupStep_Migrate.inc:2130
+#: setup/class_setupStep_Migrate.inc:3212
+msgid "Failed"
+msgstr "失败"
+
+#: setup/class_setupStep_Migrate.inc:375
+#, php-format
+msgid ""
+"Found %s winstations outside the predefined winstation department ou '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:448
+#, php-format
+msgid "Found %s groups outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:449 setup/class_setupStep_Migrate.inc:526
+#, fuzzy
+msgid "Move"
+msgstr "模式"
+
+#: setup/class_setupStep_Migrate.inc:525
+#, php-format
+msgid "Found %s user(s) outside the configured tree '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:586 setup/class_setupStep_Migrate.inc:599
+#, php-format
+msgid ""
+"The specified user '%s' does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:663
+#, php-format
+msgid "Found %s user(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#: setup/class_setupStep_Migrate.inc:1119
+#, fuzzy
+msgid "Migration error"
+msgstr "创建"
+
+#: setup/class_setupStep_Migrate.inc:713 setup/class_setupStep_Migrate.inc:856
+#, fuzzy, php-format
+msgid "Cannot migrate department '%s':"
+msgstr "转到根部门"
+
+#: setup/class_setupStep_Migrate.inc:804
+#, php-format
+msgid "Found %s department(s) that will not be visible in GOsa."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1028
+#, fuzzy, php-format
+msgid "GOsa 2.5 administrative accounts found: %s"
+msgstr "创建 netatalk 账号"
+
+#: setup/class_setupStep_Migrate.inc:1033
+#, fuzzy
+msgid "There is no valid GOsa 2.6 administrator account inside your LDAP."
+msgstr "创建 netatalk 账号"
+
+#: setup/class_setupStep_Migrate.inc:1050
+msgid "There is no GOsa administrator account inside your LDAP."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1119
+#, php-format
+msgid "Cannot add ACL for user '%s':"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1157
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Input error"
+msgstr "PHP 错误"
+
+#: setup/class_setupStep_Migrate.inc:1157
+msgid "Uid"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Password error"
+msgstr "口令过期截止日"
+
+#: setup/class_setupStep_Migrate.inc:1162
+#, fuzzy
+msgid "Provided passwords do not match!"
+msgstr "输入的新口令和重复口令不匹配!"
+
+#: setup/class_setupStep_Migrate.inc:1167
+#, fuzzy
+msgid "Specify a valid user ID!"
+msgstr "请输入一个有效的用户名!"
+
+#: setup/class_setupStep_Migrate.inc:1200
+#, fuzzy, php-format
+msgid "Adding an administrative user failed: object '%s' already exists!"
+msgstr "为对象 '%s' 设置动作状态(FAIstate) 失败,值为 '%s'。"
+
+#: setup/class_setupStep_Migrate.inc:1239
+#: setup/class_setupStep_Migrate.inc:1288
+#: setup/class_setupStep_Migrate.inc:1337
+#, fuzzy
+msgid "Cannot move users to the requested department!"
+msgstr "选择放置部门的子树"
+
+#: setup/class_setupStep_Migrate.inc:1249
+msgid "Winstation will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1260
+#: setup/class_setupStep_Migrate.inc:1309
+msgid "Updating following references too"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1299
+msgid "Group will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1347
+msgid "User will be moved from"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1357
+msgid "The following references will be updated"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1990
+msgid ""
+"The LDAP root object is missing. It is required to use your LDAP service."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:1991
+#: setup/class_setupStep_Migrate.inc:2004
+msgid "Try to create root object"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2003
+msgid "Root object couldn't be created, you should try it on your own."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2058
+#, php-format
+msgid "Missing GOsa object class '%s'!"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2059
+#, fuzzy
+msgid "Please check your installation."
+msgstr "请检查用户名/口令。"
+
+#: setup/class_setupStep_Migrate.inc:2080
+#, php-format
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2439
+#, fuzzy, php-format
+msgid "Copy '%s' to '%s' failed:"
+msgstr "移动 '%s' 到 '%s'"
+
+#: setup/class_setupStep_Migrate.inc:2574
+#, php-format
+msgid "There are %s devices that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2634
+#, php-format
+msgid "Adding '%s' to the LDAP failed: %s"
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:2654
+#: setup/class_setupStep_Migrate.inc:2771
+#, fuzzy, php-format
+msgid "Updating '%s' failed: %s"
+msgstr "Logging DB 用户"
+
+#: setup/class_setupStep_Migrate.inc:2727
+#, php-format
+msgid "There are %s services that need to be migrated."
+msgstr ""
+
+#: setup/class_setupStep_Migrate.inc:3058
+#, php-format
+msgid "There are %s application menus which have to be migrated."
+msgstr ""
+
+#: setup/setup_welcome.tpl:4
+msgid ""
+"This seems to be the first time you start GOsa - we didn't find any "
+"configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl:8
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:11
+msgid "Create a basic, single site configuration"
+msgstr ""
+
+#: setup/setup_welcome.tpl:12
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl:13
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl:14
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl:17
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl:20
+msgid "Find every possible configuration error"
+msgstr ""
+
+#: setup/setup_welcome.tpl:21
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl:25
+#, fuzzy
+msgid "To continue..."
+msgstr "安装继续..."
+
+#: setup/setup_welcome.tpl:28
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '/tmp/gosa.auth', containing the current session ID on the "
+"servers local filesystem. This can be done by executing the following "
+"command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl:34
+msgid "Click the 'Continue' button when you've finished."
+msgstr ""
+
+#: setup/setup_license.tpl:8
+msgid "I have read the license and accept it"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:81 setup/class_setupStep_Config3.inc:82
+#, fuzzy
+msgid "GOsa settings 3/3"
+msgstr "用户设置"
+
+#: setup/class_setupStep_Config3.inc:83
+msgid "Tweak some GOsa core behaviour"
+msgstr ""
+
+#: setup/class_setupStep_Config3.inc:212
+#, fuzzy
+msgid "Session lifetime must be a numeric value!"
+msgstr "需要的分值必须是数字。"
+
+#: setup/class_setupStep_Config3.inc:216
+#, fuzzy
+msgid "Maximum LDAP query time must be a numeric value!"
+msgstr "需要的分值必须是数字。"
+
+#: setup/setup_checks.tpl:9
+msgid "PHP module and extension checks"
+msgstr ""
+
+#: setup/setup_checks.tpl:41 setup/setup_checks.tpl:103
+msgid "GOsa will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:45 setup/setup_checks.tpl:107
+msgid "GOsa will run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "PHP setup configuration"
+msgstr "PHP 安装检查"
+
+#: setup/setup_checks.tpl:67
+#, fuzzy
+msgid "show information"
+msgstr "个人信息"
+
+#: setup/setup_schema.tpl:3
+#, fuzzy
+msgid "Schema specific settings"
+msgstr "Samba 设置"
+
+#: setup/setup_schema.tpl:7
+msgid "Enable schema validation when logging in"
+msgstr ""
+
+#: setup/setup_schema.tpl:16
+#, fuzzy
+msgid "Check status"
+msgstr "具有状态"
+
+#: setup/setup_schema.tpl:20
+msgid "Schema check succeeded"
+msgstr ""
+
+#: setup/setup_schema.tpl:23
+#, fuzzy
+msgid "Schema check failed"
+msgstr "保存电话失败"
+
+#: setup/setup_schema.tpl:31
+msgid ""
+"Could not read any schema informations, all checks skipped. Adjust your ldap "
+"acls."
+msgstr ""
+
+#: setup/setup_schema.tpl:35
+msgid ""
+"It seems that your ldap database wasn't initialized yet. This maybe the "
+"reason, why GOsa can't read your schema configuration!"
+msgstr ""
+
+#: setup/setup_config1.tpl:2
+msgid "Look and feel"
+msgstr ""
+
+#: setup/setup_config1.tpl:6
+#, fuzzy
+msgid "Theme"
+msgstr "模板"
+
+#: setup/setup_config1.tpl:15
+#, fuzzy
+msgid "Apache"
+msgstr "缓存"
+
+#: setup/setup_config1.tpl:19
+msgid "Compress output send to browser"
+msgstr ""
+
+#: setup/setup_config1.tpl:27
+#, fuzzy
+msgid "People and group storage"
+msgstr "People dn attribute"
+
+#: setup/setup_config1.tpl:30
+#, fuzzy
+msgid "People DN attribute"
+msgstr "People dn attribute"
+
+#: setup/setup_config1.tpl:41
+msgid "People storage subtree"
+msgstr ""
+
+#: setup/setup_config1.tpl:50
+#, fuzzy
+msgid "Group storage subtree"
+msgstr "忽略子树"
+
+#: setup/setup_config1.tpl:59
+msgid "Include personal title in user DN"
+msgstr ""
+
+#: setup/setup_config1.tpl:70
+msgid "Relaxed naming policies"
+msgstr ""
+
+#: setup/setup_config1.tpl:81
+#, fuzzy
+msgid "Automatic UIDs"
+msgstr "自动"
+
+#: setup/setup_config1.tpl:97 setup/class_setupStep_Config1.inc:118
+msgid "GID / UID min id"
+msgstr ""
+
+#: setup/setup_config1.tpl:113
+#, fuzzy
+msgid "Number base for people/groups"
+msgstr "用户/组起始 ID"
+
+#: setup/setup_config1.tpl:121
+msgid "Hook for number base"
+msgstr ""
+
+#: setup/setup_config1.tpl:140
+#, fuzzy
+msgid "Password encryption algorithm"
+msgstr "加密算法"
+
+#: setup/setup_config1.tpl:151
+#, fuzzy
+msgid "Password restrictions"
+msgstr "口令过期截止日"
+
+#: setup/setup_config1.tpl:158 setup/setup_config1.tpl:162
+msgid "Password minimum length"
+msgstr ""
+
+#: setup/setup_config1.tpl:169 setup/setup_config1.tpl:173
+msgid "Different characters from old password"
+msgstr ""
+
+#: setup/setup_config1.tpl:182
+#, fuzzy
+msgid "Password change hook"
+msgstr "不允许修改口令"
+
+#: setup/setup_config1.tpl:198
+msgid "Use SASL for kerberos"
+msgstr ""
+
+#: setup/setup_config1.tpl:209
+#, fuzzy
+msgid "Use account expiration"
+msgstr "账号过期于"
+
+#: setup/setup_config1.tpl:221
+msgid ""
+"GOsa supports several encryption types for your passwords. Normally this is "
+"adjustable via user templates, but you can specify a default method to be "
+"used here, too."
+msgstr ""
+"GOsa 支持好几种口令加密算法。通常可以通过用户模板调整算法,但是在这里您可以定"
+"义一个缺省方法。"
+
+#: setup/setup_config1.tpl:222
+#, fuzzy
+msgid ""
+"GOsa always acts as admin and manages access rights internally. This is a "
+"workaround till OpenLDAP's in directory ACI's are    fully implemented. For "
+"this to work, we need the admin DN and the corresponding password."
+msgstr ""
+"GOsa 总是作为 LDAP 管理员,并且管理内部权限。这是一个临时方案直到 OpenLDAP 目"
+"录 ACI 被完全实现。为了让其实现,我们需要管理员 DN 和正确的口令。"
+
+#: setup/setup_config1.tpl:223
+msgid ""
+"Some basic LDAP parameters are tunable and affect the locations where GOsa "
+"saves people and groups, including the way accounts get created. Check the "
+"values below if the fit your needs."
+msgstr ""
+"有的基本的 LDAP 参数是可调的,并影响位置Gosa 保存用户和组的地方。包括账号创建"
+"的方式。点击下面的值如果它们不符合您的需要。"
+
+#: setup/setup_config1.tpl:224
+#, fuzzy
+msgid ""
+"GOsa has modular support for several mail methods. These methods provide "
+"interfaces to users mailboxes and general handling    for quotas. You can "
+"choose the dummy plugin to leave all your mail settings untouched."
+msgstr ""
+"GOsa 通过模组支持几种邮件方法。这些方法提供用户邮箱的界面以及管理用户空间。您"
+"可以选择选择 dummy 插件以保持您的邮件设置不被更改。"
+
+#: setup/class_setupStep_Schema.inc:42 setup/class_setupStep_Schema.inc:43
+msgid "LDAP schema check"
+msgstr ""
+
+#: setup/class_setupStep_Schema.inc:44
+msgid "Perform test on your current LDAP schema"
+msgstr ""
+
+#: setup/class_setupStep_Welcome.inc:38
+#, fuzzy
+msgid "Welcome"
+msgstr "欢迎 %s!"
+
+#: setup/class_setupStep_Welcome.inc:39
+#, fuzzy
+msgid "The welcome message"
+msgstr "解除挂起的邮件"
+
+#: setup/class_setupStep_Welcome.inc:40
+#, fuzzy
+msgid "Welcome to GOsa setup wizard"
+msgstr "欢迎进入 Gosa 安装程序!"
+
+#: setup/class_setupStep_License.inc:56 setup/class_setupStep_License.inc:57
+#, fuzzy
+msgid "License"
+msgstr "行"
+
+#: setup/class_setupStep_License.inc:58
+msgid "Terms and conditions for usage"
+msgstr ""
+
+#: setup/setup_language.tpl:3
+#, fuzzy
+msgid "Please select the preferred language"
+msgstr "请选择一个打印机或者取消。"
+
+#: setup/setup_language.tpl:5
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"'automatic' will use the language requested by the browser. This setting can "
+"be overriden per user."
+msgstr ""
+
+#: setup/setup_language.tpl:9
+#, fuzzy
+msgid "Please select your preferred language here"
+msgstr "首选语种"
+
+#: setup/class_setupStep_Config1.inc:74 setup/class_setupStep_Config1.inc:75
+#, fuzzy
+msgid "GOsa settings 1/3"
+msgstr "用户设置"
+
+#: setup/class_setupStep_Config1.inc:76
+#, fuzzy
+msgid "GOsa generic settings"
+msgstr "用户设置"
+
+#: setup/class_setupStep_Config1.inc:118
+#, fuzzy, php-format
+msgid "The specified value for '%s' must be a numeric value"
+msgstr "指定 '%s' 的值必须是数字类型。"
+
+#: setup/class_setupStep_Config1.inc:122 setup/class_setupStep_Config1.inc:126
+#, php-format
+msgid "Don't add a trailing comma to '%s'."
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:122
+msgid "People storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:126
+msgid "Group storage ou"
+msgstr ""
+
+#: setup/class_setupStep_Config1.inc:130
+#, fuzzy
+msgid "Uid base must be numeric"
+msgstr "超时必须填数字"
+
+#: setup/class_setupStep_Config1.inc:134
+#, fuzzy
+msgid "The given password minimum length is not numeric."
+msgstr "Sieve 端口应为数字。"
+
+#: setup/class_setupStep_Config1.inc:137
+#, fuzzy
+msgid "The given password differ value is not numeric."
+msgstr "Sieve 端口应为数字。"
+
+#: setup/class_setupStep_Config2.inc:80 setup/class_setupStep_Config2.inc:81
+#, fuzzy
+msgid "GOsa settings 2/3"
+msgstr "用户设置"
+
+#: setup/class_setupStep_Config2.inc:82
+#, fuzzy
+msgid "Customize special parameters"
+msgstr "检查参数"
+
+#: setup/class_setupStep_Language.inc:40 setup/class_setupStep_Language.inc:41
+#, fuzzy
+msgid "Language setup"
+msgstr "语言"
+
+#: setup/class_setupStep_Language.inc:42
+msgid "This step allows you to select your preferred language."
+msgstr ""
+
+#: setup/class_setupStep_Language.inc:47
+#, fuzzy
+msgid "Automatic"
+msgstr "自动"
+
+#, fuzzy
+#~ msgid "Choose a base"
+#~ msgstr "选择一个位置"
+
+#~ msgid "Choose subtree to place group in"
+#~ msgstr "选择来放置组的子树"
+
+#~ msgid "Choose subtree to place department in"
+#~ msgstr "选择放置部门的子树"
+
+#, fuzzy
+#~ msgid "Show %s"
+#~ msgstr "显示组"
+
+#, fuzzy
+#~ msgid "people"
+#~ msgstr "显示人员"
+
+#, fuzzy
+#~ msgid "printer"
+#~ msgstr "打印机"
+
+#~ msgid "Select users to add"
+#~ msgstr "选择要添加的用户"
+
+#~ msgid "Select to see servers"
+#~ msgstr "选择显示服务器"
+
+#~ msgid "Search within subtree"
+#~ msgstr "在子树中查找"
+
+#~ msgid "Display users of department"
+#~ msgstr "显示部门的用户"
+
+#~ msgid "Display users matching"
+#~ msgstr "显示匹配的用户"
+
+#~ msgid "Regular expression for matching user names"
+#~ msgstr "匹配用户名的正则表达式"
+
+#, fuzzy
+#~ msgid "List of systems"
+#~ msgstr "用户列表"
+
+#, fuzzy
+#~ msgid "givenname"
+#~ msgstr "名"
+
+#, fuzzy
+#~ msgid "surename"
+#~ msgstr "姓"
+
+#, fuzzy
+#~ msgid "Edit ogroup"
+#~ msgstr "组列表"
+
+#, fuzzy
+#~ msgid "List of ogroups"
+#~ msgstr "组列表"
+
+#, fuzzy
+#~ msgid "Use"
+#~ msgstr "用户"
+
+#, fuzzy
+#~ msgid "Filter entries with this syntax"
+#~ msgstr "用这个语法过滤条目"
+
+#, fuzzy
+#~ msgid "MySQL error"
+#~ msgstr "LDAP 错误:"
+
+#, fuzzy
+#~ msgid "Cannot add location to the database!"
+#~ msgstr "无法连接到数据库!"
+
+#~ msgid "Submit department"
+#~ msgstr "提交部门"
+
+#~ msgid "edit"
+#~ msgstr "编辑"
+
+#~ msgid "delete"
+#~ msgstr "删除"
+
+#, fuzzy
+#~ msgid "Number of listed object groups"
+#~ msgstr "对象组名称"
+
+#, fuzzy
+#~ msgid "Number of listed departments"
+#~ msgstr "部门名称"
+
+#~ msgid "Select to see groups that are primary groups of users"
+#~ msgstr "选择查看用户的主要组"
+
+#, fuzzy
+#~ msgid "primary groups"
+#~ msgstr "主要用户组"
+
+#, fuzzy
+#~ msgid "samba groups mappings"
+#~ msgstr "显示匹配的组"
+
+#, fuzzy
+#~ msgid "samba groups"
+#~ msgstr "Samba 组"
+
+#, fuzzy
+#~ msgid "application settings"
+#~ msgstr "应用程序"
+
+#, fuzzy
+#~ msgid "mail settings"
+#~ msgstr "邮件选项"
+
+#, fuzzy
+#~ msgid "mail groups"
+#~ msgstr "显示邮件组"
+
+#~ msgid "Select to see normal groups that have only functional aspects"
+#~ msgstr "选择查看实用的普通组"
+
+#, fuzzy
+#~ msgid "functional groups"
+#~ msgstr "显示实用组"
+
+#, fuzzy
+#~ msgid "Not allowed"
+#~ msgstr "不允许修改口令"
+
+#, fuzzy
+#~ msgid "Number of listed groups"
+#~ msgstr "组名称"
+
+#, fuzzy
+#~ msgid "group"
+#~ msgstr "组"
+
+#~ msgid "User administration"
+#~ msgstr "用户管理"
+
+#, fuzzy
+#~ msgid "templates"
+#~ msgstr "模板"
+
+#, fuzzy
+#~ msgid "GOsa object"
+#~ msgstr "对象"
+
+#, fuzzy
+#~ msgid "functional users"
+#~ msgstr "显示用户"
+
+#, fuzzy
+#~ msgid "POSIX users"
+#~ msgstr "Posix 设置"
+
+#, fuzzy
+#~ msgid "samba users"
+#~ msgstr "域用户"
+
+#, fuzzy
+#~ msgid "proxy users"
+#~ msgstr "显示代理用户"
+
+#, fuzzy
+#~ msgid "phone users"
+#~ msgstr "显示代理用户"
+
+#~ msgid "GOsa"
+#~ msgstr "GOsa"
+
+#~ msgid "Edit UNIX properties"
+#~ msgstr "编辑 UNIX 属性"
+
+#~ msgid "Edit fax properies"
+#~ msgstr "编辑传真属性"
+
+#~ msgid "Create user with this template"
+#~ msgstr "创建使用该模板的用户"
+
+#, fuzzy
+#~ msgid "user"
+#~ msgstr "用户"
+
+#~ msgid "password"
+#~ msgstr "口令"
+
+#~ msgid "Delete user"
+#~ msgstr "删除用户"
+
+#, fuzzy
+#~ msgid "Number of listed users"
+#~ msgstr "部门名称"
+
+#, fuzzy
+#~ msgid "You have no permission to modify object '%s'!"
+#~ msgstr "您无权删除这个黑名单。"
+
+#, fuzzy
+#~ msgid "You have no permission to use this template!"
+#~ msgstr "您无权删除这个黑名单。"
+
+#, fuzzy
+#~ msgid "You have no permission to change the lock status for this user!"
+#~ msgstr "您无权修改您的口令。"
+
+#, fuzzy
+#~ msgid "Name / Department"
+#~ msgstr "部门名称"
+
+#, fuzzy
+#~ msgid "Regular expression for matching department names"
+#~ msgstr "匹配附件名称的正则表达式"
+
+#~ msgid "Department management"
+#~ msgstr "部门管理"
+
+#, fuzzy
+#~ msgid ""
+#~ "This includes all system and setup informations. Please double check if "
+#~ "your really want to do this since there is no way for GOsa to get your "
+#~ "data back."
+#~ msgstr ""
+#~ "这包含所有系统和设置信息。请再次检查您是否要这么做,因为 GOsa 没有办法将您"
+#~ "的数据找回。"
+
+#, fuzzy
+#~ msgid "ACL role"
+#~ msgstr "MAC 地址"
+
+#~ msgid "Summary"
+#~ msgstr "总结"
+
+#, fuzzy
+#~ msgid "Display acls matching"
+#~ msgstr "显示匹配的宏"
+
+#, fuzzy
+#~ msgid "Edit acl role"
+#~ msgstr "编辑宏"
+
+#, fuzzy
+#~ msgid "Edit acl"
+#~ msgstr "编辑宏"
+
+#, fuzzy
+#~ msgid "Delete acl"
+#~ msgstr "删除宏"
+
+#, fuzzy
+#~ msgid "Gender"
+#~ msgstr "发送者"
+
+#, fuzzy
+#~ msgid "Logging options"
+#~ msgstr "未知"
+
+#, fuzzy
+#~ msgid "Syslog"
+#~ msgstr "系统日志"
+
+#, fuzzy
+#~ msgid "Non common group"
+#~ msgstr "显示邮件组"
+
+#, fuzzy
+#~ msgid "Enable DNS extension"
+#~ msgstr "删除打印机扩展"
+
+#, fuzzy
+#~ msgid "Enable DHCP extension"
+#~ msgstr "删除打印机扩展"
+
+#, fuzzy
+#~ msgid "Enable mime type management"
+#~ msgstr "系统管理"
+
+#, fuzzy
+#~ msgid "Enable FAI release management"
+#~ msgstr "Asterisk 管理"
+
+#, fuzzy
+#~ msgid "Enable user netatalk plugin"
+#~ msgstr "管理 netatalk 账号"
+
+#, fuzzy
+#~ msgid "Password locking"
+#~ msgstr "不允许修改口令"
+
+#, fuzzy
+#~ msgid "Create new"
+#~ msgstr "创建"
+
+#, fuzzy
+#~ msgid ""
+#~ "This account has %s features settings. To disable them, you'll need to "
+#~ "add the %s settings first!"
+#~ msgstr ""
+#~ "这个账户已经启用 unix 功能。要禁用,您需要先删除 samba / 环境变量账户。"
+
+#, fuzzy
+#~ msgid ""
+#~ "GOsa requires this module to show printers that are not defined within "
+#~ "the LDAP."
+#~ msgstr "需要 MySQL 支持来从数据库中读取 GOfax 报告。"
+
+#, fuzzy
+#~ msgid "Role name"
+#~ msgstr "重命名"
+
+#, fuzzy
+#~ msgid "Role description"
+#~ msgstr "单元描述"
+
+#, fuzzy
+#~ msgid "Override sudo role ou"
+#~ msgstr "! 未知 id"
+
+#~ msgid "Terminals"
+#~ msgstr "终端"
+
+#~ msgid "Action"
+#~ msgstr "行动"
+
+#, fuzzy
+#~ msgid "Select this base"
+#~ msgstr "选择一个位置"
+
+#, fuzzy
+#~ msgid "add"
+#~ msgstr "添加"
+
+#, fuzzy
+#~ msgid "remove"
+#~ msgstr "删除"
+
+#~ msgid "You're about to delete the whole LDAP subtree placed under '%s'."
+#~ msgstr "您将要删除 '%s' 下的整个 LDAP 子树。"
+
+#~ msgid "department"
+#~ msgstr "部门"
+
+#, fuzzy
+#~ msgid "Delete acl role"
+#~ msgstr "删除宏"
+
+#, fuzzy
+#~ msgid "Steps"
+#~ msgstr "系统设置"
+
+#, fuzzy
+#~ msgid "Move object"
+#~ msgstr "成员对象"
+
+#, fuzzy
+#~ msgid "Remove object"
+#~ msgstr "成员对象"
+
+#, fuzzy
+#~ msgid "Repository"
+#~ msgstr "仓库"
+
+#, fuzzy
+#~ msgid "DAK repository"
+#~ msgstr "目录"
+
+#, fuzzy
+#~ msgid "Delete users"
+#~ msgstr "删除用户"
+
+#, fuzzy
+#~ msgid "User successfully removed."
+#~ msgstr "导入成功"
+
+#, fuzzy
+#~ msgid "Heimdal options"
+#~ msgstr "邮件选项"
+
+#~ msgid "Hour"
+#~ msgstr "小时"
+
+#, fuzzy
+#~ msgid "Day"
+#~ msgstr "五月"
+
+#, fuzzy
+#~ msgid "Month"
+#~ msgstr "月"
+
+#, fuzzy
+#~ msgid "Year"
+#~ msgstr "查找"
+
+#, fuzzy
+#~ msgid "Password end"
+#~ msgstr "口令"
+
+#, fuzzy
+#~ msgid "Missing parameters!"
+#~ msgstr "应用程序名称"
+
+#, fuzzy
+#~ msgid "Error in ivbb parameter!"
+#~ msgstr "检查参数"
+
+#~ msgid "Birthday"
+#~ msgstr "生日"
+
+#~ msgid "Language"
+#~ msgstr "语言"
+
+#~ msgid "User list of %s on %s"
+#~ msgstr "%s 用户列表于 %s"
+
+#~ msgid "Groups of %s on %s"
+#~ msgstr "%s 的用户组于 %s 上"
+
+#~ msgid "Servers"
+#~ msgstr "服务器"
+
+#~ msgid "Computers"
+#~ msgstr "计算机"
+
+#~ msgid "Common name"
+#~ msgstr "常用名"
+
+#~ msgid "Server name"
+#~ msgstr "服务器名称"
+
+#~ msgid "Servers of %s on %s"
+#~ msgstr "%s服务器于%s"
+
+#~ msgid "Display name"
+#~ msgstr "显示名称"
+
+#~ msgid "Home phone"
+#~ msgstr "住宅电话"
+
+#~ msgid "Initials"
+#~ msgstr "中间名"
+
+#~ msgid "Mobile phone"
+#~ msgstr "移动电话"
+
+#~ msgid "City"
+#~ msgstr "城市"
+
+#~ msgid "Function"
+#~ msgstr "功能"
+
+#~ msgid "Adressbook"
+#~ msgstr "地址簿"
+
+#~ msgid "Adressbook of %s on %s"
+#~ msgstr "%s 的地址簿,于 %s"
+
+#~ msgid "Common Name"
+#~ msgstr "常用名"
+
+#~ msgid "Day of birth"
+#~ msgstr "生日"
+
+#~ msgid "Email address"
+#~ msgstr "邮件地址"
+
+#~ msgid "Organizational unit"
+#~ msgstr "组织/公司部门"
+
+#~ msgid "Postal Code"
+#~ msgstr "邮编"
+
+#~ msgid "Title"
+#~ msgstr "称谓"
+
+#~ msgid "Full"
+#~ msgstr "全部"
+
+#~ msgid "Computers of %s on %s"
+#~ msgstr "%s计算机于%s"
+
+#, fuzzy
+#~ msgid "You have no permission to do LDAP exports!"
+#~ msgstr "您无权查看和编辑 ACL。"
+
+#~ msgid "Could not connect to database server!"
+#~ msgstr "无法连接到数据库!"
+
+#~ msgid "Could not select database!"
+#~ msgstr "无法选择数据库!"
+
+#~ msgid "Database query failed!"
+#~ msgstr "数据库查询失败!"
+
+#, fuzzy
+#~ msgid "List of sudo roles"
+#~ msgstr "用户列表"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role names"
+#~ msgstr "用于匹配组名的正则表达式"
+
+#, fuzzy
+#~ msgid "Regular expression for matching role member names"
+#~ msgstr "匹配对象名的正则表达式"
+
+#, fuzzy
+#~ msgid "Number of listed roles"
+#~ msgstr "组名称"
+
+#, fuzzy
+#~ msgid "Sudo"
+#~ msgstr "姓"
+
+#, fuzzy
+#~ msgid "Manage sudo roles"
+#~ msgstr "域用户"
+
+#, fuzzy
+#~ msgid "sudo role"
+#~ msgstr "! 未知 id"
+
+#, fuzzy
+#~ msgid "string"
+#~ msgstr "警告"
+
+#, fuzzy
+#~ msgid "integer"
+#~ msgstr "打印机"
+
+#, fuzzy
+#~ msgid "lists"
+#~ msgstr "类"
+
+#, fuzzy
+#~ msgid "Invalid"
+#~ msgstr "无效"
+
+#, fuzzy
+#~ msgid "Sudo role"
+#~ msgstr "! 未知 id"
+
+#, fuzzy
+#~ msgid "Host"
+#~ msgstr "钩子"
+
+#, fuzzy
+#~ msgid "Command"
+#~ msgstr "和"
+
+#, fuzzy
+#~ msgid "Run as user"
+#~ msgstr "域用户"
+
+#, fuzzy
+#~ msgid "Available options"
+#~ msgstr "可用的应用程序"
+
+#, fuzzy
+#~ msgid "Sudo role administration"
+#~ msgstr "组管理"
+
+#, fuzzy
+#~ msgid "Flags"
+#~ msgstr "类"
+
+#, fuzzy
+#~ msgid "Enable system deployment"
+#~ msgstr "系统管理"
+
+#, fuzzy
+#~ msgid "Checking for LDAP support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the main extension used by GOsa and therefore really required."
+#~ msgstr "这是 GOsa 用到的主要模块,因此是必须的。"
+
+#~ msgid "Checking for gettext support"
+#~ msgstr "检查 getteext 支持"
+
+#, fuzzy
+#~ msgid "Gettext support is required for internationalization."
+#~ msgstr "对于 GOsa 国际化需要 gettext 支持。"
+
+#~ msgid "Checking for iconv support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is used by GOsa to convert samba munged dial informations and "
+#~ "is therefore required. "
+#~ msgstr "GOsa 用这个模块来转换 samba 扩展信息,因此需要。"
+
+#, fuzzy
+#~ msgid "Checking for mhash support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid "Checking for IMAP support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid ""
+#~ "The IMAP module is needed to communicate with the IMAP server. GOsa "
+#~ "retrieves status information, creates and deletes mail users, etc."
+#~ msgstr ""
+#~ "IMAP 模块用于和 IMAP 服务器通讯。它获取状态信息,创建和删除邮件账户。"
+
+#, fuzzy
+#~ msgid "Checking for multi byte support"
+#~ msgstr "检查 getteext 支持"
+
+#, fuzzy
+#~ msgid "Checking for getacl in IMAP implementation"
+#~ msgstr "检查 imap 中的 getacl"
+
+#, fuzzy
+#~ msgid ""
+#~ "The getacl support is needed to handle shared folder permissions. Old "
+#~ "IMAP extensions are not capable of reading acl's. You need a recent PHP "
+#~ "version to use this feature."
+#~ msgstr ""
+#~ "共享目录需要 getacl 支持。 标准的 IMAP 模块不能访问 acl。需要这个功能,您"
+#~ "需要一个最新版本的 PHP。"
+
+#, fuzzy
+#~ msgid "Checking for MySQL support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid "Checking for kadm5 support"
+#~ msgstr "检查 iconv 支持"
+
+#~ msgid ""
+#~ "Managing users in kerberos requires the kadm5 module which is "
+#~ "downloadable via PEAR network."
+#~ msgstr "在 kerberos 中管理用户需要 kadm5 模块,可以通过 PEAR 网络下载。"
+
+#, fuzzy
+#~ msgid ""
+#~ "This module is required to manage user in kerberos, it is downloadable "
+#~ "via PEAR network"
+#~ msgstr "在 kerberos 中管理用户需要 kadm5 模块,可以通过 PEAR 网络下载。"
+
+#, fuzzy
+#~ msgid "Checking for SNMP support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid ""
+#~ "The simple network management protocol is needed to get status "
+#~ "information from clients."
+#~ msgstr "简单网络管理协议 (SNMP) 需要来做客户端监视。"
+
+#, fuzzy
+#~ msgid "Checking for CUPS support"
+#~ msgstr "检查 iconv 支持"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to read available printers via the IPP protocol instead of "
+#~ "printcap files, you've to install the CUPS module."
+#~ msgstr ""
+#~ "为了从 IPP 协议而非 printcap 文件中读取可用打印机,您必须安装 CUPS 模块。"
+
+#~ msgid "Checking for fping utility"
+#~ msgstr "检查 fping 工具"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is used if you've got a thin client based terminal "
+#~ "environment."
+#~ msgstr "工具 fping 只有在您部署了基于瘦客户机的终端环境下被使用。"
+
+#, fuzzy
+#~ msgid ""
+#~ "The fping utility is only used in thin client based terminal environment."
+#~ msgstr "工具 fping 只有在您部署了基于瘦客户机的终端环境下被使用。"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 passwords, you've to install additional "
+#~ "packages to generate password hashes."
+#~ msgstr "为了使用 SAMBA 2/3, 您必须安装一些额外的软件包来创建口令。"
+
+#, fuzzy
+#~ msgid ""
+#~ "In order to use SAMBA 2/3 you've to install additional perl libraries. "
+#~ "Take a look at mkntpasswd."
+#~ msgstr "为了使用 SAMBA 2/3, 您必须安装一些额外的软件包来创建口令。"
+
+#, fuzzy
+#~ msgid "Choose subtree to place %s in"
+#~ msgstr "将用户放到所选择子树中"
+
+#, fuzzy
+#~ msgid "Show groups with '%s'"
+#~ msgstr "显示包含用户的组"
+
+#, fuzzy
+#~ msgid "server"
+#~ msgstr "服务器"
+
+#, fuzzy
+#~ msgid "Show %s user"
+#~ msgstr "显示 samba 用户"
+
+#, fuzzy
+#~ msgid "functional"
+#~ msgstr "功能"
+
+#, fuzzy
+#~ msgid "posix"
+#~ msgstr "Posix"
+
+#, fuzzy
+#~ msgid "mail"
+#~ msgstr "男"
+
+#, fuzzy
+#~ msgid "samba"
+#~ msgstr "Samba"
+
+#, fuzzy
+#~ msgid "proxy"
+#~ msgstr "代理"
+
+#, fuzzy
+#~ msgid "primary"
+#~ msgstr "总结"
+
+#, fuzzy
+#~ msgid "application"
+#~ msgstr "应用程序"
+
+#, fuzzy
+#~ msgid "Select to see groups containing '%s'."
+#~ msgstr "选择查看包含用户的组"
+
+#, fuzzy
+#~ msgid "Workstations"
+#~ msgstr "工作站"
+
+#, fuzzy
+#~ msgid "Phones"
+#~ msgstr "电话"
+
+#~ msgid "Click here to Change your password"
+#~ msgstr "点击这里来修改您的口令"
+
+#~ msgid "Can't open specified file, check accessibility and or existence"
+#~ msgstr "无法打开特定文件,检查是否可以访问或者是否存在。"
+
+#~ msgid "Can't read specified certificate / or empty string given"
+#~ msgstr "无法读取特定证书或者提供了一个空字符串"
+
+#~ msgid "Can't load certificate, possibly unsupported format (use PEM/DER) "
+#~ msgstr "无法加载证书,可能是不支持的格式(用 PEM/DER)。"
+
+#~ msgid "The Format must be PEM, to output certificate informations"
+#~ msgstr "要输出证书信息,格式必须是 PEM"
+
+#~ msgid "Can't create/open File"
+#~ msgstr "无法创建/打开文件"
+
+#~ msgid "LDAP error:"
+#~ msgstr "LDAP 错误:"
+
+#~ msgid ""
+#~ "Problems with the LDAP server mean that you probably lost the last "
+#~ "changes. Please check your LDAP setup for possible errors and try again."
+#~ msgstr ""
+#~ "LDAP 服务器发生错误,意味着您最后的修改可能丢失。请检查您 LDAP 安装可能的"
+#~ "错误再重试。"
+
+#~ msgid ""
+#~ "Please check your input and fix the error. Press 'OK' to close this "
+#~ "message box."
+#~ msgstr "请检查您的输入并修正错误。按“OK”关闭此对话框。"
+
+#~ msgid "You are not allowed to change your password at this time"
+#~ msgstr "现在您无权修改您的口令"
+
+#, fuzzy
+#~ msgid "Uid number"
+#~ msgstr "系列号"
+
+#, fuzzy
+#~ msgid "Service infrastructure"
+#~ msgstr "在子树中查找"
+
+#, fuzzy
+#~ msgid "Password change failed."
+#~ msgstr "不允许修改口令"
+
+#~ msgid "You are not allowed to set this users password!"
+#~ msgstr "您无权设置这些用户口令!"
+
+#, fuzzy
+#~ msgid "User delete"
+#~ msgstr "删除"
+
+#, fuzzy
+#~ msgid "User deleted"
+#~ msgstr "删除"
+
+#~ msgid "User List of %s on %s"
+#~ msgstr "%s 用户列表于 %s"
+
+#, fuzzy
+#~ msgid "Permission denied!"
+#~ msgstr "允许"
+
+#, fuzzy
+#~ msgid "You are not allowed to perform this action."
+#~ msgstr "您无权删除这个宏!"
+
+#, fuzzy
+#~ msgid "You are not allowed to create ldap dumps."
+#~ msgstr "您无权删除这个用户!"
+
+#, fuzzy
+#~ msgid "Accessibility"
+#~ msgstr "配置文件"
+
+#, fuzzy
+#~ msgid "Configuration warning"
+#~ msgstr "配置文件"
+
+#, fuzzy
+#~ msgid "Password reminder"
+#~ msgstr "口令过期截止日"
+
+#, fuzzy
+#~ msgid "Configuration accessibility"
+#~ msgstr "配置文件"
+
+#~ msgid "New Password"
+#~ msgstr "新口令"
+
+#~ msgid "Change Password"
+#~ msgstr "修改口令"
+
+#, fuzzy
+#~ msgid "Can't locate gotomasses queue file '%s'."
+#~ msgstr "无法创建文件 '%s'。"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses queue file '%s'."
+#~ msgstr "无法创建文件 '%s'。"
+
+#, fuzzy
+#~ msgid "Can't read gotomasses storage file '%s'."
+#~ msgstr "无法创建文件 '%s'。"
+
+#, fuzzy
+#~ msgid "Can't write gotomasses queue file '%s'."
+#~ msgstr "无法创建文件 '%s'。"
+
+#, fuzzy
+#~ msgid "Can't set priority for ID '%s'. ID does not exist."
+#~ msgstr "软件包文件 '%s' 不存在。"
+
+#~ msgid "Select to see template pseudo users"
+#~ msgstr "选择查看伪用户模板"
+
+#~ msgid "Select to see users that have only a GOsa object"
+#~ msgstr "选择查看只拥有一个 GOsa 对象的用户"
+
+#~ msgid "Select to see users that have posix settings"
+#~ msgstr "显示具有 posix 设置的用户"
+
+#~ msgid "Show unix users"
+#~ msgstr "显示 unix 用户"
+
+#~ msgid "Select to see users that have mail settings"
+#~ msgstr "显示具有邮件设置的用户"
+
+#~ msgid "Select to see users that have samba settings"
+#~ msgstr "显示具有 samba 设置的用户"
+
+#~ msgid "Select to see users that have proxy settings"
+#~ msgstr "显示具有代理设置的用户"
+
+#~ msgid "Select to see groups that have samba groups mappings"
+#~ msgstr "选择查看配置了 samba 映射的用户组"
+
+#~ msgid "Select to see groups that have applications configured"
+#~ msgstr "选择查看配置了应用程序的组"
+
+#~ msgid "Select to see groups that have mail settings"
+#~ msgstr "选择查看配置了邮件设置的组"
+
+#, fuzzy
+#~ msgid "acl"
+#~ msgstr "取消"
+
+#~ msgid "Ignore subtrees"
+#~ msgstr "忽略子树"
+
+#~ msgid "Select to see departments"
+#~ msgstr "选择查看部门"
+
+#~ msgid "Select to see GOsa accounts"
+#~ msgstr "选择查看 Gosa 账号"
+
+#~ msgid "Select to see GOsa groups"
+#~ msgstr "选择查看 GOsa 组"
+
+#~ msgid "Select to see applications"
+#~ msgstr "选择查看应用程序"
+
+#~ msgid "Show applications"
+#~ msgstr "显示应用程序"
+
+#~ msgid "Select to see workstations"
+#~ msgstr "选择查看工作站"
+
+#~ msgid "Select to see terminals"
+#~ msgstr "选择查看终端"
+
+#~ msgid "Select to see printers"
+#~ msgstr "选择查看打印机"
+
+#~ msgid "Select to see phones"
+#~ msgstr "选择查看电话"
+
+#, fuzzy
+#~ msgid "Cannot connect to logging server '%s'."
+#~ msgstr "无法连接到数据库!"
+
+#, fuzzy
+#~ msgid "Cannot select database '%s' on server '%s': %s"
+#~ msgstr "无法在主服务器 '%s' 上选择数据库 '%s'。"
+
+#, fuzzy
+#~ msgid "Cannot query database '%s' on server '%s': %s"
+#~ msgstr "无法在主服务器 '%s' 上选择数据库 '%s'。"
+
+#, fuzzy
+#~ msgid "You are going to paste the following entries '%s'."
+#~ msgstr "您将要拷贝条目 '%s'。"
+
+#, fuzzy
+#~ msgid "You are going to paste the following entry '%s'."
+#~ msgstr "您将要拷贝条目 '%s'。"
+
+#, fuzzy
+#~ msgid "Back..."
+#~ msgstr "返回"
+
+#, fuzzy
+#~ msgid "Back %s..."
+#~ msgstr "编辑用户"
+
+#, fuzzy
+#~ msgid "again"
+#~ msgstr "首页"
+
+#, fuzzy
+#~ msgid "You are not allowed to change the password for this user."
+#~ msgstr "现在您无权修改您的口令"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this user."
+#~ msgstr "您无权删除这个用户!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry: %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries: %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete the user '%s'!"
+#~ msgstr "您无权删除这个用户!"
+
+#~ msgid "You're about to delete the user %s."
+#~ msgstr "您将删除用户 %s。"
+
+#~ msgid "You are not allowed to delete this user!"
+#~ msgstr "您无权删除这个用户!"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entry %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#, fuzzy
+#~ msgid "You're about to delete the following entries %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#~ msgid "You're about to delete the group '%s'."
+#~ msgstr "您将要删除组 '%s'。"
+
+#, fuzzy
+#~ msgid "You have no permission to edit this ACL!"
+#~ msgstr "您无权删除这个部门。"
+
+#, fuzzy
+#~ msgid "You're about to delete the acl %s."
+#~ msgstr "您将要删除宏 '%s'。"
+
+#, fuzzy
+#~ msgid "You have no permission to delete this entry!"
+#~ msgstr "您无权删除这个部门。"
+
+#, fuzzy
+#~ msgid "List of acl"
+#~ msgstr "宏列表"
+
+#~ msgid "Required field 'Name' is not set."
+#~ msgstr "需要的“姓名”字段没有设置"
+
+#~ msgid "Required field 'Description' is not set."
+#~ msgstr "需要的字段“描述”没有设置。"
+
+#, fuzzy
+#~ msgid ""
+#~ "Moving LDAP tree failed: destination tree is a subtree of the source!"
+#~ msgstr "移动树失败。目标树是源树的子树。"
+
+#~ msgid "This 'dn' is no object group."
+#~ msgstr "这个 'dn' 不是对象组。"
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entry %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#, fuzzy
+#~ msgid "You're about to delete the following object entries %s"
+#~ msgstr "您将要删除这个对象组 '%s'。"
+
+#~ msgid "You're about to delete the object group '%s'."
+#~ msgstr "您将要删除这个对象组 '%s'。"
+
+#~ msgid "Name of object groups"
+#~ msgstr "对象组名称"
+
+#~ msgid "Select to see groups containing groups"
+#~ msgstr "选择查看包含组的组"
+
+#~ msgid "Show groups containing groups"
+#~ msgstr "显示包含组的组"
+
+#~ msgid "Select to see groups containing applications"
+#~ msgstr "选择查看包含应用程序的组"
+
+#~ msgid "Show groups containing applications"
+#~ msgstr "显示包含应用程序的组"
+
+#~ msgid "Select to see groups containing departments"
+#~ msgstr "选择查看包含部门的组"
+
+#~ msgid "Show groups containing departments"
+#~ msgstr "显示包含组织的组"
+
+#~ msgid "Select to see groups containing servers"
+#~ msgstr "选择查看包含服务器的组"
+
+#~ msgid "Show groups containing servers"
+#~ msgstr "显示包含服务器的组"
+
+#~ msgid "Select to see groups containing workstations"
+#~ msgstr "选择查看包含工作站的组"
+
+#~ msgid "Show groups containing workstations"
+#~ msgstr "显示包含工作站的组"
+
+#, fuzzy
+#~ msgid "Select to see groups containing windows workstations"
+#~ msgstr "选择查看包含工作站的组"
+
+#, fuzzy
+#~ msgid "Show groups containing windows workstations"
+#~ msgstr "显示包含工作站的组"
+
+#~ msgid "Select to see groups containing terminals"
+#~ msgstr "选择查看包含终端的组"
+
+#~ msgid "Show groups containing terminals"
+#~ msgstr "显示包含终端的组"
+
+#~ msgid "Select to see groups containing printer"
+#~ msgstr "选择查看包含打印机的组"
+
+#~ msgid "Show groups containing printer"
+#~ msgstr "显示包含打印机的组"
+
+#~ msgid "Select to see groups containing phones"
+#~ msgstr "选择查看包含电话的组"
+
+#~ msgid "Show groups containing phones"
+#~ msgstr "显示包含电话的组"
+
+#, fuzzy
+#~ msgid "You are not allowed to remove this entry."
+#~ msgstr "您无权删除这个条目!"
+
+#, fuzzy
+#~ msgid "Edit ACL"
+#~ msgstr "编辑"
+
+#, fuzzy
+#~ msgid "ACLs"
+#~ msgstr "ACL"
+
+#~ msgid "Groupname / Department"
+#~ msgstr "组名 / 部门"
+
+#~ msgid "This 'dn' is no group."
+#~ msgstr "该 'dn' 不是一个组。"
+
+#, fuzzy
+#~ msgid "Deactivated"
+#~ msgstr "活动"
+
+#~ msgid "Active"
+#~ msgstr "活动"
+
+#, fuzzy
+#~ msgid "Members:"
+#~ msgstr "成员"
+
+#, fuzzy
+#~ msgid "Adding a lock failed."
+#~ msgstr "保存 FAI 钩子失败"
+
+#, fuzzy
+#~ msgid "Removing a lock failed."
+#~ msgstr "删除 FAI 钩子失败"
+
+#, fuzzy
+#~ msgid "Setting the password failed!"
+#~ msgstr "设置口令失败。LDAP 服务器返回 '%s'。"
+
+#, fuzzy
+#~ msgid "Please enter a valid serial number!"
+#~ msgstr "请输入一个有效的系列号"
+
+#, fuzzy
+#~ msgid "You have no permission to move this object to '%s'!"
+#~ msgstr "您无权删除这个黑名单。"
+
+#~ msgid ""
+#~ "This menu allows you to create, edit and delete selected users. Having a "
+#~ "great number of users, you may want to use the range selectors on top of "
+#~ "the user list."
+#~ msgstr ""
+#~ "这个菜单允许您创建,删除和修改所选的用户。对于一个长列表,您可以通过列表上"
+#~ "面的范围选择来调整。"
+
+#~ msgid ""
+#~ "This menu allows you to add, edit and remove selected groups. You may "
+#~ "want to use the range selector on top of the group listbox, when working "
+#~ "with a large number of groups."
+#~ msgstr ""
+#~ "这个菜单允许您添加,编辑和删除所选的组。对于一个长列表,您可以通过选择框上"
+#~ "面的范围选择来调整。"
+
+#, fuzzy
+#~ msgid "This menu allows you to edit and delete selected acls."
+#~ msgstr "这个菜单允许您创建,删除和修改 FAI 分类。"
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to create, delete and edit selected departments. "
+#~ "Having a large number of departments, you might prefer the range "
+#~ "selectors on top of the department list."
+#~ msgstr ""
+#~ "这个菜单允许您创建,删除和修改所选的部门。对于一个长列表,您可以通过列表上"
+#~ "面的范围选择来调整。"
+
+#~ msgid ""
+#~ "This menu allows you to add, edit or remove selected groups. You may want "
+#~ "to use the range selector on top of the group listbox, when working with  "
+#~ "a large number of groups."
+#~ msgstr ""
+#~ "这个菜单允许您添加,编辑和删除所选的组。对于一个长列表,您可以通过选择框上"
+#~ "面的范围选择来调整。"
+
+#~ msgid "Can't bind to LDAP. Please contact the system administrator."
+#~ msgstr "无法绑定 LDAP。请联系系统管理员。"
+
+#, fuzzy
+#~ msgid "Removing of user/generic account with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Saving of user/generic account with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#~ msgid "This account has no unix extensions."
+#~ msgstr "这个账户未包含 unix 扩展。"
+
+#~ msgid "Remove posix account"
+#~ msgstr "删除 posix 账户"
+
+#~ msgid "Create posix account"
+#~ msgstr "创建 posix 账户"
+
+#, fuzzy
+#~ msgid "Removing of user/posix account with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Saving of user/posix account with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#~ msgid "Unix settings"
+#~ msgstr "Unix 设置"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "行业"
+
+#, fuzzy
+#~ msgid "Send user notifications"
+#~ msgstr "用户信息"
+
+#, fuzzy
+#~ msgid "Please specify at least one recipient to send a message!"
+#~ msgstr "请提供一个有效的脚本名。"
+
+#, fuzzy
+#~ msgid "Cannot find a DESC tag in file '%s'!"
+#~ msgstr "无法创建文件 '%s'。"
+
+#, fuzzy
+#~ msgid "Notification"
+#~ msgstr "行业"
+
+#, fuzzy
+#~ msgid "Notification plugin"
+#~ msgstr "主机通知选项"
+
+#, fuzzy
+#~ msgid "Allow sending notifications"
+#~ msgstr "主机通知选项"
+
+#, fuzzy
+#~ msgid "Notification target"
+#~ msgstr "未安装证书"
+
+#, fuzzy
+#~ msgid "Recipients"
+#~ msgstr "收件人"
+
+#~ msgid "Message"
+#~ msgstr "信息"
+
+#~ msgid "Import"
+#~ msgstr "导入"
+
+#, fuzzy
+#~ msgid "Notification send!"
+#~ msgstr "未安装证书"
+
+#, fuzzy
+#~ msgid "Saving of object group/generic with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#, fuzzy
+#~ msgid "Removing of object group/generic with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Removing of department with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Saving of department with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#, fuzzy
+#~ msgid "Handle object tagging with dn '%s' failed."
+#~ msgstr "处理对象标记失败"
+
+#, fuzzy
+#~ msgid "Saving ACLs with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#, fuzzy
+#~ msgid "Removing of aclRole with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Removing aclRole from objectgroup '%s' failed"
+#~ msgstr "从对象组 '%s' 删除应用程序失败"
+
+#, fuzzy
+#~ msgid "Removing of groups/generic with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Saving object snapshot with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#, fuzzy
+#~ msgid "Method get available snapshots with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Method get deleted snapshots with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Restore snapshot with dn '%s' failed."
+#~ msgstr "删除 dn 为 '%s' 的 user/kolab 账号失败。"
+
+#, fuzzy
+#~ msgid "Creating subtree '%s' failed."
+#~ msgstr "创建 FAI script base 失败"
+
+#, fuzzy
+#~ msgid "Ldap import with dn '%s' failed."
+#~ msgstr "保存 dn 为 '%s' 的 user/kolab 账号为空。"
+
+#, fuzzy
+#~ msgid "This does something"
+#~ msgstr "******"
+
+#~ msgid "The required field 'Home directory' is not set."
+#~ msgstr "需要的字段“用户主目录”没有设置。"
+
+#~ msgid "Please enter a valid path in 'Home directory' field."
+#~ msgstr "请在“用户主目录”输入一个有效的地址。"
+
+#~ msgid "Value specified as 'UID' is not valid."
+#~ msgstr "'UID' 赋值无效。"
+
+#~ msgid "Value specified as 'GID' is not valid."
+#~ msgstr "'GID' 赋值无效。"
+
+#~ msgid "Value specified as 'GID' is too small."
+#~ msgstr "'UID' 赋值太小。"
+
+#~ msgid "Value specified as 'shadowMin' is not valid."
+#~ msgstr "'shadowMin' 赋值无效。"
+
+#~ msgid "Value specified as 'shadowMax' is not valid."
+#~ msgstr "'shadowMax' 赋值无效。"
+
+#~ msgid "Value specified as 'shadowWarning' is not valid."
+#~ msgstr "'shadowWarning' 赋值无效。"
+
+#~ msgid "'shadowWarning' without 'shadowMax' makes no sense."
+#~ msgstr "不提供 'shadowMax' 的 'shadowWarning' 没有意义。"
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be smaller than 'shadowMax'."
+#~ msgstr "提供的 'shadowWarning' 应该小于'shadowMax'。"
+
+#~ msgid ""
+#~ "Value specified as 'shadowWarning' should be greater than 'shadowMin'."
+#~ msgstr "提供的 'shadowWarning' 应该大于'shadowMin'。"
+
+#~ msgid "Value specified as 'shadowInactive' is not valid."
+#~ msgstr "'shadowInactive' 赋值无效。"
+
+#~ msgid "'shadowInactive' without 'shadowMax' makes no sense."
+#~ msgstr "不提供 'shadowMax' 的 'shadowInactive' 没有意义。"
+
+#~ msgid "The required field 'Given name' is not set."
+#~ msgstr "需要的“教名”字段没有设置"
+
+#~ msgid "The required field 'Login' is not set."
+#~ msgstr "需要的“登录名”字段没有设置"
+
+#~ msgid ""
+#~ "There's already a person with this 'Name'/'Given name' combination in the "
+#~ "database."
+#~ msgstr "数据库中已经有同样“姓名/教名”组合的用户。"
+
+#~ msgid ""
+#~ "The field 'Login' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr "登录名包含无效字符。只允许小写字母,数字和短线。"
+
+#~ msgid "The field 'Homepage' contains an invalid URL definition."
+#~ msgstr "“主页”字段包含无效 URL 定义"
+
+#~ msgid "The field 'Given name' contains invalid characters."
+#~ msgstr "“教名”字段包含无效字符。"
+
+#~ msgid "The field 'Phone' contains an invalid phone number."
+#~ msgstr "“电话”字段包含无效电话号码。"
+
+#~ msgid "The field 'Mobile' contains an invalid phone number."
+#~ msgstr "“手机”字段包含无效手机号码。"
+
+#~ msgid "The field 'Pager' contains an invalid phone number."
+#~ msgstr "“传呼”字段包含无效电话号码。"
+
+#~ msgid ""
+#~ "The field 'Name' contains invalid characters. Lowercase, numbers and "
+#~ "dashes are allowed."
+#~ msgstr "字段 'Name' 包含无效字符。只允许小写字母,数字和短线。"
+
+#~ msgid "Value specified as 'Name' is already used."
+#~ msgstr "指定为“名称”的值已经在使用了。"
+
+#, fuzzy
+#~ msgid "Please select a valid template."
+#~ msgstr "请选择一个有效文件。"
+
+#~ msgid "A person with the choosen name is already used in this tree."
+#~ msgstr "使用所选名称的用户已经在树中被使用了。"
+
+#~ msgid "Department with that 'Name' already exists."
+#~ msgstr "相同名称的部门已经存在。"
+
+#~ msgid ""
+#~ "The field 'Name' contains the reserved word '%s'. Please choose another "
+#~ "name."
+#~ msgstr "字段“名称”包含保留字 '%s'。请选择其他名字。"
+
+#~ msgid "There is already an object with this cn."
+#~ msgstr "已经存在一个有相同 cn 的对象。"
+
+#, fuzzy
+#~ msgid "Cannot use %s encryption: no PHP functions for sha1/mhash available"
+#~ msgstr "无法使用 sha 来加密,缺少函数 sha1 / mhash / crypt"
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTCREATE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr "命令 '%s',作为插件 '%s' 的 POSTCREATE 好像并不存在。"
+
+#~ msgid ""
+#~ "Command '%s', specified as POSTREMOVE for plugin '%s' doesn't seem to "
+#~ "exist."
+#~ msgstr "命令 '%s',作为插件 '%s' 的 POSTREMOVE 好像并不存在。"
+
+#, fuzzy
+#~ msgid "You are going to paste the cutted entry '%s'."
+#~ msgstr "您将要拷贝条目 '%s'。"
+
+#, fuzzy
+#~ msgid "You have no permission to copy and paste object '%s'!"
+#~ msgstr "您无权查看和编辑 ACL。"
+
+#, fuzzy
+#~ msgid "Please specify a valid description for this snapshot."
+#~ msgstr "请为这个附件指定一个有效名称。"
+
+#, fuzzy
+#~ msgid ""
+#~ "Setting for SMBHASH in gosa.conf is incorrect! Cannot change Samba "
+#~ "password."
+#~ msgstr "在 gosa.conf 中 SMBHASH 的设置不正确!无法修改 Samba 口令。"
+
+#, fuzzy
+#~ msgid "User delted"
+#~ msgstr "用户图片"
+
+#, fuzzy
+#~ msgid "System deployment"
+#~ msgstr "系统管理"
+
+#, fuzzy
+#~ msgid "Your are about to delete the following tasks: %s"
+#~ msgstr "您将要删除条目 %s。"
+
+#, fuzzy
+#~ msgid ""
+#~ "This menu allows you to remove and change the properties of GOsa deamon "
+#~ "tasks."
+#~ msgstr ""
+#~ "这个菜单允许您添加,删除和修改所选系统的属性。您只能添加已经启动过一次的系"
+#~ "统。"
+
+#, fuzzy
+#~ msgid "List of queued deamon jobs."
+#~ msgstr "部门列表"
+
+#, fuzzy
+#~ msgid "Target"
+#~ msgstr "芯片组"
+
+#~ msgid "Task"
+#~ msgstr "任务"
+
+#, fuzzy
+#~ msgid "Schedule"
+#~ msgstr "PHPscheduleit"
+
+#, fuzzy
+#~ msgid "Reomve"
+#~ msgstr "删除"
+
+#, fuzzy
+#~ msgid "Say hello"
+#~ msgstr "Shell"
+
+#, fuzzy
+#~ msgid "System mass deployment"
+#~ msgstr "系统管理"
+
+#, fuzzy
+#~ msgid "Header Tag"
+#~ msgstr "邮件头"
+
+#, fuzzy
+#~ msgid "Schedule Execution"
+#~ msgstr "PHPscheduleit"
+
+#, fuzzy
+#~ msgid "Tag"
+#~ msgstr "芯片组"
+
+#, fuzzy
+#~ msgid "Sekunde"
+#~ msgstr "发送者"
+
+#, fuzzy
+#~ msgid "Mac"
+#~ msgstr "三月"
+
+#, fuzzy
+#~ msgid "Available targets"
+#~ msgstr "可用的应用程序"
+
+#, fuzzy
+#~ msgid "Show object groups"
+#~ msgstr "对象组"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl!"
+#~ msgstr "您无权删除这个宏!"
+
+#, fuzzy
+#~ msgid "You are not allowed to delete this acl role!"
+#~ msgstr "您无权删除这个宏!"
+
+#~ msgid ""
+#~ "Your search method returned more than '%s' users, only '%s' users are "
+#~ "shown."
+#~ msgstr "您的查询方式返回超过 '%s' 用户,只有 '%s' 用户被显示。"
+
+#~ msgid "No configured SID found for '%s'."
+#~ msgstr "没有发现为 '%s' 配置的 SID"
+
+#~ msgid "No configured RIDBASE found for '%s'."
+#~ msgstr "没有发现为 '%s' 配置的 RIDBASE"
+
+#~ msgid "You are not allowed to delete this group!"
+#~ msgstr "您无权删除这个组!"
+
+#~ msgid "You have no permission to remove this department."
+#~ msgstr "您无权删除这个部门。"
+
+#~ msgid "You are not allowed to delete this object group!"
+#~ msgstr "您无权删除这个对象组!"
+
+#, fuzzy
+#~ msgid "Network resolv hook"
+#~ msgstr "网络地址"
+
+#~ msgid "Administration"
+#~ msgstr "系统管理"
+
+#~ msgid "Addons"
+#~ msgstr "插件"
+
+#, fuzzy
+#~ msgid "ACL Role"
+#~ msgstr "角色"
+
+#~ msgid "Unix"
+#~ msgstr "Unix"
+
+#~ msgid "Connectivity"
+#~ msgstr "互联"
+
+#, fuzzy
+#~ msgid "Scalix"
+#~ msgstr "特殊"
+
+#~ msgid "Nagios"
+#~ msgstr "Nagios"
+
+#~ msgid "Options"
+#~ msgstr "选项"
+
+#~ msgid "Parameter"
+#~ msgstr "参数"
+
+#, fuzzy
+#~ msgid "Inventory"
+#~ msgstr "添加清单(inventory)"
+
+#~ msgid "Services"
+#~ msgstr "服务"
+
+#~ msgid "OGo"
+#~ msgstr "OGo"
+
+#~ msgid "Excel Export"
+#~ msgstr "导出为 Excel"
+
+#~ msgid "CSV Import"
+#~ msgstr "CSV 导入"
+
+#~ msgid "Partitions"
+#~ msgstr "分区"
+
+#~ msgid "Script"
+#~ msgstr "脚本"
+
+#~ msgid "Variables"
+#~ msgstr "变量"
+
+#~ msgid "Profiles"
+#~ msgstr "Profiles"
+
+#~ msgid "Packages"
+#~ msgstr "软件包"
+
+#, fuzzy
+#~ msgid "GOsa logs"
+#~ msgstr "Syslog 服务"
+
+#~ msgid ""
+#~ "Can't connect to glpi database, there is no mysl extension available in "
+#~ "your php setup."
+#~ msgstr "无法连接到 glpi 数据库,PHP 没有安装 mysql 扩展。"
+
+#~ msgid "Can't get specified attachment file, there is no entry with this id."
+#~ msgstr "无法获取指定的附件文件,没有和该 id 匹配的条目。"
+
+#~ msgid "Can't open file '%s', possibly the file does not exist."
+#~ msgstr "无法打开文件 '%s',可能是文件不存在。"
+
+#~ msgid "Can't read file '%s', check permissions."
+#~ msgstr "无法读取文件'%s',检查权限。"
diff --git a/gosa-core/plugins/addons/bugsubmitter/class_bugsubmitter.inc b/gosa-core/plugins/addons/bugsubmitter/class_bugsubmitter.inc
new file mode 100644
index 0000000..77eabf2
--- /dev/null
+++ b/gosa-core/plugins/addons/bugsubmitter/class_bugsubmitter.inc
@@ -0,0 +1,29 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_bugsubmitter.inc 9279 2008-03-04 07:33:27Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class bugsubmitter extends plugin
+{
+	var $plDescription = "Bug submitter";
+	var $plHeadline= "<a	href='https://oss.gonicus.de/labs/gosa/newticket'	target='_blank'>Bugsubmitter</a>";
+}
+
+?>
diff --git a/gosa-core/plugins/addons/bugsubmitter/main.inc b/gosa-core/plugins/addons/bugsubmitter/main.inc
new file mode 100644
index 0000000..73be80e
--- /dev/null
+++ b/gosa-core/plugins/addons/bugsubmitter/main.inc
@@ -0,0 +1,26 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 9279 2008-03-04 07:33:27Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+header('location:?');
+exit();
+$display = "";
+?>
diff --git a/gosa-core/plugins/admin/acl/acl-filter.tpl b/gosa-core/plugins/admin/acl/acl-filter.tpl
new file mode 100644
index 0000000..c5f2fc2
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/acl-filter.tpl
@@ -0,0 +1,37 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+{$ACL} <LABEL for='MAIL'>{t}Show access control lists{/t}</LABEL><br>
+{$ROLE} <LABEL for='SAMBA'>{t}Show roles{/t}</LABEL><br>
+
+ <div style="border-top:1px solid #AAAAAA"></div>
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/acl/acl-filter.xml b/gosa-core/plugins/admin/acl/acl-filter.xml
new file mode 100644
index 0000000..adf81e4
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/acl-filter.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>acl</category>
+    <template>acl-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>ACL</backend>
+      <filter>(|$ACL$ROLE)$NAME</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>ou</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(ou=*$*)(description=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>ACL</backend>
+      <filter>(&(|(objectClass=gosaAcl)(objectClass=gosaRole))(|(ou=*$NAME*)(description=*$NAME*)(cn=*$NAME*)))</filter>
+      <attribute>ou</attribute>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>ACL</tag>
+    <default>true</default>
+    <set>(objectClass=gosaAcl)</set>
+    <unset></unset>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>ROLE</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gosaRole)</set>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/acl/acl-list.tpl b/gosa-core/plugins/admin/acl/acl-list.tpl
new file mode 100644
index 0000000..c9d5114
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/acl-list.tpl
@@ -0,0 +1,28 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/acl/acl-list.xml b/gosa-core/plugins/admin/acl/acl-list.xml
new file mode 100644
index 0000000..588c909
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/acl-list.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>true</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>acl-list.tpl</template>
+    <module>acl</module>
+    <label>List of acls</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Acl</label>
+      <objectClass>gosaAcl</objectClass>
+      <category>acl</category>
+      <class>acl</class>
+      <image>images/lists/locked.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Role</label>
+      <objectClass>gosaRole</objectClass>
+      <category>acl</category>
+      <class>acl</class>
+      <image>plugins/acl/images/role.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|200px||170px;r|</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>dn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:filterLabel(row,dn,ou,cn,pid,base)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",description)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+  </table>
+
+  <actionmenu>
+
+    <action>
+     <type>sub</type>
+     <image>images/lists/new.png</image>
+     <label>Create</label>
+
+     <action>
+      <name>new</name>
+      <type>entry</type>
+      <image>plugins/acl/images/role.png</image>
+      <label>Role</label>
+     </action>
+
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <label>Remove</label>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>exporter</type>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <type>snapshot</type>
+    </action>
+
+  </actionmenu>
+
+  <actiontriggers snapshot="true" copypaste="true">
+
+    <action>
+      <name>cp</name>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit</label>
+    </action>
+
+    <action>
+      <name>snapshot</name>
+      <type>snapshot</type>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <acl>acl/acl[d]</acl>
+      <label>Remove</label>
+    </action>
+
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/acl/acl_role.tpl b/gosa-core/plugins/admin/acl/acl_role.tpl
new file mode 100644
index 0000000..25fb989
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/acl_role.tpl
@@ -0,0 +1,79 @@
+{if $dialogState eq 'head'}
+
+<h1>{t}Assigned ACL for current entry{/t}</h1>
+<table>
+<tr>
+	<td>
+		{t}Name{/t}
+	</td>
+	<td>	
+{render acl=$cnACL}
+		<input type="text" name='cn' value="{$cn}" style='width:200px;'>
+{/render}
+	</td>
+</tr>
+<tr>
+	<td>
+		{t}Description{/t}
+	</td>
+	<td>
+{render acl=$descriptionACL}
+		<input type="text" name='description' value="{$description}" style='width:200px;'>
+{/render}
+	</td>
+</tr>
+<tr>
+	<td>
+		{t}Base{/t}{$MUST}
+	</td>
+	<td>
+{render acl=$baseACL}
+  {$base}
+{/render}
+	</td>
+</tr>
+</table>
+{$aclList}
+{render acl=$gosaAclEntryACL}
+<input type="submit" name="new_acl" value="{t}New ACL{/t}">
+{/render}
+
+{/if}
+
+{if $dialogState eq 'create'}
+<h1>{t}ACL type{/t} <select size="1" name="aclType" title="{t}Select an acl type{/t}" onChange="document.mainform.submit()">{html_options options=$aclTypes selected=$aclType}<option disabled> </option></select> {if $javascript eq 'false'}<input type="submit" value="{msgPool type=applyButton}" name="refresh">{/if}</h1>
+
+<p class="seperator"> </p>
+
+
+<h1>{t}List of available ACL categories{/t}</h1>
+{$aclList}
+
+<p class="seperator"> </p>
+<div style='text-align:right;margin-top:5px'>
+{render acl=$gosaAclEntryACL}
+	<input type="submit" name="submit_new_acl" value="{msgPool type=applyButton}">
+	 
+{/render}
+	<input type="submit" name="cancel_new_acl" value="{msgPool type=cancelButton}">
+</div>
+{/if}
+
+{if $dialogState eq 'edit'}
+
+<h1>{$headline}</h1>
+
+{render acl=$gosaAclEntryACL}
+{$aclSelector}
+{/render}
+
+<p class="seperator"> </p>
+<div style='text-align:right;margin-top:5px'>
+{render acl=$gosaAclEntryACL}
+	<input type="submit" name="submit_edit_acl" value="{msgPool type=applyButton}">
+{/render}
+	 
+	<input type="submit" name="cancel_edit_acl" value="{msgPool type=cancelButton}">
+</div>
+{/if}
+<input type='hidden' name='acl_role_posted' value='1'>
diff --git a/gosa-core/plugins/admin/acl/class_aclManagement.inc b/gosa-core/plugins/admin/acl/class_aclManagement.inc
new file mode 100644
index 0000000..5bdd271
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/class_aclManagement.inc
@@ -0,0 +1,164 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_aclManagement.inc 15411 2010-01-28 10:39:33Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class aclManagement extends management
+{
+  var $plHeadline     = "Acl";
+  var $plDescription  = "Manage access control lists";
+  var $plIcon  = "plugins/acl/images/plugin.png";
+
+  // Tab definition 
+  protected $tabClass = "aclroletab";
+  protected $tabType = "ACLROLETAB";
+  protected $aclCategory = "acl";
+  protected $aclPlugin   = "acl";
+  protected $objectName   = "acl";
+
+  function __construct(&$config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("aclRoleRDN")); // ACLs are attached to department containers
+
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("acl-filter.xml", true));
+      $filter->setObjectStorage($this->storagePoints);
+    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("acl-list.xml", true));
+    $headpage->registerElementFilter("filterLabel", "aclManagement::filterLabel");
+    $headpage->setFilter($filter);
+
+    // Add copy&paste and snapshot handler.
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler = new CopyPasteHandler($this->config);
+    }
+    if($this->config->get_cfg_value("enableSnapshots") == "true"){
+      $this->snapHandler = new SnapshotHandler($this->config);
+    }
+
+    parent::__construct($this->config, $ui, "acl", $headpage);
+  }
+
+  function removeEntryConfirmed($action="",$target=array(),$all=array(),
+      $altTabClass="",$altTabType="",$altAclCategory="")
+  {
+    @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,$target,"Entry removel confirmed!");
+
+    $headpage = $this->getHeadpage();
+    foreach($this->dns as $key => $dn){
+
+      // Check permissions, are we allowed to remove this object?
+      $acl = $this->ui->get_permissions($dn, $this->aclCategory."/".$this->aclPlugin);
+      if(preg_match("/d/",$acl)){
+
+        if($headpage->getType($dn) == "gosaRole"){
+          $tabClass = "aclroletab";
+          $tabTape  = "ACLROLETAB";
+        }else{
+          $tabClass = "acltab";
+          $tabTape  = "ACLTAB";
+        }
+
+        // Delete the object
+        $this->dn = $dn;
+        $this->tabObject= new $tabClass($this->config,$this->config->data['TABS'][$tabType], $this->dn, $aclCategory, true, true);
+        $this->tabObject->set_acl_base($this->dn);
+        $this->tabObject->delete ();
+        $this->tabObject->parent = &$this;
+
+        // Remove the lock for the current object.
+        del_lock($this->dn);
+      } else {
+        msg_dialog::display(_("Permission error"), msgPool::permDelete(), ERROR_DIALOG);
+        new log("security","groups/".get_class($this),$dn,array(),"Tried to trick deletion.");
+      }
+    }
+
+    // Cleanup
+    $this->remove_lock();
+    $this->closeDialogs();
+  }
+
+
+  function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $this->skipFooter = TRUE;
+    $altTabClass = "aclroletab";
+    $altTabType = "ACLROLETAB";
+    return(management::newEntry($action,$target,$all,$altTabClass,$altTabType,$altAclCategory));
+  }
+
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $this->skipFooter = TRUE;
+    if(count($target) == 1){
+  
+      // Set dummy tab object...
+      $this->dn = array_pop($target);
+      $headpage = $this->getHeadpage();
+      if($headpage->getType($this->dn) == "gosaRole"){
+        $altTabClass = "aclroletab";
+        $altTabType  = "ACLROLETAB";
+      }else{
+        $altTabClass = "acltab";
+        $altTabType  = "ACLTAB";
+      }
+      return(management::editEntry($action,array($this->dn),$all,$altTabClass,$altTabType,$altAclCategory));
+    }
+  }
+
+
+  function detectPostActions()
+  {
+    $action= management::detectPostActions();
+    if(isset($_POST['edit_acl'])) $action['action'] = "edit_acl";
+    if(isset($_POST['edit_role'])) $action['action'] = "edit_role";
+    return($action);
+  }
+  
+
+  // A filter which allows to open a department by clicking on the departments name.
+  static function filterLabel($row,$dn,$ou= array(),$pid=0,$base="")
+  {
+    $ou = $ou[0];
+    if($dn == $base){
+      $ou =" . ";
+    }
+    if(!preg_match("/^cn=/",$dn)){
+      $ou.="    ["._("ACL Assignment")."]";
+    }
+
+    $dn= LDAP::fix(func_get_arg(1));
+    return("<a href='?plug=".$_GET['plug']."&PID=$pid&act=listing_edit_$row' title='$dn'>$ou</a>");
+  }
+
+
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/acl/class_aclRole.inc b/gosa-core/plugins/admin/acl/class_aclRole.inc
new file mode 100644
index 0000000..f5f6479
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/class_aclRole.inc
@@ -0,0 +1,784 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_aclRole.inc 15578 2010-02-03 14:14:43Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class aclrole extends acl
+{
+  /* Definitions */
+  var $plHeadline= "Access control roles";
+  var $plDescription= "Edit AC roles";
+
+  /* attribute list for save action */
+  var $attributes= array('gosaAclTemplate',"cn","description");
+  var $objectclasses= array('top','gosaRole');
+
+  /* Helpers */
+  var $dialogState= "head";
+  var $aclType= "";
+  var $aclObject= "";
+  var $aclContents= array();
+  var $target= "group";
+  var $aclTypes= array();
+  var $aclObjects= array();
+  var $recipients= array();
+  var $isContainer= TRUE;
+  var $currentIndex= 0;
+  var $wasNewEntry= FALSE;
+  var $ocMapping= array();
+  var $savedAclContents= array();
+  var $myAclObjects = array();
+
+  /* Role attributes */
+  var $gosaAclTemplate= "";
+  var $cn = "";
+  var $orig_cn = "";
+  var $description = "";
+  var $orig_dn;
+  var $orig_base;
+  var $base ="";
+  var $baseSelector;
+
+  function aclrole (&$config,  $dn= NULL)
+  {
+    /* Include config object */
+    plugin::plugin($config, $dn);
+
+    if($this->dn == "new"){
+      $ui = get_userinfo();
+      $this->base= dn2base(session::global_is_set("CurrentMainBase")?"cn=test,".session::global_get("CurrentMainBase"):$ui->dn);
+    }else{
+      $this->base = preg_replace("/^[^,]+,[^,]+,/","",$this->dn);
+      new log("view","acl/".get_class($this),$this->dn);
+    }
+   
+    /* Load ACL's */
+    $this->gosaAclTemplate= array();
+    if (isset($this->attrs["gosaAclTemplate"])){
+      for ($i= 0; $i<$this->attrs["gosaAclTemplate"]['count']; $i++){
+        $acl= $this->attrs["gosaAclTemplate"][$i];
+        $this->gosaAclTemplate= array_merge($this->gosaAclTemplate, $this->explodeACL($acl));
+      }
+    }
+    ksort($this->gosaAclTemplate);
+
+    /* Extract available categories from plugin info list */
+    $tmp= session::get('plist');
+    $plist= $tmp->info;
+    $oc = array();
+    foreach ($plist as $class => $acls){
+
+      /* Only feed categories */
+      if (isset($acls['plCategory'])){
+
+        /* Walk through supplied list and feed only translated categories */
+        foreach($acls['plCategory'] as $idx => $data){
+
+          /* Non numeric index means -> base object containing more informations */
+          if (preg_match('/^[0-9]+$/', $idx)){
+            if (!isset($this->ocMapping[$data])){
+              $this->ocMapping[$data]= array();
+              $this->ocMapping[$data][]= '0';
+            }
+            $this->ocMapping[$data][]= $class;
+          } else {
+            if (!isset($this->ocMapping[$idx])){
+              $this->ocMapping[$idx]= array();
+              $this->ocMapping[$idx][]= '0';
+            }
+            $this->ocMapping[$idx][]= $class;
+            $this->aclObjects[$idx]= $data['description'];
+
+            /* Additionally filter the classes we're interested in in "self edit" mode */
+            if (is_array($data['objectClass'])){
+              foreach($data['objectClass'] as $objectClass){
+                if (in_array_ics($objectClass, $oc)){
+                  $this->myAclObjects[$idx.'/'.$class]= $acls['plDescription'];
+                  break;
+                }
+              }
+            } else {
+              if (in_array_ics($data['objectClass'], $oc)){
+                $this->myAclObjects[$idx.'/'.$class]= $acls['plDescription'];
+              }
+            }
+          }
+
+        }
+      }
+    }
+    $this->aclObjects['all']= '* '._("All categories");
+    $this->ocMapping['all']= array('0' => 'all');
+
+    /* Sort categories */
+    asort($this->aclObjects);
+
+    /* Fill acl types */
+    $this->aclTypes= array( "reset" => _("Reset ACL"),
+                             "one" => _("One level"),
+                             "base" => _("Current object"),
+                             "sub" => _("Complete subtree"),
+                             "psub" => _("Complete subtree (permanent)"));
+    asort($this->aclTypes);
+
+    /* Finally - we want to get saved... */
+    $this->is_account= TRUE;
+    $this->orig_base = $this->base;
+    $this->orig_dn = $this->dn;
+    $this->orig_cn = $this->cn;
+
+    /* Instanciate base selector */
+    $this->baseSelector= new baseSelector($this->get_allowed_bases(), $this->base);
+    $this->baseSelector->setSubmitButton(false);
+    $this->baseSelector->setHeight(300);
+    $this->baseSelector->update(true);
+  }
+
+
+  function execute()
+  {
+    /* Call parent execute */
+    plugin::execute();
+
+    $tmp= session::get('plist');
+    $plist= $tmp->info;
+
+    /* Handle posts */
+    if (isset($_POST['new_acl']) && $this->acl_is_writeable("gosaAclEntry")){
+      $this->dialogState= 'create';
+      $this->dialog= TRUE;
+      $this->currentIndex= count($this->gosaAclTemplate);
+      $this->loadAclEntry(TRUE);
+    }
+
+    $new_acl= array();
+    $aclDialog= FALSE;
+    $firstedit= FALSE;
+
+    /* Act on HTML post and gets here.
+     */
+    if(isset($_GET['id']) && isset($_GET['act']) && $_GET['act'] == "edit"){
+      $id = trim($_GET['id']);
+      $this->dialogState= 'create';
+      $firstedit= TRUE;
+      $this->dialog= TRUE;
+      $this->currentIndex= $id;
+      $this->loadAclEntry();
+    }
+
+    foreach($_POST as $name => $post){
+
+      /* Actions... */
+      if (preg_match('/^acl_edit_.*_x/', $name)){
+        $this->dialogState= 'create';
+        $firstedit= TRUE;
+        $this->dialog= TRUE;
+        $this->currentIndex= preg_replace('/^acl_edit_([0-9]+).*$/', '\1', $name);
+        $this->loadAclEntry();
+        continue;
+      }
+      if (preg_match('/^cat_edit_.*_x/', $name)){
+        $this->aclObject= preg_replace('/^cat_edit_([^_]+)_.*$/', '\1', $name);
+        $this->dialogState= 'edit';
+        foreach ($this->ocMapping[$this->aclObject] as $oc){
+          if (isset($this->aclContents[$oc])){
+            $this->savedAclContents[$oc]= $this->aclContents[$oc];
+          }
+        }
+        continue;
+      }
+
+      if(!$this->acl_is_writeable("gosaAclEntry")){
+        continue;
+      }
+
+      if (preg_match('/^acl_del_.*_x/', $name) && $this->acl_is_writeable("gosaAclEntry")){
+        unset($this->gosaAclTemplate[preg_replace('/^acl_del_([0-9]+).*$/', '\1', $name)]);
+        continue;
+      }
+
+      if (preg_match('/^cat_del_.*_x/', $name) && $this->acl_is_writeable("gosaAclEntry")){
+        $idx= preg_replace('/^cat_del_([^_]+)_.*$/', '\1', $name);
+        foreach ($this->ocMapping[$idx] as $key){
+          unset($this->aclContents["$idx/$key"]);
+        }
+        continue;
+      }
+
+      /* Sorting... */
+      if (preg_match('/^sortup_.*_x/', $name) && $this->acl_is_writeable("gosaAclEntry")){
+        $index= preg_replace('/^sortup_([0-9]+).*$/', '\1', $name);
+        if ($index > 0){
+          $tmp= $this->gosaAclTemplate[$index];
+          $this->gosaAclTemplate[$index]= $this->gosaAclTemplate[$index-1];
+          $this->gosaAclTemplate[$index-1]= $tmp;
+        }
+        continue;
+      }
+      if (preg_match('/^sortdown_.*_x/', $name) && $this->acl_is_writeable("gosaAclEntry")){
+        $index= preg_replace('/^sortdown_([0-9]+).*$/', '\1', $name);
+        if ($index < count($this->gosaAclTemplate)-1){
+          $tmp= $this->gosaAclTemplate[$index];
+          $this->gosaAclTemplate[$index]= $this->gosaAclTemplate[$index+1];
+          $this->gosaAclTemplate[$index+1]= $tmp;
+        }
+        continue;
+      }
+
+      /* ACL saving... */
+      if (preg_match('/^acl_.*_[^xy]$/', $name) && $this->acl_is_writeable("gosaAclEntry")){
+        list($dummy, $object, $attribute, $value)= explode('_', $name);
+
+        /* Skip for detection entry */
+        if ($object == 'dummy') {
+          continue;
+        }
+
+        /* Ordinary ACL */
+        if (!isset($new_acl[$object])){
+          $new_acl[$object]= array();
+        }
+        if (isset($new_acl[$object][$attribute])){
+          $new_acl[$object][$attribute].= $value;
+        } else {
+          $new_acl[$object][$attribute]= $value;
+        }
+      }
+    }
+   
+    if(isset($_POST['acl_dummy_0_0_0'])){
+      $aclDialog= TRUE;
+    }
+ 
+    /* Only be interested in new acl's, if we're in the right _POST place */
+    if ($aclDialog && $this->aclObject != "" && is_array($this->ocMapping[$this->aclObject])){
+
+      foreach ($this->ocMapping[$this->aclObject] as $oc){
+        unset($this->aclContents[$oc]);
+        unset($this->aclContents[$this->aclObject.'/'.$oc]);
+        if (isset($new_acl[$oc])){
+          $this->aclContents[$oc]= $new_acl[$oc];
+        }
+        if (isset($new_acl[$this->aclObject.'/'.$oc])){
+          $this->aclContents[$this->aclObject.'/'.$oc]= $new_acl[$this->aclObject.'/'.$oc];
+        }
+      }
+    }
+
+    /* Save new acl in case of base edit mode */
+    if (1 == 0 && $this->aclType == 'base' && !$firstedit){
+      $this->aclContents= $new_acl;
+    }
+
+    /* Cancel new acl? */
+    if (isset($_POST['cancel_new_acl'])){
+      $this->dialogState= 'head';
+      $this->dialog= FALSE;
+      if ($this->wasNewEntry){
+        unset ($this->gosaAclTemplate[$this->currentIndex]);
+      }
+    }
+
+    /* Store ACL in main object? */
+    if (isset($_POST['submit_new_acl']) && $this->acl_is_writeable("gosaAclEntry")){
+      $this->gosaAclTemplate[$this->currentIndex]['type']= $this->aclType;
+      $this->gosaAclTemplate[$this->currentIndex]['members']= $this->recipients;
+      $this->gosaAclTemplate[$this->currentIndex]['acl']= $this->aclContents;
+      $this->dialogState= 'head';
+      $this->dialog= FALSE;
+    }
+
+    /* Cancel edit acl? */
+    if (isset($_POST['cancel_edit_acl'])){
+      $this->dialogState= 'create';
+      foreach ($this->ocMapping[$this->aclObject] as $oc){
+        if (isset($this->savedAclContents[$oc])){
+          $this->aclContents[$oc]= $this->savedAclContents[$oc];
+        }
+      }
+    }
+
+    /* Save edit acl? */
+    if (isset($_POST['submit_edit_acl']) && $this->acl_is_writeable("gosaAclEntry")){
+      $this->dialogState= 'create';
+    }
+
+    /* Add acl? */
+    if (isset($_POST['add_acl']) && $_POST['aclObject'] != "" && $this->acl_is_writeable("gosaAclEntry")){
+      $this->dialogState= 'edit';
+      $this->savedAclContents= array();
+      foreach ($this->ocMapping[$this->aclObject] as $oc){
+        if (isset($this->aclContents[$oc])){
+          $this->savedAclContents[$oc]= $this->aclContents[$oc];
+        }
+      }
+    }
+
+    /* Save common values */
+    foreach (array("aclType", "aclObject", "target") as $key){
+      if (isset($_POST[$key]) && $this->acl_is_writeable("gosaAclEntry")){
+        $this->$key= validate($_POST[$key]);
+      }
+    }
+
+    /* Create templating instance */
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    $smarty->assign("base", $this->baseSelector->render());
+
+    $tmp = $this->plInfo();
+    foreach($tmp['plProvidedAcls'] as $name => $translation){
+      $smarty->assign($name."ACL",$this->getacl($name));
+    }
+
+    if ($this->dialogState == 'head'){
+      /* Draw list */
+      $aclList= new divSelectBox("aclList");
+      $aclList->SetHeight(350);
+
+      /* Fill in entries */
+      foreach ($this->gosaAclTemplate as $key => $entry){
+
+        if($this->acl_is_readable("")){
+          $link = "<a href=?plug=".$_GET['plug']."&id=".$key."&act=edit>".$this->assembleAclSummary($entry)."</a>";
+        }else{
+          $link = $this->assembleAclSummary($entry);
+        }
+
+        $field1= array("string" => $this->aclTypes[$entry['type']], "attach" => "style='width:150px'");
+        $field2= array("string" => $link);
+
+        $action ="";
+        if($this->acl_is_writeable("gosaAclEntry")){
+          $action.= "<input type='image' name='sortup_$key' alt='up' 
+            title='"._("Up")."' src='images/lists/sort-up.png' align='top'>";
+          $action.= "<input type='image' name='sortdown_$key' alt='down' 
+            title='"._("Down")."' src='images/lists/sort-down.png'>";
+        }
+        if($this->acl_is_readable("gosaAclEntry")){
+          $action.= "<input class='center' type='image' src='images/lists/edit.png' alt='"._("Edit")."' name='acl_edit_$key' 
+            title='".msgPool::editButton(_("ACL"))."'>";
+        }
+        if($this->acl_is_writeable("gosaAclEntry")){
+          $action.= "<input class='center' type='image' src='images/lists/trash.png' alt='"._("Delete")."' name='acl_del_$key' 
+            title='".msgPool::delButton(_("ACL"))."'>";
+        }
+
+        $field3= array("string" => $action, "attach" => "style='border-right:0px;width:50px;text-align:right;'");
+        $aclList->AddEntry(array($field1, $field2, $field3));
+      }
+
+      $smarty->assign("aclList", $aclList->DrawList());
+    }
+
+    if ($this->dialogState == 'create'){
+      /* Draw list */
+      $aclList= new divSelectBox("aclList");
+      $aclList->SetHeight(450);
+
+      /* Add settings for all categories to the (permanent) list */
+      foreach ($this->aclObjects as $section => $dsc){
+        $summary= "";
+        foreach($this->ocMapping[$section] as $oc){
+          if (isset($this->aclContents[$oc]) && count($this->aclContents[$oc]) && isset($this->aclContents[$oc][0]) &&
+              $this->aclContents[$oc][0] != ""){
+
+            $summary.= "$oc, ";
+            continue;
+          }
+          if (isset($this->aclContents["$section/$oc"]) && count($this->aclContents["$section/$oc"])){
+            $summary.= "$oc, ";
+            continue;
+          }
+          if (isset($this->aclContents[$oc]) && !isset($this->aclContents[$oc][0]) && count($this->aclContents[$oc])){
+            $summary.= "$oc, ";
+          }
+        }
+
+        /* Set summary... */
+        if ($summary == ""){
+          $summary= '<i>'._("No ACL settings for this category").'</i>';
+        } else {
+          $summary= sprintf(_("ACL for these objects: %s"), preg_replace('/, $/', '', $summary));
+        }
+
+        $action = "";
+        if($this->acl_is_readable("gosaAclEntry")){
+          $action.= "<input class='center' type='image' src='images/lists/edit.png' 
+            alt='"._("Edit")."' name='cat_edit_$section'   title='"._("Edit category ACL")."'>";
+        }
+        if($this->acl_is_writeable("gosaAclEntry")){
+          $action.= "<input class='center' type='image' src='images/lists/trash.png' 
+            alt='"._("Delete")."' name='cat_del_$section' title='"._("Reset category ACL")."'>";
+        }
+
+        $field1= array("string" => $dsc, "attach" => "style='width:140px'");
+        $field2= array("string" => $summary);
+        $field3= array("string" => $action, "attach" => "style='border-right:0px;width:50px'");
+        $aclList->AddEntry(array($field1, $field2, $field3));
+      }
+
+      $smarty->assign("aclList", $aclList->DrawList());
+      $smarty->assign("aclType", $this->aclType);
+      $smarty->assign("aclTypes", $this->aclTypes);
+      $smarty->assign("target", $this->target);
+
+      if ($this->aclType == 'base'){
+        $smarty->assign('aclSelector', $this->buildAclSelector($this->myAclObjects));
+      }
+    }
+
+    if ($this->dialogState == 'edit'){
+      $smarty->assign('headline', sprintf(_("Edit ACL for '%s', scope is '%s'"), $this->aclObjects[$this->aclObject], $this->aclTypes[$this->aclType]));
+
+      /* Collect objects for selected category */
+      foreach ($this->ocMapping[$this->aclObject] as $idx => $class){
+        if ($idx == 0){
+          continue;
+        }
+        $aclObjects[$this->aclObject.'/'.$class]= $plist[$class]['plDescription'];
+      }
+      if ($this->aclObject == 'all'){
+        $aclObjects['all']= _("All objects in current subtree");
+      }
+      $smarty->assign('aclSelector', $this->buildAclSelector($aclObjects));
+    }
+
+    /* Show main page */
+    $smarty->assign("dialogState", $this->dialogState);
+
+    /* Assign cn and decription if this is a role */
+    foreach(array("cn","description") as $name){
+      $smarty->assign($name,$this->$name);
+    }
+    return ($smarty->fetch (get_template_path('acl_role.tpl',dirname(__FILE__))));
+  }
+
+  function sort_by_priority($list)
+  {
+    $tmp= session::get('plist');
+    $plist= $tmp->info;
+    asort($plist);
+    $newSort = array();
+
+    foreach($list as $name => $translation){
+      $na  =  preg_replace("/^.*\//","",$name);
+      if (!isset($plist[$na]['plPriority'])){
+        $prio= 0;
+      } else {
+        $prio=  $plist[$na]['plPriority'] ;
+      }
+
+      $newSort[$name] = $prio;
+    }
+
+    asort($newSort);
+
+    $ret = array();
+    foreach($newSort as $name => $prio){
+      $ret[$name] = $list[$name];
+    }
+    return($ret);
+  }
+
+  function loadAclEntry($new= FALSE)
+  {
+    /* New entry gets presets... */
+    if ($new){
+      $this->aclType= 'sub';
+      $this->recipients= array();
+      $this->aclContents= array();
+    } else {
+      $acl= $this->gosaAclTemplate[$this->currentIndex];
+      $this->aclType= $acl['type'];
+      $this->recipients= $acl['members'];
+      $this->aclContents= $acl['acl'];
+    }
+
+    $this->wasNewEntry= $new;
+  }
+
+
+  function aclPostHandler()
+  {
+    if (isset($_POST['save_acl']) && $this->acl_is_writeable("gosaAclEntry")){
+      $this->save();
+      return TRUE;
+    }
+
+    return FALSE;
+  }
+
+
+  function save()
+  {
+    /* Assemble ACL's */
+    $tmp_acl= array();
+    foreach ($this->gosaAclTemplate as $prio => $entry){
+      $final= "";
+      $members= "";
+      if (isset($entry['members'])){
+        foreach ($entry['members'] as $key => $dummy){
+          $members.= base64_encode(preg_replace('/^.:/', '', $key)).',';
+        }
+      }
+      $final= $prio.":".$entry['type'].":".preg_replace('/,$/', '', $members);
+
+      /* ACL's if needed */
+      if ($entry['type'] != "reset" && $entry['type'] != "role"){
+        $acl= ":";
+        if (isset($entry['acl'])){
+          foreach ($entry['acl'] as $object => $contents){
+
+            /* Only save, if we've some contents in there... */
+            if (count($contents)){
+              $acl.= $object.";";
+
+              foreach($contents as $attr => $permission){
+
+                /* First entry? Its the one for global settings... */
+                if ($attr == '0'){
+                  $acl.= $permission;
+                } else {
+                  $acl.= '#'.$attr.';'.$permission;
+                }
+
+              }
+              $acl.= ',';
+            }
+            
+          }
+        }
+        $final.= preg_replace('/,$/', '', $acl);
+      }
+
+      $tmp_acl[]= $final;
+    } 
+
+    /* Call main method */
+    plugin::save();
+
+    /* Finally (re-)assign it... */
+    $this->attrs["gosaAclTemplate"]= $tmp_acl;
+
+    /* Remove acl from this entry if it is empty... */
+    if (!count($tmp_acl)){
+      /* Remove attribute */
+      if ($this->initially_was_account){
+        $this->attrs["gosaAclTempalte"]= array();
+      } else {
+        if (isset($this->attrs["gosaAclTemplate"])){
+          unset($this->attrs["gosaAclTemplate"]);
+        }
+      }
+    }
+
+    /* Do LDAP modifications */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Check if object already exists */
+    $ldap->cat($this->dn);
+    if($ldap->count()){
+      $ldap->cd($this->dn);
+      $this->cleanup();
+      $ldap->modify ($this->attrs);
+      new log("modify","acl/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$this->dn));
+      $ldap->cd($this->dn);
+      $ldap->add($this->attrs);
+      new log("create","acl/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, "", get_class()));
+    }
+
+    /* Refresh users ACL */
+    $ui= get_userinfo();
+    $ui->loadACL();
+    session::set('ui',$ui);
+  }
+
+
+  function remove_from_parent()
+  {
+    $ldap = $this->config->get_ldap_link();
+    $serach_for = "*:role:".base64_encode($this->dn).":*"; 
+    $ldap->search ("(&(objectClass=gosaACL)(gosaAclEntry=".$serach_for."))",array('dn','cn','sn','givenName','uid'));
+    $all_names = "";
+
+
+    $cnt = 3;
+    while(($attrs = $ldap->fetch()) && $cnt){
+      $name = $attrs['dn'];
+      $name = preg_replace("/[ ]/"," ",$name);
+      $name = "<i>'".$name."'</i>";
+      $all_names .= $name.", ";
+      $cnt --;
+    }
+
+    if(!empty($all_names)){
+      $all_names = preg_replace("/, $/","",$all_names);
+      if(!$cnt){
+        $all_names .= ", ...";
+      }
+      $all_names = "<span style='text-align:left;'>".$all_names."</span>";
+      msg_dialog::display(_("Object in use"), sprintf(_("This role cannot be removed while it is in use by these objects:")."<br><br>%s", $all_names), WARNING_DIALOG);
+      return;
+    }
+        
+    $ldap->rmDir($this->dn);
+    new log("remove","acl/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, "", get_class()));
+    }
+
+    /* Optionally execute a command after we're done */
+    $this->handle_post_events("remove");
+
+    /* Delete references to object groups */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter($this->dn)."))", array("cn"));
+    while ($ldap->fetch()){
+      $og= new ogroup($this->config, $ldap->getDN());
+      unset($og->member[$this->dn]);
+      $og->save ();
+      if (!$ldap->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $og->dn, "", get_class()));
+      }
+    }
+  }
+
+
+  function save_object()
+  {
+    plugin::save_object();
+    if(isset($_POST['acl_role_posted'])){
+     
+      /* Refresh base */
+      if ($this->acl_is_moveable($this->base)){
+        if (!$this->baseSelector->update()) {
+          msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+        }
+        if ($this->base != $this->baseSelector->getBase()) {
+          $this->base= $this->baseSelector->getBase();
+          $this->is_modified= TRUE;
+        }
+      }
+    }
+  }
+
+
+  function saveCopyDialog()
+  {
+    if(isset($_POST['cn'])){
+      $this->cn = $_POST['cn'];
+    }
+  }
+  
+
+  function getCopyDialog()
+  {
+    $smarty = get_smarty();
+    $smarty->assign("cn",$this->cn);
+    $str = $smarty->fetch(get_template_path("paste_role.tpl",TRUE,dirname(__FILE__)));
+    $ret = array();
+    $ret['string'] = $str;
+    $ret['status'] = "";
+    return($ret);
+  }
+
+  
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+    
+    $source_o = new aclrole($this->config,$source['dn']);
+    $this->gosaAclTemplate = $source_o->gosaAclTemplate;
+  }
+  
+
+  /* Return plugin informations for acl handling  */
+  static function plInfo()
+  {
+    return (array(
+          "plShortName" => _("Role"),
+          "plDescription" => _("Access control roles"),
+          "plSelfModify"  => FALSE,
+          "plDepends"     => array(),
+          "plPriority"    => 0,
+          "plSection"     => array("administration"),
+          "plCategory"    => array("acl"),
+          "plProvidedAcls"    => array(
+            "cn"                => _("Name"),
+            "base"              => _("Base"),
+            "description"       => _("Description"),
+            "gosaAclEntry"      => _("Permissions"))
+        ));
+  }
+
+  function check()
+  {
+    $message = plugin::check();
+
+    if(empty($this->cn)){
+      $message[] = msgPool::required(_("Name"));
+    }
+  
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    if($this->cn != $this->orig_cn){
+      $ldap->search("(&(objectClass=gosaRole)(cn=".$this->cn."))");
+      if($ldap->count()) {
+        while($attrs = $ldap->fetch()){
+          if($attrs['dn'] != $this->orig_dn){
+            $message[] = msgPool::duplicated(_("Name"));
+          }
+        }
+      }
+    } 
+ 
+    if(!count($this->gosaAclTemplate)){
+      $message[] = msgPool::required(_("ACL"));
+    }
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    }
+ 
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/acl/class_filterACL.inc b/gosa-core/plugins/admin/acl/class_filterACL.inc
new file mode 100644
index 0000000..2b6f0b7
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/class_filterACL.inc
@@ -0,0 +1,151 @@
+<?php
+
+class filterACL {
+
+  static function query($parent, $base, $scope, $filter, $attributes, $category, $objectStorage= "")
+  {
+    $config= session::global_get('config');
+    $ldap= $config->get_ldap_link(TRUE);
+    $flag= ($scope == "sub")?GL_SUBSEARCH:0;
+    $result=array();
+    $result= array_merge($result,filterACL::get_list($parent, $base, $filter, $attributes, $category, array(), $flag | GL_SIZELIMIT, "cat"));
+    if($scope == "sub"){
+      $result= array_merge($result,filterACL::get_list($parent, $base, $filter, $attributes, $category, array(), $flag | GL_SIZELIMIT, "search"));
+    }
+    $result= array_merge($result,filterACL::get_list($parent, $base, $filter, $attributes, $category, $objectStorage, $flag | GL_SIZELIMIT, ""));
+    return(filterACL::unifyResult($result));
+  }
+
+  static function unifyResult($result)
+  {
+    $res=array();
+    foreach($result as $entry){
+      if(!isset($res[$entry['dn']])){
+        $res[$entry['dn']]=$entry;
+      }
+    }
+    return(array_values($res)); 
+  }
+
+  static function get_list($parent, $base, $filter, $attributes, $category, $objectStorage, $flags= GL_SUBSEARCH, $method= "")
+  {
+    $ui= session::global_get('ui');
+    $config= session::global_get('config');
+
+    // Move to arrays for category and objectStorage
+    if (!is_array($category)) {
+      $category= array($category);
+    }
+    if (!is_array($objectStorage)) {
+      $objectStorage= array($objectStorage);
+    }
+
+    if(empty($method)){
+      $method= (empty($objectStorage) && !($flags & GL_SUBSEARCH))?"ls":"search";
+    }
+
+    // Initialize search bases
+    $bases= array();
+    
+    // Get list of sub bases to search on
+    if (count($objectStorage) == 0) {
+      $bases[$base]= "";
+    } else {
+      foreach ($objectStorage as $oc) {
+        $oc= preg_replace('/,$/', '', $oc);
+        $tmp= explode(',', $oc);
+        if (count($tmp) == 1) {
+          preg_match('/([^=]+)=(.*)$/', $oc, $m);
+          if ($flags & GL_SUBSEARCH) {
+            $bases[$base][]= $m[1].":dn:=".$m[2];
+          } else {
+            $bases["$oc,$base"][]= $m[1].":dn:=".$m[2];
+          }
+        } else {
+          // No, there's no \, in pre defined RDN values
+          preg_match('/^([^,]+),(.*)$/', $oc, $matches);
+          preg_match('/([^=]+)=(.*)$/', $matches[1], $m);
+          if ($flags & GL_SUBSEARCH) {
+            $bases[$base][]= $m[1].":dn:=".$m[2];
+          } else {
+            $bases[$matches[2].",$base"][]= $m[1].":dn:=".$m[2];
+          }
+        }
+      }
+    }
+
+    // Get LDAP link
+    $ldap= $config->get_ldap_link($flags & GL_SIZELIMIT);
+
+    // Do search for every base
+    $result= array();
+    $limit_exceeded = FALSE;
+    foreach($bases as $base => $dnFilters) {
+
+      // Break if the size limit is exceeded
+      if($limit_exceeded){
+        return($result);
+      }
+
+      // Switch to new base and search
+      if (is_array($dnFilters)){
+        $dnFilter= "(|";
+        foreach ($dnFilters as $df) {
+          $dnFilter.= "($df)";
+        }
+        $dnFilter.= ")";
+      } else {
+        $dnFilter= "";
+      }
+      $ldap->cd($base);
+      if ($method == "ls") {
+        $ldap->ls("(&$filter$dnFilter)", $base, $attributes);
+      } elseif ($method == "cat") {
+        $ldap->cat($base, $attributes, "(&$filter$dnFilter)");
+      } else {
+        $ldap->search("(&$filter$dnFilter)", $attributes);
+      }
+
+      // Check for size limit exceeded messages for GUI feedback
+      if (preg_match("/size limit/i", $ldap->get_error())){
+        session::set('limit_exceeded', TRUE);
+        $limit_exceeded = TRUE;
+      } 
+
+      /* Crawl through result entries and perform the migration to the
+         result array */
+      while($attrs = $ldap->fetch()) {
+        $dn= $ldap->getDN();
+
+        /* Convert dn into a printable format */
+        if ($flags & GL_CONVERT){
+          $attrs["dn"]= convert_department_dn($dn);
+        } else {
+          $attrs["dn"]= $dn;
+        }
+
+        /* Skip ACL checks if we are forced to skip those checks */
+        if($flags & GL_NO_ACL_CHECK){
+          $result[]= $attrs;
+        }else{
+
+          /* Sort in every value that fits the permissions */
+          foreach ($category as $o){
+            if((preg_match("/\//",$o) && preg_match("/r/",$ui->get_permissions($dn,$o))) ||
+                (!preg_match("/\//",$o) && preg_match("/r/",$ui->get_category_permissions($dn, $o)))){
+              $result[]= $attrs;
+              break;
+            }
+          }
+        }
+      }
+
+    }
+
+    return $result;
+  }
+
+
+}
+
+?>
diff --git a/gosa-core/plugins/admin/acl/main.inc b/gosa-core/plugins/admin/acl/main.inc
new file mode 100644
index 0000000..22eee30
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/main.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 14927 2009-12-23 09:32:00Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+if ($remove_lock){
+  if(session::is_set('aclManagement')){
+      $macl = session::get('aclManagement');
+      $macl->remove_lock();
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('aclManagement');
+}else{
+
+  /* Create usermanagement object on demand */
+  if (!session::is_set('aclManagement')){
+    $aclManagement= new aclManagement ($config, $ui);
+    session::set('aclManagement',$aclManagement);
+  }
+  $aclManagement = session::get('aclManagement');
+  $display= $aclManagement->execute();
+
+  /* Reset requested? */
+  if (isset($_GET['reset']) && $_GET['reset'] == 1){
+    session::un_set ('aclManagement');
+  }
+
+  /* Show and save dialog */
+  session::set('aclManagement',$aclManagement);
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/acl/paste_role.tpl b/gosa-core/plugins/admin/acl/paste_role.tpl
new file mode 100644
index 0000000..41f4577
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/paste_role.tpl
@@ -0,0 +1,10 @@
+<table>
+	<tr>
+		<td>
+			{t}Name{/t}
+		</td>
+		<td>
+			<input type="text" name='cn' value="{$cn}" style='width:200px;'>
+		</td>
+	</tr>
+</table>
diff --git a/gosa-core/plugins/admin/acl/remove.tpl b/gosa-core/plugins/admin/acl/remove.tpl
new file mode 100644
index 0000000..f60f42d
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/remove.tpl
@@ -0,0 +1,18 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+  {$info}
+  {t}This includes all account data, system access rules, imap settings, etc. for this user. Please double check if your really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+ {t}So - if you're sure - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type=submit name="delete_confirmed" value="{msgPool type=delButton}">
+  <input type=submit name="delete_cancel" value="{msgPool type=cancelButton}">
+   
+</p>
+
diff --git a/gosa-core/plugins/admin/acl/tabs_acl.inc b/gosa-core/plugins/admin/acl/tabs_acl.inc
new file mode 100644
index 0000000..4b1e2d1
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/tabs_acl.inc
@@ -0,0 +1,95 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_acl.inc 13100 2008-12-01 14:07:48Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class acltab extends tabs
+{
+
+  function acltab($config, $data, $dn)
+  {
+    $data = array(array("CLASS" => "acl" , "NAME" => _("ACL")));
+
+    /* Save dn */
+    $this->dn= $dn;
+    $this->config= $config;
+
+    $baseobject= NULL;
+
+    foreach ($data as $tab){
+      $this->by_name[$tab['CLASS']]= $tab['NAME'];
+
+      
+      if ($baseobject === NULL){
+        if($tab['CLASS'] == "acl"){
+          $baseobject= new $tab['CLASS']($this->config, $this, $this->dn);
+        }else{
+          $baseobject= new $tab['CLASS']($this->config,$this->dn);
+        }
+        $this->by_object[$tab['CLASS']]= $baseobject;
+      } else {
+        if($tab['CLASS'] == "acl"){
+          $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config,$this,$this->dn, $baseobject);
+        }else{
+          $this->by_object[$tab['CLASS']]= new $tab['CLASS']($this->config, $this->dn, $baseobject);
+        }
+      }
+
+      $this->by_object[$tab['CLASS']]->parent= &$this;
+      $this->by_object[$tab['CLASS']]->set_acl_category("acl");
+      $this->read_only |= $this->by_object[$tab['CLASS']]->read_only;
+
+      /* Initialize current */
+      if ($this->current == ""){
+        $this->current= $tab['CLASS'];
+      }
+    }
+  }
+
+  function save($ignore_account= FALSE)
+  {
+    $ret= tabs::save();
+    return $ret;
+  }
+
+  function save_object($ignore_account= FALSE)
+  {
+    tabs::save_object();
+  }
+  
+  function execute()
+  {
+    $display= tabs::execute();
+    if($this->read_only){
+      $display.= "<p style=\"text-align:right\">\n";
+      $display.= "  <input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $display.= "</p>";
+    }elseif(!$this->by_object['acl']->dialog){
+      $display.= "<p style=\"text-align:right\">\n";
+      $display.= "  <input type=submit name=\"edit_finish\" style=\"width:80px\" value=\"".msgPool::okButton()."\">\n";
+      $display.= "   \n";
+      $display.= "  <input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $display.= "</p>";
+    }
+    return($display);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/acl/tabs_acl_role.inc b/gosa-core/plugins/admin/acl/tabs_acl_role.inc
new file mode 100644
index 0000000..5542422
--- /dev/null
+++ b/gosa-core/plugins/admin/acl/tabs_acl_role.inc
@@ -0,0 +1,81 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_acl_role.inc 13100 2008-12-01 14:07:48Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class aclroletab extends tabs
+{
+
+  function aclroletab($config, $data, $dn)
+  {
+    $data = array(array("CLASS" => "aclrole" , "NAME" => _("ACL Templates")));
+    tabs::tabs($config, $data, $dn,"acl");
+  }
+
+  function save($ignore_account= FALSE)
+  {
+    $baseobject= $this->by_object['aclrole'];
+
+    /* Check for new 'dn', in order to propagate the
+       'dn' to all plugins */
+    $new_dn= 'cn='.$baseobject->cn.",".get_ou('aclRoleRDN').$baseobject->base;
+
+    if ($this->dn != $new_dn){
+
+      /* Write entry on new 'dn' */
+      if ($this->dn != "new"){
+        $baseobject->move($this->dn, $new_dn);
+        $this->by_object['aclrole']= $baseobject;
+      }
+
+      /* Happen to use the new one */
+      $this->dn= $new_dn;
+    }
+
+    $ret= tabs::save();
+
+    return $ret;
+  }
+
+  function save_object($ignore_account= FALSE)
+  {
+    tabs::save_object();
+  }
+  
+  function execute()
+  {
+    $display= tabs::execute();
+    if($this->read_only){
+      $display.= "<p style=\"text-align:right\">\n";
+      $display.= "  <input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $display.= "</p>";
+    }elseif(!$this->by_object['aclrole']->dialog){
+      $display.= "<p style=\"text-align:right\">\n";
+      $display.= "  <input type=submit name=\"edit_finish\" style=\"width:80px\" value=\"".msgPool::okButton()."\">\n";
+      $display.= "   \n";
+      $display.= "  <input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $display.= "</p>";
+    }
+    return($display);
+  }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_countryGeneric.inc b/gosa-core/plugins/admin/departments/class_countryGeneric.inc
new file mode 100644
index 0000000..f693434
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_countryGeneric.inc
@@ -0,0 +1,101 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class country extends department
+{
+	/* attribute list for save action */
+	var $attributes     = array( "c", "ou", "description","gosaUnitTag", "manager");
+	var $objectclasses  = array("top", "gosaDepartment");
+  var $structuralOC   = array("country");
+  var $type   ="country";
+  var $c      ="";
+  var $orgi_c ="";
+
+  var $namingAttr = "c";
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+
+  function check()
+  {
+    $message = plugin::check();
+    
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(c=".$this->c.")(objectClass=country))", $this->base, array('dn'));
+    if ($this->orig_c == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->c == ""){
+			$message[]= msgPool::required(_("Name"));
+		}elseif(tests::is_department_name_reserved($this->c,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }elseif(preg_match ('/[#+:=>\\\\\/]/', $this->c)){
+			$message[]= msgPool::invalid(_("Name"), $this->c, "/[^#+:=>\\\\\/]/");
+		}
+
+    /* Check description */
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+
+  /* Return plugin informations for acl handling */ 
+  static function plInfo()
+  {
+    return (array(
+          "plShortName"   => _("Country"),
+          "plDescription" => _("Country"),
+          "plSelfModify"  => FALSE,
+          "plPriority"    => 2,
+          "plDepends"     => array(),
+          "plSection"     => array("administration"),
+          "plCategory"    => array("department"),
+
+          "plProvidedAcls" => array(
+            "c"                 => _("Country name"),
+            "description"       => _("Description"),
+            "manager"                 => _("Manager"),
+            "base"              => _("Base"),
+            "gosaUnitTag"       => _("Administrative settings"))
+          ));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_dcObject.inc b/gosa-core/plugins/admin/departments/class_dcObject.inc
new file mode 100644
index 0000000..c4423d7
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_dcObject.inc
@@ -0,0 +1,100 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class dcObject extends department
+{
+	/* attribute list for save action */
+	var $attributes     = array( "dc", "ou", "description","gosaUnitTag", "manager");
+	var $objectclasses  = array("top", "dcObject", "gosaDepartment");
+  var $structuralOC   = array("locality");
+  var $type       = "dcObject";
+  var $dc         = "";
+  var $orgi_dc    = "";
+  var $namingAttr = "dc";
+
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+
+  function check()
+  {
+    $message = plugin::check();
+
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(dc=".$this->dc.")(objectClass=dcObject))", $this->base, array('dn'));
+    if ($this->orig_dc == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->dc == ""){
+			$message[]= msgPool::required(_("Name"));
+		}elseif(tests::is_department_name_reserved($this->dc,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }elseif(!preg_match ('/[a-z0-9 \.,\-_]/i', $this->dc)){
+			$message[]= msgPool::invalid(_("Name"), $this->dc, "/[a-z0-9 \.,\-_]/");
+		}
+
+    /* Check description */
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+
+  /* Return plugin informations for acl handling */ 
+  static function plInfo()
+  {
+    return (array("plShortName"   => _("Domain Component"),
+          "plDescription" => _("Domain Component"),
+          "plSelfModify"  => FALSE,
+          "plPriority"    => 4,
+          "plDepends"     => array(),
+          "plSection"     => array("administration"),
+          "plCategory"    => array("department"),
+
+          "plProvidedAcls" => array(
+            "dc"                => _("Name"),
+            "description"       => _("Description"),
+            "manager"                 => _("Manager"),
+            "base"              => _("Base"),
+            "gosaUnitTag"       => _("Administrative settings"))
+          ));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_department.inc b/gosa-core/plugins/admin/departments/class_department.inc
new file mode 100644
index 0000000..b79811a
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_department.inc
@@ -0,0 +1,792 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_department.inc 17912 2010-04-28 13:45:23Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class department extends plugin
+{
+  /* department attributes */
+  var $ou= "";
+  var $description= "";
+  var $base= "";
+  var $st= "";
+  var $l= "";
+  var $postalAddress= "";
+  var $businessCategory= "";
+  var $telephoneNumber= "";
+  var $facsimileTelephoneNumber= "";
+  var $is_administrational_unit= false;
+  var $gosaUnitTag= "";
+  var $view_logged = FALSE;
+
+  var $type ="organizationalUnit";
+  var $namingAttr = "ou";
+
+  /* Headpage attributes */
+  var $last_dep_sorting= "invalid";
+  var $departments= array();
+  var $must_be_tagged = false;
+
+  /* attribute list for save action */
+  var $attributes= array("ou", "description", "businessCategory", "st", "l", "postalAddress",
+			"telephoneNumber", "facsimileTelephoneNumber", "gosaUnitTag", "manager");
+
+  /* Do not append the structural object classes here, they are added dynamically in the constructor */
+  var $objectclasses= array("top", "gosaDepartment");
+  var $structuralOC = array("organizationalUnit");
+
+  var $initially_was_tagged = false;
+  var $orig_base = "";
+  var $orig_ou = "";
+  var $baseSelector;
+
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+  function department (&$config, $dn)
+  {
+    /* Add the default structural obejct class 'locality' if this is a new entry
+     */
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    if($dn == "" || $dn == "new" || !$ldap->dn_exists($dn)){
+      $this->objectclasses = array_merge($this->structuralOC,$this->objectclasses);
+    }else{
+      $ldap->cat($dn, array("structuralObjectClass"));
+      $attrs= $ldap->fetch();
+      if(isset($attrs['structuralObjectClass']['count'])){
+        for($i = 0 ; $i < $attrs['structuralObjectClass']['count'] ; $i++){
+          $this->objectclasses[] = $attrs['structuralObjectClass'][$i];
+        }
+      }else{
+
+        /* Could not detect structural object class for this object, fall back to the default 'locality'
+         */
+        $this->objectclasses = array_merge($this->structuralOC,$this->objectclasses);
+      }
+    }
+    $this->objectclasses = array_unique($this->objectclasses);
+
+    plugin::plugin($config, $dn);
+    $this->is_account= TRUE;
+    $this->ui= get_userinfo();
+    $this->dn= $dn;
+    $this->orig_dn= $dn;
+
+    /* Save current naming attribuet 
+     */
+    $nA      = $this->namingAttr;
+    $orig_nA = "orig_".$nA;
+    $this->$orig_nA = $this->$nA;
+
+    $this->config= $config;
+
+    /* Set base */
+    if ($this->dn == "new"){
+	    $ui= get_userinfo();
+	    if(session::is_set('CurrentMainBase')){
+		    $this->base = session::get('CurrentMainBase');
+	    }else{
+		    $this->base= dn2base($ui->dn);
+	    }
+    } else {
+	    $this->base= preg_replace ("/^[^,]+,/", "", $this->dn);
+    }
+
+    $this->orig_base = $this->base;
+
+    /* Is administrational Unit? */
+    if ($dn != "new" && in_array_ics('gosaAdministrativeUnit', $this->attrs['objectClass'])){
+	    $this->is_administrational_unit= true;
+	    $this->initially_was_tagged = true;
+    }
+
+    /* Instanciate base selector */
+    $this->baseSelector= new baseSelector($this->get_allowed_bases(), $this->base);
+    $this->baseSelector->setSubmitButton(false);
+    $this->baseSelector->setHeight(300);
+    $this->baseSelector->update(true);
+
+
+
+    // If the 'manager' attribute is present in gosaDepartment allow to manage it.
+    $ldap = $this->config->get_ldap_link();
+    $ocs = $ldap->get_objectclasses();
+    if(isset($ocs['gosaDepartment']['MAY']) && in_array('manager', $ocs['gosaDepartment']['MAY'])){
+      $this->manager_enabled = TRUE;
+
+      // Detect the managers name
+      $this->manager_name = "";
+      $ldap = $this->config->get_ldap_link();
+      if(!empty($this->manager)){
+        $ldap->cat($this->manager, array('cn'));
+        if($ldap->count()){
+          $attrs = $ldap->fetch();
+          $this->manager_name = $attrs['cn'][0];
+        }else{
+          $this->manager_name = "("._("Unknown")."!): ".$this->manager;
+        }
+      }
+    }
+  }
+
+	function execute()
+	{
+		/* Call parent execute */
+		plugin::execute();
+
+    /* Log view */
+    if($this->is_account && !$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","department/".get_class($this),$this->dn);
+    }
+
+		/* Reload departments */
+		$this->config->get_departments($this->dn);
+		$this->config->make_idepartments();
+		$smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    // Clear manager attribute if requested
+    if(preg_match("/ removeManager/i", " ".implode(array_keys($_POST),' ')." ")){
+      $this->manager = "";
+      $this->manager_name = "";
+    }
+
+    // Allow to manager manager attribute
+    if($this->manager_enabled){
+
+      // Allow to select a new inetOrgPersion:manager
+      if(preg_match("/ editManager/i", " ".implode(array_keys($_POST),' ')." ")){
+        $this->dialog = new singleUserSelect($this->config, get_userinfo());
+      }
+      if($this->dialog && count($this->dialog->detectPostActions())){
+        $users = $this->dialog->detectPostActions();
+        if(isset($users['targets']) && count($users['targets'])){
+
+          $headpage = $this->dialog->getHeadpage();
+          $dn = $users['targets'][0];
+          $attrs = $headpage->getEntry($dn);
+          $this->manager = $dn;
+          $this->manager_name = $attrs['cn'][0];
+          $this->dialog = NULL;
+        }
+      }
+      if(isset($_POST['add_users_cancel'])){
+        $this->dialog = NULL;
+      }
+      if($this->dialog) return($this->dialog->execute());
+    }
+    $smarty->assign("manager",$this->manager);
+    $smarty->assign("manager_name",$this->manager_name);
+    $smarty->assign("manager_enabled",$this->manager_enabled);
+
+
+    $tmp = $this->plInfo();
+    foreach($tmp['plProvidedAcls'] as $name => $translation){
+      $smarty->assign($name."ACL",$this->getacl($name));
+    }
+
+    /* Hide base selector, if this object represents the base itself 
+     */
+    $smarty->assign("is_root_dse", FALSE);
+    if($this->dn == $this->config->current['BASE']){
+      $smarty->assign("is_root_dse", TRUE);
+      $nA = $this->namingAttr."ACL";
+      $smarty->assign($nA,$this->getacl($this->namingAttr,TRUE));
+    }
+
+    /* Hide all departments, that are subtrees of this department */
+    $bases = $this->get_allowed_bases();
+    if(($this->dn == "new")||($this->dn == "")){
+	    $tmp = $bases;
+    }else{
+	    $tmp	= array();	
+	    foreach($bases as $dn=>$base){
+		    /* Only attach departments which are not a subtree of this one */
+		    if(!preg_match("/".preg_quote($this->dn)."/",$dn)){
+			    $tmp[$dn]=$base;
+		    }
+	    }
+    }
+    $this->baseSelector->setBases($tmp);
+
+    foreach ($this->attributes as $val){
+      $smarty->assign("$val", htmlentities($this->$val,ENT_COMPAT,'UTF-8'));
+    }
+    $smarty->assign("base", $this->baseSelector->render());
+
+    /* Set admin unit flag */
+    if ($this->is_administrational_unit) {
+      $smarty->assign("gosaUnitTag", "checked");
+    } else {
+      $smarty->assign("gosaUnitTag", "");
+    }
+
+    $smarty->assign("dep_type",$this->type);
+    
+
+    $dep_types = departmentManagement::get_support_departments();
+    $tpl ="";
+    foreach($dep_types as $key => $data){
+      if($data['OC'] == $this->type){
+        $tpl = $data['TPL'];
+        break;
+      }
+    }
+    if($tpl == "") {
+      trigger_error("No template specified for container type '".$this->type."', please update epartmentManagement::get_support_departments().");
+      $tpl = "generic.tpl";
+    }
+		return($smarty->fetch (get_template_path($tpl, TRUE)));
+	}
+
+	function clear_fields()
+	{
+		$this->dn   = "";
+		$this->base = "";
+
+		foreach ($this->attributes as $val){
+			$this->$val= "";
+		}
+	}
+
+	function remove_from_parent()
+	{
+		$ldap= $this->config->get_ldap_link();
+		$ldap->cd ($this->dn);
+		$ldap->rmdir_recursive($this->dn);
+    new log("remove","department/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
+    }
+
+		/* Optionally execute a command after we're done */
+		$this->handle_post_events('remove');
+	}
+
+	function must_be_tagged()
+	{
+		return $this->must_be_tagged;
+	}
+
+	/* Save data to object */
+	function save_object()
+	{	
+		if (isset($_POST['dep_generic_posted'])){
+
+			$nA = $this->namingAttr;
+			$old_nA = $this->$nA;
+
+
+
+      /* Create a base backup and reset the
+         base directly after calling plugin::save_object();
+         Base will be set seperatly a few lines below */
+      $base_tmp = $this->base;
+      plugin::save_object();
+      $this->base = $base_tmp;
+
+		/* Refresh base */
+		if ($this->acl_is_moveable($this->base)){
+			if (!$this->baseSelector->update()) {
+				msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+			}
+			if ($this->base != $this->baseSelector->getBase()) {
+				$this->base= $this->baseSelector->getBase();
+				$this->is_modified= TRUE;
+			}
+		}
+
+
+      /* Save tagging flag */
+      if ($this->acl_is_writeable("gosaUnitTag")){
+        if (isset($_POST['is_administrational_unit'])){
+          $this->is_administrational_unit= true;
+        } else {
+          $this->is_administrational_unit= false;
+        }
+      }
+
+      /* If this is the root directory service entry then avoid
+         changing the naming attribute of this entry.
+       */
+      if($this->dn == $this->config->current['BASE']){
+        $this->$nA = $old_nA;
+      }
+    }
+	}
+
+
+	/* Check values */
+	function check()
+	{
+		/* Call common method to give check the hook */
+		$message= plugin::check();
+
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(ou=".$this->ou.")(objectClass=organizationalUnit))", $this->base, array('dn'));
+    if ($this->orig_dn == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->ou == ""){
+			$message[]= msgPool::required(_("Name"));
+		}
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    if(tests::is_department_name_reserved($this->ou,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }
+
+		if (preg_match ('/[#+:=>\\\\\/]/', $this->ou)){
+			$message[]= msgPool::invalid(_("Name"), $this->ou, "/[^#+:=>\\\\\/]/");
+		}
+		if (!tests::is_phone_nr($this->telephoneNumber)){
+			$message[]= msgPool::invalid(_("Phone"), $this->telephoneNumber, "/[\/0-9 ()+*-]/");
+		}
+		if (!tests::is_phone_nr($this->facsimileTelephoneNumber)){
+			$message[]= msgPool::invalid(_("Fax"), $this->facsimileTelephoneNumber, "/[\/0-9 ()+*-]/");
+		}
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    }
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return $message;
+	}
+
+
+	/* Save to LDAP */
+	function save()
+	{
+		$ldap= $this->config->get_ldap_link();
+
+    /* Ensure that ou is saved too, it is required by objectClass gosaDepartment 
+     */
+    $nA = $this->namingAttr;
+    $this->ou = $this->$nA;
+
+    /* Add tag objects if needed */
+    if ($this->is_administrational_unit){
+
+      /* If this wasn't tagged before add oc an reset unit tag */
+      if(!$this->initially_was_tagged){
+        $this->objectclasses[]= "gosaAdministrativeUnit";
+        $this->gosaUnitTag= "";
+
+        /* It seams that this method is called twice, 
+           set this to true. to avoid adding this oc twice */
+        $this->initially_was_tagged = true;
+      }
+
+      if ($this->gosaUnitTag == ""){
+
+        /* It's unlikely, but check if already used... */
+        $try= 5;
+        $ldap->cd($this->config->current['BASE']);
+        while ($try--){
+
+          /* Generate microtime stamp as tag */
+          list($usec, $sec)= explode(" ", microtime());
+          $time_stamp= preg_replace("/\./", "", $sec.$usec);
+
+          $ldap->search("(&(objectClass=gosaAdministrativeUnit)(gosaUnitTag=$time_stamp))",array("gosaUnitTag"));
+          if ($ldap->count() == 0){
+            break;
+          }
+        }
+        if($try == 0) {
+          msg_dialog::display(_("Fatal error"), _("Cannot find an unused tag for this administrative unit!"), WARNING_DIALOG);
+          return;
+        }
+        $this->gosaUnitTag= preg_replace("/\./", "", $sec.$usec);
+      }
+    }
+    $this->skipTagging = TRUE;
+    plugin::save();
+
+    /* Remove tag information if needed */
+    if (!$this->is_administrational_unit && $this->initially_was_tagged){
+      $tmp= array();
+
+      /* Remove gosaAdministrativeUnit from this plugin */
+      foreach($this->attrs['objectClass'] as $oc){
+        if (preg_match("/^gosaAdministrativeUnitTag$/i", $oc)){
+          continue;
+        }
+        if (!preg_match("/^gosaAdministrativeUnit$/i", $oc)){
+          $tmp[]= $oc;
+        }
+      }
+      $this->attrs['objectClass']= $tmp;
+      $this->attrs['gosaUnitTag']= array();
+      $this->gosaUnitTag = "";
+    }
+
+
+		/* Write back to ldap */
+		$ldap->cat($this->dn, array('dn'));
+		$ldap->cd($this->dn);
+
+		if ($ldap->count()){
+			$this->cleanup();
+			$ldap->modify ($this->attrs); 
+      new log("modify","department/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+			$this->handle_post_events('modify');
+		} else {
+			$ldap->add($this->attrs);
+			$this->handle_post_events('add');
+      new log("create","department/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+		}
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+    }
+
+    /* The parameter forces only to set must_be_tagged, and don't touch any objects 
+       This will be done later */
+    $this->tag_objects(true);
+    
+    /* Optionally execute a command after we're done */
+		$this->postcreate();
+    return(false);
+	}
+
+
+	/* Tag objects to have the gosaAdministrativeUnitTag */
+	function tag_objects($OnlySetTagFlag = false)
+	{
+    if(!$OnlySetTagFlag){
+      $smarty= get_smarty();
+      /* Print out html introduction */
+      echo '  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+        <html>
+        <head>
+        <title></title>
+        <style type="text/css">@import url("themes/default/style.css");</style>
+        <script language="javascript" src="include/focus.js" type="text/javascript"></script>
+        </head>
+        <body style="background: none; margin:4px;" id="body" >
+        ';
+      echo "<h3>".sprintf(_("Tagging '%s'."),"<i>".LDAP::fix($this->dn)."</i>")."</h3>";
+    }
+
+    $add= $this->is_administrational_unit;
+    $len= strlen($this->dn);
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->dn);
+    if ($add){
+	    $ldap->search('(!(&(objectClass=gosaAdministrativeUnitTag)(gosaUnitTag='.
+						    $this->gosaUnitTag.')))', array('dn'));
+    } else {
+	    $ldap->search('objectClass=gosaAdministrativeUnitTag', array('dn'));
+    }
+
+    $objects = array();
+    while ($attrs= $ldap->fetch()){
+      $objects[] = $attrs;
+    }
+    foreach($objects as $attrs){
+
+	    /* Skip self */
+	    if ($attrs['dn'] == $this->dn){
+		    continue;
+	    }
+
+	    /* Check for confilicting administrative units */
+	    $fix= true;
+	    foreach ($this->config->adepartments as $key => $tag){
+		    /* This one is shorter than our dn, its not relevant... */
+		    if ($len >= strlen($key)){
+			    continue;
+		    }
+
+		    /* This one matches with the latter part. Break and don't fix this entry */
+		    if (preg_match('/(^|,)'.preg_quote($key, '/').'$/', $attrs['dn'])){
+			    $fix= false;
+			    break;
+		    }
+	    }
+
+	    /* Fix entry if needed */
+	    if ($fix){
+		    if($OnlySetTagFlag){
+			    $this->must_be_tagged =true;
+			    return;
+		    }
+		    $this->handle_object_tagging($attrs['dn'], $this->gosaUnitTag, TRUE );
+        echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
+	    }
+    }
+    
+    if(!$OnlySetTagFlag){
+      $this->must_be_tagged = FALSE;
+	    echo '<p class="seperator"> </p>';
+      echo "<div style='width:100%;text-align:right;'>".
+        "<form name='form' method='post' action='?plug=".$_GET['plug']."' target='_parent'>".
+        "<br>".
+        "<input type='submit' name='back' value='"._("Continue")."'>".
+        "<input type='hidden' name='php_c_check' value='1'>".
+        "</form>".
+        "</div>";
+      echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
+    }
+	}
+
+
+	/* Move/Rename complete trees */
+	function recursive_move($src_dn, $dst_dn,$force = false)
+	{
+    /* Print header to have styles included */
+    $smarty= get_smarty();
+
+    echo '  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+      <html>
+      <head>
+      <title></title>
+      <style type="text/css">@import url("themes/default/style.css");</style>
+      <script language="javascript" src="include/focus.js" type="text/javascript"></script>
+      </head>
+      <body style="background: none; margin:4px;" id="body" >
+      ';
+    echo "<h3>".sprintf(_("Moving '%s' to '%s'"),"<i>".LDAP::fix($src_dn)."</i>","<i>".LDAP::fix($dst_dn)."</i>")."</h3>";
+
+
+    /* Check if the destination entry exists */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Check if destination exists - abort */
+    $ldap->cat($dst_dn, array('dn'));
+    if ($ldap->fetch()){
+      trigger_error("Recursive_move ".LDAP::fix($dst_dn)." already exists.",
+          E_USER_WARNING);
+      echo sprintf("Recursive_move: '%s' already exists", LDAP::fix($dst_dn))."<br>"; 
+      return (FALSE);
+    }
+
+    /* Perform a search for all objects to be moved */
+    $objects= array();
+    $ldap->cd($src_dn);
+    $ldap->search("(objectClass=*)", array("dn"));
+    while($attrs= $ldap->fetch()){
+      $dn= $attrs['dn'];
+      $objects[$dn]= strlen($dn);
+    }
+
+    /* Sort objects by indent level */
+    asort($objects);
+    reset($objects);
+
+    /* Copy objects from small to big indent levels by replacing src_dn by dst_dn */
+    foreach ($objects as $object => $len){
+
+
+      $src= str_replace("\\","\\\\",$object);
+      $dst= preg_replace("/".str_replace("\\","\\\\",$src_dn)."$/", "$dst_dn", $object);
+      $dst= str_replace($src_dn,$dst_dn,$object);
+
+      echo "<b>"._("Object").":</b> ".LDAP::fix($src)."<br>";
+
+      $this->update_acls($object, $dst,TRUE);
+
+      if (!$this->copy($src, $dst)){
+        echo "<font color='#FF0000'><br>".sprintf(_("FAILED to copy %s, aborting operation"),LDAP::fix($src))."</font>";
+        return (FALSE);
+      }
+      echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
+      flush();
+    }
+
+    /* Remove src_dn */
+    $ldap->cd($src_dn);
+    $ldap->recursive_remove();
+    $this->orig_dn  = $this->dn = $dst_dn;
+    $this->orig_base= $this->base;     
+    $this->entryCSN = getEntryCSN($this->dn);
+
+    echo '<p class="seperator"> </p>';
+
+    echo "<div style='width:100%;text-align:right;'><form name='form' method='post' action='?plug=".$_GET['plug']."' target='_parent'>
+      <br><input type='submit' name='back' value='"._("Continue")."'>
+      </form></div>";
+
+    echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
+    echo "</body></html>";
+
+    return (TRUE);
+  }
+
+
+  /* Return plugin informations for acl handling */ 
+  static function plInfo()
+  {
+    return (array("plShortName"   => _("Generic"),
+                  "plDescription" => _("Departments"),
+                  "plSelfModify"  => FALSE,
+                  "plPriority"    => 0,
+                  "plDepends"     => array(),
+                  "plSection"     => array("administration"),
+                  "plCategory"    => array("department" => array("objectClass" => "gosaDepartment", "description" => _("Departments"))),
+            
+                  "plProvidedAcls" => array(
+                    "ou"                => _("Department name"),
+                    "description"       => _("Description"),
+                    "businessCategory"  => _("Category"),
+                    "base"              => _("Base"),
+
+                    "st"                => _("State"),
+                    "l"                 => _("Location"),
+                    "postalAddress"     => _("Address"),
+                    "telephoneNumber"   => _("Telephone"),
+                    "facsimileTelephoneNumber" => _("Fax"),
+                    "manager" => _("Manager"),
+
+                    "gosaUnitTag"       => _("Administrative settings"))
+                  ));
+  }
+
+  function handle_object_tagging($dn= "", $tag= "", $show= false)
+  {
+    /* No dn? Self-operation... */
+    if ($dn == ""){
+      $dn= $this->dn;
+
+      /* No tag? Find it yourself... */
+      if ($tag == ""){
+        $len= strlen($dn);
+
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "No tag for $dn - looking for one...", "Tagging");
+        $relevant= array();
+        foreach ($this->config->adepartments as $key => $ntag){
+
+          /* This one is bigger than our dn, its not relevant... */
+          if ($len <= strlen($key)){
+            continue;
+          }
+
+          /* This one matches with the latter part. Break and don't fix this entry */
+          if (preg_match('/(^|,)'.preg_quote($key, '/').'$/', $dn)){
+            @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "DEBUG: Possibly relevant: $key", "Tagging");
+            $relevant[strlen($key)]= $ntag;
+            continue;
+          }
+
+        }
+
+        /* If we've some relevant tags to set, just get the longest one */
+        if (count($relevant)){
+          ksort($relevant);
+          $tmp= array_keys($relevant);
+          $idx= end($tmp);
+          $tag= $relevant[$idx];
+          $this->gosaUnitTag= $tag;
+        }
+      }
+    }
+
+    /* Set tag? */
+    if ($tag != ""){
+      /* Set objectclass and attribute */
+      $ldap= $this->config->get_ldap_link();
+      $ldap->cat($dn, array('gosaUnitTag', 'objectClass'));
+      $attrs= $ldap->fetch();
+      if(isset($attrs['gosaUnitTag'][0]) && $attrs['gosaUnitTag'][0] == $tag){
+        if ($show) {
+          echo sprintf(_("Object '%s' is already tagged"), LDAP::fix($dn))."<br>";
+          flush();
+        }
+        return;
+      }
+      if (count($attrs)){
+        if ($show){
+          echo sprintf(_("Adding tag (%s) to object '%s'"), $tag, LDAP::fix($dn))."<br>";
+          flush();
+        }
+        $nattrs= array("gosaUnitTag" => $tag);
+        $nattrs['objectClass']= array();
+        for ($i= 0; $i<$attrs['objectClass']['count']; $i++){
+          $oc= $attrs['objectClass'][$i];
+          if ($oc != "gosaAdministrativeUnitTag"){
+            $nattrs['objectClass'][]= $oc;
+          }
+        }
+        $nattrs['objectClass'][]= "gosaAdministrativeUnitTag";
+        $ldap->cd($dn);
+        $ldap->modify($nattrs);
+        if (!$ldap->success()){
+          msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, get_class()));
+        }
+      } else {
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "Not tagging ($tag) $dn - seems to have moved away", "Tagging");
+      }
+
+    } else {
+      /* Remove objectclass and attribute */
+      $ldap= $this->config->get_ldap_link();
+      $ldap->cat($dn, array('gosaUnitTag', 'objectClass'));
+      $attrs= $ldap->fetch();
+      if (isset($attrs['objectClass']) && !in_array_ics("gosaAdministrativeUnitTag", $attrs['objectClass'])){
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "$dn is not tagged", "Tagging");
+        return;
+      }
+      if (count($attrs)){
+        if ($show){
+          echo sprintf(_("Removing tag from object '%s'"), LDAP::fix($dn))."<br>";
+          flush();
+        }
+        $nattrs= array("gosaUnitTag" => array());
+        $nattrs['objectClass']= array();
+        for ($i= 0; $i<$attrs['objectClass']['count']; $i++){
+          $oc= $attrs['objectClass'][$i];
+          if ($oc != "gosaAdministrativeUnitTag"){
+            $nattrs['objectClass'][]= $oc;
+          }
+        }
+        $ldap->cd($dn);
+        $ldap->modify($nattrs);
+        if (!$ldap->success()){
+          msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, get_class()));
+        }
+      } else {
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "Not removing tag ($tag) $dn - seems to have moved away", "Tagging");
+      }
+    }
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_departmentManagement.inc b/gosa-core/plugins/admin/departments/class_departmentManagement.inc
new file mode 100644
index 0000000..e520cb2
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_departmentManagement.inc
@@ -0,0 +1,255 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentManagement.inc 15678 2010-02-23 14:42:37Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class departmentManagement extends management
+{
+  var $plHeadline     = "Departments";
+  var $plDescription  = "Manage Departments";
+  var $plIcon         = "plugins/departments/images/plugin.png";
+
+  // Tab definition 
+  protected $tabClass = "deptabs";
+  protected $tabType = "DEPTABS";
+  protected $aclCategory = "departement";
+  protected $aclPlugin   = "generic";
+  protected $objectName   = "department";
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("dep-filter.xml", true));
+    }
+    $filter->setObjectStorage(array(''));
+
+    // Build headpage
+    $headpage = new listing(get_template_path("dep-list.xml", true));
+    $headpage->registerElementFilter("depLabel", "departmentManagement::filterDepLabel");
+    $headpage->setFilter($filter);
+    $this->setFilter($filter);
+
+    // Add copy&paste and snapshot handler.
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler = new CopyPasteHandler($this->config);
+    }
+    if($this->config->get_cfg_value("enableSnapshots") == "true"){
+      $this->snapHandler = new SnapshotHandler($this->config);
+    }
+
+    parent::__construct($config, $ui, "departments", $headpage);
+
+    $this->registerAction("open","openEntry");
+    $this->registerAction("new_domain","newEntry");
+    $this->registerAction("new_country","newEntry");
+    $this->registerAction("new_locality","newEntry");
+    $this->registerAction("new_dcObject","newEntry");
+    $this->registerAction("new_organization","newEntry");
+    $this->registerAction("new_organizationalUnit","newEntry");
+    $this->registerAction("performRecMove","performRecMove");
+    $this->registerAction("tagDepartment","tagDepartment");
+  }
+
+  // Inject additional actions here.
+  function detectPostActions()
+  {
+    $actions = management::detectPostActions();
+    if(isset($_GET['PerformRecMove'])) $actions['action'] = "performRecMove";
+    if(isset($_GET['TagDepartment'])) $actions['action'] = "tagDepartment";
+    return($actions);
+  }
+
+  // Action handler which allows department tagging - Creates the iframe contents.
+  function tagDepartment()
+  {
+    $plugname = $this->last_tabObject->base_name;
+    $this->last_tabObject->by_object[$plugname]->tag_objects();
+    exit();
+  }
+
+  // Overridden new handler - We've different types of departments to create!
+  function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $types= $this->get_support_departments();
+    $type = preg_replace("/^new_/","",$action);
+    return(management::newEntry($action,$target,$all,$this->tabClass,$types[$type]['TAB'],$this->aclCategory));
+  }
+
+  // Overridden edit handler - We've different types of departments to edit!
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $types= $this->get_support_departments();
+    $headpage = $this->getHeadpage();
+    $type = $headpage->getType($target[0]);
+    return(management::editEntry($action,$target,$all,$this->tabClass,$types[$type]['TAB'],$this->aclCategory));
+  }
+
+
+  // Overriden save handler - We've to take care about the department tagging here.
+  protected function saveChanges()
+  {
+    $str = management::saveChanges();
+    if(!empty($str)) return($str);
+
+    $this->refreshDeps(); 
+    $plugname = $this->last_tabObject->base_name;
+    if($this->last_tabObject->by_object[$plugname]->must_be_tagged()){
+      $smarty = get_smarty();
+      $smarty->assign("src","?plug=".$_GET['plug']."&TagDepartment&no_output_compression");
+      $smarty->assign("message",_("As soon as the tag operation has finished, you can scroll down to end of the page and    press the 'Continue' button to continue with the department management dialog."));
+      return($smarty->fetch(get_template_path("dep_iframe.tpl",TRUE)));
+    }
+  }
+
+  
+  function refreshDeps()
+  {
+    global $config; 
+    $config->get_departments();
+    $config->make_idepartments();
+    $this->config = $config;
+    $headpage = $this->getHeadpage();
+    $headpage->refreshBasesList();
+  }
+ 
+
+  // An action handler which enables to switch into deparmtment by clicking the names.
+  function openEntry($action,$entry)
+  {
+    $headpage = $this->getHeadpage();
+    $headpage->setBase(array_pop($entry));
+  }
+
+
+  // Overridden remove request method - Avoid removal of the ldap base.
+  protected function removeEntryRequested($action="",$target=array(),$all=array())
+  {
+    $target = array_remove_entries(array($this->config->current['BASE']),$target);
+    return(management::removeEntryRequested($action,$target,$all)); 
+  }
+
+
+  // A filter which allows to open a department by clicking on the departments name.
+  static function filterDepLabel($row,$dn,$params,$ou,$pid,$base)
+  {
+    $ou = $ou[0];
+    if($dn == $base){
+      $ou =".";
+    }
+    $dn= LDAP::fix(func_get_arg(1));
+    return("<a href='?plug=".$_GET['plug']."&PID=$pid&act=listing_open_$row' title='$dn'>$ou</a>");
+  }
+
+  
+  // Finally remove departments and update departmnet browsers
+  function removeEntryConfirmed($action="",$target=array(),$all=array(),$altTabClass="",$altTabType="",$altAclCategory="")
+  {
+    management::removeEntryConfirmed($action,$target,$all, $altTabClass,$altTabType,$altAclCategory);
+    $this->refreshDeps();
+  }
+
+  /*! \brief  Returns information about all container types that GOsa con handle.
+    @return Array   Informations about departments supported by GOsa.
+   */
+  public static function get_support_departments()
+  {
+    /* Domain 
+     */ 
+    $types = array();
+    $types['domain']['ACL']     = "domain"; 
+    $types['domain']['CLASS']   = "domain"; 
+    $types['domain']['ATTR']    = "dc"; 
+    $types['domain']['TAB']     = "DOMAIN_TABS"; 
+    $types['domain']['OC']      = "domain"; 
+    $types['domain']['IMG']     = "plugins/departments/images/domain.png"; 
+    $types['domain']['IMG_FULL']= "plugins/departments/images/domain.png"; 
+    $types['domain']['TITLE']   = _("Domain"); 
+    $types['domain']['TPL']     = "domain.tpl"; 
+
+    /* Domain component 
+     */
+    $types['dcObject']['ACL']     = "dcObject";
+    $types['dcObject']['CLASS']   = "dcObject";
+    $types['dcObject']['ATTR']    = "dc";
+    $types['dcObject']['TAB']     = "DCOBJECT_TABS";
+    $types['dcObject']['OC']      = "dcObject";
+    $types['dcObject']['IMG']     = "plugins/departments/images/dc.png";
+    $types['dcObject']['IMG_FULL']= "plugins/departments/images/dc.png";
+    $types['dcObject']['TITLE']   = _("Domain Component");
+    $types['dcObject']['TPL']     = "dcObject.tpl";
+
+    /* Country object
+     */
+    $types['country']['ACL']     = "country";
+    $types['country']['CLASS']   = "country";
+    $types['country']['TAB']     = "COUNTRY_TABS";
+    $types['country']['ATTR']    = "c";
+    $types['country']['OC']      = "country";
+    $types['country']['IMG']     = "plugins/departments/images/country.png";
+    $types['country']['IMG_FULL']= "plugins/departments/images/country.png";
+    $types['country']['TITLE']   = _("Country");
+    $types['country']['TPL']     = "country.tpl";
+
+    /* Locality object
+     */
+    $types['locality']['ACL']     = "locality";
+    $types['locality']['CLASS']   = "locality";
+    $types['locality']['TAB']     = "LOCALITY_TABS";
+    $types['locality']['ATTR']    = "l";
+    $types['locality']['OC']      = "locality";
+    $types['locality']['IMG']     = "plugins/departments/images/locality.png";
+    $types['locality']['IMG_FULL']= "plugins/departments/images/locality.png";
+    $types['locality']['TITLE']   = _("Locality");
+    $types['locality']['TPL']     = "locality.tpl";
+
+    /* Organization
+     */
+    $types['organization']['ACL']     = "organization";
+    $types['organization']['CLASS']   = "organization";
+    $types['organization']['TAB']     = "ORGANIZATION_TABS";
+    $types['organization']['ATTR']    = "o";
+    $types['organization']['OC']      = "organization";
+    $types['organization']['IMG']     = "plugins/departments/images/organization.png";
+    $types['organization']['IMG_FULL']= "plugins/departments/images/organization.png";
+    $types['organization']['TITLE']   = _("Organization");
+    $types['organization']['TPL']     = "organization.tpl";
+
+    /* Department
+     */
+    $types['organizationalUnit']['ACL']     = "department";
+    $types['organizationalUnit']['CLASS']   = "department";
+    $types['organizationalUnit']['TAB']     = "DEPTABS";
+    $types['organizationalUnit']['ATTR']    = "ou";
+    $types['organizationalUnit']['OC']      = "organizationalUnit";
+    $types['organizationalUnit']['IMG']     = "images/lists/folder.png";//plugins/departments/images/department.png";
+    $types['organizationalUnit']['IMG_FULL']= "images/lists/folder-full.png";//:wplugins/departments/images/department.png";
+    $types['organizationalUnit']['TITLE']   = _("Department");
+    $types['organizationalUnit']['TPL']     = "generic.tpl";
+    return($types);
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_domain.inc b/gosa-core/plugins/admin/departments/class_domain.inc
new file mode 100644
index 0000000..560503a
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_domain.inc
@@ -0,0 +1,100 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class domain extends department
+{
+	/* attribute list for save action */
+	var $attributes     = array( "dc", "ou", "description","gosaUnitTag", "manager");
+	var $objectclasses  = array("top", "domain", "gosaDepartment");
+        var $structuralOC   = array("domain");
+        var $type       = "domain";
+        var $dc         = "";
+        var $orgi_dc    = "";
+        var $namingAttr = "dc";
+
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+
+  function check()
+  {
+    $message = plugin::check();
+
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(dc=".$this->dc.")(objectClass=domain))", $this->base, array('dn'));
+    if ($this->orig_dc == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->dc == ""){
+			$message[]= msgPool::required(_("Name"));
+		}elseif(tests::is_department_name_reserved($this->dc,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }elseif(!preg_match ('/[a-z0-9 \.,\-_]/i', $this->dc)){
+			$message[]= msgPool::invalid(_("Name"), $this->dc, "/[a-z0-9 \.,\-_]/");
+		}
+
+    /* Check description */
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+
+  /* Return plugin informations for acl handling */ 
+  static function plInfo()
+  {
+    return (array("plShortName"   => _("Domain Component"),
+          "plDescription" => _("Domain Component"),
+          "plSelfModify"  => FALSE,
+          "plPriority"    => 4,
+          "plDepends"     => array(),
+          "plSection"     => array("administration"),
+          "plCategory"    => array("department"),
+
+          "plProvidedAcls" => array(
+            "dc"                => _("Name"),
+            "description"       => _("Description"),
+            "base"              => _("Base"),
+            "manager"                 => _("Manager"),
+            "gosaUnitTag"       => _("Administrative settings"))
+          ));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_localityGeneric.inc b/gosa-core/plugins/admin/departments/class_localityGeneric.inc
new file mode 100644
index 0000000..9c435ee
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_localityGeneric.inc
@@ -0,0 +1,101 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class locality extends department
+{
+	/* attribute list for save action */
+	var $attributes     = array("l", "description", "ou", "gosaUnitTag", "manager");
+	var $objectclasses  = array("top", "gosaDepartment");
+  var $structuralOC   = array("locality");
+
+  var $description= "";
+  var $type       = "locality";
+  var $l          = "";
+  var $orig_l     = "";
+  var $namingAttr = "l";
+
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+  function check()
+  {
+    $message = plugin::check();
+    
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(l=".$this->l.")(objectClass=locality))", $this->base, array('dn'));
+    if ($this->orig_l == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->l == ""){
+			$message[]= msgPool::required(_("Name"));
+		}elseif(tests::is_department_name_reserved($this->l,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }elseif(preg_match ('/[#+:=>\\\\\/]/', $this->l)){
+			$message[]= msgPool::invalid(_("Name"), $this->l, "/[^#+:=>\\\\\/]/");
+		}
+
+    /* Check description */
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+
+  /* Return plugin informations for acl handling */ 
+  static function plInfo()
+  {
+    return (array("plShortName"   => _("Locality"),
+          "plDescription" => _("Locality"),
+          "plSelfModify"  => FALSE,
+          "plPriority"    => 3,
+          "plDepends"     => array(),
+          "plSection"     => array("administration"),
+          "plCategory"    => array("department"),
+
+          "plProvidedAcls" => array(
+            "l"                 => _("Location"),
+            "description"       => _("Description"),
+            "manager"                 => _("Manager"),
+            "base"              => _("Base"),
+            "gosaUnitTag"       => _("Administrative settings"))
+          ));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/class_organizationGeneric.inc b/gosa-core/plugins/admin/departments/class_organizationGeneric.inc
new file mode 100644
index 0000000..7f55361
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/class_organizationGeneric.inc
@@ -0,0 +1,142 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class organization extends department
+{
+	/* attribute list for save action */
+  var $attributes     = array( "o", "ou", "description","userPassword","searchGuide",
+      "seeAlso","businessCategory","x121Address","registeredAddress","manager",
+      "destinationIndicator","preferredDeliveryMethod","telexNumber",
+      "telephoneNumber","internationaliSDNNumber","facsimileTelephoneNumber","street",
+      "postOfficeBox","postalCode", "postalAddress","physicalDeliveryOfficeName",
+      "st","l","teletexTerminalIdentifier","gosaUnitTag");
+
+  var $objectclasses  = array("top", "gosaDepartment");
+  var $structuralOC   = array("organization");
+
+  /* Attributes 
+   */ 
+  var $st                       ="";
+  var $l                        ="";
+  var $description              ="";
+  var $userPassword             ="";
+  var $searchGuide              ="";
+  var $seeAlso                  ="";
+  var $businessCategory         ="";
+  var $x121Address              ="";
+  var $registeredAddress        ="";
+  var $destinationIndicator     ="";
+  var $preferredDeliveryMethod  ="";
+  var $telexNumber              ="";
+  var $telephoneNumber          ="";
+  var $internationaliSDNNumber  ="";
+  var $facsimileTelephoneNumber ="";
+  var $street                   ="";
+  var $postOfficeBox            ="";
+  var $postalCode               ="";
+  var $postalAddress            ="";
+  var $teletexTerminalIdentifier="";
+  var $physicalDeliveryOfficeName="";
+
+  /* Naming attributes 
+   */
+  var $o            ="";
+  var $type         = "organization";
+  var $orgi_o       = "";
+  var $namingAttr   = "o";
+
+  var $manager_enabled = FALSE;
+  var $manager_name ="";
+  var $manager ="";
+
+  function check()
+  {
+    $message = plugin::check();
+
+		/* Check for presence of this department */
+		$ldap= $this->config->get_ldap_link();
+    $ldap->ls ("(&(o=".$this->o.")(objectClass=organization))", $this->base, array('dn'));
+    if ($this->orig_o == "new" && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		} elseif ($this->orig_dn != $this->dn && $ldap->count()){
+			$message[]= msgPool::duplicated(_("Name"));
+		}
+
+		/* All required fields are set? */
+		if ($this->o == ""){
+			$message[]= msgPool::required(_("Name"));
+		}elseif(tests::is_department_name_reserved($this->o,$this->base)){
+      $message[]= msgPool::reserved(_("Name"));
+    }elseif(preg_match ('/[#+:=>\\\\\/]/', $this->o)){
+			$message[]= msgPool::invalid(_("Name"), $this->o, "/[^#+:=>\\\\\/]/");
+		}
+
+    /* Check description */
+		if ($this->description == ""){
+			$message[]= msgPool::required(_("Description"));
+		}
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return($message);
+  }
+
+
+  /* Return plugin informations for acl handling */
+  static function plInfo()
+  {
+    return (array("plShortName"   => _("Organization"),
+          "plDescription" => _("Organization"),
+          "plSelfModify"  => FALSE,
+          "plPriority"    => 1,
+          "plDepends"     => array(),
+          "plSection"     => array("administration"),
+          "plCategory"    => array("department"),
+
+          "plProvidedAcls" => array(
+            "o"                       => _("Organization name"),
+            "description"             => _("Description"),
+            "businessCategory"        => _("Category"),
+            "base"                    => _("Base"),
+
+            "manager"                 => _("Manager"),
+
+            "st"                      => _("State"),
+            "l"                       => _("Location"),
+            "postalAddress"           => _("Postal address"),
+            "telephoneNumber"         => _("Phone number"),
+            "facsimileTelephoneNumber"=> _("Fax"),
+
+            "gosaUnitTag"             => _("Administrative settings"))
+          ));
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/country.tpl b/gosa-core/plugins/admin/departments/country.tpl
new file mode 100644
index 0000000..d3da83a
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/country.tpl
@@ -0,0 +1,74 @@
+<!--////////////////////
+	//	COUNTRY (c)
+    //////////////////// -->
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     <table summary="">
+      <tr>
+       <td><LABEL for="c">{t}Country name{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$cACL}
+    	<input type='text' id="c" name="c" size=25 maxlength=60 value="{$c}" title="{t}Name of country to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <input type='text' id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+       </td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	  </td>
+	 </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+	</table>
+  </td>
+ </tr>
+</table>
+<p class='seperator'> </p>
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+<input type='hidden' name='dep_generic_posted' value='1'>
diff --git a/gosa-core/plugins/admin/departments/dcObject.tpl b/gosa-core/plugins/admin/departments/dcObject.tpl
new file mode 100644
index 0000000..23c7aa4
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dcObject.tpl
@@ -0,0 +1,74 @@
+<!--////////////////////
+	//	LOCALITY (l)
+    //////////////////// -->
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     <table summary="">
+      <tr>
+       <td><LABEL for="dc">{t}Locality name{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$dcACL}
+    	<input type='text' id="dc" name="dc" size=25 maxlength=60 value="{$dc}" title="{t}Name of locality to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <input type='text' id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+       </td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	  </td>
+	 </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+	</table>
+  </td>
+ </tr>
+</table>
+<p class='seperator'> </p>
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+<input type='hidden' name='dep_generic_posted' value='1'>
diff --git a/gosa-core/plugins/admin/departments/dep-filter.tpl b/gosa-core/plugins/admin/departments/dep-filter.tpl
new file mode 100644
index 0000000..3d4595c
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep-filter.tpl
@@ -0,0 +1,29 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/departments/dep-filter.xml b/gosa-core/plugins/admin/departments/dep-filter.xml
new file mode 100644
index 0000000..1b75819
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep-filter.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>departments</category>
+    <template>dep-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaDepartment)$NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>ou</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>one</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>18</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(ou=*$*)(dc=*$*)(c=*$*)(l=*$*)(o=*$*))</set>
+    <alphabet>false</alphabet>
+    <autocomplete>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaDepartment)(|(ou=*$NAME*)(dc=*$NAME*)(l=*$NAME*)(c=*$NAME*)(o=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <attribute>dc</attribute>
+      <attribute>c</attribute>
+      <attribute>l</attribute>
+      <attribute>o</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/departments/dep-list.tpl b/gosa-core/plugins/admin/departments/dep-list.tpl
new file mode 100644
index 0000000..c9d5114
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep-list.tpl
@@ -0,0 +1,28 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/departments/dep-list.xml b/gosa-core/plugins/admin/departments/dep-list.xml
new file mode 100644
index 0000000..949310e
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep-list.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>false</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>dep-list.tpl</template>
+    <module>departments</module>
+    <label>List of departments</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Domain</label>
+      <objectClass>domain</objectClass>
+      <category>department</category>
+      <class>domain</class>
+      <image>plugins/departments/images/domain.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Domain component</label>
+      <objectClass>dcObject</objectClass>
+      <category>department</category>
+      <class>dcObject</class>
+      <image>plugins/departments/images/dc.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Country</label>
+      <objectClass>country</objectClass>
+      <category>department</category>
+      <class>country</class>
+      <image>plugins/departments/images/country.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Locality</label>
+      <objectClass>locality</objectClass>
+      <category>department</category>
+      <class>locality</class>
+      <image>plugins/departments/images/locality.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Organization</label>
+      <objectClass>organization</objectClass>
+      <category>department</category>
+      <class>organization</class>
+      <image>plugins/departments/images/organization.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Department</label>
+      <objectClass>organizationalUnit</objectClass>
+      <category>department</category>
+      <class>department</class>
+      <image>images/lists/folder.png</image>
+    </objectType>
+  </definition>
+
+  <table>
+    <layout>|20px;c|||70px;r|</layout>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Department</label>
+      <sortAttribute>ou</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:depLabel(row,dn,"%s",ou,pid,base)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:depLabel(row,dn,"%s",description,pid,base)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+  </table>
+
+  <actionmenu>
+
+    <action>
+     <type>sub</type>
+     <image>images/lists/new.png</image>
+     <label>Create</label>
+
+     <action>
+      <name>new_domain</name>
+      <type>entry</type>
+      <label>Domain</label>
+      <image>plugins/departments/images/domain.png</image>
+     </action>
+    
+     <action>
+      <name>new_dcObject</name>
+      <type>entry</type>
+      <label>Domain component</label>
+      <image>plugins/departments/images/dc.png</image>
+     </action>
+
+     <action>
+      <name>new_country</name>
+      <type>entry</type>
+      <label>Country</label>
+      <image>plugins/departments/images/country.png</image>
+     </action>
+
+     <action>
+      <name>new_locality</name>
+      <type>entry</type>
+      <label>Locality</label>
+      <image>plugins/departments/images/locality.png</image>
+     </action>
+
+     <action>
+      <name>new_organization</name>
+      <type>entry</type>
+      <label>Organization</label>
+      <image>plugins/departments/images/organization.png</image>
+     </action>
+
+     <action>
+      <name>new_organizationalUnit</name>
+      <type>entry</type>
+      <label>Department</label>
+      <image>images/lists/folder.png</image>
+     </action>
+
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>exporter</type>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <label>Remove</label>
+    </action>
+
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <nospan></nospan>
+      <image>images/lists/edit.png</image>
+      <label>Edit</label>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <nospan></nospan>
+      <image>images/lists/trash.png</image>
+      <acl>department[d]</acl>
+      <label>Remove</label>
+    </action>
+
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/departments/dep_iframe.tpl b/gosa-core/plugins/admin/departments/dep_iframe.tpl
new file mode 100644
index 0000000..4c19321
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep_iframe.tpl
@@ -0,0 +1,21 @@
+<h2>{t}Processing the requested operation{/t}</h2>
+{$message}
+<br>
+<br>
+<div style="margin:3px;background-color:white; border:1px solid #A0A0A0">
+<iframe src="{$src}" style="width:100%;height:450px;background-color:#FFFFFF;" name="status">
+	<p>{t}Your browser doesn't support iframes, please use this link to perform the requested operation.{/t}
+	<br>
+	<a href="{$src}">{$src}</a>
+	</p>
+</iframe>
+</div>
+
+<!--
+<p class="seperator"> </p>
+<div style="text-align:right;">
+	<p>
+		<input type="submit" name="back" value="{msgPool type=backButton}">
+	</p>
+</div>
+-->
diff --git a/gosa-core/plugins/admin/departments/dep_move_confirm.tpl b/gosa-core/plugins/admin/departments/dep_move_confirm.tpl
new file mode 100644
index 0000000..0ca3039
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/dep_move_confirm.tpl
@@ -0,0 +1,19 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/warning.png" align=top> {t}Warning{/t} - {t}You are currently moving/renaming this department.{/t}
+</div>
+<p>
+{t}Modifying a departments naming attribute 'ou' or base may corrupt acls and snapshot entries for all entire objects.{/t}
+</p>
+<p>
+{t}GOsa can NOT fix this for you, yet.{/t}
+</p>
+<p>
+{t}Before you confirm this action, ensure that everything will be as expected, possibly the best solution is a backup.{/t} 
+</p>
+
+<p class="plugbottom">
+	<input type='submit' name='dep_move_confirm' value='{msgPool type=saveButton}'>
+  	 
+	<input type='submit' name='cancel_save' value='{msgPool type=cancelButton}'>
+</p>
+
diff --git a/gosa-core/plugins/admin/departments/domain.tpl b/gosa-core/plugins/admin/departments/domain.tpl
new file mode 100644
index 0000000..a686ed9
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/domain.tpl
@@ -0,0 +1,74 @@
+<!--////////////////////
+	//	LOCALITY (l)
+    //////////////////// -->
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     <table summary="">
+      <tr>
+       <td><LABEL for="dc">{t}Domain name{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$dcACL}
+    	<input type='text' id="dc" name="dc" size=25 maxlength=60 value="{$dc}" title="{t}Name of domain to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <input type='text' id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+       </td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	  </td>
+	 </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+	</table>
+  </td>
+ </tr>
+</table>
+<p class='seperator'> </p>
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+<input type='hidden' name='dep_generic_posted' value='1'>
diff --git a/gosa-core/plugins/admin/departments/generic.tpl b/gosa-core/plugins/admin/departments/generic.tpl
new file mode 100644
index 0000000..5e0dd79
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/generic.tpl
@@ -0,0 +1,146 @@
+<!--////////////////////
+	//	ORGANIZATIONAL UNIT (ou)
+    //////////////////// -->
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     
+     <table summary="">
+      <tr>
+       <td><LABEL for="ou">{t}Name of department{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$ouACL}
+	<input type='text' id="ou" name="ou" size=25 maxlength=60 value="{$ou}" title="{t}Name of subtree to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td style='vertical-align:top;'><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <textarea id='description' name='description' style='width:220px' title="{t}Descriptive text for   department{/t}">{$description}</textarea>
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="businessCategory">{t}Category{/t}</LABEL></td>
+       <td>
+{render acl=$businessCategoryACL}
+        <input type='text' id="businessCategory" name="businessCategory" size=25 maxlength=80 value="{$businessCategory}" title="{t}Category for this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+        <td colspan="2"><br></td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	</td>
+       </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+
+     </table>
+
+   </td>
+   <td style="border-left:1px solid #A0A0A0">
+     
+   </td>
+   <td>
+     <h2><img class="center" alt="" align="middle" src="plugins/departments/images/department.png"> {t}Location{/t}</h2>
+
+     <table summary="" style="width:100%">
+      <tr>
+       <td><LABEL for="st">{t}State{/t}</LABEL></td>
+       <td>
+{render acl=$stACL}
+	<input type='text' id="st" name="st" size=25 maxlength=60 value="{$st}" title="{t}State where this subtree is located{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="l">{t}Location{/t}</LABEL></td>
+       <td>
+{render acl=$lACL}
+	<input type='text' id="l" name="l" size=25 maxlength=60 value="{$l}" title="{t}Location of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td style="vertical-align:top;"><LABEL for="postalAddress">{t}Address{/t}</LABEL></td>
+       <td>
+{render acl=$postalAddressACL}
+	<textarea id="postalAddress" name="postalAddress" style="width:100%" rows=3 cols=22 title="{t}Postal address of this subtree{/t}">{$postalAddress}</textarea>
+{/render}
+      </tr>
+      <tr>
+       <td><LABEL for="telephoneNumber">{t}Phone{/t}</LABEL></td>
+       <td>
+{render acl=$telephoneNumberACL}
+	<input type='text' id="telephoneNumber" name="telephoneNumber" size=25 maxlength=60 value="{$telephoneNumber}" title="{t}Base telephone number of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="facsimileTelephoneNumber">{t}Fax{/t}</LABEL></td>
+       <td>
+{render acl=$facsimileTelephoneNumberACL}
+	<input type='text' id="facsimileTelephoneNumber" name="facsimileTelephoneNumber" size=25 maxlength=60 value="{$facsimileTelephoneNumber}" title="{t}Base facsimile telephone number of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+     </table>
+
+   </td>
+ </tr>
+</table>
+
+<p class='seperator'> </p>
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+
+<!-- Place cursor -->
+<input type='hidden' name='dep_generic_posted' value='1'>
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('ou');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/departments/locality.tpl b/gosa-core/plugins/admin/departments/locality.tpl
new file mode 100644
index 0000000..d847814
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/locality.tpl
@@ -0,0 +1,74 @@
+<!--////////////////////
+	//	LOCALITY (l)
+    //////////////////// -->
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     <table summary="">
+      <tr>
+       <td><LABEL for="l">{t}Locality name{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$lACL}
+    	<input type='text' id="l" name="l" size=25 maxlength=60 value="{$l}" title="{t}Name of locality to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <input type='text' id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+       </td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	  </td>
+	 </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+	</table>
+  </td>
+ </tr>
+</table>
+<p class='seperator'> </p>
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+<input type='hidden' name='dep_generic_posted' value='1'>
diff --git a/gosa-core/plugins/admin/departments/main.inc b/gosa-core/plugins/admin/departments/main.inc
new file mode 100644
index 0000000..b43c189
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/main.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 14675 2009-10-28 15:53:53Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+if ($remove_lock){
+  if(session::is_set('departmentManagement')){
+      $macl = session::get('departmentManagement');
+      $macl->remove_lock();
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('departmentManagement');
+}else{
+
+  /* Create usermanagement object on demand */
+  if (!session::is_set('departmentManagement')){
+    $departmentManagement= new departmentManagement ($config, $ui);
+    session::set('departmentManagement',$departmentManagement);
+  }
+  $departmentManagement = session::get('departmentManagement');
+  $display= $departmentManagement->execute();
+
+  /* Reset requested? */
+  if (isset($_GET['reset']) && $_GET['reset'] == 1){
+    session::un_set ('departmentManagement');
+  }
+
+  /* Show and save dialog */
+  session::set('departmentManagement',$departmentManagement);
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/organization.tpl b/gosa-core/plugins/admin/departments/organization.tpl
new file mode 100644
index 0000000..8ee12f9
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/organization.tpl
@@ -0,0 +1,146 @@
+<!--////////////////////
+	//	ORGANIZATION (o)
+    //////////////////// -->
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:50%">
+     <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+     
+     <table summary="">
+      <tr>
+       <td><LABEL for="o">{t}Name of organization{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$oACL}
+	<input type='text' id="o" name="o" size=25 maxlength=60 value="{$o}" title="{t}Name of organization to create{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+       <td>
+{render acl=$descriptionACL}
+        <input type='text' id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="businessCategory">{t}Category{/t}</LABEL></td>
+       <td>
+{render acl=$businessCategoryACL}
+        <input type='text' id="businessCategory" name="businessCategory" size=25 maxlength=80 value="{$businessCategory}" title="{t}Category for this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+        <td colspan="2"><br></td>
+      </tr>
+	{if !$is_root_dse}
+      <tr>
+        <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+
+        <td>
+{render acl=$baseACL}
+          {$base}
+{/render}
+	</td>
+       </tr>
+	{/if}
+
+  {if $manager_enabled}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+  {/if}
+     </table>
+
+   </td>
+   <td style="border-left:1px solid #A0A0A0">
+     
+   </td>
+   <td>
+     <h2><img class="center" alt="" align="middle" src="plugins/departments/images/department.png"> {t}Location{/t}</h2>
+
+     <table summary="" style="width:100%">
+      <tr>
+       <td><LABEL for="st">{t}State{/t}</LABEL></td>
+       <td>
+{render acl=$stACL}
+	<input type='text' id="st" name="st" size=25 maxlength=60 value="{$st}" title="{t}State where this subtree is located{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="l">{t}Location{/t}</LABEL></td>
+       <td>
+{render acl=$lACL}
+	<input type='text' id="l" name="l" size=25 maxlength=60 value="{$l}" title="{t}Location of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td style="vertical-align:top;"><LABEL for="postalAddress">{t}Address{/t}</LABEL></td>
+       <td>
+{render acl=$postalAddressACL}
+	<textarea id="postalAddress" name="postalAddress" style="width:100%" rows=3 cols=22 title="{t}Postal address of this subtree{/t}">{$postalAddress}</textarea>
+{/render}
+      </tr>
+      <tr>
+       <td><LABEL for="telephoneNumber">{t}Phone{/t}</LABEL></td>
+       <td>
+{render acl=$telephoneNumberACL}
+	<input type='text' id="telephoneNumber" name="telephoneNumber" size=25 maxlength=60 value="{$telephoneNumber}" title="{t}Base telephone number of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+      <tr>
+       <td><LABEL for="facsimileTelephoneNumber">{t}Fax{/t}</LABEL></td>
+       <td>
+{render acl=$facsimileTelephoneNumberACL}
+	<input type='text' id="facsimileTelephoneNumber" name="facsimileTelephoneNumber" size=25 maxlength=60 value="{$facsimileTelephoneNumber}" title="{t}Base facsimile telephone number of this subtree{/t}">
+{/render}
+       </td>
+      </tr>
+     </table>
+
+   </td>
+ </tr>
+</table>
+
+<p class='seperator'> </p>
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+   <td style="vertical-align:top; width:100%">
+     <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+     <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+   </td>
+  </tr>
+</table>
+
+<!-- Place cursor -->
+<input type='hidden' name='dep_generic_posted' value='1'>
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('o');
+  -->
+</script>
+<input type='hidden' name='dep_generic_posted' value='1'>
diff --git a/gosa-core/plugins/admin/departments/remove.tpl b/gosa-core/plugins/admin/departments/remove.tpl
new file mode 100644
index 0000000..7fd2cf1
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/remove.tpl
@@ -0,0 +1,18 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+ {$info}
+ {t}This includes 'all' accounts, systems, etc. in this subtree. Please double check if your really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+ {t}Best thing to do before performing this action would be to save the current contents of your LDAP tree in a file. So - if you've done so - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+	<input type=submit name="delete_confirmed" value="{msgPool type=delButton}">
+	 
+	<input type=submit name="delete_cancel" value="{msgPool type=cancelButton}">
+</p>
+
diff --git a/gosa-core/plugins/admin/departments/tabs_department.inc b/gosa-core/plugins/admin/departments/tabs_department.inc
new file mode 100644
index 0000000..61b5ae1
--- /dev/null
+++ b/gosa-core/plugins/admin/departments/tabs_department.inc
@@ -0,0 +1,83 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_department.inc 14990 2009-12-30 17:14:01Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class deptabs extends tabs
+{
+  var $base= "";
+  var $moved = FALSE;
+  var $base_name = "department";
+
+  function deptabs($config, $data, $dn,$category,$hide_refs = FALSE, $hide_acls = FALSE)
+  {
+    tabs::tabs($config, $data, $dn,$category,$hide_refs, $hide_acls);
+
+    /* Detect the base class  (The classs which extends from department)
+     */
+    foreach($this->by_object as $name => $object){
+      if($object instanceOf department){
+        $this->base_name = get_class($object);
+        break;
+      }
+    }
+
+
+    /* Add references/acls/snapshots */
+    $this->addSpecialTabs();
+    if(isset($this->by_object['acl'])){
+      $this->by_object['acl']->skipTagging= TRUE;
+    }
+  }
+
+  function check($ignore_account= FALSE)
+  {
+    return (tabs::check(TRUE));
+  }
+
+  function save($ignore_account= FALSE)
+  {
+    $baseobject= &$this->by_object[$this->base_name];
+    $namingAttr       = $baseobject->namingAttr;
+    $nAV      = preg_replace('/,/', '\,', $baseobject->$namingAttr); 
+    $nAV      = preg_replace('/"/', '\"', $nAV); 
+    $new_dn   = @LDAP::convert($namingAttr.'='.$nAV.','.$baseobject->base);
+
+    /* Move group? */
+    if ($this->dn != $new_dn && $this->dn != "new"){
+      $baseobject->move($this->dn,$new_dn);
+    } 
+
+    /* Update department cache. 
+     */
+    if($this->dn != $new_dn){
+      global $config;
+      $config->get_departments();
+    }
+
+    $this->dn= $new_dn;
+    $baseobject->dn= $this->dn;
+    if (!$ignore_account){
+      tabs::save(TRUE);
+    }
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/class_filterGroupLDAP.inc b/gosa-core/plugins/admin/groups/class_filterGroupLDAP.inc
new file mode 100644
index 0000000..31bd5bf
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/class_filterGroupLDAP.inc
@@ -0,0 +1,54 @@
+<?php
+
+class filterGroupLDAP {
+
+  static function query($parent,$base, $scope, $filter, $attributes, $category, $objectStorage= "")
+  {
+    $result= array();
+    $menu= array();
+    $dn2index= array();
+    $config= session::global_get('config');
+    $ldap= $config->get_ldap_link(TRUE);
+    $flag= ($scope == "sub")?GL_SUBSEARCH:0;
+    $tmp= filterGroupLDAP::get_list($parent,$base, $filter, $attributes, $category, $objectStorage, $flag | GL_SIZELIMIT);
+
+    // Sort out menu entries, but save info
+    $index= 0;
+    foreach ($tmp as $entry) {
+      if (in_array_ics("posixGroup", $entry['objectClass'])) {
+        $result[$index]= $entry;
+        $dn2index[$entry['dn']]= $index;
+        $index++;
+      } else {
+        foreach ($objectStorage as $storage) {
+          $group= preg_replace("/^.*,([^,]+),".preg_quote("$storage$base")."$/", '$1', $entry['dn']);
+          $group= "$group,$storage$base";
+
+          // The current group implementation has no multiple storage settings - so break here
+          break;
+        }
+        $menu[$group]= true;
+      }
+    }
+
+    // Move menu information to menu
+    foreach ($menu as $dn => $dummy) {
+      if(isset($dn2index[$dn])){
+        $result[$dn2index[$dn]]["objectClass"][]= "gotoMenuGroup";
+      }
+    }
+
+    return $result;
+  }
+
+
+  static function get_list($parent,$base, $filter, $attributes, $category, $objectStorage, $flags= GL_SUBSEARCH)
+  {
+    $filter= "(|(|(objectClass=gotoMenuEntry)(objectClass=gotoSubmenuEntry))$filter)";
+    return filterLDAP::get_list($parent,$base, $filter, $attributes, $category, $objectStorage, $flags);
+  }
+
+
+}
+
+?>
diff --git a/gosa-core/plugins/admin/groups/class_group.inc b/gosa-core/plugins/admin/groups/class_group.inc
new file mode 100644
index 0000000..eee5334
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/class_group.inc
@@ -0,0 +1,1390 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_group.inc 15620 2010-02-12 14:12:14Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class group extends plugin
+{
+  /* Group attributes */
+  var $cn= "";
+  var $description= "";
+  var $gidNumber= "";
+  var $memberUid= array();
+  var $memberUid_used_by_some= array();
+
+  /* Helpers */
+  var $base= "";
+  var $force_gid= FALSE;
+  var $fon_group= FALSE;
+  var $smbgroup= FALSE;
+  var $groupType= FALSE;
+  var $sambaSID= "";
+  var $sambaDomainName= "DEFAULT";
+  var $SID= "";
+  var $ridBase= 0;
+  var $members= array();
+  var $users= array();
+  var $member= array();
+  var $allusers= array();
+  var $saved_gidNumber= "";
+  var $oldgroupType= "";
+  var $orig_dn= "";
+  var $orig_cn= "";
+  var $orig_base= "";
+  var $has_mailAccount= FALSE;
+  var $userSelect= FALSE;
+  var $nagios_group =FALSE;
+  var $sambaGroupType;
+  var $dialog;
+  var $rfc2307bis= FALSE;
+  var $OnlyShowFirstEntries =200;
+  var $dnMapping= array();
+  var $view_logged = FALSE;
+  var $allowGroupsWithSameNameInOtherSubtrees = true;
+  var $baseSelector;
+
+  /* Trustmodel/AccessTo 
+   */
+  var $accessTo= array();
+  var $trustModel= "";
+  var $trustSelect = FALSE;
+
+  /* attribute list for save action */
+  var $attributes= array("cn", "description", "gidNumber","memberUid","sambaGroupType","sambaSID","accessTo","trustModel");
+  var $objectclasses= array("top", "posixGroup");
+
+  var $CopyPasteVars  = array("force_gid","fon_group","smbgroup","groupType","sambaSID","sambaDomainName","SID","nagios_group","sambaGroupType");
+
+  var $multiple_support = TRUE;
+
+  function group (&$config, $dn= NULL)
+  {
+     /* Set rfc2307bis flag */
+     if ($config->get_cfg_value("rfc2307bis") == "true"){
+       $this->rfc2307bis= TRUE;
+       $this->attributes[]= "member";
+       $this->objectclasses[]= "groupOfNames";
+     }
+
+    plugin::plugin ($config, $dn);
+
+    /* Load attributes depending on the samba version */
+    $this->orig_dn= $dn;
+    $this->orig_cn= $this->cn;
+
+    /* Get member list */
+    if (isset($this->attrs['memberUid'][0])){
+      $tmp= array();
+      for ($i= 0; $i<$this->attrs['memberUid']['count']; $i++){
+        $tmp[$this->attrs['memberUid'][$i]]= $this->attrs['memberUid'][$i];
+      }
+      $this->memberUid= $tmp;
+      ksort ($this->memberUid);
+    }
+
+    /* Save gidNumber for later use */
+    if (isset($this->attrs['gidNumber'])){
+      $this->saved_gidNumber= $this->attrs['gidNumber'][0];
+    }
+
+    /* Is a samba group? */
+    if (isset($this->attrs['objectClass'])){
+      if (array_search ('sambaGroupMapping', $this->attrs['objectClass']) == FALSE ){
+        $this->smbgroup= FALSE;
+      } else {
+        $this->smbgroup= TRUE;
+        if (isset($this->attrs['sambaSID'])){
+          $this->sambaSID= $this->attrs['sambaSID'][0];
+        }
+      }
+      if (array_search ('goFonPickupGroup', $this->attrs['objectClass']) == FALSE ){
+        $this->fon_group= FALSE;
+      } else {
+        $this->fon_group= TRUE;
+      }
+      if (array_search ('nagiosContactGroup', $this->attrs['objectClass']) == FALSE ){
+        $this->nagios_group= FALSE;
+      } else {
+        $this->nagios_group= TRUE;
+      }
+    }
+
+    /* Set mail flag */
+    if (isset($this->attrs['objectClass']) && in_array('gosaMailAccount', $this->attrs['objectClass'])){
+      $this->has_mailAccount= TRUE;
+    }
+
+    /* Get samba Domain in case of samba 3 */
+    if ($this->sambaSID != ""){
+      $this->SID= preg_replace ("/-[^-]+$/", "", $this->sambaSID);
+      $ldap= $this->config->get_ldap_link();
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search ("(&(objectClass=sambaDomain)(sambaSID=$this->SID))",array("sambaAlgorithmicRidBase"));
+      if ($ldap->count() != 0){
+        $attrs= $ldap->fetch();
+        if(isset($attrs['sambaAlgorithmicRidBase'])){  
+          $this->ridBase= $attrs['sambaAlgorithmicRidBase'][0];  
+        } else {  
+          $this->ridBase= $this->config->get_cfg_value("sambaRidBase");
+        } 
+
+        /* Get domain name for SID */
+        $this->sambaDomainName= "DEFAULT";
+        foreach ($this->config->data['SERVERS']['SAMBA'] as $key => $val){
+          if ($val['SID'] == $this->SID){
+            $this->sambaDomainName= $key;
+            break;
+          }
+        }
+      } else {
+        if ($this->config->get_cfg_value("sambaRidBase") != ""){
+          $this->sambaDomainName= "DEFAULT";
+          $this->ridBase= $this->config->get_cfg_value("sambaRidBase");
+          $this->SID= $this->config->get_cfg_value("sid");
+        } else {
+          msg_dialog::display(_("Configuration error"), _("Cannot find group SID in your configuration!"), ERROR_DIALOG);
+        }
+      }
+
+      /* Get group type */
+      $this->groupType= (int)substr(strrchr($this->sambaSID, "-"), 1);
+      if ($this->groupType < 500 || $this->groupType > 553){
+        $this->groupType= 0;
+      }
+      $this->oldgroupType= $this->groupType;
+    }
+
+    /* Get global filter config */
+    if (!session::is_set("gufilter")){
+      $ui= get_userinfo();
+      $base= get_base_from_people($ui->dn);
+      $gufilter= array( "dselect"       => $base,
+          "regex"           => "*");
+      session::set("gufilter", $gufilter);
+    }
+    $gufilter= session::get('gufilter');
+    $gufilter['SubSearchGroup'] = false;
+    session::set('gufilter',$gufilter);
+  
+    if ($this->dn == "new"){
+      if(session::is_set('CurrentMainBase')){
+        $this->base = session::get('CurrentMainBase');
+      }else{
+        $ui= get_userinfo();
+        $this->base= dn2base($ui->dn);
+      }
+    } else {
+
+      /* Get object base */
+      $this->base =preg_replace ("/^[^,]+,".preg_quote(get_groups_ou(), '/')."/i","",$this->dn);
+    }
+    $this->orig_base = $this->base;
+
+    /* Is this account a trustAccount? */
+    if (isset($this->attrs['trustModel'])){
+      $this->trustModel= $this->attrs['trustModel'][0];
+      $this->was_trust_account= TRUE;
+    } else {
+      $this->was_trust_account= FALSE;
+      $this->trustModel= "";
+    }
+
+    $this->accessTo = array();
+    if (isset($this->attrs['accessTo'])){
+      for ($i= 0; $i<$this->attrs['accessTo']['count']; $i++){
+        $tmp= $this->attrs['accessTo'][$i];
+        $this->accessTo[$tmp]= $tmp;
+      }
+    }
+
+    /* Get global filter config */
+    if (!session::is_set("sysfilter")){
+      $ui= get_userinfo();
+      $base= get_base_from_people($ui->dn);
+      $sysfilter= array( "depselect"       => $base,
+          "regex"           => "*");
+      session::set("sysfilter", $sysfilter);
+    }
+
+    /* This is always an account */
+    $this->is_account= TRUE;
+
+    /* Instanciate base selector */
+    $this->baseSelector= new baseSelector($this->get_allowed_bases(), $this->base);
+    $this->baseSelector->setSubmitButton(false);
+    $this->baseSelector->setHeight(300);
+    $this->baseSelector->update(true);
+
+    $this->reload(TRUE);
+  }
+
+  function execute()
+  {
+    /* Call parent execute */
+    plugin::execute();
+
+    /* Log view */
+    if($this->is_account && !$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","groups/".get_class($this),$this->dn);
+    }
+
+    /* Do we represent a valid group? */
+    if (!$this->is_account && $this->parent === NULL){
+      $display= "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\"> <b>".msgPool::noValidExtension()."</b>";
+      return ($display);
+    }
+
+    /* Delete user from group */
+    if (isset($_POST['del_users']) && isset($_POST['members']) && preg_match("/w/",$this->getacl("memberUid"))){
+      foreach ($_POST['members'] as $value){
+        unset ($this->members["$value"]);
+        $this->removeUser($value);
+      }
+      $this->reload();
+    }
+
+    /* Add objects? */
+    if (isset($_POST["edit_membership"]) && preg_match("/w/",$this->getacl("memberUid"))){
+      $this->userSelect= new userSelect($this->config, get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    /* Add objects finished? */
+    if (isset($_POST["add_users_cancel"])){
+      $this->userSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    /* Add user to group */
+    if (isset($_POST['add_users_finish']) && $this->userSelect){
+  
+      $users = $this->userSelect->detectPostActions();
+      if(isset($users['targets'])){
+        $headpage = $this->userSelect->getHeadpage();
+        foreach($users['targets'] as $dn){
+          $attrs = $headpage->getEntry($dn);
+          $value = $attrs['uid'][0];
+          $this->addUser($value);
+          $this->members["$value"]= $this->allusers[$value];
+          $this->reload();
+        }
+      }
+      $this->userSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    /* Dialog handling */
+    if(is_object($this->dialog)){
+      /* Must be called before save_object */
+      $this->dialog->save_object();
+
+      if($this->dialog->isClosed()){
+        $this->dialog = false;
+      }elseif($this->dialog->isSelected()){
+
+        /* Check if selected base is valid */
+        $tmp = $this->get_allowed_bases();
+        if(isset($tmp[$this->dialog->isSelected()])){
+          $this->base = $this->dialog->isSelected();
+        }
+        $this->dialog= false;
+      }else{
+        return($this->dialog->execute());
+      }
+    }
+
+
+    /* Add user workstation? */
+    if (isset($_POST["add_ws"])){
+      $this->trustSelect= new trustSelect($this->config,get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    // Add selected machines to trusted ones.
+    if (isset($_POST["add_ws_finish"]) &&  $this->trustSelect){
+      $trusts = $this->trustSelect->detectPostActions();
+      if(isset($trusts['targets'])){
+
+        $headpage = $this->trustSelect->getHeadpage();
+        foreach($trusts['targets'] as $id){
+          $attrs = $headpage->getEntry($id);
+          $this->accessTo[$attrs['cn'][0]]= $attrs['cn'][0];
+        }
+        ksort($this->accessTo);
+        $this->is_modified= TRUE;
+      }
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+
+    /* Add user workstation? */
+    if (isset($_POST["add_ws_finish"]) && isset($_POST['wslist'])){
+      foreach($_POST['wslist'] as $ws){
+        $this->accessTo[$ws]= $ws;
+      }
+      ksort($this->accessTo);
+      $this->is_modified= TRUE;
+    }
+
+    /* Remove user workstations? */
+    if (isset($_POST["delete_ws"]) && isset($_POST['workstation_list'])){
+      foreach($_POST['workstation_list'] as $name){
+        unset ($this->accessTo[$name]);
+      }
+      $this->is_modified= TRUE;
+    }
+
+    /* Add user workstation finished? */
+    if (isset($_POST["add_ws_cancel"])){
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+
+    /* Show ws dialog */
+    if ($this->trustSelect){
+    
+      // Build up blocklist
+      session::set('filterBlacklist', array('cn' => array_values($this->accessTo)));
+      return($this->trustSelect->execute());
+    }
+
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    if($this->config->search("nagiosaccount", "CLASS",array('menu'))){
+      $smarty->assign("nagios",true);
+    }else{
+      $smarty->assign("nagios",false);
+    }
+    
+    if($this->config->search("phoneAccount", "CLASS",array('menu'))){
+      $smarty->assign("pickupGroup",true);
+    }else{
+      $smarty->assign("pickupGroup",false);
+    }
+
+    /* Manage object add dialog */
+    if ($this->userSelect){
+      return($this->userSelect->execute());
+    }
+
+    /* Create base acls */
+    $smarty->assign("base", $this->baseSelector->render());
+
+    $domains= array();
+    foreach($this->config->data['SERVERS']['SAMBA'] as $name => $content){
+      $domains[$name]= $name;
+    }
+    $smarty->assign("sambaDomains", $domains);
+    $smarty->assign("sambaDomainName", $this->sambaDomainName);
+    $groupTypes= array(0 => _("Samba group"), 512 => _("Domain admins"), 513 => _("Domain users"),
+        514 => _("Domain guests"));
+
+    /* Don't loose special groups! If not key'ed above, add it to
+       the combo box... */	
+    if ($this->groupType >= 500 && $this->groupType <= 553 && !isset($groupTypes[$this->groupType])){
+      $groupTypes[$this->groupType]= sprintf(_("Special group (%d)"), $this->groupType);
+    }
+
+    $smarty->assign("groupTypes", $groupTypes);
+    $smarty->assign("groupType", $this->groupType);
+    
+
+    /* Members and users */
+    $smarty->assign("members", $this->members);
+
+    /* Work on trust modes */
+    $smarty->assign("trusthide", " disabled ");
+    $smarty->assign("trustmodeACL",  $this->getacl("trustModel"));
+    if ($this->trustModel == "fullaccess"){
+      $trustmode= 1;
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel"));
+
+    } elseif ($this->trustModel == "byhost"){
+      $trustmode= 2;
+      $smarty->assign("trusthide", "");
+    } else {
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel"));
+      $trustmode= 0;
+    }
+    $smarty->assign("trustmode", $trustmode);
+    $smarty->assign("trustmodes", array( 0 => _("disabled"), 1 => _("full access"),
+          2 => _("allow access to these hosts")));
+
+    if((count($this->accessTo))==0){
+      $smarty->assign("emptyArrAccess",true);
+    } else{
+      $smarty->assign("emptyArrAccess",false);
+
+    }
+
+    $smarty->assign("workstations", $this->accessTo);
+
+
+
+    /* Checkboxes */
+    foreach (array("force_gid", "smbgroup") as $val){
+      if ($this->$val == "1"){
+        $smarty->assign("$val", "checked");
+      } else {
+        $smarty->assign("$val", "");
+      }
+    }
+    if ($this->force_gid != "1"){
+      $smarty->assign("forceMode", "disabled");
+    }else{
+      $smarty->assign("forceMode", "");
+    }
+    if ($this->fon_group){
+      $smarty->assign("fon_group", "checked");
+    } else {
+      $smarty->assign("fon_group", "");
+    }
+
+    if ($this->nagios_group){
+      $smarty->assign("nagios_group", "checked");
+    } else {
+      $smarty->assign("nagios_group", "");
+    }
+
+    /* Fields */
+    foreach (array("cn", "description", "gidNumber") as $val){
+      $smarty->assign("$val", $this->$val);
+    }
+
+    $tmp = $this->plInfo();
+    foreach($tmp['plProvidedAcls'] as $name => $translation){
+      $smarty->assign($name."ACL",$this->getacl($name));
+    }
+    
+    if($this->acl_is_writeable("base")){
+      $smarty->assign("baseSelect",true);
+    }else{
+      $smarty->assign("baseSelect",false);
+    }
+
+    /* Show main page */
+    $smarty->assign("alphabet", generate_alphabet(10));
+    $smarty->assign("search_image", get_template_path('images/lists/search.png'));
+    $smarty->assign("launchimage", get_template_path('images/lists/action.png'));
+    $smarty->assign("tree_image", get_template_path('images/lists/search-subtree.png'));
+    $smarty->assign("deplist", $this->config->idepartments);
+
+    /* Multiple edit handling */
+    $smarty->assign("multiple_support",$this->multiple_support_active);
+
+    $smarty->assign("memberUid_All",$this->memberUid);
+    $smarty->assign("memberUid_Some",$this->memberUid_used_by_some);
+
+    foreach($this->attributes as $val){
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+    }
+    foreach(array("base","smbgroup","groupType","sambaDomainName","fon_group","nagios_group","trustmode") as $val){
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+    }
+
+    return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
+  }
+
+  function addUser($uid)
+  {
+    /* In mutliple edit we have to handle two arrays.
+     *  memberUid               : Containing users used in all groups
+     *  memberUid_used_by_some  : Those which are not used in all groups
+     * So we have to remove the given $uid from the ..used_by_some array first.
+     */
+    if($this->multiple_support_active){
+      if(isset($this->memberUid_used_by_some[$uid])){
+        unset($this->memberUid_used_by_some[$uid]);
+      }
+    }  
+
+    /* Ensure that the requested object is known to the group class 
+     */
+    if(!isset($this->dnMapping[$uid])){
+      $ldap = $this->config->get_ldap_link();
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search("(&(objectClass=gosaAccount)(uid=".$uid."))",array("dn", "uid","sn","givenName"));
+      if($ldap->count() == 0 ){
+        msg_dialog::display(_("Error"), 
+            sprintf(_("Adding UID '%s' to group '%s' failed: cannot find user object!"), 
+              $uid,$this->cn), 
+            ERROR_DIALOG);
+        return;
+      }elseif($ldap->count() >= 2){
+        msg_dialog::display(_("Error"), 
+            sprintf(_("Add UID '%s' to group '%s' failed: UID is used more than once!"),
+              $uid,$this->cn), 
+            ERROR_DIALOG);
+        return;
+      }else{
+        while($attrs = $ldap->fetch()){
+          $this->dnMapping[$attrs['uid'][0]] = $attrs['dn'];
+          $this->members[$attrs['uid'][0]] = $this->createResultName($attrs);
+          $this->allusers[$attrs['uid'][0]]= $this->createResultName($attrs);
+        }
+      }
+    }
+
+    $this->memberUid[$uid]= $uid;
+  }
+
+
+  function removeUser($uid)
+  {
+    $temp= array();
+    if(isset($this->memberUid[$uid])){
+      unset($this->memberUid[$uid]);
+    }
+
+    /* We have two array contianing group members in multiple edit.
+     *  this->memberUid             : Groups used by all currently edited groups 
+     *  this->memberUid_used_by_some: Used by some 
+     * So we have to remove the specified uid from both arrays.
+     */
+    if($this->multiple_support_active){
+      if(isset($this->memberUid_used_by_some[$uid])){
+        unset($this->memberUid_used_by_some[$uid]);
+      }
+    }
+  }
+
+  /* Reload data */
+  function reload($silent = FALSE)
+  {
+    /* Fix regex string */
+    $gufilter = session::get("gufilter");
+    $regex    = normalizeLdap($gufilter['regex']);
+    $MaxUser  = $this->OnlyShowFirstEntries;
+
+    /* Prepare ldap link */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($gufilter['dselect']);
+
+
+    /* Resolve still unresolved memberuids to fill the list with sn/giveName attributes 
+        (Store gathered sn/givenName informations in $this->allusers too, 
+         to be prepared when adding/deleting users)
+     */    
+    $filter = "";
+    if ($this->config->get_cfg_value("ldapFilterNestingLimit") == "" ||
+        count($this->memberUid) < $this->config->get_cfg_value("ldapFilterNestingLimit")){
+      foreach ($this->memberUid as $value){
+        if(!isset($this->members[$value])){
+          $filter .= "(uid=".normalizeLdap($value).")";
+        }
+      }
+    }
+
+    if(!empty($filter)){    
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search("(&(objectClass=gosaAccount)(|".$filter."))",array("dn", "uid","sn","givenName"));
+      while($attrs = $ldap->fetch()){
+        $this->dnMapping[$attrs['uid'][0]] = $attrs['dn'];
+        $this->members[$attrs['uid'][0]] = $this->createResultName($attrs);
+        $this->allusers[$attrs['uid'][0]]= $this->createResultName($attrs);
+      } 
+    }
+  
+    /* check if all uids are resolved */
+    if ($this->config->get_cfg_value("ldapFilterNestingLimit") == "" ||
+        count($this->memberUid) < $this->config->get_cfg_value("ldapFilterNestingLimit")){
+      foreach ($this->memberUid as $value){
+        if(!isset($this->members[$value])){
+          $this->members[$value] =  _("! unknown UID")." [".$value."]"; 
+        }
+      }  
+    }else{
+      foreach ($this->memberUid as $value){
+        $this->members[$value] = $value; 
+      }  
+    }
+
+    /* Create display list of users matching regex & filter 
+     */
+    $this->displayUsers = array();
+    $filter = "(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))(!(uid=*$))(|(uid=".$regex.")(sn=".$regex.")(givenName=".$regex.")))";
+
+    /* Search in current tree or within subtrees depending on the checkbox from filter section */
+    if($gufilter['SubSearchGroup']){
+      $flag = GL_SIZELIMIT | GL_SUBSEARCH;
+      $base = $gufilter['dselect'];
+    }else{
+      $flag = GL_SIZELIMIT ;
+      $base = get_people_ou().$gufilter['dselect'];
+    }
+    $i = 0;
+  
+
+    $res = get_list($filter,"users",$base,array("dn", "uid", "sn", "givenName"),$flag);
+
+    /* Fetch all users and skip already used users */
+    foreach($res as $attrs){
+      if(in_array($attrs['uid'][0], $this->memberUid)) {
+        continue;
+      }
+      $i ++;
+      if($i > $MaxUser) {
+        break;
+      }
+      $this->dnMapping[$attrs['uid'][0]]= $attrs["dn"];
+      $this->allusers[$attrs['uid'][0]]     = $this->createResultName($attrs);
+      $this->displayUsers[$attrs['uid'][0]] = $this->createResultName($attrs);
+    }
+  
+    /* If more than max users are found, display a message to warn the user */
+    if($i == $MaxUser && !$silent){
+      msg_dialog::display(_("Configuration error"), sprintf(_("Search returned too many results. Not displaying more than %s entries!"), $MaxUser), ERROR_DIALOG);
+    }
+    
+    /* Sort lists */
+    natcasesort($this->members);
+    reset($this->members);
+    natcasesort ($this->displayUsers);
+    reset ($this->displayUsers);
+  }
+
+
+  /* Create display name, this was used so often that it is excluded into a seperate function */
+  function createResultName($attrs)
+  {
+    if (isset($attrs["givenName"][0]) && isset($attrs["sn"][0])){
+      $ret =  $attrs["sn"][0].", ".$attrs["givenName"][0]." [".$attrs["uid"][0]."]";
+    } else {
+      $ret= $attrs['uid'][0];
+    }
+    return($ret);
+  }
+
+
+  function remove_from_parent()
+  {
+    plugin::remove_from_parent();
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->rmdir($this->dn);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
+    }
+
+    new log("remove","groups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+
+    /* Delete references to object groups */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter($this->dn)."))", array("cn"));
+    while ($ldap->fetch()){
+      $og= new ogroup($this->config, $ldap->getDN());
+      unset($og->member[$this->dn]);
+      $og->save ();
+    }
+
+    /* Remove ACL dependencies too,
+     */
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=gosaAcl)(gosaAclEntry=*".base64_encode($this->dn)."*))",array("gosaAclEntry","dn"));
+    while($attrs = $ldap->fetch()){
+      $acl = new acl($this->config,$this->parent,$attrs['dn']);
+      foreach($acl->gosaAclEntry as $id => $entry){
+        foreach($entry['members'] as $m_id => $member){
+          if($m_id == "G:".$this->dn || $m_id == "U:".$this->dn){
+            unset($acl->gosaAclEntry[$id]['members'][$m_id]);
+            gosa_log("modify","groups/acl",$attrs['dn'],array(),sprintf("Removed acl for %s on object %s.",$this->dn,$attrs['dn']));
+          }
+        }
+      }
+      $acl->save();
+    }
+
+    /* Remove ACL dependencies, too */
+    acl::remove_acl_for($this->dn);
+
+    /* Send signal to the world that we've done */
+    $this->handle_post_events("remove");
+  }
+
+
+  /* Save data to object */
+  function save_object()
+  {
+    /* Save additional values for possible next step */
+    if (isset($_POST['groupedit'])){
+
+      /* Create a base backup and reset the 
+          base directly after calling plugin::save_object();  
+         Base will be set seperatly a few lines below */
+      $base_tmp = $this->base;
+      plugin::save_object();
+      $this->base = $base_tmp;
+
+      /* Refresh base */
+      if ($this->acl_is_moveable($this->base)){
+        if (!$this->baseSelector->update()) {
+          msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+        }
+        if ($this->base != $this->baseSelector->getBase()) {
+          $this->base= $this->baseSelector->getBase();
+          $this->is_modified= TRUE;
+        }
+      }
+
+      $this->force_gid= 0;
+
+      /* Only reset sambagroup flag if we are able to write this flag */
+      if($this->acl_is_writeable("sambaGroupType")){
+        $this->smbgroup = 0;
+      }
+
+      foreach (array(
+            "force_gid"  => "gidNumber", 
+            "smbgroup"   => "sambaGroupType") as $val => $aclname) {
+        if ($this->acl_is_writeable($aclname)  && isset($_POST["$val"])){
+          $this->$val= $_POST["$val"];
+        }
+      }
+
+      /* Save sambaDomain attribute */
+      if ($this->acl_is_writeable("sambaDomainName") && isset ($_POST['sambaDomainName'])){
+        $this->sambaDomainName= $_POST['sambaDomainName'];
+        $this->groupType= $_POST['groupType'];
+      }
+
+      /* Save fon attribute */
+      if ($this->acl_is_writeable("fonGroup")){
+        if (isset ($_POST['fon_group'])){
+          $this->fon_group= TRUE;
+        } else {
+          $this->fon_group= FALSE;
+        }
+      }
+      if ($this->acl_is_writeable("nagiosGroup")){
+        if (isset ($_POST['nagios_group'])){
+          $this->nagios_group= TRUE;
+        } else {
+          $this->nagios_group= FALSE;
+        }
+      }
+    }
+
+    /* Trust mode - special handling */
+    if($this->acl_is_writeable("trustModel")){
+      if (isset($_POST['trustmode'])){
+        $saved= $this->trustModel;
+        if ($_POST['trustmode'] == "1"){
+          $this->trustModel= "fullaccess";
+        } elseif ($_POST['trustmode'] == "2"){
+          $this->trustModel= "byhost";
+        } else {
+          $this->trustModel= "";
+        }
+        if ($this->trustModel != $saved){
+          $this->is_modified= TRUE;
+        }
+      }
+    }
+
+  }
+
+
+  /* Save to LDAP */
+  function save()
+  {
+
+    /* ID handling */
+    if ($this->force_gid == 0){
+      if ($this->saved_gidNumber != ""){
+        $this->gidNumber= $this->saved_gidNumber;
+      } else {
+        /* Calculate new, lock uids */
+        $wait= 10;
+        while (get_lock("gidnumber") != ""){
+          sleep (1);
+
+          /* timed out? */
+          if ($wait-- == 0){
+            break;
+          }
+        }
+        add_lock ("gidnumber", "gosa");
+        $this->gidNumber= get_next_id("gidNumber", $this->dn);
+      }
+    }
+  
+    plugin::save(); 
+
+ /* Trust accounts */
+    $objectclasses= array();
+    foreach ($this->attrs['objectClass'] as $key => $class){
+      if (preg_match('/trustAccount/i', $class)){
+        continue;
+      }
+      $objectclasses[]= $this->attrs['objectClass'][$key];
+    }
+    $this->attrs['objectClass']= $objectclasses;
+    if ($this->trustModel != ""){
+      $this->attrs['objectClass'][]= "trustAccount";
+      $this->attrs['trustModel']= $this->trustModel;
+      $this->attrs['accessTo']= array();
+      if ($this->trustModel == "byhost"){
+        foreach ($this->accessTo as $host){
+          $this->attrs['accessTo'][]= $host;
+        }
+      }
+    } else {
+      if ($this->was_trust_account){
+        $this->attrs['accessTo']= array();
+        $this->attrs['trustModel']= array();
+      }
+    }
+
+
+
+    /* Remove objectClass for samba/phone support */
+    $tmp= array();
+    for ($i= 0; $i<count($this->attrs["objectClass"]); $i++){
+      if ($this->attrs['objectClass'][$i] != 'sambaGroupMapping' &&
+          $this->attrs['objectClass'][$i] != 'sambaIdmapEntry' &&
+          $this->attrs['objectClass'][$i] != 'goFonPickupGroup' &&
+	 $this->attrs['objectClass'][$i] != 'nagiosContactGroup'){
+        $tmp[]= $this->attrs['objectClass'][$i];
+      }
+    }
+    $this->attrs['objectClass']= $tmp;
+    $ldap= $this->config->get_ldap_link();
+
+    /* Add samba group functionality */
+    if ($this->smbgroup){
+  
+      /* Fixed undefined index ... 
+       */ 
+      $this->SID = $this->ridBase = "";
+      if(isset($this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['SID'])){
+        $this->SID    = $this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['SID'];
+      }else{
+        msg_dialog::display(_("Error"), sprintf(_("Cannot find any SID for '%s'!"), $this->sambaDomainName), ERROR_DIALOG);
+      }
+      if(isset($this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['RIDBASE'])){
+        $this->ridBase= $this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['RIDBASE']; 
+      }else{
+        msg_dialog::display(_("Error"), sprintf(_("Cannot find any RIDBASE for '%s'!"), $this->sambaDomainName), ERROR_DIALOG);
+      }
+
+      $this->attrs['objectClass'][]= 'sambaGroupMapping';
+      $this->attrs['sambaGroupType']= "2";
+
+      /* Check if we need to create a special entry */
+      if ($this->groupType == 0){
+
+        if ($this->sambaSID == "" || $this->oldgroupType != $this->groupType){
+          $sid = $this->getSambaSID();
+          $this->attrs['sambaSID']= $sid;
+          $this->sambaSID= $sid;
+        }
+
+      } else {
+        $this->attrs['sambaSID']=$this->SID."-".$this->groupType;
+      }
+
+      /* User wants me to fake the idMappings? This is useful for
+         making winbind resolve the group names in a reasonable amount
+         of time in combination with larger databases. */
+      if ($this->config->get_cfg_value("sambaidmapping") == "true"){
+        $this->attrs['objectClass'][]= "sambaIdmapEntry";
+      }
+
+    }
+
+    /* Add phone functionality */
+    if ($this->fon_group){
+      $this->attrs['objectClass'][]= "goFonPickupGroup";
+    }
+
+    /* Add nagios functionality */
+    if ($this->nagios_group){
+      $this->attrs['objectClass'][]= "nagiosContactGroup";
+    }
+
+    /* Take members array */
+    if (count ($this->memberUid)){
+      $this->attrs['memberUid']= array_values(array_unique($this->memberUid));
+    }
+
+    /* New accounts need proper 'dn', propagate it to remaining objects */
+    if ($this->dn == 'new'){
+      $this->dn= 'cn='.$this->cn.','.get_groups_ou().$this->base;
+    }
+
+    /* Add member dn's for RFC2307bis Support */
+    if ($this->rfc2307bis){
+      $this->attrs['member'] = array();
+      if (count($this->memberUid)){
+        foreach($this->attrs['memberUid'] as $uid) {
+
+          if(isset($this->dnMapping[$uid])){
+            $this->attrs['member'][]= $this->dnMapping[$uid];
+          }
+        }
+      } else {
+        $this->attrs['member'][]= $this->dn;
+      }
+    }
+
+    /* Save data. Using 'modify' implies that the entry is already present, use 'add' for
+       new entries. So do a check first... */
+    $ldap->cat ($this->dn, array('dn'));
+    if ($ldap->fetch()){
+      /* Modify needs array() to remove values :-( */
+      if (!count ($this->memberUid)){
+        $this->attrs['memberUid']= array();
+      }
+      if (!$this->smbgroup){
+        $this->attrs['sambaGroupType']= array();
+        $this->attrs['sambaSID']= array();
+      }
+      
+      $mode= "modify";
+    } else {
+      $mode= "add";
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
+    }
+
+
+    /* Check generated gidNumber, it may be used by another group. 
+     */
+    if($this->gidNumber != ""){
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search("(&(!(cn=".$this->orig_cn."))(objectClass=posixGroup)(gidNumber=".$this->gidNumber."))",array("cn"));
+      if($ldap->count()){
+        $cns = "";
+        while($attrs = $ldap->fetch()){
+          $cns .= $attrs['cn'][0].", ";
+        }
+        $cns = rtrim($cns,", ");
+        msg_dialog::display(_("Warning"),sprintf(_("The gidNumber '%s' is already in use by %s!"),$this->gidNumber,$cns) , WARNING_DIALOG );
+      }
+    }
+
+    /* Write back to ldap */
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->$mode($this->attrs);
+
+    /* Remove ACL dependencies too,
+     */
+    if($this->dn != $this->orig_dn && $this->orig_dn != "new"){
+      $tmp = new acl($this->config,$this->parent,$this->dn);
+      $tmp->update_acl_membership($this->orig_dn,$this->dn);
+    }
+
+    if($this->initially_was_account){
+      new log("modify","groups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      new log("create","groups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    $ret= 0;
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+      $ret= 1;
+    }
+
+    /* Remove uid lock */
+    del_lock ("gidnumber");
+
+    /* Post that we've done*/
+    $this->handle_post_events($mode);
+
+    return ($ret);
+  }
+
+  function check()
+  {
+    /* Call common method to give check the hook */
+    $message= plugin::check();
+
+    /* Permissions for that base? */
+    if ($this->base != ""){
+      $new_dn= 'cn='.$this->cn.','.get_groups_ou().$this->base;
+    } else {
+      $new_dn= $this->dn;
+    }
+
+    /* must: cn */
+    if ($this->cn == "" && $this->acl_is_writeable("cn")){
+      $message[]= msgPool::required(_("Name"));
+    }
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    }
+
+    /* Check for valid input */
+    if (!tests::is_uid($this->cn)){
+      if (strict_uid_mode()){
+        $message[]= msgPool::invalid(_("Name"), $this->cn, "/[a-z0-9_-]/");
+      } else {
+        $message[]= msgPool::invalid(_("Name"), $this->cn, "/[a-z0-9_-]/i");
+      }
+    }
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    }
+
+    if($this->allowGroupsWithSameNameInOtherSubtrees == true){
+
+      /* Check for used 'cn' */
+      $ldap= $this->config->get_ldap_link();
+      if(($this->cn  != $this->orig_cn) || ($this->orig_dn == "new")){
+        $ldap->cd(get_groups_ou().$this->base);
+        $ldap->ls("(&(|(objectClass=gosaGroupOfNames)(objectClass=posixGroup))(cn=$this->cn))",get_groups_ou().$this->base,array("cn"));
+        if ($ldap->count() != 0){
+          $message[]= msgPool::duplicated(_("Name"));
+        }
+      }
+
+    }else{
+
+      /* Check for used 'cn' */
+      $ldap= $this->config->get_ldap_link();
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search("(&(|(objectClass=gosaGroupOfNames)(objectClass=posixGroup))(cn=$this->cn))",array("cn"));
+      if ($ldap->count() != 0){
+
+        /* New entry? */
+        if ($this->dn == 'new'){
+          $message[]= msgPool::duplicated(_("Name"));
+        }
+
+        /* Moved? */
+        elseif ($new_dn != $this->orig_dn){
+          $ldap->fetch();
+          if ($ldap->getDN() != $this->orig_dn){
+            $message[]= msgPool::duplicated(_("Name"));
+          }
+        }
+      }
+    }
+     
+    /* Check ID */
+    if ($this->force_gid == "1"){
+      if (!tests::is_id($this->gidNumber)){
+        $message[]= msgPool::invalid(_("GID"), $this->gidNumber, "/[0-9]/");
+      } else {
+        if ($this->gidNumber < $this->config->get_cfg_value("minId")){
+          $message[]= msgPool::toosmall(_("GID"), $this->config->get_cfg_value("minId"));
+        }
+
+      }
+    }
+    
+    /* Check if we are allowed to create or move this object 
+     */
+    if(!$this->orig_dn == "new" || 
+        $this->orig_base != $this->base || 
+        $this->cn != $this->orig_cn){
+
+      if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+        $message[] = msgPool::permCreate();
+      }elseif($this->orig_dn != "new" && !$this->acl_is_moveable($this->base)){
+        $message[] = msgPool::permMove();
+      }
+    }
+
+    return ($message);
+  }
+
+
+  function getCopyDialog()
+  {
+    $vars = array("cn");
+  
+    if($this ->force_gid){
+      $used = " checked ";
+      $dis  = "";
+    }else{
+      $used = "";
+      $dis  = " disabled ";
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign("used",$used);
+    $smarty->assign("dis" ,$dis);
+    $smarty->assign("cn" ,$this->cn);
+    $smarty->assign("gidNumber",$this->gidNumber);
+    $str = $smarty->fetch(get_template_path("paste_generic.tpl",TRUE));
+    $ret = array();
+    $ret['string'] = $str;
+    $ret['status'] = "";
+    return($ret);
+  }
+
+  function saveCopyDialog()
+  {
+    if(isset($_POST['cn'])){
+      $this->cn = $_POST['cn'];
+    }
+    if(isset($_POST['force_gid'])){
+      $this->force_gid  = 1;
+      $this->gidNumber= $_POST['gidNumber'];
+    }else{
+      $this->force_gid  = 0;
+      $this->gidNumber  = false;
+    }
+  }
+
+  
+  /* Return plugin informations for acl handling  */ 
+  static function plInfo()
+  {
+    return (array(  
+          "plShortName" => _("Generic"),
+          "plDescription" => _("Generic group settings"),
+          "plSelfModify"  => FALSE,
+          "plDepends"     => array(),
+          "plPriority"    => 0,
+          "plSection"     => array("administration"),
+          "plCategory"    => array("groups" => array("objectClass" => "posixGroup", "description" => _("Groups"))),
+
+          "plProvidedAcls"    => array(
+            "cn"                => _("Name"),
+            "description"       => _("Description"),
+            "base"              => _("Base"),
+
+            "gidNumber"         => _("GID"),
+
+            "sambaGroupType"    => _("Samba group type"),
+            "sambaDomainName"   => _("Samba domain name"),
+            "trustModel"        => _("System trust"),
+            "fonGroup"          => _("Phone pickup group"),
+            "nagiosGroup"       => _("Nagios group"),
+
+            "memberUid"         => _("Group member"))
+        ));
+  }
+
+
+  function multiple_save_object()
+  {
+    if(isset($_POST['group_mulitple_edit'])){
+
+      /* Create a base backup and reset the
+         base directly after calling plugin::save_object();
+         Base will be set seperatly a few lines below */
+      $base_tmp = $this->base;
+      plugin::multiple_save_object();
+      plugin::save_object();
+      $this->base = $base_tmp;
+
+      foreach(array("base","smbgroup","groupType","sambaDomainName","fon_group","nagios_group","trustmode") as $attr){
+        if(isset($_POST['use_'.$attr])){
+          $this->multi_boxes[] = $attr;
+        }
+      }
+
+      /* Refresh base */
+      if ($this->acl_is_moveable($this->base)){
+        if (!$this->baseSelector->update()) {
+          msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+        }
+        if ($this->base != $this->baseSelector->getBase()) {
+          $this->base= $this->baseSelector->getBase();
+          $this->is_modified= TRUE;
+        }
+      }
+
+      foreach (array( "smbgroup"   => "sambaGroupType" ,"nagios_group" => "nagios_group") as $val => $aclname) {
+        if ($this->acl_is_writeable($aclname)){
+          if(isset($_POST["$val"])){
+            $this->$val=  TRUE;
+          }else{
+            $this->$val=  FALSE;
+          }
+        }
+      }
+
+      /* Save sambaDomain attribute */
+      if ($this->acl_is_writeable("sambaDomainName") && isset ($_POST['sambaDomainName'])){
+        $this->sambaDomainName= $_POST['sambaDomainName'];
+        $this->groupType= $_POST['groupType'];
+      }
+
+      /* Trust mode - special handling */
+      if($this->acl_is_writeable("trustModel")){
+        if (isset($_POST['trustmode'])){
+          $saved= $this->trustModel;
+          if ($_POST['trustmode'] == "1"){
+            $this->trustModel= "fullaccess";
+          } elseif ($_POST['trustmode'] == "2"){
+            $this->trustModel= "byhost";
+          } else {
+            $this->trustModel= "";
+          }
+          if ($this->trustModel != $saved){
+            $this->is_modified= TRUE;
+          }
+        }
+      }
+
+      /* Save fon attribute */
+      if ($this->acl_is_writeable("fonGroup")){
+        if (isset ($_POST['fon_group'])){
+          $this->fon_group= TRUE;
+        } else {
+          $this->fon_group= FALSE;
+        }
+      }
+    }
+  }
+
+
+  function get_multi_edit_values()
+  {
+    $ret = plugin::get_multi_edit_values();
+
+    foreach(array("base","smbgroup","groupType","sambaDomainName","fon_group","nagios_group") as $attr){    
+      if(in_array($attr,$this->multi_boxes)){
+        $ret[$attr] = $this->$attr;
+      }
+    }
+
+    if(in_array("trustmode",$this->multi_boxes)){
+      $ret['trustModel'] = $this->trustModel;
+      $ret['accessTo'] = $this->accessTo;
+    }
+
+    $ret['memberUid'] = $this->memberUid;
+    $ret['memberUid_used_by_some'] = $this->memberUid_used_by_some;
+    return($ret);
+  }
+
+  function multiple_execute()
+  {
+    return($this->execute());
+  }
+
+
+  /* Initialize plugin with given atribute arrays
+   */
+  function init_multiple_support($attrs,$all)
+  {
+    plugin::init_multiple_support($attrs,$all);
+
+    $this->memberUid = array();
+    $this->memberUid_used_by_some = array();
+    if (isset($attrs['memberUid'])){
+      for ($i= 0; $i<$attrs['memberUid']['count']; $i++){
+        $this->memberUid[$attrs['memberUid'][$i]]= $attrs['memberUid'][$i];
+      }
+      ksort($this->memberUid);
+    }
+
+    if (isset($all['memberUid'])){
+      for ($i= 0; $i<$all['memberUid']['count']; $i++){
+        if(!in_array($all['memberUid'][$i],$this->memberUid)){
+          $this->memberUid_used_by_some[$all['memberUid'][$i]]= $all['memberUid'][$i];
+        }
+      }
+      ksort($this->memberUid_used_by_some);
+    }
+  }
+
+
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+
+    if ($this->smbgroup) { 
+      $this->sambaSID = $this->getSambaSID(); 
+    } 
+
+    $this->memberUid = array();
+    if(isset($source['memberUid'])){
+      for($i = 0 ; $i < $source['memberUid']['count']; $i ++){
+        $this->memberUid[] = $source['memberUid'][$i];
+      }
+    }
+    $this->accessTo = array();
+    if (isset($source['accessTo'])){
+      for ($i= 0; $i<$source['accessTo']['count']; $i++){
+        $tmp= $source['accessTo'][$i];
+        $this->accessTo[$tmp]= $tmp;
+      }
+    }
+  }
+
+
+  function set_multi_edit_values($attrs)
+  {
+    $users = array();
+
+    /* Update groupMembership, keep optinal group */
+    foreach($attrs['memberUid_used_by_some'] as $uid){
+      if(in_array($uid,$this->memberUid)){
+        $users[$uid] = $uid;
+      }
+    }
+
+    /* Update groupMembership, add forced groups */
+    foreach($attrs['memberUid'] as $uid){
+      $users[$uid] = $uid;
+    }
+    plugin::set_multi_edit_values($attrs);
+    $this->memberUid = $users;
+  }
+
+
+  /*! \brief Get a new SambaSID for a group */ 
+  function getSambaSID() 
+  { 
+    $ldap = $this->config->get_ldap_link(); 
+    $gidNumber= $this->gidNumber; 
+    while(TRUE){ 
+      $sid= $this->SID."-".($gidNumber*2 + $this->ridBase+1); 
+      $ldap->cd($this->config->current['BASE']); 
+      $ldap->search("(sambaSID=$sid)",array("sambaSID")); 
+      if ($ldap->count() == 0){ 
+        break; 
+      } 
+      $gidNumber++; 
+    } 
+  
+    return $sid; 
+  } 
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/class_groupManagement.inc b/gosa-core/plugins/admin/groups/class_groupManagement.inc
new file mode 100644
index 0000000..9523e56
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/class_groupManagement.inc
@@ -0,0 +1,216 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_groupManagement.inc 15407 2010-01-28 10:39:18Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class groupManagement extends management
+{
+  var $plHeadline     = "Groups";
+  var $plDescription  = "Group administration";
+  var $plIcon  = "plugins/groups/images/plugin.png";
+
+  // Tab definition 
+  protected $tabClass = "grouptabs";
+  protected $tabType = "GROUPTABS";
+  protected $aclCategory = "groups";
+  protected $aclPlugin   = "group";
+  protected $objectName   = "group";
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("groupRDN"));
+ 
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("group-filter.xml", true));
+      $filter->setObjectStorage($this->storagePoints);
+    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("group-list.xml", true));
+    $headpage->registerElementFilter("filterProperties", "groupManagement::filterProperties");
+    $headpage->setFilter($filter);
+
+    // Add copy&paste and snapshot handler.
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler = new CopyPasteHandler($this->config);
+    }
+    if($this->config->get_cfg_value("enableSnapshots") == "true"){
+      $this->snapHandler = new SnapshotHandler($this->config);
+    }
+    parent::__construct($config, $ui, "groups", $headpage);
+
+    $this->registerAction("edit_group","editEntry");
+    $this->registerAction("edit_environment","editEntry");
+    $this->registerAction("edit_appgroup","editEntry");
+    $this->registerAction("edit_mailgroup","editEntry");
+
+    $this->registerAction("sendMessage", "sendMessage");
+    $this->registerAction("saveEventDialog", "saveEventDialog");
+    $this->registerAction("abortEventDialog", "closeDialogs");
+  }
+
+  // Inject user actions
+  function detectPostActions()
+  {
+    $action = management::detectPostActions();
+    if(isset($_POST['save_event_dialog'])) $action['action'] = "saveEventDialog";
+    if(isset($_POST['abort_event_dialog'])) $action['action'] = "abortEventDialog";
+    return($action);
+  }
+
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */
+  function saveEventDialog()
+  {
+    $this->dialogObject->save_object();
+    $msgs = $this->dialogObject->check();
+    if(count($msgs)){
+      msg_dialog::displayChecks($msgs);
+    }else{
+      $o_queue = new gosaSupportDaemon();
+      $o_queue->append($this->dialogObject);
+      if($o_queue->is_error()){
+        msg_dialog::display(_("Infrastructure error"), msgPool::siError($o_queue->get_error()),ERROR_DIALOG);
+      }
+      $this->closeDialogs();
+    }
+  }
+
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */
+  function sendMessage($action="",$target=array(),$all=array())
+  {
+    $uids = array();
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    foreach($target as $dn){
+      $ldap->cat($dn,array('cn'));
+      if($ldap->count()){
+        $attrs = $ldap->fetch();
+        $uids[] = $attrs['cn'][0];
+      }
+    }
+    if(count($uids)){
+      $events = DaemonEvent::get_event_types(USER_EVENT);
+      $event = "DaemonEvent_notify";
+      if(isset($events['BY_CLASS'][$event])){
+        $type = $events['BY_CLASS'][$event];
+        $this->dialogObject = new $type['CLASS_NAME']($this->config);
+        $this->dialogObject->add_groups($uids);
+        $this->dialogObject->set_type(SCHEDULED_EVENT);
+      }
+    }
+  }
+
+
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $str = management::editEntry($action,$target);
+
+    if(preg_match("/^edit_/",$action)){
+      $tab = preg_replace("/^edit_/","",$action);
+      if(isset($this->tabObject->by_object[$tab])){
+        $this->tabObject->current = $tab;
+      }else{
+        trigger_error("Unknown tab: ".$tab);
+      }
+    }
+    if(!empty($str)) return($str);
+  }
+
+  static function filterProperties($row, $classes)
+  {
+    $result= "";
+
+    $map = array(
+        "posixGroup" => 
+        array(
+          "image" => "plugins/groups/images/groups.png",
+          "plugin" => "group",
+          "alt" => _("Posix"),
+          "title" => _("Edit posix properties")
+          ),
+
+        "gosaMailAccount" => 
+        array(
+          "image" => "plugins/groups/images/mail.png",
+          "plugin" => "mailgroup",
+          "alt" => _("Mail"),
+          "title" => _("Edit mail properties")
+          ),
+
+        "sambaGroupMapping" => 
+        array(
+          "image" => "plugins/groups/images/samba.png",
+          "plugin" => "group",
+          "alt" => _("Samba"),
+          "title" => _("Edit samba properties")
+          ),
+
+        "goFonPickupGroup" => 
+          array(
+              "image" => "plugins/groups/images/asterisk.png",
+              "plugin" => "group",
+              "alt" => _("Phone"),
+              "title" => _("Edit phone properties")
+              ),
+
+        "gotoMenuGroup" => 
+          array(
+              "image" => "plugins/groups/images/menu.png",
+              "plugin" => "appgroup",
+              "alt" => _("Menu"),
+              "title" => _("Edit start menu properties")
+              ),
+
+        "gotoEnvironment" => 
+          array(
+              "image" => "plugins/groups/images/environment.png",
+              "plugin" => "environment",
+              "alt" => _("Environment"),
+              "title" => _("Edit environment properties")
+              )
+          );
+
+
+    // Walk thru map
+    foreach ($map as $oc => $properties) {
+      if (in_array_ics($oc, $classes)) {
+        $result.="<input class='center' type='image' src='".$properties['image']."' ".
+          "alt='".$properties['alt']."' title='".$properties['title'].
+                 "' name='listing_edit_".$properties['plugin']."_$row' style='padding:1px'>";
+      } else {
+        $result.="<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+    return $result;
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/generic.tpl b/gosa-core/plugins/admin/groups/generic.tpl
new file mode 100644
index 0000000..8e28946
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/generic.tpl
@@ -0,0 +1,279 @@
+{if $multiple_support}
+<input type="hidden" value="1" name="group_mulitple_edit">
+{/if}
+
+
+<table summary="" style="width:100%;">
+ <tr>
+  <td style="width:50%; vertical-align:top;">
+   <table summary="" style="width:100%">
+    <tr>
+     <td><LABEL for="cn">{t}Group name{/t}</LABEL>{$must}</td>
+     <td>
+{if $multiple_support}
+	<input type='text' id="dummy1" name="dummy1" size=25 maxlength=60 value="{t}Multiple edit{/t}" disabled>
+{else}
+{render acl=$cnACL}
+       <input type='text' id="cn" name="cn" size=25 maxlength=60 value="{$cn}" title="{t}Posix name of the group{/t}">
+{/render}
+{/if}
+     </td>
+    </tr>
+    <tr>
+     <td>
+      <LABEL for="description">{t}Description{/t}</LABEL>
+     </td>
+     <td>
+{render acl=$descriptionACL checkbox=$multiple_support checked=$use_description}
+      <input type='text' id="description" name="description" size=40 maxlength=80 value="{$description}" title="{t}Descriptive text for this group{/t}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td colspan=2> 
+      <div style="height:15px;"></div> 
+     </td>
+    </tr>
+    <tr>
+     <td>
+      <LABEL for="base">{t}Base{/t}</LABEL>{$must}
+     </td>
+     <td>
+{render acl=$baseACL checkbox=$multiple_support checked=$use_base}
+       {$base}
+{/render}
+     </td>
+    </tr>
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%; border-bottom:1px solid #909090;"></div> </td>
+    </tr>
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%;"></div> </td>
+    </tr>
+{if $multiple_support}
+
+{else}
+    <tr>
+     <td colspan=2>
+{render acl=$gidNumberACL}
+      <input type=checkbox name="force_gid" value="1" title="{t}Normally IDs are autogenerated, select to specify manually{/t}" 
+	{$force_gid} onclick="changeState('gidNumber')">
+{/render}
+	<LABEL for="gidNumber">{t}Force GID{/t}</LABEL>
+       
+{render acl=$gidNumberACL}
+      <input type='text' name="gidNumber" size=9 maxlength=9 id="gidNumber" {$forceMode} value="{$gidNumber}" title="{t}Forced ID number{/t}">
+{/render}
+     </td>
+    </tr>
+{/if}
+
+{if $multiple_support}
+    <tr>
+    <td colspan=2>
+		{render acl=$sambaGroupTypeACL checkbox=$multiple_support checked=$use_smbgroup}
+			<input class="center" type=checkbox name="smbgroup" value="1" {$smbgroup}>{t}Select to create a samba conform group{/t}
+		{/render}
+	</td>
+	</tr>
+	<tr>
+	<td colspan=2>
+		{render acl=$sambaGroupTypeACL checkbox=$multiple_support checked=$use_groupType}
+			<select size="1" name="groupType">
+				{html_options options=$groupTypes selected=$groupType}
+			</select>
+		{/render}
+       
+      <LABEL for="">{t}in domain{/t}</LABEL>
+       
+
+		{render acl=$sambaDomainNameACL checkbox=$multiple_support checked=$use_sambaDomainName}
+			<select id="sambaDomainName" size="1" name="sambaDomainName">
+		   		{html_options values=$sambaDomains output=$sambaDomains selected=$sambaDomainName}
+		  	</select>
+		{/render}
+	</td>
+	</tr>
+
+{else}
+    <tr>
+     <td colspan=2>
+{render acl=$sambaGroupTypeACL}
+      <input type=checkbox name="smbgroup" value="1" {$smbgroup}  title="{t}Select to create a samba conform group{/t}">
+{/render}
+{render acl=$sambaGroupTypeACL}
+      <select size="1" name="groupType">
+       {html_options options=$groupTypes selected=$groupType}
+      </select>
+{/render}
+       
+      <LABEL for="">{t}in domain{/t}</LABEL>
+       
+{render acl=$sambaDomainNameACL}
+      <select id="sambaDomainName" size="1" name="sambaDomainName">
+       {html_options values=$sambaDomains output=$sambaDomains selected=$sambaDomainName}
+      </select>
+{/render}
+     </td>
+    </tr>
+    {/if}
+
+	{if $pickupGroup == "true"}
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%; border-bottom:1px solid #909090;"></div> </td>
+    </tr>
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%;"></div> </td>
+    </tr>
+    <tr>
+     <td colspan=2>
+{render acl=$fonGroupACL checkbox=$multiple_support checked=$use_fon_group}
+      <input class="center" type=checkbox name="fon_group" value="1" {$fon_group}>{t}Members are in a phone pickup group{/t}
+{/render}
+     </td>
+    </tr>
+	{/if}
+	{if $nagios == "true"}
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%; border-bottom:1px solid #909090;"></div> </td>
+    </tr>
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%;"></div> </td>
+    </tr>
+    <tr>
+     <td colspan=2>
+{render acl=$nagiosGroupACL checkbox=$multiple_support checked=$use_nagios_group}
+      <input class="center" type=checkbox name="nagios_group" value="1" {$nagios_group}>{t}Members are in a nagios group{/t}
+{/render}
+     </td>
+    </tr>
+	{/if}
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%; border-bottom:1px solid #909090;"></div> </td>
+    </tr>
+    <tr>
+      <td colspan=2> <div style="height:15px; width:100%;"></div> </td>
+    </tr>
+{if !$multiple_support}
+	<tr>
+	 <td colspan="2">
+		    {t}Trust mode{/t} 
+    {render acl=$trustmodeACL}
+        <select name="trustmode" id="trustmode" size=1
+            onChange="changeSelectState('trustmode', 'wslist');
+                      changeSelectState('trustmode', 'add_ws');
+                      changeSelectState('trustmode', 'del_ws');">
+          {html_options options=$trustmodes selected=$trustmode}
+        </select>
+    {/render}
+    {render acl=$trustmodeACL}
+       <select style="width:100%" id="wslist" name="workstation_list[]" size=8 multiple {$trusthide}>
+        {html_options values=$workstations output=$workstations}
+        {if $emptyArrAccess}
+            <option disabled> </option>
+        {/if}
+       </select>
+    {/render}
+       <br>
+    {render acl=$trustmodeACL}
+       <input type="submit" id="add_ws" value="{msgPool type=addButton}" name="add_ws" {$trusthide}> 
+    {/render}
+    {render acl=$trustmodeACL}
+       <input type="submit" id="del_ws" value="{msgPool type=delButton}" name="delete_ws" {$trusthide}>
+    {/render}
+
+	 </td>
+	</tr>
+
+{else}
+
+	<tr>
+	 <td colspan="2">
+    <input type="checkbox" name="use_trustmode" {if $use_trustmode} checked {/if}
+        class="center" onClick="$('div_trustmode').toggle();">
+		    {t}Trust mode{/t} 
+	<div {if !$use_trustmode} style="display: none;" {/if} id="div_trustmode">
+    {render acl=$trustmodeACL}
+        <select name="trustmode" id="trustmode" size=1
+            onChange="changeSelectState('trustmode', 'wslist');
+                      changeSelectState('trustmode', 'add_ws');
+                      changeSelectState('trustmode', 'del_ws');">
+          {html_options options=$trustmodes selected=$trustmode}
+        </select>
+    {/render}
+    {render acl=$trustmodeACL}
+       <select style="width:100%" id="wslist" name="workstation_list[]" size=8 multiple {$trusthide}>
+        {html_options values=$workstations output=$workstations}
+        {if $emptyArrAccess}
+            <option disabled> </option>
+        {/if}
+       </select>
+    {/render}
+       <br>
+    {render acl=$trustmodeACL}
+       <input type="submit" id="add_ws" value="{msgPool type=addButton}" name="add_ws" {$trusthide}> 
+    {/render}
+    {render acl=$trustmodeACL}
+       <input type="submit" id="del_ws" value="{msgPool type=delButton}" name="delete_ws" {$trusthide}>
+    {/render}
+		</div>
+	 </td>
+	</tr>
+
+{/if}
+   </table>
+
+  </td>
+  <td style="border-left:1px solid #A0A0A0">
+    
+  </td>
+
+  <td style="vertical-align:top;">
+
+   <table summary="" style="width:100%">
+    <tr>
+     <td style="vertical-align:top; width:50%">
+      <b><LABEL for="members">{t}Group members{/t}</LABEL></b>
+      <br>
+{render acl=$memberUidACL}
+
+	{if $multiple_support}
+	  <select style="width:100%; height:380px;" id="members" name="members[]" size=15 multiple>
+		{foreach from=$memberUid_All item=name key=key}
+			<option value="{$key}">{$name} ({t}In all groups{/t})</option>
+		{/foreach}
+		{foreach from=$memberUid_Some item=name key=key}
+        <option value="{$key}" style='color: #888888; background: #DDDDDD;background-color: #DDDDDD;'>{$name} ({t}Not in all groups{/t})</option>
+		{/foreach}
+	  </select>
+	{else}
+      <select style="width:100%; height:380px;" id="members" name="members[]" size=15 multiple>
+       {html_options options=$members}
+		<option disabled> </option>
+      </select>
+	{/if}
+{/render}
+      <br>
+{render acl=$memberUidACL}
+      <input type=submit name="edit_membership" value="{msgPool type=addButton}">
+{/render}
+       
+{render acl=$memberUidACL}
+      <input type=submit name="del_users" value="{msgPool type=delButton}">
+{/render}
+     </td>
+    </tr> 
+   </table>
+  </td>
+
+ </tr>
+</table>
+
+<input type="hidden" name="groupedit" value="1">
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('cn');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/groups/group-filter.tpl b/gosa-core/plugins/admin/groups/group-filter.tpl
new file mode 100644
index 0000000..c115cd0
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/group-filter.tpl
@@ -0,0 +1,37 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+ {$PRIMARY} <LABEL for='TEMPLATES'>{t}Show primary groups{/t}</LABEL><br>
+ {$SAMBA} <LABEL for='TEMPLATES'>{t}Show samba groups{/t}</LABEL><br>
+ {$MAIL} <LABEL for='TEMPLATES'>{t}Show mail groups{/t}</LABEL><br>
+
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/groups/group-filter.xml b/gosa-core/plugins/admin/groups/group-filter.xml
new file mode 100644
index 0000000..0b49bfa
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/group-filter.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>groups</category>
+    <template>group-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>GroupLDAP</backend>
+      <filter>(&(objectClass=posixGroup)$NAME(|$PRIMARY$MAIL$SAMBA))</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PRIMARY</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(!(objectClass=gosaObject))</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>MAIL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gosaMailAccount)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SAMBA</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=sambaGroupMapping)</set>
+  </element>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(description=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=posixGroup)(|(cn=*$NAME*)(description=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/groups/group-list.tpl b/gosa-core/plugins/admin/groups/group-list.tpl
new file mode 100644
index 0000000..13bd0ac
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/group-list.tpl
@@ -0,0 +1,28 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" 
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/groups/group-list.xml b/gosa-core/plugins/admin/groups/group-list.xml
new file mode 100644
index 0000000..efdcca1
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/group-list.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>group-list.tpl</template>
+    <module>groups</module>
+    <label>List of groups</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Group</label>
+      <objectClass>posixGroup</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Group submenu menu</label>
+      <objectClass>gotoSubmenuEntry</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Group menu entry</label>
+      <objectClass>gotoMenuEntry</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|||120px|150px;r|</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>2</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",cn)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",description)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Properties</label>
+      <value>%{filter:filterProperties(row,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+  </table>
+
+  <actionmenu>
+
+    <action>
+     <type>sub</type>
+     <image>images/lists/new.png</image>
+     <label>Create</label>
+
+     <action>
+      <name>new</name>
+      <type>entry</type>
+      <image>plugins/groups/images/new.png</image>
+      <label>Group</label>
+     </action>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit</label>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <label>Remove</label>
+    </action>
+
+    <action>
+      <name>sendMessage</name>
+      <type>entry</type>
+      <depends>DaemonEvent_notify</depends>
+      <image>plugins/goto/images/notify.png</image>
+      <label>Send message</label>
+    </action>
+
+    <action>
+      <type>exporter</type>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <type>snapshot</type>
+    </action>
+
+  </actionmenu>
+
+  <actiontriggers snapshot="true" copypaste="true">
+
+    <action>
+      <name>cp</name>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit group</label>
+    </action>
+
+    <action>
+      <name>snapshot</name>
+      <type>snapshot</type>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <acl>groups/group[d]</acl>
+      <label>Remove group</label>
+    </action>
+
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/groups/main.inc b/gosa-core/plugins/admin/groups/main.inc
new file mode 100644
index 0000000..5ed7f95
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/main.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 14740 2009-11-04 09:41:16Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+if ($remove_lock){
+  if(session::is_set('groupManagement')){
+      $macl = session::get('groupManagement');
+      $macl->remove_lock();
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('groupManagement');
+}else{
+
+  /* Create groupmanagement object on demand */
+  if (!session::is_set('groupManagement')){
+    $groupManagement= new groupManagement ($config, $ui);
+    session::set('groupManagement',$groupManagement);
+  }
+  $groupManagement = session::get('groupManagement');
+  $display= $groupManagement->execute();
+
+  /* Reset requested? */
+  if (isset($_GET['reset']) && $_GET['reset'] == 1){
+    session::un_set ('groupManagement');
+  }
+
+  /* Show and save dialog */
+  session::set('groupManagement',$groupManagement);
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/paste_generic.tpl b/gosa-core/plugins/admin/groups/paste_generic.tpl
new file mode 100644
index 0000000..449189d
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/paste_generic.tpl
@@ -0,0 +1,25 @@
+<h2>{t}Group settings{/t}</h2>
+<table width='100%'>
+	<tr>
+		<td style='width:150px;'>
+			{t}Group name{/t}
+		</td>
+		<td>
+			<input type='text' id='cn' name='cn' size='35' maxlength='60' value='{$cn}' title='{t}Posix name of the group{/t}'>
+		</td>
+	</tr>
+	<tr>
+		<td>
+			<input type=checkbox name='force_gid' value='1' {$used} title='{t}Normally IDs are autogenerated, select to specify manually{/t}' 
+				onclick='changeState("gidNumber")'>
+			<LABEL for='gidNumber'>{t}Force GID{/t}</LABEL>
+		</td>
+		<td>
+			<input type='text' name='gidNumber' size=9 maxlength=9 id='gidNumber' {$dis} value='{$gidNumber}' title='{t}Forced ID number{/t}'>
+		</td>
+	</tr>
+</table>
+
+<script language="JavaScript" type="text/javascript">
+	focus_field('cn');
+</script>
diff --git a/gosa-core/plugins/admin/groups/remove.tpl b/gosa-core/plugins/admin/groups/remove.tpl
new file mode 100644
index 0000000..7735c28
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/remove.tpl
@@ -0,0 +1,17 @@
+<div style="font-size:18px;">
+  <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+  {$info}
+  {t}This may be a primary user group. Please double check if you really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+  {t}So - if you're sure - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type=submit name="delete_confirmed" value="{msgPool type=delButton}">
+   
+  <input type=submit name="delete_cancel" value="{msgPool type=cancelButton}">
+</p>
diff --git a/gosa-core/plugins/admin/groups/singleUserSelect/class_singleUserSelect.inc b/gosa-core/plugins/admin/groups/singleUserSelect/class_singleUserSelect.inc
new file mode 100644
index 0000000..4298616
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/singleUserSelect/class_singleUserSelect.inc
@@ -0,0 +1,52 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_groupManagement.inc 14766 2009-11-05 14:30:35Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class singleUserSelect extends management
+{
+
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("userRDN"));
+ 
+#    // Build filter
+#    if (session::global_is_set(get_class($this)."_filter")){
+#      $filter= session::global_get(get_class($this)."_filter");
+#    } else {
+      $filter = new filter(get_template_path("singleUser-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+#    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("singleUser-list.xml", true, dirname(__FILE__)));
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "users", $headpage);
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.tpl b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.tpl
new file mode 100644
index 0000000..ba7af5c
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.tpl
@@ -0,0 +1,33 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.xml b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.xml
new file mode 100644
index 0000000..57d7d95
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-filter.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>groups</category>
+    <template>../plugins/admin/groups/singleUserSelect/singleUser-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=gosaAccount)$NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>sn</attribute>
+      <attribute>givenName</attribute>
+      <attribute>uid</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(sn=*$*)(givenName=*$*)(cn=*$*)(uid=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=gosaAccount)(|(sn=*$NAME*)(givenName=*$NAME*)(cn=*$NAME*)(uid=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.tpl b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.tpl
new file mode 100644
index 0000000..a3466f7
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.tpl
@@ -0,0 +1,34 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_users_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_users_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.xml b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.xml
new file mode 100644
index 0000000..79c63c7
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/singleUserSelect/singleUser-list.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>false</multiSelect>
+    <template>../plugins/admin/groups/singleUserSelect/singleUser-list.tpl</template>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>User</label>
+      <objectClass>gosaAccount</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_user.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c||||80px;r|</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Given name</label>
+      <sortAttribute>givenName</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{givenName}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Surname</label>
+      <sortAttribute>sn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{sn}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Login</label>
+      <sortAttribute>uid</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{uid}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+    <action>
+      <name>selectUser</name>
+      <type>entry</type>
+      <image>images/empty.png</image>
+      <label>Select user</label>
+    </action>
+    <action>
+      <name>selectUser</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Select user</label>
+    </action>
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/groups/tabs_group.inc b/gosa-core/plugins/admin/groups/tabs_group.inc
new file mode 100644
index 0000000..74a4514
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/tabs_group.inc
@@ -0,0 +1,117 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_group.inc 14136 2009-08-26 08:02:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class grouptabs extends tabs
+{
+
+	function grouptabs($config, $data, $dn, $cat = "", $hide_refs = FALSE, $hide_acls = FALSE)
+	{
+		tabs::tabs($config, $data, $dn,"groups", $hide_refs, $hide_acls);
+		$this->addSpecialTabs();
+	}
+
+	function save_object($save_current= FALSE)
+	{
+		tabs::save_object($save_current);
+
+		/* Update reference, transfer variables */
+		$baseobject= $this->by_object['group'];
+		foreach ($this->by_object as $name => $obj){
+			/* Don't touch base object */
+			if ($name != 'group'){
+				$obj->parent= &$this;
+				$obj->cn= $baseobject->cn;
+				$this->by_object[$name]= $obj;
+			}
+		}
+	}
+
+	function delete()
+	{
+		/* Put baseobjects 'cn' to mailobjects 'uid' */
+		$baseobject= $this->by_object['group'];
+		if (isset($this->by_object['mailgroup'])){
+			$this->by_object['mailgroup']->uid= $baseobject->cn;
+		}
+		tabs::delete();
+	}
+
+  function save($ignore_account= FALSE)
+	{
+		$baseobject= $this->by_object['group'];
+
+		/* Check for new 'dn', in order to propagate the
+		   'dn' to all plugins */
+		$new_dn= 'cn='.$baseobject->cn.','.get_groups_ou().$baseobject->base;
+
+		/* Put baseobjects 'cn' to mailobjects 'uid' */
+		if (isset($this->by_object['mailgroup'])){
+			$this->by_object['mailgroup']->uid= $baseobject->cn;
+		}
+
+
+		/* Update reference, transfer variables */
+		foreach ($this->by_object as $name => $obj){
+			/* Transfer attributes for mailgroup account */
+			if ($name == 'mailgroup'){
+				$this->by_object['mailgroup']->members= $baseobject->memberUid;;
+			}
+		}
+
+		/* Move group? */
+		if ($this->dn != $new_dn){
+
+			/* Write entry on new 'dn' */
+			if ($this->dn != "new"){
+				$baseobject->update_acls($this->dn,$new_dn);
+				$baseobject->move($this->dn, $new_dn);
+				$this->by_object['group']= $baseobject;
+			}
+
+			/* Happen to use the new one */
+			$this->dn= $new_dn;
+		}
+
+		$ret= tabs::save();
+
+		return $ret;
+	}
+
+	function saveCopyDialog()
+	{
+		tabs::saveCopyDialog();
+		
+		/* Update reference, transfer variables */
+		$baseobject= $this->by_object['group'];
+		foreach ($this->by_object as $name => $obj){
+			/* Don't touch base object */
+			if ($name != 'group'){
+				$obj->parent= &$this;
+				$obj->cn= $baseobject->cn;
+				$this->by_object[$name]= $obj;
+			}
+		}
+	}
+	
+}
+
+?>
diff --git a/gosa-core/plugins/admin/groups/trust_machines.tpl b/gosa-core/plugins/admin/groups/trust_machines.tpl
new file mode 100644
index 0000000..60ad20e
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/trust_machines.tpl
@@ -0,0 +1,41 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+  <td style="vertical-align:top;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px">
+     <b>{t}Select systems to add{/t} {$hint}</b><br>
+    </p>
+   </div>
+   <div class="contentboxb">
+    <p class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <select style="width:600px; margin-top:4px; height:450px;" name="wslist[]" size="15" multiple>
+	{html_options values=$wslist output=$wslist}
+     </select>
+    </p>
+   </div>
+  </td>
+  <td style="vertical-align:top;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px"><img src="{$launchimage}" align="right" alt="[F]"><b>{t}Filters{/t}</b></p>
+   </div>
+   <div class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <table summary="" style="width:100%;">
+      {$alphabet}
+     </table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$tree_image}" align=middle> {t}Display systems of department{/t}</td>
+    <td><select name="depselect" size=1 onChange="mainform.submit()" title="{t}Choose the department the search will be based on{/t}">
+      {html_options options=$deplist selected=$depselect}
+    </select></td></tr></table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$search_image}" align=middle> {t}Display systems matching{/t}</td>
+    <td><input type='text' name='regex' maxlength='20' value='{$regex}' title='{t}Regular expression for matching addresses{/t}' onChange="mainform.submit()"></td></tr></table>
+   {$apply}
+   </div>
+  </td>
+</tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_ws_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_ws_cancel" value="{msgPool type=cancelButton}">
+</p>
diff --git a/gosa-core/plugins/admin/groups/userGroupSelect/class_userGroupSelect.inc b/gosa-core/plugins/admin/groups/userGroupSelect/class_userGroupSelect.inc
new file mode 100644
index 0000000..b3fc8d7
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userGroupSelect/class_userGroupSelect.inc
@@ -0,0 +1,63 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_target_list.inc 9850 2008-03-14 14:15:12Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class userGroupSelect extends management
+{
+  // Tab definition 
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+    $this->storagePoints = array(get_ou("userRDN"), get_ou("groupRDN"));
+
+#    // Build filter
+ #   if (session::global_is_set(get_class($this)."_filter")){
+  #    $filter= session::global_get(get_class($this)."_filter");
+   # } else {
+      $filter = new filter(get_template_path("selectUserGroup-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+    #}
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("selectUserGroup-list.xml", true, dirname(__FILE__)));
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "object", $headpage);
+  }
+
+  function save()
+  {
+    $act = $this->detectPostActions();
+    $headpage = $this->getHeadpage();
+    if(!isset($act['targets'])) return(array());
+    $ret = array();
+    foreach($act['targets'] as $dn){
+      $ret[] = $headpage->getEntry($dn);
+    }
+    return($ret);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl
new file mode 100644
index 0000000..e1016c0
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl
@@ -0,0 +1,37 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+{$USER} <LABEL for='SAMBA'>{t}Show users{/t}</LABEL><br>
+{$GROUP} <LABEL for='POSIX'>{t}Show groups{/t}</LABEL><br>
+
+ <div style="border-top:1px solid #AAAAAA"></div>
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.xml b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.xml
new file mode 100644
index 0000000..c044284
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-filter.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>users</category>
+    <template>../plugins/admin/groups/userGroupSelect/selectUserGroup-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(|$USER $GROUP ) $NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>sn</attribute>
+      <attribute>uid</attribute>
+      <attribute>givenName</attribute>
+      <attribute>description</attribute>
+      <attribute>userPassword</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(sn=*$*)(givenName=*$*)(uid=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=posixAccount)(|(cn=*$NAME*)(sn=*$NAME*)(givenName=*$NAME*)(uid=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>USER</tag>
+    <default>true</default>
+    <set>(&(objectClass=posixAccount)(!(objectClass=gosaUserTemplate)))</set>
+    <unset></unset>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>GROUP</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=posixGroup)</set>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl
new file mode 100644
index 0000000..11335fb
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl
@@ -0,0 +1,36 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:0px;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+
+<p class='separator'> </p>
+  <p style="text-align:right;min-width:250px">
+  <input type=submit name="userGroupSelect_save" value="{msgPool type=okButton}">
+   
+  <input type=submit name="userGroupSelect_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml
new file mode 100644
index 0000000..05ae632
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userGroupSelect/selectUserGroup-list.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>../plugins/admin/groups/userGroupSelect/selectUserGroup-list.tpl</template>
+    <module>users</module>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>User</label>
+      <objectClass>gosaAccount</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_user.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Group</label>
+      <objectClass>posixGroup</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|||[200px]</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{cn}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{description}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Login</label>
+      <sortAttribute>uid</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{uid}</value>
+      <export>true</export>
+    </column>
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <objectclass>gosaAccount</objectclass>
+      <image>images/lists/edit.png</image>
+      <label>Add</label>
+    </action>
+  </actiontriggers>
+</list>
diff --git a/gosa-core/plugins/admin/groups/userSelect/class_userSelect.inc b/gosa-core/plugins/admin/groups/userSelect/class_userSelect.inc
new file mode 100644
index 0000000..6795796
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userSelect/class_userSelect.inc
@@ -0,0 +1,52 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_groupManagement.inc 14766 2009-11-05 14:30:35Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class userSelect extends management
+{
+
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("userRDN"));
+ 
+#    // Build filter
+#    if (session::global_is_set(get_class($this)."_filter")){
+#      $filter= session::global_get(get_class($this)."_filter");
+#    } else {
+      $filter = new filter(get_template_path("user-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+#    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("user-list.xml", true, dirname(__FILE__)));
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "users", $headpage);
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/groups/userSelect/user-filter.tpl b/gosa-core/plugins/admin/groups/userSelect/user-filter.tpl
new file mode 100644
index 0000000..ba7af5c
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userSelect/user-filter.tpl
@@ -0,0 +1,33 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/groups/userSelect/user-filter.xml b/gosa-core/plugins/admin/groups/userSelect/user-filter.xml
new file mode 100644
index 0000000..80cf914
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userSelect/user-filter.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>groups</category>
+    <template>../plugins/admin/groups/userSelect/user-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=gosaAccount)$NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>sn</attribute>
+      <attribute>givenName</attribute>
+      <attribute>uid</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(sn=*$*)(givenName=*$*)(cn=*$*)(uid=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=posixAccount)(|(sn=*$NAME*)(givenName=*$NAME*)(cn=*$NAME*)(uid=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/groups/userSelect/user-list.tpl b/gosa-core/plugins/admin/groups/userSelect/user-list.tpl
new file mode 100644
index 0000000..a3466f7
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userSelect/user-list.tpl
@@ -0,0 +1,34 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_users_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_users_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/groups/userSelect/user-list.xml b/gosa-core/plugins/admin/groups/userSelect/user-list.xml
new file mode 100644
index 0000000..c26368c
--- /dev/null
+++ b/gosa-core/plugins/admin/groups/userSelect/user-list.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>../plugins/admin/groups/userSelect/user-list.tpl</template>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>User</label>
+      <objectClass>gosaAccount</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_user.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c||||</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Given name</label>
+      <sortAttribute>givenName</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{givenName}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Surname</label>
+      <sortAttribute>sn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{sn}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Login</label>
+      <sortAttribute>uid</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{uid}</value>
+      <export>true</export>
+    </column>
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/ogroups/class_ogroup.inc b/gosa-core/plugins/admin/ogroups/class_ogroup.inc
new file mode 100644
index 0000000..82dfa63
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/class_ogroup.inc
@@ -0,0 +1,985 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_ogroup.inc 18024 2010-05-03 12:06:40Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Sort multidimensional arrays for key 'text' */
+function sort_list($val1, $val2)
+{
+  $v1= strtolower($val1['text']);
+  $v2= strtolower($val2['text']);
+  if ($v1 > $v2){
+    return 1;
+  }
+  if ($v1 < $v2){
+    return -1;
+  }
+  return 0;
+}
+
+
+class ogroup extends plugin
+{
+  /* Variables */
+  var $cn= "";
+  var $description= "";
+  var $base= "";
+  var $gosaGroupObjects= "";
+  var $objects= array();
+  var $objcache= array();
+  var $memberList= array();
+  var $member= array();
+  var $orig_dn= "";
+  var $orig_cn= "";
+  var $orig_base= "";
+  var $objectSelect= FALSE;
+  var $view_logged = FALSE;
+
+  var $accessTo= array();
+  var $trustModel= "";
+  var $trustSelect = FALSE;
+
+  var $was_trust_account= FALSE;
+  var $baseSelector;
+
+  /* Already assigned Workstations. Will be hidden in selection. 
+   */
+  var $used_workstations = array();
+
+  /* attribute list for save action */
+  var $attributes= array("cn", "description", "gosaGroupObjects","member","accessTo","trustModel");
+  var $objectclasses= array("top", "gosaGroupOfNames");
+
+  function ogroup (&$config, $dn= NULL)
+  {
+    plugin::plugin ($config, $dn);
+    $this->orig_dn= $dn;
+
+    $this->member = array();
+
+    /* Load member objects */
+    if (isset($this->attrs['member'])){
+      foreach ($this->attrs['member'] as $key => $value){
+        if ("$key" != "count"){
+          $value= @LDAP::convert($value);
+          $this->member["$value"]= "$value";
+        }
+      }
+    }
+    $this->is_account= TRUE;
+
+    /* Get global filter config */
+    if (!session::is_set("ogfilter")){
+      $ui= get_userinfo();
+      $base= get_base_from_people($ui->dn);
+      $ogfilter= array( "dselect"       => $base,
+          "regex"           => "*");
+      session::set("ogfilter", $ogfilter);
+    }
+    $ogfilter= session::get('ogfilter');
+
+    /* Adjust flags */
+    foreach( array(   "U" => "accounts",
+          "G" => "groups",
+          "A" => "applications",
+          "D" => "departments",
+          "S" => "servers",
+          "W" => "workstations",
+          "O" => "winstations",
+          "T" => "terminals",
+          "F" => "phones",
+          "_" => "subtrees",
+          "P" => "printers") as $key => $val){
+
+      if (preg_match("/$key/", $this->gosaGroupObjects)){
+        $ogfilter[$val]= "checked";
+      } else {
+        $ogfilter[$val]= "";
+      }
+    }
+    session::set("ogfilter", $ogfilter);
+  
+    /* Set base */
+    if ($this->dn == "new"){
+      $ui = get_userinfo();
+      $this->base= dn2base(session::global_is_set("CurrentMainBase")?"cn=dummy,".session::global_get("CurrentMainBase"):$ui->dn);
+    } else {
+      $this->base= preg_replace("/^[^,]+,".preg_quote(get_ou("ogroupRDN"), '/')."/i","",$this->dn);
+
+      /* Is this account a trustAccount? */
+      if ($this->is_account && isset($this->attrs['trustModel'])){
+        $this->trustModel= $this->attrs['trustModel'][0];
+        $this->was_trust_account= TRUE;
+      } else {
+        $this->was_trust_account= FALSE;
+        $this->trustModel= "";
+      }
+
+      $this->accessTo = array();
+      if ($this->is_account && isset($this->attrs['accessTo'])){
+        for ($i= 0; $i<$this->attrs['accessTo']['count']; $i++){
+          $tmp= $this->attrs['accessTo'][$i];
+          $this->accessTo[$tmp]= $tmp;
+        }
+      }
+    }
+
+    /* Detect all workstations, which are already assigned to an object group  
+        - Those objects will be hidden in the add object dialog.
+        - Check() will complain if such a system is assigned to this object group.
+     */ 
+    $base = $this->config->current['BASE'];
+    $res    = get_list("(|(objectClass=gotoWorkstation)(objectClass=gotoTerminal))","none" , 
+        $base, array("dn"),GL_NO_ACL_CHECK|GL_SUBSEARCH);
+    $ws_dns = array();
+    foreach($res as $data){
+      $ws_dns[] = $data['dn'];
+    }
+    $res=get_list("(&(member=*)(objectClass=gosaGroupOfNames))","none",
+        $base, array("dn","member", "gosaGroupObjects"),GL_NO_ACL_CHECK|GL_SUBSEARCH);
+    $this->used_workstations = array();
+    foreach($res as $og){
+      if($og['dn'] == $this->dn) continue;
+      $test = array_intersect($ws_dns,$og['member']);
+      if(($og['gosaGroupObjects'] == "[W]" || $og['gosaGroupObjects'] == "[T]") && count($test)){
+        $this->used_workstations = array_merge($this->used_workstations,$test);
+      }
+    }
+
+    $this->orig_cn = $this->cn;
+    $this->orig_base = $this->base;
+
+    /* Get global filter config */
+    if (!session::is_set("sysfilter")){
+      $ui= get_userinfo();
+      $base= get_base_from_people($ui->dn);
+      $sysfilter= array( "depselect"       => $base,
+          "regex"           => "*");
+      session::set("sysfilter", $sysfilter);
+    }
+
+    /* Instanciate base selector */
+    $this->baseSelector= new baseSelector($this->get_allowed_bases(), $this->base);
+    $this->baseSelector->setSubmitButton(false);
+    $this->baseSelector->setHeight(300);
+    $this->baseSelector->update(true);
+
+    $this->reload();
+  }
+
+  function AddDelMembership()
+  {
+      /* Delete objects from group */
+      if (isset($_POST['delete_membership']) && isset($_POST['members'])){
+          foreach ($_POST['members'] as $value){
+              $this->objects["$value"]= $this->memberList[$value];
+              unset ($this->memberList["$value"]);
+              unset ($this->member["$value"]);
+              uasort ($this->objects, 'sort_list');
+              reset ($this->objects);
+          }
+          $this->reload();
+      }
+
+      /* Add objects to group */
+      if (isset($_POST['objectSelect_save']) && $this->objectSelect instanceOf objectSelect){
+          $objects = $this->objectSelect->save();
+          $skipped = FALSE;
+          foreach($objects as $object){
+
+              $tmp = "";
+              foreach($this->memberList as $obj){
+                  $tmp .= $obj['type'];
+              }
+
+              $type  = $this->getObjectType($object);
+              $name= $this->getObjectName($object);
+              $dn = $object['dn'];
+
+              /* Fill array */
+              if (isset($object["description"][0])){
+                  $object= array("text" => "$name [".$object["description"][0]."]", "type" => "$type");
+              } elseif (isset($object["uid"][0])) {
+                  $object= array("text" => "$name [".$object["uid"][0]."]", "type" => "$type");
+              } else {
+                  $object= array("text" => "$name", "type" => "$type");
+              }
+
+              if(preg_match("/T/",$tmp) && $type == "W"){
+                  $skipped =TRUE;
+              }elseif(preg_match("/W/",$tmp) && $type == "T"){
+                  $skipped =TRUE;
+              }else{
+
+                  $this->memberList["$dn"]= $object;
+                  $this->member["$dn"]= $dn;
+                  uasort ($this->memberList, 'sort_list');
+                  reset ($this->memberList);
+              }
+          }
+          if($skipped){
+              msg_dialog::display(_("Information"), _("You cannot combine terminals and workstations in one object group!"), INFO_DIALOG);
+          }
+          $this->objectSelect= FALSE;
+          $this->dialog= FALSE;
+          $this->reload();
+      }
+  }
+
+  function execute()
+  {
+    /* Call parent execute */
+    plugin::execute();
+
+    if(!$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","ogroups/".get_class($this),$this->dn);
+    }
+
+
+    /* Do we represent a valid group? */
+    if (!$this->is_account){
+      $display= "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\"> <b>".
+        msgPool::noValidExtension("object group")."</b>";
+      return ($display);
+    }
+
+
+    /* Load templating engine */
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    $tmp = $this->plInfo();
+    foreach($tmp['plProvidedAcls'] as $name => $translation){
+      $smarty->assign($name."ACL",$this->getacl($name));
+    }
+
+    /***********
+     * Trusts 
+     ***********/
+
+    /* Add user workstation? */
+    if (isset($_POST["add_ws"])){
+      $this->trustSelect= new trustSelect($this->config,get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    // Add selected machines to trusted ones.
+    if (isset($_POST["add_ws_finish"]) &&  $this->trustSelect){
+      $trusts = $this->trustSelect->detectPostActions();
+      if(isset($trusts['targets'])){
+
+        $headpage = $this->trustSelect->getHeadpage();
+        foreach($trusts['targets'] as $id){
+          $attrs = $headpage->getEntry($id);
+          $this->accessTo[$attrs['cn'][0]]= $attrs['cn'][0];
+        }
+        ksort($this->accessTo);
+        $this->is_modified= TRUE;
+      }
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+
+    /* Remove user workstations? */
+    if (isset($_POST["delete_ws"]) && isset($_POST['workstation_list'])){
+      foreach($_POST['workstation_list'] as $name){
+        unset ($this->accessTo[$name]);
+      }
+      $this->is_modified= TRUE;
+    }
+
+    /* Add user workstation finished? */
+    if (isset($_POST["add_ws_cancel"])){
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    /* Show ws dialog */
+    if ($this->trustSelect){
+  
+      // Build up blocklist
+      session::set('filterBlacklist', array('cn' => array_values($this->accessTo)));
+      return($this->trustSelect->execute());
+    }
+
+    /***********
+     * Ende - Trusts 
+     ***********/
+
+
+    /* Add objects? */
+    if (isset($_POST["edit_membership"])){
+      $this->objectSelect= new objectSelect($this->config, get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    /* Add objects finished? */
+    if (isset($_POST["objectSelect_cancel"])){
+      $this->objectSelect= FALSE;
+      $this->dialog= FALSE;
+    }
+
+    /* Manage object add dialog */
+    if ($this->objectSelect){
+      session::set('filterBlacklist', array('dn'=> $this->member));
+      return($this->objectSelect->execute());
+    }
+
+    /* Bases / Departments */
+      if ((isset($_POST['base'])) && ($this->acl_is_moveable())){
+        $this->base= $_POST['base'];
+      }
+
+    /* Assemble combine string */
+    if ($this->gosaGroupObjects == "[]"){
+      $smarty->assign("combinedObjects", _("none"));
+    } elseif (strlen($this->gosaGroupObjects) > 4){
+      $smarty->assign("combinedObjects", "<font color=red>"._("too many different objects!")."</font>");
+    } else {
+      $conv= array(   "U" => _("users"),
+          "G" => _("groups"),
+          "A" => _("applications"),
+          "D" => _("departments"),
+          "S" => _("servers"),
+          "W" => _("workstations"),
+          "O" => _("winstations"),
+          "T" => _("terminals"),
+          "F" => _("phones"),
+          "P" => _("printers"));
+
+      $type= preg_replace('/[\[\]]/', '', $this->gosaGroupObjects);
+      $p1= $conv[$type[0]];
+      error_reporting(0);
+      if (isset($type[1]) && preg_match('/[UGADSFOWTP]/', $type[1])){
+        $p2= $conv[$type[1]];
+        $smarty->assign("combinedObjects", sprintf("'%s' and '%s'", $p1, $p2));
+      } else {
+        $smarty->assign("combinedObjects", "$p1");
+      }
+      error_reporting(E_ALL | E_STRICT);
+    }
+
+    /* Assign variables */
+    $smarty->assign("base", $this->baseSelector->render());
+    $smarty->assign("members", $this->convert_list($this->memberList));
+
+    /* Objects have to be tuned... */
+    $smarty->assign("objects", $this->convert_list($this->objects));
+
+    /* Fields */
+    foreach ($this->attributes as $val){
+      $smarty->assign("$val", $this->$val);
+    }
+
+    /******
+      Trust account
+     ******/
+    $smarty->assign("trusthide", " disabled ");
+    $smarty->assign("trustmodeACL",  $this->getacl("trustModel"));
+    if ($this->trustModel == "fullaccess"){
+      $trustmode= 1;
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel"));
+
+    } elseif ($this->trustModel == "byhost"){
+      $trustmode= 2;
+      $smarty->assign("trusthide", "");
+    } else {
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel"));
+      $trustmode= 0;
+    }
+    $smarty->assign("trustmode", $trustmode);
+    $smarty->assign("trustmodes", array( 0 => _("disabled"), 1 => _("full access"),
+          2 => _("allow access to these hosts")));
+
+    $smarty->assign("workstations", $this->accessTo);
+
+    if((count($this->accessTo))==0){
+      $smarty->assign("emptyArrAccess",true);
+    }else{
+      $smarty->assign("emptyArrAccess",false);
+    }
+    /******
+      Ende - Trust account
+     ******/
+
+    return ($smarty->fetch (get_template_path('generic.tpl', TRUE)));
+  }
+
+
+  /* Save data to object */
+  function save_object()
+  {
+    /* Save additional values for possible next step */
+    if (isset($_POST['ogroupedit'])){
+
+      /******
+        Trust account 
+       ******/
+
+      if($this->acl_is_writeable("trustModel")){
+        if (isset($_POST['trustmode'])){
+          $saved= $this->trustModel;
+          if ($_POST['trustmode'] == "1"){
+            $this->trustModel= "fullaccess";
+          } elseif ($_POST['trustmode'] == "2"){
+            $this->trustModel= "byhost";
+          } else {
+            $this->trustModel= "";
+          }
+          if ($this->trustModel != $saved){
+            $this->is_modified= TRUE;
+          }
+        }
+      }
+      /******
+        Ende Trust account
+       ******/
+
+      /* Create a base backup and reset the
+         base directly after calling plugin::save_object();
+         Base will be set seperatly a few lines below */
+      $base_tmp = $this->base;
+      plugin::save_object();
+      $this->base = $base_tmp;
+
+      /* Refresh base */
+      if ($this->acl_is_moveable($this->base)){
+        if (!$this->baseSelector->update()) {
+          msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+        }
+        if ($this->base != $this->baseSelector->getBase()) {
+          $this->base= $this->baseSelector->getBase();
+          $this->is_modified= TRUE;
+        }
+      }
+
+    }
+  }
+
+
+  /* (Re-)Load objects */
+  function reload()
+  {
+    /*###########
+      Variable initialisation 
+      ###########*/
+
+    $this->objects                = array();
+    $this->ui                     = get_userinfo();
+    $filter                       = "";
+    $objectClasses                = array();
+    
+    $ogfilter               = session::get("ogfilter");
+    $regex                  = $ogfilter['regex'];
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd ($ogfilter['dselect']);
+
+
+    /*###########
+      Generate Filter 
+      ###########*/
+
+    $p_f= array("accounts"=> array("OBJ"=>"user", "CLASS"=>"gosaAccount"    ,
+          "DN"=> get_people_ou()           ,"ACL" => "users"), 
+        "groups"          => array("OBJ"=>"group", "CLASS"=>"posixGroup"     ,
+          "DN"=> get_groups_ou('ogroupRDN') ,"ACL" => "groups"), 
+        "departments"     => array("OBJ"=>"department", "CLASS"=>"gosaDepartment" ,
+          "DN"=> ""                        ,"ACL" => "department"), 
+        "servers"         => array("OBJ"=>"servgeneric", "CLASS"=>"goServer"       ,
+          "DN"=> get_ou('serverRDN')        ,"ACL" => "server"),
+        "workstations"    => array("OBJ"=>"workgeneric", "CLASS"=>"gotoWorkstation",
+          "DN"=> get_ou('workstationRDN')   ,"ACL" => "workstation"),
+        "winstations"     => array("OBJ"=>"wingeneric", "CLASS"=>"opsiClient",        
+          "DN"=> get_ou('SAMBAMACHINEACCOUNTRDN')     ,"ACL" => "winstation"),
+        "terminals"       => array("OBJ"=>"termgeneric", "CLASS"=>"gotoTerminal"   ,
+          "DN"=> get_ou('terminalRDN')      ,"ACL" => "terminal"),
+        "printers"        => array("OBJ"=>"printgeneric", "CLASS"=>"gotoPrinter"    ,
+          "DN"=> get_ou('printerRDN')       ,"ACL" => "printer"),
+        "phones"          => array("OBJ"=>"phoneGeneric", "CLASS"=>"goFonHardware"  ,
+          "DN"=> get_ou('phoneRDN')         ,"ACL" => "phone"));
+
+
+    /* Allow searching for applications, if we are not using release managed applications 
+      */
+    if(!$this->IsReleaseManagementActivated()){
+      $p_f[      "applications"]    = array("OBJ"=>"application", "CLASS"=>"gosaApplication",
+          "DN"=> get_ou('applicationRDN')   ,"ACL" => "application"); 
+    }
+           
+    /*###########
+      Perform search for selected objectClasses & regex to fill list with objects   
+      ###########*/
+
+    $Get_list_flags = 0;
+    if($ogfilter['subtrees'] == "checked"){
+      $Get_list_flags |= GL_SUBSEARCH;
+    }    
+
+    foreach($p_f as $post_name => $data){
+
+      if($ogfilter[$post_name] == "checked" && class_available($data['OBJ'])){
+
+        if($ogfilter['subtrees']){
+          $base =  $ogfilter['dselect'];
+        }else{
+          $base =  $data['DN'].$ogfilter['dselect'];
+        }
+   
+         
+        $filter = "(&(objectClass=".$data['CLASS'].")(|(uid=$regex)(cn=$regex)(ou=$regex)))";
+        $res    = get_list($filter, $data['ACL']  , $base, 
+                    array("description", "objectClass", "sn", "givenName", "uid","ou","cn"),$Get_list_flags);
+
+        /* fetch results and append them to the list */
+        foreach($res as $attrs){
+
+          /* Skip workstations which are already assigned to an object group.
+           */
+          if ($this->gosaGroupObjects == "[W]" || $this->gosaGroupObjects == "[T]"){
+            if(in_array($attrs['dn'],$this->used_workstations)){
+              continue;
+            }
+          }
+
+          $type= $this->getObjectType($attrs);
+          $name= $this->getObjectName($attrs);
+
+          /* Fill array */
+          if (isset($attrs["description"][0])){
+            $this->objects[$attrs["dn"]]= array("text" => "$name [".$attrs["description"][0]."]", "type" => "$type");
+          } elseif (isset($attrs["uid"][0])) {
+            $this->objects[$attrs["dn"]]= array("text" => "$name [".$attrs["uid"][0]."]", "type" => "$type");
+          } else {
+            $this->objects[$attrs["dn"]]= array("text" => "$name", "type" => "$type");
+          }
+        }
+      }
+    }
+    uasort ($this->objects, 'sort_list');
+    reset ($this->objects);
+
+    
+    /*###########
+      Build member list and try to detect obsolete entries 
+      ###########*/
+
+    $this->memberList = array();
+  
+    /* Walk through all single member entry */
+    foreach($this->member as $dn){
+
+      /* The dn for the current member can't be resolved 
+         it seams that this entry was removed 
+       */ 
+      /* Try to resolv the entry again, if it still fails, display error msg */
+      $ldap->cat($dn, array("cn", "sn", "givenName", "ou", "description", "objectClass", "macAddress"));
+
+      /* It has failed, add entry with type flag I (Invalid)*/
+      if (!$ldap->success()){
+        $this->memberList[$dn]= array('text' => _("Non existing dn:")." ".LDAP::fix($dn),"type" => "I");
+
+      } else {
+
+        /* Append this entry to our all object list */
+
+        /* Fetch object */
+        $attrs= $ldap->fetch();
+
+        $type= $this->getObjectType($attrs);
+        $name= $this->getObjectName($attrs);
+
+        if (isset($attrs["description"][0])){
+          $this->objcache[$attrs["dn"]]= array("text" => "$name [".$attrs["description"][0]."]", "type" => "$type");
+        } elseif (isset($attrs["uid"][0])) {
+          $this->objcache[$attrs["dn"]]= array("text" => "$name [".$attrs["uid"][0]."]", "type" => "$type");
+        } else {
+          $this->objcache[$attrs["dn"]]= array("text" => "$name", "type" => "$type");
+        }
+        $this->objcache[$attrs["dn"]]['objectClass']  = $attrs['objectClass'];
+
+        if(isset($attrs['macAddress'][0])){
+          $this->objcache[$attrs["dn"]]['macAddress']  = $attrs['macAddress'][0];
+        }else{
+          $this->objcache[$attrs["dn"]]['macAddress']  = "";
+        }
+
+        if(isset($attrs['uid'])){
+          $this->objcache[$attrs["dn"]]['uid']          = $attrs['uid'];
+        }
+
+        /* Fill array */
+        if (isset($attrs["description"][0])){
+          $this->objects[$attrs["dn"]]= array("text" => "$name [".$attrs["description"][0]."]", "type" => "$type");
+        } else {
+          $this->objects[$attrs["dn"]]= array("text" => "$name", "type" => "$type");
+        }
+
+        $this->memberList[$dn]= $this->objects[$attrs["dn"]];
+      }
+    }
+    uasort ($this->memberList, 'sort_list');
+    reset ($this->memberList);
+
+    /* Assemble types of currently combined objects */
+    $objectTypes= "";
+    foreach ($this->memberList as $dn => $desc){
+
+      /* Invalid object? */
+      if ($desc['type'] == 'I'){
+        continue;
+      }
+
+      /* Fine. Add to list. */
+      if (!preg_match('/'.$desc['type'].'/', $objectTypes)){
+        $objectTypes.= $desc['type'];
+      }
+    }
+    $this->gosaGroupObjects= "[$objectTypes]";
+  }
+
+
+  function convert_list($input)
+  {
+    $temp= "";
+    $conv= array(  
+        "Y" => "plugins/users/images/select_template.png",
+        "U" => "plugins/generic/images/head.png",
+        "G" => "plugins/groups/images/groups.png",
+        "A" => "plugins/ogroups/images/application.png",
+        "D" => "plugins/departments/images/department.png",
+        "S" => "plugins/ogroups/images/server.png",
+        "W" => "plugins/ogroups/images/workstation.png",
+        "O" => "plugins/ogroups/images/winstation.png",
+        "T" => "plugins/ogroups/images/terminal.png",
+        "F" => "plugins/ogroups/images/phone.png",
+        "P" => "plugins/ogroups/images/printer.png",
+        "I" => "images/false.png");
+
+    foreach ($input as $key => $value){
+      /* Generate output */
+      $temp.= "<option title='".addslashes( $key)."' value=\"$key\" class=\"select\" style=\"background-image:url('".get_template_path($conv[$value['type']])."');\">".$value['text']."</option>\n";
+    }
+
+    return ($temp);
+  }
+
+
+  function getObjectType($attrs)
+  {
+    $type= "I";
+
+    foreach(array(  
+          "Y" => "gosaUserTemplate",
+          "U" => "gosaAccount",
+          "G" => "posixGroup",
+          "A" => "gosaApplication",
+          "D" => "gosaDepartment",
+          "S" => "goServer",
+          "W" => "gotoWorkstation",
+          "O" => "opsiClient",
+          "T" => "gotoTerminal",
+          "F" => "goFonHardware",
+          "P" => "gotoPrinter") as $index => $class){
+      if (in_array($class, $attrs['objectClass'])){
+        $type= $index;
+        break;
+      }
+    }
+
+    return ($type);
+  }
+
+
+  function getObjectName($attrs)
+  {
+    /* Person? */
+    $name =""; 
+    if (in_array('gosaAccount', $attrs['objectClass'])){
+      if(isset($attrs['sn']) && isset($attrs['givenName'])){
+        $name= $attrs['sn'][0].", ".$attrs['givenName'][0];
+      } else {
+        $name= $attrs['uid'][0];
+      }
+    } else {
+      if(isset($attrs["cn"][0])) {
+        $name= $attrs['cn'][0];
+      } else {
+        $name= $attrs['ou'][0];
+      }
+    }
+
+    return ($name);
+  }
+
+
+  function check()
+  {
+    /* Call common method to give check the hook */
+    $message= plugin::check();
+
+    /* Permissions for that base? */
+    if ($this->base != ""){
+      $new_dn= 'cn='.$this->cn.','.get_ou('ogroupRDN').$this->base;
+    } else {
+      $new_dn= $this->dn;
+    }
+
+    /* Check if we have workstations assigned, that are already assigned to
+        another object group.  */
+    if ($this->gosaGroupObjects == "[W]" || $this->gosaGroupObjects == "[T]" ) {
+      $test =array_intersect($this->used_workstations,$this->member); 
+      if(count($test)){
+        $str = "";
+        foreach($test as $dn){
+          $str .= "<li>".$dn."</li>";
+        }
+        $message[] = sprintf(_("These systems are already configured by other object groups and cannot be added:")."<br><ul>%s</ul>",$str);
+      }
+    }
+
+    $ldap = $this->config->get_ldap_link();
+    if(LDAP::fix($this->dn) != LDAP::fix($new_dn)){
+      $ldap->cat ($new_dn, array('dn'));
+    }
+    
+    if($ldap->count() !=0){
+      $message[]= msgPool::duplicated(_("Name"));
+    } 
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    } 
+
+    /* Set new acl base */
+    if($this->dn == "new") {
+      $this->set_acl_base($this->base);
+    }
+
+    /* must: cn */
+    if ($this->cn == ""){
+      $message[]= msgPool::required(_("Name"));
+    }
+
+    if (preg_match('/[=,+<>#;]/', $this->cn)) { 
+      $message[] = msgPool::invalid(_("Name"), $this->cn, "/[^=+,<>#;]/"); 
+    } 
+
+    /* To many different object types? */
+    if (strlen($this->gosaGroupObjects) > 4){
+      $message[]= _("You can combine two different object types at maximum, only!");
+    }
+
+    /* Check if we are allowed to create or move this object 
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
+    return ($message);
+  }
+
+
+  /* Save to LDAP */
+  function save()
+  {
+    plugin::save();
+
+    /* Move members to target array */
+    $this->attrs['member'] =array();
+    foreach ($this->member as $key => $desc){
+      $this->attrs['member'][]= LDAP::fix($key);
+    }
+
+    $ldap= $this->config->get_ldap_link();
+
+    /* New accounts need proper 'dn', propagate it to remaining objects */
+    if ($this->dn == 'new'){
+      $this->dn= 'cn='.$this->cn.','.get_ou('ogroupRDN').$this->base;
+    }
+
+    /* Save data. Using 'modify' implies that the entry is already present, use 'add' for
+       new entries. So do a check first... */
+    $ldap->cat ($this->dn, array('dn'));
+    if ($ldap->fetch()){
+      /* Modify needs array() to remove values :-( */
+      if (!count ($this->member)){
+        $this->attrs['member']= array();
+      }
+      $mode= "modify";
+
+    } else {
+      $mode= "add";
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
+    }
+
+    /******
+      Trust accounts 
+     ******/
+    $objectclasses= array();
+    foreach ($this->attrs['objectClass'] as $key => $class){
+      if (preg_match('/trustAccount/i', $class)){
+        continue;
+      }
+      $objectclasses[]= $this->attrs['objectClass'][$key];
+    }
+    $this->attrs['objectClass']= $objectclasses;
+    if ($this->trustModel != ""){
+      $this->attrs['objectClass'][]= "trustAccount";
+      $this->attrs['trustModel']= $this->trustModel;
+      $this->attrs['accessTo']= array();
+      if ($this->trustModel == "byhost"){
+        foreach ($this->accessTo as $host){
+          $this->attrs['accessTo'][]= $host;
+        }
+      }
+    } else {
+      if ($this->was_trust_account){
+        $this->attrs['accessTo']= array();
+        $this->attrs['trustModel']= array();
+      }
+    }
+
+    /******
+      Ende - Trust accounts 
+     ******/
+
+    /* Write back to ldap */
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->$mode($this->attrs);
+
+    if($mode == "add"){
+      new log("create","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    /* Trigger post signal */
+    $this->handle_post_events($mode);
+
+    $ret= 0;
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+      $ret= 1;
+    }
+
+    return ($ret);
+  }
+
+  function remove_from_parent()
+  {
+    plugin::remove_from_parent();
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->rmdir($this->dn);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+    }
+
+    new log("remove","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+
+    /* Trigger remove signal */
+    $this->handle_post_events("remove");
+  }
+
+  
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+
+    /* Reload tabs */
+    $this->parent->reload($this->gosaGroupObjects );
+   
+    /* Reload plugins */ 
+    foreach($this->parent->by_object as $name => $class ){
+      if(get_class($this) != $name) {
+        $this->parent->by_object[$name]->PrepareForCopyPaste($source);
+      }
+    }
+
+    $source_o = new ogroup ($this->config, $source['dn']);
+    foreach(array("accessTo","member","gosaGroupObjects")  as $attr){
+      $this->$attr = $source_o->$attr;
+    }
+  }
+
+
+  function getCopyDialog()
+  {
+    $smarty = get_smarty();
+    $smarty->assign("cn",     $this->cn);
+    $str = $smarty->fetch(get_template_path("paste_generic.tpl",TRUE,dirname(__FILE__)));
+    $ret = array();
+    $ret['string'] = $str;
+    $ret['status'] = "";
+    return($ret);
+  }
+
+  function saveCopyDialog()
+  {
+    if(isset($_POST['cn'])){
+      $this->cn = $_POST['cn'];
+    }
+  }
+
+
+  function IsReleaseManagementActivated()
+  {
+    /* Check if we should enable the release selection */
+    $tmp = $this->config->search("faiManagement", "CLASS",array('menu','tabs'));
+    if(!empty($tmp)){
+      return(true);
+    }
+    return(false);
+  }
+
+
+  static function plInfo()
+  {
+    return (array(
+          "plShortName"   => _("Generic"),
+          "plDescription" => _("Object group generic"),
+          "plSelfModify"  => FALSE,
+          "plDepends"     => array(),
+          "plPriority"    => 1,
+          "plSection"     => array("administration"),
+          "plCategory"    => array("ogroups" => array("description"  => _("Object groups"),
+                                                      "objectClass"  => "gosaGroupOfNames")),
+          "plProvidedAcls"=> array(
+            "cn"                => _("Name"),
+            "base"              => _("Base"),
+            "description"       => _("Description"),
+            "trustModel"        => _("Sytem trust"),
+            "member"            => _("Member"))
+          ));
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/ogroups/class_ogroupManagement.inc b/gosa-core/plugins/admin/ogroups/class_ogroupManagement.inc
new file mode 100644
index 0000000..75bb9df
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/class_ogroupManagement.inc
@@ -0,0 +1,207 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_ogroupManagement.inc 15406 2010-01-28 10:39:13Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class ogroupManagement extends management
+{
+  var $plHeadline     = "Object groups";
+  var $plDescription  = "Manage object groups";
+  var $plIcon  = "plugins/ogroups/images/plugin.png";
+
+  // Tab definition 
+  protected $tabClass = "ogrouptabs";
+  protected $tabType = "OGROUPTABS";
+  protected $aclCategory = "ogroups";
+  protected $aclPlugin   = "ogroup";
+  protected $objectName   = "object group";
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+
+    $this->storagePoints = array(get_ou("ogroupRDN"));
+
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("ogroup-filter.xml", true));
+      $filter->setObjectStorage($this->storagePoints);
+    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("ogroup-list.xml", true));
+    $headpage->registerElementFilter("filterProperties", "ogroupManagement::filterProperties");
+    $headpage->setFilter($filter);
+
+    // Add copy&paste and snapshot handler.
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler = new CopyPasteHandler($this->config);
+    }
+    if($this->config->get_cfg_value("enableSnapshots") == "true"){
+      $this->snapHandler = new SnapshotHandler($this->config);
+    }
+    parent::__construct($config, $ui, "ogroups", $headpage);
+
+    $this->registerAction("edit_ogroup","editEntry");
+    $this->registerAction("edit_phonequeue","editEntry");
+    $this->registerAction("edit_workstartup","editEntry");
+    $this->registerAction("edit_termgroup","editEntry");
+
+    $this->registerAction("sendMessage", "sendMessage");
+    $this->registerAction("saveEventDialog", "saveEventDialog");
+    $this->registerAction("abortEventDialog", "closeDialogs");
+  }
+
+
+  // Inject user actions
+  function detectPostActions()
+  {
+    $action = management::detectPostActions();
+
+    if(isset($_POST['save_event_dialog'])) $action['action'] = "saveEventDialog";
+    if(isset($_POST['abort_event_dialog'])) $action['action'] = "abortEventDialog";
+    return($action);
+  }
+
+
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $str = management::editEntry($action,$target);
+    if(preg_match("/^edit_/",$action)){
+      $tab = preg_replace("/^edit_/","",$action);
+      if(isset($this->tabObject->by_object[$tab])){
+        $this->tabObject->current = $tab;
+      }else{
+        trigger_error("Unknown tab: ".$tab);
+      }
+    }
+    if(!empty($str)) return($str);
+  }
+
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */
+  function saveEventDialog()
+  {
+    $this->dialogObject->save_object();
+    $msgs = $this->dialogObject->check();
+    if(count($msgs)){
+      msg_dialog::displayChecks($msgs);
+    }else{
+      $o_queue = new gosaSupportDaemon();
+      $o_queue->append($this->dialogObject);
+      if($o_queue->is_error()){
+        msg_dialog::display(_("Infrastructure error"), msgPool::siError($o_queue->get_error()),ERROR_DIALOG);
+      }
+      $this->closeDialogs();
+    }
+  }
+
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */
+  function sendMessage($action="",$target=array(),$all=array())
+  {
+
+    if(class_available("DaemonEvent_notify")){
+
+      // Resolv targets  
+      $targets = array();
+      $m_list  = array();
+      $ldap = $this->config->get_ldap_link();
+
+      // Collect selected ogroups
+      foreach($target as $dn){
+        $ldap->cat($dn, array('member'));
+        while ($entry = $ldap->fetch()) {
+          $m_list[] = $entry;
+        }
+      }
+
+      // Collect object group member dns
+      foreach($m_list as $entry){
+        $members = $entry['member'];
+        for($i=0;$i<$members['count'];$i++) {
+
+          // Fetch member object
+          $ldap->cat($members[$i], array('uid','cn','objectClass'));
+          if ($ldap->count() > 0) {
+
+            // Determine which type the object has
+            $attrs = $ldap->fetch();
+            if (array_search('gosaAccount', $attrs['objectClass'])) {
+              $uid = $attrs['uid'][0];
+              $targets['USERS'][] = $uid;
+            }elseif (array_search('posixGroup', $attrs['objectClass'])) {
+              $group = $attrs['cn'][0];
+              $targets['GROUPS'][] = $group;
+            }
+          }
+        }
+      }
+    
+      // We've at least one recipient
+      if(count($targets)){
+        $events = DaemonEvent::get_event_types(USER_EVENT);
+        if(isset($events['BY_CLASS']['DaemonEvent_notify'])){
+          $type = $events['BY_CLASS']['DaemonEvent_notify'];
+          $this->dialogObject = new $type['CLASS_NAME']($this->config);
+          $this->dialogObject->add_targets($targets);
+          $this->dialogObject->set_type(TRIGGERED_EVENT);
+        }
+      }
+
+    }
+  }
+
+  static function filterProperties($row, $gosaGroupObjects)
+  {
+
+    $conv= array(
+        "Y" => array("plugins/users/images/select_template.png",_("Templates") , "ogroup"),
+        "U" => array("plugins/generic/images/head.png"        ,_("User")        , "ogroup"),
+        "G" => array("plugins/groups/images/groups.png"       ,_("Group")       , "ogroup"),
+        "A" => array("plugins/ogroups/images/application.png" ,_("Application") , "ogroup"),
+        "D" => array("plugins/departments/department.png"     ,_("Department")  , "ogroup"),
+        "S" => array("plugins/ogroups/images/server.png"      ,_("Server")      , "ogroup"),
+        "F" => array("plugins/ogroups/images/asterisk.png"    ,_("Phone")       , "phonequeue"),
+        "W" => array("plugins/ogroups/images/workstation.png" ,_("Workstation") , "workstartup"),
+        "O" => array("plugins/ogroups/images/winstation.png"  ,_("Windows Install") , "ogroup"),
+        "T" => array("plugins/ogroups/images/terminal.png"    ,_("Terminal")    , "termgroup"),
+        "P" => array("plugins/ogroups/images/printer.png"     ,_("Printer")     , "ogroup"));
+
+    $types = preg_replace("/[^a-z]/i","",$gosaGroupObjects[0]);
+    $result ="";
+    for($i = 0 ; $i < strlen($types); $i++){
+      $type = $types[$i];
+      $result.="<input class='center' type='image' src='".$conv[$type][0]."' ".
+        "alt='".$conv[$type][1]."' title='".$conv[$type][1].
+        "' name='listing_edit_".$conv[$type][2]."_$row' style='padding:1px'>";
+
+    }
+    return($result);
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/ogroups/generic.tpl b/gosa-core/plugins/admin/ogroups/generic.tpl
new file mode 100644
index 0000000..199fd19
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/generic.tpl
@@ -0,0 +1,88 @@
+<table summary="" style="width:100%;">
+ <tr>
+  <td style="width:50%; vertical-align:top">
+   <input type="hidden" name="ogroupedit" value="1">
+   <table summary="">
+    <tr>
+     <td><LABEL for="cn">{t}Group name{/t}</LABEL>{$must}</td>
+     <td>
+{render acl=$cnACL}
+       <input type='text' name="cn" id="cn" size=25 maxlength=60 value="{$cn}" title="{t}Name of the group{/t}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><LABEL for="description">{t}Description{/t}</LABEL></td>
+     <td>
+{render acl=$descriptionACL}
+	<input type='text' id="description" name="description" size=40 maxlength=80 value="{$description}" title="{t}Descriptive text for this group{/t}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td colspan=2> </td>
+    </tr>
+    <tr>
+     <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+     <td>
+{render acl=$baseACL}
+       {$base}
+{/render}
+     </td>
+    </tr>
+   </table>
+
+	<p class="seperator"> </p>
+	<h2><img alt="" class="center" align="middle" src="images/lists/locked.png" /> {t}System trust{/t}</h2>
+    {t}Trust mode{/t} 
+    {render acl=$trustmodeACL}
+        <select name="trustmode" id="trustmode" size=1
+            onChange="changeSelectState('trustmode', 'wslist');
+                      changeSelectState('trustmode', 'add_ws');
+                      changeSelectState('trustmode', 'del_ws');">
+          {html_options options=$trustmodes selected=$trustmode}
+        </select><br>
+    {/render}
+    {render acl=$trustmodeACL}
+       <select style="width:100%" id="wslist" name="workstation_list[]" size=8 multiple {$trusthide}>
+        {html_options values=$workstations output=$workstations}
+        {if $emptyArrAccess}
+            <option disabled> </option>
+        {/if}
+       </select>
+    {/render}
+       <br>
+    {render acl=$trustmodeACL}
+       <input type="submit" id="add_ws" value="{msgPool type=addButton}" name="add_ws" {$trusthide}> 
+    {/render}
+    {render acl=$trustmodeACL}
+       <input type="submit" id="del_ws" value="{msgPool type=delButton}" name="delete_ws" {$trusthide}>
+    {/render}
+
+
+  </td>
+  <td style="border-left:1px solid #A0A0A0; padding-left:10px;">
+   <b><LABEL for="members">{t}Member objects{/t}</LABEL></b> ({$combinedObjects})
+   <br>
+{render acl=$memberACL}
+   <select style="width:100%; height:450px;" id="members" name="members[]" size="15" multiple>
+    {$members}
+   </select>
+{/render}
+   <br>
+{render acl=$memberACL}
+   <input type=submit value="{msgPool type=addButton}" name="edit_membership"> 
+{/render}
+{render acl=$memberACL}
+   <input type=submit value="{msgPool type=delButton}" name="delete_membership">
+{/render}
+  </td>
+ </tr>
+</table>
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('cn');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/ogroups/main.inc b/gosa-core/plugins/admin/ogroups/main.inc
new file mode 100644
index 0000000..2a29678
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/main.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 14752 2009-11-05 10:00:17Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+if ($remove_lock){
+  if(session::is_set('ogroupManagement')){
+      $macl = session::get('ogroupManagement');
+      $macl->remove_lock();
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('ogroupManagement');
+}else{
+
+  /* Create ogroupmanagement object on demand */
+  if (!session::is_set('ogroupManagement')){
+    $ogroupManagement= new ogroupManagement ($config, $ui);
+    session::set('ogroupManagement',$ogroupManagement);
+  }
+  $ogroupManagement = session::get('ogroupManagement');
+  $display= $ogroupManagement->execute();
+
+  /* Reset requested? */
+  if (isset($_GET['reset']) && $_GET['reset'] == 1){
+    session::un_set ('ogroupManagement');
+  }
+
+  /* Show and save dialog */
+  session::set('ogroupManagement',$ogroupManagement);
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/class_filterLDAPDepartmentBlacklist.inc b/gosa-core/plugins/admin/ogroups/objectSelect/class_filterLDAPDepartmentBlacklist.inc
new file mode 100644
index 0000000..3fac873
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/class_filterLDAPDepartmentBlacklist.inc
@@ -0,0 +1,17 @@
+<?php
+
+class filterLDAPDepartmentBlacklist  extends filterLDAPBlacklist{
+
+  static function query($parent,$base, $scope, $filter, $attributes, $category, $objectStorage= "")
+  {
+    $entries = filterLDAPBlacklist::query($parent,$base, $scope, $filter, $attributes, $category,array());
+    foreach($entries as $key => $entry){
+      $entries[$key]['cn'] = $entry['ou'];
+      $entries[$key][ $entries[$key]['count'] ]= 'cn';
+      $entries[$key]['count'] ++;
+    }
+    return(filterLDAPBlacklist::filterByBlacklist($entries));
+  }
+}
+
+?>
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/class_objectSelect.inc b/gosa-core/plugins/admin/ogroups/objectSelect/class_objectSelect.inc
new file mode 100644
index 0000000..13163d5
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/class_objectSelect.inc
@@ -0,0 +1,95 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_target_list.inc 9850 2008-03-14 14:15:12Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class objectSelect extends management
+{
+  // Tab definition 
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+    $this->storagePoints = array(
+        get_ou("userRDN"), 
+        get_ou("groupRDN"),
+        get_ou("terminalRDN"),
+        get_ou("workstationRDN"),
+        get_ou("serverRDN"),
+        get_ou("printerRDN"),
+        get_ou("phoneRDN"));
+
+#    // Build filter
+ #   if (session::global_is_set(get_class($this)."_filter")){
+  #    $filter= session::global_get(get_class($this)."_filter");
+   # } else {
+      $filter = new filter(get_template_path("selectObject-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+    #}
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("selectObject-list.xml", true, dirname(__FILE__)));
+    $headpage->registerElementFilter("depLabel", "objectSelect::filterDepLabel");
+    $this->registerAction("open","openEntry");
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "object", $headpage);
+  }
+
+
+  // An action handler which enables to switch into deparmtment by clicking the names.
+  function openEntry($action,$entry)
+  {
+    $headpage = $this->getHeadpage();
+    $headpage->setBase(array_pop($entry));
+  }
+
+
+  // A filter which allows to open a department by clicking on the departments name.
+  static function filterDepLabel($row,$dn,$pid,$base,$objectClass, $cn)
+  {
+    $cn = $cn[0];
+    if(!in_array('gosaDepartment', $objectClass)){
+       return($cn);
+    }
+    if($dn == $base){
+      $cn =".";
+    }
+    $dn= LDAP::fix(func_get_arg(1));
+    return("<a href='?plug=".$_GET['plug']."&PID=$pid&act=listing_open_$row' title='$dn'>$cn</a>");
+  }
+
+  function save()
+  {
+    $act = $this->detectPostActions();
+    $headpage = $this->getHeadpage();
+    if(!isset($act['targets'])) return(array());
+    $ret = array();
+    foreach($act['targets'] as $dn){
+      $ret[] = $headpage->getEntry($dn);
+    }
+    return($ret);
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.tpl b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.tpl
new file mode 100644
index 0000000..860be55
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.tpl
@@ -0,0 +1,45 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+{$DEPARTMENT} <LABEL for='DEPARTMENT'>{t}Show department{/t}</LABEL><br>
+{$USER} <LABEL for='USER'>{t}Show users{/t}</LABEL><br>
+{$GROUP} <LABEL for='GROUP'>{t}Show groups{/t}</LABEL><br>
+
+{$SERVER} <LABEL for='SERVER'>{t}Show server{/t}</LABEL><br>
+{$WORKSTATION} <LABEL for='WORKSTATION'>{t}Show workstation{/t}</LABEL><br>
+{$TERMINAL} <LABEL for='TERMINAL'>{t}Show terminal{/t}</LABEL><br>
+
+{$PRINTER} <LABEL for='PRINTER'>{t}Show printer{/t}</LABEL><br>
+{$PHONE} <LABEL for='PHONE'>{t}Show phone{/t}</LABEL><br>
+
+ <div style="border-top:1px solid #AAAAAA"></div>
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.xml b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.xml
new file mode 100644
index 0000000..bf646d0
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-filter.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>users</category>
+    <template>../plugins/admin/ogroups/objectSelect/selectObject-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(| $USER $GROUP $SERVER $WORKSTATION $TERMINAL $PRINTER $PHONE) $NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>sn</attribute>
+      <attribute>ou</attribute>
+      <attribute>uid</attribute>
+      <attribute>givenName</attribute>
+      <attribute>description</attribute>
+    </query>
+    <query>
+      <backend>LDAPDepartmentBlacklist</backend>
+      <filter>(&(| $DEPARTMENT)  $NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>sn</attribute>
+      <attribute>ou</attribute>
+      <attribute>uid</attribute>
+      <attribute>givenName</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(sn=*$*)(givenName=*$*)(ou=*$*)(dc=*$*)(c=*$*)(l=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(|(objectClass=gosaDepartment)(objectClass=gosaAccount)(objectClass=posixGroup)(objectClass=goServer)(objectClass=gotoWorkstation)(objectClass=gotoTerminal)(objectClass=gotoPrinter)(objectClass=goFonHardware))(|(cn=*$NAME*)(sn=*$NAME*)(givenName=*$NAME*)(ou=*$NAME*)(dc=*$NAME*)(c=*$NAME*)(l=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <attribute>l</attribute>
+      <attribute>o</attribute>
+      <attribute>dc</attribute>
+      <attribute>c</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>USER</tag>
+    <default></default>
+    <set>(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate)))</set>
+    <unset></unset>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>GROUP</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=posixGroup)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>DEPARTMENT</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=gosaDepartment)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SERVER</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=goServer)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>WORKSTATION</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=gotoWorkstation)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>TERMINAL</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=gotoTerminal)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PRINTER</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=gotoPrinter)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PHONE</tag>
+    <default></default>
+    <unset></unset>
+    <set>(objectClass=goFonHardware)</set>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.tpl b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.tpl
new file mode 100644
index 0000000..e7f2a2a
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.tpl
@@ -0,0 +1,36 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:0px;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+
+<p class='separator'> </p>
+  <p style="text-align:right">
+  <input type=submit name="objectSelect_save" value="{msgPool type=okButton}">
+   
+  <input type=submit name="objectSelect_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.xml b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.xml
new file mode 100644
index 0000000..dca51a5
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/objectSelect/selectObject-list.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>false</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>../plugins/admin/ogroups/objectSelect/selectObject-list.tpl</template>
+    <module>users</module>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Department</label>
+      <objectClass>gosaDepartment</objectClass>
+      <category>department</category>
+      <class>department</class>
+      <image>images/lists/folder.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Server</label>
+      <objectClass>goServer</objectClass>
+      <category>server</category>
+      <class>servgeneric</class>
+      <image>plugins/systems/images/select_server.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Workstation</label>
+      <objectClass>gotoWorkstation</objectClass>
+      <category>workstation</category>
+      <class>workgeneric</class>
+      <image>plugins/systems/images/select_workstation.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Terminal</label>
+      <objectClass>gotoTerminal</objectClass>
+      <category>terminal</category>
+      <class>termgeneric</class>
+      <image>plugins/systems/images/select_terminal.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Printer</label>
+      <objectClass>gotoPrinter</objectClass>
+      <category>printer</category>
+      <class>printGeneric</class>
+      <image>plugins/systems/images/select_printer.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Phone</label>
+      <objectClass>goFonHardware</objectClass>
+      <category>phone</category>
+      <class>phoneGeneric</class>
+      <image>plugins/systems/images/select_phone.png</image>
+    </objectType>
+
+    <objectType>
+      <label>User</label>
+      <objectClass>gosaAccount</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_user.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Group</label>
+      <objectClass>posixGroup</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|220px||</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:depLabel(row,dn,pid,base,objectClass,cn)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{description}</value>
+      <export>true</export>
+    </column>
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <objectclass>gosaAccount</objectclass>
+      <image>images/lists/edit.png</image>
+      <label>Add</label>
+    </action>
+  </actiontriggers>
+</list>
diff --git a/gosa-core/plugins/admin/ogroups/ogroup-filter.tpl b/gosa-core/plugins/admin/ogroups/ogroup-filter.tpl
new file mode 100644
index 0000000..0c04347
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/ogroup-filter.tpl
@@ -0,0 +1,45 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+ {$USER} <LABEL for=''>{t}user groups{/t}</LABEL><br>
+ {$GROUP} <LABEL for=''>{t}nested groups{/t}</LABEL><br>
+ {$APPLICATION} <LABEL for=''>{t}application groups{/t}</LABEL><br>
+ {$DEPARTMENT} <LABEL for=''>{t}department groups{/t}</LABEL><br>
+ {$SERVER} <LABEL for=''>{t}server groups{/t}</LABEL><br>
+ {$WORKSTATION} <LABEL for=''>{t}workstation groups{/t}</LABEL><br>
+ {$WINDOWS} <LABEL for=''>{t}windows workstation groups{/t}</LABEL><br>
+ {$TERMINAL} <LABEL for=''>{t}terminal groups{/t}</LABEL><br>
+ {$PRINTER} <LABEL for=''>{t}printer groups{/t}</LABEL><br>
+ {$PHONE} <LABEL for=''>{t}phone groups{/t}</LABEL><br>
+
+
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/ogroups/ogroup-filter.xml b/gosa-core/plugins/admin/ogroups/ogroup-filter.xml
new file mode 100644
index 0000000..520d863
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/ogroup-filter.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>ogroups</category>
+    <template>ogroup-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaGroupOfNames)$NAME(|(gosaGroupObjects=[])$USER$GROUP$APPLICATION$DEPARTMENT$SERVER$WORKSTATION$WINDOWS$TERMINAL$PRINTER$PHONE))</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>gosaGroupObjects</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+ <element>
+    <type>checkbox</type>
+    <tag>USER</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*U*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>GROUP</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*G*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>APPLICATION</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*A*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>DEPARTMENT</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*D*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SERVER</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*S*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>WORKSTATION</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*W*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>WINDOWS</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*O*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>TERMINAL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*T*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PRINTER</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*P*)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PHONE</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(gosaGroupObjects=*F*)</set>
+  </element>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaGroupOfNames)(|(cn=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/ogroups/ogroup-list.tpl b/gosa-core/plugins/admin/ogroups/ogroup-list.tpl
new file mode 100644
index 0000000..c9d5114
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/ogroup-list.tpl
@@ -0,0 +1,28 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/ogroups/ogroup-list.xml b/gosa-core/plugins/admin/ogroups/ogroup-list.xml
new file mode 100644
index 0000000..fc0c935
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/ogroup-list.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>ogroup-list.tpl</template>
+    <module>ogroups</module>
+    <label>List of object groups</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Object group</label>
+      <objectClass>gosaGroupOfNames</objectClass>
+      <category>ogroups</category>
+      <class>ogroup</class>
+      <image>plugins/ogroups/images/ogroup.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|||100px;r|130px;r|</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>2</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",cn)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",description)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Properties</label>
+      <value>%{filter:filterProperties(row,gosaGroupObjects)}</value>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+  </table>
+
+  <actionmenu>
+
+    <action>
+     <type>sub</type>
+     <image>images/lists/new.png</image>
+     <label>Create</label>
+
+     <action>
+      <name>new</name>
+      <type>entry</type>
+      <image>plugins/ogroups/images/new.png</image>
+      <label>Group</label>
+     </action>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit</label>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <label>Remove</label>
+    </action>
+
+    <action>
+      <name>sendMessage</name>
+      <type>entry</type>
+      <depends>DaemonEvent_notify</depends>
+      <image>plugins/goto/images/notify.png</image>
+      <label>Send message</label>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>exporter</type>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <type>snapshot</type>
+    </action>
+
+  </actionmenu>
+
+  <actiontriggers snapshot="true" copypaste="true">
+
+    <action>
+      <name>cp</name>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit object group</label>
+    </action>
+
+    <action>
+      <name>snapshot</name>
+      <type>snapshot</type>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <acl>ogroups/ogroup[d]</acl>
+      <label>Remove object group</label>
+    </action>
+
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/admin/ogroups/ogroup_objects.tpl b/gosa-core/plugins/admin/ogroups/ogroup_objects.tpl
new file mode 100644
index 0000000..d9cdb3e
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/ogroup_objects.tpl
@@ -0,0 +1,53 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+  <td style="vertical-align:top; width:600px;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px">
+     <b>{t}Select objects to add{/t} {$hint}</b>
+    </p>
+   </div>
+   <div class="contentboxb">
+    <p class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <select style="width:600px; height:450px; margin-top:4px;" name="objects[]" size="15" multiple>
+      {$objects}
+     </select>
+     <input type=hidden name="edit_helper">
+    </p>
+   </div>
+  </td>
+  <td style="vertical-align:top;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px"><img src="{$launchimage}" align="right" alt="[F]"><b>{t}Filters{/t}</b></p>
+   </div>
+   <div class="contentboxb">
+     <table summary="" style="width:100%;border-top:1px solid #B0B0B0; background-color:#F8F8F8">
+      {$alphabet}
+     </table>
+	 <p class="contentboxb" style="border-top:1px solid #B0B0B0; background-color:#F8F8F8">
+		{foreach from=$checkboxes item=item key=key}
+			<input type='checkbox' {if $item.C} checked {/if} class="center" onClick="document.mainform.submit();" 
+					name="{$key}" value="1" title="{$item.T}">{$item.L}<br>
+		{/foreach}
+ 	 </p>
+ <p class="contentboxb" style="border-top:1px solid #B0B0B0; background-color:#F8F8F8">
+    <input type=checkbox name="subtrees" value="1" {$subtrees} onClick="mainform.submit()" title="{t}Select to search within subtrees{/t}">{t}Search in subtrees{/t}<br>
+ </p>
+
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$tree_image}" align=middle title="{t}Display objects of department{/t}"> 
+    <select name="dselect" size=1 onChange="mainform.submit()" title="{t}Choose the department the search will be based on{/t}">
+      {html_options options=$deplist selected=$dselect}
+    </select></td></tr></table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td style="width:18px"><img alt="" src="{$search_image}" align=middle title="{t}Display objects matching{/t}"></td>
+    <td><input type='text' name='regex' maxlength='20' style="width:99%" value='{$regex}' title='{t}Regular expression for matching object names{/t}' onChange="mainform.submit()"></td></tr></table>
+   {$apply}
+   </div>
+  </td>
+</tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_object_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_object_cancel" value="{msgPool type=cancelButton}">
+</p>
+
diff --git a/gosa-core/plugins/admin/ogroups/paste_generic.tpl b/gosa-core/plugins/admin/ogroups/paste_generic.tpl
new file mode 100644
index 0000000..91f84d8
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/paste_generic.tpl
@@ -0,0 +1,14 @@
+<table width='100%'>
+	<tr>
+		<td width='120'>
+			<LABEL for="cn">{t}Group name{/t}</LABEL>{$must}
+		</td>
+		<td>
+			<input type='text' id='cn' name='cn' value='{$cn}' size='40' title='{t}Please enter the new object group name{/t}'> 
+		</td>
+	</tr>
+</table>
+
+<script language="JavaScript" type="text/javascript">
+	focus_field('cn');
+</script>
diff --git a/gosa-core/plugins/admin/ogroups/remove.tpl b/gosa-core/plugins/admin/ogroups/remove.tpl
new file mode 100644
index 0000000..29adedf
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/remove.tpl
@@ -0,0 +1,17 @@
+<div style="font-size:18px;">
+  <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+  {$info}
+  {t}Please double check if you really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+  {t}So - if you're sure - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type=submit name="delete_confirmed" value="{msgPool type=delButton}">
+   
+  <input type=submit name="delete_cancel" value="{msgPool type=cancelButton}">
+</p>
diff --git a/gosa-core/plugins/admin/ogroups/tabs_ogroups.inc b/gosa-core/plugins/admin/ogroups/tabs_ogroups.inc
new file mode 100644
index 0000000..4c864f1
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/tabs_ogroups.inc
@@ -0,0 +1,373 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_ogroups.inc 14136 2009-08-26 08:02:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class ogrouptabs extends tabs
+{
+  var $base= "";
+  var $acl_category; 
+ 
+  function reload($dd)
+  {
+    $objects      = preg_replace('/[\[\]]/', '', $dd);
+
+    /* Check if we have a group with a set different mixed objects.
+     */
+    $mixed_type = FALSE;
+    for($i = 0 ; $i < (strlen($objects) -1 );$i++){
+      $mixed_type |= $objects[$i] != $objects[($i+1)];
+    }
+ 
+    /* If there is a phonequeue,
+     * but there is no user left with goPhoneAccount ... remove it.
+     */
+    $usePhoneTab = false;
+    if(class_available("phonequeue")){
+
+      foreach($this->by_object['ogroup']->memberList as $dn => $val){
+        if(isset($this->by_object['ogroup']->objcache[$dn])){
+          $obj = $this->by_object['ogroup']->objcache[$dn];
+          if(isset($obj['objectClass'])){
+            if(in_array("goFonAccount",$obj['objectClass'])){
+              $usePhoneTab = true;
+            }
+          }
+        }
+      }
+      if((!$usePhoneTab && isset($this->by_object['phonequeue']))||
+         (!preg_match("/U/",$objects) && isset($this->by_object['phonequeue']))){
+        $this->by_object['phonequeue']->remove_from_parent();
+        unset($this->by_object['phonequeue']);
+        unset($this->by_name['phonequeue']);
+      }
+    }
+
+    /* Remove mail group if there is no user anymore 
+     */
+    if(class_available("mailogroup")){
+      if(!preg_match("/U/",$objects) && isset($this->by_object['mailogroup'])){
+        $this->by_object['mailogroup']->remove_from_parent();
+        unset($this->by_object['mailogroup']);
+        unset($this->by_name['mailogroup']);
+      }
+    }
+
+    /* Remove terminal group, if theres no terminal left in the object list 
+     */
+    if(class_available("termgroup")){
+      if(($mixed_type && isset($this->by_object['termgroup'])) ||
+          !preg_match("/T/",$objects) && !preg_match("/W/",$objects) && isset($this->by_object['termgroup'])){
+        $this->by_object['termgroup']->remove_from_parent();
+        unset($this->by_object['termgroup']);
+        unset($this->by_name['termgroup']);
+      }
+    }
+    if(class_available("termservice")){
+      if(($mixed_type && isset($this->by_object['termservice'])) ||
+          !preg_match("/T/",$objects) &&(isset($this->by_object['termservice']))){
+        $this->by_object['termservice']->remove_from_parent();
+        unset($this->by_object['termservice']);
+        unset($this->by_name['termservice']);
+      }
+    }
+    if(class_available("termstartup")){
+      if(($mixed_type && isset($this->by_object['termstartup'])) ||
+          !preg_match("/T/",$objects)&&(isset($this->by_object['termstartup']))){
+        $this->by_object['termstartup']->remove_from_parent();
+        unset($this->by_object['termstartup']);
+        unset($this->by_name['termstartup']);
+      }
+    }
+
+    /* Remove ws tabs, if theres no ws left in the object list */
+    if(class_available("workservice")){
+      if(($mixed_type && isset($this->by_object['workservice'])) ||
+          (!preg_match("/W/",$objects))&&(isset($this->by_object['workservice']))){
+        $this->by_object['workservice']->remove_from_parent();
+        unset($this->by_object['workservice']);
+        unset($this->by_name['workservice']);
+      }
+    }
+    if(class_available("workstartup")){
+      if(($mixed_type && isset($this->by_object['workstartup'])) ||
+          (!preg_match("/S/",$objects) && !preg_match("/W/",$objects))&&(isset($this->by_object['workstartup']))){
+        $this->by_object['workstartup']->remove_from_parent();
+        unset($this->by_object['workstartup']);
+        unset($this->by_name['workstartup']);
+        if (isset($this->by_object['faiSummary'])){
+          $this->by_object['faiSummary']->remove_from_parent();
+          unset($this->by_object['faiSummary']);
+          unset($this->by_name['faiSummary']);
+        }
+      }
+    }
+  
+    /* Create goPhoneAccount if theres an user with goPhoneAccount
+     * but only if there is currently no queue enabled.
+     */
+    if(class_available("phonequeue")){
+      if(!isset($this->by_object['phonequeue'])){
+        foreach($this->by_object['ogroup']->memberList as $dn => $val){
+          if(isset($this->by_object['ogroup']->objcache[$dn])){
+            $obj = $this->by_object['ogroup']->objcache[$dn];
+            if(isset($obj['objectClass'])){
+              if(in_array("goFonAccount",$obj['objectClass'])){
+                $this->by_name['phonequeue']= _("Phone queue");
+                $this->by_object['phonequeue']= new phonequeue($this->config, $this->dn);
+                $this->by_object['phonequeue']->parent= &$this;
+                break;
+              }
+            }
+          }
+        }
+      }
+    }
+
+    /* Add mail group tab , if there is curerntly no mail tab defined */ 
+    if(class_available("mailogroup")){
+      if((preg_match("/U/",$objects))&&(!isset($this->by_object['mailogroup']))){
+        if ($this->config->get_cfg_value("mailmethod") == "kolab"){
+          $this->by_name['mailogroup']= _("Mail");
+          $this->by_object['mailogroup']= new mailogroup($this->config, $this->dn);
+          $this->by_object['mailogroup']->parent= &$this;
+        }
+      }
+    }
+
+    /* Add Terminal tab */
+    if(class_available("termgroup")){
+      if(!$mixed_type && 
+          ((preg_match("/T/",$objects)) || (preg_match("/W/",$objects)))&&(!isset($this->by_object['termgroup']))){
+        if(!isset($this->by_object['termgroup'])){
+          $this->by_name['termgroup']= _("Systems");
+          $this->by_object['termgroup']= new termgroup($this->config, $this->dn);
+          $this->by_object['termgroup']->inheritTimeServer = false;
+          $this->by_object['termgroup']->parent= &$this;
+        }
+      }
+    }
+    if(class_available("termstartup")){
+      if(!$mixed_type &&
+          preg_match("/T/",$objects) &&(!isset($this->by_object['termstartup']))){
+        if(!isset($this->by_object['termstartup'])){
+          $this->by_name['termstartup']= _("Startup");
+          $this->by_object['termstartup']= new termstartup($this->config, $this->dn,$this->by_object['ogroup']);
+	  $this->by_object['termstartup']->parent= &$this;
+	  $this->by_object['termstartup']->acl = "#all#";
+        }
+      }
+    }
+    if(!$mixed_type &&
+        class_available("termservice")){
+      if(preg_match("/T/",$objects) &&(!isset($this->by_object['termservice']))){
+        if(!isset($this->by_object['termservice'])){
+          $this->by_name['termservice']= _("Devices");
+          $this->by_object['termservice']= new termservice($this->config, $this->dn,$this->by_object['ogroup']);
+	  $this->by_object['termservice']->parent= &$this;
+	  $this->by_object['termservice']->acl = "#all#";
+        }
+      }
+    }
+
+    /* Add Workstation tabs */
+    if(class_available("workstartup")){
+      if(!$mixed_type &&
+          (preg_match("/S/",$objects) || preg_match("/W/",$objects))&&(!isset($this->by_object['workstartup']))){
+        $this->by_name['workstartup']= _("Startup");
+        $this->by_object['workstartup']= new workstartup($this->config, $this->dn);
+        $this->by_object['workstartup']->parent= &$this;
+        $this->by_object['workstartup']->acl = "#all#";
+      }
+    }
+    if(!$mixed_type &&
+        class_available("workservice")){
+      if((preg_match("/W/",$objects))&&(!isset($this->by_object['workservice']))){
+        $this->by_name['workservice']= _("Devices");
+        $this->by_object['workservice']= new workservice($this->config, $this->dn);
+        $this->by_object['workservice']->inheritTimeServer = false;
+        $this->by_object['workservice']->parent= &$this;
+        $this->by_object['workservice']->acl = "#all#";
+      }
+    }
+    if(class_available("faiSummary")){
+      if(!$mixed_type &&
+          (preg_match("/S/",$objects) || preg_match("/W/",$objects))&&(!isset($this->by_object['faiSummary']))){
+        $this->by_name['faiSummary']= _("FAI summary");
+        $this->by_object['faiSummary']= new faiSummaryTab($this->config, $this->dn);
+        $this->by_object['faiSummary']->parent= &$this;
+      }
+    }
+
+    /* Add environment tab if user or group is member in this object group*/
+    if(class_available("environment")){
+      if((preg_match("/G/",$objects) || preg_match("/U/",$objects)) && !isset($this->by_name['environment'])){
+        $this->by_name['environment']= _("Environment");
+        $this->by_object['environment']= new environment($this->config, $this->dn);
+        $this->by_object['environment']->acl = "#all#";
+        $this->by_object['environment']->parent= &$this;
+      }
+    }
+
+    /* Remove environment tab if not required any longer */
+    if(class_available("environment")){
+      if(!preg_match("/G/",$objects) && !preg_match("/U/",$objects) && isset($this->by_name['environment'])){
+        $this->by_object['environment']->remove_from_parent();
+        unset($this->by_name['environment']);
+        unset($this->by_object['environment']);
+      }
+    }
+
+    /* Add application tab if user or group is member in this object group*/
+    if(class_available("appgroup")){
+      if((preg_match("/G/",$objects) || preg_match("/U/",$objects)) && !isset($this->by_name['appgroup'])){
+        $this->by_name['appgroup']= _("Applications");
+        $this->by_object['appgroup']= new appgroup($this->config, $this->dn);
+        $this->by_object['appgroup']->acl = "#all#";
+        $this->by_object['appgroup']->parent= &$this;
+      }
+    }
+
+    /* Remove application tab if not required any longer */
+    if(class_available("appgroup")){
+      if(!preg_match("/G/",$objects) && !preg_match("/U/",$objects) && isset($this->by_name['appgroup'])){
+        $this->by_object['appgroup']->remove_from_parent();
+        unset($this->by_name['appgroup']);
+        unset($this->by_object['appgroup']);
+      }
+    }
+
+    /* Move reference tab to second position from right */
+    if(class_available("acl")){
+      if(isset($this->by_name['acl'])){
+        $tmp = $this->by_name['acl'];
+        unset($this->by_name['acl']);
+        $this->by_name['acl'] = $tmp;
+      }
+
+      /* Move reference tab to last position*/
+      if(class_available("reference")){
+        if(isset($this->by_name['reference'])){
+          $tmp = $this->by_name['reference'];
+          unset($this->by_name['reference']);
+          $this->by_name['reference'] = $tmp;
+        }
+      }
+
+      /* Reset acls */
+      if($this->dn == "new"){
+        $this->set_acl_base($this->base);
+      }else{
+        $this->set_acl_base($this->dn);
+      }
+      foreach($this->by_object as $name => $obj){
+        $this->by_object[$name]->set_acl_category($this->acl_category);
+      }
+    }
+  }
+
+  function execute(){
+    $str = "";
+    $this->by_object['ogroup']->AddDelMembership();
+    $this->reload($this->by_object['ogroup']->gosaGroupObjects);
+    $str .= tabs::execute();
+    return ( $str);
+  }  
+
+  function ogrouptabs($config, $data, $dn,$category ="ogroups",$hide_refs = FALSE, $hide_acls = FALSE)
+  {
+
+    tabs::tabs($config, $data, $dn, $category,$hide_refs, $hide_acls);
+    $this->base= $this->by_object['ogroup']->base;
+    $this->acl_category = $category;
+
+    /* Add references/acls/snapshots */
+    $this->reload($this->by_object['ogroup']->gosaGroupObjects);
+    $this->addSpecialTabs();
+  }
+
+
+  function check($ignore_account= FALSE)
+  {
+    return (tabs::check(FALSE));
+  }
+
+
+  function save_object($save_current= FALSE)
+  {
+    tabs::save_object($save_current);
+
+    /* Update reference, transfer variables */
+    $baseobject= $this->by_object['ogroup'];
+    foreach ($this->by_object as $name => $obj){
+
+      /* Don't touch base object */
+      if ($name != 'ogroup'){
+        $obj->parent    = &$this;
+        $obj->uid       = $baseobject->uid;
+        $obj->cn        = $baseobject->cn;
+        $obj->sn        = $baseobject->uid;
+        $obj->givenName = $baseobject->uid;
+        $this->by_object[$name]= $obj;
+      }
+
+      /* Update parent in base object */
+      $this->by_object['ogroup']->parent= &$this;
+    }
+  }
+
+
+  function save($ignore_account= FALSE)
+  {
+    $baseobject= $this->by_object['ogroup'];
+
+    /* Check for new 'dn', in order to propagate the
+       'dn' to all plugins */
+    $new_dn= 'cn='.$baseobject->cn.','.get_ou('ogroupRDN').$baseobject->base;
+
+    /* Move group? */
+    if (LDAP::fix($this->dn) != LDAP::fix($new_dn)){
+
+      /* Write entry on new 'dn' */
+      if ($this->dn != "new"){
+        $baseobject->move($this->dn, $new_dn);
+        $this->by_object['ogroup']= $baseobject;
+      }
+
+      /* Happen to use the new one */
+      $this->dn= $new_dn;
+    }
+
+    if ($this->dn == "new"){
+      $this->dn= 'cn='.$baseobject->cn.','.get_ou('ogroupRDN').$baseobject->base;
+    }
+
+    tabs::save();
+  }
+
+  function getCopyDialog()
+  {
+    $this->reload($this->by_object['ogroup']->gosaGroupObjects); 
+    return(tabs::getCopyDialog());
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/ogroups/trust_machines.tpl b/gosa-core/plugins/admin/ogroups/trust_machines.tpl
new file mode 100644
index 0000000..f7b0b2c
--- /dev/null
+++ b/gosa-core/plugins/admin/ogroups/trust_machines.tpl
@@ -0,0 +1,42 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+  <td style="vertical-align:top;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px">
+     <b>{t}Select systems to add{/t} {$hint}</b><br>
+    </p>
+   </div>
+   <div class="contentboxb">
+    <p class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <select style="width:100%; margin-top:4px; height:450px;" name="wslist[]" size="15" multiple>
+	{html_options values=$wslist output=$wslist}
+     </select>
+    </p>
+   </div>
+  </td>
+  <td style="vertical-align:top; width:350px">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px"><img src="{$launchimage}" align="right" alt="[F]"><b>{
+t}Filters{/t}</b></p>
+   </div>
+   <div class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <table summary="" style="width:100%;">
+      {$alphabet}
+     </table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$tree_image}" align=middle> {t}Display systems of department{/t}</td>
+    <td><select name="depselect" size=1 onChange="mainform.submit()" title="{t}Choose the department the search will be based on{/t}">
+      {html_options options=$deplist selected=$depselect}
+    </select></td></tr></table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$search_image}" align=middle> {t}Display systems matching{/t}</td>
+    <td><input type='text' name='regex' maxlength='20' value='{$regex}' title='{t}Regular expression for matching addresses{/t}' onChange="mainform.submit()"></td></tr></table>
+   {$apply}
+   </div>
+  </td>
+</tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_ws_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_ws_cancel" value="{msgPool type=cancelButton}">
+</p>
diff --git a/gosa-core/plugins/admin/users/class_userManagement.inc b/gosa-core/plugins/admin/users/class_userManagement.inc
new file mode 100644
index 0000000..fda95a9
--- /dev/null
+++ b/gosa-core/plugins/admin/users/class_userManagement.inc
@@ -0,0 +1,801 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_userManagement.inc 15708 2010-02-25 09:04:12Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class userManagement extends management
+{
+  var $plHeadline     = "Users";
+  var $plDescription  = "Manage users";
+  var $plIcon  = "plugins/users/images/user.png";
+
+  var $sn = "";
+  var $givenName = "";
+  var $uid = "";
+  var $got_uid = "";
+  var $edit_uid = "";
+
+  var $pwd_change_queue = array();
+  var $force_hash_type = array();
+
+  // Tab definition 
+  protected $tabClass = "usertabs";
+  protected $tabType = "USERTABS";
+  protected $aclCategory = "users";
+  protected $aclPlugin   = "user";
+  protected $objectName   = "user";
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("userRDN"));
+ 
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("user-filter.xml", true));
+      $filter->setObjectStorage($this->storagePoints);
+    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("user-list.xml", true));
+    $headpage->registerElementFilter("lockLabel", "userManagement::filterLockLabel");
+    $headpage->registerElementFilter("lockImage", "userManagement::filterLockImage");
+    $headpage->registerElementFilter("filterProperties", "userManagement::filterProperties");
+    $headpage->setFilter($filter);
+
+    // Add copy&paste and snapshot handler.
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler = new CopyPasteHandler($this->config);
+    }
+    if($this->config->get_cfg_value("enableSnapshots") == "true"){
+      $this->snapHandler = new SnapshotHandler($this->config);
+    }
+
+    parent::__construct($config, $ui, "users", $headpage);
+
+    // Register special user actions 
+    $this->registerAction("lock",   "lockEntry");
+    $this->registerAction("lockUsers",   "lockUsers");
+    $this->registerAction("unlockUsers", "lockUsers");
+    $this->registerAction("new_template", "newTemplate");
+    $this->registerAction("newfromtpl", "newUserFromTemplate");
+    $this->registerAction("templateContinue", "templateContinue");
+    $this->registerAction("templatize", "templatizeUsers");
+    $this->registerAction("templatizeContinue", "templatizeContinue");
+
+    $this->registerAction("password", "changePassword");
+    $this->registerAction("passwordQueue", "handlePasswordQueue");
+    $this->registerAction("passwordCancel", "closeDialogs");
+
+    $this->registerAction("sendMessage", "sendMessage");
+    $this->registerAction("saveEventDialog", "saveEventDialog");
+    $this->registerAction("abortEventDialog", "closeDialogs");
+
+    // Register shortcut icon actions 
+    $this->registerAction("edit_user","editEntry");
+    $this->registerAction("edit_posixAccount","editEntry");
+    $this->registerAction("edit_mailAccount","editEntry");
+    $this->registerAction("edit_sambaAccount","editEntry");
+    $this->registerAction("edit_netatalk","editEntry");
+    $this->registerAction("edit_environment","editEntry");
+    $this->registerAction("edit_gofaxAccount","editEntry");
+    $this->registerAction("edit_phoneAccount","editEntry");
+  }
+
+
+  // Inject user actions 
+  function detectPostActions()
+  {
+    $action = management::detectPostActions();
+    if(isset($_POST['template_continue'])) $action['action'] = "templateContinue";
+    if(isset($_POST['templatize_continue'])) $action['action'] = "templatizeContinue";
+    if(isset($_POST['save_event_dialog'])) $action['action'] = "saveEventDialog";
+    if(isset($_POST['abort_event_dialog'])) $action['action'] = "abortEventDialog";
+    if(isset($_POST['password_cancel'])){
+      $action['action'] = "passwordCancel";
+    }elseif((count($this->pwd_change_queue) || isset($_POST['password_finish']))){
+      $action['action'] = "passwordQueue";
+    }
+    return($action);
+  }
+
+
+  function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+    $str = management::editEntry($action,$target);
+    if($str) return($str);
+
+    if(preg_match("/^edit_/",$action)){
+      $tab = preg_replace("/^edit_/","",$action); 
+      if(isset($this->tabObject->by_object[$tab])){
+        $this->tabObject->current = $tab;
+      }else{
+        trigger_error("Unknown tab: ".$tab);
+      }
+    }
+  }
+
+  
+  function closeDialogs()
+  {
+    management::closeDialogs();
+    $this->pwd_change_queue = array();
+  }
+    
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */ 
+  function sendMessage($action="",$target=array(),$all=array())
+  {
+    if(class_available("DaemonEvent")){
+      $uids = array();
+      $ldap = $this->config->get_ldap_link();
+      $ldap->cd($this->config->current['BASE']);
+      foreach($target as $dn){
+        $ldap->cat($dn,array('uid'));
+        $attrs = $ldap->fetch();
+        if(isset($attrs['uid'][0])){
+          $uids[] = $attrs['uid'][0];
+        }
+      }
+      if(count($uids)){
+        $events = DaemonEvent::get_event_types(USER_EVENT);
+        $event = "DaemonEvent_notify";
+        if(isset($events['BY_CLASS'][$event])){
+          $type = $events['BY_CLASS'][$event];
+          $this->dialogObject = new $type['CLASS_NAME']($this->config);
+          $this->dialogObject->add_users($uids);
+          $this->dialogObject->set_type(SCHEDULED_EVENT);
+        }
+      }
+    }
+  }
+
+
+  /*! \brief  Sends a message to a set of users using gosa-si events.
+   */ 
+  function saveEventDialog()
+  {
+    $this->dialogObject->save_object();
+    $msgs = $this->dialogObject->check();
+    if(count($msgs)){
+      msg_dialog::displayChecks($msgs);
+    }else{
+      $o_queue = new gosaSupportDaemon();
+      $o_queue->append($this->dialogObject);
+      if($o_queue->is_error()){
+        msg_dialog::display(_("Infrastructure error"), msgPool::siError($o_queue->get_error()),ERROR_DIALOG);
+      }
+      $this->closeDialogs();
+    }
+  }
+
+
+  /*! \brief  Intiates template creation. 
+   */ 
+  function newTemplate($action,$entry)
+  {
+    $this->newEntry();
+    $this->tabObject->set_template_mode ();
+  }
+
+
+  /*! \brief  Queues a set of users for password changes
+   */ 
+  function changePassword($action="",$target=array(),$all=array())
+  {
+    $this->dn ="";
+    $this->pwd_change_queue = $target;
+
+    // Check permisions
+    $disallowed = array();
+    foreach($this->pwd_change_queue as $key => $dn){
+      if(!preg_match("/w/",$this->ui->get_permissions($dn,$this->aclCategory."/password"))){
+        unset($this->pwd_change_queue[$key]);
+        $disallowed[] = $dn; 
+      }
+    }
+    if(count($disallowed)){
+      msg_dialog::display(_("Permission"),msgPool::permModify($disallowed),INFO_DIALOG);
+    }
+
+    // Now display change dialog.
+    return($this->handlePasswordQueue()); 
+  }
+
+
+  function handlePasswordQueue()
+  {
+    // Get next entry from queue.
+    if(empty($this->dn) && count($this->pwd_change_queue)){
+      $this->dn = array_pop($this->pwd_change_queue);
+      set_object_info($this->dn);
+      $smarty = get_smarty();
+      return ($smarty->fetch(get_template_path('password.tpl', TRUE)));
+    }
+
+    // Check permissions
+    $dn  = $this->dn;
+    $acl = $this->ui->get_permissions($dn, "users/password");
+    $cacl= $this->ui->get_permissions($dn, "users/user");
+    if (preg_match('/w/', $acl) || preg_match('/c/', $cacl)){
+      $message= array();
+      if ($_POST['new_password'] != $_POST['repeated_password']){
+        $message[]= _("The passwords you've entered as 'New password' and 'Repeated new password' do not match.");
+      } else {
+        if ($_POST['new_password'] == ""){
+          $message[] = msgPool::required(_("New password"));
+        }
+      }
+
+      // Display errors
+      if (count($message) != 0){
+        msg_dialog::displayChecks($message);
+        $smarty = get_smarty();
+        return($smarty->fetch(get_template_path('password.tpl', TRUE)));
+      }
+
+      // Change cassword 
+      if(isset($this->force_hash_type[$this->dn])){
+        if(!change_password ($this->dn, $_POST['new_password'],0,$this->force_hash_type[$this->dn])){
+          return($smarty->fetch(get_template_path('password.tpl', TRUE)));
+        }
+      }else{
+        if(!change_password ($this->dn, $_POST['new_password'])){
+          return($smarty->fetch(get_template_path('password.tpl', TRUE)));
+        }
+      }
+      if ($this->config->get_cfg_value("passwordHook") != ""){
+        exec($this->config->get_cfg_value("passwordHook")." ".$username." ".$_POST['new_password'], $resarr);
+      }
+      new log("modify","users/".get_class($this),$this->dn,array(),"Password has been changed");
+      $this->dn ="";
+      
+    } else {
+      msg_dialog::display(_("Password change"),
+          _("You have no permission to change this users password!"),
+          WARNING_DIALOG);
+    }
+
+    // Cleanup
+    if(!count($this->pwd_change_queue)){
+      $this->remove_lock();
+      $this->closeDialogs();
+    }else{
+      return($this->handlePasswordQueue());
+    }
+  }
+
+
+  /*! \brief  Save user modifications. 
+   *          Whenever we save a 'new' user, request a password change for him.
+   */ 
+  function saveChanges()
+  {
+    $str = management::saveChanges();
+  
+    if(!empty($str)) return($str);
+
+    if($this->last_tabObject instanceOf multi_plug){
+      foreach($this->last_tabObject->a_handles as $user){
+        if($user->password_change_needed()){
+          $this->force_hash_type[$user->dn] = $user->by_object['user']->pw_storage;
+          $this->pwd_change_queue[] = $user->dn;
+        }
+      }
+      return($this->handlePasswordQueue());
+    }
+
+    if(isset($this->last_tabObject->by_object['user']) && $this->last_tabObject->by_object['user']->password_change_needed()){
+      $this->force_hash_type[$this->last_tabObject->dn] = $this->last_tabObject->by_object['user']->pw_storage;
+      $this->pwd_change_queue[] = $this->last_tabObject->dn;
+      return($this->handlePasswordQueue());
+    }
+  }
+
+  function cancelEdit()
+  {
+    $str = management::cancelEdit();
+    if(!empty($str)) return($str);
+
+    if(isset($this->last_tabObject->by_object['user']) && 
+        $this->last_tabObject->by_object['user']->dn != "new" &&  
+        $this->last_tabObject->by_object['user']->password_change_needed()){
+      $this->force_hash_type[$this->last_tabObject->dn] = $this->last_tabObject->by_object['user']->pw_storage;
+      $this->pwd_change_queue[] = $this->last_tabObject->dn;
+      return($this->handlePasswordQueue());
+    }
+  }
+
+
+  /*! \brief  Intiates user creation. 
+   *          If we've user templates, then the user will be asked to use to use one. 
+   *          -> See 'templateContinue' for further handling.
+   */ 
+  function newUserFromTemplate($action="",$target=array(),$all=array())
+  {
+    // Call parent method, it knows whats to do, locking and so on ...
+    $str = management::newEntry($action,$target,$all);
+    if(!empty($str)) return($str);
+
+    // Reset uid selection.
+    $this->got_uid= "";
+
+    // Use template if there are any of them 
+    $templates = array();
+    $templates['none']= _("none");
+    $templates = array_merge($templates,$this->get_templates());
+
+    // We've templates, so preset the current template and display the input dialog.
+    if (count($templates)){
+      $smarty = get_smarty();
+      foreach(array("sn", "givenName", "uid", "got_uid") as $attr){
+        $smarty->assign("$attr", "");
+      }
+      $smarty->assign("template",  array_pop($target));
+      $smarty->assign("templates", $templates);
+      $smarty->assign("edit_uid", "");
+      return($smarty->fetch(get_template_path('template.tpl', TRUE)));
+
+      // -> See 'templateContinue' for further handling!
+    }
+  }
+
+
+
+  /*! \brief  Intiates user creation. 
+   *          If we've user templates, then the user will be asked 
+   *           if he wants to use one. 
+   *          -> See 'templateContinue' for further handling.
+   */ 
+  function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+  {
+  
+    // Call parent method, it manages everything, locking, object creation...
+    $str = management::newEntry($action,$target,$all);
+    if(!empty($str)) return($str);
+    
+    // If we've at least one template, then ask the user if he wants to use one?
+    $templates = array();
+    $templates['none']= _("none");
+    $templates = array_merge($templates,$this->get_templates());
+
+    // Display template selection
+    if (count($templates) > 1){
+      $smarty = get_smarty();
+  
+      // Set default variables, normally empty.
+      foreach(array("sn", "givenName", "uid", "got_uid") as $attr){
+        $smarty->assign($attr, "");
+      }
+      $smarty->assign("template", "none");
+      $smarty->assign("templates", $templates);
+      $smarty->assign("edit_uid", "");
+      return($smarty->fetch(get_template_path('template.tpl', TRUE)));
+
+      // -> See 'templateContinue' for further handling!
+    }
+  }
+
+
+  /* !\brief  This method is called whenever a template selection was displayed.
+   *          Here we act on the use selection. 
+   *          - Does the user want to create a user from template?
+   *          - Create user without template?
+   *          - Input correct, every value given and valid? 
+   */ 
+  function templateContinue()
+  {
+    // Get the list of available templates.
+    $templates = array();
+    $templates['none']= _("none");
+    $templates = array_merge($templates,$this->get_templates());
+
+    // Input validation, if someone wants to create a user from a template
+    //  then validate the given values.
+    $message = array();
+    if(!isset($_POST['template']) || (empty($_POST['template']))){
+      $message[]= msgPool::invalid(_("Template"));
+    }
+    if(!isset($_POST['sn']) || (empty($_POST['sn']))){
+      $message[]= msgPool::required(_("Name"));
+    }
+    if(!isset($_POST['givenName']) || (empty($_POST['givenName']))){
+      $message[]= msgPool::required(_("Given name"));
+    }
+
+    /********************
+     * 1   We've had input errors - Display errors and show input dialog again. 
+     ********************/
+
+    if (count($message) > 0){
+      msg_dialog::displayChecks($message);
+
+      // Preset input fields with user input. 
+      $smarty = get_smarty();
+      foreach(array("sn", "givenName", "uid", "template") as $attr){
+        if(isset($_POST[$attr])){
+          $smarty->assign("$attr", get_post($attr));
+        }else{
+          $smarty->assign("$attr", "");
+        }
+      }
+
+      $smarty->assign("templates",$templates);
+      $smarty->assign("got_uid", $this->got_uid);
+      $smarty->assign("edit_uid",false);
+      return($smarty->fetch(get_template_path('template.tpl', TRUE)));
+    }
+
+
+    /********************
+     * 2   There was a template selected, now ask for the uid.
+     ********************/
+
+    if ($_POST['template'] != 'none' && !isset($_POST['uid'])){
+
+      // Remember user input.
+      $smarty = get_smarty();
+      $this->sn             = $_POST['sn'];
+      $this->givenName      = $_POST['givenName'];
+
+      // Avoid duplicate entries, check if such a user already exists.
+      $dn= preg_replace("/^[^,]+,/i", "", $_POST['template']);
+      $ldap= $this->config->get_ldap_link();
+      $ldap->cd ($dn);
+      $ldap->search ("(&(sn=".normalizeLdap($this->sn).")(givenName=".normalizeLdap($this->givenName)."))", array("givenName"));
+      if ($ldap->count () != 0){
+        msg_dialog::displayChecks(array(msgPool::duplicated(_("Name"))));
+      }else{
+
+        // Preset uid field by using the idGenerator 
+        $attributes= array('sn' => $this->sn, 'givenName' => $this->givenName);
+        if ($this->config->get_cfg_value("idGenerator") != ""){
+          $uids= gen_uids ($this->config->get_cfg_value("idGenerator"), $attributes);
+          if (count($uids)){
+            $smarty->assign("edit_uid", "false");
+            $smarty->assign("uids", $uids);
+            $this->uid= current($uids);
+          }
+        } else {
+          $smarty->assign("edit_uid", "");
+          $this->uid= "";
+        }
+        $this->got_uid= true;
+      }
+
+      // Assign user input 
+      foreach(array("sn", "givenName", "uid", "got_uid") as $attr){
+        $smarty->assign("$attr", $this->$attr);
+      }
+      if (isset($_POST['template'])){
+        $smarty->assign("template", $_POST['template']);
+      }
+      $smarty->assign("templates",$templates); 
+      return($smarty->fetch(get_template_path('template.tpl', TRUE)));
+    }
+
+
+    /********************
+     * 3   No template - Ok. Lets fill the data into the user object and skip templating here. 
+     ********************/
+    if ($_POST['template'] == 'none'){
+      foreach(array("sn", "givenName", "uid") as $attr){
+        if (isset($_POST[$attr])){
+          $this->tabObject->by_object['user']->$attr= $_POST[$attr];
+        }
+      }
+      
+      // The user Tab object is already instantiated, so just go back and let the 
+      //  management class do the rest.
+      return("");
+    }
+
+
+    /********************
+     * 4   Template selected and uid given - Ok, then lets adapt tempalte values. 
+     ********************/
+    if(isset($_POST['uid'])){
+
+      // Move user supplied data to sub plugins 
+      foreach(array("uid","sn","givenName") as $attr){
+        $this->$attr = $_POST[$attr];
+        $this->tabObject->$attr       = $this->$attr;
+        $this->tabObject->by_object['user']->$attr = $this->$attr;
+      }
+
+      // Adapt template values.
+      $template_dn              = $_POST['template'];
+      $this->tabObject->adapt_from_template($template_dn, array("uid","cn","givenName","sn"));
+      $template_base            = preg_replace("/^[^,]+,".preg_quote(get_people_ou(), '/i')."/", '', $template_dn);
+      $this->tabObject->by_object['user']->base= $template_base;
+
+      // The user Tab object is already instantiated, so just go back and let the 
+      //  management class do the rest.
+      return("");
+    }
+  }
+
+
+  /* !\brief  This method applies a template to a set of users.
+   */ 
+  function templatizeUsers($action="",$target=array(),$all=array())
+  {
+    $this->dns = array();
+    if(count($target)){
+
+      // Get the list of available templates.
+      $templates = $this->get_templates();
+
+      // Check entry locking
+      foreach($target as $dn){
+        if (($user= get_lock($dn)) != ""){
+          $this->dn = $dn;
+          return(gen_locked_message ($user, $dn));
+        }
+        $this->dns[] = $dn;
+      }
+          
+      // Display template
+      $smarty = get_smarty();
+      $smarty->assign("templates", $templates);
+      return($smarty->fetch(get_template_path('templatize.tpl', TRUE)));
+    }
+  }
+
+
+  /* !\brief  This method is called whenever the templatize dialog was used.
+   */ 
+  function templatizeContinue()
+  {
+    // Template readable? 
+    $template= get_post('template');
+    $acl = $this->ui->get_permissions($template, $this->aclCategory."/".$this->aclPlugin);
+    if (preg_match('/r/', $acl)){
+      $tab = $this->tabClass;
+      foreach ($this->dns as $dn){
+
+        // User writeable
+        $acl = $this->ui->get_permissions($dn,  $this->aclCategory."/".$this->aclPlugin);
+        if (preg_match('/w/', $acl)){
+          $this->tabObject= new $tab($this->config, $this->config->data['TABS'][$this->tabType], $dn, $this->aclCategory);
+          $this->tabObject->adapt_from_template($template, array("sn", "givenName", "uid"));
+          $this->tabObject->save();
+        } else {
+          msg_dialog::display(_("Permission error"), msgPool::permModify($dn), ERROR_DIALOG);
+        }
+      }
+    } else {
+      msg_dialog::display(_("Permission error"), msgPool::permView($template), ERROR_DIALOG);
+    }
+
+    // Cleanup!
+    $this->remove_lock(); 
+    $this->closeDialogs();
+  }
+
+
+  /* !\brief  Lock/unlock multiple users.
+   */ 
+  function lockUsers($action,$target,$all)
+  {
+    if(!count($target)) return;
+    if($action == "lockUsers"){
+      $this->lockEntry($action,$target, $all, "lock");
+    }else{
+      $this->lockEntry($action,$target, $all, "unlock");
+    }
+  }
+
+  
+  /* !\brief  Locks/unlocks the given user(s).
+   */ 
+  function lockEntry($action,$entry, $all, $type = "toggle")
+  {
+    
+    // Filter out entries we are not allowed to modify
+    $disallowed = array();
+    $dns = array();
+    foreach($entry as $dn){
+      if (!preg_match("/w/",$this->ui->get_permissions($dn,"users/password"))){
+        $disallowed[] = $dn;
+      }else{
+        $allowed[] = $dn;
+      }
+    }
+    if(count($disallowed)){
+      msg_dialog::display(_("Permission"),msgPool::permDelete($disallowed),INFO_DIALOG);
+    }
+
+    // Try to lock/unlock the rest of the entries.
+    $ldap = $this->config->get_ldap_link();
+    foreach($allowed as $dn){
+      $ldap->cat($dn, array('userPassword'));
+      if($ldap->count() == 1){
+
+        // We can't lock empty passwords.
+        $val = $ldap->fetch();
+        if(!isset($val['userPassword'])){
+          continue;
+        }
+
+        // Detect the password method and try to lock/unlock.
+        $pwd = $val['userPassword'][0];
+        $method = passwordMethod::get_method($pwd,$val['dn']);
+        $success= true;
+        if($method instanceOf passwordMethod){
+          if($type == "toggle"){
+            if($method->is_locked($this->config,$val['dn'])){
+              $success= $method->unlock_account($this->config,$val['dn']);
+            }else{
+              $success= $method->lock_account($this->config,$val['dn']);
+            }
+          }elseif($type == "lock" && !$method->is_locked($this->config,$val['dn'])){
+            $success= $method->lock_account($this->config,$val['dn']);
+          }elseif($type == "unlock" && $method->is_locked($this->config,$val['dn'])){
+            $success= $method->unlock_account($this->config,$val['dn']);
+          }
+
+          // Check if everything went fine.
+          if (!$success){
+            $hn= $method->get_hash_name();
+            if (is_array($hn)){
+              $hn= $hn[0];
+            }
+            msg_dialog::display(_("Account locking"),
+                sprintf(_("Password method '%s' does not support locking. Account (%s) has not been locked!"), 
+                  $hn,$dn),WARNING_DIALOG);
+          }
+        }else{
+          // Can't lock unknown methods.
+        }
+      }
+    }
+  }
+
+
+  /* !\brief  This method returns a list of all available templates.
+   */ 
+  function get_templates()
+  {
+    $templates= array();
+    $ldap= $this->config->get_ldap_link();
+    foreach ($this->config->departments as $key => $value){
+      $acl = $this->ui->get_permissions($value,$this->aclCategory."/".$this->aclPlugin);
+      if (preg_match("/c/",$acl)){
+
+        // Search all templates from the current dn.
+        $ldap->cd (get_people_ou().$value);
+        $ldap->search ("(objectClass=gosaUserTemplate)", array("uid"));
+        if ($ldap->count() != 0){
+          while ($attrs= $ldap->fetch()){
+            $templates[$ldap->getDN()]= $attrs['uid'][0]." - ".LDAP::fix($key);
+          }
+        }
+      }
+    }
+    natcasesort ($templates);
+    reset ($templates);
+    return($templates);
+  }
+
+
+  function copyPasteHandler($action="",$target=array(),$all=array(),
+      $altTabClass ="", $altTabType = "", $altAclCategory="",$altAclPlugin="")
+  {
+    if ($this->config->boolValueIsTrue("main", "copyPaste")){
+      $this->cpHandler->lastdn = "";
+      $str = management::copyPasteHandler($action,$target,$all);
+      if($this->cpHandler->lastdn != "" && isset($_POST['passwordTodo']) && $_POST['passwordTodo'] == "new"){
+        $this->pwd_change_queue[] = $this->cpHandler->lastdn;
+        return($this->handlePasswordQueue());
+      }
+      return($str);
+    }
+
+    return "";
+  }
+
+
+  static function filterLockImage($userPassword)
+  {
+    $image= "images/empty.png";
+    if(isset($userPassword[0]) && preg_match("/^\{[^\}]/",$userPassword[0])){
+      if(preg_match("/^[^\}]*+\}!/",$userPassword[0])){
+        $image= "images/lists/locked.png";
+      }else{
+        $image= "images/lists/unlocked.png";
+      }
+    }
+    return $image;
+  }
+
+
+  static function filterLockLabel($userPassword)
+  {
+    $label= "";
+    if(isset($userPassword[0]) && preg_match("/^\{[^\}]/",$userPassword[0])){
+      if(preg_match("/^[^\}]*+\}!/",$userPassword[0])){
+        $label= _("Unlock account");
+      }else{
+        $label= _("Lock account");
+      }
+    }
+    return $label;
+  }
+
+
+  static function filterProperties($row, $classes)
+  {
+    $result= "";
+    $map= array( "gosaAccount" => array( "image" => "plugins/users/images/select_user.png",
+                                         "plugin" => "user",
+                                         "alt" => _("Generic"),
+                                         "title" => _("Edit generic properties")),
+                 "posixAccount" => array("image" => "images/penguin.png",
+                                         "plugin" => "posixAccount",
+                                         "alt" => _("POSIX"),
+                                         "title" => _("Edit POSIX properties")),
+                 "gosaMailAccount" => array("image" => "images/mailto.png",
+                                         "alt" => _("Mail"),
+                                         "plugin" => "mailAccount",
+                                         "title" => _("Edit mail properties")),
+                 "sambaSamAccount" => array("image" => "plugins/systems/images/select_winstation.png",
+                                         "plugin" => "sambaAccount",
+                                         "alt" => _("Samba"),
+                                         "title" => _("Edit samba properties")),
+                 "apple-user" => array("image" => "plugins/netatalk/images/select_netatalk.png",
+                                         "plugin" => "netatalk",
+                                         "alt" => _("Netatalk"),
+                                         "title" => _("Edit netatalk properties")),
+                 "gotoEnvironment" => array("image" => "plugins/users/images/small_environment.png",
+                                         "plugin" => "environment",
+                                         "alt" => _("Environment"),
+                                         "title" => _("Edit environment properties")),
+                 "goFaxAccount" => array("image" => "plugins/users/images/fax_small.png",
+                                         "plugin" => "gofaxAccount",
+                                         "alt" => _("FAX"),
+                                         "title" => _("Edit FAX properties")),
+                 "goFonAccount" => array("image" => "plugins/gofon/images/select_phone.png",
+                                         "plugin" => "phoneAccount",
+                                         "alt" => _("Phone"),
+                                         "title" => _("Edit phone properties")));
+
+    // Walk thru map
+    foreach ($map as $oc => $properties) {
+      if (in_array_ics($oc, $classes)) {
+        $result.="<input class='center' type='image' src='".$properties['image']."' ".
+                 "alt='".$properties['alt']."' title='".$properties['title'].
+                 "' name='listing_edit_".$properties['plugin']."_$row' style='padding:1px'>";
+      } else {
+        $result.="<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+    return $result;
+  }
+
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/users/main.inc b/gosa-core/plugins/admin/users/main.inc
new file mode 100644
index 0000000..cf0f158
--- /dev/null
+++ b/gosa-core/plugins/admin/users/main.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 14630 2009-10-26 10:02:05Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+if ($remove_lock){
+  if(session::is_set('userManagement')){
+      $macl = session::get('userManagement');
+      $macl->remove_lock();
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('userManagement');
+}else{
+
+  /* Create usermanagement object on demand */
+  if (!session::is_set('userManagement')){
+    $userManagement= new userManagement ($config, $ui);
+    session::set('userManagement',$userManagement);
+  }
+  $userManagement = session::get('userManagement');
+  $display= $userManagement->execute();
+
+  /* Reset requested? */
+  if (isset($_GET['reset']) && $_GET['reset'] == 1){
+    session::un_set ('userManagement');
+  }
+
+  /* Show and save dialog */
+  session::set('userManagement',$userManagement);
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/users/password.tpl b/gosa-core/plugins/admin/users/password.tpl
new file mode 100644
index 0000000..18b8b07
--- /dev/null
+++ b/gosa-core/plugins/admin/users/password.tpl
@@ -0,0 +1,42 @@
+<script type="text/javascript" src="include/pwdStrength.js"></script>
+
+<p>
+ {t}To change the user password use the fields below. The changes take effect immediately. Please memorize the new password, because the user wouldn't be able to login without it.{/t}
+</p>
+
+<p>
+ {t}Changing the password affects your authentification on mail, proxy, samba and unix services.{/t}
+</p>
+
+<table summary="" style="vertical-align:top; text-align:left;" cellpadding=4 border=0>
+  <tr>
+    <td><b><LABEL for="new_password">{t}New password{/t}</LABEL></b></td>
+    <td><input type="password" id="new_password" name="new_password" size="30" maxlength="40" onFocus="nextfield= 'repeated_password';" onkeyup="testPasswordCss(document.getElementById('new_password').value);"></td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="repeated_password">{t}Repeat new password{/t}</LABEL></b></td>
+    <td><input type="password" id="repeated_password" name="repeated_password" size="30" maxlength="40" onFocus="nextfiled= 'password_finish'"></td>
+  </tr>
+  <tr>
+    <td><b>{t}Strength{/t}</b></td>
+    <td>
+        <span id="meterEmpty" style="padding:0;margin:0;width:100%;background-color:#DC143C;display:block;height:5px;">
+        <span id="meterFull" style="padding:0;margin:0;z-index:100;width:0;background-color:#006400;display:block;height:5px;"></span></span>
+    </td>
+  </tr>
+</table>
+<br>
+<p class="plugbottom">
+  <input type=submit name="password_finish" value="{t}Set password{/t}">
+   
+  <input type=submit name="password_cancel" value="{msgPool type=cancelButton}">
+  <input type='hidden' id='formSubmit'>
+</p>
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  	nextfield= "new_password";
+	focus_field('new_password');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/users/remove.tpl b/gosa-core/plugins/admin/users/remove.tpl
new file mode 100644
index 0000000..f60f42d
--- /dev/null
+++ b/gosa-core/plugins/admin/users/remove.tpl
@@ -0,0 +1,18 @@
+<div style="font-size:18px;">
+ <img alt="" src="images/warning.png" align=top> {t}Warning{/t}
+</div>
+<p>
+  {$info}
+  {t}This includes all account data, system access rules, imap settings, etc. for this user. Please double check if your really want to do this since there is no way for GOsa to get your data back.{/t}
+</p>
+
+<p>
+ {t}So - if you're sure - press 'Delete' to continue or 'Cancel' to abort.{/t}
+</p>
+
+<p class="plugbottom">
+  <input type=submit name="delete_confirmed" value="{msgPool type=delButton}">
+  <input type=submit name="delete_cancel" value="{msgPool type=cancelButton}">
+   
+</p>
+
diff --git a/gosa-core/plugins/admin/users/tabs_user.inc b/gosa-core/plugins/admin/users/tabs_user.inc
new file mode 100644
index 0000000..fd75945
--- /dev/null
+++ b/gosa-core/plugins/admin/users/tabs_user.inc
@@ -0,0 +1,172 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: tabs_user.inc 14136 2009-08-26 08:02:49Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class usertabs extends tabs
+{
+  var $base;
+
+  /* Template adaption variables
+   */
+  var $uid  ="";
+  var $givenName = "";
+  var $sn;
+
+  function usertabs($config, $data, $dn, $cat = "", $hide_refs = FALSE, $hide_acls = FALSE)
+  {
+    tabs::tabs($config, $data, $dn, 'users',$hide_refs, $hide_acls);
+    $this->base= $this->by_object['user']->base;
+
+    $this->uid = &$this->by_object['user']->uid;
+    $this->sn = &$this->by_object['user']->sn;
+    $this->givenName = &$this->by_object['user']->givenName;
+
+    /* Add references/acls/snapshots */
+    $this->addSpecialTabs();
+
+  }
+
+  function save_object($save_current= FALSE)
+  {
+    tabs::save_object($save_current);
+
+    /* Update reference, transfer variables */
+    $baseobject= $this->by_object['user'];
+    foreach ($this->by_object as $name => $obj){
+
+      /* Adding uid to sub plugins of connectivity */
+      if($name == "connectivity"){
+        foreach ($obj->plugin_name as $plg_name){
+          if(isset($obj->plugin[$plg_name]->uid)){
+            $obj->plugin[$plg_name]->uid = $baseobject->uid;
+          }
+        }
+      }
+
+      /* Don't touch base object */
+      if ($name != 'user'){
+        $obj->parent= &$this;
+        $obj->uid= $baseobject->uid;
+        $obj->sn= $baseobject->uid;
+        $obj->givenName= $baseobject->uid;
+      }
+
+      /* Copy mail if needed */
+      if ($name == "gofaxAccount"){
+        if (isset($this->by_object['mailAccount']) && $this->by_object['mailAccount']->is_account){
+          $obj->mail= $this->by_object['mailAccount']->mail;
+        }
+      }
+
+      $this->by_object[$name]= $obj;
+
+      /* Update parent in base object */
+      $this->by_object['user']->parent= &$this;
+    }
+
+    /* Move facsimile / phone number if nessecary */
+    if ($this->last == "user" && isset($this->by_object['gofaxAccount'])){
+
+      /* Move number to fax plugin */
+      $this->by_object['gofaxAccount']->facsimileTelephoneNumber=
+        $this->by_object['user']->facsimileTelephoneNumber;
+
+      /* Move phone number if plugin exists */
+      if (isset($this->by_object['phoneAccount']) && 
+          !$this->by_object['phoneAccount']->is_account){
+        $this->by_object['phoneAccount']->phoneNumbers= array();
+        if ($this->by_object['user']->telephoneNumber != ""){
+          $this->by_object['phoneAccount']->phoneNumbers[$this->by_object['user']->telephoneNumber]= $this->by_object['user']->telephoneNumber;
+        }
+      }
+    }
+
+    /* Move number from fax plugin */
+    if ($this->last == "gofaxAccount"){
+
+      $this->by_object['user']->facsimileTelephoneNumber=
+        $this->by_object['gofaxAccount']->facsimileTelephoneNumber;
+    }
+
+    /* Move number from fax plugin */
+    if ($this->last == "phoneAccount" && $this->by_object['phoneAccount']->is_account){
+      reset($this->by_object['phoneAccount']->phoneNumbers);
+      $number= key($this->by_object['phoneAccount']->phoneNumbers);
+
+      /* Only the first phoneAccount number, if it is not empty */
+      if(!empty($number)){
+        $this->by_object['user']->telephoneNumber= $number;
+      }
+    }
+
+    /* Possibly change acl base */
+    $this->set_acl_base();
+  }
+
+  function save($ignore_account= FALSE)
+  {
+    /* Check for new 'dn', in order to propagate the
+       'dn' to all plugins */
+    $baseobject= $this->by_object['user'];
+    $baseobject->update_new_dn();
+    if ($this->dn != 'new'){
+
+      $new_dn= $baseobject->new_dn;
+
+      if ($this->dn != $new_dn){
+
+        /* Udpate acls */
+        $baseobject->update_acls($this->dn,$new_dn);
+        $baseobject->move($this->dn, $new_dn);
+        $this->by_object['user']= $baseobject;
+
+        /* Did we change ourselves? Update ui object. */
+        change_ui_dn($this->dn, $new_dn);
+      }
+    }
+
+    $this->dn= $baseobject->new_dn;
+
+    return tabs::save();
+  }
+
+
+  function set_template_mode()
+  {
+    foreach ($this->by_object as $key => $obj){
+      $this->by_object[$key]->is_template= TRUE;
+    }
+  }
+  
+  function saveCopyDialog()
+  {
+    tabs::saveCopyDialog();
+    $baseobject= $this->by_object['user'];
+    $uid = $baseobject->uid;
+    foreach($this->by_object as  $name => $obj){
+      $this->by_object[$name]->uid = $uid;
+    }
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/users/template.tpl b/gosa-core/plugins/admin/users/template.tpl
new file mode 100644
index 0000000..47ef0d7
--- /dev/null
+++ b/gosa-core/plugins/admin/users/template.tpl
@@ -0,0 +1,60 @@
+<div style="font-size:18px;">
+  {t}Creating a new user using templates{/t}
+</div>
+
+<p>
+ {t}Creating a new user can be assisted by using templates. Many database records will be filled automatically. Choose 'none' to skip the usage of templates.{/t}
+</p>
+
+<p class="seperator"> </p>
+
+<br>
+
+<table summary="" style="vertical-align:top; text-align:left;" cellpadding=4 border=0>
+  <tr>
+    <td><b><LABEL for="template">{t}Template{/t}</LABEL></b></td>
+    <td>
+      <select size="1" name="template" id="template">
+       {html_options options=$templates selected=$template}
+      </select>
+    </td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="sn">{t}Last name{/t}</LABEL></b></td>
+    <td><input type='text' name="sn" id="sn" size="30" maxlength="40" value="{$sn}"></td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="givenName">{t}First name{/t}</LABEL></b></td>
+    <td><input type='text' name="givenName" id="givenName" size="30" maxlength="40" value="{$givenName}"></td>
+  </tr>
+  {if $got_uid eq "true"}
+  <tr>
+    <td><b>{t}Login{/t}</b></td>
+    <td>
+      {if $edit_uid eq "false"}
+      <select size="1" name="uid">
+        {html_options output=$uids values=$uids selected=$uid}
+      </select>
+      {else}
+      <input type='text' name="uid" size="30" maxlength="40" value="{$uid}">
+      {/if}
+    </td>
+  </tr>
+  {/if}
+</table>
+
+<br>
+<p class="plugbottom">
+  <input type=submit name="template_continue" value="{t}Continue{/t}">
+   
+  <input type=submit name="edit_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('sn');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/users/templatize.tpl b/gosa-core/plugins/admin/users/templatize.tpl
new file mode 100644
index 0000000..8e38f9f
--- /dev/null
+++ b/gosa-core/plugins/admin/users/templatize.tpl
@@ -0,0 +1,46 @@
+<div style="font-size:18px;">
+  {t}Applying a template{/t}
+</div>
+
+<p>
+ {t}Applying a template to several users will replace all user attributes defined in the template.{/t}
+</p>
+
+<p class="seperator"> </p>
+<br>
+
+{if $templates}
+<table summary="" style="vertical-align:top; text-align:left;" cellpadding=4 border=0>
+  <tr>
+    <td><b><LABEL for="template">{t}Template{/t}</LABEL></b></td>
+    <td>
+      <select size="1" name="template" id="template">
+       {html_options options=$templates}
+      </select>
+    </td>
+  </tr>
+</table>
+
+<br>
+<p class="plugbottom">
+  <input type=submit name="templatize_continue" value="{msgPool type=applyButton}">
+   
+  <input type=submit name="edit_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+{else}
+
+{t}No templates available!{/t}
+
+<p class="plugbottom">
+  <input type=submit name="edit_cancel" value="{msgPool type=cancelButton}">
+</p>
+{/if}
+
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('template');
+  -->
+</script>
diff --git a/gosa-core/plugins/admin/users/user-filter.tpl b/gosa-core/plugins/admin/users/user-filter.tpl
new file mode 100644
index 0000000..227243d
--- /dev/null
+++ b/gosa-core/plugins/admin/users/user-filter.tpl
@@ -0,0 +1,40 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+{$TEMPLATES} <LABEL for='TEMPLATES'>{t}Show templates{/t}</LABEL><br>
+{$FUNCTIONAL} <LABEL for='FUNCTIONAL'>{t}Show functional users{/t}</LABEL><br>
+{$POSIX} <LABEL for='POSIX'>{t}Show POSIX users{/t}</LABEL><br>
+{$MAIL} <LABEL for='MAIL'>{t}Show Mail users{/t}</LABEL><br>
+{$SAMBA} <LABEL for='SAMBA'>{t}Show Samba users{/t}</LABEL><br>
+
+ <div style="border-top:1px solid #AAAAAA"></div>
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/admin/users/user-filter.xml b/gosa-core/plugins/admin/users/user-filter.xml
new file mode 100644
index 0000000..5af0b0c
--- /dev/null
+++ b/gosa-core/plugins/admin/users/user-filter.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>users</category>
+    <template>user-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaAccount)$TEMPLATES$NAME(|$FUNCTIONAL$SAMBA$POSIX$MAIL))</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>givenName</attribute>
+      <attribute>sn</attribute>
+      <attribute>uid</attribute>
+      <attribute>userPassword</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(sn=*$*)(givenName=*$*)(uid=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAP</backend>
+      <filter>(&(objectClass=gosaAccount)(|(cn=*$NAME*)(sn=*$NAME*)(givenName=*$NAME*)(uid=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <attribute>uid</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>TEMPLATES</tag>
+    <default></default>
+    <unset>(!(objectClass=gosaUserTemplate))</unset>
+    <set></set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>FUNCTIONAL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(!(|(objectClass=posixAccount)(objectClass=sambaSamAccount)(objectClass=gosaMailAccount)))</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>POSIX</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=posixAccount)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>MAIL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gosaMailAccount)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SAMBA</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=sambaSamAccount)</set>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/admin/users/user-list.tpl b/gosa-core/plugins/admin/users/user-list.tpl
new file mode 100644
index 0000000..07fc067
--- /dev/null
+++ b/gosa-core/plugins/admin/users/user-list.tpl
@@ -0,0 +1,28 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" border="0" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top;height:100%">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/admin/users/user-list.xml b/gosa-core/plugins/admin/users/user-list.xml
new file mode 100644
index 0000000..a7a12ba
--- /dev/null
+++ b/gosa-core/plugins/admin/users/user-list.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>user-list.tpl</template>
+    <module>users</module>
+    <label>List of users</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Template</label>
+      <objectClass>gosaUserTemplate</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_template.png</image>
+    </objectType>
+
+    <objectType>
+      <label>User</label>
+      <objectClass>gosaAccount</objectClass>
+      <category>users</category>
+      <class>user</class>
+      <image>plugins/users/images/select_user.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c||||150px|185px;r|</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>3</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Surname</label>
+      <sortAttribute>sn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",sn)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Given name</label>
+      <sortAttribute>givenName</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",givenName)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Login</label>
+      <sortAttribute>uid</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{filter:link(row,dn,"%s",uid)}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Properties</label>
+      <value>%{filter:filterProperties(row,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Actions</label>
+      <value>%{filter:actions(dn,row,objectClass)}</value>
+    </column>
+
+  </table>
+
+  <actionmenu>
+
+    <action>
+     <type>sub</type>
+     <image>images/lists/new.png</image>
+     <label>Create</label>
+
+     <action>
+      <name>new</name>
+      <type>entry</type>
+      <image>plugins/users/images/list_new_user.png</image>
+      <label>User</label>
+     </action>
+
+     <action>
+      <name>new_template</name>
+      <type>entry</type>
+      <image>plugins/users/images/select_template.png</image>
+      <label>Template</label>
+     </action>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <image>images/lists/edit.png</image>
+      <label>Edit</label>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <label>Remove</label>
+    </action>
+
+    <action>
+      <name>password</name>
+      <type>entry</type>
+      <image>plugins/users/images/list_password.png</image>
+      <label>Change password</label>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>lockUsers</name>
+      <type>entry</type>
+      <image>images/lists/locked.png</image>
+      <acl>uniBonnAccount/password[w]</acl>
+      <label>Lock users</label>
+    </action>
+
+    <action>
+      <name>unlockUsers</name>
+      <type>entry</type>
+      <image>images/lists/unlocked.png</image>
+      <acl>uniBonnAccount/password[w]</acl>
+      <label>Unlock users</label>
+    </action>
+
+    <action>
+      <name>sendMessage</name>
+      <type>entry</type>
+      <depends>DaemonEvent_notify</depends>
+      <image>plugins/goto/images/notify.png</image>
+      <label>Send message</label>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <name>templatize</name>
+      <type>entry</type>
+      <image>plugins/users/images/wizard.png</image>
+      <label>Apply template</label>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>exporter</type>
+    </action>
+
+    <action>
+      <type>separator</type>
+    </action>
+
+    <action>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <type>snapshot</type>
+    </action>
+
+  </actionmenu>
+
+  <actiontriggers snapshot="true" copypaste="true">
+
+    <action>
+      <name>newfromtpl</name>
+      <type>entry</type>
+      <image>images/lists/new.png</image>
+      <objectclass>gosaUserTemplate</objectclass>
+      <label>New user from template</label>
+    </action>
+
+    <action>
+      <name>cp</name>
+      <objectclass>!gosaUserTemplate</objectclass>
+      <type>copypaste</type>
+    </action>
+
+    <action>
+      <name>edit</name>
+      <type>entry</type>
+      <objectclass>gosaAccount</objectclass>
+      <image>images/lists/edit.png</image>
+      <label>Edit user</label>
+    </action>
+
+    <action>
+      <name>lock</name>
+      <type>entry</type>
+      <objectclass>!gosaUserTemplate</objectclass>
+      <image>%{filter:lockImage(userPassword)}</image>
+      <acl>uniBonnAccount/password[w]</acl>
+      <label>%{filter:lockLabel(userPassword)}</label>
+    </action>
+
+    <action>
+      <name>password</name>
+      <type>entry</type>
+      <objectclass>!gosaUserTemplate</objectclass>
+      <image>plugins/users/images/list_password.png</image>
+      <label>Change password</label>
+    </action>
+
+    <action>
+      <name>snapshot</name>
+      <type>snapshot</type>
+      <objectclass>!gosaUserTemplate</objectclass>
+    </action>
+
+    <action>
+      <name>remove</name>
+      <type>entry</type>
+      <image>images/lists/trash.png</image>
+      <objectclass>gosaAccount</objectclass>
+      <acl>users/user[d]</acl>
+      <label>Remove user</label>
+    </action>
+
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/generic/references/class_reference.inc b/gosa-core/plugins/generic/references/class_reference.inc
new file mode 100644
index 0000000..998f70e
--- /dev/null
+++ b/gosa-core/plugins/generic/references/class_reference.inc
@@ -0,0 +1,203 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_reference.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class reference extends plugin
+{
+  /* attribute list for save action */
+  var $attributes= array();
+  var $objectclasses= array();
+  var $objectlist= "";
+  var $obtypes= array();
+  var $fold= array();
+  var $objectCache= array();
+
+  function reference (&$config, $dn= NULL)
+  {
+	/* Include config object */
+	$this->config= &$config;
+	$this->dn= $dn;
+
+        /* Fill translation array */
+        $this->obtypes= array(  
+				"gosaAccount" => array(	   "text" => _("Generic"),
+					"image" => "images/penguin.png"),
+				"posixAccount" => array(   "text" =>_("UNIX"),
+					"image" => "plugins/users/images/select_user.png"),
+				"gosaMailAccount" => array("text" => _("Mail"),
+					"image" => "images/mailto.png"),
+				"sambaSamAccount" => array("text" => _("Samba"),
+					"image" => "plugins/systems/images/select_winstation.png"),
+				"sambaAccount" => array(   "text" => _("Samba"),
+					"image" => "plugins/sysmtes/images/select_winstation.png"),
+				"goFaxAccount" => array(   "text" => _("FAX"),
+					"image" => "plugins/gofax/images/fax_small.png"),
+				"gosaProxyAccount" => array("text" => _("Proxy"),
+					"image" => "images/select_proxy.png"),
+				"PureFTPdUser" => array(   "text" => _("FTP"),
+					"image" => "images/select_proxy.png"),
+				"posixGroup" => array(     "text" => _("Group"),
+					"image" => "images/select_groups.png"),
+				"gosaDepartment" => array( "text" => _("Department"),
+					"image" => "images/select_department.png"),
+				"goFonHardware" => array(   "text" => _("Phone"),
+					"image" => "plugins/systems/images/select_phone.png"),
+				"gosaApplication" => array("text" => _("Application"),
+						"image" => "plugins/goto/images/select_application.png"),
+				"goServer" => array(	   "text" => _("Server"),
+						"image" => "plugins/systems/images/select_server.png"),
+				"gotoTerminal" => array(   "text" => _("Thin Client"),
+						"image" => "images/select_terminal.png"),
+				"gotoWorkstation" => array("text" => _("Workstation"),
+						"image" => "plugins/systems/images/select_workstation.png"),
+				"gosaGroupOfNames" => array("text" => _("Object group"),
+						"image" => "plugins/ogroups/images/select_ogroup.png"),
+				"gotoPrinter" => array(	   "text" => _("Printer"),
+						"image" => "plugins/systems/images/select_printer.png"));
+  }
+
+  function execute()
+  {
+	/* Call parent execute */
+	plugin::execute();
+
+	/* Set government mode */
+	$smarty= get_smarty();
+
+	if (isset($_GET['show'])){
+		$dn= base64_decode($_GET['show']);
+		if (isset($this->fold["$dn"])){
+			unset($this->fold["$dn"]);
+		} else {
+			$this->fold["$dn"]= "$dn";
+		}
+	}
+
+	/* Fill array */
+	$this->reload();
+	$smarty->assign("objectList", $this->objectlist);
+
+	/* Show main page */
+	return ($smarty->fetch (get_template_path('contents.tpl', TRUE, dirname(__FILE__))));
+  }
+
+  function reload()
+  {
+	$ldap= $this->config->get_ldap_link();
+	$ldap->cd($this->config->current['BASE']);
+
+	$ldap->search("(|(gotoHotplugDeviceDN=".LDAP::prepare4filter($this->dn).")(member=".LDAP::prepare4filter($this->dn).")(memberUid=".$this->uid."))",array("memberUid","member","cn","description","objectClass"));
+	
+  	$cycle= array("F5F5F5", "ECECEC");
+	$id= 0;
+	$this->objectlist= "";
+	while ($attrs= $ldap->fetch()){
+
+		/* Add more information? */
+		$addon= "";
+		if (in_array($attrs['dn'], $this->fold)){
+			$memberattr= "";
+			if (isset($attrs['memberUid'])){
+				unset($attrs['memberUid']['count']);
+				$memberattr= "memberUid";
+			} 
+			if (isset($attrs['member'])){
+				unset($attrs['member']['count']);
+				$memberattr= "member";
+			} 
+			if ($memberattr == ""){
+				continue;
+			}
+			foreach ($attrs[$memberattr] as $uid){
+				$content= $this->getCacheObject($uid);
+				if ($content === NULL) {
+					continue;
+				}
+				$addon.= '<tr style="background-color:'.$cycle[$id&1].';"><td title="'.$attrs['cn'][0].'">   '.$content['name'].'</td><td>'.$content['description'].'</td><td>'.$content['type'].'</td> </tr>';
+			}
+		}
+
+		/* Build final entry */
+		if (isset($attrs['description'])){
+			$description= $attrs['description'][0];
+		} else {
+			$description= "-";
+		}
+		$content= $this->createContentString($attrs['objectClass']);
+		if ($addon == ""){
+			$img= "images/lists/expand.png";
+		} else {
+			$img= "images/lists/sort-down.png";
+		}
+		$this->objectlist.= '<tr style="background-color:'.$cycle[$id&1].';"><td class="phonelist" title="'.$attrs['cn'][0].'"><a href="main.php?plug='.$_GET['plug'].'&start=&show='.base64_encode($attrs['dn']).'"><img alt="" src="'.$img.'" border=0> '.$attrs['cn'][0].'</a></td><td>'.$description.'</td><td>'.$content.'</td> </tr>'.$addon;
+
+		$id++;
+	}
+	
+  }
+
+  function getCacheObject($dn)
+  {
+	if (!isset($this->objectCache[$dn])){
+		$ldap= $this->config->get_ldap_link();
+		if (preg_match('/,/', $dn)){
+			$ldap->cat($dn, array("cn", "objectClass", "description","ou"));
+		} else {
+			$ldap->search("(uid=$dn)", array("cn", "objectClass", "description","ou"));
+		}
+		if ($ldap->count()){
+			$attrs= $ldap->fetch();
+
+			if(isset($attrs['ou']) && !isset($attrs['cn'])){
+				$attrs['cn'] = $attrs['ou'];
+			}
+				
+			if (isset($attrs['description'])){
+				$description= $attrs['description'][0];
+			} else {
+				$description= "-";
+			}
+			$this->objectCache[$dn]= array(	'name' => $attrs['cn'][0],
+					'description' => "$description",
+					'type' => $this->createContentString($attrs['objectClass']));
+		} else {
+			return NULL;
+		}
+	}
+	return ($this->objectCache[$dn]);
+  }
+
+  function createContentString($classes)
+  {
+	$result= "";
+  	if(!is_null($classes)) {
+		foreach ($classes as $class){
+			if (isset($this->obtypes[$class])){
+				$result.= "<a><img alt=\"\" border=0 src='".$this->obtypes[$class]['image']."'> ".$this->obtypes[$class]['text']."</a> ";
+			}
+		}
+	}
+	return (preg_replace('/ $/', '', $result));
+  }
+  
+}
+
+?>
diff --git a/gosa-core/plugins/generic/references/contents.tpl b/gosa-core/plugins/generic/references/contents.tpl
new file mode 100644
index 0000000..e953da1
--- /dev/null
+++ b/gosa-core/plugins/generic/references/contents.tpl
@@ -0,0 +1,19 @@
+{if $objectList ne ""}
+<table summary="" style="width:100%; vertical-align:top; text-align:left; border:1px solid #B0B0B0;"  cellpadding=4 cellspacing=0 border=0 rules="cols">
+
+ <colgroup>
+  <col width="20%">
+  <col width="20%">
+  <col width="60%">
+ </colgroup>
+
+ <tr style="background-color: #E8E8E8; height:26px;font-weight:bold;">
+  <td>{t}Object name{/t}</td><td>{t}Description{/t}</td><td>{t}Contents{/t}</td>
+ </tr>
+
+ {$objectList}
+
+</table>
+{else}
+<b>{t}This object has no relationship to other objects.{/t}</b>
+{/if}
diff --git a/gosa-core/plugins/generic/welcome/main.inc b/gosa-core/plugins/generic/welcome/main.inc
new file mode 100644
index 0000000..f738eb6
--- /dev/null
+++ b/gosa-core/plugins/generic/welcome/main.inc
@@ -0,0 +1,32 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 13287 2008-12-12 14:36:42Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+if (!$cleanup){
+	session::set('plugin_dir',dirname(__FILE__));
+	$smarty->assign("iconmenu", $plist->show_iconmenu());
+	$smarty->assign("header", print_header(get_template_path('images/welcome.png'), sprintf(_("Welcome %s!"), $ui->cn)));
+	$smarty->assign("year", date("Y"));
+	$smarty->assign("revision", get_gosa_version());
+	$display= $smarty->fetch(get_template_path('welcome.tpl', TRUE));
+}
+
+?>
diff --git a/gosa-core/plugins/generic/welcome/welcome.tpl b/gosa-core/plugins/generic/welcome/welcome.tpl
new file mode 100644
index 0000000..35a27ed
--- /dev/null
+++ b/gosa-core/plugins/generic/welcome/welcome.tpl
@@ -0,0 +1,19 @@
+{$header}
+
+<p>
+  {t}This is the GOsa main menu. You can select your tasks from the menu on the left, or by choosing one of the pictograms below. All changes apply directly to your companies LDAP server.{/t}
+</p>
+
+<p>
+  {t}Use 'Sign out' on the upper left to close the connection and 'Main' to get back to the pictogram view.{/t}
+</p>
+ 
+{$iconmenu}
+
+<br>
+
+<div class="copynotice">© 2002-{$year} <a href="http://gosa.gonicus.de">{t}The GOsa team{/t}, {$revision}</a>
+</div>
+
+<input type="hidden" name="ignore">
+
diff --git a/gosa-core/plugins/personal/generic/class_user.inc b/gosa-core/plugins/personal/generic/class_user.inc
new file mode 100644
index 0000000..5a7a439
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/class_user.inc
@@ -0,0 +1,1933 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_user.inc 17970 2010-04-29 14:12:17Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*!
+  \brief   user plugin
+  \author  Cajus Pollmeier <pollmeier at gonicus.de>
+  \version 2.00
+  \date    24.07.2003
+
+  This class provides the functionality to read and write all attributes
+  relevant for person, organizationalPerson, inetOrgPerson and gosaAccount
+  from/to the LDAP. It does syntax checking and displays the formulars required.
+ */
+
+class user extends plugin
+{
+  /* Definitions */
+  var $plHeadline= "Generic";
+  var $plDescription= "Edit organizational user settings";
+
+  /* Plugin specific values */
+  var $base= "";
+  var $orig_base= "";
+  var $cn= "";
+  var $new_dn= "";
+  var $personalTitle= "";
+  var $academicTitle= "";
+  var $homePostalAddress= "";
+  var $homePhone= "";
+  var $labeledURI= "";
+  var $o= "";
+  var $ou= "";
+  var $departmentNumber= "";
+  var $gosaLoginRestriction= array();
+  var $gosaLoginRestrictionWidget;
+  var $employeeNumber= "";
+  var $employeeType= "";
+  var $roomNumber= "";
+  var $telephoneNumber= "";
+  var $facsimileTelephoneNumber= "";
+  var $mobile= "";
+  var $pager= "";
+  var $l= "";
+  var $st= "";
+  var $postalAddress= "";
+  var $dateOfBirth;
+  var $use_dob= "0";
+  var $gender="0";
+  var $preferredLanguage="0";
+  var $baseSelector;
+
+  var $jpegPhoto= "*removed*";
+  var $photoData= "";
+  var $old_jpegPhoto= "";
+  var $old_photoData= "";
+  var $cert_dialog= FALSE;
+  var $picture_dialog= FALSE;
+  var $pwObject= NULL;
+
+  var $userPKCS12= "";
+  var $userSMIMECertificate= "";
+  var $userCertificate= "";
+  var $certificateSerialNumber= "";
+  var $old_certificateSerialNumber= "";
+  var $old_userPKCS12= "";
+  var $old_userSMIMECertificate= "";
+  var $old_userCertificate= "";
+
+  var $gouvernmentOrganizationalUnit= "";
+  var $houseIdentifier= "";
+  var $street= "";
+  var $postalCode= "";
+  var $vocation= "";
+  var $ivbbLastDeliveryCollective= "";
+  var $gouvernmentOrganizationalPersonLocality= "";
+  var $gouvernmentOrganizationalUnitDescription= "";
+  var $gouvernmentOrganizationalUnitSubjectArea= "";
+  var $functionalTitle= "";
+  var $role= "";
+  var $publicVisible= "";
+
+  var $orig_dn;
+  var $dialog;
+
+  /* variables to trigger password changes */
+  var $pw_storage= "md5";
+  var $last_pw_storage= "unset";
+  var $had_userCertificate= FALSE;
+
+  var $view_logged = FALSE;
+
+  var $manager = "";
+  var $manager_name = "";
+
+
+  /* attribute list for save action */
+  var $attributes= array("sn", "givenName", "uid", "personalTitle", "academicTitle",
+      "homePostalAddress", "homePhone", "labeledURI", "ou", "o", "dateOfBirth", "gender","preferredLanguage",
+      "departmentNumber", "employeeNumber", "employeeType", "l", "st","jpegPhoto",
+      "roomNumber", "telephoneNumber", "mobile", "pager", "cn", "userPKCS12",
+      "postalAddress", "facsimileTelephoneNumber", "userSMIMECertificate", "gosaLoginRestriction", "manager");
+
+  var $objectclasses= array("top", "person", "organizationalPerson", "inetOrgPerson",
+      "gosaAccount");
+
+  /* attributes that are part of the government mode */
+  var $govattrs= array("gouvernmentOrganizationalUnit", "houseIdentifier", "vocation",
+      "ivbbLastDeliveryCollective", "gouvernmentOrganizationalPersonLocality",
+      "gouvernmentOrganizationalUnitDescription","gouvernmentOrganizationalUnitSubjectArea",
+      "functionalTitle", "certificateSerialNumber", "publicVisible", "street", "role",
+      "postalCode");
+
+  var $multiple_support = TRUE;
+
+  var $governmentmode = FALSE;
+
+  /* constructor, if 'dn' is set, the node loads the given
+     'dn' from LDAP */
+  function user (&$config, $dn= NULL)
+  {
+    global $lang;
+
+    $this->config= $config;
+    /* Configuration is fine, allways */
+    if($this->config->get_cfg_value("honourIvbbAttributes") == "true"){
+      $this->governmentmode = TRUE;
+      $this->attributes=array_merge($this->attributes,$this->govattrs);
+    }
+
+    /* Load base attributes */
+    plugin::plugin ($config, $dn);
+
+    $this->orig_dn  = $this->dn;
+    $this->new_dn   = $dn;
+
+    if ($this->governmentmode){
+      /* Fix public visible attribute if unset */
+      if (!isset($this->attrs['publicVisible'])){
+        $this->publicVisible == "nein";
+      }
+    }
+
+    /* Load government mode attributes */
+    if ($this->governmentmode){
+      /* Copy all attributs */
+      foreach ($this->govattrs as $val){
+        if (isset($this->attrs["$val"][0])){
+          $this->$val= $this->attrs["$val"][0];
+        }
+      }
+    }
+
+    /* Create me for new accounts */
+    if ($dn == "new"){
+      $this->is_account= TRUE;
+    }
+
+    /* Make hash default to md5 if not set in config */
+    $hash= $this->config->get_cfg_value("passwordDefaultHash", "crypt/md5");
+
+    /* Load data from LDAP? */
+    if ($dn !== NULL){
+
+      /* Do base conversation */
+      if ($this->dn == "new"){
+        $ui= get_userinfo();
+        $this->base= dn2base(session::global_is_set("CurrentMainBase")?"cn=dummy,".session::global_get("CurrentMainBase"):$ui->dn);
+      } else {
+        $this->base= dn2base($dn);
+      }
+
+      /* get password storage type */
+      if (isset ($this->attrs['userPassword'][0])){
+      	/* Initialize local array */
+      	$matches= array();
+        if (preg_match ("/^{[^}]+}/", $this->attrs['userPassword'][0])){
+          $tmp= passwordMethod::get_method($this->attrs['userPassword'][0]);
+          if(is_object($tmp)){
+            $this->pw_storage= $tmp->get_hash(); 
+          }
+
+        } else {
+          if ($this->attrs['userPassword'][0] != ""){
+            $this->pw_storage= "clear";
+          } else {
+            $this->pw_storage= $hash;
+          }
+        }
+      } else {
+        /* Preset with vaule from configuration */
+        $this->pw_storage= $hash;
+      }
+
+      /* Load extra attributes: certificate and picture */
+      $this->load_cert();
+      $this->load_picture();
+      if ($this->userCertificate != ""){
+        $this->had_userCertificate= TRUE;
+      }
+    }
+
+    /* Reset password storage indicator, used by password_change_needed() */
+    if ($dn == "new"){
+      $this->last_pw_storage= "unset";
+    } else {
+      $this->last_pw_storage= $this->pw_storage;
+    }
+
+    /* Generate dateOfBirth entry */
+    if (isset ($this->attrs['dateOfBirth'])){
+      /* This entry is ISO 8601 conform */
+      list($year, $month, $day)= explode("-", $this->attrs['dateOfBirth'][0], 3);
+    
+      #TODO: use $lang to convert date
+      $this->dateOfBirth= "$day.$month.$year";
+    } else {
+      $this->dateOfBirth= "";
+    }
+
+    /* Put gender attribute to upper case */
+    if (isset ($this->attrs['gender'])){
+      $this->gender= strtoupper($this->attrs['gender'][0]);
+    }
+
+    // Get login restrictions
+    if(isset($this->attrs['gosaLoginRestriction'])){
+      $this->gosaLoginRestriction  =array();
+      for($i =0;$i < $this->attrs['gosaLoginRestriction']['count']; $i++){
+        $this->gosaLoginRestriction[] = $this->attrs['gosaLoginRestriction'][$i];
+      }
+    }
+    $this->gosaLoginRestrictionWidget= new sortableListing($this->gosaLoginRestriction);
+    $this->gosaLoginRestrictionWidget->setDeleteable(true);
+    $this->gosaLoginRestrictionWidget->setColspecs(array('*'));
+    $this->gosaLoginRestrictionWidget->setWidth("100%");
+    $this->gosaLoginRestrictionWidget->setHeight("70px");
+ 
+    $this->orig_base = $this->base;
+    $this->baseSelector= new baseSelector($this->allowedBasesToMoveTo(), $this->base);
+    $this->baseSelector->setSubmitButton(false);
+    $this->baseSelector->setHeight(300);
+    $this->baseSelector->update(true);
+
+
+    // Detect the managers name
+    $this->manager_name = "";
+    $ldap = $this->config->get_ldap_link();
+    if(!empty($this->manager)){
+      $ldap->cat($this->manager, array('cn'));
+      if($ldap->count()){
+        $attrs = $ldap->fetch();
+        $this->manager_name = $attrs['cn'][0];
+      }else{
+        $this->manager_name = "("._("Unknown")."!): ".$this->manager;
+      }
+    }
+  }
+
+
+  /* execute generates the html output for this node */
+  function execute()
+  {
+    /* Call parent execute */
+    plugin::execute();
+
+    /* Set list ACL */
+    $this->gosaLoginRestrictionWidget->setAcl($this->getacl('gosaLoginRestriction', (!is_object($this->parent) && !session::is_set('edit'))));
+    $this->gosaLoginRestrictionWidget->update();
+
+    /* Handle add/delete for restriction mode */
+    if (isset($_POST['add_res']) && isset($_POST['res'])) {
+      $val= validate($_POST['res']);
+      if (preg_match('/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/', $val) ||
+          preg_match('/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\/([0-9]+)$/', $val) ||
+          preg_match('/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/', $val)) {
+        $this->gosaLoginRestrictionWidget->addEntry($val);
+      } else {
+        msg_dialog::display(_("Error"), _("Please add a single IP address or a network/netmask combination!"), ERROR_DIALOG);
+      }
+    }
+
+    /* Log view */
+    if($this->is_account && !$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","users/".get_class($this),$this->dn);
+    }
+
+    // Clear manager attribute if requested
+    if(preg_match("/ removeManager/i", " ".implode(array_keys($_POST),' ')." ")){
+      $this->manager = "";
+      $this->manager_name = "";
+    }
+
+    // Allow to select a new inetOrgPersion:manager 
+    if(preg_match("/ editManager/i", " ".implode(array_keys($_POST),' ')." ")){
+      $this->dialog = new singleUserSelect($this->config, get_userinfo());
+    }
+    if($this->dialog instanceOf singleUserSelect && count($this->dialog->detectPostActions())){
+      $users = $this->dialog->detectPostActions();
+      if(isset($users['targets']) && count($users['targets'])){
+
+        $headpage = $this->dialog->getHeadpage();
+        $dn = $users['targets'][0];
+        $attrs = $headpage->getEntry($dn);
+        $this->manager = $dn;
+        $this->manager_name = $attrs['cn'][0];
+        $this->dialog = NULL;
+      }
+    }
+    if(isset($_POST['add_users_cancel'])){
+      $this->dialog = NULL;
+    }
+    if($this->dialog instanceOf singleUserSelect) return($this->dialog->execute()); 
+
+
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+    $smarty->assign("gosaLoginRestrictionWidget", $this->gosaLoginRestrictionWidget->render());
+
+    /* Assign sex */
+    $sex= array(0 => " ", "F" => _("female"), "M" => _("male"));
+    $smarty->assign("gender_list", $sex);
+    $language= array_merge(array(0 => " ") ,get_languages(TRUE));
+    $smarty->assign("preferredLanguage_list", $language);
+
+    /* Get random number for pictures */
+    srand((double)microtime()*1000000); 
+    $smarty->assign("rand", rand(0, 10000));
+
+
+    /* Do we represent a valid gosaAccount? */
+    if (!$this->is_account){
+      $str = "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\"> <b>".
+        msgPool::noValidExtension("GOsa")."</b>";
+      return($str);
+    }
+
+    /* Password configure dialog handling */
+    if(is_object($this->pwObject) && $this->pwObject->display){
+      $output= $this->pwObject->configure();
+      if ($output != ""){
+        $this->dialog= TRUE;
+        return $output;
+      }
+      $this->dialog= false;
+    }
+
+    /* Want password method editing? */
+    if ($this->acl_is_writeable("userPassword")){
+      if (isset($_POST['edit_pw_method'])){
+        if (!is_object($this->pwObject) || $this->pw_storage != $this->pwObject->get_hash_name()){
+          $temp= passwordMethod::get_available_methods();
+          $this->pwObject= new $temp[$this->pw_storage]($this->config,$this->dn);
+        }
+        $this->pwObject->display = TRUE;
+        $this->dialog= TRUE;
+        return ($this->pwObject->configure());
+      }
+    }
+
+    /* Want picture edit dialog? */
+    if($this->acl_is_writeable("userPicture")) {
+      if (isset($_POST['edit_picture'])){
+        /* Save values for later recovery, in case some presses
+           the cancel button. */
+        $this->old_jpegPhoto= $this->jpegPhoto;
+        $this->old_photoData= $this->photoData;
+        $this->picture_dialog= TRUE;
+        $this->dialog= TRUE;
+      }
+    }
+
+    /* Remove picture? */
+    if($this->acl_is_writeable("userPicture",(!is_object($this->parent) && !session::is_set('edit'))) ){
+      if (isset($_POST['picture_remove'])){
+        $this->set_picture ();
+        $this->jpegPhoto= "*removed*";
+        $this->is_modified= TRUE;
+        return($smarty->fetch (get_template_path('generic_picture.tpl', TRUE, dirname(__FILE__))));
+      }
+    }
+
+    /* Save picture */
+    if (isset($_POST['picture_edit_finish'])){
+
+      /* Check for clean upload */
+      if ($_FILES['picture_file']['name'] != ""){
+        if (!is_uploaded_file($_FILES['picture_file']['tmp_name'])) {
+          msg_dialog::display(_("Error"), _("Cannot upload file!"), ERROR_DIALOG);
+        }else{
+          /* Activate new picture */
+          $this->set_picture($_FILES['picture_file']['tmp_name']);
+        }
+      }
+      $this->picture_dialog= FALSE;
+      $this->dialog= FALSE;
+      $this->is_modified= TRUE;
+    }
+
+
+    /* Cancel picture */
+    if (isset($_POST['picture_edit_cancel'])){
+
+      /* Restore values */
+      $this->jpegPhoto= $this->old_jpegPhoto;
+      $this->photoData= $this->old_photoData;
+
+      /* Update picture */
+      session::set('binary',$this->photoData);
+      session::set('binarytype',"image/jpeg");
+      $this->picture_dialog= FALSE;
+      $this->dialog= FALSE;
+    }
+
+    /* Want certificate= */
+    if ((isset($_POST['edit_cert'])) && $this->acl_is_readable("Certificate")){
+
+      /* Save original values for later reconstruction */
+      foreach (array("certificateSerialNumber", "userCertificate",
+            "userSMIMECertificate", "userPKCS12") as $val){
+
+        $oval= "old_$val";
+        $this->$oval= $this->$val;
+      }
+
+      $this->cert_dialog= TRUE;
+      $this->dialog= TRUE;
+    }
+
+
+    /* Cancel certificate dialog */
+    if (isset($_POST['cert_edit_cancel'])){
+
+      /* Restore original values in case of 'cancel' */
+      foreach (array("certificateSerialNumber", "userCertificate",
+            "userSMIMECertificate", "userPKCS12") as $val){
+
+        $oval= "old_$val";
+        $this->$val= $this->$oval;
+      }
+      $this->cert_dialog= FALSE;
+      $this->dialog= FALSE;
+    }
+
+
+    /* Remove certificate? */
+    if($this->acl_is_writeable("Certificate",(!is_object($this->parent) && !session::is_set('edit')))){ 
+      foreach (array ("userCertificate", "userSMIMECertificate", "userPKCS12") as $val){
+        if (isset($_POST["remove_$val"])){
+
+          /* Reset specified cert*/
+          $this->$val= "";
+          $this->is_modified= TRUE;
+        }
+      }
+    }
+
+    /* Upload new cert and close dialog? */	
+    if($this->acl_is_writeable("Certificate",(!is_object($this->parent) && !session::is_set('edit')))){ 
+
+      $fail =false;
+
+      if (isset($_POST['cert_edit_finish'])){
+
+        /* for all certificates do */
+        foreach (array ("userCertificate", "userSMIMECertificate", "userPKCS12")
+            as $val){
+
+          /* Check for clean upload */
+          if (array_key_exists($val."_file", $_FILES) &&
+              array_key_exists('name', $_FILES[$val."_file"]) &&
+              $_FILES[$val."_file"]['name'] != "" &&
+              is_uploaded_file($_FILES[$val."_file"]['tmp_name'])) {
+            $this->set_cert("$val", $_FILES[$val."_file"]['tmp_name']);
+          }
+        }
+
+        /* Save serial number */
+        if (isset($_POST["certificateSerialNumber"]) &&
+            $_POST["certificateSerialNumber"] != ""){
+
+          if (!tests::is_id($_POST["certificateSerialNumber"])){
+            $fail = true;
+            msg_dialog::display(_("Error"), msgPool::invalid(_("Serial number"),$_POST["certificateSerialNumber"],"/[0-9]/"),ERROR_DIALOG);
+
+            foreach(array("userCertificate", "userSMIMECertificate", "userPKCS12") as $cert){
+              if ($this->$cert != ""){
+                $smarty->assign("$cert"."_state", "true");
+              } else {
+                $smarty->assign("$cert"."_state", "");
+              }
+            }
+          }
+
+          $this->certificateSerialNumber= $_POST["certificateSerialNumber"];
+          $this->is_modified= TRUE;
+        }
+        if(!$fail){
+          $this->cert_dialog= FALSE;
+          $this->dialog= FALSE;
+        }
+      }
+    }
+    /* Display picture dialog */
+    if ($this->picture_dialog){
+      return($smarty->fetch (get_template_path('generic_picture.tpl', TRUE, dirname(__FILE__))));
+    }
+
+    /* Display cert dialog */
+    if ($this->cert_dialog){
+      $smarty->assign("CertificateACL",$this->getacl("Certificate",(!is_object($this->parent) && !session::is_set('edit'))));
+      $smarty->assign("Certificate_readable",$this->acl_is_readable("Certificate"));
+      $smarty->assign("certificateSerialNumber",$this->certificateSerialNumber);
+
+      foreach(array("userCertificate", "userSMIMECertificate", "userPKCS12") as $cert){
+        if ($this->$cert != ""){
+          /* import certificate */
+          $certificate = new certificate;
+          $certificate->import($this->$cert);
+      
+          /* Read out data*/
+          $timeto   = $certificate->getvalidto_date();
+          $timefrom = $certificate->getvalidfrom_date();
+         
+          
+          /* Additional info if start end time is '0' */
+          $add_str_info = "";
+          if($timeto == 0 && $timefrom == 0){
+            $add_str_info = "<br><i>"._("(Some types of certificates are currently not supported and may be displayed as 'invalid'.)")."</i>";
+          }
+
+          $str = "<table summary=\"\" border=0>
+                    <tr>
+                      <td style='vertical-align:top'>CN</td>
+                      <td>".preg_replace("/ /", " ", $certificate->getname())."</td>
+                    </tr>
+                  </table><br>".
+
+                  sprintf(_("Certificate is valid from %s to %s and is currently %s."),
+                        "<b>".date('d M Y',$timefrom)."</b>",
+                        "<b>".date('d M Y',$timeto)."</b>",
+                        $certificate->isvalid()?"<b><font style='color:green'>"._("valid")."</font></b>":
+                                                "<b><font style='color:red'>"._("invalid")."</font></b>").$add_str_info;
+
+          $smarty->assign($cert."info",$str);
+          $smarty->assign($cert."_state","true");
+        } else {
+          $smarty->assign($cert."info", "<i>"._("No certificate installed")."</i>");
+          $smarty->assign($cert."_state","");
+        }
+      }
+  
+      if($this->governmentmode){
+        $smarty->assign("honourIvbbAttributes", "true");
+      }else{
+        $smarty->assign("honourIvbbAttributes", "false");
+      }
+      $smarty->assign("governmentmode", $this->governmentmode);
+      return($smarty->fetch (get_template_path('generic_certs.tpl', TRUE, dirname(__FILE__))));
+    }
+
+    /* Prepare password hashes */
+    if ($this->pw_storage == ""){
+      $this->pw_storage= $this->config->get_cfg_value("passwordDefaultHash");
+    }
+
+    $temp= passwordMethod::get_available_methods();
+    $is_configurable= FALSE;
+    $hashes = $temp['name'];
+    if(isset($temp[$this->pw_storage])){
+      $test= new $temp[$this->pw_storage]($this->config);
+      $is_configurable= $test->is_configurable();
+    }else{
+      new msg_dialog(_("Password method"),_("The selected password method is no longer available."),WARNING_DIALOG);
+    }
+
+
+    /* Create password methods array */
+    $pwd_methods = array();
+    foreach($hashes as $id => $name){
+      if(!empty($temp['desc'][$id])){
+        $pwd_methods[$name] = $name." (".$temp['desc'][$id].")";
+      }else{
+        $pwd_methods[$name] = $name;
+      }
+    }
+ 
+    /* Load attributes and acl's */
+    $ui =get_userinfo();
+    foreach($this->attributes as $val){
+      $smarty->assign("$val", $this->$val);
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+    }
+    foreach(array("base","pw_storage","edit_picture") as $val){
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+    }
+
+    /* Set acls */
+    $tmp = $this->plinfo();
+    foreach($tmp['plProvidedAcls'] as $val => $translation){
+      $smarty->assign("$val"."ACL", $this->getacl($val,(!is_object($this->parent) && !session::is_set('edit'))));
+    }
+
+    // Special ACL for gosaLoginRestrictions - 
+    // In case of multiple edit, we need a readonly ACL for the list. 
+    $smarty->assign('gosaLoginRestriction_ONLY_R_ACL', 
+      preg_replace("/[^r]/i","", $this->getacl($val,(!is_object($this->parent) && !session::is_set('edit')))));
+
+    $smarty->assign("pwmode", $pwd_methods);
+    $smarty->assign("pwmode_select", $this->pw_storage);
+    $smarty->assign("pw_configurable", $is_configurable);
+    $smarty->assign("passwordStorageACL", $this->getacl("userPassword",(!is_object($this->parent) && !session::is_set('edit'))));
+
+    if(!session::is_set('edit')){
+      $smarty->assign("CertificatesACL","");
+    }else{
+      $smarty->assign("CertificatesACL",  $this->getacl("Certificate"));
+    }
+    
+    $smarty->assign("userPictureACL",   $this->getacl("userPicture",(!is_object($this->parent) && !session::is_set('edit'))));
+    $smarty->assign("userPicture_is_readable",   $this->acl_is_readable("userPicture",(!is_object($this->parent) && !session::is_set('edit'))));
+
+    /* Create base acls */
+    $smarty->assign("base", $this->baseSelector->render());
+
+    /* Save government mode attributes */
+    if($this->governmentmode){
+      $smarty->assign("governmentmode", "true");
+      $ivbbmodes= array("nein", "ivbv", "testa", "ivbv,testa", "internet",
+          "internet,ivbv", "internet,testa", "internet,ivbv,testa");
+      $smarty->assign("ivbbmodes", $ivbbmodes);
+      foreach ($this->govattrs as $val){
+        $smarty->assign("$val", $this->$val);
+        $smarty->assign("$val"."ACL", $this->getacl($val,(!is_object($this->parent) && !session::is_set('edit'))));
+      }
+    } else {
+      $smarty->assign("governmentmode", "false");
+    }
+
+    /* Special mode for uid */
+    $uidACL= $this->getacl("uid",(!is_object($this->parent) && !session::is_set('edit')));
+    if (isset ($this->dn)){
+      if ($this->dn != "new"){
+        $uidACL= preg_replace("/w/","",$uidACL);
+      }
+    }  else {
+      $uidACL= preg_replace("/w/","",$uidACL);
+    }
+    
+    $smarty->assign("uidACL", $uidACL);
+    $smarty->assign("is_template", $this->is_template);
+    $smarty->assign("use_dob", $this->use_dob);
+
+    if (isset($this->parent)){
+      if (isset($this->parent->by_object['phoneAccount']) &&
+          $this->parent->by_object['phoneAccount']->is_account){
+        $smarty->assign("has_phoneaccount", "true");
+      } else {
+        $smarty->assign("has_phoneaccount", "false");
+      }
+    } else {
+      $smarty->assign("has_phoneaccount", "false");
+    }
+    $smarty->assign("multiple_support" , $this->multiple_support_active);
+    $smarty->assign("manager_name",$this->manager_name);
+    return($smarty->fetch (get_template_path('generic.tpl', TRUE, dirname(__FILE__))));
+  }
+
+
+  /* remove object from parent */
+  function remove_from_parent()
+  {
+    /* Only remove valid accounts */
+    if(!$this->initially_was_account) return;
+
+    /* Remove password extension */
+    $temp= passwordMethod::get_available_methods();
+
+    /* Remove password method from user account */
+    if(isset($temp[$this->pw_storage]) && class_available($temp[$this->pw_storage])){
+      $this->pwObject= new $temp[$this->pw_storage]($this->config,$this->dn);
+      $this->pwObject->remove_from_parent();
+    }
+
+    /* Remove user */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->rmdir ($this->dn);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
+    }
+  
+    new log("remove","users/".get_class($this),$this->dn,$this->attributes,$ldap->get_error());
+  
+    /* Delete references to groups */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=posixGroup)(memberUid=".$this->uid."))", array("uid"));
+    while ($ldap->fetch()){
+      $g= new group($this->config, $ldap->getDN());
+      $g->removeUser($this->uid);
+      $g->save ();
+    }
+
+    /* Delete references to object groups */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter($this->dn)."))", array("cn"));
+    while ($ldap->fetch()){
+      $og= new ogroup($this->config, $ldap->getDN());
+      unset($og->member[$this->dn]);
+      $og->save ();
+    }
+
+    // Update 'manager' attributes from gosaDepartment and inetOrgPerson
+    $filter = "(&(objectClass=inetOrgPerson)(manager=".LDAP::prepare4filter($this->dn)."))";
+    $ocs = $ldap->get_objectclasses();
+    if(isset($ocs['gosaDepartment']['MAY']) && in_array('manager', $ocs['gosaDepartment']['MAY'])){
+      $filter = "(|".$filter."(&(objectClass=gosaDepartment)(manager=".LDAP::prepare4filter($this->dn).")))";
+    }
+    $leaf_deps=  get_list($filter,array("all"),$this->config->current['BASE'],
+        array("manager","dn","objectClass"),GL_SUBSEARCH | GL_NO_ACL_CHECK);
+    foreach($leaf_deps as $entry){
+      $update = array('manager' => array());
+      $ldap->cd($entry['dn']);
+      $ldap->modify($update);
+      if(!$ldap->success()){
+        trigger_error(sprintf("Failed to update manager for '%s', error was '%s'", $entry['dn'], $ldap->get_error()));
+      }
+    }
+
+    /* Delete references to roles */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=organizationalRole)(roleOccupant=".LDAP::prepare4filter($this->dn)."))", array("cn"));
+    while ($ldap->fetch()){
+      $role= new roleGeneric($this->config, $ldap->getDN());
+      $key = array_search($this->dn,$role->roleOccupant);
+      if($key !== FALSE){
+        unset($role->roleOccupant[$key]);
+        $role->roleOccupant= array_values($role->roleOccupant);
+        $role->save ();
+      }
+    }
+
+    /* If needed, let the password method do some cleanup */
+    $tmp = new passwordMethod($this->config);
+    $available = $tmp->get_available_methods();
+    if (in_array_ics($this->pw_storage, $available['name'])){
+      $test= new $available[$this->pw_storage]($this->config);
+      $test->attrs= $this->attrs;
+      $test->dn= $this->dn;
+      $test->remove_from_parent();
+    }
+
+    /* Remove ACL dependencies too */
+    acl::remove_acl_for($this->dn);
+
+    /* Optionally execute a command after we're done */
+    $this->handle_post_events("remove",array("uid" => $this->uid));
+  }
+
+
+  /* Save data to object */
+  function save_object()
+  {
+    if(isset($_POST['generic']) || isset($_POST['multiple_user_posted'])){
+
+      /* Make a backup of the current selected base */
+      $base_tmp = $this->base;
+
+      /* Parents save function */
+      plugin::save_object ();
+
+      /* Refresh base */
+      if ($this->acl_is_moveable($this->base)){
+        if (!$this->baseSelector->update()) {
+          msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+        }
+        if ($this->base != $this->baseSelector->getBase()) {
+          $this->base= $this->baseSelector->getBase();
+          $this->is_modified= TRUE;
+        }
+      }
+      
+      /* Sync lists */
+      $this->gosaLoginRestrictionWidget->save_object();
+      if ($this->gosaLoginRestrictionWidget->isModified()) {
+        $this->gosaLoginRestriction= array_values($this->gosaLoginRestrictionWidget->getMaintainedData());
+      }
+
+      /* Save government mode attributes */
+      if ($this->governmentmode){
+        foreach ($this->govattrs as $val){
+          if ($this->acl_is_writeable($val,(!is_object($this->parent) && !session::is_set('edit'))) && isset($_POST["$val"])){
+            $data= stripcslashes($_POST["$val"]);
+            if ($data != $this->$val){
+              $this->is_modified= TRUE;
+            }
+            $this->$val= $data;
+          }
+        }
+      }
+
+      /* In template mode, the uid is autogenerated... */
+      if ($this->is_template){
+        $this->uid= strtolower($this->sn);
+        $this->givenName= $this->sn;
+      }
+
+      /* Get pw_storage mode */
+      if (isset($_POST['pw_storage'])){
+        foreach(array("pw_storage") as $val){
+          if(isset($_POST[$val])){
+            $data= validate($_POST[$val]);
+            if ($data != $this->$val){
+              $this->is_modified= TRUE;
+            }
+            $this->$val= $data;
+          }
+        }
+      }
+
+      if($this->pw_storage != $this->last_pw_storage && isset($_POST['pw_storage'])){
+        if ($this->acl_is_writeable("userPassword")){
+          $temp= passwordMethod::get_available_methods();
+          if (!is_object($this->pwObject) || !($this->pwObject instanceOf $temp[$this->pw_storage])){
+            foreach($temp as $id => $data){
+              if(isset($data['name']) && $data['name'] == $this->pw_storage && $data['is_configurable']){
+                $this->pwObject= new $temp[$this->pw_storage]($this->config,$this->dn);
+                break;
+              }
+            }
+          }
+        }
+      }
+
+      /* Save current cn
+       */
+      $this->cn = $this->givenName." ".$this->sn;
+    }
+  }
+
+  function rebind($ldap, $referral)
+  {
+    $credentials= LDAP::get_credentials($referral, $this->config->current['REFERRAL']);
+    if (ldap_bind($ldap, $credentials['ADMIN'], $credentials['PASSWORD'])) {
+      $this->error = "Success";
+      $this->hascon=true;
+      $this->reconnect= true;
+      return (0);
+    } else {
+      $this->error = "Could not bind to " . $credentials['ADMIN'];
+      return NULL;
+    }
+  }
+
+  
+  /* Save data to LDAP, depending on is_account we save or delete */
+  function save()
+  {
+    global $lang;
+
+    /* Only force save of changes .... 
+       If this attributes aren't changed, avoid saving.
+     */
+  
+    if($this->gender=="0") $this->gender ="";
+    if($this->preferredLanguage=="0") $this->preferredLanguage ="";
+
+    /* First use parents methods to do some basic fillup in $this->attrs */
+    plugin::save ();
+
+    if ($this->dateOfBirth != ""){
+      if(!is_array($this->attrs['dateOfBirth'])) {
+        #TODO: use $lang to convert date
+        list($day, $month, $year)= explode(".", $this->dateOfBirth);
+        $this->attrs['dateOfBirth'] = sprintf("%04d-%02d-%02d", $year, $month, $day);
+      }
+    }
+
+    /* Remove additional objectClasses */
+    $tmp= array();
+    foreach ($this->attrs['objectClass'] as $key => $set){
+      $found= false;
+      foreach (array("ivbbentry", "gosaUserTemplate") as $val){
+        if (preg_match ("/^$set$/i", $val)){
+          $found= true;
+          break;
+        }
+      }
+      if (!$found){
+        $tmp[]= $set;
+      }
+    }
+
+    /* Replace the objectClass array. This is done because of the
+       separation into government and normal mode. */
+    $this->attrs['objectClass']= $tmp;
+
+    /* Add objectClasss for template mode? */
+    if ($this->is_template){
+      $this->attrs['objectClass'][]= "gosaUserTemplate";
+    }
+
+    /* Hard coded government mode? */
+    if ($this->governmentmode){
+      $this->attrs['objectClass'][]= "ivbbentry";
+
+      /* Copy standard attributes */
+      foreach ($this->govattrs as $val){
+        if ($this->$val != ""){
+          $this->attrs["$val"]= $this->$val;
+        } elseif (!$this->is_new) {
+          $this->attrs["$val"]= array();
+        }
+      }
+
+      /* Remove attribute if set to "nein" */
+      if ($this->publicVisible == "nein"){
+        $this->attrs['publicVisible']= array();
+        if($this->is_new){
+          unset($this->attrs['publicVisible']);
+        }else{
+          $this->attrs['publicVisible']=array();
+        }
+
+      }
+
+    }
+
+    /* Special handling for attribute userCertificate needed */
+    if ($this->userCertificate != ""){
+      $this->attrs["userCertificate;binary"]= $this->userCertificate;
+      $remove_userCertificate= false;
+    } else {
+      $remove_userCertificate= true;
+    }
+
+    /* Special handling for dateOfBirth value */
+    if ($this->dateOfBirth == ""){
+      if ($this->is_new) {
+        unset($this->attrs["dateOfBirth"]);
+      } else {
+        $this->attrs["dateOfBirth"]= array();
+      }
+    }
+    if (!$this->gender){
+      if ($this->is_new) {
+        unset($this->attrs["gender"]);
+      } else {
+        $this->attrs["gender"]= array();
+      }
+    }
+    if (!$this->preferredLanguage){
+      if ($this->is_new) {
+        unset($this->attrs["preferredLanguage"]);
+      } else {
+        $this->attrs["preferredLanguage"]= array();
+      }
+    }
+
+    /* Special handling for attribute jpegPhote needed, scale image via
+       image magick to 147x200 pixels and inject resulting data. */
+    if ($this->jpegPhoto == "*removed*"){
+    
+      /* Reset attribute to avoid writing *removed* as value */    
+      $this->attrs["jpegPhoto"] = array();
+
+    } else {
+
+      /* Fallback if there's no image magick inside PHP */
+      if (!function_exists("imagick_blob2image")){
+        /* Get temporary file name for conversation */
+        $fname = tempnam (TEMP_DIR, "GOsa");
+  
+        /* Open file and write out photoData */
+        $fp = fopen ($fname, "w");
+        fwrite ($fp, $this->photoData);
+        fclose ($fp);
+
+        /* Build conversation query. Filename is generated automatically, so
+           we do not need any special security checks. Exec command and save
+           output. For PHP safe mode, you'll need a configuration which respects
+           image magick as executable... */
+        $query= "convert -size 147x200 $fname -resize 147x200 +profile \"*\" -";
+        @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $query, "Execute");
+  
+        /* Read data written by convert */
+        $output= "";
+        $sh= popen($query, 'r');
+        while (!feof($sh)){
+          $output.= fread($sh, 4096);
+        }
+        pclose($sh);
+
+        unlink($fname);
+
+        /* Save attribute */
+        $this->attrs["jpegPhoto"] = $output;
+
+      } else {
+
+        /* Load the new uploaded Photo */
+        if(!$handle  =  imagick_blob2image($this->photoData))  {
+          new log("debug","users/".get_class($this),$this->dn,array(),"Could not access uploaded image");
+        }
+
+        /* Resizing image to 147x200 and blur */
+        if(!imagick_resize($handle,147,200,IMAGICK_FILTER_GAUSSIAN,0)){
+          new log("debug","users/".get_class($this),$this->dn,array(),"Could not resize uploaded image");
+        }
+
+        /* Converting image to JPEG */
+        if(!imagick_convert($handle,"JPEG")) {
+          new log("debug","users/".get_class($this),$this->dn,array(),"Could not convert uploaded image to jepg");
+        }
+
+        /* Creating binary Code for the Image */
+        if(!$dump = imagick_image2blob($handle)){
+          new log("debug","users/".get_class($this),$this->dn,array(),"Could not create new user image");
+        }
+
+        /* Sending Image */
+        $output=  $dump;
+
+        /* Save attribute */
+        $this->attrs["jpegPhoto"] = $output;
+      }
+
+    }
+
+    /* This only gets called when user is renaming himself */
+    $ldap= $this->config->get_ldap_link();
+    if ($this->dn != $this->new_dn){
+
+      /* Write entry on new 'dn' */
+      $this->update_acls($this->dn,$this->new_dn);
+      $this->move($this->dn, $this->new_dn);
+
+      /* Happen to use the new one */
+      change_ui_dn($this->dn, $this->new_dn);
+      $this->dn= $this->new_dn;
+    }
+
+
+    /* Save data. Using 'modify' implies that the entry is already present, use 'add' for
+       new entries. So do a check first... */
+    $ldap->cat ($this->dn, array('dn'));
+    if ($ldap->fetch()){
+      $mode= "modify";
+    } else {
+      $mode= "add";
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
+    }
+
+    /* Set password to some junk stuff in case of templates */
+    if ($this->is_template){
+      $temp= passwordMethod::get_available_methods();
+      foreach($temp as $id => $data){
+        if(isset($data['name']) && $data['name'] == $this->pw_storage){
+          $tmp = new  $temp[$this->pw_storage]($this->config,$this->dn);
+          $tmp->set_hash($this->pw_storage);
+          $this->attrs['userPassword'] = $tmp->create_template_hash($this->attrs);
+          break;
+        }
+      }
+    }
+
+    @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
+        $this->attributes, "Save via $mode");
+
+    /* Finally write data with selected 'mode' */
+    $this->cleanup();
+
+    /* Update current locale settings, if we have edited ourselves */
+    $ui = session::get('ui');
+    if(isset($this->attrs['preferredLanguage']) && $this->dn == $ui->dn){
+      $ui->language = $this->preferredLanguage;
+      session::set('ui',$ui);
+      session::set('Last_init_lang',"update");
+    }
+
+    $ldap->cd ($this->dn);
+    $ldap->$mode ($this->attrs);
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
+      return (1);
+    }
+
+    /* Remove ACL dependencies too */
+    if($this->dn != $this->orig_dn && $this->orig_dn != "new"){
+      $tmp = new acl($this->config,$this->parent,$this->dn);
+      $tmp->update_acl_membership($this->orig_dn,$this->dn);
+    }
+
+    if($mode == "modify"){
+      new log("modify","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      new log("create","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    /* Remove cert? 
+       For some reason, the 'ldap' class doesn't want to remove binary entries, so I need
+       to work around myself. */
+    if ($remove_userCertificate == true && !$this->is_new && $this->had_userCertificate){
+
+      /* Reset array, assemble new, this should be reworked */
+      $this->attrs= array();
+      $this->attrs['userCertificate;binary']= array();
+
+      /* Prepare connection */
+      if (!($ds = ldap_connect($this->config->current['SERVER']))) {
+        die ("Could not connect to LDAP server");
+      }
+      ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+      if (function_exists("ldap_set_rebind_proc") && $this->config->get_cfg_value("ldapFollowReferrals") == "true") {
+        ldap_set_option($this->cid, LDAP_OPT_REFERRALS, 1);
+        ldap_set_rebind_proc($ds, array(&$this, "rebind"));
+      }
+      if($this->config->get_cfg_value("ldapTLS") == "true"){
+        ldap_start_tls($ds);
+      }
+      if (!($res = @ldap_bind($ds, $this->config->current['ADMIN'],
+              $this->config->current['PASSWORD']))) {
+        die ("Could not bind to LDAP");
+      }
+
+      /* Modify using attrs */
+      ldap_mod_del($ds,$this->dn,$this->attrs);
+      ldap_close($ds);
+    }
+
+    /* If needed, let the password method do some cleanup */
+    if ($this->pw_storage != $this->last_pw_storage){
+      $tmp = new passwordMethod($this->config);
+      $available = $tmp->get_available_methods();
+      if (in_array_ics($this->last_pw_storage, $available['name'])){
+        $test= new $available[$this->last_pw_storage]($this->config,$this->dn);
+        $test->attrs= $this->attrs;
+        $test->remove_from_parent();
+      }
+    }
+
+    /* Maybe the current password method want's to do some changes... */
+    if (is_object($this->pwObject)){
+      $this->pwObject->save($this->dn);
+    }
+
+    /* Optionally execute a command after we're done */
+    if ($mode == "add"){
+      $this->handle_post_events("add", array("uid" => $this->uid));
+    } elseif ($this->is_modified){
+      $this->handle_post_events("modify", array("uid" => $this->uid));
+    }
+
+    return (0);
+  }
+
+
+  function create_initial_rdn($pattern)
+  {
+    // Only generate single RDNs
+    if (preg_match('/\+/', $pattern)){
+      msg_dialog::display(_("Error"), _("Cannot build RDN: no + allowed to build sub RDN!"), ERROR_DIALOG);
+      return "";
+    }
+
+    // Extract attribute
+    $attribute= preg_replace('/=.*$/', '', $pattern);
+    if (!in_array_ics($attribute, $this->attributes)) {
+      msg_dialog::display(_("Error"), _("Cannot build RDN: attribute is not defined!"), ERROR_DIALOG);
+      return "";
+    }
+
+    // Sort attributes for length
+    $attrl= array();
+    foreach ($this->attributes as $attr) {
+      $attrl[$attr]= strlen($attr);
+    }
+    arsort($attrl);
+    
+    // Walk thru sorted attributes and replace them in pattern
+    foreach ($attrl as $attr => $dummy) {
+      if (!is_array($this->$attr)){
+        $pattern= preg_replace("/%$attr/", $this->$attr, $pattern);
+      } else {
+        // Array elements cannot be used for ID generation
+        if (preg_match("/%$attr/", $pattern)) {
+          msg_dialog::display(_("Error"), _("Cannot build RDN: invalid attribute parameters!"), ERROR_DIALOG);
+          break;
+        }
+      }
+    }
+
+    // Internally assign value
+    $this->$attribute= preg_replace('/^[^=]+=/', '', $pattern);
+
+    return $pattern;
+  }
+
+  
+  function update_new_dn()
+  {
+    // Alternative way to handle DN
+    $pattern= $this->config->get_cfg_value("accountRDN");
+    if ($pattern != "") {
+      $rdn= $this->create_initial_rdn($pattern);
+      $attribute= preg_replace('/=.*$/', '', $rdn);
+      $value= preg_replace('/^[^=]+=$/', '', $rdn);
+
+      /* Don't touch dn, if $attribute hasn't changed */
+      if (isset($this->saved_attributes[$attribute]) && $this->saved_attributes[$attribute] == $this->$attribute &&
+            $this->orig_base == $this->base ){
+        $this->new_dn= $this->dn;
+      } else {
+        $this->new_dn= $this->create_unique_dn2($rdn, get_people_ou().$this->base);
+      }
+
+    // Original way to handle DN
+    } else {
+
+      $pt= "";
+      if($this->config->get_cfg_value("personalTitleInDN") == "true"){
+        if(!empty($this->personalTitle)){
+          $pt = $this->personalTitle." ";
+        }
+      }
+
+      $this->cn= $pt.$this->givenName." ".$this->sn;
+
+      /* Permissions for that base? */
+      if ($this->config->get_cfg_value("accountPrimaryAttribute") == "uid"){
+        $this->new_dn= 'uid='.$this->uid.','.get_people_ou().$this->base;
+      } else {
+        /* Don't touch dn, if cn hasn't changed */
+        if (isset($this->saved_attributes['cn']) && $this->saved_attributes['cn'] == $this->cn &&
+            $this->orig_base == $this->base ){
+          $this->new_dn= $this->dn;
+        } else {
+          $this->new_dn= $this->create_unique_dn('cn', get_people_ou().$this->base);
+        }
+      }
+    }
+  }
+  
+
+  /* Check formular input */
+  function check()
+  {
+    /* Call common method to give check the hook */
+    $message= plugin::check();
+
+    /* Configurable password methods should be configured initially. 
+     */ 
+    if($this->last_pw_storage != $this->pw_storage){
+      $temp= passwordMethod::get_available_methods();
+      foreach($temp['name'] as $id => $name){
+        if($name == $this->pw_storage){
+          if($temp['is_configurable'][$id] && !$this->pwObject instanceof $temp[$name] ){
+            $message[] = _("The selected password method requires initial configuration!");
+          }
+          break;
+        }
+      }
+    }
+
+    $this->update_new_dn();
+
+    /* Set the new acl base */
+    if($this->dn == "new") {
+      $this->set_acl_base($this->base);
+    }
+
+    /* Check if we are allowed to create/move this user */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[]= msgPool::permCreate();
+    }elseif($this->orig_dn != "new" && $this->new_dn != $this->orig_dn && !$this->acl_is_moveable($this->base)){
+      $message[]= msgPool::permMove();
+    }
+
+    /* UID already used? */
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(uid=$this->uid)", array("uid"));
+    $ldap->fetch();
+    if ($ldap->count() != 0 && $this->dn == 'new'){
+      $message[]= msgPool::duplicated(_("Login"));
+    }
+
+    /* In template mode, the uid and givenName are autogenerated... */
+    if ($this->sn == ""){
+      $message[]= msgPool::required(_("Name"));
+    }
+
+    // Check if a wrong base was supplied
+    if(!$this->baseSelector->checkLastBaseUpdate()){
+      $message[]= msgPool::check_base();;
+    }
+
+    if (!$this->is_template){
+      if ($this->givenName == ""){
+        $message[]= msgPool::required(_("Given name"));
+      }
+      if ($this->uid == ""){
+        $message[]= msgPool::required(_("Login"));
+      }
+      if ($this->config->get_cfg_value("accountPrimaryAttribute") != "uid"){
+        $ldap->cat($this->new_dn);
+        if ($ldap->count() != 0 && $this->dn != $this->new_dn && $this->dn == 'new'){
+          $message[]= msgPool::duplicated(_("Name"));
+        }
+      }
+    }
+
+    /* Check for valid input */
+    if ($this->is_modified && !tests::is_uid($this->uid)){
+
+      if (strict_uid_mode()){
+        $message[]= msgPool::invalid(_("Login"), $this->uid, "/[a-z0-9_-]/");
+      } else {
+        $message[]= msgPool::invalid(_("Login"), $this->uid, "/[a-z0-9_-]/i");
+      }
+    }
+    if (!tests::is_url($this->labeledURI)){
+      $message[]= msgPool::invalid(_("Homepage"), "", "", "http://www.your-domain.com/yourname");
+    }
+
+    /* Check phone numbers */
+    if (!tests::is_phone_nr($this->telephoneNumber)){
+      $message[]= msgPool::invalid(_("Phone"), $this->telephoneNumber, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->facsimileTelephoneNumber)){
+      $message[]= msgPool::invalid(_("Fax"), $this->facsimileTelephoneNumber, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->mobile)){
+      $message[]= msgPool::invalid(_("Mobile"), $this->mobile, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->pager)){
+      $message[]= msgPool::invalid(_("Pager"), $this->pager, "/[\/0-9 ()+*-]/");
+    }
+
+    /* Check dates */
+    if (!tests::is_date($this->dateOfBirth)){
+      $message[]= msgPool::invalid(_("Date of birth"), $this->dateOfBirth,"" ,"23.02.2009");
+    }
+
+    /* Check for reserved characers */
+    if (preg_match ('/[,+"?\'()=<>;\\\\]/', $this->givenName)){
+      $message[]= msgPool::invalid(_("Given name"), $this->givenName, '/[^,+"?\'()=<>;\\\\]/');
+    }
+    if (preg_match ('/[,+"?\'()=<>;\\\\]/', $this->sn)){
+      $message[]= msgPool::invalid(_("Name"), $this->sn, '/[^,+"?\'()=<>;\\\\]/');
+    }
+
+    return $message;
+  }
+
+
+  /* Indicate whether a password change is needed or not */
+  function password_change_needed()
+  {
+    if($this->multiple_support_active){
+      return(FALSE);
+    }else{
+
+      if(in_array("pw_storage",$this->multi_boxes)){
+        return(TRUE);
+      }
+      return($this->pw_storage != $this->last_pw_storage && !$this->is_template);
+    }
+  }
+
+
+  /* Load a jpegPhoto from LDAP, this is going to be simplified later on */
+  function load_picture()
+  {
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd ($this->dn);
+    $data = $ldap->get_attribute($this->dn,"jpegPhoto");
+
+    if((!$data) || ($data == "*removed*")){ 
+
+      /* In case we don't get an entry, load a default picture */
+      $this->set_picture ();
+      $this->jpegPhoto= "*removed*";
+    }else{
+
+      /* Set picture */
+      $this->photoData= $data;
+      session::set('binary',$this->photoData);
+      session::set('binarytype',"image/jpeg");
+      $this->jpegPhoto= "";
+    }
+  }
+
+
+  /* Load a certificate from LDAP, this is going to be simplified later on */
+  function load_cert()
+  {
+    $ds= ldap_connect($this->config->current['SERVER']);
+    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+    if (function_exists("ldap_set_rebind_proc") && $this->config->get_cfg_value("ldapFollowReferrals") == "true"){
+      ldap_set_option($this->cid, LDAP_OPT_REFERRALS, 1);
+      ldap_set_rebind_proc($ds, array(&$this, "rebind"));
+    }
+    if ($this->config->get_cfg_value("ldapTLS") == "true"){
+      ldap_start_tls($ds);
+    }
+
+    $r= ldap_bind($ds);
+    $sr= @ldap_read($ds, $this->dn, "userCertificate=*", array("userCertificate"));
+
+    if ($sr) {
+      $ei= @ldap_first_entry($ds, $sr);
+      
+      if ($ei) {
+        if (!$info = @ldap_get_values_len($ds, $ei, "userCertificate;binary")){
+          $this->userCertificate= "";
+        } else {
+          $this->userCertificate= $info[0];
+        }
+      }
+    } else {
+      $this->userCertificate= "";
+    }
+
+    ldap_unbind($ds);
+  }
+
+
+  /* Load picture from file to object */
+  function set_picture($filename ="")
+  {
+    if (!is_file($filename) || $filename =="" ){
+      $filename= "./plugins/users/images/default.jpg";
+      $this->jpegPhoto= "*removed*";
+    }
+
+    $fd = fopen ($filename, "rb");
+    $this->photoData= fread ($fd, filesize ($filename));
+    session::set('binary',$this->photoData);
+    session::set('binarytype',"image/jpeg");
+    $this->jpegPhoto= "";
+
+    fclose ($fd);
+  }
+
+
+  /* Load certificate from file to object */
+  function set_cert($cert, $filename)
+  {
+    if(!$this->acl_is_writeable("Certificate",(!is_object($this->parent) && !session::is_set('edit')))) return;
+    $fd = fopen ($filename, "rb");
+    if (filesize($filename)>0) {
+      $this->$cert= fread ($fd, filesize ($filename));
+      fclose ($fd);
+      $this->is_modified= TRUE;
+    } else {
+      msg_dialog::display(_("Error"), _("Cannot open certificate!"), ERROR_DIALOG);
+    }
+  }
+
+  /* Adapt from given 'dn' */
+  function adapt_from_template($dn, $skip= array())
+  {
+    plugin::adapt_from_template($dn, $skip);
+
+    /* Get password method from template 
+     */
+    $tmp= passwordMethod::get_method($this->attrs['userPassword'][0]);
+    if(is_object($tmp)){
+      if($tmp->is_configurable()){
+        $tmp->adapt_from_template($dn);
+        $this->pwObject = &$tmp;
+      }
+      $this->pw_storage= $tmp->get_hash();
+    }
+
+    /* Get base */
+    $this->base= preg_replace('/^[^,]+,'.preg_quote(get_people_ou(), '/').'/i', '', $dn);
+
+    if($this->governmentmode){
+
+      /* Walk through govattrs */
+      foreach ($this->govattrs as $val){
+
+        if (in_array($val, $skip)){
+          continue;
+        }
+
+        if (isset($this->attrs["$val"][0])){
+
+          /* If attribute is set, replace dynamic parts: 
+             %sn, %givenName and %uid. Fill these in our local variables. */
+          $value= $this->attrs["$val"][0];
+
+          foreach (array("sn", "givenName", "uid") as $repl){
+            if (preg_match("/%$repl/i", $value)){
+              $value= preg_replace ("/%$repl/i",
+                  $this->parent->$repl, $value);
+            }
+          }
+          $this->$val= $value;
+        }
+      }
+    }
+
+    /* Get back uid/sn/givenName - only write if nothing's skipped */
+    if ($this->parent !== NULL && count($skip) == 0){
+      $this->uid= $this->parent->uid;
+      $this->sn= $this->parent->sn;
+      $this->givenName= $this->parent->givenName;
+    }
+
+    if ($this->dateOfBirth) {
+      /* This entry is ISO 8601 conform */
+      list($year, $month, $day)= explode("-", $this->dateOfBirth, 3);
+    
+      #TODO: use $lang to convert date
+      $this->dateOfBirth= "$day.$month.$year";
+    }
+  }
+
+ 
+  /* This avoids that users move themselves out of their rights. 
+   */
+  function allowedBasesToMoveTo()
+  {
+    /* Get bases */
+    $bases  = $this->get_allowed_bases();
+    return($bases);
+  } 
+
+
+  function getCopyDialog()
+  {
+    $str = "";
+
+    session::set('binary',$this->photoData); 
+    session::set('binarytype',"image/jpeg");
+
+    /* Get random number for pictures */
+    srand((double)microtime()*1000000); 
+    $rand = rand(0, 10000);
+
+    $smarty = get_smarty();
+
+    $smarty->assign("passwordTodo","clear");
+
+    if(isset($_POST['passwordTodo'])){
+      $smarty->assign("passwordTodo",$_POST['passwordTodo']);
+    }
+
+    $smarty->assign("sn",       $this->sn);
+    $smarty->assign("givenName",$this->givenName);
+    $smarty->assign("uid",      $this->uid);
+    $smarty->assign("rand",     $rand);
+    $str = $smarty->fetch(get_template_path("paste_generic.tpl",TRUE,dirname(__FILE__)));
+
+
+    $ret = array();
+    $ret['string'] = $str;
+    $ret['status'] = "";  
+    return($ret);
+  }
+
+  function saveCopyDialog()
+  {
+    /* Set_acl_base */
+    $this->set_acl_base($this->base);
+
+    if((isset($_FILES['picture_file']['tmp_name'])) && ($_FILES['picture_file']['size'] > 0)){
+      $this->set_picture($_FILES['picture_file']['tmp_name']);
+    }
+
+    /* Remove picture? */
+    if (isset($_POST['picture_remove'])){
+      $this->jpegPhoto= "*removed*";
+      $this->set_picture ("./plugins/users/images/default.jpg");
+      $this->is_modified= TRUE;
+    }
+
+    $attrs = array("uid","givenName","sn");
+    foreach($attrs as $attr){
+      if(isset($_POST[$attr])){
+        $this->$attr = $_POST[$attr];
+      }
+    } 
+  }
+
+
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+
+    /* Reset certificate information addepted from source user
+       to avoid setting the same user certificate for the destination user. */
+    $this->userPKCS12= "";
+    $this->userSMIMECertificate= "";
+    $this->userCertificate= "";
+    $this->certificateSerialNumber= "";
+    $this->old_certificateSerialNumber= "";
+    $this->old_userPKCS12= "";
+    $this->old_userSMIMECertificate= "";
+    $this->old_userCertificate= "";
+
+    /* Generate dateOfBirth entry */
+    if (isset ($source['dateOfBirth'])){
+        list($year, $month, $day)= explode("-", $source['dateOfBirth'][0], 3);
+        $this->dateOfBirth= "$day.$month.$year";
+    } else {
+        $this->dateOfBirth= "";
+    }
+
+    // Try to load the user picture
+    $tmp_dn = $this->dn;
+    $this->dn = $source['dn'];
+    $this->load_picture();
+    $this->dn = $tmp_dn;
+  }
+
+
+  static function plInfo()
+  {
+  
+    $govattrs= array(
+        "gouvernmentOrganizationalUnit"             =>  _("Unit"), 
+        "houseIdentifier"                           =>  _("House identifier"), 
+        "vocation"                                  =>  _("Vocation"),
+        "ivbbLastDeliveryCollective"                =>  _("Last delivery"), 
+        "gouvernmentOrganizationalPersonLocality"   =>  _("Person locality"),
+        "gouvernmentOrganizationalUnitDescription"  =>  _("Unit description"),
+        "gouvernmentOrganizationalUnitSubjectArea"  =>  _("Subject area"),
+        "functionalTitle"                           =>  _("Functional title"),
+        "certificateSerialNumber"                   =>  _("Certificate serial number"),
+        "publicVisible"                             =>  _("Public visible"),
+        "street"                                    =>  _("Street"),
+        "role"                                      =>  _("Role"),
+        "postalCode"                                =>  _("Postal code"));
+
+    $ret = array(
+        "plShortName" => _("Generic"),
+        "plDescription" => _("Generic user settings"),
+        "plSelfModify"  => TRUE,
+        "plDepends"     => array(),
+        "plPriority"    => 1,
+        "plSection"     => array("personal" => _("My account")),
+        "plCategory"    => array("users" => array("description" => _("Users"),
+                                                  "objectClass" => "gosaAccount")),
+
+        "plProvidedAcls" => array(
+
+          "sn"                => _("Surname"),
+          "givenName"         => _("Given name"),
+          "uid"               => _("User identification"),
+          "personalTitle"     => _("Personal title"),
+          "academicTitle"     => _("Academic title"),
+
+          "dateOfBirth"       => _("Date of birth"),
+          "gender"            => _("Sex"),
+          "preferredLanguage" => _("Preferred language"),
+          "base"              => _("Base"), 
+
+          "userPicture"       => _("User picture"),
+
+          "gosaLoginRestriction" => _("Login restrictions"),         
+
+          "o"                 => _("Organization"),
+          "ou"                => _("Department"),
+          "departmentNumber"  => _("Department number"),
+          "manager"           => _("Manager"),
+          "employeeNumber"    => _("Employee number"),
+          "employeeType"      => _("Employee type"),
+
+          "roomNumber"        => _("Room number"),
+          "telephoneNumber"   => _("Telefon number"),
+          "pager"             => _("Pager number"),
+          "mobile"            => _("Mobile number"),
+          "facsimileTelephoneNumber"     => _("Fax number"),
+
+          "st"                => _("State"),
+          "l"                 => _("Location"),
+          "postalAddress"     => _("Postal address"),
+
+          "homePostalAddress" => _("Home postal address"),
+          "homePhone"         => _("Home phone number"),
+          "labeledURI"        => _("Homepage"),
+          "userPassword"      => _("User password method"), 
+          "Certificate"       => _("User certificates"))
+
+        );
+
+    /* Append government attributes if required */
+    global $config;
+    if($config->get_cfg_value("honourIvbbAttributes") == "true"){
+      foreach($govattrs as $attr => $desc){
+        $ret["plProvidedAcls"][$attr] = $desc;
+      }
+    }
+    return($ret);
+  }
+
+  function get_multi_edit_values()
+  {
+    $ret = plugin::get_multi_edit_values();
+    if(in_array("pw_storage",$this->multi_boxes)){
+      $ret['pw_storage'] = $this->pw_storage;
+    }
+    if(in_array("edit_picture",$this->multi_boxes)){
+      $ret['jpegPhoto'] = $this->jpegPhoto;
+      $ret['photoData'] = $this->photoData;
+      $ret['old_jpegPhoto'] = $this->old_jpegPhoto;
+      $ret['old_photoData'] = $this->old_photoData;
+    }
+    if(isset($ret['dateOfBirth'])){
+      unset($ret['dateOfBirth']);
+    }
+    if(isset($ret['cn'])){
+      unset($ret['cn']);
+    }
+    $ret['is_modified'] = $this->is_modified;
+    if(in_array("base",$this->multi_boxes)){
+      $ret['orig_base']="Changed_by_Multi_Plug";
+      $ret['base']=$this->base;
+    }
+
+    $ret['gosaLoginRestriction'] = $this->gosaLoginRestriction;
+    $ret['gosaLoginRestriction_some'] = $this->gosaLoginRestriction_some;
+
+    return($ret); 
+  }
+
+
+  function multiple_save_object()
+  {
+
+    if(!isset($_POST['user_mulitple_edit'])) return;
+
+    plugin::multiple_save_object();
+
+    /* Get pw_storage mode */
+    if (isset($_POST['pw_storage'])){
+      foreach(array("pw_storage") as $val){
+        if(isset($_POST[$val])){
+          $data= validate(get_post($val));
+          if ($data != $this->$val){
+            $this->is_modified= TRUE;
+          }
+          $this->$val= $data;
+        }
+      }
+    }
+  
+    /* Refresh base */
+    if ($this->acl_is_moveable($this->base)){
+      if (!$this->baseSelector->update()) {
+        msg_dialog::display(_("Error"), msgPool::permMove(), ERROR_DIALOG);
+      }
+      if ($this->base != $this->baseSelector->getBase()) {
+        $this->base= $this->baseSelector->getBase();
+      }
+    }
+
+    if(isset($_POST['user_mulitple_edit'])){
+      foreach(array("base","pw_storage","edit_picture") as $val){
+        if(isset($_POST["use_".$val])){
+          $this->multi_boxes[] = $val;
+        }
+      }
+    }
+
+    /* Sync lists */
+    $this->gosaLoginRestrictionWidget->save_object();
+    if ($this->gosaLoginRestrictionWidget->isModified()) {
+      $this->gosaLoginRestriction= array_values($this->gosaLoginRestrictionWidget->getMaintainedData());
+    }
+  }
+
+  
+  function multiple_check()
+  {
+    /* Call check() to set new_dn correctly ... */
+    $message = plugin::multiple_check();
+
+    /* Set the new acl base */
+    if($this->dn == "new") {
+      $this->set_acl_base($this->base);
+    }
+    if (!tests::is_url($this->labeledURI) && in_array("labeledURI",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Homepage"));
+    }
+    if (!tests::is_phone_nr($this->telephoneNumber) && in_array("telephoneNumber",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Phone"), $this->telephoneNumber, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->facsimileTelephoneNumber) &&  in_array("facsimileTelephoneNumber",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Fax"), $this->facsimileTelephoneNumber, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->mobile) && in_array("mobile",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Mobile"), $this->mobile, "/[\/0-9 ()+*-]/");
+    }
+    if (!tests::is_phone_nr($this->pager) && in_array("pager",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Pager"), $this->pager, "/[\/0-9 ()+*-]/");
+    }
+    if (preg_match ('/[,+"?\'()=<>;\\\\]/', $this->givenName) && in_array("givenName",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Given name"), $this->giveName, '/[^,+"?\'()=<>;\\\\]/');
+    }
+    if (preg_match ('/[,+"?\'()=<>;\\\\]/', $this->sn) && in_array("sn",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Name"), $this->sn, '/[^,+"?\'()=<>;\\\\]/');
+    }
+    return($message);
+  }
+
+
+
+  function multiple_execute()
+  {
+    return($this->execute());
+  }
+
+
+  /*! \brief  Prepares the plugin to be used for multiple edit
+   *          Update plugin attributes with given array of attribtues.
+   *  \param  array   Array with attributes that must be updated.
+   */
+  function init_multiple_support($attrs,$all)
+  {
+    plugin::init_multiple_support($attrs,$all);
+
+    // Get login restrictions
+    if(isset($attrs['gosaLoginRestriction'])){
+      $this->gosaLoginRestriction  =array();
+      for($i =0;$i < $attrs['gosaLoginRestriction']['count']; $i++){
+        $this->gosaLoginRestriction[] = $attrs['gosaLoginRestriction'][$i];
+      }
+    }
+
+    // Detect the managers name
+    $this->manager_name = "";
+    $ldap = $this->config->get_ldap_link();
+    if(!empty($this->manager)){
+      $ldap->cat($this->manager, array('cn'));
+      if($ldap->count()){
+        $attrs = $ldap->fetch();
+        $this->manager_name = $attrs['cn'][0];
+      }else{
+        $this->manager_name = "("._("Unknown")."!): ".$this->manager;
+      }
+    }
+
+    // Detect login restriction not used in all user objects.
+    $this->gosaLoginRestriction_some = array();
+    if(isset($all['gosaLoginRestriction'])){
+      for($i=0;$i<$all['gosaLoginRestriction']['count'];$i++){
+        $this->gosaLoginRestriction_some[] = $all['gosaLoginRestriction'][$i];
+      }
+    }
+
+
+    // Reinit the login restriction list.
+    $data = $this->convertLoginRestriction();
+    if(count($data)){
+      $this->gosaLoginRestrictionWidget->setListData($data['data'], $data['displayData']);
+    }
+  }
+
+
+  function set_multi_edit_values($attrs)
+  {
+    $lR = array();
+
+    // Update loginRestrictions, keep my settings while ip is optional
+    foreach($attrs['gosaLoginRestriction_some'] as $ip){
+      if(in_array($ip, $this->gosaLoginRestriction) && in_array($ip, $attrs['gosaLoginRestriction'])){
+        $lR[] = $ip;
+      }
+    }
+
+    // Add enforced loginRestrictions 
+    foreach($attrs['gosaLoginRestriction'] as $ip){
+      $lR[] = $ip;
+    }
+
+    $lR = array_values(array_unique($lR));
+    $this->is_modified |=  array_differs($this->gosaLoginRestriction, $lR);
+    plugin::set_multi_edit_values($attrs);
+    $this->gosaLoginRestriction = $lR;
+  }
+
+
+  function convertLoginRestriction()
+  {
+    $all = array_unique(array_merge($this->gosaLoginRestriction,$this->gosaLoginRestriction_some));
+    $data = array();
+    foreach($all as $ip){
+      $data['data'][] = $ip;
+      if(!in_array($ip, $this->gosaLoginRestriction)){
+        $data['displayData'][] = array('mode' => LIST_MARKED , 'data' => array($ip.' ('._("Entries differ").')'));
+      }else{
+        $data['displayData'][] = array('mode' => 0 , 'data' => array($ip));
+      }
+    }   
+    return($data);
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/generic/generic.tpl b/gosa-core/plugins/personal/generic/generic.tpl
new file mode 100644
index 0000000..517218e
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/generic.tpl
@@ -0,0 +1,634 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding="4" border="0">
+
+ <!-- Headline container -->
+ <tr>
+  <td colspan="4">
+   <h2><img alt="" align="middle" src="plugins/generic/images/head.png" class="center"> {t}Personal information{/t}</h2>
+  </td>
+ </tr>
+
+ <!-- Base 1 container -->
+ <tr>
+
+  <!-- Image container -->
+	<!-- Image container -->
+	<td style="vertical-align:top">
+	  <table>
+	   <tr>
+		<td width="147" height="200" bgcolor="gray">
+		{if !$userPicture_is_readable}
+			<img class='center' border="0" width="100%" src="plugins/users/images/default.jpg" alt="{t}Personal picture{/t}">
+		{else}
+			<img class='center' border="0" width="100%" src="getbin.php?rand={$rand}" alt="{t}Personal picture{/t}">
+		{/if}
+		</td>
+	   </tr>
+	   <tr>
+		<td>
+{render acl=$userPictureACL checkbox=$multiple_support checked=$use_edit_picture}
+		 	<input style='vertical-align:top;' type="submit" name="edit_picture" value="{t}Change picture{/t}...">
+{/render}
+		</td>
+	   </tr>
+	  </table>
+	</td>
+	<!--
+	Old image container, with incorrect image scaling.
+  <td style="vertical-align:top">
+   <img align="bottom" border="1" width="145" height="200" src="getbin.php?rand={$rand}" alt="{t}Personal picture{/t}">
+   <br>
+   <input type="submit" name="edit_picture" value="{t}Change picture{/t}...">
+  </td>
+	-->
+
+  <!-- Name, ... -->
+  <td style="vertical-align:top;">
+   <table summary=""> 
+    {if $is_template ne "true"}
+    <tr>
+     <td><label for="sn">{t}Last name{/t}{$must}</label></td>
+     <td>
+{if $multiple_support}
+	 <input type="text" id="sn" name="dummy2" size=25 maxlength=60 value="{t}Multiple edit{/t}" disabled>
+{else}
+{render acl=$snACL}
+	 <input type="text" id="sn" name="sn" size=25 maxlength=60 value="{$sn}">
+{/render}
+{/if}
+	 </td>
+    </tr>
+    {else}
+    <tr>
+     <td><label for="sn">{t}Template name{/t}{$must}</label></td>
+     <td>{render acl=$snACL}<input type="text" id="sn" name="sn" size=25 maxlength=60 value="{$sn}">{/render}</td>
+    </tr>
+    {/if}
+
+    {if $is_template ne "true"}
+    <tr>
+     <td><label for="givenName">{t}First name{/t}{$must}</label></td>
+     <td>
+
+{if $multiple_support}
+	 <input type="text" id="givenName" name="dummy3" size=25 maxlength=60 value="{t}Multiple edit{/t}" disabled>
+{else}
+{render acl=$givenNameACL}
+	 <input type="text" id="givenName" name="givenName" size=25 maxlength=60 value="{$givenName}">
+{/render}
+{/if}
+	 </td>
+    </tr>
+    <tr>
+     <td><label for="uid">{t}Login{/t}{$must}</label></td>
+     <td>
+		{if !$multiple_support}
+{render acl=$uidACL}
+			<input type="text" id="uid" name="uid" size=25 maxlength=60  value="{$uid}">
+{/render}
+		{else}
+			<input type="text" id="uid" name="dummy1" size=25 maxlength=60  value="{t}Multiple edit{/t}" disabled>
+		{/if}
+	 </td>
+    </tr>
+    {/if}
+      
+    <tr>
+     <td>
+      <div style="height:10px;"></div>
+      <label for="personalTitle">{t}Personal title{/t}</label>
+     </td>
+     <td>
+      <div style="height:10px;"></div>
+{render acl=$personalTitleACL checkbox=$multiple_support checked=$use_personalTitle}
+		<input type="text" id="personalTitle" name="personalTitle" size=25 maxlength=60 value="{$personalTitle}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="academicTitle">{t}Academic title{/t}</label></td>
+     <td>
+{render acl=$academicTitleACL checkbox=$multiple_support checked=$use_academicTitle}
+	      <input type="text" id="academicTitle" name="academicTitle" size=25 maxlength=60 value="{$academicTitle}">
+{/render}
+     </td>
+    </tr>
+{if !$multiple_support}
+    <tr>
+     <td>
+      <div style="height:10px;"></div>
+      <label for="day">{t}Date of birth{/t}</label>
+     </td>
+     <td>
+      <div style="height:10px;"></div>
+{render acl=$dateOfBirthACL}
+        <input type="text" id="dateOfBirth" name="dateOfBirth" class="date" style='width:100px' value="{$dateOfBirth}">
+        {if $dateOfBirthACL|regex_replace:"/[cdmr]/":"" == "w"}
+        <script type="text/javascript">
+          {literal}
+          var datepicker  = new DatePicker({ relative : 'dateOfBirth', language : '{/literal}{$lang}{literal}', keepFieldEmpty : true,
+                                             enableCloseEffect : false, enableShowEffect : false });
+          {/literal}
+        </script>
+        {/if}
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td>
+      <label for="gender">{t}Sex{/t}</label>
+     </td>
+     <td>
+{render acl=$genderACL}
+	      <select size="1" id="gender" name="gender">
+	       {html_options options=$gender_list selected=$gender}
+	      </select>
+{/render}
+     </td>
+    </tr>
+{/if}
+    <tr>
+     <td>
+      <label for="preferredLanguage">{t}Preferred langage{/t}</label>
+     </td>
+     <td>
+{render acl=$preferredLanguageACL checkbox=$multiple_support checked=$use_preferredLanguage}
+	      <select size="1" id="preferredLanguage" name="preferredLanguage">
+	       {html_options options=$preferredLanguage_list selected=$preferredLanguage}
+	      </select>
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td>
+      <div style="height:10px;"></div>
+      <label for="base">{t}Base{/t}</label>
+     </td>
+     <td>
+      <div style="height:10px;"></div>
+{render acl=$baseACL checkbox=$multiple_support checked=$use_base}
+      {$base}
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+  <td style="border-left:1px solid #A0A0A0">
+    
+  </td>
+  <td style="vertical-align:top;">
+
+   <!-- Address, ... -->
+   <table summary="" style="width:100%"> 
+    <tr>
+     <td style="vertical-align:top;"><label for="homePostalAddress">{t}Address{/t}</label></td>
+      <td>
+{render acl=$homePostalAddressACL checkbox=$multiple_support checked=$use_homePostalAddress}
+	     <textarea id="homePostalAddress" name="homePostalAddress" rows="3" style="width:100%">{$homePostalAddress}</textarea>
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="homePhone">{t}Private phone{/t}</label>
+     </td><td>
+{render acl=$homePhoneACL checkbox=$multiple_support checked=$use_homePhone}
+	     <input type="text" id="homePhone" name="homePhone" size=25 maxlength=60 value="{$homePhone}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="labeledURI">{t}Homepage{/t}</label></td>
+     <td>
+{render acl=$labeledURIACL checkbox=$multiple_support checked=$use_labeledURI}
+	 	<input type="text" id="labeledURI" name="labeledURI" size=25 maxlength=60 value="{$labeledURI}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td colspan=2>
+      <div style="height:10px;"></div>
+     </td>
+    </tr>
+    <tr>
+     <td><label for="pw_storage">{t}Password storage{/t}</label></td>
+     <td>
+{render acl=$passwordStorageACL checkbox=$multiple_support checked=$use_pw_storage}
+	      <select size="1" id="pw_storage" name="pw_storage" onchange='document.mainform.submit()'>
+			{foreach from=$pwmode key=value item=desc}
+				<option value="{$value}" {if $pwmode_select == $value}selected{/if} >{$desc}</option>
+			{/foreach}
+	      </select>
+	{if $pw_configurable eq "true"}
+	        <input id="edit_pw_method" type="submit" name="edit_pw_method" value="{t}Configure{/t}...">
+	{/if}
+{/render}
+     </td>
+    </tr>
+
+    {if $is_template ne "true" && !$multiple_support}
+    <tr>
+     <td><label for="edit_cert">{t}Certificates{/t}</label></td>
+     <td>
+{render acl=$CertificatesACL mode=read_active}
+      		<input id="edit_cert" type="submit" name="edit_cert" value="{t}Edit certificates{/t}...">
+{/render}
+     </td>
+    </tr>
+    {/if}
+
+    <tr>
+     <td colspan=2>
+      <div style="height:10px;"></div>
+     </td>
+    </tr>
+    <tr>
+     <td style='vertical-align:top'><label for="edit_perms">{t}Restrict login to{/t}</label></td>
+     <td>
+     
+     {if !$multiple_support}
+       {$gosaLoginRestrictionWidget}
+       <input type="text" id="res" name="res" size=22 maxlength=33 
+        value="{t}IP or network{/t}" onFocus='document.getElementById("res").value=""'>
+       <input id="add_res" type="submit" name="add_res" value="{t}Add{/t}">
+     {else}
+      <input type='checkbox' name='use_gosaLoginRestriction' {if $use_gosaLoginRestriction} checked {/if}
+        onClick='document.mainform.submit();'
+      >
+      {if !$use_gosaLoginRestriction}
+        {render acl=$gosaLoginRestriction_ONLY_R_ACL}
+          {$gosaLoginRestrictionWidget}
+        {/render}
+      {else}
+        {render acl=$gosaLoginRestrictionACL}
+          {$gosaLoginRestrictionWidget}
+        {/render}
+        {render acl=$gosaLoginRestrictionACL}
+	        <input type="text" id="res" name="res" size=22 maxlength=33 
+            value="{t}IP or network{/t}" onFocus='document.getElementById("res").value=""'>
+        {/render}
+        {render acl=$gosaLoginRestrictionACL}
+     	    <input id="add_res" type="submit" name="add_res" value="{t}Add{/t}">
+        {/render}
+      {/if}
+     {/if}
+     </td>
+    </tr>
+   </table>
+  </td>
+ </tr>
+</table>
+
+<p class="seperator"> </p>
+
+<table summary="" class="line" style="width:100%; vertical-align:top; text-align:left;" cellpadding="4" border="0">
+
+ <!-- Headline container -->
+ <tr>
+  <td colspan="3">
+   <h2><img alt="" align="middle" src="plugins/generic/images/house.png" class="center"> {t}Organizational information{/t}</h2>
+  </td>
+ </tr>
+
+ <!-- Base 2 container -->
+ <tr>
+
+  {if $governmentmode ne "true"}
+  <!-- Company, ... -->
+  <td style="vertical-align:top;">
+   <table summary=""> 
+    <tr>
+     <td><label for="o">{t}Organization{/t}</label></td>
+     <td>	
+{render acl=$oACL checkbox=$multiple_support checked=$use_o}
+		<input type="text" id="o" name="o" size=22 maxlength=60 value="{$o}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="ou">{t}Department{/t}</label></td>
+     <td>
+{render acl=$ouACL checkbox=$multiple_support checked=$use_ou}
+		<input type="text" id="ou" name="ou" size=22 maxlength=60 value="{$ou}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="departmentNumber">{t}Department No.{/t}</label></td>
+     <td>
+{render acl=$departmentNumberACL checkbox=$multiple_support checked=$use_departmentNumber}
+	      <input type="text" id="departmentNumber" name="departmentNumber" size=22 maxlength=60 value="{$departmentNumber}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="employeeNumber">{t}Employee No.{/t}</label></td>
+     <td>
+{render acl=$employeeNumberACL checkbox=$multiple_support checked=$use_employeeNumber}
+      		<input type="text" id="employeeNumber" name="employeeNumber" size=22 maxlength=60 value="{$employeeNumber}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="employeeType">{t}Employee type{/t}</label></td>
+     <td>
+{render acl=$employeeTypeACL checkbox=$multiple_support checked=$use_employeeType}
+      		<input type="text" id="employeeType" name="employeeType" size=22 maxlength=60 value="{$employeeType}">
+{/render}
+     </td>
+    </tr>
+    {if !$multiple_support}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+{render acl=$managerACL}
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+{/render}
+        {if $manager!=""}
+{render acl=$managerACL}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+{/render}
+{render acl=$managerACL}
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+{/render}
+        {/if}
+     </td>
+    </tr>
+    {else}
+    <tr>
+     <td><label for="manager">{t}Manager{/t}</label></td>
+     <td>
+      <input type='checkbox' value="1" name="use_manager" id="use_manager" {if $use_manager} checked {/if}
+        onClick="document.mainform.submit();">
+        <input type='text' name='manager_name' id='manager_name' value='{$manager_name}' disabled
+          title='{$manager}'>
+        {if $use_manager}
+        <input type='image' src='images/lists/edit.png' name='editManager' class='center'>
+        {if $manager!=""}
+        <img src='images/info_small.png' title='{$manager}' class='center'>
+        <input type='image' src='images/lists/trash.png' name='removeManager' class='center'>
+        {/if}
+        {/if}
+     </td>
+    </tr>
+  
+    {/if}
+   </table>
+  </td>
+   
+  <td style="border-left:1px solid #A0A0A0">
+    
+  </td>
+
+  <!-- Phone, ... -->
+  <td style="vertical-align:top;">
+   <table summary=""> 
+    <tr>
+     <td><label for="roomNumber">{t}Room No.{/t}</label></td>
+     <td>
+{render acl=$roomNumberACL checkbox=$multiple_support checked=$use_roomNumber}
+		<input type="text" id="roomNumber" name="roomNumber" size=22 maxlength=60 value="{$roomNumber}">
+{/render}
+     </td>
+    </tr>
+    {if $has_phoneaccount ne "true"}
+    <tr>
+     <td><label for="telephoneNumber">{t}Phone{/t}</label></td>
+     <td>
+{render acl=$telephoneNumberACL checkbox=$multiple_support checked=$use_telephoneNumber}
+      		<input type="text" id="telephoneNumber" name="telephoneNumber" size=22 maxlength=60 value="{$telephoneNumber}">
+{/render}
+     </td>
+    </tr>
+    {/if}
+    <tr>
+     <td><label for="mobile">{t}Mobile{/t}</label></td>
+     <td>
+{render acl=$mobileACL checkbox=$multiple_support checked=$use_mobile}
+		<input type="text" id="mobile" name="mobile" size=22 maxlength=60 value="{$mobile}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="pager">{t}Pager{/t}</label></td>
+     <td>
+{render acl=$pagerACL checkbox=$multiple_support checked=$use_pager}
+      		<input type="text" id="pager" name="pager" size=22 maxlength=60 value="{$pager}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="facsimileTelephoneNumber">{t}Fax{/t}</label></td>
+     <td>
+{render acl=$facsimileTelephoneNumberACL checkbox=$multiple_support checked=$use_facsimileTelephoneNumber}
+		<input type="text" id="facsimileTelephoneNumber" name="facsimileTelephoneNumber" size=22 maxlength=60 value="{$facsimileTelephoneNumber}">
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+
+  <td style="border-left:1px solid #A0A0A0">
+    
+  </td>
+
+  <!-- Location, ... -->
+  <td style="vertical-align:top;">
+   <table summary="" style="width:100%"> 
+    <tr>
+     <td><label for="l">{t}Location{/t}</label></td>
+     <td>
+{render acl=$lACL checkbox=$multiple_support checked=$use_l}
+		<input type="text" id="l" name="l" size=22 maxlength=60 value="{$l}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="st">{t}State{/t}</label></td>
+     <td>
+{render acl=$stACL checkbox=$multiple_support checked=$use_st}
+		<input type="text" id="st" name="st" size=22 maxlength=60 value="{$st}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td style="vertical-align:top;"><label for="postalAddress">{t}Address{/t}</label></td>
+     <td>
+{render acl=$postalAddressACL checkbox=$multiple_support checked=$use_postalAddress}
+      		<textarea id="postalAddress" name="postalAddress" rows=3 style="width:100%">{$postalAddress}</textarea>
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+
+  {else} 
+
+  <!-- Beschreibung, ... -->
+  <td style="vertical-align:top;border-right:1px solid #b0b0b0">
+   <table summary=""> 
+    <tr>
+     <td><label for="vocation">{t}Vocation{/t}</label></td>
+     <td>
+{render acl=$vocationACL checkbox=$multiple_support checked=$use_vocation}
+		<input type="text" id="vocation" name="vocation" size=22 maxlength=60 value="{$vocation}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="gouvernmentOrganizationalUnitDescription">{t}Unit description{/t}</label></td>
+     <td>
+{render acl=$gouvernmentOrganizationalUnitDescriptionACL checkbox=$multiple_support checked=$use_gouvernmentOrganizationalUnitDescription}
+      		<input type="text" id="gouvernmentOrganizationalUnitDescription" name="gouvernmentOrganizationalUnitDescription" size=22 maxlength=60
+		value="{$gouvernmentOrganizationalUnitDescription}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="gouvernmentOrganizationalUnitSubjectArea">{t}Subject area{/t}</label></td>
+     <td>
+{render acl=$gouvernmentOrganizationalUnitSubjectAreaACL checkbox=$multiple_support checked=$use_gouvernmentOrganizationalUnitSubjectArea}
+	      	<input type="text" id="gouvernmentOrganizationalUnitSubjectArea" name="gouvernmentOrganizationalUnitSubjectArea" size=22 maxlength=60
+           	value="{$gouvernmentOrganizationalUnitSubjectArea}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="functionalTitle">{t}Functional title{/t}</label></td>
+     <td>
+{render acl=$functionalTitleACL checkbox=$multiple_support checked=$use_functionalTitle}
+      		<input type="text" name="functionalTitle" id="functionalTitle"  size=22 maxlength=60
+             	value="{$functionalTitle}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="role">{t}Role{/t}</label></td>
+     <td>
+{render acl=$roleACL checkbox=$multiple_support checked=$use_role}
+      		<input type="text" id="role" name="role" size=22 maxlength=60 value="{$role}">
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+  
+  <!-- Phone, ... -->
+  <td style="vertical-align:top;border-right:1px solid #b0b0b0">
+   <table summary=""> 
+    <tr>
+     <td><label for="gouvernmentOrganizationalPersonLocality">{t}Person locality{/t}</label></td>
+     <td>
+{render acl=$gouvernmentOrganizationalPersonLocalityACL checkbox=$multiple_support checked=$use_gouvernmentOrganizationalPersonLocality}
+      		<input type="text" id="gouvernmentOrganizationalPersonLocality" name="gouvernmentOrganizationalPersonLocality" size=22 maxlength=60
+                value="{$gouvernmentOrganizationalPersonLocality}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="gouvernmentOrganizationalUnit">{t}Unit{/t}</label></td>
+     <td>
+{render acl=$gouvernmentOrganizationalUnitACL checkbox=$multiple_support checked=$use_gouvernmentOrganizationalUnit}
+		<input type="text" id="gouvernmentOrganizationalUnit" name="gouvernmentOrganizationalUnit" size=22 maxlength=60 
+            	value="{$gouvernmentOrganizationalUnit}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="street">{t}Street{/t}</label></td>
+     <td>
+{render acl=$streetACL checkbox=$multiple_support checked=$use_street}
+      		<input type="text" name="street" id="street" size=22 maxlength=60 value="{$street}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="postalCode">{t}Postal code{/t}</label></td>
+     <td> 
+{render acl=$postalCodeACL checkbox=$multiple_support checked=$use_postalCode}
+      		<input type="text" name="postalCode" id="postalCode" size=22 maxlength=60 value="{$postalCode}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="houseIdentifier">{t}House identifier{/t}</label></td>
+     <td>
+{render acl=$houseIdentifierACL checkbox=$multiple_support checked=$use_houseIdentifier}
+      		<input type="text" id="houseIdentifier" name="houseIdentifier" size=22 maxlength=60
+             	value="{$houseIdentifier}">
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+
+  <!-- Location, ... -->
+  <td style="vertical-align:top;">
+   <table summary=""> 
+    <tr>
+     <td><label for="roomNumber">{t}Room No.{/t}</label></td>
+     <td>
+{render acl=$roomNumberACL checkbox=$multiple_support checked=$use_roomNumber}
+		<input type="text" id="roomNumber" name="roomNumber" size=22 maxlength=60 value="{$roomNumber}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="telephoneNumber">{t}Phone{/t}</label></td>
+     <td>
+{render acl=$telephoneNumberACL checkbox=$multiple_support checked=$use_telephoneNumber}
+	      {if $has_phoneaccount ne "true"}
+			<input type="text" id="telephoneNumber" name="telephoneNumber" size=22 maxlength=60 value="{$telephoneNumber}">
+	      {else}
+			<i>{t}Please use the phone tab{/t}</i>
+	      {/if}
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="facsimileTelephoneNumber">{t}Fax{/t}</label></td>
+     <td>
+{render acl=$facsimileTelephoneNumberACL checkbox=$multiple_support checked=$use_facsimileTelephoneNumber}
+      		<input type="text" id="facsimileTelephoneNumber" name="facsimileTelephoneNumber" size=22 maxlength=60 
+                value="{$facsimileTelephoneNumber}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="ivbbLastDeliveryCollective">{t}Last delivery{/t}</label></td>
+     <td>
+{render acl=$ivbbLastDeliveryCollectiveACL checkbox=$multiple_support checked=$use_ivbbLastDeliveryCollective}
+      		<input type="text" name="ivbbLastDeliveryCollective" size=22 maxlength=60 id="ivbbLastDeliveryCollective" 
+             	value="{$ivbbLastDeliveryCollective}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="publicVisible">{t}Public visible{/t}</label></td>
+     <td>
+{render acl=$publicVisibleACL checkbox=$multiple_support checked=$use_publicVisible}
+	      <select size="1" id="publicVisible" name="publicVisible">
+	       {html_options values=$ivbbmodes output=$ivbbmodes selected=$publicVisible}
+	      </select>
+{/render}
+     </td>
+    </tr>
+   </table>
+  </td>
+ {/if} 
+ </tr>
+</table>
+
+{if $multiple_support}
+	<input type="hidden" name="user_mulitple_edit" value="1">
+{/if}
+<input type=hidden name="generic">
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('sn');
+  -->
+</script>
diff --git a/gosa-core/plugins/personal/generic/generic_certs.tpl b/gosa-core/plugins/personal/generic/generic_certs.tpl
new file mode 100644
index 0000000..a4fc6fd
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/generic_certs.tpl
@@ -0,0 +1,96 @@
+<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
+ <!-- Headline container -->
+<h2><img alt="" class="center" align="middle" src="images/lists/key.png"> {t}Certificates{/t}</h2>
+
+<table summary="" style="vertical-align:top; text-align:left;border-top: 1px solid rgb(176,176,176);" width="100%" cellpadding=4 border=0>
+ <tr>
+   <td width="12%" style="vertical-align:top">
+      {t}Standard certificate{/t}
+   </td>
+  
+   <td style="vertical-align:top">
+	 <LABEL for="userCertificate_file">{if $Certificate_readable}{$userCertificateinfo}{/if}</LABEL>
+	 </td>
+	 <td style="vertical-align:top;text-align:right">
+	 {if $userCertificate_state ne "true"}
+	{render acl=$CertificateACL}
+     <input id="userCertificate_file" name="userCertificate_file" type="file" size="20" maxlength="255" accept="text/*.*">
+	{/render}
+     {else}
+	{render acl=$CertificateACL}
+     <input type=submit name="remove_userCertificate" value="{t}Remove{/t}">
+	{/render}
+     {/if}
+   </td>
+ </tr>
+ </table>
+
+<br>
+
+ <table summary="" style="vertical-align:top; text-align:left;border-top: 1px solid rgb(176,176,176);" width="100%" cellpadding=4 border=0>
+ <tr>
+   <td width="12%" style="vertical-align:top">
+      {t}S/MIME certificate{/t} 
+   </td>
+   <td style="vertical-align:top">
+     <LABEL for="userSMIMECertificate_file">{if $Certificate_readable}{$userSMIMECertificateinfo}{/if}</LABEL>
+   </td>
+   <td style="vertical-align:top;text-align:right">
+	 {if $userSMIMECertificate_state ne "true"}
+	{render acl=$CertificateACL}
+     <input id="userSMIMECertificate_file" name="userSMIMECertificate_file" type="file" size="20" maxlength="255" accept="text/*.*">
+	{/render}
+     {else}
+	{render acl=$CertificateACL}
+     <input type=submit name="remove_userSMIMECertificate" value="{t}Remove{/t}">
+	{/render}
+	 {/if}
+   </td>
+ </tr>
+ </table>
+
+<br>
+
+<table summary="" style="vertical-align:top; text-align:left;border-top: 1px solid rgb(176,176,176);" width="100%" cellpadding=4 border=0> 
+ <tr>
+   <td width="12%" style="vertical-align:top">
+      {t}PKCS12 certificate{/t} 
+   </td>
+   <td style="vertical-align:top">
+     <LABEL for="userPKCS12_file">{if $Certificate_readable}{$userPKCS12info}{/if}</LABEL>
+   </td>
+   <td style="vertical-align:top;text-align:right">
+	 {if $userPKCS12_state ne "true"}
+	{render acl=$CertificateACL}
+     <input id="userPKCS12_file" name="userPKCS12_file" type="file" size="20" maxlength="255" accept="text/*.*">
+	{/render}
+	 {else}
+	{render acl=$CertificateACL}
+     <input type=submit name="remove_userPKCS12" value="{t}Remove{/t}">
+	{/render}
+	 {/if}
+   </td>
+ </tr>
+ 
+ {if $governmentmode eq "true"}
+ <tr>
+   <td>
+     <LABEL for="certificateSerialNumber">{t}Certificate serial number{/t}</LABEL>
+   </td>
+   <td>
+	{render acl=$CertificateACL}
+     <input type='text' id="certificateSerialNumber" name="certificateSerialNumber" size=10 maxlength=20 value="{$certificateSerialNumber}">
+	{/render}
+   </td>
+ </tr>
+ {/if}
+</table>
+
+<p class="plugbottom">
+	{render acl=$CertificateACL}
+  <input type=submit name="cert_edit_finish" value="{msgPool type=saveButton}">
+	{/render}
+   
+  <input type=submit name="cert_edit_cancel" value="{msgPool type=cancelButton}">
+</p>
+
diff --git a/gosa-core/plugins/personal/generic/generic_picture.tpl b/gosa-core/plugins/personal/generic/generic_picture.tpl
new file mode 100644
index 0000000..de72255
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/generic_picture.tpl
@@ -0,0 +1,37 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4 border=0>
+ <!-- Headline container -->
+ <tr>
+   <td colspan=2>
+     <h2><img alt="" class="center" align="middle" src="plugins/generic/images/head.png"> {t}Personal picture{/t}</h2>
+   </td>
+ </tr>
+ <!-- Base container -->
+ <tr>
+ <!-- Image container -->
+  <td>
+   <table>
+    <tr>
+     <td width="147" height="200" bgcolor="gray">
+      <img class="center" border="0" width="100%" src="getbin.php?rand={$rand}" alt="{t}Personal picture{/t}">
+     </td>
+    </tr>
+   </table>
+  </td>
+	</tr>
+	<tr>
+   <!-- Name, ... -->
+   <td style="vertical-align:bottom; width:100%;">
+     <input type="hidden" name="MAX_FILE_SIZE" value="2000000">
+     <input id="picture_file" name="picture_file" type="file" size="20" maxlength="255" accept="image/*.jpg">
+      
+     <input type=submit name="picture_remove" value="{t}Remove picture{/t}">
+   </td>
+ </tr>
+</table>
+<br>
+<p class="plugbottom">
+  <input type=submit name="picture_edit_finish" value="{msgPool type=saveButton}">
+   
+  <input type=submit name="picture_edit_cancel" value="{msgPool type=cancelButton}">
+</p>
+
diff --git a/gosa-core/plugins/personal/generic/main.inc b/gosa-core/plugins/personal/generic/main.inc
new file mode 100644
index 0000000..448d191
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/main.inc
@@ -0,0 +1,211 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 13288 2008-12-12 14:54:13Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Remove locks created by this plugin
+*/
+$lock_msg="";
+if ($remove_lock || isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
+  if(session::is_set('user') && session::is_set('edit')){
+    del_lock($ui->dn);
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('user');
+  session::un_set('edit');
+
+}else{
+
+  /* Reset requested? */
+  if (isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
+    session::un_set ('edit');
+    session::un_set ('user');
+  }
+
+  /* Create user object on demand */
+  if (!session::is_set('user') || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+    $user= new user ($config, $ui->dn);
+    $user->enable_CSN_check();
+    $user->set_acl_base($ui->dn);
+    $user->set_acl_category("users");
+    session::set('user',$user);
+  }
+  $user = session::get('user');
+
+  /* save changes back to object */
+  if (session::is_set('edit')){
+    $user->save_object ();
+  }
+
+  /* Enter edit mode? */
+  if ((isset($_POST['edit'])) && (!session::is_set('edit')) &&preg_match("/w/",$ui->get_permissions($ui->dn,"users/user"))){
+
+    /* Check locking */
+    if (($username= get_lock($ui->dn)) != ""){
+      session::set('back_plugin',$plug);
+      session::set('LOCK_VARS_TO_USE',array("/^edit$/","/^plug$/"));
+      $lock_msg =  gen_locked_message ($username, $ui->dn);
+
+    }else{
+
+      /* Lock the current entry */
+      add_lock ($ui->dn, $ui->dn);
+      session::set('dn',$ui->dn);
+      session::set('edit',TRUE);
+    }
+  }
+
+  /* Perform password change */
+  if (isset($_POST['password_finish'])){
+
+    /* For security reasons, check if user is allowed to set password again */
+    if ($user->acl_is_writeable("userPassword") || $user->acl_is_createable()){
+
+      /* Check input and feed errors into 'message' */
+      $message= array();
+
+      /* Sanity checks... */
+      if ($_POST['new_password'] != $_POST['repeated_password']){
+
+        /* Matching passwords in new and repeated? */
+        $message[]= _("The passwords you've entered as 'New password' and 'Repeated new password' do not match.");
+      } else {
+
+        /* Empty password is not permitted by default. */
+        if ($_POST['new_password'] == ""){
+          $message[]= msgPool::required(_("New password"));
+        }
+      }
+
+      /* Errors, or change password? */
+      if (count($message) != 0){
+
+        /* Show error message and continue editing */
+        msg_dialog::displayChecks($message);
+        $display.= $smarty->fetch(get_template_path('password.tpl', TRUE));
+        return ($display);
+      }
+      change_password ($user->dn, $_POST['new_password'], 0, $user->pw_storage);
+      new log("modify","users/password","",array(),"Password has been changed");
+
+    } else {
+
+      /* Missing permissions, show message */
+      msg_dialog::display(_("Error"), _("You have no permission to set your password!"), ERROR_DIALOG);
+    }
+
+    del_lock ($ui->dn);
+    session::un_set ('user');
+  }
+
+  /* save changes to LDAP and disable edit mode */
+  if (isset($_POST['edit_finish'])){
+
+    /* Perform checks */
+    $message= $user->check ();
+
+    /* No errors, save object */
+    if (count ($message) == 0){
+      $user->save ();
+      del_lock ($ui->dn);
+      session::un_set ('edit');
+
+      /* Need to reset the password? */
+      if($user->password_change_needed()){
+        /* Save object */
+        session::set('user',$user);
+
+        $display.= $smarty->fetch(get_template_path('password.tpl', TRUE));
+        return ($display);
+      } else {
+        session::un_set ('user');
+      }
+
+    } else {
+      /* Errors found, show message */
+      msg_dialog::displayChecks($message);
+    }
+  }
+
+  /* Execute formular */
+  if($lock_msg){
+    $display.= $lock_msg;
+  }else{
+    $display.= $user->execute ();
+  }
+
+  /* Store changes  in session */
+  if (session::is_set('edit')){
+    session::set('user',$user);
+  }
+
+  $info = "";
+
+  /* Show page footer depending on the mode */
+  if (!$user->cert_dialog && !$user->picture_dialog && !$user->dialog && $user->is_account && empty($lock_msg)){
+    $display.= "<p class=\"plugbottom\">";
+
+    /* Are we in edit mode? */
+    if (session::is_set('edit')){
+      $display.= "<input type=submit name=\"edit_finish\" style=\"width:80px\" value=\"".msgPool::okButton()."\">\n";
+      $display.= " ";
+      $display.= "<input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+
+      $info= "<img class=\"center\" alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/locked.png').
+        "\"> ".$ui->dn." ";
+    } else {
+      /* 'viewid' may be set by i.e. the phonelist plugin. This
+         means that we want to go back... */
+      if (isset ($viewid)){
+        $str= msgPool::backButton();
+        $fn = "back";
+      } else {
+        $str= msgPool::editButton();
+        $fn = "edit";
+        $info= "<img class=\"center\" alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/unlocked.png').
+          "\"> ".$ui->dn." ";
+      }
+
+      /* Only display edit button if there is at least one attribute editable */
+      if(preg_match("/r/",$ui->get_permissions($ui->dn,"users/user"))){
+        if ($fn == "edit"){
+          $info.= "<img class=\"center\" alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/on.png')."\"> ".
+            msgPool::clickEditToChange();
+          $display.= "<input type=submit name=\"$fn\" value=\"$str\">\n";
+        }
+      }
+
+      $display.= "<input type=\"hidden\" name=\"ignore\">\n";
+    }
+    $display.= "</p>\n";
+  }
+
+  /* Page header*/
+  $display= print_header(get_template_path('plugins/generic/images/plugin.png'),
+      _("Generic user information"), $info).$display;
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/generic/password.tpl b/gosa-core/plugins/personal/generic/password.tpl
new file mode 100644
index 0000000..0430e54
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/password.tpl
@@ -0,0 +1,28 @@
+<p>
+ {t}You have changed the method your password is stored in the ldap database. For that reason you've to enter your password at this point again. GOsa will then encode it with the selected method.{/t}
+</p>
+
+<table summary="" style="vertical-align:top; text-align:left;" cellpadding=4 border=0>
+  <tr>
+    <td><b><LABEL for="new_password">{t}New password{/t}</LABEL></b></td>
+    <td><input id="new_password" type="password" name="new_password" size="30" maxlength="40" onFocus="nextfield= 'repeated_password';"></td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="repeated_password">{t}Repeat new password{/t}</LABEL></b></td>
+    <td><input id="repeated_password" type="password" name="repeated_password" size="30" maxlength="40" onFocus="nextfiled= 'password_finish'"></td>
+  </tr>
+</table>
+<br>
+<p class="plugbottom">
+  <input type=submit name="password_finish" value="{t}Set password{/t}">
+   
+  <input type=submit name="password_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	nextfield= "new_password";
+	focus_field('new_password');
+  -->
+</script>
diff --git a/gosa-core/plugins/personal/generic/paste_generic.tpl b/gosa-core/plugins/personal/generic/paste_generic.tpl
new file mode 100644
index 0000000..ae722ea
--- /dev/null
+++ b/gosa-core/plugins/personal/generic/paste_generic.tpl
@@ -0,0 +1,59 @@
+<h2>{t}User settings{/t}</h2>
+<table width="100%">
+  <tr>
+	<td style="vertical-align:top; border-right:1px solid #AAA; width:50%">
+	  <table>
+		<tr>
+		  <td><label for="sn">{t}Last name{/t}</label></td>
+		  <td><input type='text' id="sn" name="sn" size=25 maxlength=60  value="{$sn}"></td>
+		</tr>
+		<tr>
+		  <td><label for="givenName">{t}First name{/t}</label></td>
+		  <td><input type='text' id="givenName" name="givenName" size=25 maxlength=60 value="{$givenName}"></td>
+		</tr>
+		<tr>
+		  <td><label for="uid">{t}Login{/t}</label></td>
+		  <td><input type='text' id="uid" name="uid" size=25 maxlength=60 value="{$uid}"></td>
+		</tr>
+		<tr>
+			<td style='vertical-align:top;'>
+				{t}Password{/t}
+			</td>
+			<td>
+				<input type="radio" {if $passwordTodo=="clear"} checked{/if} name="passwordTodo" value="clear">{t}Clear password{/t}<br>
+				<input type="radio" {if $passwordTodo=="new"}   checked{/if} name="passwordTodo" value="new">{t}Set new password{/t}
+			</td>
+		</tr>
+	  </table>
+	</td>
+	<td style="vertical-align:top ">
+	  <table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4 border=0>
+		<tr>
+		<!-- Image container -->
+		  <td colspan="2">
+			<table>
+			  <tr>
+				<td width="147" height="200" bgcolor="gray">
+				  <img align="middle" border="0" width="100%" src="getbin.php?rand={$rand}" alt="{t}Personal picture{/t}">
+				</td>
+			  </tr>
+			</table>
+		  </td>
+		</tr>
+		<tr>
+		  <!-- Name, ... -->
+		  <td style="vertical-align:top;">
+			<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
+			 {t}User picture{/t}
+		  </td>
+		  <td>
+			<input id="picture_file" name="picture_file" type="file" size="20" maxlength="255" accept="image/*.jpg">
+			 
+			<input type=submit name="picture_remove" value="{t}Remove picture{/t}">
+		  </td>
+		</tr>
+	  </table>
+	</td>
+  </tr>
+</table>
+<br>
diff --git a/gosa-core/plugins/personal/password/changed.tpl b/gosa-core/plugins/personal/password/changed.tpl
new file mode 100644
index 0000000..4fe49ed
--- /dev/null
+++ b/gosa-core/plugins/personal/password/changed.tpl
@@ -0,0 +1,12 @@
+
+<p>
+ <b>{t}You've successfully changed your password. Remember to change all programms configured to use it as well.{/t}</b>
+</p>
+
+<br>
+
+<p class="plugbottom">
+  <input type=submit name="password_back" value="{msgPool type=backButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/personal/password/class_password.inc b/gosa-core/plugins/personal/password/class_password.inc
new file mode 100644
index 0000000..a3cc683
--- /dev/null
+++ b/gosa-core/plugins/personal/password/class_password.inc
@@ -0,0 +1,160 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_password.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class password extends plugin
+{
+  /* Definitions */
+  var $plHeadline     = "Password";
+  var $plDescription  = "Change user password";
+
+  function password(&$config, $dn= NULL, $parent= NULL)
+  {
+    plugin::plugin($config, $dn, $parent);
+  }
+
+
+  function execute()
+  {
+    plugin::execute();
+    $smarty = get_smarty();
+    $ui = get_userinfo();
+
+    /* Get acls */
+    $password_ACLS = $ui->get_permissions($ui->dn,"users/password");
+    $smarty->assign("ChangeACL" ,  $password_ACLS);
+    $smarty->assign("NotAllowed" , !preg_match("/w/i",$password_ACLS));
+
+    /* Display expiration template */
+    if ($this->config->get_cfg_value("handleExpiredAccounts") == "true"){
+      $expired= ldap_expired_account($this->config, $ui->dn, $ui->username);
+      if($expired == 4){
+        return($smarty->fetch(get_template_path("nochange.tpl", TRUE)));
+      }
+    }
+
+    /* Pwd change requested */
+    if (isset($_POST['password_finish'])){
+
+      /* Should we check different characters in new password */
+      $check_differ = $this->config->get_cfg_value("passwordMinDiffer") != "";
+      $differ       = $this->config->get_cfg_value("passwordMinDiffer", 0);
+
+      /* Enable length check ? */
+      $check_length = $this->config->get_cfg_value("passwordMinLength") != "";
+      $length       = $this->config->get_cfg_value("passwordMinLength", 0);
+
+      /* Call external password quality hook ?*/
+      $check_hook   = $this->config->get_cfg_value("passwordHook") != "";
+      $hook         = $this->config->get_cfg_value("passwordHook")." ".$ui->username." ".$_POST['current_password']." ".$_POST['new_password'];
+      if($check_hook){
+        exec($hook,$resarr);
+        $check_hook_output = "";
+        if(count($resarr) > 0) {
+          $check_hook_output= join('\n', $resarr);
+        }
+      }
+
+      /* Check given values */    
+      if(!isset($_POST['current_password']) || empty($_POST['current_password'])){
+        msg_dialog::display(_("Password change"),
+                            _("You need to specify your current password in order to proceed."),WARNING_DIALOG);
+      }elseif ($_POST['new_password'] != $_POST['repeated_password']){
+        msg_dialog::display(_("Password change"),
+                            _("The passwords you've entered as 'New password' and 'Repeated new password' do not match."),WARNING_DIALOG);
+      } elseif ($_POST['new_password'] == ""){
+        msg_dialog::display(_("Password change"),
+                            _("The password you've entered as 'New password' is empty."),WARNING_DIALOG);
+      }elseif($check_differ && (substr($_POST['current_password'], 0, $differ) == substr($_POST['new_password'], 0, $differ))){
+        msg_dialog::display(_("Password change"),
+                            _("The password used as new and current are too similar."),WARNING_DIALOG);
+      }elseif($check_length && (strlen($_POST['new_password']) < $length)){
+        msg_dialog::display(_("Password change"),
+                            _("The password used as new is to short."),WARNING_DIALOG);
+      }elseif($check_hook && $check_hook_output != ""){
+        msg_dialog::display(_("Password change"),
+                    sprintf(_("External password changer reported a problem: %s."),$check_hook_output),WARNING_DIALOG);
+      }else{
+
+        /* Try to connect via current password */
+        $tldap = new LDAP(
+            $ui->dn, 
+            $_POST['current_password'],
+            $this->config->current['SERVER'],
+            $this->config->get_cfg_value("ldapFollowReferrals") == "true",
+            $this->config->get_cfg_value("ldapTLS") == "true");
+
+        /* connection Successfull ? */
+        if (!$tldap->success()){
+          msg_dialog::display(_("Password change"),
+                              _("The password you've entered as your current password doesn't match the real one."),WARNING_DIALOG);
+        }else{
+
+          /* Check GOsa permissions */
+          if (!preg_match("/w/i",$password_ACLS)){
+            msg_dialog::display(_("Password change"),
+                                _("You have no permission to change your password."),WARNING_DIALOG);
+          }else{
+            $this->change_password($ui->dn, $_POST['new_password']);
+            gosa_log ("User/password has been changed");
+            $ui->password= $_POST['new_password'];
+            session::set('ui',$ui);
+#$this->handle_post_events("modify",array("userPassword" => $_POST['new_password']));
+            return($smarty->fetch(get_template_path("changed.tpl", TRUE)));
+          }
+        }
+      }
+    }
+    return($smarty->fetch(get_template_path("password.tpl", TRUE)));
+  } 
+
+  function change_password($dn, $pwd)
+  {
+    change_password ($dn, $pwd);
+  }
+
+  function remove_from_parent()
+  {
+    $this->handle_post_events("remove");
+  }
+
+  function save()
+  {
+  }
+
+  static function plInfo()
+  {
+    return (array(
+          "plDescription"     => _("User password"),
+          "plSelfModify"      => TRUE,
+          "plDepends"         => array("user"),
+          "plPriority"        => 10,
+          "plSection"     => array("personal" => _("My account")),
+          "plCategory"    => array("users"),
+          "plOptions"         => array(),
+
+          "plProvidedAcls"  => array())
+        );
+  }
+
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/password/main.inc b/gosa-core/plugins/personal/password/main.inc
new file mode 100644
index 0000000..d062c2f
--- /dev/null
+++ b/gosa-core/plugins/personal/password/main.inc
@@ -0,0 +1,62 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 13288 2008-12-12 14:54:13Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+/* Remove locks created by this plugin 
+*/
+$lock_msg="";
+if ($remove_lock){
+  if(session::is_set('password')){
+    //Nothing to do here
+  }
+}
+
+/* Remove this plugin from session 
+*/
+if ( $cleanup ){
+  session::un_set('password');
+  session::un_set('edit');
+}else{
+
+  /* Reset requested? */
+  if (isset($_POST['edit_cancel'])){
+    session::un_set ('edit');
+    session::un_set ('password');
+  }
+
+  /* Create password object on demand */
+  if (!session::is_set('password') || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+    session::set('password', new password ($config, $ui->dn));
+  }
+  $password = session::get('password');
+
+  /* Execute formular */
+  $display.= $password->execute ();
+
+  /* Page header*/
+  $display= print_header(get_template_path('plugins/password/images/plugin.png'),
+                         _("Password settings"), "").$display;
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/password/nochange.tpl b/gosa-core/plugins/personal/password/nochange.tpl
new file mode 100644
index 0000000..0f175c6
--- /dev/null
+++ b/gosa-core/plugins/personal/password/nochange.tpl
@@ -0,0 +1,11 @@
+<div class="plugtop">
+  <img class="center" alt="" src="images/error.png" align="middle">{t}Password change not allowed{/t}>
+</div>
+
+<p>
+ <b>{t}You have no permission to change your password at this time{/t}</b>
+</p>
+
+<br>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/personal/password/password.tpl b/gosa-core/plugins/personal/password/password.tpl
new file mode 100644
index 0000000..88ffa02
--- /dev/null
+++ b/gosa-core/plugins/personal/password/password.tpl
@@ -0,0 +1,54 @@
+<script type="text/javascript" src="include/pwdStrength.js"></script>
+
+<p>
+  {t}To change your personal password use the fields below. The changes take effect immediately. Please memorize the new password, because you wouldn't be able to login without it.{/t}
+</p>
+
+<p>
+  {t}Changing the password affects your authentification on mail, proxy, samba and unix services.{/t}
+</p>
+
+<table summary="" style="vertical-align:top; text-align:left;" cellpadding=4 border=0>
+  <tr>
+    <td><b><LABEL for="current_password">{t}Current password{/t}</LABEL></b></td>
+    <td><input id="current_password" type="password" name="current_password" size="30" maxlength="40"
+		onFocus="nextfield= 'new_password';"></td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="new_password">{t}New password{/t}</LABEL></b></td>
+    <td><input id="new_password" type="password" name="new_password" size="30" maxlength="40"
+		onFocus="nextfield= 'repeated_password';" onkeyup="testPasswordCss(document.getElementById('new_password').value);"></td>
+  </tr>
+  <tr>
+    <td><b><LABEL for="repeated_password">{t}Repeat new password{/t}</LABEL></b></td>
+    <td><input id="repeated_password" type="password" name="repeated_password" size="30" maxlength="40"
+		onFocus="nextfield= 'password_finish';"></td>
+  </tr>
+  <tr>
+    <td><b>{t}Password strength{/t}</b></td>
+    <td>
+	<span id="meterEmpty" style="padding:0;margin:0;width:100%;background-color:#DC143C;display:block;height:5px;">
+	<span id="meterFull" style="padding:0;margin:0;z-index:100;width:0;background-color:#006400;display:block;height:5px;"></span></span>
+    </td>
+  </tr>
+</table>
+
+<br>
+
+<p class="plugbottom">
+  <input type=submit name="password_finish" value="{t}Set password{/t}">
+   
+  <input type=reset id="password_cancel" name="password_cancel" value="{t}Clear fields{/t}">
+  <input type='hidden' id='formSubmit'>
+</p>
+
+<input type="hidden" name="ignore">
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+  nextfield= 'current_password';
+	focus_field('current_password');
+  -->
+</script>
+
diff --git a/gosa-core/plugins/personal/posix/class_posixAccount.inc b/gosa-core/plugins/personal/posix/class_posixAccount.inc
new file mode 100644
index 0000000..0f19c3b
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/class_posixAccount.inc
@@ -0,0 +1,1693 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_posixAccount.inc 17912 2010-04-28 13:45:23Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*!
+  \brief   posixAccount plugin
+  \author  Cajus Pollmeier <pollmeier at gonicus.de>
+  \version 2.00
+  \date    24.07.2003
+
+  This class provides the functionality to read and write all attributes
+  relevant for posixAccounts and shadowAccounts from/to the LDAP. It
+  does syntax checking and displays the formulars required.
+ */
+
+class posixAccount extends plugin
+{
+  /* Definitions */
+  var $plHeadline= "UNIX";
+  var $plDescription= "Edit users POSIX settings";
+
+  /* Plugin specific values */
+  var $homeDirectory= "";
+  var $loginShell= "/bin/bash";
+  var $uidNumber= "";
+  var $gidNumber= "";
+  var $gecos= "";
+  var $shadowMin= "0";
+  var $shadowMax= "0";
+  var $shadowWarning= "0";
+  var $shadowLastChange= "0";
+  var $shadowInactive= "0";
+  var $shadowExpire= "";
+  var $gosaDefaultPrinter= "";
+  var $accessTo= array();
+  var $trustModel= "";
+
+  var $glist=array();
+  var $status= "";
+  var $loginShellList= array();
+  var $groupMembership= array();
+  var $savedGroupMembership= array();
+  var $savedUidNumber= "";
+  var $savedGidNumber= "";
+  var $activate_shadowMin= "0";
+  var $activate_shadowMax= "0";
+  var $activate_shadowWarning= "0";
+  var $activate_shadowInactive= "0";
+  var $activate_shadowExpire= "0";
+  var $mustchangepassword= "0";
+  var $force_ids= 0;
+  var $gotoLastSystemLogin= "";
+  var $groupSelect= FALSE;
+  var $trustSelect= FALSE;
+  var $secondaryGroups= array();
+  var $primaryGroup= 0;
+  var $was_trust_account= FALSE;
+  var $memberGroup= array();
+  var $grouplist= array();
+  var $ui= array();
+  var $ssh= null;
+  var $sshAcl= "";
+
+  var $GroupRegex= "*";
+  var $GroupUserRegex= "*";
+  var $SubSearch= false;
+
+  var $view_logged= false;
+
+  /* attribute list for save action */
+  var $CopyPasteVars  = 
+      array("grouplist","groupMembership","activate_shadowMin",
+      "activate_shadowMax","activate_shadowWarning","activate_shadowInactive","activate_shadowExpire",
+      "must_change_password","printerList","grouplist","savedGidNumber","savedUidNumber");
+
+  var $attributes     = array("homeDirectory", "loginShell", "uidNumber", "gidNumber", "gecos",
+      "shadowMin", "shadowMax", "shadowWarning", "shadowInactive", "shadowLastChange",
+      "shadowExpire", "gosaDefaultPrinter", "uid","accessTo","trustModel", "gotoLastSystemLogin");
+
+  var $objectclasses= array("posixAccount", "shadowAccount");
+
+  var $uid= "";
+  var $multiple_support = TRUE;
+  var $groupMembership_some = array();
+
+  /* constructor, if 'dn' is set, the node loads the given
+     'dn' from LDAP */
+  function posixAccount (&$config, $dn= NULL)
+  {
+    global $class_mapping;
+
+    /* Configuration is fine, allways */
+    $this->config= $config;
+
+    /* Load bases attributes */
+    plugin::plugin($config, $dn);
+
+    /*  If gotoLastSystemLogin is available read it from ldap and create a readable
+        date time string, fallback to sambaLogonTime if available.
+     */
+    if(isset($this->attrs['gotoLastSystemLogin'][0]) && preg_match("/^[0-9]*$/",$this->attrs['gotoLastSystemLogin'][0])){
+      $this->gotoLastSystemLogin = date("d.m.Y H:i:s", strtotime($this->attrs['gotoLastSystemLogin'][0]));
+    } else if(isset($this->attrs['sambaLogonTime'][0]) && preg_match("/^[0-9]*$/",$this->attrs['sambaLogonTime'][0])){
+      $this->gotoLastSystemLogin = date("d.m.Y H:i:s", $this->attrs['sambaLogonTime'][0]);
+    }
+
+    /* Setting uid to default */
+    if(isset($this->attrs['uid'][0])){
+      $this->uid = $this->attrs['uid'][0];
+    }
+
+    $ldap= $this->config->get_ldap_link();
+
+    if ($dn !== NULL){
+
+      /* Correct is_account. shadowAccount is not required. */
+      if (isset($this->attrs['objectClass']) &&
+          in_array ('posixAccount', $this->attrs['objectClass'])){
+
+        $this->is_account= TRUE;
+      }
+
+      /* Is this account a trustAccount? */
+      if ($this->is_account && isset($this->attrs['trustModel'])){
+        $this->trustModel= $this->attrs['trustModel'][0];
+        $this->was_trust_account= TRUE;
+      } else {
+        $this->was_trust_account= FALSE;
+        $this->trustModel= "";
+      }
+
+      $this->accessTo = array(); 
+      if ($this->is_account && isset($this->attrs['accessTo'])){
+        for ($i= 0; $i<$this->attrs['accessTo']['count']; $i++){
+          $tmp= $this->attrs['accessTo'][$i];
+          $this->accessTo[$tmp]= $tmp;
+        }
+      }
+      $this->initially_was_account= $this->is_account;
+
+      /* Fill group */
+      $this->primaryGroup= $this->gidNumber;
+
+      /* Generate status text */
+      $current= date("U");
+
+      $current= floor($current / 60 /60 / 24);
+
+      if (($current >= $this->shadowExpire) && $this->shadowExpire){
+        $this->status= _("expired");
+        if (($current - $this->shadowExpire) < $this->shadowInactive){
+          $this->status.= ", "._("grace time active");
+        }
+      } elseif (($this->shadowLastChange + $this->shadowMin) >= $current){
+        $this->status= _("active").", "._("password not changeable");
+      } elseif (($this->shadowLastChange + $this->shadowMax) >= $current){
+        $this->status= _("active").", "._("password expired");
+      } else {
+        $this->status= _("active");
+      }
+
+      /* Get group membership */
+      $ldap->cd($this->config->current['BASE']);
+      $ldap->search("(&(objectClass=posixGroup)(memberUid=".$this->uid."))", array("cn", "description"));
+
+      while ($attrs= $ldap->fetch()){
+        if (!isset($attrs["description"][0])){
+          $entry= $attrs["cn"][0];
+        } else {
+          $entry= $attrs["cn"][0]." [".$attrs["description"][0]."]";
+        }
+        $this->groupMembership[$ldap->getDN()]= $entry;
+      }
+      asort($this->groupMembership);
+      reset($this->groupMembership);
+      $this->savedGroupMembership= $this->groupMembership;
+      $this->savedUidNumber= $this->uidNumber;
+      $this->savedGidNumber= $this->gidNumber;
+
+      // Instanciate SSH object if available
+      if (isset($class_mapping["sshPublicKey"])){
+        if (empty($this->acl_base)){
+          $this->acl_base= $config->current['BASE'];
+        }
+
+        $this->sshAcl= $this->getacl("sshPublicKey");
+        $this->ssh= new sshPublicKey($this->config, $this->dn, $this->sshAcl);
+      }
+    }
+
+    /* Adjust shadow checkboxes */
+    foreach (array("shadowMin", "shadowMax", "shadowWarning", "shadowInactive",
+          "shadowExpire") as $val){
+
+      if ($this->$val != 0){
+        $oval= "activate_".$val;
+        $this->$oval= "1";
+      }
+    }
+
+    /* Convert shadowExpire for usage */
+    if ($this->shadowExpire == 0){
+      $this->shadowExpire= "";
+    } else {
+      $this->shadowExpire= date('d.m.Y', $this->shadowExpire * 60 * 60 * 24);
+    }
+
+
+    /* Generate shell list from CONFIG_DIR./shells */
+    if (file_exists(CONFIG_DIR.'/shells')){
+      $shells = file (CONFIG_DIR.'/shells');
+      foreach ($shells as $line){
+        if (!preg_match ("/^#/", $line)){
+          $this->loginShellList[]= trim($line);
+        }
+      }
+    } else {
+      if ($this->loginShell == ""){
+        $this->loginShellList[]= _("unconfigured");
+      }
+    }
+
+    /* Insert possibly missing loginShell */
+    if ($this->loginShell != "" && !in_array($this->loginShell, $this->loginShellList)){
+      $this->loginShellList[]= $this->loginShell;
+    }
+
+    /* Generate group list */
+    $this->ui = get_userinfo(); 
+    $this->secondaryGroups[]= "- "._("automatic")." -";
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(objectClass=posixGroup)", array("cn", "gidNumber"));
+    while($attrs = $ldap->fetch()){
+      $this->secondaryGroups[$attrs['gidNumber'][0]]= $attrs['cn'][0];
+    }
+    asort ($this->secondaryGroups);
+
+    /* Get global filter config */
+    if (!session::is_set("sysfilter")){
+      $ui= get_userinfo();
+      $base= get_base_from_people($ui->dn);
+      $sysfilter= array( "depselect"       => $base,
+          "regex"           => "*");
+      session::set("sysfilter", $sysfilter);
+    }
+    $this->ui = get_userinfo();
+  }
+
+
+  /* execute generates the html output for this node */
+  function execute($isCopyPaste = false)
+  {
+    /* Call parent execute */
+    plugin::execute();
+    $display= "";
+
+    /* Log view */
+    if($this->is_account && !$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","users/".get_class($this),$this->dn);
+    }
+
+    /* Department has changed? */
+    if(isset($_POST['depselect'])){
+      session::set('CurrentMainBase',validate($_POST['depselect']));
+    }
+
+    if($this->multiple_support_active){
+      $this->is_account = TRUE;
+    }
+
+    if(!$isCopyPaste && ! $this->multiple_support_active){
+
+      /* Do we need to flip is_account state? */
+      if(isset($_POST['modify_state'])){
+        if($this->is_account && $this->acl_is_removeable()){
+          $this->is_account= FALSE;
+        }elseif(!$this->is_account && $this->acl_is_createable()){
+          $this->is_account= TRUE;
+        }
+      }
+
+      /* Do we represent a valid posixAccount? */
+      if (!$this->is_account && $this->parent === NULL ){
+        $display= "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\"> <b>".
+          msgPool::noValidExtension(_("POSIX"))."</b>";
+        $display.= back_to_main();
+        return ($display);
+      }
+
+
+      /* Show tab dialog headers */
+      if ($this->parent !== NULL){
+        if ($this->is_account){
+          if (isset($this->parent->by_object['sambaAccount'])){
+            $obj= $this->parent->by_object['sambaAccount'];
+          }
+          if (isset($obj) && $obj->is_account == TRUE &&
+              ((isset($this->parent->by_object['sambaAccount']))&&($this->parent->by_object['sambaAccount']->is_account))
+              ||(isset($this->parent->by_object['environment'] ))&&($this->parent->by_object['environment'] ->is_account)){
+
+            /* Samba3 dependency on posix accounts are enabled
+               in the moment, because I need to rely on unique
+               uidNumbers. There'll be a better solution later
+               on. */
+            $display= $this->show_disable_header(msgPool::removeFeaturesButton(_("POSIX")), msgPool::featuresEnabled(_("POSIX"), array(_("Samba"), _("Environment"))), TRUE);
+          } else {
+            $display= $this->show_disable_header(msgPool::removeFeaturesButton(_("POSIX")), msgPool::featuresEnabled(_("POSIX")));
+          }
+        } else {
+          $display= $this->show_enable_header(msgPool::addFeaturesButton(_("POSIX")), msgPool::featuresDisabled(_("POSIX")));
+          return($display);
+        }
+      }
+    }
+
+    // Display dialog to allow selection of groups
+    if (isset($_POST['edit_groupmembership'])){
+      $this->groupSelect = new groupSelect($this->config,get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    // Allow to select trusted machines from a list
+    if (isset($_POST["add_ws"])){
+      $this->trustSelect= new trustSelect($this->config,get_userinfo());
+      $this->dialog= TRUE;
+    }
+
+    // Cancel trust and group dialog
+    if (isset($_POST['add_groups_cancel']) || isset($_POST['add_ws_cancel'])){
+      $this->groupSelect= NULL;
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    // Add groups selected in groupSelect dialog to ours.
+    if (isset($_POST['add_groups_finish']) && $this->groupSelect){
+      $groups = $this->groupSelect->detectPostActions();
+      if(isset($groups['targets'])){
+        $this->addGroup ($groups['targets']);
+        $this->is_modified= TRUE;
+      }
+      $this->groupSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    // Remove groups from currently selected groups.
+    if (isset($_POST['delete_groupmembership']) && 
+        isset($_POST['group_list']) && count($_POST['group_list'])){
+
+      $this->delGroup ($_POST['group_list']);
+    }
+
+    // Add selected machines to trusted ones.
+    if (isset($_POST["add_ws_finish"]) &&  $this->trustSelect){
+      $trusts = $this->trustSelect->detectPostActions();
+      if(isset($trusts['targets'])){
+
+        $headpage = $this->trustSelect->getHeadpage();              
+        foreach($trusts['targets'] as $id){
+          $attrs = $headpage->getEntry($id);
+          $this->accessTo[$attrs['cn'][0]]= $attrs['cn'][0];
+        }
+        ksort($this->accessTo);
+        $this->is_modified= TRUE;
+      }
+      $this->trustSelect= NULL;
+      $this->dialog= FALSE;
+    }
+
+    // Remove machine from trusted ones.
+    if (isset($_POST["delete_ws"]) && isset($_POST['workstation_list'])){
+      foreach($_POST['workstation_list'] as $name){
+        unset ($this->accessTo[$name]);
+      }
+      $this->is_modified= TRUE;
+    }
+
+
+
+    /* Templates now! */
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    /* Show ws dialog */
+    if ($this->trustSelect){
+
+      // Build up blocklist
+      session::set('filterBlacklist', array('cn' => array_values($this->accessTo)));
+      return($this->trustSelect->execute());
+    }
+
+    /* Manage group add dialog */
+    if ($this->groupSelect){
+      
+      // Build up blocklist
+      session::set('filterBlacklist', array('dn' => array_keys($this->groupMembership)));
+      return($this->groupSelect->execute());
+    }
+
+    // Handle ssh dialog?
+    if ($this->ssh instanceOf sshPublicKey && preg_match('/[rw]/', $this->getacl("sshPublicKey"))) {
+        $smarty->assign("usePrototype", "false");
+       if ($result= $this->ssh->execute()) {
+         $this->dialog= true;
+         return $result;
+       }
+       $this->dialog= false;
+    }
+
+
+    /* Show main page */
+    $smarty= get_smarty();
+    $smarty->assign("usePrototype", "true");
+
+    /* In 'MyAccount' mode, we must remove write acls if we are not in editing mode. */ 
+    $SkipWrite = (!isset($this->parent) || !$this->parent) && !session::is_set('edit');
+
+    $smarty->assign("sshPublicKeyACL", $this->getacl("sshPublicKey", $SkipWrite));
+
+    /* Depending on pwmode, currently hardcoded because there are no other methods */
+    if ( 1 == 1 ){
+      $smarty->assign("pwmode", dirname(__FILE__)."/posix_shadow");
+
+      $shadowMinACL     =  $this->getacl("shadowMin",$SkipWrite);
+      $smarty->assign("shadowmins", sprintf(_("Password can't be changed up to %s days after last change"), 
+                                              "<input name=\"shadowMin\" size=3 maxlength=4 value=\"".$this->shadowMin."\">"));
+
+      $shadowMaxACL     =  $this->getacl("shadowMax",$SkipWrite);
+      $smarty->assign("shadowmaxs", sprintf(_("Password must be changed after %s days"), 
+                                              "<input name=\"shadowMax\" size=3 maxlength=4 value=\"".$this->shadowMax."\">"));
+
+      $shadowInactiveACL=  $this->getacl("shadowInactive",$SkipWrite);
+      $smarty->assign("shadowinactives", sprintf(_("Disable account after %s days of inactivity after password expiry"), 
+                                              "<input name=\"shadowInactive\" size=3 maxlength=4 value=\"".$this->shadowInactive."\">"));
+
+      $shadowWarningACL =  $this->getacl("shadowWarning",$SkipWrite);
+      $smarty->assign("shadowwarnings", sprintf(_("Warn user %s days before password expiry"), 
+                                              "<input name=\"shadowWarning\" size=3 maxlength=4 value=\"".$this->shadowWarning."\">"));
+
+      foreach( array("activate_shadowMin", "activate_shadowMax",
+                     "activate_shadowExpire", "activate_shadowInactive","activate_shadowWarning") as $val){
+        if ($this->$val == 1){
+          $smarty->assign("$val", "checked");
+        } else {
+          $smarty->assign("$val", "");
+        }
+        $smarty->assign("$val"."ACL", $this->getacl($val,$SkipWrite));
+      }
+
+      $smarty->assign("mustchangepasswordACL", $this->getacl("mustchangepassword",$SkipWrite));
+    }
+
+    // Set last system login
+    $smarty->assign("gotoLastSystemLogin",$this->gotoLastSystemLogin);
+
+    /* Fill arrays */
+    $smarty->assign("shells", $this->loginShellList);
+    $smarty->assign("secondaryGroups", $this->secondaryGroups);
+    $smarty->assign("primaryGroup", $this->primaryGroup);
+    if(!$this->multiple_support_active){
+      if (!count($this->groupMembership)){
+        $smarty->assign("groupMembership", array(" "));
+      } else {
+        $smarty->assign("groupMembership", $this->groupMembership);
+      }
+    }else{
+      $smarty->assign("groupMembership", $this->groupMembership);
+      $smarty->assign("groupMembership_some", $this->groupMembership_some);
+    }
+    if (count($this->groupMembership) > 16){
+      $smarty->assign("groups", "too_many_for_nfs");
+    } else {
+      $smarty->assign("groups", "");
+    }
+
+    /* Avoid "Undefined index: forceMode" */
+    $smarty->assign("forceMode", "");
+
+    /* Checkboxes */
+    if ($this->force_ids == 1){
+      $smarty->assign("force_ids", "checked");
+      if (session::get('js')){
+        $smarty->assign("forceMode", "");
+      }
+    } else {
+      if (session::get('js')){
+        $smarty->assign("forceMode", "disabled");
+      }
+      $smarty->assign("force_ids", "");
+    }
+
+    /* Create onClick="" action string for the "Force UID/GID" option 
+     */
+    $onClickIDS ="";
+    if(preg_match("/w/",$this->getacl("uidNumber",$SkipWrite))){
+      $onClickIDS .= "changeState('uidNumber');";
+    }
+    if(preg_match("/w/",$this->getacl("gidNumber",$SkipWrite))){
+      $onClickIDS .= "changeState('gidNumber');";
+    }
+    $smarty->assign("onClickIDS", $onClickIDS);
+    $smarty->assign("force_idsACL", $this->getacl("uidNumber",$SkipWrite).$this->getacl("gidNumber",$SkipWrite));
+
+    foreach(array("primaryGroup","trustmode","activate_shadowWarning","activate_shadowInactive","activate_shadowMin","activate_shadowMax","activate_shadowExpire","mustchangepassword") as $val){
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+    }
+
+
+    /* Load attributes and acl's */
+    foreach($this->attributes as $val){
+      if(in_array($val,$this->multi_boxes)){
+        $smarty->assign("use_".$val,TRUE);
+      }else{
+        $smarty->assign("use_".$val,FALSE);
+      }
+
+      if((session::get("js"))&&(($val=="uidNumber")||($val=="gidNumber")))
+      {
+        $smarty->assign("$val"."ACL",$this->getacl($val,$SkipWrite));
+        $smarty->assign("$val", $this->$val);
+        continue;
+      }
+      $smarty->assign("$val", $this->$val);
+      $smarty->assign("$val"."ACL", $this->getacl($val,$SkipWrite));
+    }
+    if($SkipWrite){
+      $smarty->assign("groupMembershipACL","r");
+    }else{
+      $smarty->assign("groupMembershipACL","rw");
+    }
+    $smarty->assign("status", $this->status);
+
+    /* Work on trust modes */
+    $smarty->assign("trusthide", " disabled ");
+    $smarty->assign("trustmodeACL",  $this->getacl("trustModel",$SkipWrite));
+    if ($this->trustModel == "fullaccess"){
+      $trustmode= 1;
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel",$SkipWrite));
+
+    } elseif ($this->trustModel == "byhost"){
+      $trustmode= 2;
+      $smarty->assign("trusthide", "");
+    } else {
+      // pervent double disable tag in html code, this will disturb our clean w3c html
+      $smarty->assign("trustmode",  $this->getacl("trustModel",$SkipWrite));
+      $trustmode= 0;
+    }
+    $smarty->assign("trustmode", $trustmode);
+    $smarty->assign("trustmodes", array( 0 => _("disabled"), 1 => _("full access"),
+          2 => _("allow access to these hosts")));
+
+
+
+    if((count($this->accessTo))==0)
+      $smarty->assign("emptyArrAccess",true);
+    else
+      $smarty->assign("emptyArrAccess",false);
+
+      if($this->mustchangepassword){
+        $smarty->assign("mustchangepassword", " checked ");
+      } else {
+        $smarty->assign("mustchangepassword", "");
+      }
+
+    $smarty->assign("workstations", $this->accessTo);
+
+    // Add SSH button if available
+    $smarty->assign("sshPublicKey", $this->ssh?1:0);
+
+    $smarty->assign("apply", apply_filter());
+    $smarty->assign("multiple_support" , $this->multiple_support_active);
+    $display.= $smarty->fetch (get_template_path('generic.tpl', TRUE, dirname(__FILE__)));
+    return($display);
+  }
+
+
+  /* remove object from parent */
+  function remove_from_parent()
+  {
+    /* Cancel if there's nothing to do here */
+    if ((!$this->initially_was_account) || (!$this->acl_is_removeable())){
+      return;
+    }
+
+
+    /* Remove and write to LDAP */
+    plugin::remove_from_parent();
+
+    /* Zero out array */
+    $this->attrs['gosaHostACL']= array();
+
+    /* Keep uid, because we need it for authentification! */
+    unset($this->attrs['uid']);
+    unset($this->attrs['trustModel']);
+
+    @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
+    /* include global link_info */
+     $this->attributes, "Save");
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->dn);
+    $this->cleanup();
+    $ldap->modify ($this->attrs); 
+
+    new log("remove","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_DEL, get_class()));
+    }
+
+    /* Delete group only if cn is uid and there are no other
+       members inside */
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=posixGroup)(gidNumber=".$this->gidNumber."))", array("cn", "memberUid"));
+    if ($ldap->count() != 0){
+      $attrs= $ldap->fetch();
+      if ($attrs['cn'][0] == $this->uid &&
+          !isset($this->attrs['memberUid'])){
+
+        $ldap->rmDir($ldap->getDN());
+      }
+    }
+
+    /* Optionally execute a command after we're done */
+    $this->handle_post_events("remove",array("uid" => $this->uid));
+  }
+
+
+  function save_object()
+  {
+    if (isset($_POST['posixTab'])){
+      /* Save values to object */
+      plugin::save_object();
+
+
+      /* Save force GID checkbox */
+      if($this->acl_is_writeable("gidNumber") || $this->acl_is_writeable("uidNumber")){
+        if (isset ($_POST['force_ids'])){
+          $data= 1;
+        } else {
+          $data= 0;
+        }
+        if ($this->force_ids != $data){
+          $this->is_modified= TRUE;
+        }
+        $this->force_ids= $data;
+      }
+
+      /*Save primary group settings */
+      if($this->acl_is_writeable("primaryGroup") && isset($_POST['primaryGroup'])){
+        $data= $_POST['primaryGroup'];
+        if ($this->primaryGroup != $data){
+          $this->is_modified= TRUE;
+        }
+        $this->primaryGroup= $_POST['primaryGroup'];
+      }
+
+      /* Get seelcted shadow checkboxes */
+      foreach(array("shadowMin","shadowMax","shadowExpire","shadowInactive","shadowWarning") as $var) {
+        if($this->acl_is_writeable($var)){
+          $activate_var = "activate_".$var;
+          if(isset($_POST['activate_'.$var])){
+            $this->$activate_var  = true;
+            $this->$var      = $_POST[$var];
+          }else{
+            $this->$activate_var  = false;
+            if ($var != "shadowExpire") {
+              $this->$var      = 0;
+            }
+          }
+        }
+      }
+
+      /* Force change password ? */
+      if(isset($_POST['mustchangepassword'])){
+        $this->mustchangepassword = TRUE;
+      }else{
+        $this->mustchangepassword = FALSE;
+      }
+
+      /* Trust mode - special handling */
+      if($this->acl_is_writeable("trustModel")){
+        if (isset($_POST['trustmode'])){
+          $saved= $this->trustModel;
+          if ($_POST['trustmode'] == "1"){
+            $this->trustModel= "fullaccess";
+          } elseif ($_POST['trustmode'] == "2"){
+            $this->trustModel= "byhost";
+          } else {
+            $this->trustModel= "";
+          }
+          if ($this->trustModel != $saved){
+            $this->is_modified= TRUE;
+          }
+        }
+      }
+    }
+
+    /* Get regex from alphabet */
+    if(isset($_GET['search'])){
+      $this->GroupRegex = $_GET['search']."*";
+    }
+
+    /* Check checkboxes and regexes */
+    if(isset($_POST["PosixGroupDialogPosted"])){
+
+      if(isset($_POST['SubSearch']) && ($_POST['SubSearch'])){
+        $this->SubSearch = true;
+      }else{
+        $this->SubSearch = false;
+      }
+      if(isset($_POST['guser'])){
+        $this->GroupUserRegex = $_POST['guser'];
+      }
+      if(isset($_POST['regex'])){
+        $this->GroupRegex = $_POST['regex'];
+      }
+    }
+    $this->GroupRegex = preg_replace("/\*\**/","*",$this->GroupRegex);
+    $this->GroupUserRegex = preg_replace("/\*\**/","*",$this->GroupUserRegex);
+  }
+
+
+  /* Save data to LDAP, depending on is_account we save or delete */
+  function save()
+  {
+
+    /* Adapt shadow values */
+    if (!$this->activate_shadowExpire){
+      $this->shadowExpire= "0";
+    } else {
+      /* Transform date to days since the beginning */
+      list($day, $month, $year)= explode('.', $this->shadowExpire, 3);
+      $this->shadowExpire= (int)(mktime(0, 0, 0, $month, $day, $year)/ (60 * 60 * 24)) ;
+    }
+    if (!$this->activate_shadowMax){
+      $this->shadowMax= "0";
+    }
+    if ($this->mustchangepassword){
+      $this->shadowLastChange= (int)(date("U") / 86400) - $this->shadowMax - 1;
+    } else {
+      $this->shadowLastChange= (int)(date("U") / 86400);
+    }
+    if (!$this->activate_shadowWarning){
+      $this->shadowWarning= "0";
+    }
+
+    /* Check what to do with ID's 
+        Nothing forced, so we may have to generate our own IDs, if not done already.
+     */
+    if ($this->force_ids == 0){
+
+      /* Handle uidNumber. 
+       * - use existing number if possible
+       * - if not, try to create a new uniqe one.
+       * */
+      if ($this->savedUidNumber != ""){
+        $this->uidNumber= $this->savedUidNumber;
+      } else {
+
+        /* Calculate new id's. We need to place a lock before calling get_next_id
+           to get real unique values. 
+         */
+        $wait= 10;
+        while (get_lock("uidnumber") != ""){
+          sleep (1);
+
+          /* Oups - timed out */
+          if ($wait-- == 0){
+            msg_dialog::display(_("Warning"), _("Timeout while waiting for lock. Ignoring lock!"), WARNING_DIALOG);
+            break;
+          }
+        }
+        add_lock ("uidnumber", "gosa");
+        $this->uidNumber= get_next_id("uidNumber", $this->dn);
+      }
+    }
+
+
+    /* Handle gidNumber 
+     * - If we do not have a primary group selected (automatic), we will check if there 
+     *    is already a group  with the same name and use this as primary.
+     * - .. if we couldn't find a group with the same name, we will create a new one, 
+     *    using the users uid as cn and a generated uniqe gidNumber. 
+     * */
+    if ($this->primaryGroup == 0 || $this->force_ids){
+
+      /* Search for existing group */
+      $ldap = $this->config->get_ldap_link();
+      $ldap->cd($this->config->current['BASE']);
+
+      /* Are we forced to use a special gidNumber? */ 
+      if($this->force_ids){
+        $ldap->search("(&(objectClass=posixGroup)(gidNumber=".$this->gidNumber."))", array("cn","gidNumber"));
+      }else{
+        $ldap->search("(&(objectClass=posixGroup)(gidNumber=*)(cn=".$this->uid."))", array("cn","gidNumber"));
+      }
+
+      /* No primary group found, create a new one */
+      if ($ldap->count() == 0){
+
+        $groupcn = $this->uid;
+        $pri_attr = $this->config->get_cfg_value("accountPrimaryAttribute");
+        $groupdn= preg_replace ('/^'.preg_quote($pri_attr,'/').'=[^,]+,'.preg_quote(get_people_ou(),'/').'/i',
+            'cn='.$groupcn.','.get_groups_ou(), $this->dn);
+
+        /* Request a new and uniqe gidNumber, if required */
+        if(!$this->force_ids){
+          $this->gidNumber= get_next_id("gidNumber", $this->dn);
+        }
+
+        /* If forced gidNumber could not be found, then check if the given group name already exists 
+           we do not want to modify the gidNumber of an existing group.
+         */
+        $cnt= 0; 
+        while($ldap->dn_exists($groupdn) && ($cnt < 100)){
+          $cnt ++;
+          $groupcn = $this->uid."_".$cnt;
+          $groupdn= preg_replace ('/^'.preg_quote($pri_attr,'/').'=[^,]+,'.preg_quote(get_people_ou(),'/').'/i',
+              'cn='.$groupcn.','.get_groups_ou(), $this->dn);
+        }
+
+        /* Create new primary group and enforce the new gidNumber */
+        $g= new group($this->config, $groupdn);
+        $g->cn= $groupcn;
+        $g->force_gid= 1;
+        $g->gidNumber= $this->gidNumber;
+        $g->description= _("Group of user")." ".$this->givenName." ".$this->sn;
+        $g->save ();
+
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+            sprintf("Primary group '%s' created, using gidNumber '%s'.",$groupcn,$this->gidNumber),"");
+      }else{
+        $attrs = $ldap->fetch();
+        $this->gidNumber = $attrs['gidNumber'][0];
+        @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+            "Found and used: <i>".$attrs['dn']."</i>",
+            sprintf("Primary group '%s' exists, gidNumber is '%s'.",$this->uid,$this->gidNumber));
+      }
+    }else{
+
+      /* Primary group was selected by user
+       */
+      $this->gidNumber = $this->primaryGroup;
+      @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
+          sprintf("Primary group '%s' for user '%s' manually selected.",$this->gidNumber,$this->uid),"");
+    }
+
+    if ($this->activate_shadowMin != "1" ) {
+      $this->shadowMin = "";
+    }
+
+    if (($this->activate_shadowMax != "1") && ($this->mustchangepassword != "1")) {
+      $this->shadowMax = "";
+    }
+
+    if ($this->activate_shadowWarning != "1" ) {
+      $this->shadowWarning = "";
+    }
+
+    if ($this->activate_shadowInactive != "1" ) {
+      $this->shadowInactive = "";
+    }
+
+    if ($this->activate_shadowExpire != "1" ) {
+      $this->shadowExpire = "";
+    }
+
+    /* Fill gecos */
+    if (isset($this->parent) && $this->parent !== NULL){
+      $this->gecos= rewrite($this->parent->by_object['user']->cn);
+      if (!preg_match('/^[a-z0-9 -]+$/i', $this->gecos)){
+        $this->gecos= "";
+      }
+    }
+
+    foreach(array("shadowMin","shadowMax","shadowWarning","shadowInactive","shadowExpire") as $attr){
+      $this->$attr = (int) $this->$attr;
+    }
+    /* Call parents save to prepare $this->attrs */
+    plugin::save();
+
+    /* Trust accounts */
+    $objectclasses= array();
+    foreach ($this->attrs['objectClass'] as $key => $class){
+      if (preg_match('/trustAccount/i', $class)){
+        continue;
+      }
+      $objectclasses[]= $this->attrs['objectClass'][$key];
+    }
+    $this->attrs['objectClass']= $objectclasses;
+    if ($this->trustModel != ""){
+      $this->attrs['objectClass'][]= "trustAccount";
+      $this->attrs['trustModel']= $this->trustModel;
+      $this->attrs['accessTo']= array();
+      if ($this->trustModel == "byhost"){
+        foreach ($this->accessTo as $host){
+          $this->attrs['accessTo'][]= $host;
+        }
+      }
+    } else {
+      if ($this->was_trust_account){
+        $this->attrs['accessTo']= array();
+        $this->attrs['trustModel']= array();
+      }
+    }
+
+    if(empty($this->attrs['gosaDefaultPrinter'])){
+      $thid->attrs['gosaDefaultPrinter']=array();
+    }
+
+
+    /* include global link_info */
+    $this->cleanup();
+ 
+    /* This is just a test, we have had duplicated ids 
+        in the past when copy & paste was used. 
+       Normaly this should not happen.
+     */ 
+    if(isset($this->attrs['uidNumber']) && !$this->force_ids){
+      $used = $this->get_used_uid_numbers();
+      if(isset($used[$this->attrs['uidNumber']]) && $used[$this->attrs['uidNumber']] != $this->dn){
+        msg_dialog::display(_("Warning"),_("A duplicated UID number was written for this user. If this was not intended please verify all used uidNumbers!"), WARNING_DIALOG);
+      }
+    }
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->dn);
+    unset($this->attrs['uid']);
+    $ldap->modify ($this->attrs); 
+
+    /* Log last action */ 
+    if($this->initially_was_account){
+      new log("modify","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      new log("create","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()));
+    }
+
+    /* Remove lock needed for unique id generation */
+    del_lock ("uidnumber");
+
+    // Save ssh stuff if needed
+    if ($this->ssh) {
+      $this->ssh->setDN($this->dn);
+      $this->ssh->save();
+    }
+
+    /* Take care about groupMembership values: add to groups */
+    foreach ($this->groupMembership as $key => $value){
+      if (!isset($this->savedGroupMembership[$key])){
+        $g= new grouptabs($this->config,$this->config->data['TABS']['GROUPTABS'], $key,"groups");
+        $g->set_acl_base($key);
+        $g->by_object['group']->addUser($this->uid);
+        $g->save();
+      }
+    }
+
+    /* Remove groups not listed in groupMembership */
+    foreach ($this->savedGroupMembership as $key => $value){
+      if (!isset($this->groupMembership[$key])){
+        $g= new grouptabs($this->config,$this->config->data['TABS']['GROUPTABS'], $key,"groups");
+        $g->set_acl_base($key);
+        $g->by_object['group']->removeUser ($this->uid);
+        $g->save();
+      }
+    }
+
+    /* Optionally execute a command after we're done */
+    if ($this->initially_was_account == $this->is_account){
+      if ($this->is_modified){
+        $this->handle_post_events("modify",array("uid" => $this->uid));
+      }
+    } else {
+      $this->handle_post_events("add" ,array("uid"=> $this->uid));
+    }
+  }
+
+
+  /* Check formular input */
+  function check()
+  {
+    /* Include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Append groups as memberGroup: to check hook 
+     */
+    $tmp_attributes  = $this->attributes;    
+    $this->attributes[] = "memberGroup";
+    $this->memberGroup = array();
+    foreach($this->groupMembership as $dn => $name){
+      $this->memberGroup[] = $name;
+    }
+
+    /* Call common method to give check the hook */
+    $message= plugin::check();
+    $this->attributes = $tmp_attributes;
+
+    /* must: homeDirectory */
+    if ($this->homeDirectory == ""){
+      $message[]= msgPool::required(_("Home directory"));
+    }
+    if (!tests::is_path($this->homeDirectory)){
+      $message[]= msgPool::invalid(_("Home directory"), "", "", "/home/yourname" );
+    }
+
+    /* Check ID's if they are forced by user */
+    if ($this->force_ids == "1"){
+
+      /* Valid uid/gid? */
+      if (!tests::is_id($this->uidNumber)){
+        $message[]= msgPool::invalid(_("UID"), $this->uidNumber, "/[0-9]/");
+      } else {
+        if ($this->uidNumber < $this->config->get_cfg_value("minId")){
+          $message[]= msgPool::toosmall(_("UID"), $this->config->get_cfg_value("minId"));
+        }
+      }
+      if (!tests::is_id($this->gidNumber)){
+        $message[]= msgPool::invalid(_("GID"), $this->gidNumber, "/[0-9]/");
+      } else {
+        if ($this->gidNumber < $this->config->get_cfg_value("minId")){
+          $message[]= msgPool::toosmall(_("GID"), $this->config->get_cfg_value("minId"));
+        }
+      }
+    }
+
+    /* Check dates */
+    if ($this->activate_shadowExpire && ($this->shadowExpire == "" || !tests::is_date($this->shadowExpire))){
+      $message[]= msgPool::invalid("shadowExpire", $this->shadowExpire);
+    }
+
+    /* Check shadow settings, well I like spaghetties... */
+    if ($this->activate_shadowMin){
+      if (!tests::is_id($this->shadowMin)){
+        $message[]= msgPool::invalid(_("shadowMin"), $this->shadowMin, "/[0-9]/");
+      }
+    }
+    if ($this->activate_shadowMax){
+      if (!tests::is_id($this->shadowMax)){
+        $message[]= msgPool::invalid(_("shadowMax"), $this->shadowMax, "/[0-9]/");
+      }
+    }
+    if ($this->activate_shadowWarning){
+      if (!tests::is_id($this->shadowWarning)){
+        $message[]= msgPool::invalid(_("shadowWarning"), $this->shadowWarning, "/[0-9]/");
+      }
+      if (!$this->activate_shadowMax){
+        $message[]= msgPool::depends("shadowWarning", "shadowMax");
+      }
+      if ($this->shadowWarning > $this->shadowMax){
+        $message[]= msgPool::toobig("shadowWarning", "shadowMax");
+      }
+      if ($this->activate_shadowMin && $this->shadowWarning < $this->shadowMin){
+        $message[]= msgPool::toosmall("shadowWarning", "shadowMin");
+      }
+    }
+    if ($this->activate_shadowInactive){
+      if (!tests::is_id($this->shadowInactive)){
+        $message[]= msgPool::invalid(_("shadowInactive"), $this->shadowInactive, "/[0-9]/");
+      }
+      if (!$this->activate_shadowMax){
+        $message[]= msgPool::depends("shadowInactive", "shadowMax");
+      }
+    }
+    if ($this->activate_shadowMin && $this->activate_shadowMax){
+      if ($this->shadowMin > $this->shadowMax){
+        $message[]= msgPool::toobig("shadowMin", "shadowMax");
+      }
+    }
+
+    return ($message);
+  }
+
+
+  function multiple_check()
+  {
+    $message = plugin::multiple_check();
+    if ($this->homeDirectory == "" && in_array("homeDirectory",$this->multi_boxes)){
+      $message[]= msgPool::required(_("Home directory"));
+    }
+    if (!tests::is_path($this->homeDirectory) && in_array("homeDirectory",$this->multi_boxes)){
+      $message[]= msgPool::invalid(_("Home directory"), "", "", "/home/yourname" );
+    }
+
+    /* Check shadow settings, well I like spaghetties... */
+    if ($this->activate_shadowMin && in_array("activate_shadowMin",$this->multi_boxes)){
+      if (!tests::is_id($this->shadowMin)){
+        $message[]= msgPool::invalid(_("shadowMin"), $this->shadowMin, "/[0-9]/");
+      }
+    }
+    if ($this->activate_shadowMax && in_array("activate_shadowMax",$this->multi_boxes)){
+      if (!tests::is_id($this->shadowMax)){
+        $message[]= msgPool::invalid(_("shadowMax"), $this->shadowMax, "/[0-9]/");
+      }
+    }
+    if ($this->activate_shadowWarning && in_array("activate_shadowWarning",$this->multi_boxes)){
+      if (!tests::is_id($this->shadowWarning)){
+        $message[]= msgPool::invalid(_("shadowWarning"), $this->shadowWarning, "/[0-9]/");
+      }
+      if (!$this->activate_shadowMax && in_array("activate_shadowMax",$this->multi_boxes)){
+        $message[]= msgPool::depends("shadowWarning", "shadowMax");
+      }
+      if ($this->shadowWarning > $this->shadowMax && in_array("activate_shadowWarning",$this->multi_boxes)){
+        $message[]= msgPool::toobig("shadowWarning", "shadowMax");
+      }
+      if ($this->activate_shadowMin && $this->shadowWarning < $this->shadowMin && in_array("activate_shadowMin",$this->multi_boxes)){
+        $message[]= msgPool::tosmall("shadowWarning", "shadowMin");
+      }
+    }
+    if ($this->activate_shadowInactive && in_array("activate_shadowInactive",$this->multi_boxes)){
+      if (!tests::is_id($this->shadowInactive)){
+        $message[]= msgPool::invalid(_("shadowInactive"), $this->shadowInactive, "/[0-9]/");
+      }
+      if (!$this->activate_shadowMax && in_array("activate_shadowMax",$this->multi_boxes)){
+        $message[]= msgPool::depends("shadowInactive", "shadowMax");
+      }
+    }
+    if ($this->activate_shadowMin && $this->activate_shadowMax && in_array("activate_shadowMin",$this->multi_boxes)){
+      if ($this->shadowMin > $this->shadowMax){
+        $message[]= msgPool::toobig("shadowMin", "shadowMax");
+      }
+    }
+
+    return($message);
+  }
+
+
+  function addGroup ($groups)
+  {
+    /* include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    /* Walk through groups and add the descriptive entry if not exists */
+    foreach ($groups as $value){
+
+      if (!array_key_exists($value, $this->groupMembership)){
+        $ldap->cat($value, array('cn', 'description', 'dn'));
+        $attrs= $ldap->fetch();
+        error_reporting (0);
+        if (!isset($attrs['description'][0])){
+          $entry= $attrs["cn"][0];
+        } else {
+          $dsc= preg_replace ('/^Group of user/', _("Group of user"), $attrs["description"][0]);
+          $entry= $attrs["cn"][0]." [$dsc]";
+        }
+        error_reporting (E_ALL | E_STRICT);
+
+        if(obj_is_writable($attrs['dn'],"groups/group","memberUid")){
+          $this->groupMembership[$attrs['dn']]= $entry;
+          if($this->multiple_support_active && isset($this->groupMembership_some[$attrs['dn']])){
+            unset($this->groupMembership_some[$attrs['dn']]);
+          }
+        }
+      }
+    }
+
+    /* Sort groups */
+    asort ($this->groupMembership);
+    reset ($this->groupMembership);
+  }
+
+
+  /* Del posix user from some groups */
+  function delGroup ($groups)
+  {
+    $dest= array();
+    foreach($groups as $dn_to_del){
+      if(isset($this->groupMembership[$dn_to_del]) && obj_is_writable($dn_to_del,"groups/group","memberUid")){
+        unset($this->groupMembership[$dn_to_del]);
+      }
+      if($this->multiple_support_active){
+        if(isset($this->groupMembership_some[$dn_to_del]) && obj_is_writable($dn_to_del,"groups/group","memberUid")){
+          unset($this->groupMembership_some[$dn_to_del]);
+        }
+      }
+    }
+  }
+
+
+  /* Adapt from template, using 'dn' */
+  function adapt_from_template($dn, $skip= array())
+  {
+    /* Include global link_info */
+    $ldap= $this->config->get_ldap_link();
+
+    plugin::adapt_from_template($dn, $skip);
+    $template= $this->attrs['uid'][0];
+
+    /* Adapt group membership */
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=posixGroup)(memberUid=".$this->attrs["uid"][0]."))", array("description", "cn"));
+
+    while ($this->attrs= $ldap->fetch()){
+      if (!isset($this->attrs["description"][0])){
+        $entry= $this->attrs["cn"][0];
+      } else {
+        $entry= $this->attrs["cn"][0]." [".$this->attrs["description"][0]."]";
+      }
+      $this->groupMembership[$ldap->getDN()]= $entry;
+    }
+
+    /* Fix primary group settings */
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=posixGroup)(cn=$template)(gidNumber=".$this->gidNumber."))", array("cn"));
+    if ($ldap->count() != 1){
+      $this->primaryGroup= $this->gidNumber;
+    }
+
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=gosaUserTemplate)(uid=".$template.")(accessTo=*))", array("cn","accessTo"));
+    while($attr = $ldap->fetch()){
+      $tmp = $attr['accessTo'];
+      unset ($tmp['count']);
+      $this->accessTo = $tmp;	
+    }
+
+    /* Adjust shadow checkboxes */
+    foreach (array("shadowMin", "shadowMax", "shadowWarning", "shadowInactive") as $val){
+      if ($this->$val != 0){
+        $oval= "activate_".$val;
+        $this->$oval= "1";
+      }
+    }
+
+    /* FIXME: NEED review of this section */
+    /* Need to check shadowExpire separately */
+
+    /* 
+     * If shadowExpire is not enabled in the template, it's a UNIX timestamp - so don't convert it to seconds.
+     * The check is a hack - if difference between timestamp generated above and here is max 1 day.
+     */
+    if(abs($this->shadowExpire - time())>86400) {
+      $this->shadowExpire= $this->convertToSeconds($this->shadowExpire);
+    }
+    
+    /* Only enable checkbox, if shadowExpire is in the future */
+    if($this->shadowExpire > time()) {
+      $this->activate_shadowExpire= "1";
+    }
+  }
+
+  function convertToSeconds($val)
+  {
+    if ($val != 0){
+      $val*= 60 * 60 * 24;
+    } else {
+      $date= getdate();
+      $val= floor($date[0] / (60*60*24)) * 60 * 60 * 24;
+    }
+    return($val);
+  }
+
+
+  function get_used_uid_numbers()
+  {
+    $ids= array();
+    $ldap= $this->config->get_ldap_link();
+
+    $ldap->cd ($this->config->current['BASE']);
+    $ldap->search ("(&(objectClass=posixAccount)(uidNumber=*))", array("uidNumber"));
+
+    /* Get list of ids */
+    while ($attrs= $ldap->fetch()){
+      $ids[$attrs['uidNumber'][0]] = $attrs['dn'];
+    }
+    return($ids);
+  }
+
+
+  /* Get posts from copy & paste dialog */ 
+  function saveCopyDialog()
+  {
+    if(isset($_POST['homeDirectory'])){
+      $this->homeDirectory = $_POST['homeDirectory'];
+      if (isset ($_POST['force_ids'])){
+        $data= 1;
+        $this->gidNumber = $_POST['gidNumber'];
+        $this->uidNumber = $_POST['uidNumber'];
+      } else {
+        $data= 0;
+      }
+      if ($this->force_ids != $data){
+        $this->is_modified= TRUE;
+      }
+      $this->force_ids= $data;
+      $data= $_POST['primaryGroup'];
+      if ($this->primaryGroup != $data){
+        $this->is_modified= TRUE;
+      }
+      $this->primaryGroup= $_POST['primaryGroup'];
+    }
+  }
+ 
+
+  /* Create the posix dialog part for copy & paste */
+  function getCopyDialog()
+  {
+    /* Skip dialog creation if this is not a valid account*/
+    if(!$this->is_account) return("");
+    if ($this->force_ids == 1){
+      $force_ids = "checked";
+      if (session::get('js')){
+        $forceMode = "";
+      }
+    } else {
+      if (session::get('js')){
+        if($this->acl != "#none#")
+          $forceMode ="disabled";
+      }
+      $force_ids = "";
+    }
+
+    $sta = "";
+
+    /* Open group add dialog */
+    if(isset($_POST['edit_groupmembership'])){
+      $this->groupSelect = new groupSelect($this->config,get_userinfo());
+      $sta = "SubDialog";
+    }
+
+    /* If the group-add dialog is closed, call execute 
+       to ensure that the membership is updatd */
+    if(isset($_POST['add_groups_finish']) || isset($_POST['add_groups_cancel'])){
+      $this->execute();
+      $this->groupSelect =NULL;
+    }
+
+    if($this->groupSelect){
+      $str = $this->execute(true);
+      $ret = array();
+      $ret['string'] = $str;
+      $ret['status'] = $sta;
+      return($ret);
+    }
+
+    /* If a group member should be deleted, simply call execute */
+    if(isset($_POST['delete_groupmembership'])){
+      $this->execute();
+    }
+
+    /* Assigned informations to smarty */
+    $smarty = get_smarty();
+    $smarty->assign("homeDirectory",$this->homeDirectory);
+    $smarty->assign("secondaryGroups",$this->secondaryGroups);
+    $smarty->assign("primaryGroup",$this->primaryGroup);
+ 
+    $smarty->assign("uidNumber",$this->uidNumber);
+    $smarty->assign("gidNumber",$this->gidNumber);
+    $smarty->assign("forceMode",$forceMode);
+    $smarty->assign("force_ids",$force_ids);
+    if (!count($this->groupMembership)){
+      $smarty->assign("groupMembership", array(" "));
+    } else {
+      $smarty->assign("groupMembership", $this->groupMembership);
+    }
+
+    /* Display wars message if there are more than 16 group members */
+    if (count($this->groupMembership) > 16){
+      $smarty->assign("groups", "too_many_for_nfs");
+    } else {
+      $smarty->assign("groups", "");
+    }
+    $str = $smarty->fetch(get_template_path("paste_generic.tpl",TRUE,dirname(__FILE__)));
+
+    $ret = array();
+    $ret['string'] = $str;
+    $ret['status'] = $sta;
+    return($ret);
+  }
+
+
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+
+    /* Avoid using the same gid/uid number as source user 
+        empty numbers to enforce new ones. */
+    $this->savedUidNumber = "";
+    $this->savedGidNumber = "";
+
+    /* Get group membership */
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search("(&(objectClass=posixGroup)(memberUid=".$source['uid'][0]."))", array("cn", "description"));
+
+    while ($attrs= $ldap->fetch()){
+      if (!isset($attrs["description"][0])){
+        $entry= $attrs["cn"][0];
+      } else {
+        $entry= $attrs["cn"][0]." [".$attrs["description"][0]."]";
+      }
+      $this->groupMembership[$ldap->getDN()]= $entry;
+    }
+    asort($this->groupMembership);
+    reset($this->groupMembership);
+
+    /* Fill group */
+    if(isset($source['gidNumber'][0])){
+      $this->primaryGroup= $source['gidNumber'][0];
+    }
+
+
+    /* Adjust shadow checkboxes */
+    foreach (array("shadowMin", "shadowMax", "shadowWarning", "shadowInactive",
+                "shadowExpire") as $val){
+
+        if ($this->$val != 0){
+            $oval= "activate_".$val;
+            $this->$oval= "1";
+        }
+    }
+
+  }
+
+
+  function multiple_execute()
+  {
+    return($this->execute());
+  }
+
+
+  static function plInfo()
+  {
+    return (array(
+          "plDescription"     => _("POSIX account"),
+          "plSelfModify"      => TRUE,
+          "plDepends"         => array("user"),
+          "plPriority"        => 2,
+          "plSection"         => array("personal" => _("My account")),
+          "plCategory"        => array("users"),
+          "plOptions"         => array(),
+
+          "plProvidedAcls"  => array(
+
+            "homeDirectory"       =>  _("Home directory"), 
+            "loginShell"          =>  _("Shell"),
+            "uidNumber"           =>  _("User ID"),
+            "gidNumber"           =>  _("Group ID"),
+
+            "mustchangepassword"=>  _("Force password change on login"),
+            "shadowMin"           =>  _("Shadow min"),
+            "shadowMax"           =>  _("Shadow max"),
+            "shadowWarning"       =>  _("Shadow warning"),
+            "shadowInactive"      =>  _("Shadow inactive"),
+            "shadowExpire"        =>  _("Shadow expire"),
+            "sshPublickey"        =>  _("Public SSH key"),
+            "trustModel"          =>  _("System trust model")))
+            );
+  }
+
+
+  /* Return selected values for multiple edit */
+  function get_multi_edit_values()
+  {
+    $ret = plugin::get_multi_edit_values();
+    $ret['groupMembership']     = $this->groupMembership;
+    $ret['groupMembership_some']= $this->groupMembership_some;
+
+    if(in_array("primaryGroup",$this->multi_boxes)){
+      $ret['primaryGroup'] = $this->primaryGroup;
+    }
+    if(in_array("trustmode",$this->multi_boxes)){
+      $ret['trustModel'] = $this->trustModel;
+      $ret['accessTo'] = $this->accessTo;
+    }
+    foreach(array("shadowWarning","shadowInactive","shadowMin","shadowMax", "shadowExpire") as $entry){
+      $active = "activate_".$entry;
+      if(in_array($active,$this->multi_boxes)){
+        $ret[$entry] = $this->$entry;
+        $ret[$active] = $this->$active;
+      }
+    }
+    if(in_array("mustchangepassword",$this->multi_boxes)){
+      $ret['mustchangepassword'] = $this->mustchangepassword;
+    }
+    return($ret);
+  }
+
+
+  /* Save posts for multiple edit 
+   */
+  function multiple_save_object()
+  {
+    if(isset($_POST['posix_mulitple_edit'])){
+ 
+      /* Backup expire value */ 
+      $expire_tmp = $this->shadowExpire;
+  
+      /* Update all values */
+      plugin::multiple_save_object();
+
+      /* Get selected checkboxes */
+      foreach(array("primaryGroup","trustmode","mustchangepassword","activate_shadowWarning","activate_shadowInactive","activate_shadowMin", "activate_shadowMax","activate_shadowExpire") as $val){
+        if(isset($_POST["use_".$val])){
+          $this->multi_boxes[] = $val;
+        }
+      }
+
+      /* Update special values, checkboxes for posixShadow */
+      foreach(array("shadowMin","shadowMax","shadowExpire","shadowInactive","shadowWarning") as $var) {
+        if($this->acl_is_writeable($var)){
+          $activate_var = "activate_".$var;
+          if(in_array($activate_var, $this->multi_boxes)){
+            if(isset($_POST['activate_'.$var])){
+              $this->$activate_var  = true;
+              $this->$var      = $_POST[$var];
+            }else{
+              $this->$activate_var  = false;
+              $this->$var      = 0;
+            }
+          }
+        }
+      }
+
+      /* Restore shadow value, if the shadow attribute isn't used */
+      if(!in_array("activate_shadowExpire",$this->multi_boxes)){
+        $this->shadowExpire = $expire_tmp;
+      }
+
+      /* Force change password ? */
+      if(isset($_POST['mustchangepassword'])){
+        $this->mustchangepassword = TRUE;
+      }else{
+        $this->mustchangepassword = FALSE;
+      }
+
+      /* Trust mode - special handling */
+      if($this->acl_is_writeable("trustModel")){
+        if (isset($_POST['trustmode'])){
+          $saved= $this->trustModel;
+          if ($_POST['trustmode'] == "1"){
+            $this->trustModel= "fullaccess";
+          } elseif ($_POST['trustmode'] == "2"){
+            $this->trustModel= "byhost";
+          } else {
+            $this->trustModel= "";
+          }
+          if ($this->trustModel != $saved){
+            $this->is_modified= TRUE;
+          }
+        }
+      }
+
+      /* Save primary group settings */
+      if($this->acl_is_writeable("primaryGroup") && isset($_POST['primaryGroup'])){
+        $data= $_POST['primaryGroup'];
+        if ($this->primaryGroup != $data){
+          $this->is_modified= TRUE;
+        }
+        $this->primaryGroup= $_POST['primaryGroup'];
+      }
+    }
+  }
+
+  
+  /* Initialize plugin with given atribute arrays 
+   */
+  function init_multiple_support($attrs,$all)
+  {
+    plugin::init_multiple_support($attrs,$all);
+
+    /* Some dummy values */
+    $groups_some = array();
+    $groups_all  = array();
+    $groups_uid  = array();
+    $uids        = array();
+    $first       = TRUE;
+
+    /* Get all groups used by currently edited users */
+    $uid_filter="";  
+    for($i =0; $i < $this->multi_attrs_all['uid']['count'] ; $i ++){
+      $uid = $this->multi_attrs_all['uid'][$i];
+      $uids[] = $uid;
+      $uid_filter.= "(memberUid=".$uid.")"; 
+    }
+    $uid_filter = "(&(objectClass=posixGroup)(|".$uid_filter."))";
+    $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->search($uid_filter,array("dn","cn","memberUid"));
+    while($group = $ldap->fetch()){
+      $groups_some[$group['dn']] = $group['cn'][0];
+      for($i = 0 ; $i < $group['memberUid']['count'] ; $i++){
+        $groups_uid[$group['dn']][] = $group['memberUid'][$i];
+      }
+    }
+
+    /* Create an array, containing all used groups */
+    $groups_all = $groups_some;
+    foreach($groups_all as $id => $group){
+      foreach($uids as $uid){
+        if(!in_array($uid,$groups_uid[$id])){
+          unset($groups_all[$id]);
+          break;
+        }
+      }
+    }
+
+    /* Assign group array */
+    $this->groupMembership = $groups_all;
+
+    /* Create an array of all grouops used by all users */
+    foreach( $groups_all as $dn => $cn){
+      if(isset($groups_some[$dn])){
+        unset($groups_some[$dn]);
+      }
+    }
+    $this->groupMembership_some = $groups_some;
+    $this->primaryGroup = $this->gidNumber;
+
+    /* Is this account a trustAccount? */
+    if (isset($this->multi_attrs['trustModel'])){
+      $this->trustModel= $this->multi_attrs['trustModel'][0];
+      $this->was_trust_account= TRUE;
+      $this->multi_boxes[] = "trustmode";
+    } else {
+      $this->was_trust_account= FALSE;
+      $this->trustModel= "";
+    }
+
+    /* Create access informations */
+    $this->accessTo = array();
+    if (isset($this->multi_attrs['accessTo'])){
+      for ($i= 0; $i<$this->multi_attrs['accessTo']['count']; $i++){
+        $tmp= $this->multi_attrs['accessTo'][$i];
+        $this->accessTo[$tmp]= $tmp;
+      }
+    }
+
+    /* Adjust shadow checkboxes */
+    foreach (array("shadowMin", "shadowMax", "shadowWarning", "shadowInactive",
+          "shadowExpire") as $val){
+      if ($this->$val != 0){
+        $oval= "activate_".$val;
+        $this->$oval= "1";
+      }
+    }
+
+    /* Convert to seconds */
+    if(isset($this->multi_attrs['shadowExpire'])){
+      $this->shadowExpire = $this->convertToSeconds($this->multi_attrs['shadowExpire'][0]);
+    }else{
+      $this->activate_shadowExpire = FALSE;
+    }
+  }
+
+
+  function set_multi_edit_values($attrs)
+  {
+    $groups = array();
+
+    /* Update groupMembership, keep optinal group */
+    foreach($attrs['groupMembership_some'] as $dn => $cn){
+      if(isset($this->groupMembership[$dn])){
+        $groups[$dn] = $cn;
+      }
+    }
+    /* Update groupMembership, add forced groups */
+    foreach($attrs['groupMembership'] as $dn => $cn){
+      $groups[$dn] = $cn;
+    }
+    plugin::set_multi_edit_values($attrs);
+    $this->groupMembership = $groups;
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/posix/generic.tpl b/gosa-core/plugins/personal/posix/generic.tpl
new file mode 100644
index 0000000..a0611d5
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/generic.tpl
@@ -0,0 +1,210 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=0 border=0>
+ <tr>
+  <td style="width:50%; vertical-align:top;">
+   <h2><img class="center" alt="" align="middle" src="images/rightarrow.png" /> {t}Generic{/t}</h2>
+   <table summary="">
+    <tr>
+     <td><label for="homeDirectory">{t}Home directory{/t}</label>{$must}</td>
+     <td>
+{render acl=$homeDirectoryACL checkbox=$multiple_support checked=$use_homeDirectory}
+      <input type='text' id="homeDirectory" name="homeDirectory" size=40 maxlength=120 value="{$homeDirectory}">
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="loginShell">{t}Shell{/t}</label></td>
+     <td>
+{render acl=$loginShellACL checkbox=$multiple_support checked=$use_loginShell}
+      <select id="loginShell" size="1" name="loginShell">
+       {html_options values=$shells output=$shells selected=$loginShell}
+      </select> 
+{/render}
+     </td>
+    </tr>
+    <tr>
+     <td><label for="primaryGroup">{t}Primary group{/t}</label></td>
+     <td>
+{render acl=$gidNumberACL checkbox=$multiple_support checked=$use_primaryGroup}
+      <select id="primaryGroup" size="1" name="primaryGroup">
+       {html_options options=$secondaryGroups selected=$primaryGroup}
+      </select> 
+{/render}
+     </td>
+    </tr>
+{if !$multiple_support}
+    <tr>
+     <td>{t}Status{/t}</td>
+     <td>{$status}</td>
+    </tr>
+{if $gotoLastSystemLogin}
+    <tr>
+     <td>{t}Last logon{/t}</td>
+     <td>{$gotoLastSystemLogin}</td>
+    </tr>
+{/if}
+{/if}
+   </table>
+
+{if !$multiple_support}
+
+   <table summary="">
+    <tr>
+     <td>
+{render acl=$force_idsACL}
+      <input id="force_ids" type=checkbox name="force_ids" value="1" {$force_ids} 
+			onclick="{$onClickIDS}">
+{/render}
+					</td>
+					<td>
+      <label for="force_ids">{t}Force UID/GID{/t}</label>
+     </td>
+					<td style="width:20px;"></td>
+					<td>
+						<label for="uidNumber">{t}UID{/t}</label>
+					</td>
+					<td>
+{render acl=$uidNumberACL}
+						<input type='text' id="uidNumber" name="uidNumber" size=9 maxlength=9 {$forceMode} value="{$uidNumber}">
+{/render}
+					</td>
+				</tr>
+				<tr>
+					<td colspan="3"></td>
+					<td>
+						<label for="gidNumber">{t}GID{/t}</label>
+					</td>
+     <td>
+{render acl=$gidNumberACL}
+						<input type='text' id="gidNumber" name="gidNumber" size=9 maxlength=9 {$forceMode} value="{$gidNumber}">
+{/render}
+					</td>
+				</tr>
+   </table>
+{/if}
+  </td>
+  <td style="border-left:1px solid #A0A0A0">
+     
+  </td>
+  <td style="vertical-align:top;">
+   <h2><img alt="" class="center" align="middle" src="plugins/posix/images/members.png" /> {t}Group membership{/t}</h2>
+   {if $groups eq "too_many_for_nfs"}
+    <b style="color:red">{t}(Warning: more than 16 groups are not supported by NFS!){/t}</b>
+    <br>
+   {/if}
+{render acl=$groupMembershipACL}
+   <select style="width:100%; height:130px;" name="group_list[]" size=16 multiple >
+{if !$multiple_support}
+    {html_options options=$groupMembership}
+{else}
+	{foreach from=$groupMembership item=group key=key}
+		<option value="{$key}">{$group} ({t}Common group{/t})</option>
+	{/foreach}
+	{foreach from=$groupMembership_some item=group key=key}
+		<option value="{$key}" 
+			style='color: #888888; background: #DDDDDD;background-color: #DDDDDD;'>{$group} ({t}Groups differ{/t})</option>
+	{/foreach}
+{/if}
+   </select>
+{/render}
+   <br>
+{render acl=$groupMembershipACL}
+   <input type=submit value="{msgPool type=addButton}" name="edit_groupmembership" > 
+{/render}
+{render acl=$groupMembershipACL}
+   <input type=submit value="{msgPool type=delButton}" name="delete_groupmembership" >
+{/render}
+  </td>
+ </tr>
+</table>
+
+<p class="seperator"> </p>
+
+<table summary="" style="width:100% ; vertical-align:top; text-align:left;" cellpadding=0 border=0>
+ <tr>
+  <td style='width:50%;vertical-align:top'>
+   {if $sshPublicKey == 1}
+   {render acl=$sshPublicKeyACL}
+   <h2><img alt="" class="center" align="middle" src="images/lists/key.png" /> {t}SSH keys{/t}</h2>
+   <input type=submit value="{t}Edit public ssh keys...{/t}" name="edit_sshpublickey">
+   <div style='border-bottom:1px solid #A0A0A0;height:8px'></div>
+   {/render}
+   {/if}
+   <h2><img alt="" class="center" align="middle" src="plugins/posix/images/terminal_small.png" /> {t}Account{/t}</h2>
+   {include file="$pwmode.tpl"}
+  </td>
+  <td style="border-left:1px solid #A0A0A0">
+     
+  </td>
+  <td style="vertical-align:top;">
+   <h2><img alt="" class="center" align="middle" src="images/lists/locked.png" /> {t}System trust{/t}</h2>
+{if !$multiple_support}
+	{t}Trust mode{/t} 
+	{render acl=$trustmodeACL}
+		<select name="trustmode" id="trustmode" size=1 
+			onChange="changeSelectState('trustmode', 'wslist'); 
+					  changeSelectState('trustmode', 'add_ws'); 
+				      changeSelectState('trustmode', 'del_ws');">
+		  {html_options options=$trustmodes selected=$trustmode}
+		</select>
+	{/render}
+	{render acl=$trustmodeACL}
+	   <select style="width:100%" id="wslist" name="workstation_list[]" size=8 multiple {$trusthide}>
+		{html_options values=$workstations output=$workstations}
+		{if $emptyArrAccess}
+			<option disabled> </option>
+		{/if}
+	   </select>
+	{/render}
+	   <br>
+	{render acl=$trustmodeACL}
+	   <input type="submit" id="add_ws" value="{msgPool type=addButton}" name="add_ws" {$trusthide}> 
+	{/render}
+	{render acl=$trustmodeACL}
+	   <input type="submit" id="del_ws" value="{msgPool type=delButton}" name="delete_ws" {$trusthide}>
+	{/render}
+
+{else}
+    <input type="checkbox" name="use_trustmode" {if $use_trustmode} checked {/if}
+    	class="center" onClick="$('div_trustmode').toggle();">
+   	{t}Trust mode{/t} 
+    <div {if !$use_trustmode} style="display: none;" {/if} id="div_trustmode">
+	{render acl=$trustmodeACL}
+		<select name="trustmode" id="trustmode" size=1 
+			onChange="changeSelectState('trustmode', 'wslist'); 
+					  changeSelectState('trustmode', 'add_ws'); 
+				      changeSelectState('trustmode', 'del_ws');">
+		  {html_options options=$trustmodes selected=$trustmode}
+		</select>
+	{/render}
+	{render acl=$trustmodeACL}
+	   <select style="width:100%" id="wslist" name="workstation_list[]" size=8 multiple {$trusthide}>
+		{html_options values=$workstations output=$workstations}
+		{if $emptyArrAccess}
+			<option disabled> </option>
+		{/if}
+	   </select>
+	{/render}
+	   <br>
+	{render acl=$trustmodeACL}
+	   <input type="submit" id="add_ws" value="{msgPool type=addButton}" name="add_ws" {$trusthide}> 
+	{/render}
+	{render acl=$trustmodeACL}
+	   <input type="submit" id="del_ws" value="{msgPool type=delButton}" name="delete_ws" {$trusthide}>
+	{/render}
+	</div>
+{/if}
+  </td>
+ </tr>
+</table>
+{if $multiple_support}
+	<input type="hidden" name="posix_mulitple_edit" value="1">
+{/if}
+
+<input type="hidden" name="posixTab" value="posixTab">
+
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('homeDirectory');
+  -->
+</script>
diff --git a/gosa-core/plugins/personal/posix/groupSelect/class_filterLDAPBlacklist.inc b/gosa-core/plugins/personal/posix/groupSelect/class_filterLDAPBlacklist.inc
new file mode 100644
index 0000000..cd150dd
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/class_filterLDAPBlacklist.inc
@@ -0,0 +1,31 @@
+<?php
+
+class filterLDAPBlacklist {
+
+  static function query($parent,$base, $scope, $filter, $attributes, $category, $objectStorage= "")
+  {
+    $result = filterLDAP::query($parent,$base, $scope, $filter, $attributes, $category, $objectStorage);
+    return(filterLDAPBlacklist::filterByBlacklist($result));
+  }
+
+  static function filterByBlacklist($entries)
+  {
+    if(session::is_set('filterBlacklist')){
+      $blist = session::get('filterBlacklist');
+      foreach($blist as $attr_name => $attr_values){
+        foreach($attr_values as $match){
+          foreach($entries as $id => $entry){
+            if(isset($entry[$attr_name])){
+              $test = $entry[$attr_name];
+              if(!is_array($test)) $test = array($test);
+              if(in_array($match, $test)) unset($entries[$id]);
+            }
+          }
+        }
+      }
+    }
+    return(array_values($entries));
+  }
+}
+
+?>
diff --git a/gosa-core/plugins/personal/posix/groupSelect/class_groupSelect.inc b/gosa-core/plugins/personal/posix/groupSelect/class_groupSelect.inc
new file mode 100644
index 0000000..2c98ada
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/class_groupSelect.inc
@@ -0,0 +1,52 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_groupManagement.inc 14766 2009-11-05 14:30:35Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class groupSelect extends management
+{
+
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+
+    $this->storagePoints = array(get_ou("groupRDN"));
+
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path("group-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("group-list.xml", true, dirname(__FILE__)));
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "groups", $headpage);
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/posix/groupSelect/group-filter.tpl b/gosa-core/plugins/personal/posix/groupSelect/group-filter.tpl
new file mode 100644
index 0000000..c115cd0
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/group-filter.tpl
@@ -0,0 +1,37 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+ {$PRIMARY} <LABEL for='TEMPLATES'>{t}Show primary groups{/t}</LABEL><br>
+ {$SAMBA} <LABEL for='TEMPLATES'>{t}Show samba groups{/t}</LABEL><br>
+ {$MAIL} <LABEL for='TEMPLATES'>{t}Show mail groups{/t}</LABEL><br>
+
+ {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/personal/posix/groupSelect/group-filter.xml b/gosa-core/plugins/personal/posix/groupSelect/group-filter.xml
new file mode 100644
index 0000000..5a43637
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/group-filter.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>groups</category>
+    <template>../plugins/personal/posix/groupSelect/group-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+  <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=posixGroup)$NAME(|$PRIMARY$MAIL$SAMBA))</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>checkbox</type>
+    <tag>PRIMARY</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(!(objectClass=gosaObject))</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>MAIL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gosaMailAccount)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SAMBA</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=sambaGroupMapping)</set>
+  </element>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(|(cn=*$*)(description=*$*))</set>
+    <alphabet>true</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(objectClass=posixGroup)(|(cn=*$NAME*)(description=*$NAME*)))</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/personal/posix/groupSelect/group-list.tpl b/gosa-core/plugins/personal/posix/groupSelect/group-list.tpl
new file mode 100644
index 0000000..99c169e
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/group-list.tpl
@@ -0,0 +1,36 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+<input type="hidden" value="1" name="PosixGroupDialogPosted">
+<p class="plugbottom">
+  <input type=submit name="add_groups_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_groups_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/personal/posix/groupSelect/group-list.xml b/gosa-core/plugins/personal/posix/groupSelect/group-list.xml
new file mode 100644
index 0000000..721a160
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/groupSelect/group-list.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>../plugins/personal/posix/groupSelect/group-list.tpl</template>
+    <module>groups</module>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Group</label>
+      <objectClass>posixGroup</objectClass>
+      <category>groups</category>
+      <class>group</class>
+      <image>plugins/groups/images/groups.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|||</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{cn}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{description}</value>
+      <export>true</export>
+    </column>
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/personal/posix/main.inc b/gosa-core/plugins/personal/posix/main.inc
new file mode 100644
index 0000000..dd13dea
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/main.inc
@@ -0,0 +1,147 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.inc 15315 2010-01-26 13:00:52Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+/* Remove locks created by this plugin
+*/
+$lock_msg="";
+if ($remove_lock || isset($_POST['edit_cancel'])){
+  if(session::is_set('posixAccount') && session::is_set('edit')){
+    del_lock($ui->dn);
+  }
+}
+
+/* Remove this plugin from session
+*/
+if ( $cleanup ){
+  session::un_set('posixAccount');
+  session::un_set('edit');
+
+}else{
+
+  /* Reset requested? */
+  if (isset($_POST['edit_cancel'])){
+    session::un_set ('edit');
+    session::un_set ('posixAccount');
+  }
+
+  /* Create posixAccount object on demand */
+  if (!session::is_set('posixAccount') || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+    $posixAccount= new posixAccount ($config, $ui->dn);
+    $posixAccount->enable_CSN_check();
+    $posixAccount->set_acl_base($ui->dn);
+    $posixAccount->set_acl_category("users");
+    session::set('posixAccount',$posixAccount);
+  }
+  $posixAccount = session::get('posixAccount');
+
+  /* save changes back to object */
+  if (session::is_set('edit')){
+    $posixAccount->save_object ();
+  }
+
+  /* Enter edit mode? */
+  if ((isset($_POST['edit'])) && (!session::is_set('edit'))){
+    
+    /* Check locking */
+    if (($username= get_lock($ui->dn)) != ""){
+      session::set('back_plugin',$plug);
+      session::set('LOCK_VARS_TO_USE',array("/^edit$/","/^plug$/"));
+      $lock_msg =  gen_locked_message ($username, $ui->dn);
+
+    }else{
+
+      /* Lock the current entry */
+      add_lock ($ui->dn, $ui->dn);
+      session::set('edit',TRUE);
+    }
+  }
+
+  /* save changes to LDAP and disable edit mode */
+  $info= "";
+  if (isset($_POST['edit_finish'])){
+
+    /* Perform checks */
+    $message= $posixAccount->check ();
+
+    /* No errors, save object */
+    if (count ($message) == 0){
+      $posixAccount->save ();
+      del_lock ($ui->dn);
+      session::un_set ('edit');
+
+      /* Remove from session */
+      session::un_set ('posixAccount');
+    } else {
+      /* Errors found, show message */
+      msg_dialog::displayChecks($message);
+    }
+  }
+
+  /* Execute formular */
+  if($lock_msg){
+    $display = $lock_msg;
+  }else{
+    $display.= $posixAccount->execute ();
+  }
+
+  /* Store changes  in session */
+  if (session::is_set('edit')){
+    session::set('posixAccount',$posixAccount);
+  }
+
+  /* Show page footer depending on the mode */
+  if (!$posixAccount->groupSelect && !$posixAccount->trustSelect && $posixAccount->is_account && empty($lock_msg)){
+
+    $display.= "<p class=\"plugbottom\">";
+
+    /* Are we in edit mode? */
+    if (session::is_set('edit')){
+      $display.= "<input type=submit name=\"edit_finish\" style=\"width:80px\" value=\"".msgPool::okButton()."\">\n";
+      $display.= " ";
+      $display.= "<input type=submit name=\"edit_cancel\" value=\"".msgPool::cancelButton()."\">\n";
+      $info= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/locked.png').
+             "\"> ".$ui->dn." ";
+    } else {
+      $info= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/unlocked.png').
+             "\"> ".$ui->dn." ";
+
+      /* Only display edit button if there is at least one attribute editable */
+      if(preg_match("/r/",$ui->get_permissions($ui->dn,"users/posixAccount"))){
+        $info.= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/lists/on.png')."\"> ".
+          msgPool::clickEditToChange();
+
+        $display.= "<input type=submit name=\"edit\" value=\"".msgPool::editButton()."\">\n";
+      }
+      $display.= "<input type=\"hidden\" name=\"ignore\">\n";
+    }
+    $display.= "</p>\n";
+  }
+
+  /* Page header*/
+  $display= print_header(get_template_path('plugins/posix/images/plugin.png'),
+                         _("POSIX settings"), $info).$display;
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/posix/paste_generic.tpl b/gosa-core/plugins/personal/posix/paste_generic.tpl
new file mode 100644
index 0000000..cf286de
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/paste_generic.tpl
@@ -0,0 +1,78 @@
+<table width='100%'>
+	<tr>
+		<td style='vertical-align:top;'>
+			<h2>{t}Posix settings{/t}</h2>
+			<table>
+	  			<tr>
+					<td>
+		  				<label for="homeDirectory">{t}Home directory{/t}</label>
+					</td>
+					<td>
+		  				<input type='text' id="homeDirectory" name="homeDirectory" size=40 maxlength=120 value="{$homeDirectory}">
+					</td>
+	  			</tr>
+			</table>
+			<table style='width:100%;'>
+        <tr>
+         <td><label for="primaryGroup">{t}Primary group{/t}</label></td>
+         <td>
+          <select id="primaryGroup" size="1" name="primaryGroup">
+           {html_options options=$secondaryGroups selected=$primaryGroup}
+          </select> 
+         </td>
+        </tr>
+	  			<tr>
+					<td>
+					  	<input id="force_ids" type=checkbox name="force_ids" value="1"  {$force_ids}
+								 onclick="changeState('uidNumber');changeState('gidNumber');">
+					</td>
+					<td>
+						<label for="force_ids">
+						{t}Force UID/GID{/t}
+						</label>
+					</td>
+					<td> </td>
+					<td>
+						<label for="uidNumber">{t}UID{/t}</label>
+					</td>
+					<td>
+						<input type='text' id="uidNumber" name="uidNumber" size=9 maxlength=9 {$forceMode} value="{$uidNumber}">
+					</td>
+				</tr>
+				<tr>
+					<td colspan="3"> </td>
+					<td>
+						<label for="gidNumber">{t}GID{/t}</label>
+					</td>
+					<td>
+						<input type='text' id="gidNumber" name="gidNumber" size=9 maxlength=9 {$forceMode} value="{$gidNumber}">
+					</td>
+				</tr>
+			</table>
+			<table width="50%">
+				<tr>
+					<td style="vertical-align:top;" colspan="4">
+						<h2><img alt="" class="center" align="middle" src="plugins/posix/images/members.png" /> {t}Group membership{/t}</h2>
+					</td>
+				</tr>
+				<tr>
+					<td style="vertical-align:top;" colspan="4">
+						
+						{if $groups eq "too_many_for_nfs"}
+							<b style="color:red">{t}(Warning: more than 16 groups are not supported by NFS!){/t}</b>
+							<br>
+						{/if}
+						<select style="width:100%; height:130px;" name="group_list[]" size=16 multiple>
+							{html_options options=$groupMembership}
+						</select>
+						<br>
+						<input type=submit value="{msgPool type=addButton}" name="edit_groupmembership"> 
+						<input type=submit value="{msgPool type=delButton}" name="delete_groupmembership">
+					</td>
+				</tr>
+			</table>
+  		</td>
+	</tr>
+</table>
+<br>
+<br>
diff --git a/gosa-core/plugins/personal/posix/posix_groups.tpl b/gosa-core/plugins/personal/posix/posix_groups.tpl
new file mode 100644
index 0000000..496773d
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/posix_groups.tpl
@@ -0,0 +1,83 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+	<tr>
+  		<td style="vertical-align:top;">
+   			<div class="contentboxh" style="height:20px;">
+    			<p class="contentboxh" style="font-size:12px">
+     				<b>{t}Select groups to add{/t} {$hint}</b>
+   	 			</p>
+   			</div>
+   			<div class="contentboxb" style="">
+    			<p class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+				 	<select style="width:100%; height:430px; margin-top:4px;" name="groups[]" size="15" multiple>
+						{html_options options=$groups}
+				 	</select>
+     				<input type=hidden name="edit_helper">
+    			</p>
+   			</div>
+  		</td>
+  		<td style="vertical-align:top; width:350px;">
+   			<div class="contentboxh" style="height:20px;">
+    			<p class="contentboxh" style="font-size:12px">
+					<img src="{$launchimage}" align="right" alt="[F]"><b>{t}Filters{/t}</b>
+				</p>
+   			</div>
+   			<div class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     			<table summary="" style="width:100%;">
+      				{$alphabet}
+     			</table>
+
+				<table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+					<tr>
+						<td width="50%">
+							<img alt="" src="{$tree_image}" align=middle> {t}Display groups of department{/t}
+						</td>
+						<td>
+							<select name="depselect" size=1 onChange="mainform.submit()" title="{t}Choose the department the search will be based on{/t}">
+							  {html_options options=$deplist selected=$depselect}
+							</select>
+						</td>
+					</tr>
+				</table>
+				<table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+					<tr>
+						<td width="50%">
+							<img alt="" src="{$search_image}" align=middle> {t}Display groups matching{/t}
+						</td>
+						<td>
+							<input type='text' name='regex' maxlength='20' value='{$regex}' 
+								title='{t}Regular expression for matching group names{/t}' onChange="mainform.submit()">
+						</td>
+					</tr>
+				</table>
+				<table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+					<tr>
+						<td width="50%">
+							<img alt="" src="{$search_image}" align=middle> {t}Display groups of user{/t}
+						</td>
+						<td>
+							<input type='text' name='guser' maxlength='20' value='{$guser}' 
+								title='{t}User name of which groups are shown{/t}' onChange="mainform.submit()">
+						</td>
+					</tr>
+				</table>
+				<table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+                    <tr>
+						<td>
+							<input type="checkbox" name="SubSearch" value="1" {$SubSearchCHK}
+								onClick="mainform.submit();">
+							{t}Search in subtrees{/t}
+						</td>
+					</tr>
+                </table>
+			   {$apply}
+   			</div>
+  		</td>
+	</tr>
+</table>
+<input type="hidden" value="1" name="PosixGroupDialogPosted">
+<p class="plugbottom">
+  <input type=submit name="add_groups_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_groups_cancel" value="{msgPool type=cancelButton}">
+</p>
+
diff --git a/gosa-core/plugins/personal/posix/posix_shadow.tpl b/gosa-core/plugins/personal/posix/posix_shadow.tpl
new file mode 100644
index 0000000..9c15386
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/posix_shadow.tpl
@@ -0,0 +1,67 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=0 border=0>
+ <tr>
+  <td style="width:50%; vertical-align:top;">
+
+<!-- must_change_password  -->
+{render acl=$mustchangepasswordACL checkbox=$multiple_support checked=$use_mustchangepassword}
+   <input type="checkbox" class="center" name="mustchangepassword" value="1" {$mustchangepassword}>
+{/render}
+   {t}User must change password on first login{/t}
+   <br>
+
+<!-- shadowMin -->
+{render acl=$shadowMinACL checkbox=$multiple_support checked=$use_activate_shadowMin}
+   <input type="checkbox" class="center" name="activate_shadowMin" value="1" {$activate_shadowMin}>
+{/render}
+{render acl=$shadowMinACL}
+   {$shadowmins}
+{/render}
+   <br>
+
+<!-- activate_shadowMax -->
+{render acl=$shadowMaxACL checkbox=$multiple_support checked=$use_activate_shadowMax}
+   <input type="checkbox" class="center" name="activate_shadowMax" value="1" {$activate_shadowMax}>
+{/render}
+{render acl=$shadowMaxACL}
+   {$shadowmaxs}
+{/render}
+   <br>
+
+<!-- activate_shadowExpire -->
+{render acl=$shadowExpireACL checkbox=$multiple_support checked=$use_activate_shadowExpire}
+   <table border="0" cellpadding="0" cellspacing="0"><tr><td><input type="checkbox" class="center" name="activate_shadowExpire" value="1" {$activate_shadowExpire}>
+{/render}
+   {t}Password expires on{/t} 
+   {render acl=$shadowExpireACL}
+   </td><td style='width:130px'>
+   <input type="text" id="shadowExpire" name="shadowExpire" class="date" style='width:100px' value="{$shadowExpire}">
+     {if $shadowExpireACL|regex_replace:"/[cdmr]/":"" == "w"}
+     <script type="text/javascript">
+     {literal}
+       var datepicker  = new DatePicker({ relative : 'shadowExpire', language : '{/literal}{$lang}{literal}',
+                             keepFieldEmpty : true, enableCloseEffect : false, enableShowEffect : false});
+     {/literal}
+     </script>
+     {/if}
+     </td></tr></table>
+   {/render}
+
+<!-- shadowInactive -->
+{render acl=$shadowInactiveACL checkbox=$multiple_support checked=$use_activate_shadowInactive}
+   <input type="checkbox" class="center" name="activate_shadowInactive" value="1" {$activate_shadowInactive}>
+{/render}
+{render acl=$shadowInactiveACL}
+   {$shadowinactives}
+{/render}
+   <br>
+
+<!-- activate_shadowWarning -->
+{render acl=$shadowWarningACL checkbox=$multiple_support checked=$use_activate_shadowWarning}
+   <input type="checkbox" class="center" name="activate_shadowWarning" value="1" {$activate_shadowWarning}>
+{/render}
+{render acl=$shadowWarningACL}
+   {$shadowwarnings}
+{/render}
+  </td>
+ </tr>
+</table>
diff --git a/gosa-core/plugins/personal/posix/trustSelect/class_trustSelect.inc b/gosa-core/plugins/personal/posix/trustSelect/class_trustSelect.inc
new file mode 100644
index 0000000..2bcb148
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trustSelect/class_trustSelect.inc
@@ -0,0 +1,122 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_groupManagement.inc 14766 2009-11-05 14:30:35Z hickert $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class trustSelect extends management
+{
+
+  protected $skipFooter = TRUE;
+  protected $skipHeader = TRUE;
+
+  function __construct($config,$ui)
+  {
+    $this->config = $config;
+    $this->ui = $ui;
+   
+    $this->storagePoints = array(get_ou("workstationRDN"),get_ou("terminalRDN"),get_ou("serverRDN"),);
+ 
+#    // Build filter
+#    if (session::global_is_set(get_class($this)."_filter")){
+#      $filter= session::global_get(get_class($this)."_filter");
+#    } else {
+      $filter = new filter(get_template_path("trust-filter.xml", true, dirname(__FILE__)));
+      $filter->setObjectStorage($this->storagePoints);
+#    }
+    $this->setFilter($filter);
+
+    // Build headpage
+    $headpage = new listing(get_template_path("trust-list.xml", true, dirname(__FILE__)));
+    $headpage->registerElementFilter("filterProperties", "groupManagement::filterProperties");
+    $headpage->setFilter($filter);
+    parent::__construct($config, $ui, "groups", $headpage);
+  }
+
+
+  static function filterProperties($row, $classes)
+  {
+    $result= "";
+
+    $map = array(
+        "posixGroup" => 
+        array(
+          "image" => "plugins/groups/images/groups.png",
+          "plugin" => "group",
+          "alt" => _("Posix"),
+          "title" => _("Edit posix properties")
+          ),
+
+        "gosaMailAccount" => 
+        array(
+          "image" => "plugins/groups/images/mail.png",
+          "plugin" => "mailgroup",
+          "alt" => _("Mail"),
+          "title" => _("Edit mail properties")
+          ),
+
+        "sambaGroupMapping" => 
+        array(
+          "image" => "plugins/groups/images/samba.png",
+          "plugin" => "group",
+          "alt" => _("Samba"),
+          "title" => _("Edit samba properties")
+          ),
+
+        "goFonPickupGroup" => 
+          array(
+              "image" => "plugins/groups/images/asterisk.png",
+              "plugin" => "group",
+              "alt" => _("Phone"),
+              "title" => _("Edit phone properties")
+              ),
+
+        "gotoMenuGroup" => 
+          array(
+              "image" => "plugins/groups/images/menu.png",
+              "plugin" => "appgroup",
+              "alt" => _("Menu"),
+              "title" => _("Edit start menu properties")
+              ),
+
+        "gotoEnvironment" => 
+          array(
+              "image" => "plugins/groups/images/environment.png",
+              "plugin" => "environment",
+              "alt" => _("Environment"),
+              "title" => _("Edit environment properties")
+              )
+          );
+
+
+    // Walk thru map
+    foreach ($map as $oc => $properties) {
+      if (in_array_ics($oc, $classes)) {
+        $result.="<input class='center' type='image' src='".$properties['image']."' ".
+          "alt='".$properties['alt']."' title='".$properties['title'].
+                 "' name='listing_edit_".$properties['plugin']."_$row' style='padding:1px'>";
+      } else {
+        $result.="<img src='images/empty.png' alt=' ' class='center' style='padding:1px'>";
+      }
+    }
+    return $result;
+  }
+} 
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/personal/posix/trustSelect/trust-filter.tpl b/gosa-core/plugins/personal/posix/trustSelect/trust-filter.tpl
new file mode 100644
index 0000000..0d91133
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trustSelect/trust-filter.tpl
@@ -0,0 +1,39 @@
+<div class="contentboxh">
+ <p class="contentboxh">
+  <img src="images/launch.png" align="right" alt="[F]">{t}Filter{/t}
+ </p>
+</div>
+
+<div class="contentboxb">
+
+<div style="border-top:1px solid #AAAAAA"></div>
+
+  {$SERVER} {t}Show servers{/t}<br>
+  {$WORKSTATION} {t}Show workstations{/t}<br>
+  {$TERMINAL} {t}Show terminals{/t}<br>
+
+  <div style="border-top:1px solid #AAAAAA"></div>
+
+  {$SCOPE}
+
+ <table summary="" style="width:100%;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td>
+    <label for="NAME">
+     <img src="images/lists/search.png" align=middle> Name
+    </label>
+   </td>
+   <td>
+    {$NAME}
+   </td>
+  </tr>
+ </table>
+
+ <table summary=""  width="100%"  style="background:#EEEEEE;border-top:1px solid #B0B0B0;">
+  <tr>
+   <td width="100%" align="right">
+    {$APPLY}
+   </td>
+  </tr>
+ </table>
+</div>
diff --git a/gosa-core/plugins/personal/posix/trustSelect/trust-filter.xml b/gosa-core/plugins/personal/posix/trustSelect/trust-filter.xml
new file mode 100644
index 0000000..10ea5d5
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trustSelect/trust-filter.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<filterdef>
+  <definition>
+    <category>groups</category>
+    <template>../plugins/personal/posix/trustSelect/trust-filter.tpl</template>
+    <initial>true</initial>
+  </definition>
+
+ <search>
+    <query>
+      <backend>LDAPBlacklist</backend>
+      <filter>(&(|$SERVER $WORKSTATION $TERMINAL)$NAME)</filter>
+      <attribute>dn</attribute>
+      <attribute>objectClass</attribute>
+      <attribute>cn</attribute>
+      <attribute>description</attribute>
+    </query>
+    <scope>auto</scope>
+  </search>
+
+  <element>
+    <type>textfield</type>
+    <tag>NAME</tag>
+    <size>20</size>
+    <maxlength>60</maxlength>
+    <default></default>
+    <unset></unset>
+    <set>(cn=*$*)</set>
+    <alphabet>false</alphabet>
+    <autocomplete>
+      <backend>LDAPBlacklist</backend>
+      <filter>(cn=*$NAME*)</filter>
+      <attribute>cn</attribute>
+      <frequency>0.5</frequency>
+      <characters>3</characters>
+    </autocomplete>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>SERVER</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=goServer)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>WORKSTATION</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gotoWorkstation)</set>
+  </element>
+
+  <element>
+    <type>checkbox</type>
+    <tag>TERMINAL</tag>
+    <default>true</default>
+    <unset></unset>
+    <set>(objectClass=gotoTerminal)</set>
+  </element>
+
+</filterdef>
diff --git a/gosa-core/plugins/personal/posix/trustSelect/trust-list.tpl b/gosa-core/plugins/personal/posix/trustSelect/trust-list.tpl
new file mode 100644
index 0000000..087cea0
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trustSelect/trust-list.tpl
@@ -0,0 +1,35 @@
+<input type='image' src='images/empty.png' name='no_action_posted' value='do_nothing' alt='' style='width:2px;height:2px;'>
+
+<table summary="" style="width:100%;height:100%; vertical-align:top; text-align:left;" cellpadding=2>
+  <tr>
+    <td style="vertical-align:top; width:100%;">
+      <div class="contentboxh">
+        <p class="contentboxh"> {$HEADLINE} {$SIZELIMIT}</p>
+      </div>
+      
+      <div class="contentboxb">
+       <div style='background:white;padding:3px;'>
+        <table><tr>
+          <td>{$ROOT} </td><td>{$BACK} </td><td>{$HOME} </td><td>{$RELOAD} </td><td>{$SEPARATOR} </td><td>{t}Base{/t} {$BASE} </td><td>{$SEPARATOR} </td><td><img src='images/rocket.png' alt='' class='center'></td><td> {$ACTIONS}</td>
+        </tr></table>
+       </div>
+      </div>
+      
+      <div style='height:4px;'>
+      </div>
+      {$LIST}
+    </td>
+    <td style='vertical-align:top;min-width:250px'>
+      {$FILTER}
+    </td>
+  </tr>
+</table>
+
+
+<p class="plugbottom">
+  <input type=submit name="add_ws_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_ws_cancel" value="{msgPool type=cancelButton}">
+</p>
+
+<input type="hidden" name="ignore">
diff --git a/gosa-core/plugins/personal/posix/trustSelect/trust-list.xml b/gosa-core/plugins/personal/posix/trustSelect/trust-list.xml
new file mode 100644
index 0000000..584e8b3
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trustSelect/trust-list.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<list>
+  <definition>
+    <departmentBrowser>true</departmentBrowser>
+    <departmentRootVisible>false</departmentRootVisible>
+    <baseMode>true</baseMode>
+    <multiSelect>true</multiSelect>
+    <template>../plugins/personal/posix/trustSelect/trust-list.tpl</template>
+    <label>Please select the desired entries</label>
+    <defaultSortColumn>1</defaultSortColumn>
+
+    <objectType>
+      <label>Server</label>
+      <objectClass>goServer</objectClass>
+      <category>server</category>
+      <class>servgeneric</class>
+      <image>plugins/systems/images/select_server.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Workstation</label>
+      <objectClass>gotoWorkstation</objectClass>
+      <category>workstation</category>
+      <class>workgeneric</class>
+      <image>plugins/systems/images/select_workstation.png</image>
+    </objectType>
+
+    <objectType>
+      <label>Terminal</label>
+      <objectClass>gotoTerminal</objectClass>
+      <category>terminal</category>
+      <class>termgeneric</class>
+      <image>plugins/systems/images/select_terminal.png</image>
+    </objectType>
+
+  </definition>
+
+  <table>
+    <layout>|20px;c|||</layout>
+
+    <department>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </department>
+
+    <department>
+      <value>%{filter:departmentLink(row,dn,description)}</value>
+      <span>1</span>
+    </department>
+
+    <column>
+      <value>%{filter:objectType(dn,objectClass)}</value>
+    </column>
+
+    <column>
+      <label>Name</label>
+      <sortAttribute>cn</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{cn}</value>
+      <export>true</export>
+    </column>
+
+    <column>
+      <label>Description</label>
+      <sortAttribute>description</sortAttribute>
+      <sortType>string</sortType>
+      <value>%{description}</value>
+      <export>true</export>
+    </column>
+
+  </table>
+
+  <actionmenu>
+  </actionmenu>
+
+  <actiontriggers snapshot="false" copypaste="false">
+  </actiontriggers>
+
+</list>
diff --git a/gosa-core/plugins/personal/posix/trust_machines.tpl b/gosa-core/plugins/personal/posix/trust_machines.tpl
new file mode 100644
index 0000000..f7b0b2c
--- /dev/null
+++ b/gosa-core/plugins/personal/posix/trust_machines.tpl
@@ -0,0 +1,42 @@
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+<tr>
+  <td style="vertical-align:top;">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px">
+     <b>{t}Select systems to add{/t} {$hint}</b><br>
+    </p>
+   </div>
+   <div class="contentboxb">
+    <p class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <select style="width:100%; margin-top:4px; height:450px;" name="wslist[]" size="15" multiple>
+	{html_options values=$wslist output=$wslist}
+     </select>
+    </p>
+   </div>
+  </td>
+  <td style="vertical-align:top; width:350px">
+   <div class="contentboxh" style="height:20px;">
+    <p class="contentboxh" style="font-size:12px"><img src="{$launchimage}" align="right" alt="[F]"><b>{
+t}Filters{/t}</b></p>
+   </div>
+   <div class="contentboxb" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8">
+     <table summary="" style="width:100%;">
+      {$alphabet}
+     </table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$tree_image}" align=middle> {t}Display systems of department{/t}</td>
+    <td><select name="depselect" size=1 onChange="mainform.submit()" title="{t}Choose the department the search will be based on{/t}">
+      {html_options options=$deplist selected=$depselect}
+    </select></td></tr></table>
+    <table summary="" width="100%" style="border-top:1px solid #B0B0B0;background-color:#F8F8F8"><tr><td width="50%"><img alt="" src="{$search_image}" align=middle> {t}Display systems matching{/t}</td>
+    <td><input type='text' name='regex' maxlength='20' value='{$regex}' title='{t}Regular expression for matching addresses{/t}' onChange="mainform.submit()"></td></tr></table>
+   {$apply}
+   </div>
+  </td>
+</tr>
+</table>
+
+<p class="plugbottom">
+  <input type=submit name="add_ws_finish" value="{msgPool type=addButton}">
+   
+  <input type=submit name="add_ws_cancel" value="{msgPool type=cancelButton}">
+</p>
diff --git a/gosa-core/redhat/01_fix_template_location.patch b/gosa-core/redhat/01_fix_template_location.patch
new file mode 100644
index 0000000..274cf32
--- /dev/null
+++ b/gosa-core/redhat/01_fix_template_location.patch
@@ -0,0 +1,12 @@
+diff -urNad gosa-core~/include/functions.inc gosa-core/include/functions.inc
+--- gosa-core~/include/functions.inc    2008-05-30 10:39:33.000000000 +0200
++++ gosa-core/include/functions.inc     2008-06-03 09:16:19.000000000 +0200
+@@ -40,7 +40,7 @@
+ }
+
+ /* Define common locatitions */
+-define ("CONFIG_TEMPLATE_DIR", "../contrib");
++define ("CONFIG_TEMPLATE_DIR", "/usr/share/doc/gosa");
+ define ("TEMP_DIR","/var/cache/gosa/tmp");
+
+ /* Define get_list flags */
diff --git a/gosa-core/redhat/02_fix_class_mapping.patch b/gosa-core/redhat/02_fix_class_mapping.patch
new file mode 100644
index 0000000..95b8ea8
--- /dev/null
+++ b/gosa-core/redhat/02_fix_class_mapping.patch
@@ -0,0 +1,50 @@
+--- gosa-core~/include/functions.inc	2009-02-16 14:19:18.000000000 +0100
++++ gosa-core/include/functions.inc	2009-02-16 14:18:15.000000000 +0100
+@@ -73,7 +73,7 @@
+ $svn_revision = '$Revision: 13395 $';
+ 
+ /* Include required files */
+-require_once("class_location.inc");
++require_once("/var/cache/gosa/class.cache");
+ require_once ("functions_debug.inc");
+ require_once ("accept-to-gettext.inc");
+ 
+--- gosa-core~/update-gosa	2009-02-16 14:19:18.000000000 +0100
++++ gosa-core/update-gosa	2009-02-16 14:18:15.000000000 +0100
+@@ -21,7 +21,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
+-define ("GOSA_HOME", dirname(__FILE__));
++define ("GOSA_HOME", "/usr/share/gosa");
+ define ("LOCALE_DIR", GOSA_HOME."/locale");
+ define ("PLUGSTATE_DIR", GOSA_HOME."/state");
+ 
+@@ -122,8 +122,8 @@
+ function rescan_classes()
+ {
+ 	echo "Updating class cache...\n";
+-	$class_mapping= get_classes();
+-	$filename= GOSA_HOME."/include/class_location.inc";
++	$class_mapping= get_classes("/usr/share/gosa");
++	$filename= "/var/cache/gosa/class.cache";
+ 
+ 	/* Sanity checks */
+ 	if (!file_exists($filename) || is_writable($filename)) {
+--- gosa-core~/include/class_config.inc	2009-02-16 14:19:18.000000000 +0100
++++ gosa-core/include/class_config.inc	2009-02-16 14:18:15.000000000 +0100
+@@ -76,12 +76,12 @@
+         if we have installed or removed plugins. 
+      */
+     if(session::global_is_set("class_location.inc:timestamp")){
+-      $tmp = stat("../include/class_location.inc");
++      $tmp = $tmp = stat("/var/cache/gosa/class.cache");
+       if($tmp['mtime'] != session::global_get("class_location.inc:timestamp")){
+         session::global_un_set("plist");
+       }
+     }
+-    $tmp = stat("../include/class_location.inc");
++    $tmp = stat("/var/cache/gosa/class.cache");
+     session::global_set("class_location.inc:timestamp",$tmp['mtime']);
+ 
+     if($this->filename != "" && filemtime($this->filename) != $this->last_modified){
diff --git a/gosa-core/redhat/03_fix_locale_location.patch b/gosa-core/redhat/03_fix_locale_location.patch
new file mode 100644
index 0000000..148a9d0
--- /dev/null
+++ b/gosa-core/redhat/03_fix_locale_location.patch
@@ -0,0 +1,41 @@
+diff -urNad gosa-2.6.0+svn11288~/include/php_setup.inc gosa-2.6.0+svn11288/include/php_setup.inc
+--- gosa-2.6.0+svn11288~/include/php_setup.inc	2008-06-11 15:55:59.000000000 +0200
++++ gosa-2.6.0+svn11288/include/php_setup.inc	2008-06-11 15:56:00.000000000 +0200
+@@ -20,7 +20,7 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+  */
+ 
+-define ("LOCALE_DIR", dirname(dirname(__FILE__))."/locale/compiled");
++define ("LOCALE_DIR", "/var/cache/gosa/locale");
+ 
+ function gosaRaiseError($errno, $errstr, $errfile, $errline)
+ {
+diff -urNad gosa-2.6.0+svn11288~/update-gosa gosa-2.6.0+svn11288/update-gosa
+--- gosa-2.6.0+svn11288~/update-gosa	2008-06-11 15:55:59.000000000 +0200
++++ gosa-2.6.0+svn11288/update-gosa	2008-06-11 16:02:30.000000000 +0200
+@@ -169,20 +169,20 @@
+ 
+ 	/* For each language, merge the target .mo to the compiled directory. */
+ 	foreach ($languages as $language => $po_files){
+-		if (!is_dir(LOCALE_DIR."/compiled/${language}/LC_MESSAGES")){
+-			if (!mkdir (LOCALE_DIR."/compiled/${language}/LC_MESSAGES", 0755, TRUE)){
+-				echo "Failed to create '".LOCALE_DIR."/compiled/${language}/LC_MESSAGES'- aborted";
++		if (!is_dir("/var/cache/gosa/locale/${language}/LC_MESSAGES")){
++			if (!mkdir ("/var/cache/gosa/locale/${language}/LC_MESSAGES", 0755, TRUE)){
++				echo "Failed to create '/var/cache/gosa/locale/${language}/LC_MESSAGES'- aborted";
+ 				exit (3);
+ 			}
+ 		}
+ 
+ 		/* Cat all these po files into one single file */
+-		system ("(cd ".LOCALE_DIR." && msgcat --use-first ".implode(" ", $po_files)." > compiled/${language}/LC_MESSAGES/messages.po)", $val);
++		system ("(cd ".LOCALE_DIR." && msgcat --use-first ".implode(" ", $po_files)." > /var/cache/gosa/locale/${language}/LC_MESSAGES/messages.po)", $val);
+ 		if ($val != 0){
+ 			echo "Merging of message files failed - aborted";
+ 			exit (4);
+ 		}
+-		system ("(cd ".LOCALE_DIR."/compiled/${language}/LC_MESSAGES && msgfmt -o messages.mo messages.po && rm messages.po)", $val);
++		system ("(cd /var/cache/gosa/locale/${language}/LC_MESSAGES && msgfmt -o messages.mo messages.po && rm messages.po)", $val);
+ 		if ($val != 0){
+ 			echo "Compiling of message files failed - aborted";
+ 			exit (5);
diff --git a/gosa-core/redhat/04_fix_online_help_location.patch b/gosa-core/redhat/04_fix_online_help_location.patch
new file mode 100644
index 0000000..85f8ff6
--- /dev/null
+++ b/gosa-core/redhat/04_fix_online_help_location.patch
@@ -0,0 +1,24 @@
+diff -urNad gosa-core~/html/helpviewer.php gosa-core/html/helpviewer.php
+--- gosa-core~/html/helpviewer.php	2008-04-12 19:58:14.000000000 +0200
++++ gosa-core/html/helpviewer.php	2008-04-14 17:25:10.000000000 +0200
+@@ -110,7 +110,7 @@
+ if(session::is_set('current_class_for_help')){
+ 
+   /* Create new XML parser with the path to the Xml file */
+-  $xml = new parseXml("../doc/guide.xml");
++  $xml = new parseXml("/etc/gosa/guide.xml");
+   
+   /* Generate help array */
+   $str = $xml->parse();
+diff -urNad gosa-core~/update-gosa gosa-core/update-gosa
+--- gosa-core~/update-gosa	2008-04-14 14:59:22.000000000 +0200
++++ gosa-core/update-gosa	2008-04-14 17:24:53.000000000 +0200
+@@ -193,7 +193,7 @@
+ 
+ function rescan_guide()
+ {
+-	$master_guide= "doc/guide.xml";
++	$master_guide= "/etc/gosa/guide.xml";
+ 	echo "Updating Online Help Index...\n";
+ 	$master_guide_content="<?xml version=\"1.0\"?>\n".
+ 		"<!--\n".
diff --git a/gosa-core/redhat/README.php b/gosa-core/redhat/README.php
new file mode 100644
index 0000000..ce509ae
--- /dev/null
+++ b/gosa-core/redhat/README.php
@@ -0,0 +1 @@
+Please make sure that you have PHP 5.2.x from some source. It will not work with PHP 5.1!
diff --git a/gosa-core/redhat/README.selinux b/gosa-core/redhat/README.selinux
new file mode 100644
index 0000000..8bfe609
--- /dev/null
+++ b/gosa-core/redhat/README.selinux
@@ -0,0 +1,9 @@
+These RPM-Packages do not support selinux. To make use of GOsa, please
+
+* Create a selinux policy for the RPM package to work correctly. Send
+  your work to pollmeier at gonicus.de in order to be included in the next
+  upstream package.
+
+* Disable selinux by typing
+  # setenforce 0
+
diff --git a/gosa-core/redhat/gosa.spec b/gosa-core/redhat/gosa.spec
new file mode 100644
index 0000000..0bd1624
--- /dev/null
+++ b/gosa-core/redhat/gosa.spec
@@ -0,0 +1,391 @@
+# Some sort of "detection" of suse
+%{?suse_version:%define suse 1}
+%{!?suse_version:%define suse 0}
+
+# Define Packagename, e.g.:
+# rpmbuild --rebuild --define 'sourcename gosa' gosa.srpm
+%{!?sourcename:%define sourcename %{name}-%{version}}
+
+#
+# Distribution
+#
+Summary: 		Web Based LDAP Administration Program 
+Name:			gosa
+Version: 		2.6.10
+Release:		1
+License: 		GPL
+Source: 		ftp://oss.GONICUS.de/pub/gosa/%{sourcename}.tar.bz2
+URL: 			https://oss.GONICUS.de/labs/gosa/
+Group: 			System/Administration
+Vendor:			GONICUS GmbH
+Packager:		Stefan Japes <japes at GONICUS.de>
+Buildarch: 		noarch
+Patch:			01_fix_template_location.patch
+Patch1:			02_fix_class_mapping.patch
+Patch2:			03_fix_locale_location.patch
+Patch3:			04_fix_online_help_location.patch
+%if %{suse}
+Requires:		apache2,apache2-mod_php5,php5,php5-gd,php5-ldap,php5-mcrypt,php5-mysql,php5-imap,php5-iconv,php5-hash,php5-posix,php5-mbstring,php5-gettext,ImageMagick,gettext-tools
+%else
+Requires: 		httpd,php,php-ldap,php-imap,php-snmp,php-mysql,php-mbstring,ImageMagick,perl-Crypt-SmbHash
+%endif
+BuildRoot: 		%{_tmppath}/%{name}-%{version}-root
+BuildArch:		noarch
+
+########################
+
+%define confdir 	/etc/%{name}
+
+%if %{suse}
+	%{echo:Building SuSE rpm}
+	%define apacheuser wwwrun
+	%define apachegroup root
+	%define webconf	/etc/apache2/conf.d/
+	%define docdir /usr/share/doc/packages/gosa
+%else
+	%{echo:Building other rpm}
+	%define apacheuser apache 
+	%define apachegroup apache 
+	%define webconf	/etc/httpd/conf.d/	
+	%define docdir /usr/share/doc/gosa-%{version}
+%endif
+
+%description
+GOsa is a combination of system-administrator and end-user web
+interface, designed to handle LDAP based setups.
+Provided is access to posix, shadow, samba, proxy, fax, and kerberos
+accounts. It is able to manage the postfix/cyrus server combination
+and can write user adapted sieve scripts.
+
+########################
+
+%package dev
+Group:                  System/Administration
+Summary:                GOsa development utiles
+%if %{suse}
+Requires:               lyx
+%else
+Requires:               php-cli,latex2html,lyx
+%endif
+Obsoletes:              gosa-ldap
+
+%description dev
+This package contains a couple of tools to generate
+online help, extract localisations and aid developing.
+
+########################
+
+%package desktop
+Group:                  System/Administration
+Summary:                Desktop integration for GOsa
+%if %{suse}
+Requires:               firefox
+%else
+Requires:               firefox
+%endif
+Obsoletes:              gosa-ldap
+
+%description desktop
+This package includes a menu definition for your
+desktop environment.
+
+########################
+
+%package schema
+Group: 			System/Administration
+Summary: 		Schema Definitions for the GOSA package
+%if %{suse}
+Requires:		gosa >= %{version}
+%else
+Requires:		gosa >= %{version}
+%endif
+Obsoletes:		gosa-ldap
+
+%description schema
+Contains the Schema definition files for the GOSA admin package.
+
+########################
+
+%package help-en
+Group: 			System/Administration
+Summary: 		English online manual for GOSA package
+Requires:		gosa >= %{version}
+
+%description help-en
+English online manual page for GOSA package
+
+########################
+
+%package help-de
+Group: 			System/Administration
+Summary: 		German localized online manual for GOSA package
+Requires:		gosa >= %{version}
+
+%description help-de
+German localized online manual page for GOSA package
+
+########################
+
+%package help-fr
+Group: 			System/Administration
+Summary: 		French localized online manual for GOSA package
+Requires:		gosa >= %{version}
+
+%description help-fr
+French localized online manual page for GOSA package
+
+########################
+
+%package help-nl
+Group: 			System/Administration
+Summary: 		Dutch localized online manual for GOSA package
+Requires:		gosa >= %{version}
+
+%description help-nl
+Dutch localized online manual page for GOSA package
+
+########################
+
+%package help-es
+Group: 			System/Administration
+Summary: 		Spain localized online manual for GOSA package
+Requires:		gosa >= %{version}
+
+%description help-es
+Spain localized online manual page for GOSA package
+
+########################
+
+%prep
+%setup -q -n %{sourcename}
+%patch -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+find . -depth -name CVS -type d | xargs rm -rf
+
+########################
+
+%build
+
+########################
+
+%install
+# Create buildroot
+mkdir -p %{buildroot}/usr/share/gosa
+
+# Create files for temporary stuff
+for i in compile config cache; do \
+  mkdir -p %{buildroot}/var/spool/gosa/$i ; \
+done
+mkdir -p %{buildroot}/var/cache/gosa
+
+# Copy
+DIRS="doc ihtml plugins html include locale setup"
+echo `pwd`
+for i in $DIRS; do \
+  cp -ua $i %{buildroot}/usr/share/gosa/$i ; \
+done
+
+# Copy files for gosa
+mkdir -p %{buildroot}/usr/sbin
+mkdir -p %{buildroot}/etc/gosa
+mkdir -p %{buildroot}/usr/share/doc/gosa
+mkdir -p %{buildroot}%{webconf}
+
+touch %{buildroot}/etc/gosa/gosa.secrets
+mv contrib/gosa.conf		%{buildroot}/usr/share/doc/gosa
+mv update-gosa 			%{buildroot}/usr/sbin
+mv bin/gosa-encrypt-passwords 	%{buildroot}/usr/sbin
+mv debian/gosa-apache.conf 	%{buildroot}%{webconf}
+mv contrib/shells 		%{buildroot}/etc/gosa
+mv contrib/encodings 		%{buildroot}/etc/gosa
+mv contrib/openldap/slapd.conf 	%{buildroot}/usr/share/doc/gosa/slapd.conf-example
+mv -f doc manual
+
+# Cleanup manual dirs
+for i in admin ; do \
+  rm -rf %{buildroot}/usr/share/gosa/doc/$i ; \
+done
+
+# Remove (some) unneeded files
+for i in gen_locale.sh gen_online_help.sh gen_function_list.php update.sh; do \
+ rm -rf %{buildroot}/usr/share/gosa/$i ; \
+done
+
+# Cleanup lyx warnings
+find %{buildroot}/usr/share/gosa -name WARNINGS |xargs rm
+
+# Cleanup guide
+rm -rf %{buildroot}/usr/share/gosa/doc/guide/user/*/lyx-source
+
+# Copy default config
+mkdir -p %{buildroot}%{confdir}
+mkdir -p %{buildroot}%{webconf}
+
+# Copy file for gosa-schema
+mkdir -p %{buildroot}/etc/openldap/schema/gosa
+
+mv contrib/openldap/*.schema %{buildroot}/etc/openldap/schema/gosa
+
+# Copy files for gosa-dev
+mkdir -p %{buildroot}/usr/bin
+mv update-locale %{buildroot}/usr/bin
+mv update-online-help %{buildroot}/usr/bin
+mv update-pdf-help %{buildroot}/usr/bin
+mv dh-make-gosa %{buildroot}/usr/bin
+
+# Copy files for desktop
+mkdir -p %{buildroot}/etc/gosa
+mkdir -p %{buildroot}/usr/bin
+mkdir -p %{buildroot}/usr/sbin
+mkdir -p %{buildroot}/usr/share/pixmaps
+mkdir -p %{buildroot}/usr/share/applications
+mkdir -p %{buildroot}/usr/share/man/man1/
+
+mv contrib/desktoprc 		%{buildroot}/etc/gosa
+mv contrib/gosa 		%{buildroot}/usr/bin
+mv debian/gosa.xpm 		%{buildroot}/usr/share/pixmaps
+mv debian/gosa-16.xpm 		%{buildroot}/usr/share/pixmaps
+mv debian/gosa-desktop.desktop 	%{buildroot}/usr/share/applications
+
+# Gzip manpages from source
+for x in update-gosa.1 dh-make-gosa.1 update-locale.1 update-online-help.1 update-pdf-help.1
+do
+	gzip $x
+done
+
+%if %{suse}
+	sed -i 's#/usr/bin/php#/usr/bin/php5#' %{buildroot}/usr/sbin/update-gosa
+	sed -i 's#/usr/bin/php#/usr/bin/php5#' %{buildroot}/usr/sbin/gosa-encrypt-passwords
+	cat <<-EOF >> %{buildroot}%{webconf}/gosa-apache.conf
+	
+	<Directory /usr/share/gosa/html>
+	    Options None
+	    AllowOverride None
+	    Order deny,allow
+	    Allow from all
+	</Directory>
+	EOF
+%endif
+
+# Copy manpages
+mv ./*.1.gz 			%{buildroot}/usr/share/man/man1/
+gzip -c contrib/gosa.1 > contrib/gosa.1.gz
+mv contrib/gosa.1.gz 		%{buildroot}/usr/share/man/man1/
+
+mkdir -p %{buildroot}/usr/share/doc/gosa-%{version}
+rm -rf %{buildroot}/usr/share/gosa/contrib
+
+########################
+
+%clean
+rm -rf %{buildroot}
+
+########################
+
+%post
+/usr/sbin/update-gosa
+
+########################
+
+%pre
+# Cleanup compile dir on updates, always exit cleanly even on errors
+[ -d /var/spool/gosa ] && rm -rf /var/spool/gosa/* ; exit 0
+
+########################
+
+%postun
+# Remove temporary files, just to be sure
+[ -d /var/spool/gosa ] && rm -rf /var/spool/gosa ; exit 0
+[ -d /usr/share/gosa ] && rm -rf /usr/share/gosa ; exit 0
+
+########################
+
+%files
+%defattr(-,root,root)
+%doc %attr(-,root,root) AUTHORS README README.safemode Changelog COPYING INSTALL FAQ CODING
+%config %attr(-,root,root) /usr/share/doc/gosa/gosa.conf
+#%attr(-,root,root) /contrib/openldap
+%config %attr(-,root,root) /usr/share/doc/gosa/slapd.conf-example
+%attr(755,root,root) /usr/sbin/update-gosa
+%attr(755,root,root) /usr/share/man/man1/update-gosa.1.gz
+%attr(644,root,root) /etc/gosa/shells
+%attr(644,root,root) /etc/gosa/encodings
+%attr(755,root,root) /usr/sbin/gosa-encrypt-passwords
+%config(noreplace) %attr(0644,root,root) %{webconf}/gosa-apache.conf
+%attr(0700, %{apacheuser}, %{apachegroup}) /var/spool/gosa
+%attr(0755, root,root) /usr/share/gosa
+#%attr(0755, root,root) /usr/share/gosa/html
+#%attr(0755, root,root) /usr/share/gosa/ihtml
+#%attr(0755, root,root) /usr/share/gosa/include
+#%attr(0755, root,root) /usr/share/gosa/locale
+#%attr(0755, root,root) /usr/share/gosa/plugins
+#%attr(0755, root,root) /usr/share/gosa/setup
+%attr(0755, root,root) /usr/share/gosa/doc/core/guide.xml
+%attr(0755, root,root) /var/cache/gosa
+%attr(0700, root,root) /etc/gosa/gosa.secrets
+
+########################
+
+%files dev
+%defattr(-,root,root)
+/usr/bin
+%attr(755,root,root) /usr/share/man/man1/dh-make-gosa.1.gz
+%attr(755,root,root) /usr/share/man/man1/update-locale.1.gz
+%attr(755,root,root) /usr/share/man/man1/update-online-help.1.gz
+%attr(755,root,root) /usr/share/man/man1/update-pdf-help.1.gz
+
+########################
+
+%files desktop
+%defattr(-,root,root)
+/etc/gosa
+/usr/bin
+/usr/share/pixmaps
+/usr/share/applications
+%attr(755,root,root) /usr/share/man/man1/gosa.1.gz
+
+########################
+
+%files schema
+%defattr(-,root,root)
+%doc COPYING AUTHORS README contrib/openldap
+/etc/openldap/schema/gosa
+
+########################
+
+%files help-en
+%defattr(-,root,root)
+/usr/share/gosa/doc/core/en
+
+########################
+
+%files help-de
+%defattr(-,root,root)
+/usr/share/gosa/doc/core/de
+
+########################
+
+%files help-fr
+%defattr(-,root,root)
+/usr/share/gosa/doc/core/fr
+
+########################
+
+%files help-nl
+%defattr(-,root,root)
+/usr/share/gosa/doc/core/nl
+
+########################
+
+%files help-es
+%defattr(-,root,root)
+/usr/share/gosa/doc/core/es
+
+########################
+
+%changelog
+* Fri Nov 17 2008 Stefan Japes <japes at GONICUS.de>
+- First build of GOsa 2.6 as an RPM, should work on SuSE and RedHat
diff --git a/gosa-core/redhat/make-gosa-package b/gosa-core/redhat/make-gosa-package
new file mode 100755
index 0000000..6a84e0a
--- /dev/null
+++ b/gosa-core/redhat/make-gosa-package
@@ -0,0 +1,177 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]; then
+	echo "Usage: $(basename $0) (RHEL|SLES|OpenSuse) svn-tag"
+        echo "        svn-tag can be 'trunk' or a version like '2.6.8'"
+	exit 1
+fi
+
+# Prepare Variables depending on build system
+##
+release=$2
+distribution=$1
+NOT_RELEASED="heimdal dak dfs glpi opsi apache2 ssh uw-imap"
+if [ "$release" != "trunk" ]
+then
+	release="tags/$release"
+fi
+
+
+# Export the requested SVN release
+##
+if [ ! -d rpm_src ] 
+then 
+  mkdir rpm_src;
+fi
+
+
+if [ ! -d rpm_src/gosa-core ] 
+then
+svn export https://oss.gonicus.de/repositories/gosa/$release/gosa-core \
+    ./rpm_src/gosa-core  
+else
+	echo "SVN export of 'gosa-core' exists, skipping!"
+fi
+
+if [ ! -d rpm_src/gosa-plugins ]
+then
+svn export https://oss.gonicus.de/repositories/gosa/$release/gosa-plugins \
+    ./rpm_src/gosa-plugins
+else
+	echo "SVN export of 'gosa-plugins' exists, skipping!"
+fi
+
+# Detect build version 
+##
+VERSION=$(cat rpm_src/gosa-core/debian/changelog | head -n 1 | sed -n -e 's/.*(\([^-]*\).*/\1/p')
+
+
+case "$distribution" in 
+ "RHEL" ) 
+	rm -rf /var/tmp/gosa*
+	build_path='/usr/src/redhat'
+	target='redhat'
+	;;
+ "SLES" ) 
+	build_path='/usr/src/packages'
+	target='SLES'
+	;;
+ "OpenSuse" ) 
+	rm -rf /var/tmp/rpm-tmp*
+	build_path='/usr/src/packages'
+	target='suse'
+	;;
+ * ) 
+	echo "$distribution is unknown"
+	exit 1;
+	;;
+esac
+
+# Clean up
+## 
+echo ".. some cleanup in '$build_path'"
+rm -rf $build_path/RPMS/noarch/gosa*
+rm -rf $build_path/SOURCES/gosa*
+rm -rf $build_path/SPECS/gosa*
+rm -rf rpm_src/gosa-$VERSION
+
+PATHS='BUILD SPECS RPMS SOURCES'
+for path in $PATHS; do
+	if [ ! -d $build_path/$path ] 
+	then 
+ 		mkdir -p $build_path/$path
+	fi
+done
+
+# Create SRC tar 
+##
+echo "Creating source tar.gz for gosa-$VERSION"
+cp -a rpm_src/gosa-core rpm_src/gosa-$VERSION
+cd rpm_src
+tar cfj $build_path/SOURCES/gosa-$VERSION.tar.bz2 gosa-$VERSION
+cd ..
+
+# Copy patches 
+##
+echo "Copying build patches"
+cp rpm_src/gosa-$VERSION/redhat/*.patch $build_path/SOURCES/
+
+# Prepare spec file, replace Version 
+##
+echo "Preparing spec file"
+sed "s/^Version:.*$/Version:            $VERSION/" \
+     rpm_src/gosa-$VERSION/redhat/gosa.spec > $build_path/SPECS/gosa.spec
+
+
+# Build GOsa RPM 
+##
+echo "Try to build package ... rpmbuild" 
+rpmbuild -bb $build_path/SPECS/gosa.spec
+if [ $? != 0 ]
+then
+	echo "Error: Build error" 
+	exit 1
+fi
+
+#
+# Build GOsa plugins
+#
+
+# Create a list of all available plugins  
+## 
+MAKE_PLUGINS=$(ls -1 rpm_src/gosa-plugins/*/plugin.dsc \
+   | sed 's/^.*\/\([^\/]*\)\/plugin.dsc$/\1/')
+
+# Skip black listed plugins
+##
+for i in $NOT_RELEASED; do
+	MAKE_PLUGINS=$(echo -n $MAKE_PLUGINS | sed "s/$i//")
+done
+
+# Try to create plugin specfiles and try to build
+##
+for plugin in $MAKE_PLUGINS; do
+
+	echo "# $plugin "
+
+        ./gosa-core/redhat/rpm-make-gosa $plugin $build_path
+	if [ $? != 0 ]
+	then 
+ 		echo "Error: Could not prepare build process"
+		exit 1
+        fi
+
+        rpmbuild -bb $build_path/SPECS/gosa-plugin-$plugin.spec 
+	if [ $? != 0 ]
+	then 
+		echo "Error: Build error in $plugin"
+		exit 1
+	fi
+done
+
+echo ""
+echo ""
+echo ""
+echo "#### Build done "
+
+if [ ! -d "RPMS/$target" ] 
+then 
+	mkdir -p "RPMS/$target"
+	
+	echo "Copying rpms to '$curdir/RPMS/$target'"
+	curdir=`pwd`
+	cp $build_path/RPMS/noarch/gosa* "RPMS/$target"
+fi
+
+
+if [ "$distribution" == "OpenSuse" ]
+then
+	cd "RPMS/$target"
+	curdir=`pwd`
+	echo "Creating repostory in '$curdir'"
+	createrepo .
+fi
+
+
+
+
diff --git a/gosa-core/redhat/rpm-make-gosa b/gosa-core/redhat/rpm-make-gosa
new file mode 100755
index 0000000..2fd225e
--- /dev/null
+++ b/gosa-core/redhat/rpm-make-gosa
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+configfile=gosa-plugin-${1}.spec
+path="rpm_src/gosa-plugins/${1}"
+
+echo "Reading plugin parameters..."
+
+name=$(awk /name/ ${path}/plugin.dsc | awk '{ print $3 }')
+description=$(awk /description/ ${path}/plugin.dsc | awk -F '"' '{ print $2 }')
+version=$(awk /version/ ${path}/plugin.dsc | awk '{ print $3 }')
+author=$(awk /author/ ${path}/plugin.dsc | awk -F '"' '{ print $2 }')
+homepage=$(awk /homepage/ ${path}/plugin.dsc | awk '{ print $3 }')
+depends=$(sed -n 's/^depends\s*=\s*//p' ${path}/plugin.dsc | sed 's/^/ /;s/,/ /g;s/\s\s*/ /g;s/ / gosa-plugin-/g;s/^ //;s/ /,/')
+conflicts=$(awk /conflicts/ ${path}/plugin.dsc | awk '{ print $3 }')
+provides=$(awk /provides/ ${path}/plugin.dsc | awk '{ print $3 }')
+release=0
+
+
+cat << EOF | sed -e "s%@@NAME@@%$name%g" \
+		-e "s%@@DESCRIPTION@@%$description%g" \
+		-e "s%@@VERSION@@%$version%g" \
+		-e "s%@@AUTHOR@@%$author%g" \
+		-e "s%@@HOMEPAGE@@%$homepage%g" \
+		-e "s%@@DEPENDS@@%$depends%g" \
+		-e "s%@@CONFLICTS@@%$conflicts%g" \
+		-e "s%@@PROVIDES@@%$provides%g" \
+		-e "s%@@RELEASE@@%$release%g" \
+		-e "s%@@.*@@%not_defined%g" > $configfile
+
+# Some sort of "detection" of suse
+%{?suse_version:%define suse 1}
+%{!?suse_version:%define suse 0}
+
+# Define Packagename, e.g.:
+# rpmbuild --rebuild --define 'sourcename gosa' gosa.srpm
+%{!?sourcename:%define sourcename %{name}-%{version}}
+
+#
+# Distribution
+#
+Summary:                @@DESCRIPTION@@
+Name:                   gosa-plugin-@@NAME@@
+Version:                @@VERSION@@
+Release:                @@RELEASE@@
+License:                GPL
+Source:                 ftp://oss.GONICUS.de/pub/gosa/%{sourcename}.tar.bz2
+URL:                    @@HOMEPAGE@@
+Group:                  System/Administration
+Vendor:                 GONICUS GmbH
+Packager:               @@AUTHOR@@
+Buildarch:              noarch
+%if %{suse}
+Requires:               gosa >= 2.6.0, @@DEPENDS@@
+%else
+Requires:               gosa >= 2.6.0, @@DEPENDS@@
+%endif
+BuildRoot:              %{_tmppath}/%{name}-%{version}-root
+BuildArch:              noarch
+
+%if %{suse}
+        %{echo:Building SuSE rpm}
+        %define docdir /usr/share/doc/packages/gosa
+%else
+        %{echo:Building other rpm}
+        %define webconf /etc/httpd/conf.d/
+        %define docdir /usr/share/doc/gosa-%{version}
+%endif
+
+%description
+@@DESCRIPTION@@
+
+%prep
+%setup -q -n %{sourcename}
+
+%build
+
+%install
+
+# Move extra HTML and images
+mkdir -p %{buildroot}/usr/share/gosa/html/plugins/@@NAME@@
+
+echo "%{buildroot} <<---------" 
+
+if ls ./html/* &> /dev/null ;then
+	mv ./html/* %{buildroot}/usr/share/gosa/html/plugins/@@NAME@@
+fi
+
+# Move contrib if available
+mkdir -p %{buildroot}/usr/share/doc/%{name}
+if ls ./contrib/* &> /dev/null ;then
+	mv ./contrib %{buildroot}/usr/share/doc/%{name}
+fi
+
+# Move help
+mkdir -p %{buildroot}/usr/share/gosa/doc/plugins/@@NAME@@
+if ls ./help/* &> /dev/null ;then
+	mv ./help/* %{buildroot}/usr/share/gosa/doc/plugins/@@NAME@@
+fi
+
+# Copy etc
+mkdir -p %{buildroot}/etc/gosa
+if ls ./etc/* &> /dev/null ;then
+	mv ./etc/* %{buildroot}/etc/gosa
+fi
+
+# Move localization
+mkdir -p %{buildroot}/usr/share/gosa/locale/plugins/@@NAME@@
+if ls ./local/* &> /dev/null ;then
+	mv ./locale/* %{buildroot}/usr/share/gosa/locale/plugins/@@NAME@@
+fi
+
+# Move plugin itself
+mkdir -p %{buildroot}/usr/share/gosa/plugins/@@NAME@@
+mv ./* %{buildroot}/usr/share/gosa/plugins/@@NAME@@
+
+%post
+/usr/sbin/update-gosa
+
+%postun
+/usr/sbin/update-gosa
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%attr (-,root,root) /usr/share/gosa/plugins/@@NAME@@
+%attr (-,root,root) /usr/share/gosa/doc/plugins/@@NAME@@
+%attr (-,root,root) /usr/share/gosa/locale/plugins/@@NAME@@
+%attr (-,root,root) /usr/share/gosa/html/plugins/@@NAME@@
+%attr (-,root,root) /usr/share/doc/%{name}
+%attr (-,root,root) /etc/gosa/
+EOF
+
+# Create eventually missing directories
+[ ! -d ${2}/SOURCES ] && mkdir -p ${2}/SOURCES
+[ ! -d ${2}/SPECS ]   && mkdir -p ${2}/SPECS
+
+mv $configfile ${2}/SPECS
+cp -r ./rpm_src/gosa-plugins/${1} /tmp/gosa-plugin-${1}-${version}
+cd /tmp/
+tar cjf ${2}/SOURCES/gosa-plugin-${1}-${version}.tar.bz2 ./gosa-plugin-${1}-${version}
+rm -rf gosa-plugin-${1}-${version}
+echo "Done."
+exit 0
diff --git a/gosa-core/setup/class_setup.inc b/gosa-core/setup/class_setup.inc
new file mode 100644
index 0000000..18e9536
--- /dev/null
+++ b/gosa-core/setup/class_setup.inc
@@ -0,0 +1,307 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_setup.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+require_once("class_setupStep.inc");
+
+
+class setup 
+{
+  var $i_steps  = 9;  // Number of setup steps 
+  var $i_current= 1;  // Current step
+  var $i_last   = 1;  // Last setup step;
+  var $o_steps  = array(); 
+  var $captured_values = array();
+
+  function setup()
+  {
+    $i = 1; 
+    $this->o_steps[$i++] = new Step_Welcome();
+    $this->o_steps[$i++] = new Step_Language();
+    $this->o_steps[$i++] = new Step_Checks();
+    $this->o_steps[$i++] = new Step_License();
+    $this->o_steps[$i++] = new Step_Ldap();
+    $this->o_steps[$i++] = new Step_Schema();
+    $this->o_steps[$i++] = new Step_Config1();
+    $this->o_steps[$i++] = new Step_Config2();
+    $this->o_steps[$i++] = new Step_Config3();
+    $this->o_steps[$i++] = new Step_Migrate();
+    $this->o_steps[$i++] = new Step_Feedback();
+    $this->o_steps[$i++] = new Step_Finish();
+    $this->i_steps = $i-1;
+
+    /* Ensure that setup is not reachable if gosa.conf (CONFIG_FILE) */
+    if(file_exists(CONFIG_DIR."/".CONFIG_FILE)){
+      session::destroy();
+      header("Location: index.php")    ;
+      exit();
+    }
+    
+    foreach($this->o_steps as $key => $step){
+      $this->o_steps[$key]->parent = &$this;
+    }
+  }
+
+  function execute()
+  {
+    /* Display phpinfo() dialog when $_GET['info'] is set,
+     *  but only do this, if user is allowed to use the setup.
+     * If setupStep_Welcome is_completed, we are allowed to view those infos-
+     */
+    if(isset($_GET['info']) &&  preg_match("/Step_Welcome/i",get_class($this->o_steps[1])) && $this->o_steps[1]->is_completed()){
+      phpinfo();
+      exit();
+    }
+
+    /* display step error msgs */
+    $msgs = $this->o_steps[$this->i_current]->check();
+    foreach($msgs as $msg){
+      msg_dialog::display(_("Setup error"), $msg, ERROR_DIALOG);
+    }
+
+    $this->o_steps[$this->i_last]->set_active(FALSE);
+    $this->o_steps[$this->i_current]->set_active();
+    $content = $this->o_steps[$this->i_current]->execute();
+    return($content);
+  }
+
+
+  /* Save posted attributes  */
+  function save_object()
+  {
+    /* Call save_object for current setup step */
+    $this->o_steps[$this->i_current] -> save_object();
+
+    /* Get attributes from setup step */
+    $tmp = $this->o_steps[$this->i_current]->get_attributes();
+    foreach($tmp as $name => $value){
+      $this->captured_values[$name] = $value;
+    }
+
+    /* Set parent */
+    foreach($this->o_steps as $key => $value){
+      $this->o_steps[$key]->parent = $this;
+    }
+
+    /* Check if image button requests next page */
+    foreach($_POST as $name => $value){
+      if(preg_match("/^next_(x|y)/",$name)){
+        $_POST['next'] = TRUE;
+      }
+      if(preg_match("/^last_(x|y)/",$name)){
+        $_POST['last'] = TRUE;
+      }
+    }
+
+    /* Check if step was selected */
+    if(isset($_GET['step']) || isset($_POST['next']) || isset($_POST['last'])){
+
+      /* check if current setup step is completed now 
+          and activate the next step if possible */
+      for($i = 1 ; $i <= $this->i_steps ; $i ++ ){
+        if($this->o_steps[$i]->is_completed()){
+          if(isset($this->o_steps[($i+1)])){
+            $this->o_steps[($i+1)]->set_enabled();
+          }
+        }else{
+          $this->disable_steps_from($i+1);
+        }
+      }
+    }
+ 
+    /* Disable all following steps, if one step isn't compelted right now .*/
+    for($i = 1 ; $i <= $this->i_steps ; $i ++ ){
+      if($this->o_steps[$i]->is_completed()){
+      }else{
+        $this->disable_steps_from($i+1);
+      }
+    }
+ 
+    $step = -1;
+
+    if(isset($_POST['setup_goto_step'])){
+      $step= $_POST['setup_goto_step'];
+    }
+
+    if(isset($_GET['step'])){
+      $step = $_GET['step'];
+    }elseif(isset($_POST['next'])){
+      $step = $this->i_current + 1;
+    }elseif(isset($_POST['last'])){
+      $step = $this->i_current - 1;
+    }
+  
+    $once = true;
+    foreach($_POST as $name => $value){
+      if(preg_match("/^step_[0-9]*$/",$name) && $once ){
+        $step = preg_replace("/^step_/","",$name);
+      }
+    }
+
+    if($this->selectable_step($step)){
+      $this->i_last    = $this->i_current;
+      $this->i_current = $step;
+    }
+  }
+
+
+  function disable_steps_from($start)
+  {
+    $found = false;
+    foreach($this->o_steps as $key => $step){
+      if($key == $start){
+        $found = true;
+      }
+
+      if($found){ 
+        $this->o_steps[$key]->set_enabled(false);
+        $this->o_steps[$key]->set_completed(false);
+      }
+    }
+  }
+
+
+  /* Create navigation menu */
+  function get_navigation_html()
+  {
+    $str = "";
+    foreach($this->o_steps as $key => $step){
+
+      $step -> update_strings();
+
+      $s_title    = $step -> get_title();
+      $s_info     = $step -> get_small_info();
+      $b_active   = $step -> is_active();
+      $b_enabled  = $step -> is_enabled();
+      $b_completed= $step -> is_completed();
+
+      if($b_completed){
+        $s = "<img src='images/true.png' alt='"._("Completed")."' class='center'> "; 
+      }else{
+        $s = "<img src='images/empty.png' alt=' ' class='center'> ";
+      }
+
+      if(session::get('js')){
+
+        $str .="<div >";
+    
+        if($b_enabled){
+          if($b_active){
+            $str .= "<div class='navigation_element_active'>";
+            $str .= "<div class='navigation_title_active'>".$s.$s_title."</div>";
+            $str .= "<div class='navigation_info'>".$s_info."</div>";
+            $str .= "</div>";
+          }else{
+            $str .= "<div class='navigation_element'>";
+            $str .= "<div onClick='document.mainform.setup_goto_step.value=\"$key\";document.mainform.submit();'
+              class='navigation_title_inactive'>".$s.$s_title."</div>";
+            $str .= "</div>";
+          }
+        }else{
+          $str .= "<div class='navigation_element'>";
+          $str .= "<div class='navigation_title_disabled'>".$s.$s_title."</div>";
+          $str .= "</div>";
+        }
+        $str .= "</div>" ;
+      }else{
+        $str .="<div >";
+        if($b_enabled){
+          if($b_active){
+            $str .= "<div class='navigation_element_active'>";
+            $str .= "<input style='text-align: left; color: #00008F; font-weight: bold; width:100%;' 
+                        type='button' value='".$s_title."' name='step_".$key."'>";
+            $str .= "</div>";
+          }else{
+            $str .= "<div class='navigation_element'>";
+            $str .= "<input style='text-align: left; color: #00008F; font-weight: bold; width:100%;' 
+                        type='submit' value='".$s_title."' name='step_".$key."'>";
+            $str .= "</div>";
+          }
+        }else{
+          $str .= "<div class='navigation_element'>";
+          $str .= "<div class='navigation_title_disabled'>".$s_title."</div>";
+          $str .= "</div>";
+        }
+        $str .= "</div>" ;
+      }
+    }
+    return($str);
+  }
+
+  
+
+  function get_bottom_html()
+  {
+    /* Skip adding forward/backward button,   
+     *  if the currently opened step is a sub dialog 
+     */
+    if($this->o_steps[$this->i_current]->dialog){
+      $str ="";
+    }else{
+      $str ="<p class='seperator' style='margin-bottom:10px;'> </p>";
+      $str.="   <div style='text-align:right;float:top;'>";
+      if(isset($this->o_steps[$this->i_current -1]) && $this->o_steps[$this->i_current -1]->is_enabled()){
+        $str .= "<input type='submit' name='last' value='".msgPool::backButton()."'>";
+      }else{
+        $str .= "<input type='button' name='last' value='".msgPool::backButton()."' disabled>";
+      }
+      $str.= " ";
+        $str .= "<input type='submit' name='next' value='"._("Next")."'>";
+      $str .="</div>";
+    }
+    return($str);
+  }
+
+  
+  /* Create header entry */
+  function get_header_html()
+  {
+    $str=   $this->o_steps[$this->i_current]->print_header();
+    return ($str);
+  }
+
+
+  /* Check if the given step id is valid and selectable */
+  function selectable_step($id)
+  {
+    if(isset($this->o_steps[$id]) && $this->o_steps[$id]->is_enabled()){
+      return(true);
+    }
+    return(false);
+  }
+
+  function step_name_to_id($name)
+  {
+    foreach($this->o_steps as $id => $class){
+      if(get_class($class) == $name){
+        return($id);
+      }
+    }
+    return(0);
+  }
+  
+}
+
+
+
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep.inc b/gosa-core/setup/class_setupStep.inc
new file mode 100644
index 0000000..6997784
--- /dev/null
+++ b/gosa-core/setup/class_setupStep.inc
@@ -0,0 +1,130 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class setup_step extends plugin
+{
+  var $s_title      = "Still undefined";
+  var $s_title_long = "This is a still undefined long title";
+  var $s_info       = "This info is still undefined. This setup step detect the type of your ldap. This is a basic requirement for gosa.";
+  var $is_active    = false;
+  var $is_enabled   = false;
+  var $is_completed = false;
+
+  var $header_image = "images/setup/user.png";
+
+  var $attributes   = array();
+  var $parent       = NULL;
+  var $dialog       = FALSE;
+  
+  function setup_step()
+  {
+  }
+
+  function execute()
+  { 
+  }
+
+  function save_object()
+  {
+    /* Do not call plugin::save_object. This causes acl trouble  */
+  }
+
+  function get_title()
+  { 
+    return($this->s_title);
+  }
+
+  function get_long_title()
+  { 
+    return($this->s_title_long);
+  }
+
+  function get_small_info()
+  { 
+    return($this->s_info);
+  }
+  
+  function is_active()
+  {
+    return($this->is_active);
+  }
+
+  function is_enabled()
+  {
+    return($this->is_enabled);
+  }
+
+  function is_completed()
+  {
+    return($this->is_completed);
+  }
+
+  function set_active($value = TRUE)
+  {
+    if($value){ 
+      $this->is_active = TRUE;  
+    }else{
+      $this->is_active = FALSE;  
+    }
+  }
+
+  function set_enabled($value = TRUE)
+  {
+    if($value){ 
+      $this->is_enabled = TRUE;  
+    }else{
+      $this->is_enabled = FALSE;  
+    }
+  }
+
+  function set_completed($value = TRUE)
+  {
+    if($value){ 
+      $this->is_completed = TRUE;  
+    }else{
+      $this->is_completed = FALSE;  
+    }
+  }
+
+  /* Return attributes handled by this setup step */
+  function get_attributes()
+  {
+    $tmp = array();
+    foreach($this->attributes as $attr){
+      $tmp[$attr] = $this->$attr;
+    }
+    return($tmp);
+  }
+
+  function print_header()
+  {
+    $image= get_template_path($this->header_image);
+    $display= "<div style='padding:3px;'>";
+    $display.= "  <p class=\"center\" style=\"margin:0px 0px 0px 5px;padding:0px;font-size:24px;font-weight:bold;\"><img class=\"center\" src=\"$image\" align=\"middle\" alt=\"*\"> ".$this->s_title_long."</p>\n";
+    $display.= "</div>\n";
+
+    return($display);
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Checks.inc b/gosa-core/setup/class_setupStep_Checks.inc
new file mode 100644
index 0000000..fd8297d
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Checks.inc
@@ -0,0 +1,298 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_setupStep_Checks.inc 15380 2010-01-27 14:03:19Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+class Step_Checks extends setup_step
+{
+  var $basic_checks = array();
+  var $config_checks= array();
+  var $is_writeable = array();
+  var $header_image = "images/setup/system.png";
+
+  function Step_Checks()
+  {
+    $this->update_strings();
+  }
+ 
+
+  function update_strings()
+  {
+    $this->s_title      = _("Installation check");
+    $this->s_title_long = _("Installation check");
+    $this->s_info       = _("Basic checks for PHP compatibility and extensions");
+  }
+  
+  
+  /* Execute and display template */ 
+  function execute()
+  {
+    $this->run_checks();
+    $smarty = get_smarty();
+    $smarty->assign("basic"       ,$this->basic_checks);
+    $smarty->assign("config"      ,$this->config_checks);
+    $smarty->assign("is_writeable",$this->is_writeable);
+    return($smarty->fetch(get_template_path("setup_checks.tpl",TRUE,dirname(__FILE__))));
+  }
+
+
+  /* Execute all checks */ 
+  function run_checks()
+  {
+    $this->basic_checks = array();
+    $this->config_checks = array();
+    $this->is_writeable = array();
+
+    /* PHP version check */
+    $N = _("Checking PHP version"); 
+    $D = sprintf(_("PHP must be of version %s or above."), "5.2.0");
+    $S = _("Please upgrade to a supported version.");
+    $R = $this->check_php_version();
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Checking imap extension */
+    $N = msgPool::checkingFor("LDAP");
+    $D = _("GOsa requires this module to talk with your LDAP server.");
+    $S = msgPool::installPhpModule("LDAP");
+    $R = is_callable("ldap_bind");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Check for gettext support */
+    $N = msgPool::checkingFor("gettext");
+    $D = _("GOsa requires this module for an internationalized interface.");
+    $S = msgPool::installPhpModule("gettext");
+    $R = is_callable("bindtextdomain");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Checing for iconv */
+    $N = msgPool::checkingFor("inconv");
+    $D = _("GOsa requires this module for the samba integration.");
+    $S = msgPool::installPhpModule("iconv");
+    $R = is_callable("iconv");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Check for installed mhash module */
+    $N = msgPool::checkingFor("mhash");
+    $D = _("GOsa requires this module to make use of SSHA encryption.");
+    $S = msgPool::installPhpModule("mhash");
+    $R = is_callable("mhash");
+    $M = FALSE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Is imap module available */
+    $N = msgPool::checkingFor("IMAP");
+    $D = _("GOsa requires this module to talk to an IMAP server.");
+    $S = msgPool::installPhpModule("IMAP");
+    $R = is_callable("imap_open");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Is imap module available */
+    $N = msgPool::checkingFor(_("mbstring"));
+    $D = _("GOsa requires this module to handle unicode strings.");
+    $S = msgPool::installPhpModule("mbstring");
+    $R = is_callable("mb_strlen");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Mysql module loaded ? */
+    $N = msgPool::checkingFor(_("MySQL"));
+    $D = _("GOsa requires this module to communicate with several supported databases.");
+    $S = msgPool::installPhpModule("MySQL");
+    $R = is_callable("mysql_query");
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Checking generate LM/NT password hashes */
+    #TODO: either this, or gosa-si will do the hash generation
+    $query= "mkntpwd 2>&1";
+    $output= shell_exec ($query);
+    $have_mkntpwd= preg_match("/^Usage: mkntpwd /", $output);
+    if (!$have_mkntpwd){
+      $query= 'LC_ALL=C LANG=C perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen $ARGV[0]), $/;" >/dev/null';
+      system ($query, $ret);
+      $have_mkntpwd |= ($ret == 0);
+    }
+
+    $N = msgPool::checkingFor(_("samba hash generator"));
+    $D = _("GOsa requires this command to synchronize POSIX and samba passwords.");
+    $S = _("Deploy a gosa-si installation or install the perl Crypt::SmbHash modules.");
+    $R = $have_mkntpwd;
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Read data written by convert */
+    $output= "";
+    $sh= popen("convert", 'r');
+    while (!feof($sh)){
+      $output.= fread($sh, 4096);
+    }
+    pclose($sh);
+
+    $N = msgPool::checkingFor(_("imagick"));
+    $D = _("GOsa requires this extension to handle images.");
+    $S = msgPool::installPhpModule("php5-imagick");
+
+    $IMGVER = phpversion('imagick');
+
+    if ($IMGVER > 1.0) {
+        $R = method_exists('imagick','getImageBlob');
+    }
+    else {
+        $R = is_callable("imagick_blob2image") || !empty($output);
+    }
+
+    $M = TRUE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    $N = msgPool::checkingFor(_("compression module"));
+    $D = _("GOsa requires this extension to handle snapshots.");
+    $S = msgPool::installPhpModule("php5-zip / php5-gzip");
+    $R = is_callable("gzcompress");
+    $M = FALSE;
+    $this->basic_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+
+    /* PHP Configuration checks */
+
+    /* Register_globals off */
+    $N = "register_globals = <b>off</b>";
+    $D = _("register_globals is a PHP mechanism to register all global variables to be accessible from scripts without changing the scope. This may be a security risk.");
+    $S = _("Search for 'register_globals' in your php.ini and switch it to 'Off'.");
+    $R = ini_get("register_globals") == 0;
+    $M = FALSE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+
+    /* session lifetime set to >=86400 seconds ? */
+    $N = "session.gc_maxlifetime >= <b>86400</b>";
+    $D = _("PHP uses this value for the garbage collector to delete old sessions.")." ".
+         _("Setting this value to one day will prevent loosing session and cookies before they really timeout.");
+    $S = _("Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or higher.");
+    $R = ini_get("session.gc_maxlifetime") >= 86400;
+    $M = FALSE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Session auto start must be turned off */
+    $session_auto_start = ini_get('session.auto_start');
+    $N = "session.auto_start = <b>"._("Off")."</b>";
+    $D = _("In Order to use GOsa without any trouble, the session.auto_register option in your php.ini should be set to 'Off'.");
+    $S = _("Search for 'session.auto_start' in your php.ini and set it to 'Off'.");
+    $R = !$session_auto_start['local_value'];
+    $M = TRUE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Check if memory limit is set to 32 or > */
+    $N = "memory_limit >= <b>32</b>";
+    $D = _("GOsa needs at least 32MB of memory. Setting it below this limit may cause errors that are not reproducable! Increase it for larger setups.");
+    $S = _("Search for 'memory_limit' in your php.ini and set it to '32M' or higher.");
+    $R = ini_get('memory_limit') >= 32 ;
+    $M = TRUE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Implicit Flush disabled can increase performance */
+    $N = "implicit_flush = <b>"._("Off")."</b>";
+    $D = _("This option influences the PHP output handling. Turn this Option off, to increase performance.");
+    $S = _("Search for 'implicit_flush' in your php.ini and set it to 'Off'."); 
+    $R = !ini_get('implicit_flush');
+    $M = FALSE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Check if execution time is set to 30 */
+    $N = "max_execution_time >= <b>30</b>";
+    $D = _("The Execution time should be at least 30 seconds.");
+    $S = _("Search for 'max_execution_time' in your php.ini and set it to '30' or higher.");
+    $R = ini_get("max_execution_time") >= 30 ;
+    $M = TRUE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Expose php should be set to off */
+    $N = "expose_php = <b>"._("Off")."</b>";
+    $D = _("Increase the server security by setting expose_php to 'off'. PHP won't send any information about the server you are running in this case.");
+    $S = _("Search for 'expose_php' in your php.ini and set if to 'Off'.");
+    $R = !ini_get("expose_php");
+    $M = FALSE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Automatic quoting must be turned on */
+    $N = "magic_quotes_gpc = <b>"._("On")."</b>";
+    $D = _("Increase your server security by setting magic_quotes_gpc to 'on'. PHP will escape all quotes in strings in this case."); 
+    $S = _("Search for 'magic_quotes_gpc' in your php.ini and set it to 'On'."); 
+    $R = ini_get('magic_quotes_gpc'); 
+    $M = TRUE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+    /* Emulating old stuff? */
+    $N = "zend.ze1_compatibility_mode = <b>"._("Off")."</b>";
+    $D = _("Increase your server performance by setting magic_quotes_gpc to 'off'."); 
+    $S = _("Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."); 
+    $R = !ini_get('zend.ze1_compatibility_mode'); 
+    $M = FALSE;
+    $this->config_checks[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+
+    /* Configuration file  
+     */
+
+    /* Check if we can create a config file.*/
+    $N = _("Configuration writeable");
+    $D = _("The configuration file can't be written");
+    $S = sprintf(_("GOsa reads its configuration from a file located in (%s/%s). The setup can write the configuration directly if it is writeable."),CONFIG_DIR,CONFIG_FILE); 
+    $R =    ( file_exists(CONFIG_DIR."/".CONFIG_FILE) && is_writeable(CONFIG_DIR."/".CONFIG_FILE)) // is there a config file ? 
+        ||  (!file_exists(CONFIG_DIR."/".CONFIG_FILE) && is_writeable(CONFIG_DIR));  // There is non, but can we create a file there ?
+    $M = FALSE;
+    $this->is_writeable[] = array("NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M );
+
+  }
+ 
+
+  function save_object()
+  {
+     /* If everything is fine, set this step to completed
+     *  and allow switching to next setup step
+     */
+    $failed = false;
+    foreach(array("basic_checks","config_checks","is_writeable") as $type){
+      foreach($this->$type as $obj){
+
+        if($obj['MUST'] && !$obj['RESULT']){
+          $failed = true;
+          break;
+        }
+      }
+    }
+    $this->is_completed = !$failed;
+  }
+ 
+
+  /* Check if current PHP version is compatible 
+      with the current version of GOsa */
+  function check_php_version()
+  {
+    return(version_compare(phpversion(),"5.2.0",">=")); 
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Config1.inc b/gosa-core/setup/class_setupStep_Config1.inc
new file mode 100644
index 0000000..7d585f3
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Config1.inc
@@ -0,0 +1,245 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Config1 extends setup_step
+{
+
+  var $peopleou   = "ou=people";
+  var $groupou    =  "ou=groups";
+  var $peopledn   = "cn";
+  var $uidbase    = 1000;
+  var $krbsasl    = FALSE;
+  var $strict     = TRUE;
+  var $compressed = TRUE;
+
+  var $header_image = "images/setup/server.png";
+  var $account_expiration  =FALSE;
+  var $base_hook         = ""; 
+  var $base_hook_active  = FALSE; 
+
+  var $encryption = "crypt/md5";
+  var $theme      = "default"; 
+
+  var $include_personal_title = FALSE;
+
+  var $pwd_rules  = array("pwminlen" => 6, 
+                          "pwminlen_active" => FALSE,
+                          "pwdiffer" => 5,
+                          "pwdiffer_active" => FALSE,
+                          "externalpwdhook" => "",
+                          "externalpwdhook_active" => FALSE);
+
+  var $id_settings = array(       "idgen"         => "{%sn}-{%givenName[2-4]}",
+                                  "idgen_active"  => FALSE,
+                                  "minid"         => "100",
+                                  "minid_active"  => FALSE);
+
+  var $crypt_methods  = array();
+
+  var $attributes = array("compressed","peopleou","groupou","peopledn","uidbase","encryption","theme","krbsasl",
+                          "base_hook","base_hook_active","account_expiration","strict","include_personal_title");
+
+  function Step_Config1()
+  {
+    $this->update_strings();
+
+    $tmp = passwordMethod::get_available_methods();
+    foreach($tmp['name'] as $name){
+      $this->crypt_methods[$name] = $name;
+    }
+  }
+
+
+  function update_strings()
+  {
+    $this->s_title      = _("GOsa settings 1/3");
+    $this->s_title_long = _("GOsa settings 1/3");
+    $this->s_info       = _("GOsa generic settings");
+  }
+
+  
+  function execute()
+  {
+    $smarty = get_smarty();
+    $smarty->assign("peopledns",array("uid","cn"));
+    $smarty->assign("id_settings",   reverse_html_entities($this->id_settings));
+    $smarty->assign("crypt_methods", reverse_html_entities($this->crypt_methods));
+    $smarty->assign("themes",        reverse_html_entities($this->get_themes()));
+    $smarty->assign("pwd_rules",     reverse_html_entities($this->pwd_rules));
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,htmlentities($this->$attr,ENT_QUOTES,"UTF-8"));
+    }
+
+    /* !!! Attention strict is inverse. If you change this, 
+     *  don't forget to change save_object too 
+     */
+    $smarty->assign("strict",!$this->strict);
+    return($smarty -> fetch (get_template_path("../setup/setup_config1.tpl")));
+  }
+
+
+  function get_themes()
+  {
+    $dir = opendir( "../ihtml/themes/");
+    $themes = array();
+    while (($file = readdir($dir)) !== false){
+      if(is_dir("../ihtml/themes/".$file) && !preg_match("/^\./",$file)){
+        $themes[$file] = $file;
+      }      
+    }
+    return($themes);
+  }
+
+  function check()
+  {
+    $message = array();
+
+    if(isset($this->id_settings['minid_active']) && !is_numeric($this->id_settings['minid'])){
+      $message[] = sprintf(_("The specified value for '%s' must be a numeric value"),_("GID / UID min id"));
+    }
+
+    if(preg_match("/,$/",$this->peopleou)){
+      $message[] =sprintf(_("Don't add a trailing comma to '%s'."),_("People storage ou"));
+    }
+
+    if(preg_match("/,$/",$this->groupou)){
+      $message[] =sprintf(_("Don't add a trailing comma to '%s'."),_("Group storage ou"));
+    }
+
+    if(!is_numeric($this->uidbase)){
+      $message[] = _("Uid base must be numeric");
+    }
+
+    if(($this->pwd_rules['pwminlen_active']) && !is_numeric($this->pwd_rules['pwminlen'])){
+      $message[] = _("The given password minimum length is not numeric.");
+    }
+    if(($this->pwd_rules['pwdiffer_active']) && !is_numeric($this->pwd_rules['pwdiffer'])){
+      $message[] = _("The given password differ value is not numeric.");
+    }
+    return($message);
+  }
+
+  function save_object()
+  {
+    if(isset($_POST['step5_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate(get_post($attr));
+        }
+      }
+
+      /* !!! Attention strict is inverse. If you change this, 
+       *  don't forget to change the smarty assignment too 
+       */
+      if(isset($_POST['strict'])){
+        if($_POST['strict']){
+          $this->strict = FALSE;
+        }else{
+          $this->strict = TRUE;
+        }
+      }
+
+      if(isset($_POST['minid_active'])){
+        $this->id_settings['minid_active'] = TRUE;
+        if(isset($_POST['minid'])){
+          $this->id_settings['minid'] = get_post('minid');
+        }
+      }else{
+        $this->id_settings['minid_active'] = FALSE;
+      }
+
+      /* Generic settings */
+      if(isset($_POST['idgen_active'])){
+        $this->id_settings['idgen_active'] = TRUE;
+        if(isset($_POST['idgen'])){
+          $this->id_settings['idgen'] = get_post('idgen');
+        }
+      }else{
+        $this->id_settings['idgen_active'] = FALSE;
+      }
+
+      /* Get password settings */ 
+      if(isset($_POST['pwdiffer_active'])){
+        $this->pwd_rules['pwdiffer_active'] = TRUE;
+        if(isset($_POST['pwdiffer'])){
+          $this->pwd_rules['pwdiffer'] = get_post('pwdiffer');
+        }
+      }else{
+        $this->pwd_rules['pwdiffer_active'] = FALSE;
+      }
+
+      /* Get password minimum length posts */
+      if(isset($_POST['pwminlen_active'])){
+        $this->pwd_rules['pwminlen_active'] = TRUE;
+        if(isset($_POST['pwminlen'])){
+          $this->pwd_rules['pwminlen'] = get_post('pwminlen');
+        }
+      }else{
+        $this->pwd_rules['pwminlen_active'] = FALSE;
+      }
+
+      /* External pwd settings */
+      if(isset($_POST['externalpwdhook_active'])){
+        $this->pwd_rules['externalpwdhook_active'] = TRUE;
+        if(isset($_POST['externalpwdhook'])){
+          $this->pwd_rules['externalpwdhook'] = get_post('externalpwdhook');
+        }
+      }else{
+        $this->pwd_rules['externalpwdhook_active'] = FALSE;
+      }
+
+      /* base hook settings */
+      if(isset($_POST['base_hook_active'])){
+        $this->pwd_rules['base_hook_active'] = TRUE;
+        if(isset($_POST['base_hook'])){
+          $this->pwd_rules['base_hook'] = get_post('base_hook');
+        }
+      }else{
+        $this->pwd_rules['base_hook_active'] = FALSE;
+      }
+    }
+
+    $tmp = $this->check(); 
+    if(count($tmp) == 0){
+      $this->is_completed = TRUE;
+    }else{
+      $this->is_completed = FALSE;
+    }
+  }// if tempalte posted 
+
+
+  /* Attributes that are interesting for configuration generation */
+  function get_attributes()
+  {
+    $tmp = setup_step::get_attributes();
+    foreach(array("pwd_rules","id_settings") as $attr){
+      $tmp[$attr]= $this->$attr;
+    }
+    return($tmp);
+  }
+}// CLass
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Config2.inc b/gosa-core/setup/class_setupStep_Config2.inc
new file mode 100644
index 0000000..1bf1d2f
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Config2.inc
@@ -0,0 +1,283 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Config2 extends setup_step
+{
+  var $governmentmode = FALSE;
+  var $sambaidmapping = FALSE;
+  var $header_image = "images/setup/server.png";
+
+  var $cyrusunixstyle = FALSE;
+  var $mail           = "none";
+  var $mail_attrib    = "";
+  var $mail_methods   = array();
+  var $mail_settings = array("vacationdir"        => "/etc/gosa/vacation",
+                             "vacationdir_active" => FALSE);
+
+  var $generic_settings  = array( "enableCopyPaste" => false,
+                                  "wws_ou"        => "ou=winstations",
+                                  "wws_ou_active" => FALSE,
+                                  "snapshot_active"     => FALSE,
+                                  "snapshot_base"       => "ou=snapshots,%base%",
+                                  "snapshot_user"       => "%admin%",
+                                  "snapshot_password"   => "",
+                                  "logging"             => TRUE,
+                                  "snapshot_server"     => "%connection%");
+
+  var $samba_settings    = array( "samba_sid"        => "0-815-4711",
+                                  "samba_sid_active" => FALSE,
+                                  "samba_rid"        => 1000,
+                                  "smbhash"          => 'SMBHASH',
+                                  "samba_rid_active" => FALSE); 
+
+  var $sambaDomain_found    = FALSE;
+  var $timezone       = "Europe/Berlin";
+  var $timezones      = array();
+
+  var $attributes = array("mail_attrib","governmentmode","sambaidmapping","cyrusunixstyle","mail","timezone");
+  var $called = FALSE;
+
+  function Step_Config2()
+  {
+    $this->update_strings();
+    $this->mail_methods = $this->get_available_mail_classes();
+
+    /* Look for samba password generation method */
+    if(file_exists("/usr/bin/mkntpasswd")){
+      $pwdhash  = "/usr/bin/mkntpasswd";
+    } elseif (preg_match("/^Usage: mkntpwd /", shell_exec ("mkntpwd 2>&1"))){
+      $pwdhash= "mkntpwd";
+    } else {
+      $pwdhash= 'perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"';
+    }
+
+    $this->timezones = timezone::_get_tz_zones();
+    $this->samba_settings['smbhash'] = $pwdhash;
+  }
+
+ 
+  function update_strings()
+  {
+    $this->s_title      = _("GOsa settings 2/3");
+    $this->s_title_long = _("GOsa settings 2/3");
+    $this->s_info       = _("Customize special parameters");
+  }
+
+ 
+  function execute()
+  {
+    $this->mail_methods = $this->get_available_mail_classes();
+    /* On first call check for rid/sid base */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $ldap->cd($cv['base']);
+    $ldap->search("(objectClass=sambaDomain)",array("dn"));
+    if($ldap->count()){
+      $this->sambaDomain_found =TRUE;
+    }else{
+      $this->sambaDomain_found =FALSE;
+    }
+
+    if(!$this->called){
+      if(!$this->sambaDomain_found){
+        $this->samba_settings['samba_sid_active'] = TRUE;
+        $this->samba_settings['samba_rid_active'] = TRUE;
+      }
+  
+      $this->called = TRUE;
+    }
+
+    /* Update snapshot values, with already collected values */
+    foreach($this->generic_settings as $key => $value){
+      foreach(array("snapshot_base","snapshot_user","snapshot_server") as $attr){
+        foreach($this->parent->captured_values as $replace_name => $replace_value){
+          if(is_string($replace_value))  {
+            $this->generic_settings[$attr] = preg_replace("/%".$replace_name."%/",$replace_value,$this->generic_settings[$attr]);
+          }
+        }
+      }
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign("sambaDomain_found",  $this->sambaDomain_found);
+    $smarty->assign("generic_settings",  reverse_html_entities($this->generic_settings));
+    $smarty->assign("mail_settings",     reverse_html_entities($this->mail_settings));
+    $smarty->assign("mail_methods",      reverse_html_entities($this->mail_methods));
+    $smarty->assign("samba_settings",    reverse_html_entities($this->samba_settings));
+
+    $smarty->assign("logging",$this->generic_settings['logging']);
+   
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,reverse_html_entities($this->$attr));
+    }
+    $smarty->assign("timezone"     ,$this->timezone);
+    $smarty->assign("timezones"    ,$this->timezones);
+    return($smarty -> fetch (get_template_path("../setup/setup_config2.tpl")));
+  }
+
+  function save_object()
+  {
+    if(isset($_POST['step6_posted'])){
+
+      if(isset($_POST['timezone']) && isset($this->timezones['TIMEZONES'][$_POST['timezone']])){
+        $this->timezone = $_POST['timezone'];
+      }
+
+      $old_mail = $this->mail;
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate(get_post($attr));
+        }
+      }
+
+      /* Get logging */
+      $this->generic_settings['logging'] =  isset($_POST['logging']);
+
+      /* Mail settings */
+      if(isset($_POST['vacationdir_active'])){
+        $this->mail_settings['vacationdir_active'] = TRUE;
+        if(isset($_POST['vacationdir'])){
+          $this->mail_settings['vacationdir'] = get_post('vacationdir');
+        }
+      }else{
+        $this->mail_settings['vacationdir_active'] = FALSE;
+      }
+
+      if(isset($_POST['enableCopyPaste'])){
+        $this->generic_settings['enableCopyPaste'] = get_post('enableCopyPaste');
+      }
+
+      if(isset($_POST['wws_ou_active'])){
+        $this->generic_settings['wws_ou_active'] = TRUE;
+        if(isset($_POST['wws_ou'])){
+          $this->generic_settings['wws_ou'] = get_post('wws_ou');
+        }
+      }else{
+        $this->generic_settings['wws_ou_active'] = FALSE;
+      }
+
+      if(isset($_POST['snapshot_active'])){
+        $this->generic_settings['snapshot_active'] = TRUE;
+        if(isset($_POST['snapshot_base'])){
+          $this->generic_settings['snapshot_base'] = get_post('snapshot_base');
+        }
+        if(isset($_POST['snapshot_user'])){
+          $this->generic_settings['snapshot_user'] = get_post('snapshot_user');
+        }
+        if(isset($_POST['snapshot_password'])){
+          $this->generic_settings['snapshot_password'] = get_post('snapshot_password');
+        }
+        if(isset($_POST['snapshot_server'])){
+          $this->generic_settings['snapshot_server'] = get_post('snapshot_server');
+        }
+      }else{
+        $this->generic_settings['snapshot_active'] = FALSE;
+      }
+
+      /* Samba settings */
+      if(isset($_POST['samba_sid_active'])){
+        $this->samba_settings['samba_sid_active'] = TRUE;
+        if(isset($_POST['samba_sid'])){
+          $this->samba_settings['samba_sid'] = get_post('samba_sid');
+        }
+      }else{
+        $this->samba_settings['samba_sid_active'] = FALSE;
+      }
+      if(isset($_POST['samba_rid_active'])){
+        $this->samba_settings['samba_rid_active'] = TRUE;
+        if(isset($_POST['samba_rid'])){
+          $this->samba_settings['samba_rid'] = get_post('samba_rid');
+        }
+      }else{
+        $this->samba_settings['samba_rid_active'] = FALSE;
+      }
+      if(isset($_POST['smbhash'])){
+        $this->samba_settings['smbhash'] = get_post('smbhash');
+      }
+
+      if(!$this->sambaDomain_found){
+        $this->samba_settings['samba_sid_active'] = TRUE;
+        $this->samba_settings['samba_rid_active'] = TRUE;
+      }
+    }
+
+    $tmp = $this->check();
+    if(count($tmp) == 0){
+      $this->is_completed = TRUE;
+    }else{
+      $this->is_completed = FALSE;
+    }
+  }
+
+
+  function check()
+  {
+    $message = array();
+    return($message);
+  }
+  
+
+  /* Attributes that are interesting for configuration generation */
+  function get_attributes()
+  {
+    $tmp = setup_step::get_attributes();
+    foreach(array("samba_settings","generic_settings","mail_settings") as $attr){
+      $tmp[$attr]= $this->$attr;
+    }
+    return($tmp);
+  }
+
+
+  /* Returns the classnames auf the mail classes */
+  function get_available_mail_classes()
+  {
+    global $class_mapping;
+
+    /* Check if we have the mail classes/plugins installed */
+    if(!class_available("mailMethod")){
+      return(array());
+    }
+    $methods = array();
+    foreach($class_mapping as $name => $file){
+      if(preg_match("/^mailMethod.*$/i",$name)){
+        $name = preg_replace("/^mailMethod/","",$name);
+        if(!empty($name)){
+          $methods[$name]['name'] = $name;
+        }
+      }
+    }
+    return($methods);
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Config3.inc b/gosa-core/setup/class_setupStep_Config3.inc
new file mode 100644
index 0000000..22cf4ad
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Config3.inc
@@ -0,0 +1,236 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Config3 extends setup_step
+{
+  var $header_image = "images/setup/server.png";
+
+  var $errorlvl   = false;
+
+  var $login_attributes = array("uid"       => "uid", 
+                                "mail"      => "mail",
+                                "uid,mail"  => "both");
+  var $optional = array(
+              "login_attribute" => "uid",
+              "strict_units" => false,
+              "list_summary" => true,
+              "forceglobals" => true,
+              "forcessl" => false,
+              "ldapstats" => false,
+              "warnssl" => true,
+              "user_filter_cookie" => true,
+              "ppd_path" => "/var/spool/ppd/",
+              "ppd_path_active" => FALSE,
+              "compile" =>  "/var/spool/gosa",
+              "snmpcommunity" =>  "goto",
+              "debuglevel" => 0,
+              "session_lifetime" => 7200,
+              "max_ldap_query_time" => "5.0",
+              "max_ldap_query_time_active" => FALSE,
+
+              "mailQueueScriptPath" => "/usr/bin/sudo /usr/local/sbin/mailqueue %action %id %server",
+              "mailQueueScriptPath_active" => FALSE,
+
+              "notifydir" => "",
+              "notifydir_active" => FALSE,
+
+              "gosaSupportURI" => "gosa-si-secret at server:20081",
+              "gosaSupportTimeout" => 15,
+              "gosaSupportURI_active" => FALSE,
+
+              "uniq_identifier" => "entryCSN",
+              "uniq_identifier_active" => TRUE,
+
+              "kioskpath" => "/var/spool/kiosk",
+              "kioskpath_active" => FALSE,
+
+              "sudoou"   => "ou=sudoers",
+              "sudoou_active" => FALSE,
+
+              "noprimarygroup"  => FALSE);
+
+  var $attributes = array("errorlvl");
+
+  function Step_Config3()
+  {
+    $this->update_strings();
+  }
+
+
+  function update_strings()
+  {
+    $this->s_title      = _("GOsa settings 3/3");
+    $this->s_title_long = _("GOsa settings 3/3");
+    $this->s_info       = _("Tweak some GOsa core behaviour");
+  }
+  
+
+  function execute()
+  {
+
+    $cv = $this->parent->captured_values;
+    $this->optional['sudoou'] = preg_replace("/%BASE%/",$cv['base'],$this->optional['sudoou']);
+    $smarty = get_smarty();
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+    $smarty->assign("uniq_identifiers",array( "entryCSN" => "entryCSN",
+                                              "contextCSN"=>"contextCSN" ));
+
+    
+    $smarty->assign("optional", reverse_html_entities($this->optional));
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,reverse_html_entities($this->$attr));
+    }
+    $smarty->assign("login_attributes",$this->login_attributes);
+    return($smarty -> fetch (get_template_path("../setup/setup_config3.tpl")));
+  }
+
+
+  function save_object()
+  {
+    if(isset($_POST['step6a_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate(get_post($attr));
+        }
+      }
+      
+      foreach(array("login_attribute","list_summary","strict_units","snmpcommunity","noprimarygroup","forceglobals","forcessl","ldapstats","user_filter_cookie","warnssl","compile","debuglevel","session_lifetime") as $name){
+        if(isset($_POST[$name])){
+          $this->optional[$name] = get_post($name);
+        }
+      } 
+
+      if(isset($_POST['ppd_path_active'])){
+        $this->optional['ppd_path_active'] = TRUE;
+        if(isset($_POST['ppd_path'])){
+          $this->optional['ppd_path'] = get_post('ppd_path');
+        }
+      }else{
+        $this->optional['ppd_path_active'] = FALSE;
+      }
+
+      if(isset($_POST['max_ldap_query_time_active'])){
+        $this->optional['max_ldap_query_time_active'] = TRUE;
+        if(isset($_POST['max_ldap_query_time'])){
+          $this->optional['max_ldap_query_time'] = get_post('max_ldap_query_time');
+        }
+      }else{
+        $this->optional['max_ldap_query_time_active'] = FALSE;
+      }
+
+      if(isset($_POST['mailQueueScriptPath_active'])){
+        $this->optional['mailQueueScriptPath_active'] = TRUE;
+        if(isset($_POST['mailQueueScriptPath'])){
+          $this->optional['mailQueueScriptPath'] = get_post('mailQueueScriptPath');
+        }
+      }else{
+        $this->optional['mailQueueScriptPath_active'] = FALSE;
+      }
+
+      if(isset($_POST['kioskpath_active'])){
+        $this->optional['kioskpath_active'] = TRUE;
+        if(isset($_POST['kioskpath'])){
+          $this->optional['kioskpath'] = get_post('kioskpath');
+        }
+      }else{
+        $this->optional['kioskpath_active'] = FALSE;
+      }
+
+      if(isset($_POST['sudoou_active'])){
+        $this->optional['sudoou_active'] = TRUE;
+        if(isset($_POST['sudoou'])){
+          $this->optional['sudoou'] = get_post('sudoou');
+        }
+      }else{
+        $this->optional['sudoou_active'] = FALSE;
+      }
+
+      if(isset($_POST['notifydir_active'])){
+        $this->optional['notifydir_active'] = TRUE;
+        if(isset($_POST['notifydir'])){
+          $this->optional['notifydir'] = get_post('notifydir');
+        }
+      }else{
+        $this->optional['notifydir_active'] = FALSE;
+      }
+
+      if(isset($_POST['gosaSupportURI_active'])){
+        $this->optional['gosaSupportURI_active'] = TRUE;
+        if(isset($_POST['gosaSupportURI'])){
+          $this->optional['gosaSupportURI'] = get_post('gosaSupportURI');
+          $this->optional['gosaSupportTimeout'] = get_post('gosaSupportTimeout');
+        }
+      }else{
+        $this->optional['gosaSupportURI_active'] = FALSE;
+      }
+
+      if(isset($_POST['uniq_identifier_active'])){
+        $this->optional['uniq_identifier_active'] = TRUE;
+        if(isset($_POST['uniq_identifier'])){
+          $this->optional['uniq_identifier'] = get_post('uniq_identifier');
+        }
+      }else{
+        $this->optional['uniq_identifier_active'] = FALSE;
+      }
+    }
+
+    $tmp = $this->check();
+    if(count($tmp) == 0){
+      $this->is_completed = TRUE;
+    }else{
+      $this->is_completed = FALSE;
+    }
+  }
+
+
+  function check()
+  {
+    $message = array();
+
+    if(!is_numeric( $this->optional['session_lifetime'])){
+      $message[] = _("Session lifetime must be a numeric value!");
+    }
+
+    if(!is_numeric( $this->optional['max_ldap_query_time'])){
+      $message[] = _("Maximum LDAP query time must be a numeric value!");
+    }
+  
+    return($message);
+  }
+  
+
+  /* Attributes that are interesting for configuration generation */
+  function get_attributes()
+  {
+    $tmp = setup_step::get_attributes();
+    foreach(array("optional") as $attr){
+      $tmp[$attr]= $this->$attr;
+    }
+    return($tmp);
+  }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Feedback.inc b/gosa-core/setup/class_setupStep_Feedback.inc
new file mode 100644
index 0000000..d655c2e
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Feedback.inc
@@ -0,0 +1,275 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Feedback  extends setup_step
+{
+  var $languages      = array();
+  var $header_image   = "images/setup/welcome.png";
+
+  var $organization       = "";
+  var $eMail              = "";
+  var $name               = "";
+  var $subscribe          = FALSE;
+  var $use_gosa_announce  = FALSE;
+
+  var $feedback_url         = "http://oss.gonicus.de/gosa-feedback/";
+  var $get_started          = TRUE;
+  var $problems_encountered = "";
+  
+  var $first_use            = TRUE;
+  var $use_since            = "";
+
+  var $distribution         = "";
+  var $web_server           = "";
+  var $php_version          = "";
+
+  var $ldap_server          = "";
+  var $object_count         = "";
+    
+  var $want_to_see_next     = "";
+
+  var $features_used        = array();  
+  var $initialized          = FALSE; 
+  var $feedback_send        = FALSE;
+  var $attributes = array("organization","eMail","name","subscribe","use_gosa_announce","get_started","problems_encountered","features_used",
+                          "first_use","use_since","distribution","web_server","php_version","ldap_server","object_count","want_to_see_next");
+  
+
+  function Step_Feedback()
+  {
+    $this->is_enabled     = TRUE;
+    $this->is_active      = TRUE;
+    $this->update_strings(); 
+  }
+
+
+  function init()
+  {
+    $cv = $this->parent->captured_values;
+
+    /* Initialize values */
+    $this->use_since      = date("Y");
+    $this->organization   = preg_replace("/^[^=]*+=(.*),.*$/","\\1",$cv['base']);
+    $this->distribution   = "";
+    $this->web_server     = $_SERVER['SERVER_SOFTWARE'];
+    $this->php_version    = PHP_VERSION;
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $this->object_count= "";
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    /* Preselect used features */
+    $oc = $ldap->get_objectclasses();
+    $this->features_used                = array();
+    $this->features_used['posix']       = array("USED" => isset($oc['posixAccount']) , 
+                                                "NAME" => _("UNIX accounts/groups"));
+    $this->features_used['samba']       = array("USED" => isset($oc['sambaSamAccount']) || isset($oc['sambaAccount']) , 
+                                                "NAME" => _("Samba management"));
+    $this->features_used['mail']        = array("USED" => $cv['mail']  != "none", 
+                                                "NAME" => _("Mailsystem management"));
+    $this->features_used['fax']         = array("USED" => isset($oc['goFaxAccount']) , 
+                                                "NAME" => _("FAX system administration"));
+    $this->features_used['asterisk']    = array("USED" => isset($oc['goFonAccount']), 
+                                                "NAME" => _("Asterisk administration"));
+    $this->features_used['inventory']   = array("USED" => isset($oc['glpiAccount']) , 
+                                                "NAME" => _("System inventory"));
+    $this->features_used['system']      = array("USED" => FALSE , 
+                                                "NAME" => _("System-/Configmanagement"));
+    $this->features_used['addressbook'] = array("USED" => FALSE , 
+                                                "NAME" => _("Addressbook"));
+  }
+
+
+  function update_strings()
+  {
+    $this->s_title      = _("Feedback");
+    $this->s_info       = _("Get notifications or send feedback");
+    $this->s_title_long = _("Notification and feedback");
+  }
+
+  
+  function execute()
+  {
+    if(!$this->initialized){
+      $this->initialized = TRUE;
+      $this->init();
+    }
+
+    $additional_info ="";
+    if(isset($_POST['send_feedback'])){
+
+      $msgs = $this->check_feedback();
+      if(count($msgs)){
+        foreach($msgs as $msg){
+          msg_dialog::display(_("Setup error"), $msg, ERROR_DIALOG);
+        }
+      }else{
+        $str = $this->create_serialise_data_string(); 
+        $feedback_url = $this->feedback_url."?data=".base64_encode($str);
+
+        $ret = @fopen($feedback_url,"r");
+
+        if(!$ret){
+          msg_dialog::display(_("Feedback error"), sprintf(_("Cannot send feedback to '%s': %s"), $this->feedback_url, $ret), ERROR_DIALOG);
+        }else{
+          $ret_value="";
+          while($ret && !feof($ret)){
+            $ret_value.= fgets($ret,256);
+          }
+          if(!preg_match("/successful/i",$ret_value)){
+            msg_dialog::display(_("Feedback error"), _("Cannot send feedback: service temporarily unavailable"), ERROR_DIALOG);
+          }else{
+            $this->feedback_send = TRUE;
+          }
+        }
+        @fclose($ret);
+      }
+    }
+
+    $years = array();
+    for($i = date("Y") ; $i >= 2001; $i--){
+      $years[$i] = $i;
+    }
+
+    $this->is_completed=TRUE;
+    $smarty = get_smarty();
+
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,   reverse_html_entities($this->$attr));
+    }
+    $smarty->assign("feedback_send",$this->feedback_send);
+    $smarty->assign("years",$years);
+    $smarty->assign("features_used",$this->features_used);
+    $smarty->assign("additional_info", reverse_html_entities($additional_info));
+    $smarty->assign ("must", "<font class=\"must\">*</font>");
+    return($smarty->fetch(get_template_path("setup_feedback.tpl",TRUE,dirname(__FILE__))));
+  }
+
+
+  function check_feedback()
+  {
+    $msgs = array();
+    if($this->subscribe && (!tests::is_email($this->eMail) || empty($this->eMail))){
+      $msgs[] = _("Please specify a valid email address.");
+    }
+
+    if(!$this->subscribe && !$this->use_gosa_announce){
+      $msgs[] = _("You have to select at least one of both options, subscribe or send feedback.");
+    }
+
+    return($msgs);
+  }
+  
+
+  function save_object()
+  {
+    if(isset($_POST['step_feedback'])){
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = get_post($attr);
+        }
+      }
+
+      if(isset($_POST['subscribe'])){
+        $this->subscribe = TRUE;
+      }else{
+        $this->subscribe = FALSE;
+      }
+
+      if(isset($_POST['use_gosa_announce'])){
+        $this->use_gosa_announce = TRUE;
+      }else{
+        $this->use_gosa_announce = FALSE;
+      }
+    
+      foreach($this->features_used as $key => $data){
+        if(isset($_POST['feature_'.$key])){
+          $this->features_used[$key]['USED'] = TRUE;
+        }else{
+          $this->features_used[$key]['USED'] = FALSE;
+        }
+      }
+    }
+  }
+
+
+  function create_serialise_data_string()
+  {
+    $str = "#FEEDBACK ".date("H:i:s d:m:Y");
+    if($this->subscribe){
+
+      $str.= "\n\nSubscribe";
+      $str .= "\nOrganization: ".$this->organization; 
+      $str .= "\nName: ".$this->name;
+      $str .= "\neMail: ".$this->eMail;
+    }
+  
+    if($this->use_gosa_announce){
+
+      $str.= "\n\nFeedback";    
+  
+      if($this->get_started) {
+        $str .= "\nGet started: TRUE";
+      }else{
+        $str .= "\nGet started: FALSE";
+      }
+      $str .= "\nProblems : ".($this->problems_encountered);
+
+      if($this->first_use){
+        $str .= "\nFirst use: TRUE";
+      }else{
+        $str .= "\nFirst use: FALSE";
+      }
+      $str .= "\nUsing GOsa since: ".$this->use_since;
+
+      $str .="\nDistribution: ".$this->distribution;
+      $str .="\nWeb Server: ".$this->web_server;
+      $str .="\nPHP_Version: ".$this->php_version;
+      $str .="\nLDAP Server: ".$this->ldap_server;
+      $str .="\nObject count: ".$this->object_count;
+      $str .="\nMissing features: ".($this->want_to_see_next);
+    }
+
+    $str .= "\n\nFeatures used";
+    foreach($this->features_used as $name => $data){
+      $str.="\n".$name.": ";
+      if($data['USED']){
+        $str .= "TRUE";
+      }else{
+        $str .= "FALSE";
+      }
+    }
+
+    return($str);  
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Finish.inc b/gosa-core/setup/class_setupStep_Finish.inc
new file mode 100644
index 0000000..a64fbcd
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Finish.inc
@@ -0,0 +1,147 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+class Step_Finish extends setup_step
+{
+  var $gosa_conf_contrib   = "/gosa.conf";
+  var $cfg_file_written = FALSE;
+  var $header_image = "images/setup/server.png";
+
+  function Step_Finish()
+  {
+    $this->update_strings();
+  }
+
+  
+  function update_strings()
+  {
+    $this->s_title      = _("Finish");
+    $this->s_info       = _("Write configuration file");
+    $this->s_title_long = _("Finish - write the configuration file");
+  }
+
+
+  function get_conf_data()
+  {
+    $smarty = get_smarty();
+    $smarty->assign("cv",xmlentities($this->parent->captured_values));
+    $smarty->assign("config_checksum", md5(file_get_contents(CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib)));
+    $str =  $smarty->fetch(CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib);
+    return($str);
+  }  
+
+
+  function execute()
+  {
+
+    if(!function_exists("posix_getgrgid")){
+      $webgroup = "";
+    }else{
+      $info= posix_getgrgid(posix_getgid());
+      $webgroup = $info['name'];
+    }
+
+    /* Check if there is currently an active gosa.conf 
+     */
+    $exists = file_exists(CONFIG_DIR."/".CONFIG_FILE); 
+
+    /* Redirect to GOsa login, if : 
+     *   - gosa.conf exists
+     *   - Permisssion are set correctly 
+     */ 
+    if(isset($_POST['next']) && $exists && !$this->is_world_readable(CONFIG_DIR."/".CONFIG_FILE)){
+      session::destroy();
+      header("Location: index.php");
+      exit();
+    }
+
+    /* Downlaod config */
+    if(isset($_POST['getconf'])){
+
+      header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+      header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+      header("Cache-Control: no-cache");
+      header("Pragma: no-cache");
+      header("Cache-Control: post-check=0, pre-check=0");
+      header("Content-type: text/plain");
+     
+      if (preg_match('/MSIE 5.5/', $_SERVER['HTTP_USER_AGENT']) ||
+          preg_match('/MSIE 6.0/', $_SERVER['HTTP_USER_AGENT'])){
+        header('Content-Disposition: filename="'.CONFIG_FILE.'"');
+      } else {
+        header('Content-Disposition: attachment; filename="'.CONFIG_FILE.'"');
+      }
+
+      $str = $this->get_conf_data();
+      $str = preg_replace("/\n[ ]*\n/","",$str);
+
+      echo $this->get_conf_data();
+      exit();
+    }
+   
+    $err_msg= "";
+    
+    if($exists && $this->is_world_readable(CONFIG_DIR."/".CONFIG_FILE)){
+      $err_msg = _("Your configuration file is currently world readable. Please update the file permissions!");
+    }elseif(!$exists){
+      $err_msg = _("The configuration is currently not readable or it does not exists.");
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign("err_msg",$err_msg);
+    $smarty->assign("webgroup", $webgroup);
+    $smarty->assign("CONFIG_DIR",CONFIG_DIR);
+    $smarty->assign("CONFIG_FILE" , CONFIG_FILE);
+
+    $smarty->assign("msg2", sprintf(_("After downloading and placing the file under %s, please make sure that the user the webserver is running with is able to read %s, while other users shouldn't. You may want to execute these commands to achieve this requirement:"),CONFIG_DIR,CONFIG_FILE));
+
+    $smarty->assign("cv",$this->parent->captured_values);
+    return($smarty -> fetch (get_template_path("../setup/setup_finish.tpl")));
+  }
+
+
+  /* check if given file is world readable */
+  function is_world_readable($file)
+  {
+    clearstatcache();
+    $p = fileperms($file);
+    $w_r = (decbin($p & 4) == TRUE);
+    return($w_r);
+  }
+
+
+  function save_object()
+  {
+    if(isset($_POST['step8_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate($_POST[$attr]);
+        }
+      }
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Language.inc b/gosa-core/setup/class_setupStep_Language.inc
new file mode 100644
index 0000000..47e8688
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Language.inc
@@ -0,0 +1,72 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Language extends setup_step
+{
+  var $lang_selected  = "";       /* Language selected from select box  */
+  var $lang           = "en_EN";  /* Detected language */
+  var $languages      = array();
+  var $attributes     = array("lang","lang_selected");
+  var $header_image   = "images/setup/locale.png";
+
+  function Step_Language()
+  {
+    $this->lang           = get_browser_language();
+    $this->lang_selected  = "";
+    $this->update_strings(); 
+  }
+
+  function update_strings()
+  {
+    $this->s_title      = _("Language setup");
+    $this->s_title_long = _("Language setup");
+    $this->s_info       = _("This step allows you to select your preferred language.");
+  }
+  
+  function execute()
+  {
+    $this->languages = array_merge(array(""      => _("Automatic")),get_languages(TRUE));
+    asort($this->languages);
+    $smarty = get_smarty();
+    $smarty->assign("languages",    $this->languages);
+    $smarty->assign("lang",         $this->lang);
+    $smarty->assign("lang_selected",$this->lang_selected);
+    return($smarty->fetch(get_template_path("setup_language.tpl",TRUE,dirname(__FILE__))));
+  }
+
+  function save_object()
+  {
+    if((isset($_POST['lang_selected'])) && isset($this->languages[$_POST['lang_selected']])) {
+      $this->lang_selected = $_POST['lang_selected'];
+      $this->is_completed = TRUE;
+
+      if($this->lang_selected != ""){
+        session::set('lang',$this->lang_selected);
+      }else{
+        session::set('lang',$this->lang);
+      }
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Ldap.inc b/gosa-core/setup/class_setupStep_Ldap.inc
new file mode 100644
index 0000000..eca54c3
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Ldap.inc
@@ -0,0 +1,219 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Ldap extends setup_step
+{
+  var $connection = "ldap://localhost:389";
+  var $location   = "default";
+  var $admin      = "";
+  var $password   = "";
+  var $base       = "";
+  var $append_base_to_admin_dn = FALSE;
+  var $admin_given = "";
+
+  var $connect_id = FALSE;
+  var $bind_id    = FALSE;
+
+  var $resolve_filter = "*";
+  var $resolve_user   = FALSE;
+  var $tls            = FALSE;
+
+  var $rfc2307bis             = FALSE;
+  var $attributes = array("connection","location","admin","password","base","admin_given","append_base_to_admin_dn","tls","rfc2307bis");
+
+  var $header_image= "images/setup/ldap.png";
+
+  function Step_Ldap()
+  {
+    $this->update_strings();
+  }
+
+  
+  function update_strings()
+  {
+    $this->s_title      = _("LDAP setup");
+    $this->s_title_long = _("LDAP connection setup");
+    $this->s_info       = _("This dialog performs the basic configuration of the LDAP connectivity for GOsa.");
+  }
+  
+  
+  function execute()
+  {
+    $smarty = get_smarty();
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,htmlentities($this->$attr,ENT_QUOTES,"UTF-8"));
+    }
+
+    /* Assign connection status */
+    $smarty->assign("connection_status",$this->get_connection_status());
+
+    /* Handle namingContext detection */
+    $attr = @LDAP::get_naming_contexts($this->connection);
+    unset($attr['count']);
+    $smarty->assign("namingContexts",$attr);
+    $smarty->assign("namingContextsCount",count($attr));
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+
+    /* Addign resolved users */
+    $smarty->assign("resolve_user",$this->resolve_user);
+    if($this->resolve_user){
+      $tmp = $this->resolve_user();
+      $smarty->assign("resolved_users",$tmp);
+      $smarty->assign("resolved_users_count",count($tmp));
+      $smarty->assign("resolve_filter",$this->resolve_filter);
+    }
+
+    $base_to_append = $this->base;
+    if(strlen($base_to_append) > 20){
+      $base_to_append = substr($base_to_append,0,17)."...";
+    }
+    $smarty->assign("base_to_append",$base_to_append);
+    return($smarty -> fetch (get_template_path("../setup/setup_ldap.tpl")));
+  }
+
+  function get_connection_status()
+  {
+    $this->connect_id = FALSE;
+    $this->bind_id    = FALSE;
+
+    @ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
+    $this->connect_id = ldap_connect($this->connection);
+      
+    if($this->tls){
+      if(@ldap_set_option($this->connect_id, LDAP_OPT_REFERRALS, 0))
+        if(@ldap_start_tls($this->connect_id))
+          $this->bind_id = @ldap_bind($this->connect_id, $this->admin, $this->password);
+      @ldap_set_option($this->connect_id, LDAP_OPT_PROTOCOL_VERSION, 3);
+    }else{
+      @ldap_set_option($this->connect_id, LDAP_OPT_PROTOCOL_VERSION, 3);
+      $this->bind_id = @ldap_bind($this->connect_id, $this->admin, $this->password);
+    }
+    
+    if(!$this->bind_id){
+      $str = sprintf(_("Anonymous bind to server '%s' failed!"),$this->connection); 
+      if(!empty($this->admin)){
+        $str = sprintf(_("Bind as user '%s' failed!"),$this->admin,$this->connection);
+      }      
+      return("<font color='red'>".$str."</font>");
+    }else{
+      if(empty($this->admin)){
+        $str = sprintf(_("Anonymous bind to server '%s' succeeded."), $this->connection);
+        return("<font color='blue'>".$str."</font> <font color='red'>"._("Please specify user and password!")."</font>");
+      }else{
+        $str = sprintf(_("Bind as user '%s' to server '%s' succeeded!"),$this->admin,$this->connection);
+        return("<font color='green'>".$str."</font>");
+      }      
+    }
+  }
+
+  
+  function resolve_user()
+  {
+    $filter  = $this->resolve_filter;
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP("","",$this->connection, FALSE, $this->tls);
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($this->base);
+    $ldap->search("(&(objectClass=person)(|(uid=".$filter.")(cn=".$filter.")))");
+    $tmp = array();
+    while($attrs = $ldap->fetch()){
+      $tmp[base64_encode($attrs['dn'])]= LDAP::fix($attrs['dn']);
+      natcasesort($tmp);
+    }
+    return($tmp);
+  }   
+
+
+  function save_object()
+  {
+    $reset = FALSE;
+    foreach($this->attributes as $attr){
+      if(isset($_POST[$attr])){
+        if(in_array($attr,array("base","connection")) && $this->$attr != get_post($attr)){
+          $reset = TRUE;
+        }
+        $this->$attr = get_post($attr);
+      }
+    }
+
+    if($reset){
+      $this->parent->disable_steps_from(($this->parent->step_name_to_id(get_class($this))) +1);
+      $attr = @LDAP::get_naming_contexts($this->connection);
+      if(is_array($attr) && !in_array(get_post("base"),$attr)){
+        if(isset($attr[0])){
+          $this->base = $attr[0];
+        }
+      }
+    }
+
+    if(isset($_POST['resolve_user_x'])){
+      $this->resolve_user = !$this->resolve_user;
+    }
+    if(isset($_POST['resolve_user'])){
+      $this->resolve_user = !$this->resolve_user;
+    }
+  
+    /* Hide backward forward button*/
+    $this->dialog = $this->resolve_user;
+ 
+    if(isset($_POST['resolve_filter'])){
+      $this->resolve_filter = get_post('resolve_filter');
+    }
+
+    if(isset($_POST['use_selected_user'])){
+
+      if(isset($_POST['admin_to_use'])){
+        $this->admin = base64_decode(get_post('admin_to_use'));
+        $this->resolve_user = false;
+      }
+    }
+
+    if(isset($_POST['append_base_to_admin_dn'])){
+      $this->append_base_to_admin_dn = TRUE;
+    }else{
+      $this->append_base_to_admin_dn = FALSE;
+    }
+ 
+    if($this->append_base_to_admin_dn){
+      $base = $this->base;      
+      if(!preg_match("/,$/",$this->admin_given)){
+        $base = ",".$base;
+      }
+      $this->admin = $this->admin_given.$base;
+    }else{
+      $this->admin = $this->admin_given;
+    }
+
+    $this->get_connection_status();
+    if($this->bind_id && !empty($this->admin) && !empty($this->base)){
+      $this->is_completed =TRUE;
+    }else{
+      $this->is_completed =FALSE;
+    }
+
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_License.inc b/gosa-core/setup/class_setupStep_License.inc
new file mode 100644
index 0000000..9667e25
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_License.inc
@@ -0,0 +1,94 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_License extends setup_step
+{
+  var $license_found  = false;
+  var $License        = "";
+  var $header_image   = "images/setup/license.png";
+  var $accepted       = FALSE;
+  var $attributes     = array("accepted");
+  
+
+  function Step_License()
+  {
+    $this->update_strings();
+  }
+
+  
+  function load_license()
+  {
+    if(!file_exists("../setup/license.txt")){
+      $this->License = "<font color='red'>License not found. Setup stops here.</font>";
+      $this->license_found = false;
+    }else{
+      $fp = fopen("../setup/license.txt","r");
+      $this->License = "";
+      while (!feof($fp)){
+        $this->License .= fread($fp, 255);
+      }
+      $this->license_found = true;
+    }
+  }
+
+
+  function update_strings()
+  {
+    $this->s_title      = _("License");
+    $this->s_title_long = _("License");
+    $this->s_info       = _("Terms and conditions for usage");
+  }
+
+ 
+  function execute()
+  {
+    $this->load_license();
+
+    $smarty = get_smarty();
+    $smarty -> assign("License",nl2br($this->License));
+    $smarty -> assign("license_found",$this->license_found);
+    $smarty -> assign("accepted",$this->accepted);
+
+    return($smarty -> fetch (get_template_path("../setup/setup_license.tpl")));
+  }
+
+  
+  function save_object()
+  {
+    if(isset($_POST['step_license'])){
+      if(isset($_POST['accepted'])){
+        $this->accepted = TRUE;
+      }else{
+        $this->accepted = FALSE;
+      }
+    } 
+  
+    if($this->license_found && $this->accepted){
+      $this->is_completed = true;
+    }else{
+      $this->is_completed = false;
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Migrate.inc b/gosa-core/setup/class_setupStep_Migrate.inc
new file mode 100644
index 0000000..ce3ec46
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Migrate.inc
@@ -0,0 +1,3294 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+
+/****************
+ * FUNCTIONS 
+
+Step_Migrate                - Constructor.
+update_strings              - Used to update the displayed step informations.
+initialize_checks           - Initialize migration steps.
+check_ldap_permissions      - Check if the used admin account has full access to the ldap database.
+check_gosaAccounts          - Check if there are users without the required objectClasses.
+migrate_gosaAccounts        - Migrate selected users to GOsa user accounts.
+check_organizationalUnits   - Check if there are departments, that are not visible for GOsa
+migrate_organizationalUnits - Migrate selected departments 
+check_administrativeAccount - Check if there is at least one acl entry available                  
+checkBase                   - Check if there is a root object available 
+
+get_user_list               - Get list of available users
+get_group_list              - Get list of groups
+  
+create_admin                
+create_admin_user           
+
+execute                     - Generate html output of this plugin
+save_object                 - Save posts 
+array_to_ldif               - Create ldif output of an ldap result array 
+ 
+ ****************/
+
+
+
+class Step_Migrate extends setup_step
+{
+  var $languages      = array();
+  var $attributes     = array();
+  var $header_image   = "images/setup/migrate.png";
+  var $checks         = array();
+
+  /* Department migration attributes */
+  var $dep_migration_dialog = FALSE;
+  var $deps_to_migrate      = array();
+  var $show_details         = FALSE;
+
+  /* Department migration attributes */
+  var $users_migration_dialog= FALSE;
+  var $users_to_migrate      = array();
+
+  /* Create Acl attributes */
+  var $acl_create_dialog  = FALSE;
+  var $acl_create_selected= ""; // Currently selected element, that should receive admin rights 
+  var $acl_create_changes = ""; // Contains ldif information about changes 
+  var $acl_create_confirmed= FALSE;
+
+  /* Checks initialised ? */
+  var $checks_initialised = FALSE;
+
+  /* Users outside to people ou */
+  var $outside_users        = array();
+  var $outside_users_dialog = FALSE;
+
+  /* Users outside to groups ou */
+  var $outside_groups        = array();
+  var $outside_groups_dialog = FALSE;
+
+  /* Device migration */
+  var $device_dialog         = FALSE;
+  var $device                = array();
+
+  /* Service migration */
+  var $service_dialog         = FALSE;
+  var $service                = array();
+
+  /* Group menus */
+  var $menu_dialog           = FALSE;
+  var $menu                  = array();
+
+  /* Win-Workstations outside to reserved ou */
+  var $outside_winstations        = array();
+  var $outside_winstations_dialog = FALSE;
+
+  /* check for multiple use of same uidNumber */
+  var $check_uidNumbers        = array();
+  var $check_uidNumbers_dialog = FALSE;
+
+  /* check for multiple use of same gidNumber */
+  var $check_gidNumbers        = array();
+  var $check_gidNumbers_dialog = FALSE;
+
+  var $group_list              = array();
+
+  /* Migrateable users */
+  var $migrate_users = array();
+  var $acl_migrate_dialog      = FALSE;
+  var $migrate_acl_base_entry  = "";
+
+  /* Root object classes */
+  var $rootOC_migrate_dialog = FALSE;
+  var $rootOC_details = array();
+	
+  function Step_Migrate()
+  {
+    $this->update_strings(); 
+  }
+
+  function update_strings()
+  {
+    $this->s_title      = _("LDAP inspection");
+    $this->s_title_long = _("LDAP inspection");
+    $this->s_info       = _("Analyze your current LDAP for GOsa compatibility");
+  }
+
+  function initialize_checks()
+  {
+    $this->checks = array();
+    $this->checks['root']['TITLE']     = _("Checking for root object");
+    $this->checks['root']['STATUS']    = FALSE;
+    $this->checks['root']['STATUS_MSG']= "";
+    $this->checks['root']['ERROR_MSG'] = "";
+    $this->checkBase();
+
+    $this->checks['rootOC']['TITLE']     = _("Inspecting object classes in root object");
+    $this->checks['rootOC']['STATUS']    = FALSE;
+    $this->checks['rootOC']['STATUS_MSG']= "";
+    $this->checks['rootOC']['ERROR_MSG'] = "";
+    $this->checkBaseOC();
+
+    $this->checks['permissions']['TITLE']     = _("Checking permission for LDAP database");
+    $this->checks['permissions']['STATUS']    = FALSE;
+    $this->checks['permissions']['STATUS_MSG']= "";
+    $this->checks['permissions']['ERROR_MSG'] = "";
+    $this->check_ldap_permissions();
+
+    $this->checks['deps_visible']['TITLE']     = _("Checking for invisible departments");
+    $this->checks['deps_visible']['STATUS']    = FALSE;
+    $this->checks['deps_visible']['STATUS_MSG']= "";
+    $this->checks['deps_visible']['ERROR_MSG'] = "";
+
+    $this->checks['users_visible']['TITLE']     = _("Checking for invisible users");
+    $this->checks['users_visible']['STATUS']    = FALSE;
+    $this->checks['users_visible']['STATUS_MSG']= "";
+    $this->checks['users_visible']['ERROR_MSG'] = "";
+    $this->check_gosaAccounts();
+
+    $this->migrate_users = array();
+    $this->checks['acls']['TITLE']     = _("Checking for super administrator");
+    $this->checks['acls']['STATUS']    = FALSE;
+    $this->checks['acls']['STATUS_MSG']= "";
+    $this->checks['acls']['ERROR_MSG'] = "";
+    $this->check_administrativeAccount();
+
+    $this->checks['outside_users']['TITLE']     = _("Checking for users outside the people tree");
+    $this->checks['outside_users']['STATUS']    = FALSE;
+    $this->checks['outside_users']['STATUS_MSG']= "";
+    $this->checks['outside_users']['ERROR_MSG'] = "";
+    $this->search_outside_users();
+
+    $this->checks['outside_groups']['TITLE']     = _("Checking for groups outside the groups tree");
+    $this->checks['outside_groups']['STATUS']    = FALSE;
+    $this->checks['outside_groups']['STATUS_MSG']= "";
+    $this->checks['outside_groups']['ERROR_MSG'] = "";
+    $this->search_outside_groups();
+    $this->check_organizationalUnits();
+
+    $this->checks['outside_winstations']['TITLE']     = _("Checking for windows workstations outside the winstation tree");
+    $this->checks['outside_winstations']['STATUS']    = FALSE;
+    $this->checks['outside_winstations']['STATUS_MSG']= "";
+    $this->checks['outside_winstations']['ERROR_MSG'] = "";
+    $this->search_outside_winstations();
+
+    $this->checks['uidNumber_usage']['TITLE']     = _("Checking for duplicated UID numbers");
+    $this->checks['uidNumber_usage']['STATUS']    = FALSE;
+    $this->checks['uidNumber_usage']['STATUS_MSG']= "";
+    $this->checks['uidNumber_usage']['ERROR_MSG'] = "";
+    $this->check_uidNumber();
+
+    $this->checks['gidNumber_usage']['TITLE']     = _("Checking for duplicate GID numbers");
+    $this->checks['gidNumber_usage']['STATUS']    = FALSE;
+    $this->checks['gidNumber_usage']['STATUS_MSG']= "";
+    $this->checks['gidNumber_usage']['ERROR_MSG'] = "";
+    $this->check_gidNumber();
+
+    $this->checks['old_style_devices']['TITLE']     = _("Checking for old style USB devices");
+    $this->checks['old_style_devices']['STATUS']    = FALSE;
+    $this->checks['old_style_devices']['STATUS_MSG']= "";
+    $this->checks['old_style_devices']['ERROR_MSG'] = "";
+    $this->check_usb_devices();
+
+    $this->checks['old_style_services']['TITLE']     = _("Checking for old services that have to be migrated");
+    $this->checks['old_style_services']['STATUS']    = FALSE;
+    $this->checks['old_style_services']['STATUS_MSG']= "";
+    $this->checks['old_style_services']['ERROR_MSG'] = "";
+    $this->check_services();
+
+    $this->checks['old_style_menus']['TITLE']     = _("Checking for old style application menus");
+    $this->checks['old_style_menus']['STATUS']    = FALSE;
+    $this->checks['old_style_menus']['STATUS_MSG']= "";
+    $this->checks['old_style_menus']['ERROR_MSG'] = "";
+    $this->check_menus();
+  }
+
+
+  /* Check if there are uidNumbers which are used more than once. 
+   */
+  function check_uidNumber()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(&(objectClass=posixAccount)(uidNumber=*))",array("dn","uidNumber"));
+    if(!$res){
+      $this->checks['uidNumber_usage']['STATUS']    = FALSE;
+      $this->checks['uidNumber_usage']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['uidNumber_usage']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+
+    $this->check_uidNumbers= array(); 
+    $tmp = array();
+    while($attrs = $ldap->fetch()){
+      $tmp[$attrs['uidNumber'][0]][] = $attrs;
+    }
+
+    foreach($tmp as $id => $entries){
+      if(count($entries) > 1){
+        foreach($entries as $entry){
+          $this->check_uidNumbers[base64_encode($entry['dn'])] = $entry;
+        }
+      }
+    }
+
+    if($this->check_uidNumbers){
+      $this->checks['uidNumber_usage']['STATUS']    = FALSE;
+      $this->checks['uidNumber_usage']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['uidNumber_usage']['ERROR_MSG'] =
+        sprintf(_("Found %s duplicate values for attribute 'uidNumber'."),count($this->check_uidNumbers));
+      return(false);
+    }else{
+      $this->checks['uidNumber_usage']['STATUS']    = TRUE;
+      $this->checks['uidNumber_usage']['STATUS_MSG']= _("Ok");
+      $this->checks['uidNumber_usage']['ERROR_MSG'] = "";
+      return(TRUE);
+    }
+  }
+
+  
+  /* Check if there are duplicated gidNumbers present in ldap
+   */
+  function check_gidNumber()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(&(objectClass=posixGroup)(gidNumber=*))",array("dn","gidNumber"));
+    if(!$res){
+      $this->checks['gidNumber_usage']['STATUS']    = FALSE;
+      $this->checks['gidNumber_usage']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['gidNumber_usage']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+
+    $this->check_gidNumbers= array(); 
+    $tmp = array();
+    while($attrs = $ldap->fetch()){
+      $tmp[$attrs['gidNumber'][0]][] = $attrs;
+    }
+
+    foreach($tmp as $id => $entries){
+      if(count($entries) > 1){
+        foreach($entries as $entry){
+          $this->check_gidNumbers[base64_encode($entry['dn'])] = $entry;
+        }
+      }
+    }
+
+    if($this->check_gidNumbers){
+      $this->checks['gidNumber_usage']['STATUS']    = FALSE;
+      $this->checks['gidNumber_usage']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['gidNumber_usage']['ERROR_MSG'] =
+        sprintf(_("Found %s duplicate values for attribute 'gidNumber'."),count($this->check_gidNumbers));
+      return(false);
+    }else{
+      $this->checks['gidNumber_usage']['STATUS']    = TRUE;
+      $this->checks['gidNumber_usage']['STATUS_MSG']= _("Ok");
+      $this->checks['gidNumber_usage']['ERROR_MSG'] = "";
+      return(TRUE);
+    }
+  }
+
+
+  /* Search for winstations outside the winstation ou 
+   */
+  function search_outside_winstations()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Get winstation ou */
+    if($cv['generic_settings']['wws_ou_active']) {
+      $winstation_ou = $cv['generic_settings']['wws_ou'];
+    }else{
+      $winstation_ou = "ou=winstations";
+    }
+
+    if($cv['samba_version'] == 3){
+      $oc = "sambaSamAccount";
+    }else{
+      $oc = "sambaAccount";
+    }
+ 
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(&(objectClass=".$oc.")(uid=*$))",array("dn","sambaSID"));
+    if(!$res){
+      $this->checks['outside_winstations']['STATUS']    = FALSE;
+      $this->checks['outside_winstations']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['outside_winstations']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+
+    $this->outside_winstations = array();
+    while($attrs = $ldap->fetch()){
+      if((!preg_match("/^[^,]+,".preg_quote($winstation_ou, '/')."/",$attrs['dn'])) && !preg_match("/,dc=addressbook,/",$attrs['dn'])){
+        $attrs['selected'] = FALSE;
+        $attrs['ldif']     = "";
+        $this->outside_winstations[base64_encode($attrs['dn'])] = $attrs;
+      }
+    }
+
+    if(count($this->outside_winstations)){
+      $this->checks['outside_winstations']['STATUS']    = FALSE;
+      $this->checks['outside_winstations']['STATUS_MSG']= _("Failed");
+      $this->checks['outside_winstations']['ERROR_MSG'] = 
+        sprintf(_("Found %s winstations outside the predefined winstation department ou '%s'."),count($this->outside_winstations),$winstation_ou);
+      $this->checks['outside_winstations']['ERROR_MSG'].= "<input type='submit' name='outside_winstations_dialog' value='"._("Migrate")."...'>";
+      return(false);
+    }else{
+      $this->checks['outside_winstations']['STATUS']    = TRUE;
+      $this->checks['outside_winstations']['STATUS_MSG']= _("Ok");
+      $this->checks['outside_winstations']['ERROR_MSG'] = "";
+      return(TRUE);
+    }
+  }
+
+
+  /* Search for groups outside the group ou 
+   */
+  function search_outside_groups()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $group_ou = $cv['groupou'];
+    $ldap->cd($cv['base']);
+
+    /***********
+     * Get all gosaDepartments to be able to
+     *  validate correct ldap tree position of every single user
+     ***********/
+    $valid_deps = array();
+    $valid_deps['/'] = $cv['base'];
+    $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn","ou"));
+    while($attrs = $ldap->fetch()){
+      $valid_deps[] = $attrs['dn'];
+    }
+
+    /***********
+     * Get all groups
+     ***********/
+    $res = $ldap->search("(objectClass=posixGroup)",array("dn"));
+    if(!$res){
+      $this->checks['outside_groups']['STATUS']    = FALSE;
+      $this->checks['outside_groups']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['outside_groups']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+
+    $this->outside_groups = array();
+    $this->groups_list = array();;
+    while($attrs = $ldap->fetch()){
+      $group_db_base = preg_replace("/^[^,]+,".preg_quote($group_ou, '/')."+,/i","",$attrs['dn']);
+
+      /* Check if entry is not an addressbook only user
+       *  and verify that he is in a valid department
+       */
+      if( !preg_match("/".preg_quote("dc=addressbook,", '/')."/",$group_db_base) &&
+          !in_array($group_db_base,$valid_deps)
+        ){
+        $attrs['selected'] = FALSE;
+        $attrs['ldif']     = "";
+        $this->outside_groups[base64_encode($attrs['dn'])] = $attrs;
+      }
+      $this->group_list[] = $attrs['dn'];
+    }
+
+    if(count($this->outside_groups)){
+      $this->checks['outside_groups']['STATUS']    = FALSE;
+      $this->checks['outside_groups']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['outside_groups']['ERROR_MSG'] =
+        sprintf(_("Found %s groups outside the configured tree '%s'."),count($this->outside_groups),$group_ou);
+      $this->checks['outside_groups']['ERROR_MSG'].= " <input type='submit' name='outside_groups_dialog' value='"._("Move")."...'>";
+      return(false);
+    }else{
+      $this->checks['outside_groups']['STATUS']    = TRUE;
+      $this->checks['outside_groups']['STATUS_MSG']= _("Ok");
+      $this->checks['outside_groups']['ERROR_MSG'] = "";
+      return(TRUE);
+    }
+  }
+
+ /* Search for users outside the people ou
+   */
+  function search_outside_users()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+
+    /***********
+     * Get all gosaDepartments to be able to
+     *  validate correct ldap tree position of every single user
+     ***********/
+    $valid_deps = array();
+    $valid_deps['/'] = $cv['base'];
+    $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn","ou"));
+    while($attrs = $ldap->fetch()){
+      $valid_deps[] = $attrs['dn'];
+    }
+
+    /***********
+     * Search for all users
+     ***********/
+    $res = $ldap->search("(&(objectClass=gosaAccount)(!(uid=*$)))",array("dn"));
+    if(!$res){
+      $this->checks['outside_users']['STATUS']    = FALSE;
+      $this->checks['outside_users']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['outside_users']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+
+    /***********
+     * Check if returned users are within a valid GOsa deparmtment. (peopleou,gosaDepartment,base)
+     ***********/
+    $this->outside_users = array();
+    $people_ou = trim($cv['peopleou']);
+    if(!empty($people_ou)){
+      $people_ou = $people_ou.",";
+    }
+
+    while($attrs = $ldap->fetch()){
+      $people_db_base = preg_replace("/^[^,]+,".preg_quote($people_ou, '/')."/i","",$attrs['dn']);
+
+      /* Check if entry is not an addressbook only user
+       *  and verify that he is in a valid department
+       */
+      if( !preg_match("/dc=addressbook,/",$people_db_base) &&
+          !in_array($people_db_base,$valid_deps)
+         ){
+        $attrs['selected'] = FALSE;
+        $attrs['ldif']     = "";
+        $this->outside_users[base64_encode($attrs['dn'])] = $attrs;
+      }
+    }
+
+    if(count($this->outside_users)){
+      $this->checks['outside_users']['STATUS']    = FALSE;
+      $this->checks['outside_users']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['outside_users']['ERROR_MSG'] =
+        sprintf(_("Found %s user(s) outside the configured tree '%s'."),count($this->outside_users),$people_ou);
+      $this->checks['outside_users']['ERROR_MSG'].= "<input type='submit' name='outside_users_dialog' value='"._("Move")."...'>";
+      return(false);
+    }else{
+      $this->checks['outside_users']['STATUS']    = TRUE;
+      $this->checks['outside_users']['STATUS_MSG']= _("Ok");
+      $this->checks['outside_users']['ERROR_MSG'] = "";
+      return(TRUE);
+    }
+  }
+
+
+  /* Check ldap accessibility 
+   * Create and remove a dummy object, 
+   *  to ensure that we have the necessary permissions
+   */
+  function check_ldap_permissions()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Create dummy entry 
+     */
+    $name     = "GOsa_setup_text_entry_".session_id().rand(0,999999);
+    $dn       = "ou=".$name.",".$cv['base'];
+    $testEntry= array();
+    $testEntry['objectClass'][]= "top";
+    $testEntry['objectClass'][]= "organizationalUnit";
+    $testEntry['objectClass'][]= "gosaDepartment";
+    $testEntry['description']= "Created by GOsa setup, this object can be removed.";
+    $testEntry['ou']  = $name;
+
+    /* check if simple ldap cat will be successful 
+     */
+    $res = $ldap->cat($cv['base']);  
+    if(!$res){
+      $this->checks['permissions']['STATUS']    = FALSE;
+      $this->checks['permissions']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['permissions']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return(false);
+    }
+  
+    /* Try to create dummy object 
+     */ 
+    $ldap->cd ($dn);
+    $res = $ldap->add($testEntry);
+    $ldap->cat($dn);
+    if(!$ldap->count()){
+      new log("view","setup/".get_class($this),$dn,array(),$ldap->get_error());
+
+      $this->checks['permissions']['STATUS']    = FALSE;
+      $this->checks['permissions']['STATUS_MSG']= _("Failed");
+      $this->checks['permissions']['ERROR_MSG'] = 
+        sprintf(_("The specified user '%s' does not have full access to your ldap database."),$cv['admin']);
+      return(false);
+    }
+
+    /* Try to remove created entry 
+     */
+    $res = $ldap->rmDir($dn);
+    $ldap->cat($dn);
+    if($ldap->count()){
+      new log("view","setup/".get_class($this),$dn,array(),$ldap->get_error());
+      $this->checks['permissions']['STATUS']    = FALSE;
+      $this->checks['permissions']['STATUS_MSG']= _("Failed");
+      $this->checks['permissions']['ERROR_MSG'] = 
+        sprintf(_("The specified user '%s' does not have full access to your ldap database."),$cv['admin']);
+      return(false);
+    }
+
+    /* Create & remove of dummy object was successful */
+    $this->checks['permissions']['STATUS']    = TRUE;
+    $this->checks['permissions']['STATUS_MSG']= _("Ok");
+    $this->checks['permissions']['ERROR_MSG'] = "";
+    return(true);
+  } 
+
+
+  /* Check if there are users which will 
+   *  be invisible for GOsa 
+   */
+  function check_gosaAccounts()
+  {
+    /* Remember old list of ivisible users, to be able to set 
+     *  the 'html checked' status for the checkboxes again 
+     */
+    $cnt_ok = 0;
+    $old    = $this->users_to_migrate;
+    $this->users_to_migrate = array();
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Get all invisible users 
+     */
+    $ldap->cd($cv['base']); 
+    $res =$ldap->search("(&(|(objectClass=posixAccount)(&(objectClass=inetOrgPerson)(objectClass=organizationalPerson)))(!(objectClass=gosaAccount))(uid=*))",array("sn","givenName","cn","uid"));
+    while($attrs = $ldap->fetch()){
+      if(!preg_match("/,dc=addressbook,/",$attrs['dn'])){
+        $attrs['checked'] = FALSE;
+        $attrs['before']  = "";
+        $attrs['after']   = "";
+
+        /* Set objects to selected, that were selected before reload */
+        if(isset($old[base64_encode($attrs['dn'])])){
+          $attrs['checked'] = $old[base64_encode($attrs['dn'])]['checked'];
+        }
+        $this->users_to_migrate[base64_encode($attrs['dn'])] = $attrs;
+      }
+    }
+
+    /* No invisible */
+    if(!$res){
+      $this->checks['users_visible']['STATUS']    = FALSE;
+      $this->checks['users_visible']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['users_visible']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+    }elseif(count($this->users_to_migrate) == 0){
+      $this->checks['users_visible']['STATUS']    = TRUE;
+      $this->checks['users_visible']['STATUS_MSG']= _("Ok");
+      $this->checks['users_visible']['ERROR_MSG'] = "";
+    }else{
+      $this->checks['users_visible']['STATUS']    = FALSE;
+      $this->checks['users_visible']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['users_visible']['ERROR_MSG'] = sprintf(_("Found %s user(s) that will not be visible in GOsa."), 
+          count($this->users_to_migrate));
+      $this->checks['users_visible']['ERROR_MSG'] .= "<input type='submit' name='users_visible_migrate' value='"._("Migrate")."...'>";
+    }
+  }
+
+
+  /* Start user account migration 
+   */  
+  function migrate_gosaAccounts($only_ldif = FALSE)
+  {
+    $this->show_details= $only_ldif;
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Add gosaAccount objectClass to the selected users  
+     */
+    foreach($this->users_to_migrate as $key => $dep){
+      if($dep['checked']){
+
+        /* Get old objectClasses */
+        $ldap->cat($dep['dn'],array("objectClass"));
+        $attrs      = $ldap->fetch();
+
+        /* Create new objectClass array */
+        $new_attrs  = array();
+        $new_attrs['objectClass']= array("gosaAccount","inetOrgPerson","organizationalPerson","person");
+        for($i = 0 ; $i < $attrs['objectClass']['count']; $i ++ ){
+          if(!in_array_ics($attrs['objectClass'][$i], $new_attrs['objectClass'])){
+            $new_attrs['objectClass'][]   = $attrs['objectClass'][$i];
+          }
+        }
+
+        /* Set info attributes for current object, 
+         *  or write changes to the ldap database 
+         */
+        if($only_ldif){
+          $this->users_to_migrate[$key]['before'] = $this->array_to_ldif($attrs);
+          $this->users_to_migrate[$key]['after']  = $this->array_to_ldif($new_attrs);
+        }else{
+          $ldap->cd($attrs['dn']);
+          if(!$ldap->modify($new_attrs)){
+            msg_dialog::display(_("Migration error"), sprintf(_("Cannot migrate department '%s':")."<br><br><i>%s</i>",LDAP::fix($attrs['dn']),$ldap->get_error()), ERROR_DIALOG);
+            return(false);
+          }
+        }
+      }
+    }
+    return(TRUE);
+  }
+
+
+  /* Check if there are invisible organizational Units 
+   */
+  function check_organizationalUnits()
+  {
+    $cnt_ok = 0;
+    $old = $this->deps_to_migrate;
+    $this->deps_to_migrate = array();
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Skip GOsa internal departments */
+    $skip_dns = array("/".$cv['peopleou']."/","/".$cv['groupou']."/","/^ou=people,/","/^ou=groups,/","/^ou=sudoers,/",
+        "/(,|)ou=configs,/","/(,|)ou=systems,/",
+        "/(,|)ou=apps,/","/(,|)ou=mime,/","/(,|)ou=devices/","/^ou=aclroles,/","/^ou=incoming,/",
+        "/ou=snapshots,/","/(,|)dc=addressbook,/","/^(,|)ou=machineaccounts,/",
+        "/(,|)ou=winstations,/","/(,|)ou=roles,/");
+
+    
+
+    /* Get all invisible departments */
+    $ldap->cd($cv['base']); 
+    $res = $ldap->search("(&(objectClass=organizationalUnit)(!(objectClass=gosaDepartment)))",array("ou","description","dn"));
+    while($attrs = $ldap->fetch()){
+      $attrs['checked'] = FALSE;
+      $attrs['before']  = "";
+      $attrs['after']   = "";
+
+      /* Set objects to selected, that were selected before reload */
+      if(isset($old[base64_encode($attrs['dn'])])){
+        $attrs['checked'] = $old[base64_encode($attrs['dn'])]['checked'];
+      }
+      $this->deps_to_migrate[base64_encode($attrs['dn'])] = $attrs;
+    }
+
+    /* Filter returned list of departments and ensure that 
+     *  GOsa internal departments will not be listed 
+     */
+    foreach($this->deps_to_migrate as $key => $attrs){
+      $dn = $attrs['dn'];
+      $skip = false;;
+
+      /* Check if this object is an application release object
+          e.g. groups-> application menus.
+       */
+      if(preg_match("/^.*,[ ]*cn=/",$dn)){
+        $cn_dn = preg_replace("/^.*,[ ]*cn=/","cn=",$dn);
+        if(in_array($cn_dn,$this->group_list)){
+          $skip = true;
+        }
+      }
+    
+      foreach($skip_dns as $skip_dn){
+        if(preg_match($skip_dn,$dn)){
+          $skip = true;
+        }
+      }
+      if($skip){
+        unset($this->deps_to_migrate[$key]);
+      }
+    }
+
+    /* If we have no invisible departments found  
+     *  tell the user that everything is ok 
+     */
+    if(!$res){
+      $this->checks['deps_visible']['STATUS']    = FALSE;
+      $this->checks['deps_visible']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['deps_visible']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+    }elseif(count($this->deps_to_migrate) == 0 ){
+      $this->checks['deps_visible']['STATUS']    = TRUE;
+      $this->checks['deps_visible']['STATUS_MSG']= _("Ok");
+      $this->checks['deps_visible']['ERROR_MSG'] = "";
+    }else{
+      $this->checks['deps_visible']['STATUS']    = TRUE;
+      $this->checks['deps_visible']['STATUS_MSG']= '<font style="color:#FFA500">'._("Warning").'</font>';
+      $this->checks['deps_visible']['ERROR_MSG'] = sprintf(_("Found %s department(s) that will not be visible in GOsa."),count($this->deps_to_migrate));
+      $this->checks['deps_visible']['ERROR_MSG'] .= " <input type='submit' name='deps_visible_migrate' value='"._("Migrate")."...'>";
+    }
+  }
+
+
+
+  /* Start deparmtment migration */  
+  function migrate_organizationalUnits($only_ldif = FALSE)
+  {
+    $this->show_details= $only_ldif;
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Add gosaDepartment objectClass to each selected entry 
+     */
+    foreach($this->deps_to_migrate as $key => $dep){
+      if($dep['checked']){
+
+        /* Get current objectClasses */
+        $ldap->cat($dep['dn'],array("objectClass","description"));
+        $attrs      = $ldap->fetch();
+
+        /* Create new objectClass attribute including gosaDepartment*/
+        $new_attrs  = array();
+        for($i = 0 ; $i < $attrs['objectClass']['count']; $i ++ ){
+          $new_attrs['objectClass'][]   = $attrs['objectClass'][$i];
+        }
+        $new_attrs['objectClass'][] = "gosaDepartment";
+
+        /* Append description it is missing */
+        if(!isset($attrs['description'])){
+          $new_attrs['description'][] = "GOsa department";
+        }
+
+        /* Depending on the parameter >only_diff< we save the changes as ldif
+         *  or we write our changes directly to the ldap database
+         */
+        if($only_ldif){
+          $this->deps_to_migrate[$key]['before'] = $this->array_to_ldif($attrs);
+          $this->deps_to_migrate[$key]['after']  = $this->array_to_ldif($new_attrs);
+        }else{
+          $ldap->cd($attrs['dn']);
+          if(!$ldap->modify($new_attrs)){
+            msg_dialog::display(_("Migration error"), sprintf(_("Cannot migrate department '%s':")."<br><br><i>%s</i>",LDAP::fix($attrs['dn']), $ldap->get_error()), ERROR_DIALOG);
+            return(false);
+          }
+        }
+      }
+    }
+    return(TRUE);
+  }
+
+
+  /* Check Acls if there is at least one object with acls defined 
+   */
+  function check_administrativeAccount()
+  {
+    /* Reset settings 
+     */ 
+    $GOsa_26_found = FALSE;
+    $this->migrate_users = array();
+    $this->acl_migrate_dialog = FALSE;
+    $this->migrate_acl_base_entry  = "";
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+    $res = $ldap->cat($cv['base']);
+   
+    if(!$res){
+      $this->checks['acls']['STATUS']    = FALSE;
+      $this->checks['acls']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['acls']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+    }else{
+      $GOsa_26_found = false; // GOsa 2.6 Account found
+      $GOsa_25_found = false; // GOsa 2.5 Account found, allow migration
+
+      $username = "";
+      $attrs = $ldap->fetch();
+
+      /* Collect a list of available GOsa users and groups 
+       */
+      $users = array();
+      $ldap->search("(&(objectClass=gosaAccount)(objectClass=person)".
+        "(objectClass=inetOrgPerson)(objectClass=organizationalPerson))",array("uid","dn"));
+      while($user_attrs = $ldap->fetch()){
+        $users[$user_attrs['dn']] = $user_attrs['uid'][0];
+        $rusers[$user_attrs['uid'][0]] = $user_attrs['dn'];
+      }
+      $groups = array();
+      $ldap->search("objectClass=posixGroup",array("cn","dn"));
+      while($group_attrs = $ldap->fetch()){
+        $groups[$group_attrs['dn']] = $group_attrs['cn'][0];
+      }
+      
+      /* Check if a valid GOsa 2.6 admin exists 
+          -> gosaAclEntry for an existing and accessible user.
+       */
+      $valid_users = "";
+      $valid_groups = "";
+      if(isset($attrs['gosaAclEntry'])){
+        $acls = $attrs['gosaAclEntry'];
+        for($i = 0 ; $i < $acls['count'] ; $i++){
+          $acl = $acls[$i];
+          $tmp = explode(":",$acl);
+
+          if($tmp[1] == "psub"){
+            $members = explode(",",$tmp[2]);
+            foreach($members as $member){
+              $member = base64_decode($member);
+              if(isset($users[$member])){
+                if(preg_match("/all;cmdrw/i",$tmp[3])){
+                  $valid_users .= $users[$member].", ";
+                  $GOsa_26_found  = TRUE;
+                }
+              }
+              if(isset($groups[$member])){
+                if(preg_match("/all;cmdrw/i",$tmp[3])){
+                  $ldap->cat($member);
+                  $group_attrs = $ldap->fetch();
+                  $val_users = "";
+                  if(isset($group_attrs['memberUid'])){
+                    for($e = 0 ; $e < $group_attrs['memberUid']['count']; $e ++){
+                      if(isset($rusers[$group_attrs['memberUid'][$e]])){
+                        $val_users .= $group_attrs['memberUid'][$e].", ";
+                      }
+                    }
+                  }
+                  if(!empty($val_users)){
+                    $valid_groups .= $groups[$member]."(<i>".trim($val_users,", ")."</i>), ";
+                    $GOsa_26_found  = TRUE;
+                  }
+                }
+              }
+            }
+          }elseif($tmp[1] == "role"){
+
+            /* Check if acl owner is a valid GOsa user account */
+            $ldap->cat(base64_decode($tmp[2]),array("gosaAclTemplate"));
+            $ret = $ldap->fetch();
+
+            if(isset($ret['gosaAclTemplate'])){
+              $cnt = $ret['gosaAclTemplate']['count'];
+              for($e = 0 ; $e < $cnt ; $e++){
+
+                $a_str = $ret['gosaAclTemplate'][$e];
+                if(preg_match("/^[0-9]*:psub:/",$a_str) && preg_match("/:all;cmdrw$/",$a_str)){
+
+                  $members = explode(",",$tmp[3]);
+                  foreach($members as $member){
+                    $member = base64_decode($member);
+
+                    if(isset($users[$member])){
+                      $valid_users .= $users[$member].", ";
+                      $GOsa_26_found  = TRUE;
+                    }
+                    if(isset($groups[$member])){
+                      $ldap->cat($member);
+                      $group_attrs = $ldap->fetch();
+                      $val_users = "";
+                      if(isset($group_attrs['memberUid'])){
+                        for($e = 0 ; $e < $group_attrs['memberUid']['count']; $e ++){
+                          if(isset($rusers[$group_attrs['memberUid'][$e]])){
+                            $val_users .= $group_attrs['memberUid'][$e].", ";
+                          }
+                        }
+                      }
+                      if(!empty($val_users)){
+                        $valid_groups .= $groups[$member]."(<i>".trim($val_users,", ")."</i>), ";
+                        $GOsa_26_found  = TRUE;
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+
+      /* Try to find an old GOsa 2.5 administrative account that may be migrated 
+       */
+      if(!$GOsa_26_found){
+        $valid_users = "";
+        $valid_groups = "";
+        $ldap->cd($cv['base']);
+        $ldap->search("(&(objectClass=posixGroup)(gosaSubtreeACL=:all)(memberUid=*))",array("memberUid","cn"));
+        while($p_group = $ldap->fetch()){
+          $val_users = "";
+          for($e = 0 ; $e < $p_group['memberUid']['count'] ; $e ++ ){
+            $user = $p_group['memberUid'][$e];
+            if(isset($rusers[$user])){
+              $val_users .= $user.", ";
+            }  
+          }
+          if(!empty($val_users)){
+            $valid_groups .= $groups[$p_group['dn']]."(<i>".trim($val_users,", ")."</i>), ";
+            $GOsa_25_found  = TRUE;
+          }
+        }
+      }
+
+
+      /* Print out results 
+       */
+      if($GOsa_25_found){
+        $str = "";
+        if(!empty($valid_groups)){
+          $str.= "<i>".sprintf(_("GOsa 2.5 administrative accounts found: %s"),trim($valid_groups,", "))."</i><br>";
+        }
+        $this->checks['acls']['STATUS']    = FALSE;
+        $this->checks['acls']['STATUS_MSG']= _("Failed");
+        $this->checks['acls']['ERROR_MSG'] = $str;
+        $this->checks['acls']['ERROR_MSG'].= _("There is no valid GOsa 2.6 administrator account inside your LDAP.")." ";
+        $this->checks['acls']['ERROR_MSG'].= "<input type='submit' name='migrate_acls' value='"._("Migrate")."'>";
+        $this->checks['acls']['ERROR_MSG'].= "<input type='submit' name='create_acls' value='"._("Create")."'>";
+      }elseif($GOsa_26_found){
+        $str = "";
+        if(!empty($valid_users)){
+          $str.= "<b>"._("Users")."</b>: ".trim($valid_users,", ")."<br>";
+        }
+        if(!empty($valid_groups)){
+          $str.= "<b>"._("Groups")."</b>: ".trim($valid_groups,", ")."<br>";
+        }
+        $this->checks['acls']['STATUS']    = TRUE;
+        $this->checks['acls']['STATUS_MSG']= _("Ok");
+        $this->checks['acls']['ERROR_MSG'] = $str;
+      }else{
+        $this->checks['acls']['STATUS']    = FALSE;
+        $this->checks['acls']['STATUS_MSG']= _("Failed");
+        $this->checks['acls']['ERROR_MSG']= _("There is no GOsa administrator account inside your LDAP.")." ";
+        $this->checks['acls']['ERROR_MSG'].= "<input type='submit' name='create_acls' value='"._("Create")."'>";
+      }
+    }
+
+    // Reload base OC
+    $this->checkBaseOC();
+    return($GOsa_26_found);
+  }
+
+
+
+  function create_admin($only_ldif = FALSE)
+  {
+    /* Reset '' */
+    $this->acl_create_changes="";
+
+    /* Object that should receive admin acls */
+    $dn = $this->acl_create_selected;
+
+    /* Get collected configuration settings */
+    $cv = $this->parent->captured_values;
+
+    /* On first call check for rid/sid base */
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Get current base attributes */
+    $ldap->cd($cv['base']);
+    $ldap->cat($cv['base'],array("dn","objectClass","gosaAclEntry"));
+    $attrs = $ldap->fetch();
+
+    /* Add acls for the selcted user to the base */
+    $attrs_new = array();
+    $attrs_new['objectClass'] = array("gosaACL");
+
+    for($i = 0; $i < $attrs['objectClass']['count']; $i ++){
+      if(!in_array_ics($attrs['objectClass'][$i],$attrs_new['objectClass'])){
+        $attrs_new['objectClass'][] = $attrs['objectClass'][$i];
+      }
+    }
+
+    $acl = "0:psub:".base64_encode($dn).":all;cmdrw";    
+    $attrs_new['gosaAclEntry'][] = $acl;
+    if(isset($attrs['gosaAclEntry'])){
+      for($i = 0 ; $i < $attrs['gosaAclEntry']['count']; $i ++){
+          
+        $prio = preg_replace("/[:].*$/","",$attrs['gosaAclEntry'][$i]);
+        $rest = preg_replace("/^[^:]/","",$attrs['gosaAclEntry'][$i]);
+ 
+        $data = ($prio+1).$rest;
+        $attrs_new['gosaAclEntry'][] = $data;
+      }
+    }
+
+    if($only_ldif){
+      $this->acl_create_changes ="\n".($ldap->fix($cv['base']))."\n";
+      $this->acl_create_changes.=$this->array_to_ldif($attrs)."\n";
+      $this->acl_create_changes.="\n".($ldap->fix($cv['base']))."\n";
+      $this->acl_create_changes.=$this->array_to_ldif($attrs_new);
+    }else{
+   
+      $ldap->cd($cv['base']);
+      if(!$ldap->modify($attrs_new)){
+        msg_dialog::display(_("Migration error"), sprintf(_("Cannot add ACL for user '%s':")."<br><br><i>%s</i>", LDAP::fix($dn), $ldap->get_error()), ERROR_DIALOG);
+        return(FALSE);
+      }else{
+        return(TRUE);
+      }
+    }
+  }
+ 
+  
+  function create_admin_user()
+  {
+    $pw1 = $pw2 = "";
+    $uid = "";
+
+    /* On first call check for rid/sid base */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+  
+    if(isset($_POST['new_user_uid'])){
+      $uid = $_POST['new_user_uid'];
+    }
+    if(isset($_POST['new_user_password'])){
+      $pw1 = $_POST['new_user_password'];
+    }
+    if(isset($_POST['new_user_password2'])){
+      $pw2 = $_POST['new_user_password2'];
+    }
+  
+    
+    $ldap->cd($cv['base']);
+    $ldap->search("(uid=".$uid.")");
+    if($ldap->count()){
+      msg_dialog::display(_("Input error"),msgPool::duplicated(_("Uid")), ERROR_DIALOG);
+      return false;
+    }
+    
+    if(empty($pw1) || empty($pw2) | ($pw1 != $pw2)){
+      msg_dialog::display(_("Password error"), _("Provided passwords do not match!"), ERROR_DIALOG);
+      return false;
+    }
+ 
+    if(!tests::is_uid($uid) || empty($uid)){
+      msg_dialog::display(_("Input error"), _("Specify a valid user ID!"), ERROR_DIALOG);
+      return false;
+    }
+ 
+ 
+    /* Get current base attributes */
+    $ldap->cd($cv['base']);
+  
+    $people_ou = trim($cv['peopleou']);
+    if(!empty($people_ou)){
+      $people_ou = trim($people_ou).",";
+    }
+
+    if($cv['peopledn'] == "cn"){
+      $dn = "cn=System Administrator-".$uid.",".$people_ou.$cv['base'];
+    }else{
+      $dn = "uid=".$uid.",".$people_ou.$cv['base'];
+    }
+
+    $hash = passwordMethod::make_hash($pw2, $cv['encryption']);
+
+    $new_user=array();
+    $new_user['objectClass']= array("top","person","gosaAccount","organizationalPerson","inetOrgPerson");
+    $new_user['givenName']  = "System";
+    $new_user['sn']  = "Administrator";
+    $new_user['cn']  = "System Administrator-".$uid;
+    $new_user['uid'] = $uid;
+    $new_user['userPassword'] = $hash;
+   
+    $ldap->cd($cv['base']);
+  
+    $ldap->cat($dn,array("dn"));
+    if($ldap->count()){
+      msg_dialog::display(_("Error"), sprintf(_("Adding an administrative user failed: object '%s' already exists!"), LDAP::fix($dn)), ERROR_DIALOG);
+      return(FALSE);  
+    }
+
+    $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$dn));
+    $ldap->cd($dn);  
+    $res = $ldap->add($new_user);
+    $this->acl_create_selected = $dn;
+    $this->create_admin();
+    
+    if(!$res){
+      msg_dialog::display(_("LDAP error"), $ldap->get_error(), ERROR_DIALOG);
+      return(FALSE);
+    }
+  
+    $this->acl_create_dialog=FALSE;        
+    $this->check_administrativeAccount();
+    return(TRUE);
+  }
+ 
+
+  function migrate_outside_winstations($perform = FALSE)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $ldap->cd($cv['base']);
+
+    /* Check if there was a destination department posted */
+    if(isset($_POST['move_winstation_to'])){
+      $destination_dep = $_POST['move_winstation_to'];
+    }else{
+      msg_dialog::display(_("LDAP error"), _("Cannot move users to the requested department!"), ERROR_DIALOG);
+      return(false);
+    }
+ 
+    foreach($this->outside_winstations as $b_dn => $data){
+      $this->outside_winstations[$b_dn]['ldif'] ="";
+      if($data['selected']){
+        $dn = base64_decode($b_dn);
+        $d_dn = preg_replace("/,.*$/",",".base64_decode($destination_dep),$dn);
+        if(!$perform){
+          $this->outside_winstations[$b_dn]['ldif'] = _("Winstation will be moved from").":<br>\t".($ldap->fix($dn))."<br>"._("to").":<br>\t".($ldap->fix($d_dn));
+
+
+          /* Check if there are references to this object */
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $refs = "";
+          while($attrs = $ldap->fetch()){
+            $ref_dn = $attrs['dn'];
+            $refs .= "<br />\t".$ref_dn;
+          } 
+          if(!empty($refs)){ 
+            $this->outside_winstations[$b_dn]['ldif'] .= "<br /><br /><i>"._("Updating following references too").":</i>".$refs;
+          }
+
+        }else{
+          $this->move($dn,$d_dn);
+        }
+      }
+    }
+  }
+  
+
+  function migrate_outside_groups($perform = FALSE)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    /* Check if there was a destination department posted */
+    if(isset($_POST['move_group_to'])){
+      $destination_dep = $_POST['move_group_to'];
+    }else{
+      msg_dialog::display(_("LDAP error"), _("Cannot move users to the requested department!"), ERROR_DIALOG);
+      return(false);
+    }
+ 
+    foreach($this->outside_groups as $b_dn => $data){
+      $this->outside_groups[$b_dn]['ldif'] ="";
+      if($data['selected']){
+        $dn = base64_decode($b_dn);
+        $d_dn = preg_replace("/,.*$/",",".base64_decode($destination_dep),$dn);
+        if(!$perform){
+
+          $this->outside_groups[$b_dn]['ldif'] = _("Group will be moved from").":<br>\t".($ldap->fix($dn))."<br>"._("to").":<br>\t".($ldap->fix($d_dn));
+
+          /* Check if there are references to this object */
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $refs = "";
+          while($attrs = $ldap->fetch()){
+            $ref_dn = $attrs['dn'];
+            $refs .= "<br />\t".$ref_dn;
+          } 
+          if(!empty($refs)){ 
+            $this->outside_groups[$b_dn]['ldif'] .= "<br /><br /><i>"._("Updating following references too").":</i>".$refs;
+          }
+
+        }else{
+          $this->move($dn,$d_dn);
+        }
+      }
+    }
+  }
+  
+
+  function migrate_outside_users($perform = FALSE)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    /* Check if there was a destination department posted */
+    if(isset($_POST['move_user_to'])){
+      $destination_dep = $_POST['move_user_to'];
+    }else{
+      msg_dialog::display(_("LDAP error"), _("Cannot move users to the requested department!"), ERROR_DIALOG);
+      return(false);
+    }
+      
+    foreach($this->outside_users as $b_dn => $data){
+      $this->outside_users[$b_dn]['ldif'] ="";
+      if($data['selected']){
+        $dn = base64_decode($b_dn);
+        $d_dn = preg_replace("/,.*$/",",".base64_decode($destination_dep),$dn);
+        if(!$perform){
+          $this->outside_users[$b_dn]['ldif'] = _("User will be moved from").":<br>\t".($ldap->fix($dn))."<br>"._("to").":<br>\t".($ldap->fix($d_dn));
+
+          /* Check if there are references to this object */
+          $ldap->search("(&(member=".LDAP::prepare4filter($dn).")(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))",array('dn'));
+          $refs = "";
+          while($attrs = $ldap->fetch()){
+            $ref_dn = $attrs['dn'];
+            $refs .= "<br />\t".$ref_dn;
+          } 
+          if(!empty($refs)){ 
+            $this->outside_users[$b_dn]['ldif'] .= "<br /><br /><i>"._("The following references will be updated").":</i>".$refs;
+          }
+
+        }else{
+          $this->move($dn,$d_dn);
+        }
+      }
+    }
+  }
+  
+
+  function execute()
+  {
+    /* Initialise checks if this is the first call */
+    if(!$this->checks_initialised || isset($_POST['reload'])){
+      $this->initialize_checks();
+      $this->checks_initialised = TRUE;
+    }
+
+    /*************
+     * Winstations outside the group ou 
+     *************/
+    
+    if(isset($_POST['outside_winstations_dialog_cancel'])){
+      $this->outside_winstations_dialog = FALSE;
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+    }
+   
+    if(isset($_POST['outside_winstations_dialog_whats_done'])){
+      $this->migrate_outside_winstations(FALSE);
+    }
+ 
+    if(isset($_POST['outside_winstations_dialog_perform'])){
+      $this->migrate_outside_winstations(TRUE);
+      $this->search_outside_winstations();
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->outside_winstations_dialog = FALSE;
+    }
+
+    if(isset($_POST['outside_winstations_dialog'])){
+      $this->outside_winstations_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->outside_winstations_dialog){
+
+      /* Fix displayed dn syntax */ 
+      $tmp = $this->outside_winstations;
+      foreach($tmp as $key => $data){
+        $tmp[$key]['dn'] = LDAP::fix($data['dn']);
+      }
+
+      $smarty = get_smarty();
+      $smarty->assign("ous",$this->get_all_winstation_ous());
+      $smarty->assign("method","outside_winstations");
+      $smarty->assign("outside_winstations",$tmp);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+    /*************
+     * Groups outside the group ou 
+     *************/
+    
+    if(isset($_POST['outside_groups_dialog_cancel'])){
+      $this->outside_groups_dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->dialog = FALSE;
+    }
+   
+    if(isset($_POST['outside_groups_dialog_whats_done'])){
+      $this->show_details= TRUE;
+      $this->migrate_outside_groups(FALSE);
+    }
+ 
+    if(isset($_POST['outside_groups_dialog_refresh'])){
+      $this->show_details= FALSE;
+    }
+
+    if(isset($_POST['outside_groups_dialog_perform'])){
+      $this->migrate_outside_groups(TRUE);
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->outside_groups_dialog = FALSE;
+      $this->initialize_checks();
+    }
+
+    if(isset($_POST['outside_groups_dialog'])){
+      $this->outside_groups_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->outside_groups_dialog){
+
+      /* Fix displayed dn syntax */ 
+      $tmp = $this->outside_groups;
+      foreach($tmp as $key => $data){
+        $tmp[$key]['dn'] = LDAP::fix($data['dn']);
+      }
+
+      $smarty = get_smarty();
+      $smarty->assign("ous",$this->get_all_group_ous());
+      $smarty->assign("method","outside_groups");
+      $smarty->assign("outside_groups",$tmp);
+      $smarty->assign("group_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+ 
+    /*************
+     * User outside the people ou 
+     *************/
+    
+    if(isset($_POST['outside_users_dialog_cancel'])){
+      $this->outside_users_dialog = FALSE;
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+    }
+   
+    if(isset($_POST['outside_users_dialog_whats_done'])){
+      $this->show_details= TRUE;
+      $this->migrate_outside_users(FALSE);
+    }
+ 
+    if(isset($_POST['outside_users_dialog_perform'])){
+      $this->migrate_outside_users(TRUE);
+      $this->initialize_checks();
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->outside_users_dialog = FALSE;
+    }
+
+    if (isset($_POST['outside_users_dialog_refresh'])){
+      $this->show_details= FALSE;
+    }
+
+    if(isset($_POST['outside_users_dialog'])){
+      $this->outside_users_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->outside_users_dialog){
+
+      /* Fix displayed dn syntax */ 
+      $tmp = $this->outside_users;
+      foreach($tmp as $key => $data){
+        $tmp[$key]['dn'] = LDAP::fix($data['dn']);
+      }
+
+      $smarty = get_smarty();
+      $smarty->assign("ous",$this->get_all_people_ous());
+      $smarty->assign("method","outside_users");
+      $smarty->assign("outside_users",$tmp);
+      $smarty->assign("user_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+ 
+    /*************
+     * Root object check  
+     *************/
+  
+    if(isset($_POST['retry_root_create'])){
+
+      $state = $this->checks['root']['STATUS'];
+      $this->checkBase(FALSE);
+      if($state != $this->checks['root']['STATUS']){
+        $this->initialize_checks();
+      }
+    }
+
+    /*************
+     * Root object class check  
+     *************/
+  
+    if(isset($_POST['root_add_objectclasses'])){
+      $this->rootOC_migrate_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    if(isset($_POST['rootOC_dialog_cancel'])){
+      $this->rootOC_migrate_dialog = FALSE;
+      $this->dialog = FALSE;
+    }
+    if(isset($_POST['rootOC_migrate_start'])){
+      if($this->checkBaseOC(FALSE)){
+        $this->checkBaseOC(); // Update overview info
+        $this->dialog = FALSE;
+        $this->rootOC_migrate_dialog = FALSE;
+      }
+    }
+
+
+    if($this->rootOC_migrate_dialog){
+      $smarty = get_smarty();
+      $smarty->assign("details",$this->rootOC_details);
+      $smarty->assign("method","rootOC_migrate_dialog");
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+    /*************
+     * Administrative Account -- Migrate/Create 
+     *************/
+
+    if(isset($_POST['retry_acls'])){
+      $this->check_administrativeAccount();
+    }
+
+    /* Dialog handling */
+    if(isset($_POST['create_acls'])){
+      $this->acl_create_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+
+    if(isset($_POST['migrate_acls'])){
+      $this->acl_migrate_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+  
+    if(isset($_POST['create_acls_cancel']) || isset($_POST['migrate_acls_cancel'])){
+      $this->acl_create_dialog = FALSE;
+      $this->acl_migrate_dialog = FALSE;
+      $this->dialog = FALSE;
+      $this->show_details = FALSE;
+    }
+
+    /* Account creation */
+    if(isset($_POST['create_acls_create'])){
+      $this->create_admin(TRUE);
+    }
+
+    if(isset($_POST['create_admin_user'])){
+      if($this->create_admin_user()){
+        $this->dialog = FALSE;
+      $this->show_details = FALSE;
+      }
+    }
+
+    /* Add admin acls for the selected users to the ldap base.
+     */
+    if($this->acl_migrate_dialog && isset($_POST['migrate_admin_user'])){
+
+      /* Update ldap and reload check infos 
+       */
+      $this->migrate_selected_admin_users();
+      $this->dialog = FALSE;
+      $this->acl_migrate_dialog = FALSE;
+
+    }elseif($this->acl_migrate_dialog){
+
+      /* Display admin migration dialog.
+       */
+      $this->migrate_users();
+      $smarty = get_smarty();
+
+      /* Do we have to display the changes
+       */
+      $details = isset($_POST['details']) && $_POST['details'];
+      if(isset($_POST['migrate_acls_show_changes'])){
+        $details = TRUE;
+      }elseif(isset($_POST['migrate_acls_hide_changes'])){
+        $details = FALSE;
+      }
+
+      $smarty->assign("migrate_acl_base_entry", $this->migrate_acl_base_entry);
+      $smarty->assign("details", $details);
+      $smarty->assign("method","migrate_acls");
+      $smarty->assign("migrateable_users",$this->migrate_users);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+    if($this->acl_create_dialog){
+      $smarty = get_smarty();
+      $uid = "admin";
+      if(isset($_POST['new_user_uid'])){
+        $uid = $_POST['new_user_uid'];
+      }
+      $smarty->assign("new_user_uid",$uid);
+      $smarty->assign("new_user_password",@$_POST['new_user_password']);
+      $smarty->assign("new_user_password2",@$_POST['new_user_password2']);
+      $smarty->assign("method","create_acls");
+      $smarty->assign("acl_create_selected",$this->acl_create_selected);
+      $smarty->assign("what_will_be_done_now",$this->acl_create_changes);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+    /*************
+     * User Migration handling 
+     *************/
+
+    /* Refresh list of deparments */
+    if(isset($_POST['users_visible_migrate_refresh'])){
+      $this->check_gosaAccounts();
+    }
+
+    /* Open migration dialog */
+    if(isset($_POST['users_visible_migrate'])){
+      $this->show_details= FALSE;
+      $this->users_migration_dialog = TRUE;
+      $this->dialog =TRUE;
+    }
+
+    /* Close migration dialog */
+    if(isset($_POST['users_visible_migrate_close'])){
+      $this->users_migration_dialog = FALSE;
+      $this->dialog =FALSE;
+      $this->show_details = FALSE;
+    }
+
+    /* Start migration */
+    if(isset($_POST['users_visible_migrate_migrate'])){
+      if($this->migrate_gosaAccounts()){
+        $this->initialize_checks();
+        $this->dialog = FALSE;
+        $this->show_details = FALSE;
+        $this->users_migration_dialog = FALSE;
+      }
+    }
+
+    /* Start migration */
+    if(isset($_POST['users_visible_migrate_whatsdone'])){
+      $this->migrate_gosaAccounts(TRUE);
+    }
+
+    /* Display migration dialog */
+    if($this->users_migration_dialog){
+
+      /* Fix displayed dn syntax */ 
+      $tmp = $this->users_to_migrate;
+      foreach($tmp as $key => $data){
+        $tmp[$key]['dn'] = LDAP::fix($data['dn']);
+      }
+
+      $smarty = get_smarty();
+      $smarty->assign("users_to_migrate",$tmp);
+      $smarty->assign("method","migrate_users");
+      $smarty->assign("user_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+
+    /*************
+     * Department Migration handling 
+     *************/
+
+    /* Refresh list of deparments */
+    if(isset($_POST['deps_visible_migrate_refresh'])){
+      $this->check_organizationalUnits();
+      $this->show_details= FALSE;
+    }
+
+    /* Open migration dialog */
+    if(isset($_POST['deps_visible_migrate'])){
+      $this->dep_migration_dialog = TRUE;
+      $this->dialog =TRUE;
+    }
+
+    /* Close migration dialog */
+    if(isset($_POST['deps_visible_migrate_close'])){
+      $this->dep_migration_dialog = FALSE;
+      $this->dialog =FALSE;
+      $this->show_details = FALSE;
+    }
+
+    /* Start migration */
+    if(isset($_POST['deps_visible_migrate_migrate'])){
+      if($this->migrate_organizationalUnits()){
+        $this->show_details= FALSE;
+        $this->check_organizationalUnits();
+        $this->dialog = FALSE;
+        $this->dep_migration_dialog = FALSE;
+      }
+    }
+
+    /* Start migration */
+    if(isset($_POST['deps_visible_migrate_whatsdone'])){
+      $this->migrate_organizationalUnits(TRUE);
+    }
+
+    /* Display migration dialog */
+    if($this->dep_migration_dialog){
+      $smarty = get_smarty();
+   
+      /* Fix displayed dn syntax */ 
+      $tmp = $this->deps_to_migrate;
+      foreach($tmp as $key => $data){
+        $tmp[$key]['dn'] = LDAP::fix($data['dn']);
+      }
+
+      $smarty->assign("deps_to_migrate",$tmp);
+      $smarty->assign("method","migrate_deps");
+      $smarty->assign("deps_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+
+    /*************
+     * Device migration 
+     *************/
+   
+    if($this->device_dialog) {
+      $this->check_device_posts();
+    }
+ 
+    if(isset($_POST['device_dialog_cancel'])){
+      $this->device_dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->dialog = FALSE;
+    }
+   
+    if(isset($_POST['device_dialog_whats_done'])){
+      $this->show_details= TRUE;
+    }
+ 
+    if(isset($_POST['device_dialog_refresh'])){
+      $this->show_details= FALSE;
+    }
+
+    if(isset($_POST['migrate_devices'])){
+      $this->migrate_usb_devices();
+#      $this->dialog = FALSE;
+ #     $this->show_details = FALSE;
+  #    $this->device_dialog = FALSE;
+   #   $this->initialize_checks();
+    }
+
+    if(isset($_POST['device_dialog'])){
+      $this->device_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->device_dialog){
+      $smarty = get_smarty();
+      $smarty->assign("method","devices");
+      $smarty->assign("devices",$this->device);
+      $smarty->assign("device_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+
+    /*************
+     * Service migration 
+     *************/
+   
+    if($this->service_dialog) {
+      $this->check_service_posts();
+    }
+ 
+    if(isset($_POST['service_dialog_cancel'])){
+      $this->service_dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->dialog = FALSE;
+    }
+   
+    if(isset($_POST['service_dialog_whats_done'])){
+      $this->show_details= TRUE;
+    }
+ 
+    if(isset($_POST['service_dialog_refresh'])){
+      $this->show_details= FALSE;
+    }
+
+    if(isset($_POST['migrate_services'])){
+      $this->migrate_services();
+#      $this->dialog = FALSE;
+ #     $this->show_details = FALSE;
+  #    $this->service_dialog = FALSE;
+   #   $this->initialize_checks();
+    }
+
+    if(isset($_POST['service_dialog'])){
+      $this->service_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->service_dialog){
+      $smarty = get_smarty();
+      $smarty->assign("method","services");
+      $smarty->assign("services",$this->service);
+      $smarty->assign("service_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+
+    /*************
+     * Menu migration 
+     *************/
+   
+    if($this->menu_dialog) {
+      $this->check_menu_posts();
+    }
+ 
+    if(isset($_POST['menu_dialog_cancel'])){
+      $this->menu_dialog = FALSE;
+      $this->show_details = FALSE;
+      $this->dialog = FALSE;
+    }
+   
+    if(isset($_POST['menu_dialog_whats_done'])){
+      $this->show_details= TRUE;
+    }
+ 
+    if(isset($_POST['menu_dialog_refresh'])){
+      $this->show_details= FALSE;
+    }
+
+    if(isset($_POST['migrate_menus'])){
+      $this->migrate_menus();
+#      $this->dialog = FALSE;
+ #     $this->show_details = FALSE;
+  #    $this->menu_dialog = FALSE;
+   #   $this->initialize_checks();
+    }
+
+    if(isset($_POST['menu_dialog'])){
+      $this->menu_dialog = TRUE;
+      $this->dialog = TRUE;
+    }
+    
+    if($this->menu_dialog){
+      $smarty = get_smarty();
+      $smarty->assign("method","menus");
+      $smarty->assign("menus",$this->menu);
+      $smarty->assign("menu_details", $this->show_details);
+      return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign("checks",$this->checks);
+    $smarty->assign("method","default");
+    return($smarty->fetch(get_template_path("setup_migrate.tpl",TRUE,dirname(__FILE__))));
+  }
+
+
+  function save_object()
+  {
+    $this->is_completed= TRUE;
+
+    /* Capture all selected winstations from outside_winstations_dialog */
+    if($this->outside_winstations_dialog){
+      foreach($this->outside_winstations as $dn => $data){
+        if(isset($_POST['select_winstation_'.$dn])){
+          $this->outside_winstations[$dn]['selected'] = TRUE;
+        }else{
+          $this->outside_winstations[$dn]['selected'] = FALSE;
+        }
+      }
+    }
+
+    /* Capture all selected groups from outside_groups_dialog */
+    if($this->outside_groups_dialog){
+      foreach($this->outside_groups as $dn => $data){
+        if(isset($_POST['select_group_'.$dn])){
+          $this->outside_groups[$dn]['selected'] = TRUE;
+        }else{
+          $this->outside_groups[$dn]['selected'] = FALSE;
+        }
+      }
+    }
+
+    /* Capture all selected users from outside_users_dialog */
+    if($this->outside_users_dialog){
+      foreach($this->outside_users as $dn => $data){
+        if(isset($_POST['select_user_'.$dn])){
+          $this->outside_users[$dn]['selected'] = TRUE;
+        }else{
+          $this->outside_users[$dn]['selected'] = FALSE;
+        }
+      }
+    }
+
+    /* Get "create acl" dialog posts */
+    if($this->acl_create_dialog){
+
+      if(isset($_POST['create_acls_create_abort'])){
+        $this->acl_create_selected = "";
+      }
+    }
+
+    /* Get selected departments */
+    if($this->dep_migration_dialog){
+      foreach($this->deps_to_migrate as $id => $data){
+        if(isset($_POST['migrate_'.$id])){
+          $this->deps_to_migrate[$id]['checked'] = TRUE;
+        }else{
+          $this->deps_to_migrate[$id]['checked'] = FALSE;
+        }
+      }
+    }
+
+    /* Get selected users */
+    if($this->users_migration_dialog){
+      foreach($this->users_to_migrate as $id => $data){
+        if(isset($_POST['migrate_'.$id])){
+          $this->users_to_migrate[$id]['checked'] = TRUE;
+        }else{
+          $this->users_to_migrate[$id]['checked'] = FALSE;
+        }
+      }
+    }
+  }
+
+
+  /* Check if the root object exists.
+   * If the parameter just_check is true, then just check if the 
+   *  root object is missing and update the info messages.
+   * If the Parameter is false, try to create a new root object.
+   */
+  function checkBase($just_check = TRUE)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Check if root object exists */
+    $ldap->cd($cv['base']);
+    $ldap->set_size_limit(1);
+    $res = $ldap->search("(objectClass=*)");
+    $ldap->set_size_limit(0);
+    $err = ldap_errno($ldap->cid); 
+
+    if( !$res || 
+        $err == 0x20 ||  # LDAP_NO_SUCH_OBJECT
+        $err == 0x40) {  # LDAP_NAMING_VIOLATION
+
+      /* Root object doesn't exists 
+       */
+      if($just_check){
+        $this->checks['root']['STATUS']    = FALSE;
+        $this->checks['root']['STATUS_MSG']= _("Failed");
+        $this->checks['root']['ERROR_MSG'] =  _("The LDAP root object is missing. It is required to use your LDAP service.").' ';
+        $this->checks['root']['ERROR_MSG'].=  "<input type='submit' name='retry_root_create' value='"._("Try to create root object")."'>";
+        return(FALSE);
+      }else{
+
+        /* Add root object */ 
+        $ldap->cd($cv['base']);
+        $res = $ldap->create_missing_trees($cv['base']);
+
+        /* If adding failed, tell the user */
+        if(!$res){
+          $this->checks['root']['STATUS']    = FALSE;
+          $this->checks['root']['STATUS_MSG']= _("Failed");
+          $this->checks['root']['ERROR_MSG'] = _("Root object couldn't be created, you should try it on your own.");
+          $this->checks['root']['ERROR_MSG'].= " <input type='submit' name='retry_root_create' value='"._("Try to create root object")."'>";
+          return($res);;
+        }
+      }
+    }
+
+    /* Create & remove of dummy object was successful */
+    $this->checks['root']['STATUS']    = TRUE;
+    $this->checks['root']['STATUS_MSG']= _("Ok");
+  }
+
+
+  /* Check if the root object includes the required object classes, e.g. gosaDepartment is required for ACLs.
+   * If the parameter just_check is true, then just check for the OCs. 
+   * If the Parameter is false, try to add the required object classes.
+   */
+  function checkBaseOC($just_check = TRUE)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Check if root object exists */
+    $ldap->cd($cv['base']);
+    $ldap->cat($cv['base']);
+    if(!$ldap->count()){
+      $this->checks['rootOC']['STATUS']    = FALSE;
+      $this->checks['rootOC']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['rootOC']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return;
+    }
+
+    $attrs = $ldap->fetch();
+
+    /* Root object doesn't exists 
+     */
+    if(!in_array("gosaDepartment",$attrs['objectClass'])){
+      if($just_check){
+
+        $this->rootOC_details = array();	
+        $mods = array();
+
+        /* Get list of possible container objects, to be able to detect naming 
+         *  attributes and missing attribute types.
+         */
+        if(!class_available("departmentManagement")){
+          $this->checks['rootOC']['STATUS']    = FALSE;
+          $this->checks['rootOC']['STATUS_MSG']= _("Failed");
+          $this->checks['rootOC']['ERROR_MSG'] = sprintf(_("Missing GOsa object class '%s'!"),"departmentManagement").
+            " "._("Please check your installation.");
+          return;
+        }
+
+        /* Try to detect base class type, e.g. is it a dcObject.
+         */
+        $dep_types = departmentManagement::get_support_departments();
+        $dep_type ="";
+        foreach($dep_types as $dep_name => $dep_class){
+          if(in_array($dep_class['CLASS'], $attrs['objectClass'])){
+            $dep_type = $dep_name;
+            break;
+          }
+        }
+
+        /* If no known base class was detect, abort with message
+         */	
+        if(empty($dep_type)){
+          $this->checks['rootOC']['STATUS']    = FALSE;
+          $this->checks['rootOC']['STATUS_MSG']= _("Failed");
+          $this->checks['rootOC']['ERROR_MSG'] = 
+            sprintf(_("Cannot handle the structural object type of your root object. Please try to add the object class '%s' manually."),"gosaDepartment");
+          return;
+        }
+
+        /* Create 'current' and 'target' object properties, to be able to display 
+         *  a set of modifications required to create a valid GOsa department.
+         */	
+        $str = "dn: ".$cv['base']."\n";
+        for($i = 0 ; $i<$attrs['objectClass']['count'];$i++){
+          $str .= "objectClass: ".$attrs['objectClass'][$i]."\n";
+        }
+        $this->rootOC_details['current'] = $str;
+
+        /* Create target infos 
+         */
+        $str = "dn: ".$cv['base']."\n";
+        for($i = 0 ; $i<$attrs['objectClass']['count'];$i++){
+          $str .= "objectClass: ".$attrs['objectClass'][$i]."\n";
+          $mods['objectClass'][] = $attrs['objectClass'][$i];
+        }
+        $mods['objectClass'][] = "gosaDepartment";
+        $str .= "<b>objectClass: gosaDepartment</b>\n";
+
+        /* Append attribute 'ou', it is required by gosaDepartment
+         */
+        if(!isset($attrs['ou'])){
+          $val = "GOsa";
+          if(isset($attrs[$dep_types[$dep_type]['ATTR']][0])){
+            $val = $attrs[$dep_types[$dep_type]['ATTR']][0];
+          }
+          $str .= "<b>ou: ".$val."</b>\n";
+          $mods['ou'] =$val;
+        }
+
+        /*Append description, it is required by gosaDepartment too.
+         */
+        if(!isset($attrs['description'])){
+          $val = "GOsa";
+          if(isset($attrs[$dep_types[$dep_type]['ATTR']][0])){
+            $val = $attrs[$dep_types[$dep_type]['ATTR']][0];
+          }
+          $str .= "<b>description: ".$val."</b>\n";
+          $mods['description'] = $val;
+        }
+        $this->rootOC_details['target'] = $str;
+        $this->rootOC_details['mods'] = $mods;
+
+        /*  Add button that allows to open the migration details
+         */
+        $this->checks['rootOC']['STATUS']    = FALSE;
+        $this->checks['rootOC']['STATUS_MSG']= _("Failed");
+        $this->checks['rootOC']['ERROR_MSG'] = " <input type='submit' 
+          name='root_add_objectclasses' value='"._("Migrate")."'>";
+
+        return(FALSE);
+      }else{
+
+        /* Add root object */ 
+        $ldap->cd($cv['base']);
+        if(isset($this->rootOC_details['mods'])){
+          $res  = $ldap->modify($this->rootOC_details['mods']);	
+          if(!$res){
+            msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $cv['base'], LDAP_MOD, get_class()));
+          }
+          $this->checkBaseOC();
+          $this->check_administrativeAccount();
+          return($res);
+        }else{
+          trigger_error("No modifications to make... ");
+        }
+      }
+      return(TRUE);
+    }
+
+    /* Create & remove of dummy object was successful */
+    $this->checks['rootOC']['STATUS']    = TRUE;
+    $this->checks['rootOC']['STATUS_MSG']= _("Ok");
+    $this->checks['rootOC']['ERROR_MSG'] = "";
+  }
+
+
+  /* Return ldif information for a 
+   * given attribute array 
+   */
+  function array_to_ldif($atts)
+  {
+    $ret = "";
+    unset($atts['count']);
+    unset($atts['dn']);
+    foreach($atts as $name => $value){
+      if(is_numeric($name)) {
+        continue;
+      }
+      if(is_array($value)){
+        unset($value['count']);
+        foreach($value as $a_val){
+          $ret .= $name.": ". $a_val."\n";
+        }
+      }else{
+        $ret .= $name.": ". $value."\n";
+      }
+    }
+    return(preg_replace("/\n$/","",$ret));
+  }
+
+
+  function get_user_list()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+    $ldap->search("(objectClass=gosaAccount)",array("dn"));
+  
+    $tmp = array();
+    while($attrs = $ldap->fetch()){
+      $tmp[base64_encode($attrs['dn'])] = LDAP::fix($attrs['dn']);
+    }
+    return($tmp);
+  }
+
+
+ function get_all_people_ous()
+  {
+    /* Get collected configuration settings */
+    $cv = $this->parent->captured_values;
+    $people_ou = trim($cv['peopleou']);
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /*****************
+     * If people ou is NOT empty
+     * search for for all objects matching the given container
+     *****************/
+    if(!empty($people_ou)){
+      $ldap->search("(".$people_ou.")",array("dn"));
+
+      /* Create people ou if there is currently none */
+      if($ldap->count() == 0 ){
+        $add_dn = $cv['peopleou'].",".$cv['base'];
+        $naming_attr = preg_replace("/=.*$/","",$add_dn);
+        $naming_value = preg_replace("/^[^=]*+=([^,]*).*$/","\\1",$add_dn);
+        $add = array();
+        $add['objectClass'] = array("organizationalUnit");
+        $add[$naming_attr] = $naming_value;
+        $ldap->cd($cv['base']);
+        $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$add_dn));
+        $ldap->cd($add_dn);
+        $ldap->add($add);
+      }
+
+      /* Create result */
+      $ldap->search("(".$cv['peopleou'].")",array("dn"));
+      $tmp = array();
+      while($attrs= $ldap->fetch()){
+        if(!preg_match("/ou=snapshots,/",$attrs['dn'])){
+          $tmp[base64_encode($attrs['dn'])] = $ldap->fix($attrs['dn']);
+        }
+      }
+    } else{
+
+      /************
+       * If people ou is empty
+       * Get all valid gosaDepartments
+       ************/
+      $ldap->cd($cv['base']);
+      $tmp = array();
+      $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn"));
+      $tmp[base64_encode($cv['base'])] = $ldap->fix($cv['base']);
+      while($attrs = $ldap->fetch()){
+        $tmp[base64_encode($attrs['dn'])] = $ldap->fix($attrs['dn']);;
+      }
+    }
+    return($tmp);
+  }
+
+
+  function get_all_winstation_ous()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Get winstation ou */
+    if($cv['generic_settings']['wws_ou_active']) {
+      $winstation_ou = $cv['generic_settings']['wws_ou'];
+    }else{
+      $winstation_ou = "ou=winstations";
+    }
+
+    $ldap->cd($cv['base']);
+    $ldap->search("(".$winstation_ou.")",array("dn"));
+  
+    if($ldap->count() == 0 ){
+      $add_dn = $winstation_ou.",ou=systems,".$cv['base'];
+      $naming_attr = preg_replace("/=.*$/","",$add_dn);
+      $naming_value = preg_replace("/^[^=]*+=([^,]*).*$/","\\1",$add_dn);
+      $add = array();
+      $add['objectClass'] = array("organizationalUnit");
+      $add[$naming_attr] = $naming_value;
+
+      $ldap->cd($cv['base']);
+      $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$add_dn));
+      $ldap->cd($add_dn);
+      $ldap->add($add);
+    }
+
+    $ldap->search("(".$winstation_ou.")",array("dn"));
+    $tmp = array();
+    while($attrs= $ldap->fetch()){
+      if(!preg_match("/ou=snapshots,/",$attrs['dn'])){
+        $tmp[base64_encode($attrs['dn'])] = $ldap->fix($attrs['dn']);
+      }
+    }
+    return($tmp); 
+  }
+
+
+ function get_all_group_ous()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    $group_ou = trim($cv['groupou']);
+    if(!empty($group_ou)){
+      $group_ou = trim($group_ou);
+    }
+
+    /************
+     * If group ou is NOT empty
+     * Get all valid group ous, create one if necessary
+     ************/
+    $ldap->cd($cv['base']);
+    if(!empty($group_ou)){
+      $ldap->search("(".$group_ou.")",array("dn"));
+      if($ldap->count() == 0 ){
+        $add_dn = $group_ou.$cv['base'];
+        $naming_attr = preg_replace("/=.*$/","",$add_dn);
+        $naming_value = preg_replace("/^[^=]*+=([^,]*).*$/","\\1",$add_dn);
+        $add = array();
+        $add['objectClass'] = array("organizationalUnit");
+        $add[$naming_attr] = $naming_value;
+
+        $ldap->cd($cv['base']);
+        $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$add_dn));
+        $ldap->cd($add_dn);
+        $ldap->add($add);
+      }
+      $ldap->search("(".$group_ou.")",array("dn"));
+      $tmp = array();
+      while($attrs= $ldap->fetch()){
+        if(!preg_match("/ou=snapshots,/",$attrs['dn'])){
+          $tmp[base64_encode($attrs['dn'])] = $ldap->fix($attrs['dn']);
+        }
+      }
+    }else{
+      /************
+       * If group ou is empty
+       * Get all valid gosaDepartments
+       ************/
+      $ldap->cd($cv['base']);
+      $tmp = array();
+      $ldap->search("(&(objectClass=gosaDepartment)(ou=*))",array("dn"));
+      $tmp[base64_encode($cv['base'])] = $ldap->fix($cv['base']);
+      while($attrs = $ldap->fetch()){
+        $tmp[base64_encode($attrs['dn'])] = $ldap->fix($attrs['dn']);;
+      }
+    }
+    return($tmp);
+  }
+
+
+  function get_group_list()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    
+    $ldap->cd($cv['base']);
+    $ldap->search("(objectClass=posixGroup)",array("dn"));
+  
+    $tmp = array();
+    while($attrs = $ldap->fetch()){
+      $tmp[base64_encode($attrs['dn'])] = LDAP::fix($attrs['dn']);
+    }
+    return($tmp);
+  }
+
+
+  function move($source,$destination)
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+     /* Update object references in gosaGroupOfNames */
+    $ogs_to_fix = array();
+    $ldap->cd($cv['base']);
+    $ldap->search('(&(objectClass=gosaGroupOfNames)(member='. at LDAP::prepare4filter($source).'))', array('cn','member'));
+    while ($attrs= $ldap->fetch()){
+      $dn = $attrs['dn'];
+      $attrs = $this->cleanup_array($attrs);
+      $member_new = array($destination);
+      foreach($attrs['member'] as $member){
+        if($member != $source){
+          $member_new[] = $member;
+        }
+      }
+      $attrs['member'] = $member_new;
+      $ogs_to_fix[$dn] = $attrs;
+    }
+
+    /* Copy source to destination dn */
+    $ldap->cat($source);
+    $new_data = $this->cleanup_array($ldap->fetch());
+    $ldap->cd($destination);
+    $res = $ldap->add($new_data);
+
+    /* Display warning if copy failed */
+    if(!$res){
+      msg_dialog::display(_("LDAP error"), sprintf(_("Copy '%s' to '%s' failed:")."<br><br><i>%s</i>", LDAP::fix($source), LDAP::fix($destination), $ldap->get_error()), ERROR_DIALOG);
+    }else{
+      $res = $ldap->rmDir($source);
+      if (!$ldap->success()){
+        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $source, LDAP_DEL, get_class()));
+      }
+
+      /* Object is copied, so update its references */
+      foreach($ogs_to_fix as $dn => $data){
+        $ldap->cd($dn);
+        $ldap->modify($data);
+      }
+    }
+  }
+
+
+  /* Cleanup ldap result to be able to write it be to ldap */
+  function cleanup_array($attrs)
+  {
+    foreach($attrs as $key => $value) {
+      if(is_numeric($key) || in_array($key,array("count","dn"))){
+        unset($attrs[$key]);
+      }
+      if(is_array($value) && isset($value['count'])){
+        unset($attrs[$key]['count']);
+      }
+    }
+    return($attrs);
+  }
+
+
+  /*! \brief  Act in posts from the device migration dialog 
+   */
+  function check_device_posts()
+  {
+    foreach($this->device as $key => $device){
+      if(isset($_POST["migrate_".$key])){
+        $this->device[$key]['DETAILS'] =TRUE;
+      }else{
+        $this->device[$key]['DETAILS'] =FALSE;
+      }
+    }
+  }
+
+
+  /*! \brief  Check for old style (gosa-2.5) devices.
+              Save readable informations and a list of migratable devices 
+               in $this->devices.
+   */
+  function check_usb_devices ()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(&(|(objectClass=posixAccount)(objectClass=posixGroup))(gotoHotplugDevice=*))",
+        array("cn","gotoHotplugDevice","gosaUnitTag"));
+
+    if(!$res){
+      $this->checks['old_style_devices']['STATUS']    = FALSE;
+      $this->checks['old_style_devices']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['old_style_devices']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return;
+    }
+
+
+    /* If adding failed, tell the user */
+    if($ldap->count()){
+  
+      $this->device = array();
+      while($attrs = $ldap->fetch()){
+
+        for ($j= 0; $j < $attrs['gotoHotplugDevice']['count']; $j++){
+
+          $after  = "";
+          $current= "";
+
+          $entry= $attrs['gotoHotplugDevice'][$j];
+
+          @list($name,$desc,$serial,$vendor,$product) = explode('|', $entry);
+  
+          $add = 1;
+          $new_name  = $name;
+          while(isset($dest[$new_name])){
+            $new_name = $name."_".$add;
+            $add ++;
+          }
+          $name = $new_name;
+          $newdn= "cn=$name,ou=devices,".preg_replace('/^[^,]+,/', '', $attrs['dn']);
+
+          if (!isset($dest[$name])){
+            $dest[$name]= $newdn;
+
+            $current.= "dn: ".$attrs['dn']."\n"; 
+    
+            for ($c= 0; $c < $attrs['gotoHotplugDevice']['count']; $c++){
+              if($c == $j){
+                $current.= "<b>gotoHotplugDevice: ".$attrs['gotoHotplugDevice'][$c]."</b>\n"; 
+              }else{
+                $current.= "gotoHotplugDevice: ".$attrs['gotoHotplugDevice'][$c]."\n"; 
+              }
+            }
+
+            $after.= "dn: $newdn\n";
+            $after.= "changetype: add\n";
+            $after.= "objectClass: top\n";
+            $after.= "objectClass: gotoDevice\n";
+            if (isset($attrs['gosaunittag'][0])){
+              $after.= "objectClass: gosaAdminiafter\n";
+              $after.= "gosaUnitTag: ".$attrs['gosaunittag'][0]."\n";
+            }
+            $after.= "cn: $name\n";
+            $after.= "gotoHotplugDevice: $desc|$serial|$vendor|$product\n\n";
+
+            $this->device[] = array(
+                'CURRENT'     =>  $current,
+                'AFTER'       => $after,
+                'OLD_DEVICE'  => $entry,
+                'DN'          => $attrs['dn'],
+                'NEW_DN'      => $newdn,
+                'DEVICE_NAME' => $name,
+                'DETAILS'     => FALSE);
+          }
+        }
+      }
+
+      $this->checks['old_style_devices']['STATUS']    = FALSE;
+      $this->checks['old_style_devices']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['old_style_devices']['ERROR_MSG'] = 
+        sprintf(_("There are %s devices that need to be migrated."),count($this->device)).
+          "<input type='submit' name='device_dialog' value='"._("Migrate")."'>";
+    }else{
+      $this->checks['old_style_devices']['STATUS']    = TRUE;
+      $this->checks['old_style_devices']['STATUS_MSG']= _("Ok");
+      $this->checks['old_style_devices']['ERROR_MSG'] = "";
+    }
+  }
+
+
+  /*! \brief  Migrate all selected devices. 
+              Execute all required ldap actions to migrate the 
+               selected devices.
+   */
+  function migrate_usb_devices ()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Walk through migrateable devices and initiate migration for all 
+        devices that are checked (DETAILS==TRUE) 
+     */
+    foreach($this->device as $key => $device){
+      if($device['DETAILS']){
+
+        /* Get source object and verify that the specified device is a 
+            member attribute of it. 
+         */
+        $ldap->cd($cv['base']);
+        $ldap->cat($device['DN']);
+        $attrs = $ldap->fetch();
+        if(in_array($device['OLD_DEVICE'],$attrs['gotoHotplugDevice'])){
+
+          /* Create new hotplug device object 'gotoDevice'
+           */ 
+          @list($name,$desc,$serial,$vendor,$product) = explode('|', $device['OLD_DEVICE']);    
+          $newdn = $device['NEW_DN'];
+          $new_attr = array();
+          $new_attr['cn'] = $device['DEVICE_NAME'];
+          $new_attr['objectClass'] = array('top','gotoDevice');
+          $new_attr['gotoHotplugDevice'] = "$desc|$serial|$vendor|$product";
+
+          /* Add new object 
+           */
+          $ldap->cd($cv['base']);
+          $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$newdn));
+          $ldap->cd($newdn);
+          $ldap->add($new_attr);
+
+          /* Throw an error message if the action failed. 
+           */
+          if(!$ldap->success()){
+            msg_dialog::display(_("LDAP error"), 
+                sprintf(_("Adding '%s' to the LDAP failed: %s"),
+                  "<b>".LDAP::fix($newdn)."</b>", 
+                  "<br><br><i>".$ldap->get_error()."</i>"), ERROR_DIALOG);
+          }else{
+
+            /* Remove old style device definition from source object. 
+             */
+            $update['gotoHotplugDevice'] = array();
+            for($i = 0 ; $i < $attrs['gotoHotplugDevice']['count'] ; $i++){
+              if($attrs['gotoHotplugDevice'][$i] == $device['OLD_DEVICE']){
+                 continue;
+              }
+              $update['gotoHotplugDevice'][] = $attrs['gotoHotplugDevice'][$i];
+            }
+
+            $ldap->cd($device['DN']);
+            $ldap->modify($update);
+            $ldap->cat($device['DN'],array("gotoHotplugDevice"));
+            if(!$ldap->success()){
+              msg_dialog::display(_("LDAP error"), 
+                  sprintf(_("Updating '%s' failed: %s"),
+                    "<b>".LDAP::fix($device['DN'])."</b>", 
+                    "<br><br><i>".$ldap->get_error()."</b>"), ERROR_DIALOG);
+            }else{
+              unset($this->device[$key]);
+            }
+          }
+        }
+      }
+    }
+    $this->check_usb_devices();
+  }
+
+
+  /*! \brief  Check for old style (gosa-2.5) services that have to be migrated
+               to be useable in gosa-2.6.
+              All required changes are stored in $this->service, also some
+               readable informations describing the actions required 
+               to migrate the service
+   */
+  function check_services()
+  {
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $this->service = array();
+
+    /* Check for Ldap services that must be migrated 
+     */ 
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(objectClass=goLdapServer)", array("goLdapBase", "cn"));
+
+    /* Check if we were able to query the ldap server 
+     */
+    if(!$res){
+      $this->checks['old_style_services']['STATUS']    = FALSE;
+      $this->checks['old_style_services']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['old_style_services']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return;
+    }
+
+    /* Walk through each configured ldap server 
+        and check if it is configured correctly.
+     */
+    while($attrs = $ldap->fetch()){
+      $dn= $attrs['dn'];
+      $uri= $attrs['goLdapBase'][0];
+      if (! preg_match("!^ldaps?://!", $uri)){
+        $this->service[] = array(
+            "TYPE"    => "modify" , 
+            "DN"      => $dn, 
+            "DETAILS" => FALSE, 
+            "ATTRS"   => array("goLdapBase" => "ldap://".$attrs['cn'][0]."/$uri"),
+            "CURRENT" => "goLdapBase: ".$uri,
+            "AFTER"   => "goLdapBase: "."ldap://".$attrs['cn'][0]."/$uri");
+      }
+    }
+
+    /* Other sevices following here later ...maybe
+     */
+
+    /*  Update status message
+     */
+    if(count($this->service)){
+      $this->checks['old_style_services']['STATUS']    = FALSE;
+      $this->checks['old_style_services']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['old_style_services']['ERROR_MSG'] =
+        sprintf(_("There are %s services that need to be migrated."),
+            count($this->service)).
+        "<input type='submit' name='service_dialog' value='"._("Migrate")."'>";
+    }else{
+      $this->checks['old_style_services']['STATUS']    = TRUE;
+      $this->checks['old_style_services']['STATUS_MSG']= _("Ok");
+      $this->checks['old_style_services']['ERROR_MSG'] = "";
+    }
+  }
+
+
+  
+  /*! \brief  Migrate selected services.
+              This function executes the commands collected by the 
+               service_check() function.
+   */
+  function migrate_services()
+  {
+    /* Establish ldap connection 
+     */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Handle each service 
+     */
+    foreach($this->service as $key => $service){
+      if($service['DETAILS']){
+
+        /* Handle modify requests 
+         */
+        if($service['TYPE'] == "modify"){
+          $ldap->cd($service['DN']);
+          $ldap->modify($service['ATTRS']);
+
+          /* Check if everything done was successful 
+           */
+          if(!$ldap->success()){
+            msg_dialog::display(_("LDAP error"), 
+                sprintf(_("Updating '%s' failed: %s"),
+                  "<b>".LDAP::fix($service['DN'])."</b>", 
+                  "<br><br><i>".$ldap->get_error()."</b>"), ERROR_DIALOG);
+          }else{
+        
+            /* Remove action from list 
+             */
+            unset($this->service[$key]);
+          }
+        }
+      }
+    }
+
+    /* Update the service migration status 
+     */
+    $this->check_services();
+  }
+
+
+  /*! \brief  Ensure that posts made on the service migration dialog 
+               are processed.
+   */
+  function check_service_posts()
+  {
+    foreach($this->service as $key => $service){
+      if(isset($_POST["migrate_".$key])){
+        $this->service[$key]['DETAILS'] =TRUE;
+      }else{
+        $this->service[$key]['DETAILS'] =FALSE;
+      }
+    }
+  }
+
+
+  /*! \brief  This function checks the given ldap for old style (gosa-2.5) 
+               menu entries and will prepare a list of actions that are required
+               to migrate them to gosa-2.6.
+              All required actions and some readable informations are stored in 
+               $this->menu.
+   */
+  function check_menus()
+  {
+    /* Establish ldap connection
+     */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* First detect all release names 
+     */
+    $ldap->cd($cv['base']);
+    $res = $ldap->search("(&(objectClass=organizational)(objectClass=FAIbranch))",array("ou","objectClass"));
+
+    /* Check if we were able to query the ldap server
+     */
+    if(!$res){
+      $this->checks['old_style_menus']['STATUS']    = FALSE;
+      $this->checks['old_style_menus']['STATUS_MSG']= _("LDAP query failed");
+      $this->checks['old_style_menus']['ERROR_MSG'] = _("Possibly the 'root object' is missing.");
+      return;
+    }
+
+    /* Create application -> parameter mapping, used later to detect 
+        which configured parameter belongs to which application entry.
+     */
+    $amap= array();
+    $todo = array();
+    $ldap->cd($cv['base']);
+    $ldap->search("(objectClass=gosaApplication)", array("cn", "gosaApplicationParameter"));
+    while($info = $ldap->fetch()){
+      if (isset($info['gosaApplicationParameter']['count'])){
+        for ($j= 0; $j < $info['gosaApplicationParameter']['count']; $j++){
+          $p= preg_replace("/^([^:]+):.*$/", "$1", $info['gosaApplicationParameter'][$j]);
+
+          if(!isset($amap[$info['cn'][0]]) || !in_array($p, $amap[$info['cn'][0]])){
+            $amap[$info['cn'][0]][]= $p;
+          }
+        }
+      } else {
+        $amap[$info['cn'][0]]= array();
+      }
+    }
+
+    /* Search for all groups that have an old style application menu configured.
+     */  
+    $appgroups = array();
+    $ldap->cd($cv['base']);
+    $ldap->search("(&(objectClass=gosaApplicationGroup)(objectClass=posixGroup)(FAIrelease=*))",
+        array("gosaMemberApplication","gosaApplicationParameter","FAIrelease","objectClass","gosaUnitTag"));
+
+    /* Create readable prefix for "What will be done" infos 
+     */
+    $s_add = "<i>"._("Add")."</i>\t";
+    $s_del = "<i>"._("Remove")."</i>\t";
+
+    /* Walk through all found old-style menu configurations.
+        -Prepare ldap update list     $data   
+        -Prepare printable changes    $after/$current
+     */
+    while($info = $ldap->fetch()){
+
+      $data = array();
+      $current = "";
+      $after ="";
+
+      /* Get unit tag 
+       */
+      $tag ="";
+      if(isset($info['gosaUnitTag'])){
+        $tag = $info['gosaUnitTag'][0];
+      }
+
+      /* Collect application parameter for this group
+       */
+      $params= array();
+      if(isset($info['gosaApplicationParameter'])){
+        for ($i= 0; $i < $info['gosaApplicationParameter']['count']; $i++){
+          $name= preg_replace("/^([^:]+):.*$/", "$1", $info['gosaApplicationParameter'][$i]);
+          $params[$name]= $info['gosaApplicationParameter'][$i];
+        }
+      }
+
+      /* Create release container for each release/subrelease.
+         eg.   "sisa/1.0.0":
+         .       "ou=siga, ..."
+         .       "ou=1.0.0,ou=siga, .."
+       */ 
+      $release = "";
+      $r = $info['FAIrelease'][0];
+      $z = explode("/",$r);
+      foreach($z as $part){
+
+        if(!empty($part)){
+          $release = "ou=".$part.",".$release;
+
+          /* Append release department information to "What will be done" info
+           */
+          $release_dn = $release.$info['dn'];
+          $after   .=  $s_add."dn: $release_dn\n";
+          $after   .=  $s_add."objectClass: top\n";
+          $after   .=  $s_add."objectClass: FAIbranch\n";
+          $after   .=  $s_add."objectClass: organizationalUnit\n";
+         
+          /* Append UnitTag 
+           */ 
+          if($tag != ""){ 
+            $after   .=  $s_add."objectClass: gosaAdministrativeUnitTag\n";
+            $after   .=  $s_add."gosaUnitTag: $tag\n";
+          }
+          $after   .=  $s_add."ou: $part\n";
+
+          /* Append release data to ldap actions 
+           */
+          $d = array();
+          $d['objectClass'] = array("top","FAIbranch","organizationalUnit");
+          if(!empty($tag)){
+            $d['objectClass'][] = "gosaAdministrativeUnitTag";
+            $d['gosaUnitTag']   = $tag;
+          }
+          $d['ou']          = $part;
+          $data['ADD'][$release_dn]= $d;
+        }
+      }
+
+      /* Add member applications to the array.
+       */ 
+      $current .= "dn: ".$info['dn']."\n";
+      $menu_structure = array();
+      for ($i= 0; $i < $info['gosaMemberApplication']['count']; $i++){
+        list($name, $location, $priority)= explode("|", $info['gosaMemberApplication'][$i]);
+
+        /* Create location dn 
+         */
+        $location_dn ="";
+        if(!empty($location)){
+          $location_dn ="cn=".$location.",";
+        }
+
+        /* Append old style element to current detail informations 
+         */      
+        $current .= $s_del."gosaMemberApplication: ".$info['gosaMemberApplication'][$i]."\n";
+
+        /* Append ldap update action to remove the old menu entry attributes 
+         */
+        unset($info['objectClass']['count']);
+        $d = array();
+        $d['gosaMemberApplication']      = array();
+        $d['gosaApplicationParameter']  = array();
+        if(isset($info['FAIrelease'])){
+          $d['FAIrelease'] = array();
+        }
+        $d['objectClass']               = array_remove_entries(array("gosaApplicationGroup","FAIreleaseTag"),$info['objectClass']);
+        $data['MODIFY'][$info['dn']]    = $d;
+
+        /* Create new application menu structure 
+         */
+        if (isset($amap[$name])){
+
+          /* Append missing menu structure to "What is done info"
+           */
+          if(!isset($menu_structure[$location]) && !empty($location)){
+            $menu_structure[$location] = TRUE;
+            $after .= "\n";
+            $after .= $s_add."dn: $location_dn$release_dn\n";
+            $after .= $s_add."objectClass: gotoSubmenuEntry\n";
+
+            /* Append UnitTag
+             */
+            if($tag != ""){
+              $after   .=  $s_add."objectClass: gosaAdministrativeUnitTag\n";
+              $after   .=  $s_add."gosaUnitTag: $tag\n";
+            }
+            $after .= $s_add."cn: $location\n";
+  
+            /* Create ldap entry to append 
+             */
+            $d = array();
+            $d['cn'] = $location;
+            $d['objectClass'] = array("gotoSubmenuEntry");
+            if(!empty($tag)){
+              $d['objectClass'][] = "gosaAdministrativeUnitTag";
+              $d['gosaUnitTag']   = $tag;
+            }
+            $data['ADD'][$location_dn.$release_dn] = $d;
+          }
+
+
+          /* Append missing menu entry for "What is done info".
+           */
+          if(!empty($name)){
+            $after .= "\n";
+            $after .= $s_add."dn: cn=$name,$location_dn$release_dn\n";
+            $after .= $s_add."objectClass: gotoMenuEntry\n";
+            if($tag != ""){
+              $after   .=  $s_add."objectClass: gosaAdministrativeUnitTag\n";
+              $after   .=  $s_add."gosaUnitTag: $tag\n";
+            }
+            $after .= $s_add."cn: $name\n";
+            $after .= $s_add."gosaApplicationPriority: $priority\n";
+
+            /* Create ldap entry 
+             */
+            $d= array();
+            $d['objectClass'] = array("gotoMenuEntry");
+            if(!empty($tag)){
+              $d['objectClass'][] = "gosaAdministrativeUnitTag";
+              $d['gosaUnitTag']   = $tag;
+            }
+            $d['cn']          = $name;
+            $d['gosaApplicationPriority'] = $priority;
+
+            foreach ($amap[$name] as $n){
+              if (isset($params[$n])){
+                $after .= $s_add."gosaApplicationParameter: ".$params[$n]."\n";
+                $d['gosaApplicationParameter'][] = $params[$n];
+              }
+            }
+            $data['ADD']["cn=$name,$location_dn$release_dn"] = $d;
+          }         
+        }
+      }
+
+      /* Updated todo list 
+       */ 
+      $todo[] = array(
+          "DETAILS" => FALSE,
+          "DN"      => $info['dn'],
+          "AFTER"   => $after,
+          "CURRENT" => $current,
+          "TODO"    => $data
+          );
+    }
+
+    /* Remember checks.
+     */
+    $this->menu = $todo;
+
+    /* Check if we were able to query the ldap server
+     */
+    if(count($this->menu)){
+      $this->checks['old_style_menus']['STATUS']    = FALSE;
+      $this->checks['old_style_menus']['STATUS_MSG']= "<font style='color:#F0A500'>"._("Warning")."</font>";
+      $this->checks['old_style_menus']['ERROR_MSG'] = sprintf(_("There are %s application menus which have to be migrated."),
+                                                      count($this->menu))."<input type='submit' name='menu_dialog' value='"._("Migrate")."'>";
+    }else{
+      $this->checks['old_style_menus']['STATUS']    = TRUE;
+      $this->checks['old_style_menus']['STATUS_MSG']= _("Ok");
+      $this->checks['old_style_menus']['ERROR_MSG'] = "";
+    }
+  }
+
+  
+  /*! \brief  Handle posts for the menu_dialog 
+              Ensure that checked checkboxes stay checked.
+   */
+  function check_menu_posts()
+  {
+    foreach($this->menu as $key => $menu){
+      if(isset($_POST["migrate_".$key])){
+        $this->menu[$key]['DETAILS'] =TRUE;
+      }else{
+        $this->menu[$key]['DETAILS'] =FALSE;
+      }
+    }
+  }
+
+
+  /*! \brief  This function updates old-style application menus to
+               valid 2.6 application menus.
+              All selected menus will be converted (DETAILS = TRUE). 
+              The ldap actions collected by check_menus() will be executed. 
+   */
+  function migrate_menus()
+  {
+
+    /* Establish ldap connection
+     */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    /* Walk through menus and detect selected menu 
+     */
+    foreach($this->menu as $key => $menu){
+      if($menu['DETAILS']) {
+
+        /* Excute all LDAP-ADD actions 
+         */
+        $success = TRUE;
+        foreach($menu['TODO']['ADD'] as $dn => $data){
+          $ldap->cd($cv['base']);
+          if(!$ldap->dn_exists($dn)){
+            $ldap->cd($dn);
+            $ldap->add($data);
+            if (!$ldap->success()){
+              msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_ADD, get_class()));
+              $success = FALSE;
+            }
+          }
+        }
+
+        /* Execute all LDAP-MODIFY actions 
+         */
+        foreach($menu['TODO']['MODIFY'] as $dn => $data){
+          $ldap->cd($cv['base']);
+          if($ldap->dn_exists($dn)){
+            $ldap->cd($dn);
+            $ldap->modify($data);
+            if (!$ldap->success()){
+              msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD, get_class()));
+              $success = FALSE;
+            }
+          }
+        }
+  
+        /* If every action was successful, remove this entry from the list 
+         */
+        if($success){
+          unset($this->menu[$key]);
+        }
+      }
+    }
+
+    /* Udpate migration status for application menus
+     */
+    $this->check_menus();
+  }
+
+
+  function migrate_selected_admin_users()
+  {
+    /* Updated ui selection */
+    $this->migrate_users();
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    /* Get current ACL configuration for the ldap base 
+     */
+    $ldap->cat($cv['base']);
+    $base_attrs = $ldap->fetch();
+    $acl_entries= array();
+    $acl_id = -1;
+    if(isset($base_attrs['gosaAclEntry'])){
+      for($i=0; $i < $base_attrs['gosaAclEntry']['count']; $i ++){
+        $acl_entries[] = $base_attrs['gosaAclEntry'][$i];
+        $cur_id = preg_replace("/^([0-9]*):.*$/","\\1",$base_attrs['gosaAclEntry'][$i]);
+        if($cur_id > $acl_id){
+          $acl_id = $cur_id;
+        }
+      }
+    }
+
+    /* Append ACLs selected in the migrate admin account dialog 
+     */
+    foreach($this->migrate_users as $entry){
+      if($entry['checked']){
+        $acl_id ++;
+        $acl_entries[] = $acl_id.$entry['change'];
+      }
+    }
+   
+    /* Check if the required objectClasses are available 
+     */
+    $ocs = array();     
+    for($i=0;$i< $base_attrs['objectClass']['count']; $i++){
+      $ocs[] = $base_attrs['objectClass'][$i];
+    }
+    if(!in_array("gosaACL",$ocs)){
+      $ocs[] = "gosaACL";
+    }
+
+    /* Try to write changes 
+     */
+    if(count($acl_entries)){
+      $new_entry['gosaAclEntry'] = $acl_entries;
+      $new_entry['objectClass'] = $ocs;
+      $ldap->cd($cv['base']);
+      $ldap->modify($new_entry);
+      if(!$ldap->success()){
+        $this->checks['acls']['TITLE']     = _("Checking for super administrator");
+        $this->checks['acls']['STATUS']    = FALSE;
+        $this->checks['acls']['STATUS_MSG']= _("Failed");
+        $this->checks['acls']['ERROR_MSG'] = "<br>".msgPool::ldaperror($cv['base'],$ldap->get_error(),LDAP_MOD);
+      }else{
+        $this->check_administrativeAccount();
+      }     
+    }
+  }
+  
+
+  function migrate_users()
+  {
+    /* Collect a list of available GOsa users and groups 
+     */
+
+    /* Establish ldap connection */
+    $cv = $this->parent->captured_values;
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+    $ldap->cd($cv['base']);
+
+    $users = array();
+    $ldap->search("(&(objectClass=gosaAccount)(objectClass=person)".
+        "(objectClass=inetOrgPerson)(objectClass=organizationalPerson))",array("uid","dn"));
+    while($user_attrs = $ldap->fetch()){
+      $users[$user_attrs['dn']] = $user_attrs['uid'][0];
+      $rusers[$user_attrs['uid'][0]] = $user_attrs['dn'];
+    }
+    $groups = array();
+    $ldap->search("objectClass=posixGroup",array("cn","dn"));
+    while($group_attrs = $ldap->fetch()){
+      $groups[$group_attrs['dn']] = $group_attrs['cn'][0];
+    }
+
+    foreach($this->migrate_users as $id => $data){
+      $this->migrate_users[$id]['checked'] = isset($_POST['migrate_admin_'.$id]);
+    }
+
+    /* Try to find an old GOsa 2.5 administrative account that may be migrated
+     */
+    if(!count($this->migrate_users)){
+      $ldap->cat($cv['base']);
+      $base_data = $ldap->fetch();
+      $base_entry = "dn: ".$base_data['dn']."\n";
+      for($i=0;$i<$base_data['objectClass']['count'];$i++){
+        $base_entry .= "objectClass: ".$base_data['objectClass'][$i]."\n";
+      }
+      if(!in_array("gosaACL",$base_data['objectClass'])){
+        $base_entry .= "<b>objectClass: gosaACL</b>\n";
+      }
+      if(isset($base_data['gosaAclEntry'])){
+        for($i=0;$i<$base_data['gosaAclEntry']['count'];$i++){
+          $base_entry .= "gosaAclEntry: ".$base_data['gosaAclEntry'][$i]."\n";
+        }
+      }
+      $this->migrate_acl_base_entry = $base_entry;
+      $ldap->cd($cv['base']);
+      $ldap->search("(&(objectClass=posixGroup)(gosaSubtreeACL=:all)(memberUid=*))",array("memberUid","cn"));
+      while($p_group = $ldap->fetch()){
+        for($e = 0 ; $e < $p_group['memberUid']['count'] ; $e ++ ){
+          $user = $p_group['memberUid'][$e];
+          if(isset($rusers[$user])){
+            $bsp_acl_entry = "gosaAclEntry: #:psub:".base64_encode($rusers[$user]).":all;cmdrw\n";
+            $entry = array();
+            $entry['uid'] = $user; 
+            $entry['dn'] = $rusers[$user]; 
+            $entry['details'] = $bsp_acl_entry; 
+            $entry['checked'] = FALSE;
+            $entry['change'] = ":psub:".base64_encode($rusers[$user]).":all;cmdrw";
+            $this->migrate_users[] = $entry;
+          }
+        }
+      }
+    }
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Schema.inc b/gosa-core/setup/class_setupStep_Schema.inc
new file mode 100644
index 0000000..c478459
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Schema.inc
@@ -0,0 +1,133 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Schema extends setup_step
+{
+  var $checked = array();
+  var $not_checked = array();
+  var $schema_readable  = FALSE;
+  var $attributes       = array("enable_schema_check","samba_version");
+  var $enable_schema_check = TRUE;
+  var $samba_version       = 3;
+
+  var $found_ocs = 0; 
+ 
+  function Step_Schema()
+  {
+    $this->update_strings();
+  }
+
+  
+  function update_strings()
+  {
+    $this->s_title      = _("LDAP schema check");
+    $this->s_title_long = _("LDAP schema check");
+    $this->s_info       = _("Perform test on your current LDAP schema");
+  }
+
+  
+  function execute()
+  {
+    $this->check_schema();
+    $failed_checks = 0 ; 
+    foreach($this->checked as $val) {
+      if(!$val['STATUS']){
+        $failed_checks ++;
+      }
+    }
+
+    if($failed_checks == 0){
+      $this->is_completed = TRUE;
+    }else{
+      $this->is_completed = TRUE;
+    }
+    
+    /* Check if the database is already initialised.
+     * If the root object is missing we can't read any schema informations.
+     * In this case we should display a message.
+     */
+    $cv = $this->parent->captured_values;
+
+    /* Establish ldap connection */
+    $ldap_l = new LDAP($cv['admin'],
+        $cv['password'],
+        $cv['connection'],
+        FALSE,
+        $cv['tls']);
+
+    $ldap = new ldapMultiplexer($ldap_l);
+
+    /* Check if root object exists */
+    $ldap->cd($cv['base']);
+    $ldap->set_size_limit(1);
+    $res = $ldap->search("(objectClass=*)");
+    $ldap->set_size_limit(0);
+
+    $smarty = get_smarty();
+    $smarty->assign("bool",array(FALSE => _("No"), TRUE => _("Yes")));
+    $smarty->assign("database_initialised", ($res == TRUE));
+    $smarty->assign("found_ocs", $this->found_ocs);
+    $smarty->assign("schema_readable",$this->schema_readable);
+    $smarty->assign("enable_schema_check",$this->enable_schema_check);
+    $smarty->assign("checks",$this->checked);
+    $smarty->assign("not_checked",$this->not_checked);
+    $smarty->assign("failed_checks",$failed_checks);
+    return($smarty -> fetch (get_template_path("../setup/setup_schema.tpl")));
+  }
+
+  function save_object()
+  {
+    if(isset($_POST['step7_posted'])){
+
+      /* Get attributes */
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = validate($_POST[$attr]);
+        }
+      }
+    }
+  }
+
+  function check_schema()
+  {
+    $cfg = $this->parent->captured_values;
+
+    /* Get objectclasses */
+    $ldap = new LDAP($cfg['admin'],$cfg['password'],$cfg['connection'] ,FALSE,$cfg['tls']);
+    $objectclasses = $ldap->get_objectclasses(TRUE);
+    $this->found_ocs = count($objectclasses);
+    $rfc2307bis = $cfg['rfc2307bis'];
+    $this->checked = check_schema($cfg,$rfc2307bis);
+
+    /* Which samba version do we use? */
+    if(isset($objectclasses['sambaSamAccount'])){
+      $this->samba_version = 3;
+    } elseif(isset($objectclasses['sambaAccount'])) {
+      $this->samba_version = 2;
+    }else{
+      $this->samba_version = 0;
+    }
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/class_setupStep_Welcome.inc b/gosa-core/setup/class_setupStep_Welcome.inc
new file mode 100644
index 0000000..f5104f1
--- /dev/null
+++ b/gosa-core/setup/class_setupStep_Welcome.inc
@@ -0,0 +1,74 @@
+<?php
+
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+class Step_Welcome  extends setup_step
+{
+  var $languages      = array();
+  var $attributes     = array();
+  var $header_image   = "images/setup/welcome.png";
+
+  function Step_Welcome()
+  {
+    $this->is_enabled     = TRUE;
+    $this->is_active      = TRUE;
+    $this->update_strings(); 
+  }
+
+  function update_strings()
+  {
+    $this->s_title      = _("Welcome");
+    $this->s_info       = _("The welcome message");
+    $this->s_title_long = _("Welcome to GOsa setup wizard");
+  }
+  
+  function execute()
+  {
+    $smarty = get_smarty();
+    $smarty->assign('auth_id', session_id());
+
+    $smarty->assign("path",'/tmp/gosa.auth');
+    return($smarty->fetch(get_template_path("setup_welcome.tpl",TRUE,dirname(__FILE__))));
+  }
+
+  function save_object()
+  {
+    $id = "";
+    
+    /* Get auth ID from file */
+    $path = '/tmp/gosa.auth';
+    if (file_exists($path) && is_readable($path)){
+      $contents= file($path);
+      $id= chop($contents[0]);
+    }
+
+    /* Continue if we've the correct ID */
+    if ($id == session_id()){
+      $this->is_completed = true;
+    } else {
+      $this->is_completed = false;
+    }
+
+  }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/license.txt b/gosa-core/setup/license.txt
new file mode 100644
index 0000000..174f03a
--- /dev/null
+++ b/gosa-core/setup/license.txt
@@ -0,0 +1,620 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
diff --git a/gosa-core/setup/main.inc b/gosa-core/setup/main.inc
new file mode 100644
index 0000000..2e00ce9
--- /dev/null
+++ b/gosa-core/setup/main.inc
@@ -0,0 +1,35 @@
+<?php
+/*
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2007 Fabian Hickert
+
+   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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* Create a new setup class if necessary  */
+if (!session::is_set('setup') || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+  session::set('setup',new setup());
+}
+$setup = session::get('setup');
+
+/* Execute formular */
+$setup->save_object();
+$display= $setup->execute();
+
+/* Store changes  in session */
+session::set('setup',$setup);
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/setup/setup.tpl b/gosa-core/setup/setup.tpl
new file mode 100644
index 0000000..3bb21f7
--- /dev/null
+++ b/gosa-core/setup/setup.tpl
@@ -0,0 +1,4 @@
+<div style='background-color: #009900;'>
+{$php_errors}
+sadffasdsdfa
+</div>
diff --git a/gosa-core/setup/setup_checks.tpl b/gosa-core/setup/setup_checks.tpl
new file mode 100644
index 0000000..90275fc
--- /dev/null
+++ b/gosa-core/setup/setup_checks.tpl
@@ -0,0 +1,122 @@
+<!-- 
+	Div container with PHP module checks 
+-->
+<div style='float:left;width:50%;'> 
+
+	<!-- Set content styles -->	
+	<div class='default' style='margin:10px;'>
+		<!-- Beginning PHP module check output -->
+		<h2 class='step2_container_title'>{t}PHP module and extension checks{/t}</h2>
+		<!-- {cycle reset=true values="#F0F0F0, #FFF"} -->
+		{foreach from=$basic item=val key=key}
+			<!-- Entry {$key} -->		
+			{if $basic[$key].SOLUTION != "" && !$basic[$key].RESULT}
+		
+				<!-- Add ability to display info popup -->	
+				<div class='step2_entry_container_info' style='background-color:{cycle values="#F0F0F0, #FFF"}'>
+			{else}
+
+				<!-- Normal entry everything is fine -->
+				<div class='step2_entry_container' style='background-color:{cycle values="#F0F0F0, #FFF"}'>	
+			{/if}
+			
+			<div class='step2_entry_name'>{$basic[$key].NAME}</div>
+			<div class='step2_entry_status'>
+
+			{if $basic[$key].RESULT}
+				<div class='step2_successful'>{t}Ok{/t}</div>
+			{else}
+				{if $basic[$key].MUST}
+					<div class='step2_failed'>{t}Error{/t}</div>
+				{else}
+					<div class='step2_warning'>{t}Warning{/t}</div>
+				{/if}
+				{if $basic[$key].SOLUTION != ""}
+	
+				<!-- Inforamtion popup -->
+				<div class='solution_visible' id='sol_{$key}'>
+					{if $basic[$key].MUST}
+						<div class='step2_failed_text' style="background-image: url('images/small_error.png')">
+						{$basic[$key].SOLUTION}
+						<b>{t}GOsa will NOT run without fixing this.{/t}</b>
+					{else}
+						<div class="step2_warning_text" style="background-image: url('images/small_warning.png')">
+						{$basic[$key].SOLUTION}
+						<b>{t}GOsa will run without fixing this.{/t}</b>
+					{/if}
+					</div>
+				</div>
+				{/if}
+			{/if}
+				</div>
+			</div>
+		{/foreach}
+	</div>
+</div>
+
+
+<!-- 
+	Div container with PHP config checks 
+-->
+<div style='width:50%; float:left;'>
+
+	<!-- Set content styles -->	
+	<div class='default' style='margin:10px;'>
+
+		<!-- Beginning PHP config check output -->
+		<h2 class='step2_container_title'>{t}PHP setup configuration{/t} (<a style='text-decoration:underline' href='?info' target='_blank'>{t}show information{/t})</a></h2>
+
+		<!-- {cycle reset=true values="#F0F0F0, #FFF"} -->
+		{foreach from=$config item=val key=key}
+
+			<!-- Entry {$key} -->
+            {if $config[$key].SOLUTION != "" && !$config[$key].RESULT}
+
+                <!-- Add ability to display info popup -->
+                <div class='step2_entry_container_info' style='background-color:{cycle values="#FFF, #F0F0F0"}'>
+            {else}
+
+                <!-- Normal entry everything is fine -->
+                <div class='step2_entry_container' style='background-color:{cycle values="#FFF, #F0F0F0"}'>
+            {/if}
+
+
+			<div class='step2_entry_name'>{$config[$key].NAME}</div>
+			<div class='step2_entry_status'>
+			{if $config[$key].RESULT}
+				<div class='step2_successful'>{t}Ok{/t}</div>
+			{else}
+
+				{if $config[$key].MUST}
+					<div class='step2_failed'>{t}Error{/t}</div>
+				{else}
+					<div class='step2_warning'>{t}Warning{/t}</div>
+				{/if}
+
+				{if $config[$key].SOLUTION != ""}
+	
+				<!-- Inforamtion popup -->
+				<div class='solution_visible' id='sol_config_{$key}'>
+					{if $config[$key].MUST}
+						<div class='step2_failed_text' style="background-image: url('images/small_error.png')">
+						{$config[$key].SOLUTION}
+						<b>{t}GOsa will NOT run without fixing this.{/t}</b>
+					{else}
+						<div class='step2_warning_text' style="background-image: url('images/small_warning.png')">
+						{$config[$key].SOLUTION}
+						<b>{t}GOsa will run without fixing this.{/t}</b>
+					{/if}
+					</div>
+				</div>
+				{/if}
+			{/if}
+			</div>
+			</div>
+		{/foreach}
+
+
+	</div>
+</div>
+
+<div style="clear:both"></div>
+
diff --git a/gosa-core/setup/setup_config1.tpl b/gosa-core/setup/setup_config1.tpl
new file mode 100644
index 0000000..d3f1b84
--- /dev/null
+++ b/gosa-core/setup/setup_config1.tpl
@@ -0,0 +1,225 @@
+<div class='default'>
+    <p><b>{t}Look and feel{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Theme{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="theme">
+                {html_options options=$themes selected=$theme}
+            </select>
+        </div>
+    </div>
+
+    <p><b>{t}Apache{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Compress output send to browser{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="compressed">
+                {html_options options=$bool selected=$compressed}
+            </select>
+        </div>
+    </div>
+    <p><b>{t}People and group storage{/t}</b></p>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}People DN attribute{/t}
+        </div>
+        <div class='step4_value'>
+            <select size="1" name="peopledn">
+                {html_options values=$peopledns output=$peopledns selected=$peopledn}
+            </select>
+        </div>
+    </div>
+
+	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}People storage subtree{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='peopleou' maxlength='40' size='40' value='{$peopleou}'>
+        </div>
+    </div>
+
+	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Group storage subtree{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='groupou' maxlength='40' size='40' value='{$groupou}'>
+        </div>
+    </div>
+
+ 	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Include personal title in user DN{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="include_personal_title" size="1" title="">
+            {html_options options=$bool selected=$include_personal_title}
+            </select>
+        </div>
+    </div>
+
+ 	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Relaxed naming policies{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="strict" size="1" title="">
+            {html_options options=$bool selected=$strict}
+            </select>
+        </div>
+    </div>
+
+  	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Automatic UIDs{/t}
+        </div>
+        <div class='step4_value'>
+            {if $id_settings.idgen_active == FALSE}
+                <input type='checkbox' value='1' name='idgen_active'
+                    onClick='changeState("idgen");'>
+                <input size='20' id='idgen' name='idgen' type='text' value='{$id_settings.idgen}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='idgen_active' checked>
+                <input size='20' id='idgen' name='idgen' type='text' value='{$id_settings.idgen}'  >
+            {/if}
+        </div>
+    </div>
+
+ 	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}GID / UID min id{/t}
+        </div>
+        <div class='step4_value'>
+            {if $id_settings.minid_active == FALSE}
+                <input type='checkbox' value='1' name='minid_active'
+                    onClick='changeState("minid");'>
+                <input size='10' id='minid' name='minid' type='text' value='{$id_settings.minid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='minid_active' checked>
+                <input size='10' id='minid' name='minid' type='text' value='{$id_settings.minid}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container' style="margin-bottom:5px;">
+        <div class='step4_name'>
+            {t}Number base for people/groups{/t}
+        </div>
+        <div class='step4_value'>
+            <input type='text' name='uidbase' maxlength='20' size='10' value='{$uidbase}'>
+        </div>
+     </div>
+    <div class='step4_container' style="margin-bottom:5px;">
+        <div class='step4_name'>
+                {t}Hook for number base{/t}
+	</div>
+        <div class='step4_value'>
+            {if $base_hook_active == FALSE}
+                <input type='checkbox' value='1' name='base_hook_active'
+                    onClick='changeState("base_hook");'>
+                <input id='base_hook' name='base_hook' size=40 type='text' value='{$base_hook}'      disabled>
+            {else}
+                <input type='checkbox' value='1' name='base_hook_active' checked>
+                <input id='base_hook' name='base_hook' size=40 type='text' value='{$base_hook}'  >
+            {/if}
+     </div>
+        </div>
+    </div>
+
+    <p><b>{t}Password settings{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Password encryption algorithm{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="encryption" size="1" title="">
+                {html_options options=$crypt_methods selected=$encryption}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container' style='height:4em;'>
+        <div class='step4_name' style='height:4em;'>
+            {t}Password restrictions{/t}
+        </div>
+        <div class='step4_value' style='height:4em;'>
+
+			{if $pwd_rules.pwminlen_active == FALSE}
+				<input type='checkbox' value='1' name='pwminlen_active'
+					onClick='changeState("pwminlen");'>
+					{t}Password minimum length{/t}
+				<input id='pwminlen' name='pwminlen' type='text' value='{$pwd_rules.pwminlen}' size=3 disabled>
+			{else}
+				<input type='checkbox' value='1' name='pwminlen_active' checked>
+				{t}Password minimum length{/t}
+				<input id='pwminlen' name='pwminlen' type='text' value='{$pwd_rules.pwminlen}' size=3 >
+			{/if}
+			<br>
+			{if $pwd_rules.pwdiffer_active == FALSE}
+				<input type='checkbox' value='1' name='pwdiffer_active' 
+					onClick='changeState("pwdiffer");'>
+				{t}Different characters from old password{/t}
+				<input id='pwdiffer' name='pwdiffer' type='text' value='{$pwd_rules.pwdiffer}' size=3 disabled>
+			{else}
+				<input type='checkbox' value='1' name='pwdiffer_active' checked>
+				{t}Different characters from old password{/t}
+				<input id='pwdiffer' name='pwdiffer' type='text' value='{$pwd_rules.pwdiffer}' size=3 >
+			{/if}
+	
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+                {t}Password change hook{/t}
+        </div>
+        <div class='step4_value'>
+            {if $pwd_rules.externalpwdhook_active == FALSE}
+                <input type='checkbox' value='1' name='externalpwdhook_active'
+                    onClick='changeState("externalpwdhook");'>
+                <input size=40 id='externalpwdhook' name='externalpwdhook' type='text' value='{$pwd_rules.externalpwdhook}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='externalpwdhook_active' checked>
+                <input size=40 id='externalpwdhook' name='externalpwdhook' type='text' value='{$pwd_rules.externalpwdhook}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use SASL for kerberos{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="krbsasl" size="1" title="">
+            {html_options options=$bool selected=$krbsasl}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use account expiration{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="account_expiration" size="1" title="">
+            {html_options options=$bool selected=$account_expiration}
+            </select>
+        </div>
+    </div>
+
+
+<input type='hidden' value='1' name='step5_posted'>
+<!--
+         {t}GOsa supports several encryption types for your passwords. Normally this is adjustable via user templates, but you can specify a default method to be used here, too.{/t}
+         {t}GOsa always acts as admin and manages access rights internally. This is a workaround till OpenLDAP's in directory ACI's are    fully implemented. For this to work, we need the admin DN and the corresponding password.{/t}
+         {t}Some basic LDAP parameters are tunable and affect the locations where GOsa saves people and groups, including the way accounts get created. Check the values below if the fit your needs.{/t}
+         {t}GOsa has modular support for several mail methods. These methods provide interfaces to users mailboxes and general handling    for quotas. You can choose the dummy plugin to leave all your mail settings untouched.{/t}-->
+
diff --git a/gosa-core/setup/setup_config2.tpl b/gosa-core/setup/setup_config2.tpl
new file mode 100644
index 0000000..1cf915a
--- /dev/null
+++ b/gosa-core/setup/setup_config2.tpl
@@ -0,0 +1,294 @@
+<div class='default' style='margin:12px; '>  
+    <p><b>{t}Samba settings{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Samba hash generator{/t}
+        </div>
+        <div class='step4_value'>
+                <input size=40 id='smbhash' name='smbhash' type='text' value='{$samba_settings.smbhash}'  >
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Samba SID{/t}
+        </div>
+        <div class='step4_value'>
+            {if $samba_settings.samba_sid_active == FALSE}
+                <input type='checkbox' value='1' name='samba_sid_active'
+                    onClick='changeState("samba_sid");'>
+                <input size=20 id='samba_sid' name='samba_sid' type='text' value='{$samba_settings.samba_sid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='samba_sid_active' checked {if !$sambaDomain_found} disabled {/if}>
+                <input size=20 id='samba_sid' name='samba_sid' type='text' value='{$samba_settings.samba_sid}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}RID base{/t}
+        </div>
+        <div class='step4_value'>
+            {if $samba_settings.samba_rid_active == FALSE}
+                <input type='checkbox' value='1' name='samba_rid_active'
+                    onClick='changeState("samba_rid");'>
+                <input size=20 id='samba_rid' name='samba_rid' type='text' value='{$samba_settings.samba_rid}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='samba_rid_active' checked {if !$sambaDomain_found} disabled {/if}>
+                <input size=20 id='samba_rid' name='samba_rid' type='text' value='{$samba_settings.samba_rid}'  >
+            {/if}
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Workstation container{/t}
+        </div>
+        <div class='step4_value'>
+            {if $generic_settings.wws_ou_active == FALSE}
+                <input type='checkbox' value='1' name='wws_ou_active'
+                    onClick='changeState("wws_ou");'>
+                <input size=40 id='wws_ou' name='wws_ou' type='text' value='{$generic_settings.wws_ou}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='wws_ou_active' checked>
+                <input size=40 id='wws_ou' name='wws_ou' type='text' value='{$generic_settings.wws_ou}'  >
+            {/if}
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Samba SID mapping{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="sambaidmapping" size="1" title="">
+			{html_options options=$bool selected=$sambaidmapping}
+            </select>
+        </div>
+    </div>
+	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Timezone{/t}
+        </div>
+        <div class='step4_value'>
+            <select name='timezone' title='{t}Please choose your preferred timezone here{/t}' style="width:100%">
+ 		{foreach from=$timezones.TIMEZONES item=val key=key}
+            {if $key == $timezone}
+                {if isset($timezones.DST_ZONES.$key)}
+                    <option selected value="{$key}">{$key} (DST)</option>
+                {else}
+                    <option selected value="{$key}">{$key} (GMT)</option>
+                {/if}
+            {else}
+                {if isset($timezones.DST_ZONES.$key)}
+                    <option value="{$key}">{$key} (DST)</option>
+                {else}
+                    <option value="{$key}">{$key} (GMT)</option>
+                {/if}
+            {/if}
+        {/foreach}
+
+            </select>
+        </div>
+    </div>
+
+
+    <p><b>{t}Additional GOsa settings{/t}</b></p>
+
+	<div class='step4_container'>
+        <div class='step4_name'>
+            {t}Enable Copy & Paste{/t}
+        </div>
+        <div class='step4_value'>
+
+            <select name="enableCopyPaste" size="1" title="">
+                {html_options options=$bool selected=$generic_settings.enableCopyPaste}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Government mode{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="governmentmode" size="1" title="">
+			{html_options options=$bool selected=$governmentmode}
+			</select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}GOsa logging{/t}
+        </div>
+        <div class='step4_value'>
+          {if $logging} 
+            <input checked type='checkbox' name='logging' value='1' class='center'>
+          {else}
+            <input type='checkbox' name='logging' value='1' class='center'>
+          {/if}
+        </div>
+    </div>
+
+
+    <p><b>{t}Mail settings{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Mail method{/t}
+        </div>
+  		<div class='step4_value'>
+            <select name="mail" size="1" title="" onChange="document.mainform.submit();">
+                <option  value="disabled">{t}disabled{/t}</option>
+                {foreach from=$mail_methods item=item}
+                    <option value="{$item.name}" {if $mail == $item.name} selected {/if}>{$item.name}</option>
+                {/foreach}
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Account identification attribute{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="mail_attrib" size="1" {if $mail == "disabled"} disabled {/if}>
+                <option value="mail" {if $mail_attrib == "mail"} selected {/if} >mail</option>
+                <option value="uid" {if $mail_attrib == "uid"} selected {/if} >uid</option>
+            </select>
+        </div>
+        <div class='step4_status'>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Vacation templates{/t}
+        </div>
+        <div class='step4_value'>
+            {if $mail_settings.vacationdir_active == FALSE}
+                <input type='checkbox' value='1' name='vacationdir_active'
+                    onClick='changeState("vacationdir");'>
+                <input size=40 id='vacationdir' name='vacationdir' type='text' value='{$mail_settings.vacationdir}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='vacationdir_active' checked>
+                <input size=40 id='vacationdir' name='vacationdir' type='text' value='{$mail_settings.vacationdir}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Use Cyrus UNIX style{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="cyrusunixstyle" size="1" title="">
+            {html_options options=$bool selected=$cyrusunixstyle}
+            </select>
+        </div>
+    </div>
+
+
+        <p><b>{t}Snapshots / Undo{/t}</b></p>
+            {if $generic_settings.snapshot_active == FALSE}
+        <div class='step4_container'>
+         <div class='step4_name'>
+                <input type='checkbox' value='1' name='snapshot_active'
+                    onClick='
+                                                                changeState("snapshot_base");
+                                                                changeState("snapshot_server");
+                                                                changeState("snapshot_user");
+                                                                changeState("snapshot_password");'>{t}Enable snapshots{/t}
+         </div>
+        </div>
+        <div style='margin-left:10px;'>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                {t}Snapshot base{/t}
+         </div>
+         <div class='step4_value'>
+                <input style='width:220' id='snapshot_base' name='snapshot_base'
+                                        type='text' value='{$generic_settings.snapshot_base}' disabled>
+         </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                    {t}Server{/t}
+         </div>
+         <div class='step4_value'>
+                                <input style='width:220' id='snapshot_server' name='snapshot_server'
+                                        type='text' value='{$generic_settings.snapshot_server}' disabled>
+        </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                        {t}User{/t}
+         </div>
+         <div class='step4_value'>
+                                <input style='width:220' id='snapshot_user' name='snapshot_user'
+                                        type='text' value='{$generic_settings.snapshot_user}' disabled>
+        </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                        {t}Password{/t}
+         </div>
+         <div class='step4_value'>
+                                <input style='width:220' id='snapshot_password' name='snapshot_password'
+                                        type='password' value='{$generic_settings.snapshot_password}' disabled>
+        </div>
+        </div>
+        </div>
+
+            {else}
+        <div class='step4_container'>
+         <div class='step4_name'>
+                <input type='checkbox' value='1' name='snapshot_active' checked>{t}Enable snapshots{/t}
+        </div>
+        </div>
+        <div style='margin-left:10px;'>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                    {t}Snapshot base{/t}
+        </div>
+         <div class='step4_value'>
+           <input style='width:220' id='snapshot_base' name='snapshot_base'
+                                        type='text' value='{$generic_settings.snapshot_base}'>
+        </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                        {t}Server{/t}
+        </div>
+         <div class='step4_value'>
+                                <input style='width:220' id='snapshot_server' name='snapshot_server'
+                                        type='text' value='{$generic_settings.snapshot_server}'>
+        </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                    {t}User{/t}
+        </div>
+         <div class='step4_value'>
+                                <input style='width:220' id='snapshot_user' name='snapshot_user'
+                                        type='text' value='{$generic_settings.snapshot_user}'>
+        </div>
+        </div>
+        <div class='step4_container'>
+         <div class='step4_name'>
+                        {t}Password{/t}
+        </div>
+         <div class='step4_value'>
+                                <input style='width:220;' id='snapshot_password' name='snapshot_password'
+                                        type='password' value='{$generic_settings.snapshot_password}'>
+        </div>
+        </div>
+        </div>
+            {/if}
+</div>
+
+<input type='hidden' value='1' name='step6_posted'>
+<div style="clear:both"></div>
diff --git a/gosa-core/setup/setup_config3.tpl b/gosa-core/setup/setup_config3.tpl
new file mode 100644
index 0000000..1dfa10d
--- /dev/null
+++ b/gosa-core/setup/setup_config3.tpl
@@ -0,0 +1,340 @@
+<div class='default' style='margin:12px; '>
+     <p><b>{t}GOsa core settings{/t}</b></p>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Enable primary group filter{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="noprimarygroup" size="1" title="">
+            	{html_options options=$bool selected=$optional.noprimarygroup}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Display summary in listings{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="list_summary" size="1" title="">
+            	{html_options options=$bool selected=$optional.list_summary}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Honour administrative units{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="strict_units" size="1" title="">
+            	{html_options options=$bool selected=$optional.strict_units}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Smarty compile directory{/t}
+        </div>
+        <div class='step4_value'>
+			<input size=40 id='compile' name='compile' 
+				type='text' value='{$optional.compile}'>
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}SNMP community{/t}
+        </div>
+        <div class='step4_value'>
+			<input size=40 id='compile' name='snmpcommunity' 
+				type='text' value='{$optional.snmpcommunity}'>
+        </div>
+    </div>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Path for PPD storage{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.ppd_path_active == FALSE}
+                <input type='checkbox' value='1' name='ppd_path_active'
+                    onClick='changeState("ppd_path");'>
+                <input size=40 id='ppd_path' name='ppd_path' type='text' value='{$optional.ppd_path}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='ppd_path_active' checked
+					onClick='changeState("ppd_path");'>
+                <input size=40 id='ppd_path' name='ppd_path' type='text' value='{$optional.ppd_path}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Path for kiosk profile storage{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.kioskpath_active == FALSE}
+                <input type='checkbox' value='1' name='kioskpath_active'
+                    onClick='changeState("kioskpath");'>
+                <input size=40 id='kioskpath' name='kioskpath' 
+					type='text' value='{$optional.kioskpath}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='kioskpath_active' checked
+					onClick='changeState("kioskpath");'>
+                <input size=40 id='kioskpath' name='kioskpath' 
+					type='text' value='{$optional.kioskpath}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}SUDO role base{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.sudoou_active == FALSE}
+                <input type='checkbox' value='1' name='sudoou_active'
+                    onClick='changeState("sudoou");'>
+                <input size=40 id='sudoou' name='sudoou' 
+					type='text' value='{$optional.sudoou}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='sudoou_active' checked
+					onClick='changeState("sudoou");'>
+                <input size=40 id='sudoou' name='sudoou' 
+					type='text' value='{$optional.sudoou}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Mail queue script{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.mailQueueScriptPath_active == FALSE}
+                <input type='checkbox' value='1' name='mailQueueScriptPath_active'
+                    onClick='changeState("mailQueueScriptPath");'>
+                <input size=40 id='mailQueueScriptPath' name='mailQueueScriptPath' 
+					type='text' value='{$optional.mailQueueScriptPath}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='mailQueueScriptPath_active' checked 
+					onClick='changeState("mailQueueScriptPath");'>
+                <input size=40 id='mailQueueScriptPath' name='mailQueueScriptPath' type='text' 
+					value='{$optional.mailQueueScriptPath}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Notification script{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.notifydir_active == FALSE}
+                <input type='checkbox' value='1' name='notifydir_active'
+                    onClick='changeState("notifydir");'>
+                <input size=40 id='notifydir' name='notifydir' 
+					type='text' value='{$optional.notifydir}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='notifydir_active' checked 
+					onClick='changeState("notifydir");'>
+                <input size=40 id='notifydir' name='notifydir' 
+					type='text' value='{$optional.notifydir}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Enable edit locking{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.uniq_identifier_active == FALSE}
+                <input type='checkbox' value='1' name='uniq_identifier_active'
+                    onClick='changeState("uniq_identifier");'>
+				<select name="uniq_identifier" id="uniq_identifier" disabled>
+					{html_options options=$uniq_identifiers selected=$optional.uniq_identifier}
+				</select>
+            {else}
+                <input type='checkbox' value='1' name='uniq_identifier_active' checked
+					onClick='changeState("uniq_identifier");'>
+				<select name="uniq_identifier" id="uniq_identifier" >
+					{html_options options=$uniq_identifiers selected=$optional.uniq_identifier}
+				</select>
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Gosa support daemon{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.gosaSupportURI_active == FALSE}
+                <input type='checkbox' value='1' name='gosaSupportURI_active'
+                  onClick='changeState("gosaSupportURI");changeState("gosaSupportTimeout");'>
+                <input size=40 id='gosaSupportURI' name='gosaSupportURI' 
+				        	type='text' value='{$optional.gosaSupportURI}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='gosaSupportURI_active' checked 
+					        onClick='changeState("gosaSupportURI");changeState("gosaSupportTimeout");'>
+                <input size=40 id='gosaSupportURI' name='gosaSupportURI' 
+        					type='text' value='{$optional.gosaSupportURI}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Daemon timeout{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.gosaSupportURI_active == FALSE}
+                <input size=40 id='gosaSupportTimeout' name='gosaSupportTimeout' 
+				        	type='text' value='{$optional.gosaSupportTimeout}' disabled>
+            {else}
+                <input size=40 id='gosaSupportTimeout' name='gosaSupportTimeout' 
+        					type='text' value='{$optional.gosaSupportTimeout}'  >
+            {/if}
+        </div>
+    </div>
+
+
+    <p><b>{t}Login and session{/t}</b></p>
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Login attribute{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="login_attribute" size="1" title="">
+            	{html_options options=$login_attributes selected=$optional.login_attribute}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Enforce register_globals to be deactivated{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="forceglobals" size="1" title="">
+            	{html_options options=$bool selected=$optional.forceglobals}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Enforce encrypted connections{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="forcessl" size="1" title="">
+            	{html_options options=$bool selected=$optional.forcessl}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Warn if session is not encrypted{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="warnssl" size="1" title="">
+            	{html_options options=$bool selected=$optional.warnssl}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Remember dialog filter settings{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="user_filter_cookie" size="1" title="">
+            	{html_options options=$bool selected=$optional.user_filter_cookie}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Session lifetime{/t}
+        </div>
+        <div class='step4_value'>
+			<input size=10 id='session_lifetime' name='session_lifetime' 
+				type='text' value='{$optional.session_lifetime}'>
+        </div>
+    </div>
+
+
+    <p><b>{t}Debugging{/t}</b></p>
+	
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Show PHP errors{/t}
+        </div>
+        <div class='step4_value'>
+            <select name="errorlvl" size="1" title="">
+            {html_options options=$bool selected=$errorlvl}
+            </select>
+        </div>
+    </div>
+
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Maximum LDAP query time{/t}
+        </div>
+        <div class='step4_value'>
+            {if $optional.max_ldap_query_time_active == FALSE}
+                <input type='checkbox' value='1' name='max_ldap_query_time_active'
+                    onClick='changeState("max_ldap_query_time");'>
+                <input size=10 id='max_ldap_query_time' name='max_ldap_query_time' 
+					type='text' value='{$optional.max_ldap_query_time}' disabled>
+            {else}
+                <input type='checkbox' value='1' name='max_ldap_query_time_active' checked>
+                <input size=10 id='max_ldap_query_time' name='max_ldap_query_time' 
+					type='text' value='{$optional.max_ldap_query_time}'  >
+            {/if}
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Log LDAP statistics{/t}
+        </div>
+        <div class='step4_value'>
+	
+            <select name="ldapstats" size="1" title="">
+            	{html_options options=$bool selected=$optional.ldapstats}
+            </select>
+        </div>
+    </div>
+
+    <div class='step4_container'>
+        <div class='step4_name'>
+            {t}Debug level{/t}
+        </div>
+        <div class='step4_value'>
+			<select name='debuglevel'>
+				{if $optional.debuglevel == 0}
+					<option value='0' selected>0 {t}Disabled{/t}</option>
+					<option value='1'>1 {t}Enabled{/t}</option>
+				{else}
+					<option value='0'>0 {t}Disabled{/t}</option>
+					<option value='1' selected>1 {t}Enabled{/t}</option>
+				{/if}
+			</select>		
+        </div>
+    </div>
+</div>
+
+<input type='hidden' value='1' name='step6a_posted'>
diff --git a/gosa-core/setup/setup_feedback.tpl b/gosa-core/setup/setup_feedback.tpl
new file mode 100644
index 0000000..eb326ba
--- /dev/null
+++ b/gosa-core/setup/setup_feedback.tpl
@@ -0,0 +1,154 @@
+
+{if $feedback_send}
+
+	<div class='default' style='margin:12px; '>  
+		<font color='green'>{t}Feedback sucessfully send{/t}</font>
+	</div>	
+
+{else}
+	
+<div class='default' style='margin:12px; '>  
+
+	<h2>{$additional_info}</h2>
+
+	<h2>
+		<input {if $subscribe} checked {/if} type='checkbox' name='subscribe' value='1' class='center'> {t}Subscribe to the gosa-announce mailinglist{/t}
+	</h2>
+	<p>
+	{t}When checking this option, GOsa will try to connect http://oss.gonicus.de in order to subscribe you to the gosa-announce mailing list. You've to confirm this by mail.{/t}
+	</p>
+	<table>	
+		<tr>
+			<td>
+				{t}Organization{/t}
+			</td>
+			<td>
+				<input name='organization' type='text' value='{$organization}' style='width:300px;'>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				{t}Name{/t}
+			</td>
+			<td>
+				<input name='name' type='text' value='{$name}' style='width:300px;'>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				{t}Mail address{/t}{$must}
+			</td>
+			<td>
+				<input name='eMail' type='text' value='{$eMail}' style='width:300px;'>	
+			</td>
+		</tr>
+	</table>
+
+
+	<p> </p>
+	<h2>
+  		<input {if $use_gosa_announce} checked {/if} type='checkbox' name='use_gosa_announce' value='1' class='center'> {t}Send feedback to the GOsa project team{/t}
+	</h2>
+	<p>
+	{t}When checking this option, GOsa will try to connect http://oss.gonicus.de in order to submit your form anonymously.{/t}
+	</p>
+	<b>{t}Generic{/t}</b>
+	<table>	
+		<tr>
+			<td style='vertical-align:top'>
+				{t}Did the setup procedure help you to get started?{/t}   
+			</td>
+			<td>
+				<input {if $get_started} checked {/if} type='radio' name='get_started' value='1'>{t}Yes{/t}
+				<br>
+				<input {if !$get_started} checked {/if} type='radio' name='get_started' value='0'>{t}No{/t}
+			</td>
+		</tr>
+		<tr>
+			<td style='vertical-align:top'>
+				{t}If not, what problems did you encounter{/t}:
+			</td>
+			<td>
+				<textarea name='problems_encountered' rows='4' cols='50' style='width:100%'>{$problems_encountered}</textarea>
+			</td>
+		</tr>
+		<tr>
+			<td style='vertical-align:top'>
+				{t}Is this the first time you use GOsa?{/t}
+			</td>
+			<td>
+				<input {if $first_use} checked {/if} type='radio' name='first_use' value='1'>{t}Yes{/t}
+				<br>
+				<input {if !$first_use} checked {/if} type='radio' name='first_use' value='0'>{t}No{/t},
+				{t}I use it since{/t}
+				<select name='use_since' title='{t}Select the year since when you are using GOsa{/t}'> 
+					{html_options options=$years}
+				</select>
+			</td>	
+		</tr>
+		<tr>
+			<td style='vertical-align:top'>
+				{t}What operating system / distribution do you use?{/t}
+			</td>
+			<td>
+				<input type='text' name='distribution' size=50 value='{$distribution}'>
+			</td>
+		</tr>
+		<tr>
+			<td style='vertical-align:top'>
+				{t}What web server do you use?{/t}
+			</td>
+			<td>
+				<input type='text' size=50 name='web_server' value='{$web_server}'>
+			</td>
+		</tr>
+		<tr>
+			<td style='vertical-align:top'>
+				{t}What PHP version do you use?{/t}
+			</td>
+			<td>
+				<input type='text' size=50 name='php_version' value='{$php_version}'>
+			</td>
+		</tr>
+	</table>
+
+	<br><b>{t}LDAP{/t}</b>
+	<table>
+		<tr>
+			<td style='vertical-align:top'>
+			{t}What kind of LDAP server(s) do you use?{/t}
+			</td>
+			<td><input type='text' name='ldap_server' size=50 value='{$ldap_server}'>
+			</td>
+		</tr>
+		<tr>
+			<td>{t}How many objects are in your LDAP?{/t}
+			</td>
+			<td><input type='text' name='object_count' size=50 value='{$object_count}'>
+			</td>
+		</tr>
+	</table>
+
+	<br><b>{t}Features{/t}</b>
+	<table>
+		<tr>
+			<td style='vertical-align:top'>{t}What features of GOsa do you use?{/t}
+			</td>
+			<td>
+				{foreach from=$features_used item=data key=key}
+					<input type='checkbox' name='feature_{$key}' {if $data.USED} checked {/if}>
+					{$data.NAME}<br>
+				{/foreach}
+			</td>
+		</tr>
+		<tr>
+			<td style="vertical-align:top">{t}What features do you want to see in future versions of GOsa?{/t}
+			</td>
+			<td><textarea name='want_to_see_next' cols=50 rows=3>{$want_to_see_next}</textarea>
+			</td>
+		</tr>
+	</table>
+</div>
+<input type='submit' name='send_feedback' value='{t}Send feedback{/t}'>
+{/if}
+<input type='hidden' name='step_feedback' value='1'>
diff --git a/gosa-core/setup/setup_finish.tpl b/gosa-core/setup/setup_finish.tpl
new file mode 100644
index 0000000..4f29b9c
--- /dev/null
+++ b/gosa-core/setup/setup_finish.tpl
@@ -0,0 +1,38 @@
+<div class='default'>
+	<p>
+		<b>{t}Create your configuration file{/t}</b>
+	</p>
+	<p>	
+		{$msg2}
+	</p>
+
+      {if $webgroup == ""}
+{t}Depending on the user name your webserver is running on:{/t}
+<tt>
+<pre> chown root:www-data {$CONFIG_DIR}/{$CONFIG_FILE}
+ chmod 640 {$CONFIG_DIR}/{$CONFIG_FILE}
+
+or
+
+ chown root:apache {$CONFIG_DIR}/{$CONFIG_FILE}
+ chmod 640 {$CONFIG_DIR}/{$CONFIG_FILE}
+</pre>
+{else}
+<pre>
+ chown root:{$webgroup} {$CONFIG_DIR}/{$CONFIG_FILE}
+ chmod 640 {$CONFIG_DIR}/{$CONFIG_FILE}
+</pre>
+{/if} 
+	</tt>
+	<p>	
+		<input type='submit' name='getconf' value='{t}Download configuration{/t}'>
+	</p>
+		{if $err_msg != ""}
+			<p class="seperator"> </p>
+			<br>
+			{t}Status: {/t}
+			<a style='color:red ; font-weight:bold '>{$err_msg}</a>
+		{/if}
+
+</div>
+<input type='hidden' value='1' name='step8_posted'>
diff --git a/gosa-core/setup/setup_frame.tpl b/gosa-core/setup/setup_frame.tpl
new file mode 100644
index 0000000..f6554f5
--- /dev/null
+++ b/gosa-core/setup/setup_frame.tpl
@@ -0,0 +1,47 @@
+<body class='setup_body'>
+{$php_errors}
+<form action='setup.php' name='mainform' method='post' enctype='multipart/form-data'>
+	{$msg_dialogs}
+<input id='focus' name='focus' type='image' src='images/empty.png' style='width:0px; height:0px;' >
+<div class='setup_dialog'>
+	<div class='setup_header'>
+		<div style="float:left;"><img src='themes/default/images/go_logo.png' class='center' alt='GOsa'></div>
+		<div style="padding-top:8px;text-align:right;height:28px">{$version}</div>
+	</div>
+	<div class='setup_menu'>
+		<b>{t}GOsa setup wizard{/t}</b>
+	</div>
+
+	<div style="padding:10px;background-color:white;">
+
+		<div class='setup_navigation'>
+			<div style='padding:4px'>
+				<img src='images/setup/fai.png' class='center' alt='{t}Installation{/t}'>  <font style="font-size:24px;">{t}Setup{/t}</font>
+			</div>
+			{$navigation}		
+		</div>
+	
+		<div class='setup_contents'>
+			<div style='border-bottom:1px dashed #AAAAAA'>
+				{$errors}
+				{$header}
+			</div>
+			<div style='padding-left:12px;'>
+				{$contents}
+				{$bottom}
+				<br>
+			</div>
+		</div>
+		<div style="clear:both">	</div>
+	</div>
+</div>
+
+
+<input type='hidden' name='setup_goto_step' value=''>
+</form>
+
+<script type='javascript'>
+	document.getElementById('focus').focus();
+</script>
+</body>
+</html>
diff --git a/gosa-core/setup/setup_language.tpl b/gosa-core/setup/setup_language.tpl
new file mode 100644
index 0000000..236ce16
--- /dev/null
+++ b/gosa-core/setup/setup_language.tpl
@@ -0,0 +1,13 @@
+<div>
+	<div class='default'>
+		<p><b>{t}Please select the preferred language{/t}</b></p>
+		<p>
+		{t}At this point, you can select the site wide default language. Choosing 'automatic' will use the language requested by the browser. This setting can be overriden per user.{/t}
+		</p>
+	</div>
+	<div class='default' style='padding-right:10px; margin-bottom:20px;'>
+		<select name='lang_selected' title='{t}Please select your preferred language here{/t}' size=20 style="width:100%">
+		{html_options options=$languages selected=$lang_selected}
+		</select>
+	</div>
+</div>
diff --git a/gosa-core/setup/setup_ldap.tpl b/gosa-core/setup/setup_ldap.tpl
new file mode 100644
index 0000000..8e082d6
--- /dev/null
+++ b/gosa-core/setup/setup_ldap.tpl
@@ -0,0 +1,136 @@
+<div class='default' style="width:100%; margin-right:20px;">
+
+	{if $resolve_user}
+
+	<div style='float:left; width:99%; margin-bottom:20px;'>
+		<p>
+		<b>{t}Please choose the LDAP user to be used by GOsa{/t}</b>
+		</p>
+		<select name='admin_to_use' size=20 style="width:100%; margin-bottom:10px;">				
+			{html_options options=$resolved_users selected=$admin}
+		</select>
+		<input type='text' value='{$resolve_filter}' name='resolve_filter'>
+		<input type='submit' value='{t}Search{/t}' name='resolve_search'>
+		<p class='seperator' style='margin-bottom:10px;'> </p>
+		<div style='text-align:right'>
+		<input type='submit' value='{t}Apply{/t}' name='use_selected_user'>
+		<input type='submit' value='{t}Cancel{/t}' name='resolve_user'>
+		</div>
+	</div>		
+	
+	<div style="clear:both;"></div>
+
+	{else}
+	<p>
+	<b>{t}LDAP connection{/t}</b>
+	</p>
+	<div class='step4_container'>
+		<div class='step4_name'>
+			{t}Location name{/t}
+		</div>
+		<div class='step4_value'>
+			<input type='text' name='location' maxlength='80' size='40' value='{$location}'>
+		</div>
+	</div>
+	<div class='step4_container'>
+		<div class='step4_name'>
+			<div style='vertical-align:middle;height:100%;'>{t}Connection URI{/t}</div>
+		</div>
+		<div class='step4_value'>
+			<input type='text' name='connection' maxlength='80' size='40' value='{$connection}'>
+		</div>
+	</div>
+        <div class='step4_container'>
+          <div class='step4_name'>
+            {t}TLS connection{/t}
+          </div>
+          <div class='step4_value'>
+            <select name="tls" size="1" title="">
+			{html_options options=$bool selected=$tls}
+            </select>
+          </div>
+        </div>
+	<div class='step4_container'>
+		<div class='step4_name'> 
+			{t}Base{/t}
+		</div>
+		<div class='step4_value'>
+			{if $namingContextsCount >= 1}
+				<select name='base'>		
+					{html_options values=$namingContexts output=$namingContexts selected=$base}
+				</select>
+			{else}
+				<input type='text' name='base' maxlength='80' size='40' value='{$base}'>
+			{/if}
+			<input type='image' class='center' src='images/lists/reload.png' title='{t}Reload{/t}' name='reload' alt='{t}Reload{/t}'>
+		</div>
+	</div>
+	<p style="margin-top:20px">
+	<b>{t}Authentication{/t}</b>
+	</p>
+	<div class='step4_container'>
+		<div class='step4_name'> 
+			{t}Admin DN{/t}
+		</div>
+		<div class='step4_value'>
+			<input type='text' name='admin_given' maxlength='160' size='40' value='{$admin_given}'>
+			{if $append_base_to_admin_dn},{$base_to_append}{/if}
+			<input type='image' class='center' src='images/lists/folder.png' title='{t}Select user{/t}' name='resolve_user' alt='{t}Select user{/t}'>
+		</div>
+	</div>
+
+	<div class='step4_container'>
+		<div class='step4_name'> 
+		</div>
+		<div class='step4_value'>
+			<input onClick='document.mainform.submit();' {if $append_base_to_admin_dn} checked {/if} type='checkbox' name='append_base_to_admin_dn' value='1'> {t}Automatically append LDAP base to admin DN{/t}
+		</div>
+	</div>
+
+
+	<div class='step4_container'>
+		<div class='step4_name'>
+			{t}Admin password{/t}
+		</div>
+		<div class='step4_value'>
+			<input type='password' name='password' maxlength='20' size='20' value='{$password}'>
+		</div>
+	</div>
+
+	<p style="margin-top:20px">
+	<b>{t}Schema based settings{/t}</b>
+	</p>
+	    <div class='step4_container'>
+		<div class='step4_name'>
+		    {t}Use rfc2307bis compliant groups{/t}
+		</div>
+		<div class='step4_value'>
+		    <select name="rfc2307bis" size="1" title="">
+		    {html_options options=$bool selected=$rfc2307bis}
+		    </select>
+		</div>
+	    </div>
+	{/if}
+
+	{if ! $resolve_user}
+	<p style="margin-top:20px">
+	<b>{t}Current status{/t}</b>
+	</p>
+    <div class='step4_container' style='height:45px;'>
+        <div class='step4_name' style='height:45px;'>
+            {t}Information{/t}
+        </div>
+        <div class='step4_value' style='height:45px;'>
+			{$connection_status}
+        </div>
+    </div>
+	{/if}
+
+</div>
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('location');
+  -->
+</script>
+
diff --git a/gosa-core/setup/setup_license.tpl b/gosa-core/setup/setup_license.tpl
new file mode 100644
index 0000000..5322579
--- /dev/null
+++ b/gosa-core/setup/setup_license.tpl
@@ -0,0 +1,11 @@
+<div>
+	<div class='default' style='margin:10px; border:1px solid #A0A0A0'>
+		<div style='height:450px;padding:5px;overflow:auto; '>
+			{$License}
+		</div>
+	</div>	
+	<div style='width:95%; text-align: right'>
+		<input {if $accepted} checked {/if} id="accepted" type='checkbox' name='accepted' class="center"><label for="accepted">{t}I have read the license and accept it{/t}</label>
+	</div>
+</div>
+<input type='hidden' name='step_license' value='1'>
diff --git a/gosa-core/setup/setup_migrate.tpl b/gosa-core/setup/setup_migrate.tpl
new file mode 100644
index 0000000..4563879
--- /dev/null
+++ b/gosa-core/setup/setup_migrate.tpl
@@ -0,0 +1,571 @@
+<div>
+    <div class='default'>
+
+	{if $method == "default"}
+			<p>{t}During the LDAP inspection, we're going to check for several common pitfalls that may occur when migration to GOsa base LDAP administration. You may want to fix the problems below, in order to provide smooth services.{/t}
+			</p>
+
+			{foreach from=$checks item=val key=key}
+				<div style='width:98%; padding:4px; background-color:{cycle values="#F0F0F0, #FFF"}'>
+
+			{if $checks.$key.ERROR_MSG}
+                                <!-- Add ability to display info popup -->
+                                <div class='step2_entry_container_info'>
+                        {else}
+                                <!-- Normal entry everything is fine -->
+                                <div class='step2_entry_container'>
+                        {/if}
+				<div class='step2_entry_name'><b>{$checks.$key.TITLE}</b></div>
+				<div class='step2_entry_status'>
+				{if $checks.$key.STATUS}
+					<div class='step2_successful'>{$checks.$key.STATUS_MSG}</div>
+				{else}
+					<div class='step2_failed'>{$checks.$key.STATUS_MSG}</div>
+				{/if}
+				</div>
+					{if $checks.$key.ERROR_MSG}
+						{$checks.$key.ERROR_MSG}
+					{/if}
+				</div>
+				</div>
+			{/foreach}
+		<br>
+		<input type='submit' name='reload' value='{t}Check again{/t}'>
+
+		{elseif $method == "rootOC_migrate_dialog"}
+
+			<h2>{t}Add required object classes to the LDAP base{/t}</h2>
+
+			<b>{t}Current{/t}</b>
+			<div class="step2_entry_container_info">
+				<div style='padding-left:20px;'>
+					<pre>{$details.current}</pre>
+				</div>
+			</div>
+			<br>
+			<b>{t}After migration{/t}</b>
+			<div class="step2_entry_container_info">
+				<div style='padding-left:20px;'>
+					<pre>{$details.target}</pre>
+				</div>
+			</div>
+
+			<br>
+			<input type='submit' name='rootOC_migrate_start' value='{t}Migrate{/t}'>
+			</p>
+				
+
+			<p class='seperator'> </p>	
+			<div style='width:100%; text-align:right; padding:5px;'>
+				<input type='submit' name='rootOC_dialog_cancel' value='{t}Close{/t}'>
+			</div>
+
+		{elseif $method == "outside_winstations"}
+
+			<h2>{t}Move windows workstations into a valid windows workstation department{/t}</h2>
+
+			{t}This dialog allows you to move the displayed windows workstations into a valid department{/t}
+			<br>
+			{t}Be careful with this tool, there may be references pointing to this workstations that can't be migrated.{/t}
+			<br>
+			<br>	
+
+			{foreach from=$outside_winstations item=val key=key}
+				{if $outside_winstations.$key.selected}
+					<input id='select_winstation_{$key}' type='checkbox' name='select_winstation_{$key}' checked>
+				{else}
+					<input id='select_winstation_{$key}' type='checkbox' name='select_winstation_{$key}'>
+				{/if}
+
+				 {$outside_winstations.$key.dn}
+				{if $outside_winstations.$key.ldif != ""}
+                    <div class="step2_entry_container_info" id="sol_8">
+						<div style='padding-left:20px;'>
+							<pre>
+								{$outside_winstations.$key.ldif}
+							</pre>
+						</div>
+					</div>
+				{/if}
+				<br>
+			{/foreach}
+			<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^select_winstation_','toggle_calue')">
+			{t}Select all{/t}
+			<p>
+			<b>{t}Move selected windows workstations into the following GOsa department{/t} : </b>
+			<select name='move_winstation_to'>
+				{html_options options=$ous}
+			</select>
+			<br>
+			<input type='submit' name='outside_winstations_dialog_perform' value='{t}Move selected workstations{/t}'>
+			<input type='submit' name='outside_winstations_dialog_whats_done' value='{t}What will be done here{/t}'>
+			</p>
+				
+
+			<p class='seperator'> </p>	
+			<div style='width:100%; text-align:right; padding:5px;'>
+				<input type='submit' name='outside_winstations_dialog_cancel' value='{t}Close{/t}'>
+			</div>
+		
+
+		{elseif $method == "outside_groups"}
+
+			<h2>{t}Move groups into configured group tree{/t}</h2>
+
+                        <p>
+                        {t}This dialog allows moving a couple of groups to the configured group tree. Doing this may straighten your LDAP service.{/t}
+                        </p>
+                        <p style='color:red'>
+                        {t}Be careful with this option! There may be references pointing to these groups. The GOsa setup can't migrate references, so you may want to cancel the migration in this case.{/t}
+                        </p>
+			<p>
+			{t}Move selected groups into this group tree{/t}: 
+			<select name='move_group_to'>
+				{html_options options=$ous}
+			</select>
+			</p>
+
+			{foreach from=$outside_groups item=val key=key}
+				{if $outside_groups.$key.selected}
+					<input id='select_group_{$key}' type='checkbox' name='select_group_{$key}' checked>
+				{else}
+					<input id='select_group_{$key}' type='checkbox' name='select_group_{$key}'>
+				{/if}
+
+				 {$outside_groups.$key.dn}
+				{if $outside_groups.$key.ldif != "" && $group_details}
+                      <div class="step2_entry_container_info" id="sol_8">
+<div style='padding-left:20px;'>
+<pre>
+{$outside_groups.$key.ldif}
+</pre>
+</div>
+</div>
+				{/if}
+				<br>
+			{/foreach}
+
+			<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^select_group_','toggle_calue')">
+			{t}Select all{/t}
+			<br>
+			<p>
+                        {if $group_details}
+                        <input type='submit' name='outside_groups_dialog_refresh' value='{t}Hide changes{/t}'>
+                        {else}
+                        <input type='submit' name='outside_groups_dialog_whats_done' value='{t}Show changes{/t}'>
+                        {/if}
+			</p>
+
+			<p class='seperator'> </p>	
+			<div style='width:99%; text-align:right; padding:5px;'>
+				<input type='submit' name='outside_groups_dialog_perform' value='{t}Apply{/t}'>
+				 
+				<input type='submit' name='outside_groups_dialog_cancel' value='{t}Cancel{/t}'>
+			</div>
+		
+		{elseif $method == "outside_users"}
+
+			<h2>{t}Move users into configured user tree{/t}</h2>
+			<p>
+			{t}This dialog allows moving a couple of users to the configured user tree. Doing this may straighten your LDAP service.{/t}
+			</p>
+			<p style='color:red'>
+			{t}Be careful with this option! There may be references pointing to these users. The GOsa setup can't migrate references, so you may want to cancel the migration in this case.{/t}
+			</p>	
+			<p>
+			{t}Move selected users into this people tree{/t}: 
+			<select name='move_user_to'>
+				{html_options options=$ous}
+			</select>
+			</p>
+			{foreach from=$outside_users item=val key=key}
+				{if $outside_users.$key.selected}
+					<input id='select_user_{$key}' type='checkbox' name='select_user_{$key}' checked>
+				{else}
+					<input id='select_user_{$key}' type='checkbox' name='select_user_{$key}'>
+				{/if}
+
+				 {$outside_users.$key.dn}
+				{if $outside_users.$key.ldif != "" && $user_details}
+                      <div class="step2_entry_container_info" id="sol_8">
+<div style='padding-left:20px;'>
+<pre>
+{$outside_users.$key.ldif}
+</pre>
+</div>
+</div>
+				{/if}
+				<br>
+			{/foreach}
+			<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^select_user_','toggle_calue')">
+			{t}Select all{/t}
+			<br>
+
+			{if $user_details}
+			<input type='submit' name='outside_users_dialog_refresh' value='{t}Hide changes{/t}'>
+                        {else}
+			<input type='submit' name='outside_users_dialog_whats_done' value='{t}Show changes{/t}'>
+			{/if}
+
+			<p class='seperator'> </p>	
+			<div style='width:99%; text-align:right; padding:5px;'>
+				<input type='submit' name='outside_users_dialog_perform' value='{t}Apply{/t}'>
+				 
+				<input type='submit' name='outside_users_dialog_cancel' value='{t}Cancel{/t}'>
+			</div>
+		
+
+		{elseif $method == "migrate_acls"}
+			<h2>{t}Migrate GOsa 2.5 administrative accounts{/t}</h2>
+            <p>
+            {t}This dialog allows the migration of GOsa 2.5 admin accounts into GOsa 2.6 useable accounts.{/t}
+            </p>
+			<table>	
+				<tr>	
+					<td></td>
+					<td></td>
+				</tr>
+			{foreach from=$migrateable_users item=item key=key}
+				<tr>
+					<td><input type='checkbox' name='migrate_admin_{$key}' value='{$key}' {if $item.checked} checked {/if}></td>
+					<td>{$item.dn}</td>
+				</tr>
+			{/foreach}
+			</table>
+
+			{if !$details}
+				<input type='submit' name='migrate_acls_show_changes' value='{t}Show changes{/t}'>
+				<input type='hidden' name='details' value='0'>
+			{else}
+				<input type='hidden' name='details' value='1'>
+
+				<br>
+				<div class="step2_entry_container_info">
+				{t}Current{/t}
+				<div style='padding-left:20px;'>
+					<pre>{$migrate_acl_base_entry}</pre>
+				</div>
+				{t}After migration{/t}
+				<div style='padding-left:20px;'>
+					<pre>{$migrate_acl_base_entry}{foreach from=$migrateable_users item=item key=key}{if $item.checked}<b>{$item.details}</b>{/if}{/foreach}</pre>
+				</div>
+				</div>
+				<br>
+				<input type='submit' name='migrate_acls_hide_changes' value='{t}Hide changes{/t}'>
+			{/if}
+
+			<input type='submit' value="{t}Reload{/t}">
+			<p class='seperator'> </p>	
+			<div style='width:99%; text-align:right; padding:5px;'>
+				<input type='submit' name='migrate_admin_user' value='{t}Apply{/t}'>	
+				<input type='submit' name='migrate_acls_cancel' value='{t}Cancel{/t}'>
+			</div>
+
+		{elseif $method == "create_acls"}
+
+		{if $acl_create_selected != "" && $what_will_be_done_now!=""}
+			<div>
+<pre>
+{$what_will_be_done_now}
+</pre>
+			</div>		
+			<input type='submit' name='create_acls_create_confirmed' value='{t}Next{/t}'>
+			<input type='submit' name='create_acls_create_abort' value='{t}Abort{/t}'>
+		{else}
+			<h2>{t}Create a new GOsa administrator account{/t}</h2>
+	
+			<p>
+			{t}This dialog will automatically add a new super administrator to your LDAP tree.{/t}
+			</p>
+			<table>
+				<tr>
+					<td>
+						{t}Name{/t}: 
+					</td>
+					<td>
+						<i>System administrator</i>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						{t}User ID{/t}: 
+					</td>
+					<td>
+						<input type='text' value='{$new_user_uid}' name='new_user_uid'><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						{t}Password{/t}: 
+					</td>
+					<td>
+						<input type='password' value='{$new_user_password}' name='new_user_password'><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						{t}Password (again){/t}: 
+					</td>
+					<td>
+
+						<input type='password' value='{$new_user_password2}' name='new_user_password2'><br>
+					</td>
+				</tr>
+			</table>
+	
+<!-- Place cursor -->
+<script language="JavaScript" type="text/javascript">
+  <!-- // First input field on page
+	focus_field('new_user_password');
+  -->
+</script>
+
+			<p class='seperator'> </p>	
+			<div style='width:99%; text-align:right; padding:5px;'>
+				<input type='submit' name='create_admin_user' value='{t}Apply{/t}'>	
+				<input type='submit' name='create_acls_cancel' value='{t}Cancel{/t}'>
+			</div>
+			{/if}	
+		{elseif $method == "migrate_deps"}
+	
+			<h2>Department migration</h2>
+
+			<p>{t}The listed departments are currently invisible in the GOsa user interface. If you want to change this for a couple of entries, select them and use the migrate button below.{/t}</p>
+			<p>{t}If you want to know what will be done when migrating the selected entries, use the 'Show changes' button to see the LDIF.{/t}</p>
+					
+			{foreach from=$deps_to_migrate item=val key=key}
+
+				{if $deps_to_migrate.$key.checked}
+					<input id='migrate_{$key}' type='checkbox' name='migrate_{$key}' checked>
+					{$deps_to_migrate.$key.dn}
+					{if $deps_to_migrate.$key.after != ""}
+						<div class="step2_entry_container_info" id="sol_8">
+
+{t}Current{/t}
+<div style='padding-left:20px;'>
+<pre>
+dn: {$deps_to_migrate.$key.dn}
+{$deps_to_migrate.$key.before}
+</pre>
+</div>
+{t}After migration{/t}
+<div style='padding-left:20px;'>
+<pre>
+dn: {$deps_to_migrate.$key.dn}
+{$deps_to_migrate.$key.after}
+</pre>
+</div>
+						</div>
+					{/if}
+				{else}
+					<input id='migrate_{$key}' type='checkbox' name='migrate_{$key}'>
+					{$deps_to_migrate.$key.dn}
+				{/if}
+				
+			<br>
+			{/foreach}
+			<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^migrate_','toggle_calue')">
+			{t}Select all{/t}
+			<br>
+
+			{if $deps_details}
+			<input type='submit' name='deps_visible_migrate_refresh' value='{t}Hide changes{/t}'>
+			{else}
+			<input type='submit' name='deps_visible_migrate_whatsdone' value='{t}Show changes{/t}'>
+			{/if}
+
+			<p class='seperator'> </p>	
+
+			<div style='width:99%; text-align:right; padding:5px;'>
+				<input type='submit' name='deps_visible_migrate_migrate' value='{t}Apply{/t}'>
+				 
+				<input type='submit' name='deps_visible_migrate_close' value='{t}Cancel{/t}'>
+			</div>
+		{elseif $method == "migrate_users"}
+	
+			<h2>User migration</h2>
+
+			<p>{t}The listed users are currently invisible in the GOsa user interface. If you want to change this for a couple of users, just select them and use the 'Migrate' button below.{/t}</p>
+			<p>{t}If you want to know what will be done when migrating the selected entries, use the 'Show changes' button to see the LDIF.{/t}</p>
+			{foreach from=$users_to_migrate item=val key=key}
+
+				{if $users_to_migrate.$key.checked}
+					<input type='checkbox' name='migrate_{$key}' checked id='migrate_{$key}'>
+					{$users_to_migrate.$key.dn}
+					{if $users_to_migrate.$key.after != ""}
+						<div class="step2_entry_container_info" id="sol_8">
+
+{t}Current{/t}
+<div style='padding-left:20px;'>
+<pre>
+dn: {$users_to_migrate.$key.dn}
+{$users_to_migrate.$key.before}
+</pre>
+</div>
+{t}After migration{/t}
+<div style='padding-left:20px;'>
+<pre>
+dn: {$users_to_migrate.$key.dn}
+{$users_to_migrate.$key.after}
+</pre>
+</div>
+						</div>
+					{/if}
+				{else}
+					<input type='checkbox' name='migrate_{$key}' id='migrate_{$key}'>
+					{$users_to_migrate.$key.dn}
+				{/if}
+				<br>
+			{/foreach}
+			<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^migrate_','toggle_calue')">
+			{t}Select all{/t}
+			<br>
+
+			{if $user_details}
+			<input type='submit' name='users_visible_migrate_refresh' value='{t}Hide changes{/t}'>
+			{else}
+			<input type='submit' name='users_visible_migrate_whatsdone' value='{t}Show changes{/t}'>
+			{/if}
+
+			<p class='seperator'> </p>	
+
+			<div style='width:99%; text-align:right; padding-top:5px;'>
+				<input type='submit' name='users_visible_migrate_migrate' value='{t}Apply{/t}'>
+				 
+				<input type='submit' name='users_visible_migrate_close' value='{t}Cancel{/t}'>
+			</div>
+
+
+	{elseif $method == "devices"}
+
+
+			<h2>Devices</h2>
+
+			<p>{t}The listed devices are currently invisible in the GOsa interface. If you want to change this for a couple of devices, just select them and use the 'Migrate' button below.{/t}</p>
+			<p>{t}If you want to know what will be done when migrating the selected entries, use the 'Show changes' button to see the LDIF.{/t}</p>
+		{foreach from=$devices item=item key=key}
+           	<input type='checkbox' name='migrate_{$key}' id='migrate_{$key}' {if $item.DETAILS} checked {/if}>
+				<b>{$item.DEVICE_NAME}</b>
+				 - {$item.DN} 
+
+				{if $item.DETAILS && $device_details}
+					<div class="step2_entry_container_info">
+						<b>{t}Current{/t}</b>
+						<pre>{$item.CURRENT}</pre>
+	
+						
+						<b>{t}After migration{/t}</b>
+						<pre>{$item.AFTER}</pre>
+					</div>
+				{/if}
+			<br>
+		{/foreach}
+		<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^migrate_','toggle_calue')">
+		{t}Select all{/t}
+	
+		<br>
+
+		{if $device_details}
+			<input type='submit' name='device_dialog_refresh' value='{t}Hide changes{/t}'>
+			<input type='submit' name='dummy_11' value='{t}Refresh{/t}'>
+		{else}
+			<input type='submit' name='device_dialog_whats_done' value='{t}Show changes{/t}'>
+		{/if}
+
+		<p class='seperator'> </p>	
+
+		<div style='width:99%; text-align:right; padding-top:5px;'>
+			<input type='submit' name='migrate_devices' value='{t}Apply{/t}'>
+			 
+			<input type='submit' name='device_dialog_cancel' value='{t}Cancel{/t}'>
+		</div>
+
+	{elseif $method == "services"}
+
+
+			<h2>Services</h2>
+
+			<p>{t}The listed services are currently invalid for the GOsa version you are going to install. If you want to update a couple of service, just select them and use the 'Migrate' button below.{/t}</p>
+			<p>{t}If you want to know what will be done when migrating the selected entries, use the 'Show changes' button to see the LDIF.{/t}</p>
+		{foreach from=$services item=item key=key}
+           	<input type='checkbox' name='migrate_{$key}' id='migrate_{$key}' {if $item.DETAILS} checked {/if}>
+				<b>{$item.DN}</b>
+
+				{if $item.DETAILS && $service_details}
+					<div class="step2_entry_container_info">
+						<b>{t}Current{/t}</b>
+						<pre>{$item.CURRENT}</pre>
+	
+						
+						<b>{t}After migration{/t}</b>
+						<pre>{$item.AFTER}</pre>
+					</div>
+				{/if}
+			<br>
+		{/foreach}
+		<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^migrate_','toggle_calue')">
+		{t}Select all{/t}
+	
+		<br>
+
+		{if $service_details}
+			<input type='submit' name='service_dialog_refresh' value='{t}Hide changes{/t}'>
+			<input type='submit' name='dummy_11' value='{t}Refresh{/t}'>
+		{else}
+			<input type='submit' name='service_dialog_whats_done' value='{t}Show changes{/t}'>
+		{/if}
+
+		<p class='seperator'> </p>	
+
+		<div style='width:99%; text-align:right; padding-top:5px;'>
+			<input type='submit' name='migrate_services' value='{t}Apply{/t}'>
+			 
+			<input type='submit' name='service_dialog_cancel' value='{t}Cancel{/t}'>
+		</div>
+
+
+	{elseif $method == "menus"}
+
+
+			<h2>Application menus</h2>
+
+			<p>{t}The listed menus are currently invisible in the GOsa interface. If you want to change this for a couple of devices, just select them and use the 'Migrate' button below.{/t}</p>
+			<p>{t}If you want to know what will be done when migrating the selected entries, use the 'Show changes' button to see the LDIF.{/t}</p>
+		{foreach from=$menus item=item key=key}
+           	<input type='checkbox' name='migrate_{$key}' id='migrate_{$key}' {if $item.DETAILS} checked {/if}>
+				<b>{$item.DN}</b>
+
+				{if $item.DETAILS && $menu_details}
+					<div class="step2_entry_container_info">
+						<b>{t}Current{/t}</b>
+						<pre>{$item.CURRENT}</pre>
+	
+						
+						<b>{t}After migration{/t}</b>
+						<pre>{$item.AFTER}</pre>
+					</div>
+				{/if}
+			<br>
+		{/foreach}
+		<input type='checkbox' id='toggle_calue' onClick="toggle_all_('^migrate_','toggle_calue')">
+		{t}Select all{/t}
+	
+		<br>
+
+		{if $menu_details}
+			<input type='submit' name='menu_dialog_refresh' value='{t}Hide changes{/t}'>
+			<input type='submit' name='dummy_11' value='{t}Refresh{/t}'>
+		{else}
+			<input type='submit' name='menu_dialog_whats_done' value='{t}Show changes{/t}'>
+		{/if}
+
+		<p class='seperator'> </p>	
+
+		<div style='width:99%; text-align:right; padding-top:5px;'>
+			<input type='submit' name='migrate_menus' value='{t}Apply{/t}'>
+			 
+			<input type='submit' name='menu_dialog_cancel' value='{t}Cancel{/t}'>
+		</div>
+	{/if}
+    </div>
+</div>
diff --git a/gosa-core/setup/setup_schema.tpl b/gosa-core/setup/setup_schema.tpl
new file mode 100644
index 0000000..908b989
--- /dev/null
+++ b/gosa-core/setup/setup_schema.tpl
@@ -0,0 +1,52 @@
+<div class='default'>
+    <p>
+     <b>{t}Schema specific settings{/t}</b>
+    </p>
+    <div class='step4_container'>
+        <div class='step4_name' style='width:30%'>
+            {t}Enable schema validation when logging in{/t}
+        </div>
+        <div class='step4_value'>
+			<select name='enable_schema_check'>
+				{html_options options=$bool selected=$enable_schema_check}
+            </select>
+        </div>
+    </div>
+    <p>
+     <b>{t}Check status{/t}</b>
+    </p>
+	<div>
+		{if $failed_checks == 0}
+			<font style="color:green">{t}Schema check succeeded{/t}</font>
+		{else}
+			<img src='images/small_warning.png' class='center'>
+				<font style="color:red">{t}Schema check failed{/t}</font>
+
+
+		{/if}
+	</div>
+	<div style="margin-left:20px;">
+
+		{if $found_ocs == 0}
+			<b>{t}Could not read any schema informations, all checks skipped. Adjust your ldap acls.{/t}</b>
+			<br>
+			{if !$database_initialised}
+			<br>
+				{t}It seems that your ldap database wasn't initialized yet. This maybe the reason, why GOsa can't read your schema configuration!{/t}
+			{/if}
+		{else}
+			{foreach from=$checks item=val key=key}
+					{if !$checks[$key].STATUS}
+					<br>
+						{if $checks[$key].IS_MUST_HAVE}
+							<font color='red'>{$checks[$key].MSG}</font>
+						{else}
+							{$checks[$key].MSG}
+						{/if}
+					<br>
+					{/if}
+			{/foreach}
+		{/if}
+	</div>
+</div>
+<input type='hidden' value='1' name='step7_posted'>
diff --git a/gosa-core/setup/setup_welcome.tpl b/gosa-core/setup/setup_welcome.tpl
new file mode 100644
index 0000000..5333ade
--- /dev/null
+++ b/gosa-core/setup/setup_welcome.tpl
@@ -0,0 +1,37 @@
+<div>
+    <div class='default'>
+	<p>
+	{t}This seems to be the first time you start GOsa - we didn't find any configuration right now. This simple wizard intends to help you while setting it up.{/t}
+	</p>
+	
+	<p style='border-top:1px solid #AAAAAA; padding-top:10px;'>
+	<b>{t}What will the wizard do for you?{/t}</b>
+	</p>
+	<ul>
+	 <li>{t}Create a basic, single site configuration{/t}</li>
+	 <li>{t}Tries to find problems within your PHP and LDAP setup{/t}</li>
+	 <li>{t}Let you choose from a set of basic and advanced configuration switches{/t}</li>
+	 <li>{t}Guided migration of existing LDAP trees{/t}</li>
+	</ul>
+	<p>
+	<b>{t}What will the wizard NOT do for you?{/t}</b>
+	</p>
+	<ul>
+	 <li>{t}Find every possible configuration error{/t}</li>
+	 <li>{t}Migrate every possible LDAP setup - create backup dumps!{/t}</li>
+	</ul>
+
+	<p style='border-top:1px solid #AAAAAA; padding-top:10px;'>
+	<b>{t}To continue...{/t}</b>
+	</p>
+	<p>
+	{t}For security reasons you need to authenticate for the installation by creating the file '/tmp/gosa.auth', containing the current session ID on the servers local filesystem. This can be done by executing the following command:{/t}
+	</p>
+	<tt>
+	echo -n <b>{$auth_id}</b> > {$path}
+	</tt>
+	<p>
+	{t}Click the 'Continue' button when you've finished.{/t}
+	</p>
+     </div>
+</div>
diff --git a/gosa-core/update-gosa b/gosa-core/update-gosa
new file mode 100755
index 0000000..55214d1
--- /dev/null
+++ b/gosa-core/update-gosa
@@ -0,0 +1,569 @@
+#!/usr/bin/php
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: main.php 9254 2008-03-03 15:57:49Z cajus $$
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+define ("GOSA_HOME", dirname(__FILE__));
+define ("LOCALE_DIR", GOSA_HOME."/locale");
+define ("PLUGSTATE_DIR", GOSA_HOME."/state");
+
+function print_usage()
+{
+	?>
+update-gosa - class cache updated and plugin manager for GOsa
+Usage: update-gosa install dsc     Install the plugin using the dsc information
+                                   placed in the plugin source directory.
+
+       update-gosa remove plugin   Remove the plugin named "plugin" from
+                                   the current configuration.
+
+       update-gosa list           Lists installed plugins
+
+       update-gosa rescan-i18n     Rebuilds the translations
+
+       update-gosa rescan-classes  Rebuilds the class list
+       
+       update-gosa                 Shortcut for rescan-classes and rescan-i18n
+<?php
+	exit (1);
+}
+
+
+function rmdirRecursive($path, $followLinks=false) {
+  $dir= opendir($path);
+  while($entry= readdir($dir)) {
+    if(is_file($path."/".$entry) || ((!$followLinks) && is_link($path."/".$entry))) {
+      unlink($path."/".$entry);
+    } elseif (is_dir($path."/".$entry) && $entry!='.' && $entry!='..') {
+      rmdirRecursive($path."/".$entry);
+    }
+  }
+  closedir($dir);
+  return rmdir($path);
+}
+
+
+/* Function to include all class_ files starting at a given directory base */
+function get_classes($folder= ".")
+{
+  static $base_dir= "";
+  static $result= array();
+
+  if ($base_dir == ""){
+    if ($folder == "."){
+      $base_dir= getcwd();
+    } else {
+      $base_dir= $folder;
+    }
+  }
+
+  $currdir=getcwd();
+  if ($folder){
+    chdir("$folder");
+  }
+
+  $dh = opendir(".");
+  while(false !== ($file = readdir($dh))){
+
+    if (preg_match("/.*\.svn.*/", $file) ||
+        preg_match("/.*smarty.*/i",$file) ||
+        preg_match("/.*\.tpl.*/",$file) ||
+        ($file==".") ||($file =="..")){
+      continue;
+    }
+
+    /* Recurse through all "common" directories */
+    if (is_dir($file)){
+      get_classes($file);
+      continue;
+    }
+
+    /* Only take care about .inc and .php files... */
+    if (!(preg_match('/\.php$/', $file) || preg_match('/\.inc$/', $file))){
+      continue;
+    }
+
+    /* Include existing class_ files */
+    $contents= file($file);
+    foreach($contents as $line){
+      $line= chop($line);
+      if (preg_match('/^\s*class\s*\w.*$/', $line)){
+        $class= preg_replace('/^\s*class\s*(\w+).*$/', '\1', $line);
+        $result[$class]= preg_replace("%$base_dir/%", "", "$currdir/$folder/$file");
+      }
+    }
+  }
+
+  closedir($dh);
+  chdir($currdir);
+
+  return ($result);
+}
+
+
+function rescan_classes()
+{
+	echo "Updating class cache...\n";
+	$class_mapping= get_classes();
+	$filename= GOSA_HOME."/include/class_location.inc";
+
+	/* Sanity checks */
+	if (!file_exists($filename) || is_writable($filename)) {
+
+	    if (!$handle= fopen($filename, 'w')) {
+		 echo "Cannot open file \"$filename\" - aborted\n";
+		 exit (1);
+	    }
+
+	} else {
+	    echo "File \"$filename\" is not writable - aborted\n";
+	    exit (2);
+	}
+
+	fwrite ($handle, "<?php\n\$class_mapping= array(\n");
+	foreach ($class_mapping as $key => $value){
+	  fwrite ($handle, "                \"$key\" => \"$value\",\n");
+	}
+	fwrite ($handle, " );\n");
+
+	fclose($handle);
+}
+
+
+function rescan_i18n()
+{
+	echo "Updating internationalization...\n";
+	$languages= array();
+	$size= strlen(LOCALE_DIR);
+
+	/* Get all available messages.po files, sort them for languages */
+	$dir= new RecursiveDirectoryIterator(LOCALE_DIR);
+	$all= new RecursiveIteratorIterator($dir);
+	foreach ( $all as $element ){
+		if ($element->isFile() && preg_match('/\/LC_MESSAGES\/messages.po$/', $element->getPathname())){
+			$lang= preg_replace('/^.*\/([^\/]+)\/LC_MESSAGES\/.*$/', '\1', $element);
+			if (!isset($languages[$lang])){
+				$languages[$lang]= array();
+			}
+			$languages[$lang][]= substr($element->getPathName(), $size+1);
+		}
+	}
+
+	/* For each language, merge the target .mo to the compiled directory. */
+	foreach ($languages as $language => $po_files){
+		if (!is_dir(LOCALE_DIR."/compiled/${language}/LC_MESSAGES")){
+			if (!mkdir (LOCALE_DIR."/compiled/${language}/LC_MESSAGES", 0755, TRUE)){
+				echo "Failed to create '".LOCALE_DIR."/compiled/${language}/LC_MESSAGES'- aborted";
+				exit (3);
+			}
+		}
+
+		/* Cat all these po files into one single file */
+		system ("(cd ".LOCALE_DIR." && msgcat --use-first ".implode(" ", $po_files)." > compiled/${language}/LC_MESSAGES/messages.po)", $val);
+		if ($val != 0){
+			echo "Merging of message files failed - aborted";
+			exit (4);
+		}
+		system ("(cd ".LOCALE_DIR."/compiled/${language}/LC_MESSAGES && msgfmt -o messages.mo messages.po && rm messages.po)", $val);
+		if ($val != 0){
+			echo "Compiling of message files failed - aborted";
+			exit (5);
+		}
+	}
+
+	echo "! Warning: you may need to reload your webservice!\n";
+}
+
+
+function rescan_guide()
+{
+	$master_guide= "doc/guide.xml";
+	echo "Updating Online Help Index...\n";
+	$master_guide_content="<?xml version=\"1.0\"?>\n".
+		"<!--\n".
+		"\tWARNING:\n".
+		"\tThis file is automatically generated by update-online-help.\n".
+		"\tIf you want to add entries, use doc/core/guide.xml or doc/plugins/\"Appropriate Plugin Directory\"/guide.xml.\n".
+		"\tThen execute update-online-help to merge them into this file.\n".
+		"-->\n\n".
+		"<!--\n".
+		"\tThis xml file specifies which class is documented in which help file.\n".
+		"\tIf isset ( \$_SESSION['current_class_for_help'] ) then open the helpfile which is\n".
+		"\tspecified for this class below.\n".
+		"-->\n\n".
+		"<!--\n".
+	       	"\t<ENTRY NAME='class name' VALUE='displayed text' PATH='path to helpfiles' FILE='path to htmlfile' />\n".
+		"\tLeave blank to display message \"There is no helpfile specified for this class.\"\n".
+		"-->\n".
+		"<ENTRIES>\n";
+
+	$guide= 'doc/core/guide.xml';
+	if(file_exists($guide) && is_readable($guide)) {
+		$master_guide_content.= file_get_contents($guide);
+	}
+	
+	if(file_exists('doc/plugins')) {
+		$plugins= scandir('doc/plugins');
+		foreach($plugins as $key => $plugin) {
+			if($plugin != '.' && $plugin != '..') {
+				if(is_dir('doc/plugins/'.$plugin)) {
+					$guide= 'doc/plugins/'.$plugin.'/guide.xml';
+					if(file_exists($guide) && is_readable($guide)) {
+						$master_guide_content.= file_get_contents($guide);
+					}
+				}
+			}
+		}
+	}
+
+	$master_guide_content.= "</ENTRIES>";
+	
+	$master_guide_content= preg_replace("/[ \t][ \t]*/", " ", $master_guide_content);
+
+	if((file_exists($master_guide) && is_writable($master_guide)) || is_writable('doc')) {
+		file_put_contents($master_guide, $master_guide_content);
+	}
+
+}
+
+
+function parse_ini($file)
+{
+	global $description, $provides, $depends, $versions, $conflicts;
+
+	$res= "";
+	if (file_exists($file)){
+		$tmp= parse_ini_file($file, TRUE);
+
+		if (isset($tmp['gosa-plugin'])){
+			$plugin= &$tmp['gosa-plugin'];
+			if (isset($plugin['name'])&& isset($plugin['description'])){
+				$res= $plugin['name'];
+				$description[$res]= $plugin['description'];
+				$versions[$res]= $plugin['version'];
+				$provides[$res]= $res;
+				if (isset($plugin['depends'])){
+					$depends[$res]= explode(',', preg_replace('/\s+/', '', $plugin['depends']));
+				}
+				if (isset($plugin['conflicts'])){
+					$conflicts[$res]= explode(',', preg_replace('/\s+/', '', $plugin['conflicts']));
+				}
+			}
+		}
+	}
+
+	return $res;
+}
+
+
+function dependency_check()
+{
+	global $description, $provides, $depends;
+
+	foreach ($depends as $name => $pl_depends){
+		foreach ($pl_depends as $pl){
+			if (!in_array($pl, $provides)){
+				echo "! Error: plugin '$name' depends on '$pl' which is not provided by any plugin\n\n";
+				exit (1);
+			}
+		}
+	}
+}
+
+
+function load_plugins()
+{
+	if (!is_dir(PLUGSTATE_DIR)){
+		if (!mkdir (PLUGSTATE_DIR, 0755, TRUE)){
+			echo "Cannot create plugstate dir '".PLUGSTATE_DIR."' - aborted\n";
+			exit (2);
+		}
+	}
+	$dir= new DirectoryIterator(PLUGSTATE_DIR);
+	foreach ($dir as $entry){
+		if ($dir->isDir() && !preg_match('/^\./', $dir->__toString())){
+			$file= $dir->getPathName()."/plugin.dsc";
+			if (parse_ini($file) == ""){
+				echo "! Warning: plugin ".$dir->getPathName()." is missing declarations\n";
+			}
+		}
+	}
+}
+
+
+function list_plugins()
+{
+	global $description, $versions;
+	$count= 0;
+
+	/* Load plugin list */
+	load_plugins();
+
+	/* Show plugins */
+	foreach ($description as $name => $dsc){
+		if ($count == 0){
+			echo "Plugin\t\t|Version |Description\n";
+			echo "----------------------------------------------------------------------------\n";
+		}
+		$ver= $versions[$name];
+		echo "$name\t\t|$ver\t |$dsc\n";
+		$count++;
+	}
+
+	/* Yell about non existing plugins... */
+	if ($count == 0){
+		echo "No plugins found...\n\n";
+	} else {
+		# Check for dependencies
+		dependency_check();
+		echo "\n";
+	}
+}
+
+
+function install_plugin($file)
+{
+	global $description, $provides, $depends, $conflicts;
+
+	/* Load plugin list */
+	load_plugins();
+
+	/* Load .dsc file */
+	if (file_exists($file)){
+		$tmp= parse_ini_file($file, TRUE);
+
+		if (isset($tmp['gosa-plugin'])){
+			$plugin= &$tmp['gosa-plugin'];
+			if (isset($plugin['name'])&& isset($plugin['description'])){
+				$name= $plugin['name'];
+				$description= $plugin['description'];
+				$depends= array();
+				if (isset($plugin['depends'])){
+					$depends= explode(',', preg_replace('/\s+/', '', $plugin['depends']));
+				}
+
+				/* Already installed? */
+				if (isset($provides[$name])){
+					echo "! Error: plugin already installed\n\n";
+					exit (3);
+				}
+
+				/* Check if dependencies are fullfilled */
+				foreach ($depends as $dep){
+					$found= false;
+					foreach ($provides as $provide => $dummy){
+						if ($dep == $provide){
+							$found= true;
+							break;
+						}
+					}
+					if (!$found){
+						echo "! Error: plugin depends on '$dep', but this is not installed\n\n";
+						exit (3);
+					}
+				}
+
+				/* Check for conflicts */
+				foreach ($conflicts as $conf){
+					if (!in_array($conf, $provides)){
+						echo "! Warning: plugin conflicts with '$conf'\n\n";
+					}
+				}
+
+				/* Create plugstate directory and touch plugin.lst */
+				if (!mkdir (PLUGSTATE_DIR."/$name", 0755, TRUE)){
+					echo "Failed to create '".PLUGSTATE_DIR."/$name - aborted";
+					exit (3);
+				}
+				if (!$handle= fopen(PLUGSTATE_DIR."/$name/plugin.lst", 'w')) {
+					echo "Cannot open file '$filename' - aborted\n";
+					exit (1);
+				}
+
+				echo "Installing plugin '$name'...\n";
+
+				/* Copy and fill plugin.lst */
+				$path= dirname($file);
+				$dir= new RecursiveDirectoryIterator($path);
+				$all= new RecursiveIteratorIterator($dir);
+				foreach ( $all as $entry ){
+					$source= $path."/".substr($entry->getPathName(), strlen($path) + 1);
+
+					/* Skip description - it belongs to the state dir */
+					if (preg_match('/\/plugin.dsc$/', $source)){
+						copy ($source, PLUGSTATE_DIR."/$name/plugin.dsc");
+						continue;
+					}
+
+					/* Skip well known directories */
+					if (preg_match('/^\.+$/', $source) || preg_match('/\/\.svn\//', $source)) {
+						continue;
+					}
+
+					/* Calculate destination */
+					if (preg_match("%^.*locale/%", $source)){
+						$dest= GOSA_HOME."/locale/plugins/$name/".preg_replace("%^.*locale/%", "", $source);
+					} elseif (preg_match("%^.*help/%", $source)) {
+						$dest= GOSA_HOME."/doc/plugins/$name/".preg_replace("%^.*help/%", "", $source);
+					} elseif (preg_match("%^.*html/%", $source)) {
+						$dest= GOSA_HOME."/html/plugins/$name/".preg_replace("%^.*html/%", "", $source);
+					} else {
+						$dest= GOSA_HOME."/plugins/".substr($entry->getPathName(), strlen($path) + 1);
+					}
+
+					/* Destination exists in case of directories? */
+					if ($entry->isDir()){
+						if (!is_dir($dest)){
+							mkdir($dest, 0755, TRUE);
+							fwrite ($handle, "$dest\n");
+						}
+					} else {
+						if (!is_dir(dirname($dest))){
+							mkdir(dirname($dest), 0755, TRUE);
+							fwrite ($handle, dirname($dest)."\n");
+						}
+					}
+
+					/* Copy files */
+					if ($entry->isFile()){
+						copy ($source, $dest);
+					}
+
+					/* Note what we did... */
+					fwrite ($handle, "$dest\n");
+				}
+
+				fclose($handle);
+			}
+		}
+	}
+	
+	/* Update caches */
+	rescan_classes();
+	rescan_i18n();
+	rescan_guide();
+}
+
+
+function remove_plugin($name)
+{
+	global $description, $depends;
+
+	/* Load plugin list */
+	load_plugins();
+
+	/* Present? */
+	if (!isset($description[$name])){
+		echo "! Error: cannot find a plugin named '$name'\n\n";
+		exit (1);
+	}
+
+	/* Depends? */
+	foreach ($depends as $sname => $pl_depends){
+		if (in_array($name, $pl_depends)){
+			echo "! Error: plugin '$sname' depends on '$name' - cannot remove it\n\n";
+			exit (1);
+		}
+	}
+
+	/* Load information */
+	if (!file_exists(PLUGSTATE_DIR."/$name/plugin.lst")){
+		echo "! Error: cannot remove plugin '$name' - no install history found\n\n";
+		exit (1);
+	}
+
+	echo "Removing plugin '$name'...\n";
+	$contents= file(PLUGSTATE_DIR."/$name/plugin.lst");
+	$cnv= array();
+	foreach($contents as $line){
+		$entry= chop($line);
+		$cnv[strlen($entry).":$entry"]= $entry;
+	}
+	krsort($cnv);
+
+	/* Remove files first */
+	clearstatcache();
+	foreach ($cnv as $entry){
+		if (is_dir($entry)){
+			rmdir($entry);
+			continue;
+		}
+		if (file_exists($entry)){
+			unlink($entry);
+		}
+	}
+
+	/* Remove state directory for plugin */
+	rmdirRecursive(PLUGSTATE_DIR."/$name");
+
+	/* Update caches */
+	rescan_classes();
+	rescan_i18n();
+	rescan_guide();
+}
+
+
+
+/* Fill global values */
+$description= $provides= $depends= $versions= $conflicts= array();
+
+/* Action specified? */
+if ($argc < 2){
+	rescan_classes();
+	rescan_i18n();
+	rescan_guide();
+        exit (0);
+}
+
+switch ($argv[1]){
+        case 'install':
+                if (isset($argv[2])){
+			install_plugin($argv[2]);
+		} else {
+			echo "Usage: update-gosa install dsc-file\n\n";
+			exit (1);
+		}
+                break;
+        case 'list':
+                list_plugins();
+                break;
+        case 'remove':
+                if (isset($argv[2])){
+			remove_plugin($argv[2]);
+		} else {
+			echo "Usage: update-gosa remove plugin-name\n\n";
+			exit (1);
+		}
+                break;
+        case 'rescan-i18n':
+                rescan_i18n();
+                break;
+        case 'rescan-classes':
+                rescan_classes();
+                break;
+        default:
+                echo "Error: Supplied command not known\n\n";
+                print_usage();
+                break;
+}
+
+
+?>
diff --git a/gosa-core/update-gosa.1 b/gosa-core/update-gosa.1
new file mode 100644
index 0000000..b6ef104
--- /dev/null
+++ b/gosa-core/update-gosa.1
@@ -0,0 +1,165 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "UPDATE-GOSA 1"
+.TH UPDATE-GOSA 1 "2010-05-05" "perl v5.10.0" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+update\-gosa \- class cache updater and plugin manager for GOsa
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+update-gosa [\s-1OPTION\s0]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+update-gosa is a script that help you to manage your gosa instance
+.IP "\fBinstall dsc\fR       Install the plugin using the dsc information placed in the plugin source directory." 5
+.IX Item "install dsc       Install the plugin using the dsc information placed in the plugin source directory."
+.PD 0
+.ie n .IP "\fBremove plugin\fR     Remove the plugin named ""plugin"" from the current configuration." 5
+.el .IP "\fBremove plugin\fR     Remove the plugin named ``plugin'' from the current configuration." 5
+.IX Item "remove plugin     Remove the plugin named plugin from the current configuration."
+.IP "\fBlist\fR              Lists installed plugins" 5
+.IX Item "list              Lists installed plugins"
+.IP "\fBrescan\-i18n\fR       Rebuilds the translations" 5
+.IX Item "rescan-i18n       Rebuilds the translations"
+.IP "\fBrescan-classes\fR    Rebuilds the class list" 5
+.IX Item "rescan-classes    Rebuilds the class list"
+.PD
+.SH "BUGS"
+.IX Header "BUGS"
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa\-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+.SH "LICENCE AND COPYRIGHT"
+.IX Header "LICENCE AND COPYRIGHT"
+This code is part of GOsa (<http://www.gosa\-project.org>)
+.PP
+Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\s-1GNU\s0 General Public License for more details.
diff --git a/gosa-core/update-gosa.pod b/gosa-core/update-gosa.pod
new file mode 100644
index 0000000..68c428b
--- /dev/null
+++ b/gosa-core/update-gosa.pod
@@ -0,0 +1,45 @@
+
+=head1 NAME
+
+update-gosa - class cache updater and plugin manager for GOsa
+
+=head1 SYNOPSIS
+
+update-gosa [OPTION] 
+
+=head1 DESCRIPTION
+
+update-gosa is a script that help you to manage your gosa instance
+
+=over 5
+
+=item B<install dsc>       Install the plugin using the dsc information placed in the plugin source directory.
+
+=item B<remove plugin>     Remove the plugin named "plugin" from the current configuration.
+
+=item B<list>              Lists installed plugins
+
+=item B<rescan-i18n>       Rebuilds the translations
+
+=item B<rescan-classes>    Rebuilds the class list
+
+=back
+
+=head1 BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
+=cut
+
diff --git a/gosa-core/update-locale b/gosa-core/update-locale
new file mode 100755
index 0000000..a036321
--- /dev/null
+++ b/gosa-core/update-locale
@@ -0,0 +1,167 @@
+#!/bin/bash
+
+generate_po() {
+  ORIG=`pwd`
+  TEMPDIR="/tmp/gosa-locale"
+  TRUE=`which true`
+
+  echo
+  echo "Creating temporary directory..."
+  [ -d $TEMPDIR ] && rm -rf $TEMPDIR
+  mkdir $TEMPDIR
+
+  echo "Creating copy of GOsa..."
+  tar c . | tar x -C $TEMPDIR
+
+  echo "Converting .tpl files..."
+  pushd . &> /dev/null
+  cd $TEMPDIR
+
+  for template in $(find . -name '*.tpl'); do
+    echo "* converting .tpl files: $(basename $template)"
+    sed -e 's/{t}/<?php $t= _("/g;s!{/t}!");?>!g' $template > $template.new
+    mv $template.new $template
+  done
+
+  for template in $(find . -name '*.xml'); do
+    echo "* converting .xml files: $(basename $template)"
+    sed -e 's/<label>/<?php $t= _("/g;s!</label>!");?>!g' $template > $template.new
+    mv $template.new $template
+  done
+
+  for class in $(find . -name 'class_*.inc'); do
+    echo "* converting class_*.inc files: $(basename $class)"
+    sed -e 's/\($pl[DH][^=]*\)= *"\([^"]*\)";$/\1= _("\2");/g' $class > $class.new
+    mv $class.new $class
+  done
+
+  echo "Extracting languages..."
+  [ -f locale/${l_path}messages.po ] && rm locale/${l_path}messages.po
+  find . -name '*.[ctpix][mophn][nlpc]' | xgettext -f - --keyword=must -d Domain -L PHP -n -o locale/${l_path}messages.po
+
+  echo "Merging po files with existing ones"
+  error=0
+  for f in locale/${l_path}??/LC_MESSAGES; do
+    [[ "$f" == "locale/${l_path}??/LC_MESSAGES" ]] && break
+    echo -n "* merging $f/messages.po: "
+    [ ! -f $f/messages.po ] && touch $f/messages.po
+
+    # If we're in a plugin of a trunk checkout, we can use the gosa-all messages.po as a dictionary
+    DICT_FILE_ALL="$ORIG/../../gosa-all/gosa/${f/locale/locale/core}/messages.po"
+    DICT_FILE_CORE="$ORIG/../../gosa-core/${f/locale/locale/core}/messages.po"
+    DICT=""
+    [ -r $DICT_FILE_ALL ] && DICT="-C $DICT_FILE_ALL"
+    [ ${#DICT} -eq 0 ] && [ -r $DICT_FILE_CORE ] && DICT="-C $DICT_FILE_CORE"
+    msgmerge $DICT $f/messages.po locale/${l_path}messages.po --output-file=$f/messages.po.tmp &> /dev/null
+
+    # Filter out duplicates
+    msguniq $f/messages.po.tmp --output-file=$f/messages.po.new &> /dev/null
+    rm $f/messages.po.tmp
+
+    # Do an extra check for dummy dir 'locale/en/LC_MESSAGES'
+    if [ $? -ne 0 ]; then
+      [ "$f" == "locale/${l_path}en/LC_MESSAGES" ] && $TRUE
+    fi
+
+    if [ $? -eq 0 ]; then
+      echo "done";
+    else
+      echo "failed";
+      error=1
+    fi
+
+  done
+
+  echo "Copying new po files, making backups..."
+  find locale/${l_path} -name messages.po | while read f; do
+
+    if [ -f $ORIG/$f ]; then
+      mv $ORIG/$f $ORIG/$f.orig
+    fi
+
+    echo $f | grep -q "locale/${l_path}messages.po"
+    if [ $? -ne 0 ]; then
+      echo "* replaced $ORIG/$f"
+      cp $f.new $ORIG/$f
+    else
+      cp $f $ORIG/$f
+    fi
+
+  done
+
+  rm -rf $TEMPDIR
+
+  echo
+  if [ $error -eq 0 ]; then
+    if [ $ASSUME_Y -eq 1 ]; then
+      find $ORIG/ -type f -name 'messages.po.orig' -exec rm -f {} \;
+    else
+      read -p "Do you want to erase the message.po.orig files? (y/n)" -n1 ans
+
+      if [ "$ans" == "y" -o "$ans" == "Y" ]; then
+        find $ORIG/ -type f -name 'messages.po.orig' -exec rm -f {} \;
+      fi
+    fi
+
+  else
+    echo "There were errors during the transition. Please fix!"
+    exit 1
+  fi
+
+cat <<-EOF
+
+---------------------------------------------------------------------
+
+Now edit all files that have been replaced above (i.e. using kbabel
+or gtranslator) and mail the changes to gosa at oss.gonicus.de to be 
+included in the next release.
+
+To see the changes you've made in GOsa, run "msgfmt messages.po" on
+your freshly edited files and restart your apache after that. Set
+the webbrowser to the language you've edited and go back to the
+login screen.
+
+---------------------------------------------------------------------
+
+EOF
+
+  popd &> /dev/null
+}
+
+#
+# MAIN
+#
+GENERATE=0
+ASSUME_Y=0
+while getopts ":gyh" opt
+do
+  case $opt in
+    g) GENERATE=1;
+       ;;
+    y) ASSUME_Y=1;
+       ;;
+    h|--help)
+       echo "Usage: $(basename $0) [-g] [-y]"
+       echo "       -g extract strings from GOsa and generate po files"
+       echo "       -y assume yes"
+       exit 1
+       ;;
+  esac
+done
+shift $(($OPTIND - 1))
+
+# If there's a plugin.dsc in ., then assume "plugin"
+if [ -f plugin.dsc ]; then
+	l_path=""
+else
+	l_path="core/"
+fi
+
+# Default to generate
+if [ $GENERATE -eq 0 ]; then
+  GENERATE=1
+fi
+
+[ $GENERATE -eq 1 ] && generate_po
+
+# vim:tabstop=2:expandtab:shiftwidth=2:syntax:ruler:
diff --git a/gosa-core/update-locale.1 b/gosa-core/update-locale.1
new file mode 100644
index 0000000..f1293cd
--- /dev/null
+++ b/gosa-core/update-locale.1
@@ -0,0 +1,160 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "UPDATE-LOCALE 1"
+.TH UPDATE-LOCALE 1 "2010-05-05" "perl v5.10.0" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+update\-locale \- update localization files
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+update-locale [\-h] [\-g] [\-y]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+update-locale is a script that update/generate the .po files for GOsa
+.IP "\fB\-g\fR        extract strings from GOsa and generate po files" 3
+.IX Item "-g        extract strings from GOsa and generate po files"
+.PD 0
+.IP "\fB\-y\fR        assume yes" 3
+.IX Item "-y        assume yes"
+.IP "\fB\-h\fR        help" 3
+.IX Item "-h        help"
+.PD
+.SH "BUGS"
+.IX Header "BUGS"
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa\-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+.SH "LICENCE AND COPYRIGHT"
+.IX Header "LICENCE AND COPYRIGHT"
+This code is part of GOsa (<http://www.gosa\-project.org>)
+.PP
+Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\s-1GNU\s0 General Public License for more details.
diff --git a/gosa-core/update-locale.pod b/gosa-core/update-locale.pod
new file mode 100644
index 0000000..777566e
--- /dev/null
+++ b/gosa-core/update-locale.pod
@@ -0,0 +1,41 @@
+
+=head1 NAME
+
+update-locale - update localization files
+
+=head1 SYNOPSIS
+
+update-locale [-h] [-g] [-y]
+
+=head1 DESCRIPTION
+
+update-locale is a script that update/generate the .po files for GOsa
+
+=over 3
+
+=item B<-g>        extract strings from GOsa and generate po files
+
+=item B<-y>        assume yes
+
+=item B<-h>        help
+
+=back
+
+=head1 BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
+=cut
+
diff --git a/gosa-core/update-online-help b/gosa-core/update-online-help
new file mode 100755
index 0000000..cb3fd98
--- /dev/null
+++ b/gosa-core/update-online-help
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+# Defaults for Debian
+CNV=`pwd`/contrib/latex2html
+LYX=lyx
+
+# Sanity checks
+if [ ! -d doc/core ]; then
+	echo "Can't find usable core documentation structure - aborting"
+	exit 1
+fi
+
+# Commands present?
+for cmd in $CNV $LYX; do
+	if [[ ! `which $cmd` ]]; then
+		echo "Can't find executable for '$cmd' - aborting"
+		exit 2
+	fi
+done
+
+# Create guide.xml
+cat << EOF > doc/guide.xml
+<?xml version="1.0"?>
+ 	<!-- 
+		WARNING:
+		This file is automatically generated by update-online-help.
+		If you want to add entries, use doc/core/guide.xml or doc/plugins/"Appropriate Plugin Directory"/guide.xml.
+		Then execute update-online-help to merge them into this file.
+	-->
+	
+	<!--
+		This xml file specifies which class is documented in which help file.
+
+		If isset ( $_SESSION['current_class_for_help'] ) then open the helpfile which is  
+		specified for this class below.
+	-->
+	
+	<!--
+		<ENTRY NAME="class name" VALUE="displayed text" PATH="path to helpfiles" FILE="path to htmlfile" />
+		 Leave blank to display message "There is no helpfile specified for this class."	
+	-->
+<ENTRIES>
+EOF
+
+echo -en "Generating doc/guide.xml..."
+# core guide.xml
+pushd . &> /dev/null
+cd doc/core
+cat < guide.xml >> ../guide.xml
+popd &> /dev/null
+
+# plugins guide.xml
+pushd . &> /dev/null
+if [ -d doc/plugins ]; then
+	cd doc/plugins
+	for plugin in *; do
+		[ -r $plugin/guide.xml ] && cat < $plugin/guide.xml >> ../guide.xml
+	done
+fi
+popd &> /dev/null
+
+echo -en "</ENTRIES>\n" >> doc/guide.xml
+sed -i s/"[ \t][ \t]*"/" "/g doc/guide.xml
+echo -en " done.\n"
+
+# Core help
+echo -en "Processing core\n"
+pushd . &> /dev/null
+cd doc/core
+for lang in *; do
+	[ ! -d "$lang" ] && continue
+
+	pushd . &> /dev/null
+	echo -en "\tProcessing language $lang...\n"
+	cd $lang/lyx-source
+
+	for source in $(find . -name \*.lyx -exec basename {} \;); do
+		echo -en "\t\tProcessing $source..."
+		echo -en " tex"
+		$LYX -e latex $source &> /dev/null
+		d=../html/${source%%\.*}/
+		[ -d $d ] || mkdir -p $d && rm -r $d/* &> /dev/null
+		echo -en " html"
+		$CNV -no_navigation -dir $d ${source%%\.*}.tex &> /dev/null
+		echo -en " cleanup"
+		rm images/*.eps &> /dev/null
+		rm ${source%%\.lyx}.tex &> /dev/null
+		echo -en " done.\n"
+		continue
+	done
+	popd &> /dev/null
+done
+
+popd &> /dev/null
+
+# Plugin help
+pushd . &> /dev/null
+if [ -d doc/plugins ]; then
+	cd doc/plugins
+
+	for plugin in *; do
+		pushd . &> /dev/null
+		echo -en "Processing $plugin\n"
+		cd $plugin
+		for lang in *; do
+			[ ! -d "$lang" ] && continue
+
+			pushd . &> /dev/null
+			echo -en "\tProcessing language $lang...\n"
+			cd $lang/lyx-source
+
+			for source in $(find . -name \*.lyx -exec basename {} \;); do
+				echo -en "\t\tProcessing $source..."
+				echo -en " tex"
+				$LYX -e latex $source &> /dev/null
+				d=../html/${source%%\.*}/
+				[ -d $d ] || mkdir -p $d && rm -r $d/* &> /dev/null
+				echo -en " html"
+				$CNV -no_navigation -dir $d ${source%%\.*}.tex &> /dev/null
+				echo -en " cleanup"
+				rm images/*.eps &> /dev/null
+				rm ${source%%\.lyx}.tex &> /dev/null
+				echo -en " done.\n"
+				continue
+			done
+			popd &> /dev/null
+		done
+		popd &> /dev/null
+	done
+
+fi
+popd &> /dev/null
+echo
+exit 0
diff --git a/gosa-core/update-online-help.1 b/gosa-core/update-online-help.1
new file mode 100644
index 0000000..366e8f6
--- /dev/null
+++ b/gosa-core/update-online-help.1
@@ -0,0 +1,153 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "UPDATE-ONLINE-HELP 1"
+.TH UPDATE-ONLINE-HELP 1 "2010-05-05" "perl v5.10.0" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+update\-online\-help \- update the online help
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+update-online-help
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+update-online-help is a script that is used to regenerate the online help
+of GOsa when it as been changed.
+.SH "BUGS"
+.IX Header "BUGS"
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa\-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+.SH "LICENCE AND COPYRIGHT"
+.IX Header "LICENCE AND COPYRIGHT"
+This code is part of GOsa (<http://www.gosa\-project.org>)
+.PP
+Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\s-1GNU\s0 General Public License for more details.
diff --git a/gosa-core/update-online-help.pod b/gosa-core/update-online-help.pod
new file mode 100644
index 0000000..fbb90d0
--- /dev/null
+++ b/gosa-core/update-online-help.pod
@@ -0,0 +1,32 @@
+
+=head1 NAME
+
+update-online-help - update the online help
+
+=head1 SYNOPSIS
+
+update-online-help
+
+=head1 DESCRIPTION
+
+update-online-help is a script that is used to regenerate the online help
+of GOsa when it as been changed.
+
+=head1 BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
+=cut
+
diff --git a/gosa-core/update-pdf-help b/gosa-core/update-pdf-help
new file mode 100755
index 0000000..1c3482a
--- /dev/null
+++ b/gosa-core/update-pdf-help
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+# Defaults for Debian
+LYX=lyx
+
+# Sanity checks
+if [ ! -d doc/core ]; then
+	echo "Can't find usable core documentation structure - aborting"
+	exit 1
+fi
+
+# Commands present?
+for cmd in $CNV $LYX; do
+	if [[ ! `which $cmd` ]]; then
+		echo "Can't find executable for '$cmd' - aborting"
+		exit 2
+	fi
+done
+
+# Core help
+echo -en "Processing core\n"
+pushd . &> /dev/null
+cd doc/core
+for lang in *; do
+	[ ! -d "$lang" ] && continue
+
+	pushd . &> /dev/null
+	echo -en "\tProcessing language $lang...\n"
+	cd $lang/lyx-source
+
+	for source in $(find . -name \*.lyx -exec basename {} \;); do
+		echo -en "\t\tProcessing $source..."
+		echo -en " pdf"
+		$LYX -e pdf $source &> /dev/null
+		d=../pdf/${source%%\.*}/
+	 	pdf=${source%lyx}pdf
+		[ -d $d ] || mkdir -p $d && mv $pdf ../pdf/${source%%\.*}/ &>/dev/null
+		d=../html/${source%%\.*}/
+		echo -en " done.\n"
+	done
+	popd &> /dev/null
+done
+
+popd &> /dev/null
+
+# Plugin help
+pushd . &> /dev/null
+if [ -d doc/plugins ]; then
+	cd doc/plugins
+
+	for plugin in *; do
+		pushd . &> /dev/null
+		echo -en "Processing $plugin\n"
+		cd $plugin
+		for lang in *; do
+			[ ! -d "$lang" ] && continue
+
+			pushd . &> /dev/null
+			echo -en "\tProcessing language $lang...\n"
+			cd $lang/lyx-source
+
+			for source in $(find . -name \*.lyx -exec basename {} \;); do
+				echo -en "\t\tProcessing $source..."
+				echo -en " pdf"
+				$LYX -e pdf $source &> /dev/null
+				d=../pdf/${source%%\.*}/
+				pdf=${source%lyx}pdf
+				[ -d $d ] || mkdir -p $d && mv $pdf ../pdf/${source%%\.*}/ &>/dev/null
+				d=../html/${source%%\.*}/
+				echo -en " done.\n"
+				continue
+			done
+			popd &> /dev/null
+		done
+		popd &> /dev/null
+	done
+
+fi
+popd &> /dev/null
+echo
+exit 0
diff --git a/gosa-core/update-pdf-help.1 b/gosa-core/update-pdf-help.1
new file mode 100644
index 0000000..af43c31
--- /dev/null
+++ b/gosa-core/update-pdf-help.1
@@ -0,0 +1,153 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "UPDATE-PDF-HELP 1"
+.TH UPDATE-PDF-HELP 1 "2010-05-05" "perl v5.10.0" "User Contributed Perl Documentation"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+update\-pdf\-help \- Create pdf documentation from online documentation
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+update-pdf-help
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+update-pdf-help is a script that create pdf docomentation for offline 
+reading from online documentation.
+.SH "BUGS"
+.IX Header "BUGS"
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa\-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+.SH "LICENCE AND COPYRIGHT"
+.IX Header "LICENCE AND COPYRIGHT"
+This code is part of GOsa (<http://www.gosa\-project.org>)
+.PP
+Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\s-1GNU\s0 General Public License for more details.
diff --git a/gosa-core/update-pdf-help.pod b/gosa-core/update-pdf-help.pod
new file mode 100644
index 0000000..70e327f
--- /dev/null
+++ b/gosa-core/update-pdf-help.pod
@@ -0,0 +1,32 @@
+
+=head1 NAME
+
+update-pdf-help - Create pdf documentation from online documentation
+
+=head1 SYNOPSIS
+
+update-pdf-help
+
+=head1 DESCRIPTION
+
+update-pdf-help is a script that create pdf docomentation for offline 
+reading from online documentation.
+
+=head1 BUGS
+
+Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel at oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+This code is part of GOsa (L<http://www.gosa-project.org>)
+
+Copyright (C) 2003-2010 GONICUS GmbH
+
+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.
+
+=cut
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-edu/pkg-team/gosa.git



More information about the debian-edu-commits mailing list